diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/jimColModelImporterJFX.jar b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.jar similarity index 100% rename from libs/JFX3DModelImporters_EA_2014-02-09/jimColModelImporterJFX.jar rename to lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.jar diff --git a/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.jar.md5 b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.jar.md5 new file mode 100644 index 00000000..a8b6957c --- /dev/null +++ b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.jar.md5 @@ -0,0 +1 @@ +bc00cae65d030845973151123fd0f2b1 \ No newline at end of file diff --git a/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.jar.sha1 b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.jar.sha1 new file mode 100644 index 00000000..d658ee43 --- /dev/null +++ b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.jar.sha1 @@ -0,0 +1 @@ +de6c72cb03b2216bbe03ac7b882f0c146fb76bc8 \ No newline at end of file diff --git a/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.pom b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.pom new file mode 100644 index 00000000..feefcede --- /dev/null +++ b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.pom @@ -0,0 +1,8 @@ + + + 4.0.0 + lib.com.interactivemesh + jimColModelImporter + 0.7 + diff --git a/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.pom.md5 b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.pom.md5 new file mode 100644 index 00000000..84948a5a --- /dev/null +++ b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.pom.md5 @@ -0,0 +1 @@ +8fc884a64856917671745720acc6048c \ No newline at end of file diff --git a/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.pom.sha1 b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.pom.sha1 new file mode 100644 index 00000000..8a5e73b0 --- /dev/null +++ b/lib/com/interactivemesh/jimColModelImporter/0.7/jimColModelImporter-0.7.pom.sha1 @@ -0,0 +1 @@ +4b35131587917ed1a16acb1eff8cd7a213a26edc \ No newline at end of file diff --git a/lib/com/interactivemesh/jimColModelImporter/maven-metadata.xml b/lib/com/interactivemesh/jimColModelImporter/maven-metadata.xml new file mode 100644 index 00000000..e152af65 --- /dev/null +++ b/lib/com/interactivemesh/jimColModelImporter/maven-metadata.xml @@ -0,0 +1,12 @@ + + + lib.com.interactivemesh + jimColModelImporter + + 0.7 + + 0.7 + + 20170912024010 + + diff --git a/lib/com/interactivemesh/jimColModelImporter/maven-metadata.xml.md5 b/lib/com/interactivemesh/jimColModelImporter/maven-metadata.xml.md5 new file mode 100644 index 00000000..388bdd55 --- /dev/null +++ b/lib/com/interactivemesh/jimColModelImporter/maven-metadata.xml.md5 @@ -0,0 +1 @@ +3132c3f88de1a942ac37930b8cdaa764 \ No newline at end of file diff --git a/lib/com/interactivemesh/jimColModelImporter/maven-metadata.xml.sha1 b/lib/com/interactivemesh/jimColModelImporter/maven-metadata.xml.sha1 new file mode 100644 index 00000000..edc47afa --- /dev/null +++ b/lib/com/interactivemesh/jimColModelImporter/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +20847be06b0d11b70f1fbfb1527c5efee4e9f49e \ No newline at end of file diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/jimStlMeshImporterJFX.jar b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.jar similarity index 100% rename from libs/JFX3DModelImporters_EA_2014-02-09/jimStlMeshImporterJFX.jar rename to lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.jar diff --git a/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.jar.md5 b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.jar.md5 new file mode 100644 index 00000000..0a0194e8 --- /dev/null +++ b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.jar.md5 @@ -0,0 +1 @@ +deec04fc74e1115465598d342810df18 \ No newline at end of file diff --git a/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.jar.sha1 b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.jar.sha1 new file mode 100644 index 00000000..abf3fec3 --- /dev/null +++ b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.jar.sha1 @@ -0,0 +1 @@ +ea31eabe6384ae965cd8180920f7ba0248717313 \ No newline at end of file diff --git a/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.pom b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.pom new file mode 100644 index 00000000..73a14fcb --- /dev/null +++ b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.pom @@ -0,0 +1,8 @@ + + + 4.0.0 + lib.com.interactivemesh + jimStlMeshImporter + 0.7 + diff --git a/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.pom.md5 b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.pom.md5 new file mode 100644 index 00000000..246210bb --- /dev/null +++ b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.pom.md5 @@ -0,0 +1 @@ +82a485ac9a76d6587b1b23b7fbd8f5a0 \ No newline at end of file diff --git a/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.pom.sha1 b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.pom.sha1 new file mode 100644 index 00000000..c9884d70 --- /dev/null +++ b/lib/com/interactivemesh/jimStlMeshImporter/0.7/jimStlMeshImporter-0.7.pom.sha1 @@ -0,0 +1 @@ +2bac29a6598a88b2f115b72433181c13fc6201d2 \ No newline at end of file diff --git a/lib/com/interactivemesh/jimStlMeshImporter/maven-metadata.xml b/lib/com/interactivemesh/jimStlMeshImporter/maven-metadata.xml new file mode 100644 index 00000000..99434fc5 --- /dev/null +++ b/lib/com/interactivemesh/jimStlMeshImporter/maven-metadata.xml @@ -0,0 +1,12 @@ + + + lib.com.interactivemesh + jimStlMeshImporter + + 0.7 + + 0.7 + + 20170912024122 + + diff --git a/lib/com/interactivemesh/jimStlMeshImporter/maven-metadata.xml.md5 b/lib/com/interactivemesh/jimStlMeshImporter/maven-metadata.xml.md5 new file mode 100644 index 00000000..7415fec6 --- /dev/null +++ b/lib/com/interactivemesh/jimStlMeshImporter/maven-metadata.xml.md5 @@ -0,0 +1 @@ +cad88c5c501f771bc8d1fc085decb3c4 \ No newline at end of file diff --git a/lib/com/interactivemesh/jimStlMeshImporter/maven-metadata.xml.sha1 b/lib/com/interactivemesh/jimStlMeshImporter/maven-metadata.xml.sha1 new file mode 100644 index 00000000..031ce2d1 --- /dev/null +++ b/lib/com/interactivemesh/jimStlMeshImporter/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +c6cd4fae002dbbe4246c8eac4b35de07d921fd51 \ No newline at end of file diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-3dsModelImporterJFX.txt b/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-3dsModelImporterJFX.txt deleted file mode 100644 index d45a8aa5..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-3dsModelImporterJFX.txt +++ /dev/null @@ -1,26 +0,0 @@ - -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 deleted file mode 100644 index 37a3b3b8..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ColModelImporterJFX.txt +++ /dev/null @@ -1,26 +0,0 @@ - -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 deleted file mode 100644 index f75c5dcc..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-FxmlModelImporterJFX.txt +++ /dev/null @@ -1,26 +0,0 @@ - -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 deleted file mode 100644 index 7bf42eaa..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-ObjModelImporterJFX.txt +++ /dev/null @@ -1,26 +0,0 @@ - -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 deleted file mode 100644 index 1911835a..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-StlMeshImporterJFX.txt +++ /dev/null @@ -1,26 +0,0 @@ - -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 deleted file mode 100644 index 1ac72c0c..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/LICENSE-X3dModelImporterJFX.txt +++ /dev/null @@ -1,26 +0,0 @@ - -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 deleted file mode 100644 index 271d8a21..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-frame.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - -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 deleted file mode 100644 index 51137bcd..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/allclasses-noframe.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - -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 deleted file mode 100644 index d4d77e17..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/FilePath.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - -FilePath (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Class FilePath

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index d2707cef..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ImportException.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - - -ImportException (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Class ImportException

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index e7c8e81e..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Importer.html +++ /dev/null @@ -1,408 +0,0 @@ - - - - - -Importer (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Interface Importer

-
-
-
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index da37c386..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/ModelImporter.html +++ /dev/null @@ -1,357 +0,0 @@ - - - - - -ModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Interface ModelImporter

-
-
-
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 4e80e09e..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/Viewpoint.html +++ /dev/null @@ -1,683 +0,0 @@ - - - - - -Viewpoint (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer
-

Class Viewpoint

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 475940f0..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.Contributor.html +++ /dev/null @@ -1,374 +0,0 @@ - - - - - -ColAsset.Contributor (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Class ColAsset.Contributor

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 0297a17d..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.GeographicLocation.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - -ColAsset.GeographicLocation (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Class ColAsset.GeographicLocation

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index fd0cbcde..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.UpAxis.html +++ /dev/null @@ -1,373 +0,0 @@ - - - - - -ColAsset.UpAxis (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Enum ColAsset.UpAxis

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 3f77950c..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColAsset.html +++ /dev/null @@ -1,515 +0,0 @@ - - - - - -ColAsset (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Class ColAsset

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index ba96d022..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColImportOption.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - -ColImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Enum ColImportOption

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index f2e79efe..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/ColModelImporter.html +++ /dev/null @@ -1,876 +0,0 @@ - - - - - -ColModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.col
-

Class ColModelImporter

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 6fba5cba..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-frame.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - -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 deleted file mode 100644 index 9850822d..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-summary.html +++ /dev/null @@ -1,896 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.col (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 -

-

-

-

- - - -

- 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

-
-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 28b932ad..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/col/package-tree.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.col Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

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

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 14a5c0b5..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlImportOption.html +++ /dev/null @@ -1,429 +0,0 @@ - - - - - -FxmlImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.fxml
-

Enum FxmlImportOption

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 1e192194..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/FxmlModelImporter.html +++ /dev/null @@ -1,852 +0,0 @@ - - - - - -FxmlModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.fxml
-

Class FxmlModelImporter

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 5e520369..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -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 deleted file mode 100644 index 9101e95d..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-summary.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.fxml (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 -

-

-

-

-

Supported root nodes in main and included FXML files -

-

-

-

-

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

-

-

-

-

Supported FXML features -

-

-

-

-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 703db9bf..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/fxml/package-tree.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.fxml Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

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

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 7b9fe3f3..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjImportOption.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - -ObjImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.obj
-

Enum ObjImportOption

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index e4cd114b..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/ObjModelImporter.html +++ /dev/null @@ -1,808 +0,0 @@ - - - - - -ObjModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.obj
-

Class ObjModelImporter

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 491ed2ae..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -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 deleted file mode 100644 index aca6d79e..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-summary.html +++ /dev/null @@ -1,362 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.obj (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 -

-

-

-

-

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
    
-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 94f1c556..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/obj/package-tree.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.obj Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

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

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index dfe714c5..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-frame.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -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 deleted file mode 100644 index be34ffe6..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-summary.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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. -
-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index a890c4f5..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/package-tree.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For Package com.interactivemesh.jfx.importer

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Interface Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 60266547..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlImportOption.html +++ /dev/null @@ -1,371 +0,0 @@ - - - - - -StlImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.stl
-

Enum StlImportOption

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 2065113c..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/StlMeshImporter.html +++ /dev/null @@ -1,653 +0,0 @@ - - - - - -StlMeshImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.stl
-

Class StlMeshImporter

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 578366cf..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -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 deleted file mode 100644 index 8ec21625..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-summary.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.stl (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 -

-

-

-

-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index def710bb..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/stl/package-tree.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.stl Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

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

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 51501486..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsImportOption.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - -TdsImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.tds
-

Enum TdsImportOption

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index ec35c9d0..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/TdsModelImporter.html +++ /dev/null @@ -1,811 +0,0 @@ - - - - - -TdsModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.tds
-

Class TdsModelImporter

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index a4d845cd..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -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 deleted file mode 100644 index 10b019b0..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-summary.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.tds (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 -

-

-

-

-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index fcf531db..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/tds/package-tree.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.tds Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

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

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index df9a0bfc..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.UnitCat.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - -X3dHead.UnitCat (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.x3d
-

Enum X3dHead.UnitCat

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index ca121c22..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dHead.html +++ /dev/null @@ -1,353 +0,0 @@ - - - - - -X3dHead (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.x3d
-

Class X3dHead

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 626cc487..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dImportOption.html +++ /dev/null @@ -1,431 +0,0 @@ - - - - - -X3dImportOption (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.x3d
-

Enum X3dImportOption

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 6a2636c8..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/X3dModelImporter.html +++ /dev/null @@ -1,904 +0,0 @@ - - - - - -X3dModelImporter (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - - -
-
com.interactivemesh.jfx.importer.x3d
-

Class X3dModelImporter

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index f4e3926c..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-frame.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -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 deleted file mode 100644 index e97f0df7..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-summary.html +++ /dev/null @@ -1,1587 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.x3d (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 -

-

-

-

-
-

- 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

-
-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index ff0f03c1..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/com/interactivemesh/jfx/importer/x3d/package-tree.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - -com.interactivemesh.jfx.importer.x3d Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

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

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Enum Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 9d3cdc9a..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/constant-values.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - -Constant Field Values (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

Constant Field Values

-

Contents

-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 03a47b38..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/deprecated-list.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - -Deprecated List (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

Deprecated API

-

Contents

-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index be8b7d96..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/help-doc.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - -API Help (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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.
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index a491f1be..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-1.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - -C-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index bd87852a..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-10.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - -V-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 1e2a7761..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-11.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -X-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 8c7c6ddb..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-2.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - -F-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 0dec4919..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-3.html +++ /dev/null @@ -1,515 +0,0 @@ - - - - - -G-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 3f8beebb..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-4.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -I-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index ddb30ecf..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-5.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -M-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index c58a95cc..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-6.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - -O-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 8f100233..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-7.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - -R-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 01379719..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-8.html +++ /dev/null @@ -1,296 +0,0 @@ - - - - - -S-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index d0f70ac7..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index-files/index-9.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - -T-Index (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index 057a6376..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/index.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - -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 deleted file mode 100644 index 36e9cedb..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-frame.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - -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 deleted file mode 100644 index 5497408a..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-summary.html +++ /dev/null @@ -1,392 +0,0 @@ - - - - - -Overview (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
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 -

-

-

- See https://javafx-jira.kenai.com -

- -

Model importers restrictions/issues

-

-

-

- -

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 -

-

-

- Type javafx.scene.image.WritableImage -

-

- -

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. -

-
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index a1a6e1c6..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/overview-tree.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - -Class Hierarchy (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

Hierarchy For All Packages

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Interface Hierarchy

- -

Enum Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
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 deleted file mode 100644 index bbbf469b..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/package-list +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100644 index b3463569..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/script.js +++ /dev/null @@ -1,30 +0,0 @@ -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 deleted file mode 100644 index df9c5497..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/serialized-form.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -Serialized Form (JavaFX 3D Model Importers) - - - - - - - - -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -
-

Serialized Form

-
-
- -
- -
- - -
Skip navigation links
- - - - -
JavaFX 3D Model Importers
-
- - -

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

- - diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/stylesheet-im.css b/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/stylesheet-im.css deleted file mode 100644 index 809dab0d..00000000 --- a/libs/JFX3DModelImporters_EA_2014-02-09/apidoc/stylesheet-im.css +++ /dev/null @@ -1,574 +0,0 @@ -/* Derived from 'stylesheet.css' in jdk-8-ea-docs-b124-all-17_jan_2014.zip */ - -/* Javadoc style sheet */ -/* -Overall document style -*/ - -body { - background-color:#ffffff; - color:#353833; - font-family:Arial, Helvetica, sans-serif; - font-size:14px; - margin:0; -} -a:link, a:visited { - text-decoration:none; - color:#4A6782; -} -a:hover, a:focus { - text-decoration:none; - color:#bb7a2a; -} -a:active { - text-decoration:none; - color:#4A6782; -} -a[name] { - color:#353833; -} -a[name]:hover { - text-decoration:none; - color:#353833; -} -pre { - font-family:monospace; - font-size:14px; -} -h1 { - font-size:20px; -} -h2 { - font-size:18px; -} -h3 { - font-size:16px; - font-style:italic; -} -h4 { - font-size:13px; -} -h5 { - font-size:12px; -} -h6 { - font-size:11px; -} -ul { - list-style-type:disc; -} -code, tt { - font-family:monospace; - font-size:14px; - padding-top:4px; - margin-top:8px; - line-height:1.4em; -} -dt code { - font-family:monospace; - font-size:14px; - padding-top:4px; -} -table tr td dt code { - font-family:monospace; - font-size:14px; - vertical-align:top; - padding-top:4px; -} -sup { - font-size:8px; -} -/* -Document title and Copyright styles -*/ -.clear { - clear:both; - height:0px; - overflow:hidden; -} -.aboutLanguage { - float:right; - padding:0px 21px; - font-size:11px; - z-index:200; - margin-top:-9px; -} -.legalCopy { - margin-left:.5em; -} -.bar a, .bar a:link, .bar a:visited, .bar a:active { - color:#FFFFFF; - text-decoration:none; -} -.bar a:hover, .bar a:focus { - color:#bb7a2a; -} -.tab { - background-color:#0066FF; - color:#ffffff; - padding:8px; - width:5em; - font-weight:bold; -} -/* -Navigation bar styles -*/ -.bar { - background-color:#4D7A97; - color:#FFFFFF; - padding:.8em .5em .4em .8em; - height:auto;/*height:1.8em;*/ - font-size:11px; - margin:0; -} -.topNav { - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.bottomNav { - margin-top:10px; - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.subNav { - background-color:#dee3e9; - float:left; - width:100%; - overflow:hidden; - font-size:12px; -} -.subNav div { - clear:left; - float:left; - padding:0 0 5px 6px; - text-transform:uppercase; -} -ul.navList, ul.subNavList { - float:left; - margin:0 25px 0 0; - padding:0; -} -ul.navList li{ - list-style:none; - float:left; - padding: 5px 6px; - text-transform:uppercase; -} -ul.subNavList li{ - list-style:none; - float:left; -} -.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { - color:#FFFFFF; - text-decoration:none; - text-transform:uppercase; -} -.topNav a:hover, .bottomNav a:hover { - text-decoration:none; - color:#bb7a2a; - text-transform:uppercase; -} -.navBarCell1Rev { - background-color:#F8981D; - color:#253441; - margin: auto 5px; -} -.skipNav { - position:absolute; - top:auto; - left:-9999px; - overflow:hidden; -} -/* -Page header and footer styles -*/ -.header, .footer { - clear:both; - margin:0 20px; - padding:5px 0 0 0; -} -.indexHeader { - margin:10px; - position:relative; -} -.indexHeader span{ - margin-right:15px; -} -.indexHeader h1 { - font-size:13px; -} -.title { - color:#2c4557; - margin:10px 0; -} -.subTitle { - margin:5px 0 0 0; -} -.header ul { - margin:0 0 15px 0; - padding:0; -} -.footer ul { - margin:20px 0 5px 0; -} -.header ul li, .footer ul li { - list-style:none; - font-size:13px; -} -/* -Heading styles -*/ -div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList ul.blockList li.blockList h3 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList li.blockList h3 { - padding:0; - margin:15px 0; -} -ul.blockList li.blockList h2 { - padding:0px 0 20px 0; -} -/* -Page layout container styles -*/ -.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { - clear:both; - padding:10px 20px; - position:relative; -} -.indexContainer { - margin:10px; - position:relative; - font-size:12px; -} -.indexContainer h2 { - font-size:13px; - padding:0 0 3px 0; -} -.indexContainer ul { - margin:0; - padding:0; -} -.indexContainer ul li { - list-style:none; - padding-top:2px; -} -.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { - font-size:12px; - font-weight:bold; - margin:10px 0 0 0; - color:#4E4E4E; -} -.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { - margin:5px 0 10px 0px; - font-size:14px; - font-family:monospace; -} -.serializedFormContainer dl.nameValue dt { - margin-left:1px; - font-size:1.1em; - display:inline; - font-weight:bold; -} -.serializedFormContainer dl.nameValue dd { - margin:0 0 0 1px; - font-size:1.1em; - display:inline; -} -/* -List styles -*/ -ul.horizontal li { - display:inline; - font-size:0.9em; -} -ul.inheritance { - margin:0; - padding:0; -} -ul.inheritance li { - display:inline; - list-style:none; -} -ul.inheritance li ul.inheritance { - margin-left:15px; - padding-left:15px; - padding-top:1px; -} -ul.blockList, ul.blockListLast { - margin:10px 0 10px 0; - padding:0; -} -ul.blockList li.blockList, ul.blockListLast li.blockList { - list-style:none; - margin-bottom:15px; - line-height:1.4; -} -ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { - padding:0px 20px 5px 10px; - border:1px solid #ededed; - background-color:#f8f8f8; -} -ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { - padding:0 0 5px 8px; - background-color:#ffffff; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { - margin-left:0; - padding-left:0; - padding-bottom:15px; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { - list-style:none; - border-bottom:none; - padding-bottom:0; -} -table tr td dl, table tr td dl dt, table tr td dl dd { - margin-top:0; - margin-bottom:1px; -} -/* -Table styles -*/ -.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { - width:100%; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; -} -.overviewSummary, .memberSummary { - padding:0px; -} -.overviewSummary caption, .memberSummary caption, .typeSummary caption, -.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { - position:relative; - text-align:left; - background-repeat:no-repeat; - color:#253441; - font-weight:bold; - clear:none; - overflow:hidden; - padding:0px; - padding-top:10px; - padding-left:1px; - margin:0px; - white-space:pre; -} -.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, -.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, -.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, -.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, -.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, -.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, -.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, -.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { - color:#FFFFFF; -} -.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, -.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - padding-bottom:7px; - display:inline-block; - float:left; - background-color:#F8981D; - border: none; - height:16px; -} -.memberSummary caption span.activeTableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#F8981D; - height:16px; -} -.memberSummary caption span.tableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#4D7A97; - height:16px; -} -.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { - padding-top:0px; - padding-left:0px; - padding-right:0px; - background-image:none; - float:none; - display:inline; -} -.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, -.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { - display:none; - width:5px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .activeTableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .tableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - background-color:#4D7A97; - float:left; - -} -.overviewSummary td, .memberSummary td, .typeSummary td, -.useSummary td, .constantsSummary td, .deprecatedSummary td { - text-align:left; - padding:0px 0px 12px 10px; - width:100%; -} -th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, -td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ - vertical-align:top; - padding-right:0px; - padding-top:8px; - padding-bottom:3px; -} -th.colFirst, th.colLast, th.colOne, .constantsSummary th { - background:#dee3e9; - text-align:left; - padding:8px 3px 3px 7px; -} -td.colFirst, th.colFirst { - white-space:nowrap; - font-size:13px; -} -td.colLast, th.colLast { - font-size:13px; -} -td.colOne, th.colOne { - font-size:13px; -} -.overviewSummary td.colFirst, .overviewSummary th.colFirst, -.overviewSummary td.colOne, .overviewSummary th.colOne, -.memberSummary td.colFirst, .memberSummary th.colFirst, -.memberSummary td.colOne, .memberSummary th.colOne, -.typeSummary td.colFirst{ - width:25%; - vertical-align:top; -} -td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { - font-weight:bold; -} -.tableSubHeadingColor { - background-color:#EEEEFF; -} -.altColor { - background-color:#FFFFFF; -} -.rowColor { - background-color:#EEEEEF; -} -/* -Content styles -*/ -.description pre { - margin-top:0; -} -.deprecatedContent { - margin:0; - padding:10px 0; -} -.docSummary { - padding:0; -} - -ul.blockList ul.blockList ul.blockList li.blockList h3 { - font-style:normal; -} - -div.block { - font-size:14px; - font-family:Arial, Helvetica, sans-serif; -} - -td.colLast div { - padding-top:0px; -} - - -td.colLast a { - padding-bottom:3px; -} -/* -Formatting effect styles -*/ -.sourceLineNo { - color:green; - padding:0 30px 0 0; -} -h1.hidden { - visibility:hidden; - overflow:hidden; - font-size:10px; -} -.block { - display:block; - margin:3px 10px 2px 0px; - color:#474747; -} -.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, -.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, -.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { - font-weight:bold; -} -.deprecationComment, .emphasizedPhrase, .interfaceName { - font-style:italic; -} - -div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, -div.block div.block span.interfaceName { - font-style:normal; -} - -div.contentContainer ul.blockList li.blockList h2{ - padding-bottom:0px; -} diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/jim3dsModelImporterJFX.jar b/libs/JFX3DModelImporters_EA_2014-02-09/jim3dsModelImporterJFX.jar deleted file mode 100644 index cee76322..00000000 Binary files a/libs/JFX3DModelImporters_EA_2014-02-09/jim3dsModelImporterJFX.jar and /dev/null differ diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/jimFxmlModelImporterJFX.jar b/libs/JFX3DModelImporters_EA_2014-02-09/jimFxmlModelImporterJFX.jar deleted file mode 100644 index f2cc8148..00000000 Binary files a/libs/JFX3DModelImporters_EA_2014-02-09/jimFxmlModelImporterJFX.jar and /dev/null differ diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/jimObjModelImporterJFX.jar b/libs/JFX3DModelImporters_EA_2014-02-09/jimObjModelImporterJFX.jar deleted file mode 100644 index ea7d8a7e..00000000 Binary files a/libs/JFX3DModelImporters_EA_2014-02-09/jimObjModelImporterJFX.jar and /dev/null differ diff --git a/libs/JFX3DModelImporters_EA_2014-02-09/jimX3dModelImporterJFX.jar b/libs/JFX3DModelImporters_EA_2014-02-09/jimX3dModelImporterJFX.jar deleted file mode 100644 index 34eb15d0..00000000 Binary files a/libs/JFX3DModelImporters_EA_2014-02-09/jimX3dModelImporterJFX.jar and /dev/null differ diff --git a/pom.xml b/pom.xml index 5122cf56..1488c740 100644 --- a/pom.xml +++ b/pom.xml @@ -83,6 +83,31 @@ 0.2.1 + + com.interactivemesh + jimStlMeshImporter + 0.7 + + + + com.interactivemesh + jimColModelImporter + 0.7 + + + + com.jfoenix + jfoenix + 1.8.0 + + + + + javax.jmdns + jmdns + 3.4.2 + + @@ -165,4 +190,18 @@ + + + + lib + third party libraries + file://${basedir}/lib + + + + Homer-Core + Homer-core-repo + https://nexus.arcsmed.at/content/repositories/homer.core + + \ No newline at end of file diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index 71b8036c..3c654f77 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -2,10 +2,6 @@ package seng302; import ch.qos.logback.classic.Level; import javafx.application.Application; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.image.Image; import javafx.stage.Stage; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; @@ -14,6 +10,7 @@ import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import seng302.visualiser.controllers.ViewManager; public class App extends Application { @@ -66,27 +63,10 @@ public class App extends Application { @Override public void start(Stage primaryStage) throws Exception { - Parent root = FXMLLoader.load(getClass().getResource("/views/StartScreenView.fxml")); - primaryStage.setTitle("Party Parrots at Sea"); - Scene scene = new Scene(root, 1530, 960); - scene.getStylesheets().add(getClass().getResource("/css/master.css").toString()); - primaryStage.setScene(scene); -// primaryStage.setMaxWidth(1530); -// primaryStage.setMaxHeight(960); - primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/PP.png"))); -// primaryStage.setMaximized(true); - - primaryStage.show(); - - primaryStage.setOnCloseRequest(e -> { -// ClientPacketParser.appClose(); -// ClientPacketParser.appClose(); - System.exit(0); - }); - -// ClientState.primaryStage = primaryStage; + ViewManager.getInstance().initialStartView(primaryStage); } + public static void main(String[] args) { try { parseArgs(args); diff --git a/src/main/java/seng302/gameServer/GameState.java b/src/main/java/seng302/gameServer/GameState.java index 1ac96630..b41ec834 100644 --- a/src/main/java/seng302/gameServer/GameState.java +++ b/src/main/java/seng302/gameServer/GameState.java @@ -1,26 +1,30 @@ package seng302.gameServer; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Random; import java.util.Set; import javafx.scene.paint.Color; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.xml.sax.InputSource; +import seng302.gameServer.messages.*; +import seng302.model.*; import seng302.gameServer.messages.BoatAction; import seng302.gameServer.messages.BoatStatus; +import seng302.gameServer.messages.ChatterMessage; import seng302.gameServer.messages.CustomizeRequestType; import seng302.gameServer.messages.MarkRoundingMessage; import seng302.gameServer.messages.MarkType; import seng302.gameServer.messages.Message; import seng302.gameServer.messages.RoundingBoatStatus; import seng302.gameServer.messages.YachtEventCodeMessage; +import seng302.gameServer.messages.YachtEventType; import seng302.model.GeoPoint; import seng302.model.Limit; import seng302.model.Player; @@ -34,6 +38,10 @@ import seng302.model.token.TokenType; import seng302.utilities.GeoUtility; import seng302.utilities.XMLParser; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.util.*; + /** * A Static class to hold information about the current state of the game (model) * Also contains logic for updating itself on regular time intervals on its own thread @@ -43,17 +51,15 @@ public class GameState implements Runnable { @FunctionalInterface interface NewMessageListener { - void notify(Message message); } - private Logger logger = LoggerFactory.getLogger(GameState.class); + private static Logger logger = LoggerFactory.getLogger(GameState.class); static final int WARNING_TIME = 10 * -1000; static final int PREPATORY_TIME = 5 * -1000; private static final int TIME_TILL_START = 10 * 1000; - static Integer MAX_PLAYERS = 8; private static final Long POWERUP_TIMEOUT_MS = 10_000L; @@ -68,51 +74,46 @@ public class GameState implements Runnable { private static Long previousUpdateTime; public static Double windDirection; private static Double windSpeed; + private static Double speedMultiplier = 1d; private static Boolean customizationFlag; // dirty flag to tell if a player has customized their boat. private static String hostIpAddress; private static List players; private static Map yachts; - private static List tokens; private static Boolean isRaceStarted; private static GameStages currentStage; private static MarkOrder markOrder; private static long startTime; private static Set marks; private static List courseLimit; + private static Integer maxPlayers = 8; - private static List markListeners; + + private static List allTokens; + private static List tokensInPlay; + + private static List newMessageListeners; private static Map playerStringMap = new HashMap<>(); - /* - Ideally I would like to make this class an object instantiated by the server and given to - it's created threads if necessary. Outside of that I think the dependencies on it - (atm only Yacht & GameClient) can be removed from most other classes. The observable list of - players could be pulled directly from the server by the GameClient since it instantiates it - and it is reasonable for it to pull data. The current setup of publicly available statics is - pretty meh IMO because anything can change it making it unreliable and like people did with - the old ServerParser class everything that needs shared just gets thrown in the static - collections and things become a real mess. - */ public GameState(String hostIpAddress) { windDirection = 180d; windSpeed = 10000d; - this.hostIpAddress = hostIpAddress; yachts = new HashMap<>(); - tokens = new ArrayList<>(); + tokensInPlay = new ArrayList<>(); players = new ArrayList<>(); GameState.hostIpAddress = hostIpAddress; customizationFlag = false; - + speedMultiplier = 1.0; currentStage = GameStages.LOBBYING; isRaceStarted = false; //set this when game stage changes to prerace previousUpdateTime = System.currentTimeMillis(); markOrder = new MarkOrder(); //This could be instantiated at some point with a select map? - markListeners = new ArrayList<>(); + newMessageListeners = new ArrayList<>(); + allTokens = makeTokens(); resetStartTime(); @@ -137,6 +138,21 @@ public class GameState implements Runnable { courseLimit = XMLParser.parseRace(document).getCourseLimit(); } + + /** + * Make a pre defined set of tokensInPlay. //TODO wmu16 - Should read from some file for each + * race ideally + * + * @return A list of possible tokensInPlay for this race + */ + private ArrayList makeTokens() { + Token token1 = new Token(TokenType.BOOST, 57.66946, 11.83154); + Token token2 = new Token(TokenType.BOOST, 57.66877, 11.83382); + Token token3 = new Token(TokenType.BOOST, 57.66914, 11.83965); + Token token4 = new Token(TokenType.BOOST, 57.66684, 11.83214); + return new ArrayList<>(Arrays.asList(token1, token2, token3, token4)); + } + public static String getHostIpAddress() { return hostIpAddress; } @@ -149,16 +165,8 @@ public class GameState implements Runnable { return players; } - public static void addToken(Token token) { - tokens.add(token); - } - - public static List getTokens() { - return tokens; - } - - public static void clearTokens() { - tokens.clear(); + public static List getTokensInPlay() { + return tokensInPlay; } public static void addPlayer(Player player) { @@ -288,7 +296,23 @@ public class GameState implements Runnable { } /** - * Called periodically in this GameState thread to update the GameState values + * Randomly select a subset of tokensInPlay from a pre defined superset + * Broadasts a new race status message to show this update + */ + public static void spawnNewToken() { + Random random = new Random(); + tokensInPlay.clear(); + tokensInPlay.add(allTokens.get(random.nextInt(allTokens.size()))); + } + + /** + * Called periodically in this GameState thread to update the GameState values. + * -Updates yachts velocity + * -Updates locations + * -Checks for collisions + * -Checks for progression + * + * -Also checks things like the end of the race and race start time etc */ public void update() { Boolean raceFinished = true; @@ -303,14 +327,11 @@ public class GameState implements Runnable { checkPowerUpTimeout(yacht); yacht.runAutoPilot(); yacht.updateLocation(timeInterval); + checkCollision(yacht); if (yacht.getBoatStatus() != BoatStatus.FINISHED) { - checkCollision(yacht); - checkTokenPickUp(yacht); checkForLegProgression(yacht); raceFinished = false; } - - } if (raceFinished) { @@ -350,27 +371,38 @@ public class GameState implements Runnable { } /** - * Checks all tokens to see if a yacht has picked one up - * - * @param serverYacht The yacht to check for + * Checks all tokensInPlay to see if a yacht has picked one up + * @return Token which was collided with + * @param serverYacht The yacht to check for collision with a token */ - private void checkTokenPickUp(ServerYacht serverYacht) { - for (Token token : tokens) { + private static Token checkTokenPickUp(ServerYacht serverYacht) { + for (Token token : tokensInPlay) { Double distance = GeoUtility.getDistance(token, serverYacht.getLocation()); if (distance < YACHT_COLLISION_DISTANCE) { - tokens.remove(token); - serverYacht.powerUp(token.getTokenType()); - logger.debug("Yacht: " + serverYacht.getShortName() + " got powerup " + token - .getTokenType()); - notifyMessageListeners(MessageFactory.getRaceXML()); - break; + return token; } } + + return null; } + /** + * Checks for collision with other in game objects for the given serverYacht. To be called each + * update. If there is a collision, Notifies the server to send the appropriate messages out. + * Checks for these items in turn: + * - Other yachts + * - Marks + * - Boundary + * - Tokens + * + * @param serverYacht The server yacht to check collisions with + */ public static void checkCollision(ServerYacht serverYacht) { + //Yacht Collision ServerYacht collidedYacht = checkYachtCollision(serverYacht); + Mark collidedMark = checkMarkCollision(serverYacht); + if (collidedYacht != null) { GeoPoint originalLocation = serverYacht.getLocation(); serverYacht.setLocation( @@ -386,35 +418,49 @@ public class GameState implements Runnable { collidedYacht.getCurrentVelocity() * COLLISION_VELOCITY_PENALTY ); notifyMessageListeners( - new YachtEventCodeMessage(serverYacht.getSourceId()) + new YachtEventCodeMessage(serverYacht.getSourceId(), YachtEventType.COLLISION) ); - } else { - Mark collidedMark = checkMarkCollision(serverYacht); - if (collidedMark != null) { - serverYacht.setLocation( - calculateBounceBack(serverYacht, collidedMark, BOUNCE_DISTANCE_MARK) - ); - serverYacht.setCurrentVelocity( - serverYacht.getCurrentVelocity() * COLLISION_VELOCITY_PENALTY - ); - notifyMessageListeners( - new YachtEventCodeMessage(serverYacht.getSourceId()) - ); - } - else{ - if (checkBoundaryCollision(serverYacht)) { - serverYacht.setLocation( - calculateBounceBack(serverYacht, serverYacht.getLocation(), - BOUNCE_DISTANCE_YACHT) - ); - serverYacht.setCurrentVelocity( - serverYacht.getCurrentVelocity() * COLLISION_VELOCITY_PENALTY - ); - notifyMessageListeners( - new YachtEventCodeMessage(serverYacht.getSourceId()) - ); - } - } + } + + //Mark Collision + else if (collidedMark != null) { + serverYacht.setLocation( + calculateBounceBack(serverYacht, collidedMark, BOUNCE_DISTANCE_MARK) + ); + + serverYacht.setCurrentVelocity( + serverYacht.getCurrentVelocity() * COLLISION_VELOCITY_PENALTY + ); + notifyMessageListeners( + new YachtEventCodeMessage(serverYacht.getSourceId(), YachtEventType.COLLISION) + ); + } + + //Boundary Collision + else if (checkBoundaryCollision(serverYacht)) { + serverYacht.setLocation( + calculateBounceBack(serverYacht, serverYacht.getLocation(), + BOUNCE_DISTANCE_YACHT) + ); + + serverYacht.setCurrentVelocity( + serverYacht.getCurrentVelocity() * COLLISION_VELOCITY_PENALTY + ); + notifyMessageListeners( + new YachtEventCodeMessage(serverYacht.getSourceId(), YachtEventType.COLLISION) + ); + } + + //Token Collision + Token collidedToken = checkTokenPickUp(serverYacht); + if (collidedToken != null) { + tokensInPlay.remove(collidedToken); + serverYacht.powerUp(collidedToken.getTokenType()); + logger.debug("Yacht: " + serverYacht.getShortName() + " got powerup " + collidedToken + .getTokenType()); + notifyMessageListeners(MessageFactory.getRaceXML()); + notifyMessageListeners( + new YachtEventCodeMessage(serverYacht.getSourceId(), YachtEventType.TOKEN)); } } @@ -422,9 +468,10 @@ public class GameState implements Runnable { private void updateVelocity(ServerYacht yacht) { Double trueWindAngle = Math.abs(windDirection - yacht.getHeading()); Double boatSpeedInKnots = PolarTable.getBoatSpeed(getWindSpeedKnots(), trueWindAngle); - Double maxBoatSpeed = GeoUtility.knotsToMMS(boatSpeedInKnots) * 4; + Double maxBoatSpeed = GeoUtility.knotsToMMS(boatSpeedInKnots) * speedMultiplier; if (yacht.getPowerUp() != null) { if (yacht.getPowerUp().equals(TokenType.BOOST)) { + // TODO: 11/09/17 wmu16 CHANGE THIS TO MAGIC NUMBER maxBoatSpeed *= 2; } } @@ -728,15 +775,14 @@ public class GameState implements Runnable { // TODO: 13/8/17 figure out the rounding side, rounded mark source ID and boat status. Message markRoundingMessage = new MarkRoundingMessage(0, 0, sourceID, RoundingBoatStatus.RACING, roundingMark.getRoundingSide(), markType, - currentMark.getId()); -// currentMarkSeqID + 1); + currentMarkSeqID + 1); notifyMessageListeners(markRoundingMessage); } private static void notifyMessageListeners(Message message) { - for (NewMessageListener mpl : markListeners) { - mpl.notify(message); + for (NewMessageListener ml : newMessageListeners) { + ml.notify(message); } } @@ -748,8 +794,37 @@ public class GameState implements Runnable { } + public static void processChatter(ChatterMessage chatterMessage, boolean isHost) { + String chatterText = chatterMessage.getMessage(); + String[] words = chatterText.split("\\s+"); + if (words.length > 2 && isHost) { + switch (words[2].trim()) { + case ">speed": + try { + setSpeedMultiplier(Double.valueOf(words[3])); + notifyMessageListeners(new ChatterMessage( + chatterMessage.getMessage_type(), + "SERVER: Speed modifier set to x" + words[3] + )); + } catch (Exception e) { + Logger logger = LoggerFactory.getLogger(GameState.class); + logger.error("cannot parse >speed value"); + } + return; + case ">finish": + notifyMessageListeners(new ChatterMessage( + chatterMessage.getMessage_type(), + "SERVER: Game will now finish" + )); + endRace(); + return; + } + } + notifyMessageListeners(chatterMessage); + } + public static void addMessageEventListener(NewMessageListener listener) { - markListeners.add(listener); + newMessageListeners.add(listener); } public static void setCustomizationFlag() { @@ -764,4 +839,36 @@ public class GameState implements Runnable { customizationFlag = false; } + public static Integer getNumberOfPlayers(){ + Integer numPlayers = 0; + + for(Player p : getPlayers()){ + if(p.getSocket().isConnected()){ + numPlayers++; + } + } + + return numPlayers; + } + + public static Integer getCapacity(){ + return maxPlayers; + } + + public static void setMaxPlayers(Integer newMax){ + maxPlayers = newMax; + } + + public static void endRace () { + yachts.forEach((id, yacht) -> yacht.setBoatStatus(BoatStatus.FINISHED)); + currentStage = GameStages.FINISHED; + } + + public static void setSpeedMultiplier (double multiplier) { + speedMultiplier = multiplier; + } + + public static double getSpeedMultiplier () { + return speedMultiplier; + } } diff --git a/src/main/java/seng302/gameServer/HeartbeatThread.java b/src/main/java/seng302/gameServer/HeartbeatThread.java index b9367134..ba7d4360 100644 --- a/src/main/java/seng302/gameServer/HeartbeatThread.java +++ b/src/main/java/seng302/gameServer/HeartbeatThread.java @@ -4,6 +4,8 @@ import java.io.IOException; import java.util.Stack; import java.util.Timer; import java.util.TimerTask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import seng302.model.Player; import seng302.gameServer.messages.Heartbeat; import seng302.gameServer.messages.Message; @@ -14,6 +16,9 @@ import seng302.gameServer.messages.Message; * cannot be sent to a player */ public class HeartbeatThread implements Runnable { + + private Logger logger = LoggerFactory.getLogger(HeartbeatThread.class); + private final int HEARTBEAT_PERIOD = 200; private ClientConnectionDelegate delegate; private Integer seqNum; @@ -44,20 +49,23 @@ public class HeartbeatThread implements Runnable { * The delegate is notified if a player has disconnected */ private void sendHeartbeatToAllPlayers(){ - Message heartbeat = new Heartbeat(seqNum); - for (Player player : GameState.getPlayers()){ - if (!player.getSocket().isConnected()) { - playerLostConnection(player); - } - - try { - player.getSocket().getOutputStream().write(heartbeat.getBuffer()); - } catch (IOException e) { - playerLostConnection(player); + try { + Message heartbeat = new Heartbeat(seqNum); + for (Player player : GameState.getPlayers()) { + if (!player.getSocket().isConnected()) { + playerLostConnection(player); + } + try { + player.getSocket().getOutputStream().write(heartbeat.getBuffer()); + } catch (IOException e) { + playerLostConnection(player); + } } + updateDelegate(); + seqNum++; + } catch (NullPointerException ne) { + logger.debug("Socket closed between checking for connection and sending heartbeat"); } - updateDelegate(); - seqNum++; } /** diff --git a/src/main/java/seng302/gameServer/MainServerThread.java b/src/main/java/seng302/gameServer/MainServerThread.java index ae44542c..d15eea08 100644 --- a/src/main/java/seng302/gameServer/MainServerThread.java +++ b/src/main/java/seng302/gameServer/MainServerThread.java @@ -2,19 +2,30 @@ package seng302.gameServer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import seng302.gameServer.messages.*; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import seng302.gameServer.messages.Message; import seng302.model.GeoPoint; import seng302.model.Player; import seng302.model.PolarTable; import seng302.model.ServerYacht; import seng302.model.mark.CompoundMark; -import seng302.model.token.Token; -import seng302.model.token.TokenType; +import seng302.model.stream.xml.parser.RegattaXMLData; import seng302.utilities.GeoUtility; +import seng302.utilities.XMLGenerator; +import seng302.utilities.XMLParser; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; import java.io.IOException; +import java.io.StringReader; import java.net.ServerSocket; -import java.util.*; +import java.util.ArrayList; +import java.util.Random; +import java.util.Timer; +import java.util.TimerTask; /** * A class describing the overall server, which creates and collects server threads for each client @@ -35,7 +46,46 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { private Thread thread; private ServerSocket serverSocket = null; - private ArrayList serverToClientThreads = new ArrayList<>(); + private ArrayList serverToClientThreads = new ArrayList<>();; + private static Integer capacity; + + private void startAdvertisingServer() { + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + DocumentBuilder db; + Document doc; + XMLGenerator generator = new XMLGenerator(); + + try { + db = dbf.newDocumentBuilder(); + String regatta = generator.getRegattaAsXml(); + StringReader stringReader = new StringReader(regatta); + InputSource is = new InputSource(stringReader); + doc = db.parse(is); + } catch (ParserConfigurationException | IOException | SAXException e) { + logger.warn("Couldn't load race regatta"); + return; + } + + RegattaXMLData regattaXMLData = XMLParser.parseRegatta(doc); + + + Integer capacity = GameState.getCapacity(); + Integer numPlayers = GameState.getNumberOfPlayers(); + Integer spacesLeft = capacity - numPlayers; + + // No spaces left on server + if (spacesLeft < 1) { + return; + } + + // Start advertising server + try { + ServerAdvertiser.getInstance().setMapName(regattaXMLData.getCourseName()).setCapacity(capacity).setNumberOfPlayers(numPlayers); + ServerAdvertiser.getInstance().registerGame(PORT, regattaXMLData.getRegattaName()); + } catch (IOException e) { + logger.warn("Could not register server"); + } + } public MainServerThread() { new GameState("localhost"); @@ -45,6 +95,9 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { logger.trace("IO error in server thread handler upon trying to make new server socket", 0); } + + startAdvertisingServer(); + PolarTable.parsePolarFile(getClass().getResourceAsStream("/config/acc_polars.csv")); GameState.addMessageEventListener(this::broadcastMessage); terminated = false; @@ -85,29 +138,32 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { //FINISHED else if (GameState.getCurrentStage() == GameStages.FINISHED) { - terminate(); + broadcastMessage(MessageFactory.getRaceStatusMessage()); + try { + Thread.sleep(1000); //Hackish fix to make sure all threads have sent closing RaceStatus + terminate(); + } catch (InterruptedException ie) { + logger.trace("Thread interrupted while waiting to terminate clients", 1); + } } } - - // TODO: 14/07/17 wmu16 - Send out disconnect packet to clients try { for (ServerToClientThread serverToClientThread : serverToClientThreads) { serverToClientThread.terminate(); } serverSocket.close(); - return; } catch (IOException e) { System.out.println("IO error in server thread handler upon closing socket"); } } - public void sendBoatLocations() { + private void sendBoatLocations() { for (ServerYacht serverYacht : GameState.getYachts().values()) { broadcastMessage(MessageFactory.getBoatLocationMessage(serverYacht)); } } - public void sendSetupMessages() { + private void sendSetupMessages() { broadcastMessage(MessageFactory.getRaceXML()); broadcastMessage(MessageFactory.getRegattaXML()); broadcastMessage(MessageFactory.getBoatXML()); @@ -148,22 +204,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { GameState.setWindDirection(direction.doubleValue()); } - // TODO: 29/08/17 wmu16 - This should not be in one function (init and a scheduling update) - public void startGame() { - initialiseBoatPositions(); - Timer t = new Timer(); - t.schedule(new TimerTask() { - @Override - public void run() { - broadcastMessage(MessageFactory.getRaceStatusMessage()); - if (GameState.getCurrentStage() == GameStages.PRE_RACE - || GameState.getCurrentStage() == GameStages.LOBBYING) { - broadcastMessage(MessageFactory.getRaceStartStatusMessage()); - } - } - }, 0, 500); - } // TODO: 29/08/17 wmu16 - This sort of update should be in game state @@ -185,34 +226,10 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { timer.schedule(new TimerTask() { @Override public void run() { - spawnNewCoins(); + GameState.spawnNewToken(); broadcastMessage(MessageFactory.getRaceXML()); } - }, 0, 60000); - } - - /** - * Randomly select a subset of tokens from a pre defined superset - * Broadasts a new race status message to show this update - */ - private void spawnNewCoins() { - - List allTokens = new ArrayList<>(); - Token token1 = new Token(TokenType.BOOST, 57.66946, 11.83154); - Token token2 = new Token(TokenType.BOOST, 57.66877, 11.83382); - Token token3 = new Token(TokenType.BOOST, 57.66914, 11.83965); - Token token4 = new Token(TokenType.BOOST, 57.66684, 11.83214); - allTokens.add(token1); - allTokens.add(token2); - allTokens.add(token3); - allTokens.add(token4); - - GameState.clearTokens(); - Random random = new Random(); - Collections.shuffle(allTokens); - for (int i = 0; i < random.nextInt(allTokens.size()); i++) { - GameState.addToken(allTokens.get(i)); - } + }, 10000, 60000); } /** @@ -223,9 +240,18 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { @Override public void clientConnected(ServerToClientThread serverToClientThread) { logger.debug("Player Connected From " + serverToClientThread.getThread().getName(), 0); + if (serverToClientThreads.size() == 0) { //Sets first client as host. + serverToClientThread.setAsHost(); + } serverToClientThreads.add(serverToClientThread); serverToClientThread.addConnectionListener(this::sendSetupMessages); serverToClientThread.addDisconnectListener(this::clientDisconnected); + + try { + ServerAdvertiser.getInstance().setNumberOfPlayers(GameState.getNumberOfPlayers()); + } catch (IOException e) { + logger.warn("Couldn't update advertisement"); + } } /** @@ -241,12 +267,45 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { ServerToClientThread closedConnection = null; for (ServerToClientThread serverToClientThread : serverToClientThreads) { if (serverToClientThread.getSocket() == player.getSocket()) { - serverToClientThreads.remove(closedConnection); - closedConnection.terminate(); + closedConnection = serverToClientThread; + } else if (GameState.getCurrentStage() != GameStages.RACING){ + serverToClientThread.sendSetupMessages(); } } + serverToClientThreads.remove(closedConnection); - if (GameState.getCurrentStage() != GameStages.RACING) { + try { + ServerAdvertiser.getInstance().setNumberOfPlayers(GameState.getNumberOfPlayers()); + } catch (IOException e) { + logger.warn("Couldn't update advertisement"); + } + + closedConnection.terminate(); + } + + public void startGame() { + try { + ServerAdvertiser.getInstance().unregister(); + } catch (IOException e) { + logger.warn("Error unregistering server"); + } + + initialiseBoatPositions(); + Timer t = new Timer(); + + t.schedule(new TimerTask() { + @Override + public void run() { + broadcastMessage(MessageFactory.getRaceStatusMessage()); + if (GameState.getCurrentStage() == GameStages.PRE_RACE + || GameState.getCurrentStage() == GameStages.LOBBYING) { + broadcastMessage(MessageFactory.getRaceStartStatusMessage()); + } + } + }, 0, 500); + + + if (GameState.getCurrentStage() == GameStages.LOBBYING) { sendSetupMessages(); } } @@ -259,10 +318,6 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate { * Initialise boats to specific spaced out geopoints behind starting line. */ private void initialiseBoatPositions() { - // Getting the start line compound marks -// if (gameClient== null) { -// return; -// } CompoundMark cm = GameState.getMarkOrder().getMarkOrder().get(0); GeoPoint startMark1 = cm.getSubMark(1); GeoPoint startMark2 = cm.getSubMark(2); diff --git a/src/main/java/seng302/gameServer/MessageFactory.java b/src/main/java/seng302/gameServer/MessageFactory.java index c71e6028..a71733cf 100644 --- a/src/main/java/seng302/gameServer/MessageFactory.java +++ b/src/main/java/seng302/gameServer/MessageFactory.java @@ -96,7 +96,7 @@ public class MessageFactory { public static XMLMessage getRaceXML() { List yachts = new ArrayList<>(GameState.getYachts().values()); - List tokens = GameState.getTokens(); + List tokens = GameState.getTokensInPlay(); RaceXMLTemplate raceXMLTemplate = new RaceXMLTemplate(yachts, tokens); xmlGenerator.setRaceTemplate(raceXMLTemplate); @@ -110,11 +110,6 @@ public class MessageFactory { public static XMLMessage getRegattaXML() { //@TODO calculate lat/lng values - xmlGenerator.setRegattaTemplate( - new RegattaXMLTemplate( - "Party Parrot Test Server", "Bermuda Test Course", - 57.6679590, 11.8503233) - ); return new XMLMessage( xmlGenerator.getRegattaAsXml(), @@ -124,7 +119,7 @@ public class MessageFactory { public static XMLMessage getBoatXML() { List yachts = new ArrayList<>(GameState.getYachts().values()); - List tokens = GameState.getTokens(); + List tokens = GameState.getTokensInPlay(); RaceXMLTemplate raceXMLTemplate = new RaceXMLTemplate(yachts, tokens); xmlGenerator.setRaceTemplate(raceXMLTemplate); diff --git a/src/main/java/seng302/gameServer/ServerAdvertiser.java b/src/main/java/seng302/gameServer/ServerAdvertiser.java new file mode 100644 index 00000000..3c5929c2 --- /dev/null +++ b/src/main/java/seng302/gameServer/ServerAdvertiser.java @@ -0,0 +1,173 @@ +package seng302.gameServer; + +import javax.jmdns.JmDNS; +import javax.jmdns.ServiceInfo; +import java.io.IOException; +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.util.Enumeration; +import java.util.Hashtable; + +/** + * Advertises the game server on the local network + */ +public class ServerAdvertiser { + /* + Our service name & protocol + + This must be in the format _Service._Proto.Name as per http://www.ietf.org/rfc/rfc2782.txt + Where Service is unique on the network, and protocol is usually _tcp. + + The pseudo-domain 'local.' must end in a full-stop. This is used to indicate that + the lookup should be performed using an IP multicast query on the local IP network. + + Read this before changing any of the following values + https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/NetServices/Articles/domainnames.html#//apple_ref/doc/uid/TP40002460-SW1 + */ + private static String SERVICE = "_partyatsea"; + private static String PROTOCOL = "_tcp"; + public static String SERVICE_TYPE = SERVICE + "." + PROTOCOL + ".local."; + + private static ServerAdvertiser instance = null; + private static JmDNS jmdnsInstance = null; + private ServiceInfo serviceInfo; // Note: Whenever this is changed, our service will be re-registered on the network. + + private Hashtable props; + + private ServerAdvertiser() throws IOException{ + jmdnsInstance = JmDNS.create(InetAddress.getByName(getLocalHostIp())); + + props = new Hashtable<>(); + props.put("map", ""); + props.put("spacesLeft", "0"); + props.put("capacity", "0"); + props.put("players", "0"); + } + + /** + * Get an instance of the ServerAdvertiser, create an instance if there isn't already one + * @return A ServerAdvertiser Instance + * @throws IOException If there was an exception creating the instance + */ + public static ServerAdvertiser getInstance() throws IOException { + if (instance == null){ + instance = new ServerAdvertiser(); + } + + return instance; + } + + /** + * Set the map name and broadcast an update on the network + * @param mapName The new map name + * @return The current ServerAdvertiser instance + */ + public ServerAdvertiser setMapName(String mapName){ + props.replace("map", mapName); + + if (serviceInfo != null){ + serviceInfo.setText(props); + } + + return instance; + } + + /** + * Set the number of players on the server and broadcast an update on the network + * @param numPlayers The number of players on the server + * @return The current ServerAdvertiser instance + */ + public ServerAdvertiser setNumberOfPlayers(Integer numPlayers){ + props.replace("players", numPlayers.toString()); + + if (serviceInfo != null){ + serviceInfo.setText(props); + } + + return instance; + } + + /** + * Set the max capacity of the server and broadcast an update on the network + * @param capacity The maximum capacity of the server + * @return The current ServerAdvertiser instance + */ + public ServerAdvertiser setCapacity(Integer capacity){ + props.replace("capacity", capacity.toString()); + + if (serviceInfo != null){ + serviceInfo.setText(props); + } + + return instance; + } + + /** + * Register this service on the network + * + * Note: other parameters (map name/spaces left etc) are set after the + * service has been registered + * @param portNo The servers port number + * @param serverName The servers name + */ + public void registerGame(Integer portNo, String serverName) { + + serviceInfo = ServiceInfo.create(SERVICE_TYPE, serverName, portNo, 0, 0, props); + + new java.util.Timer().schedule( + new java.util.TimerTask() { + @Override + public void run() { + try { + jmdnsInstance.registerService(serviceInfo); + } catch (IOException e) { + System.out.println("Failed"); + } + } + }, 0); + } + + /** + * Unregister the service + */ + public void unregister(){ + if (serviceInfo != null) + jmdnsInstance.unregisterService(serviceInfo); + } + + /** + * Gets the local host ip address. + * + * @return the localhost ip address + */ + public static String getLocalHostIp() { + String ipAddress = null; + try { + Enumeration e = NetworkInterface.getNetworkInterfaces(); + while (e.hasMoreElements()) { + NetworkInterface ni = e.nextElement(); + if (ni.isLoopback()) + continue; + if(ni.isPointToPoint()) + continue; + if(ni.isVirtual()) + continue; + + Enumeration addresses = ni.getInetAddresses(); + while(addresses.hasMoreElements()) { + InetAddress address = addresses.nextElement(); + if(address instanceof Inet4Address) { // skip all ipv6 + ipAddress = address.getHostAddress(); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + if (ipAddress == null) { + System.out.println("[HOST] Cannot obtain local host ip address."); + } + return ipAddress; + } +} diff --git a/src/main/java/seng302/gameServer/ServerDescription.java b/src/main/java/seng302/gameServer/ServerDescription.java new file mode 100644 index 00000000..44fc1875 --- /dev/null +++ b/src/main/java/seng302/gameServer/ServerDescription.java @@ -0,0 +1,83 @@ +package seng302.gameServer; + +public class ServerDescription { + private Integer capacity; + private String address; + private Integer portNum; + private String serverName; + private String mapName; + private Integer numPlayers; + + public ServerDescription(String serverName, String mapName, Integer numPlayers, Integer capacity, String address, Integer portNum){ + this.serverName = serverName; + this.mapName = mapName; + this.numPlayers = numPlayers; + this.address = address; + this.portNum = portNum; + this.capacity = capacity; + } + + + public String getName() { + return serverName; + } + + public String getMapName() { + return mapName; + } + + public Integer portNumber() { + return portNum; + } + + public String getAddress(){ + return address; + } + + public Integer getNumPlayers() { + return numPlayers; + } + + public Integer getCapacity(){ + return capacity; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (!ServerDescription.class.isAssignableFrom(obj.getClass())) { + return false; + } + final ServerDescription other = (ServerDescription) obj; + + if (!this.getAddress().equals(other.getAddress()) ) { + return false; + } + + if (!this.portNumber().equals(other.portNumber())){ + return false; + } + + if (!this.getMapName().equals(other.getMapName())){ + return false; + } + + if (!this.getName().equals(other.getName())){ + return false; + } + + if (!this.getCapacity().equals(other.getCapacity())){ + return false; + } + + return true; + } + + @Override + public int hashCode() { + return this.getName().hashCode() + this.getAddress().hashCode() + + this.portNumber().hashCode() + this.getMapName().hashCode(); + } +} diff --git a/src/main/java/seng302/gameServer/ServerPacketParser.java b/src/main/java/seng302/gameServer/ServerPacketParser.java index 62d971ea..cb8ac036 100644 --- a/src/main/java/seng302/gameServer/ServerPacketParser.java +++ b/src/main/java/seng302/gameServer/ServerPacketParser.java @@ -2,6 +2,7 @@ package seng302.gameServer; import java.util.Arrays; import seng302.gameServer.messages.BoatAction; +import seng302.gameServer.messages.ChatterMessage; import seng302.gameServer.messages.ClientType; import seng302.gameServer.messages.CustomizeRequestType; import seng302.gameServer.messages.Message; @@ -28,5 +29,18 @@ public class ServerPacketParser { long type = Message.bytesToLong(Arrays.copyOfRange(payload, 4, 5)); return CustomizeRequestType.getRequestType((int) type); } + + public static ChatterMessage extractChatterText(byte[] payload) { + return new ChatterMessage( + payload[1], new String(Arrays.copyOfRange(payload, 3, payload.length)) + ); + } + + public static ChatterMessage extractChatterText(StreamPacket packet) { + byte[] payload = packet.getPayload(); + return new ChatterMessage( + payload[1], new String(Arrays.copyOfRange(payload, 3, payload.length)) + ); + } } diff --git a/src/main/java/seng302/gameServer/ServerToClientThread.java b/src/main/java/seng302/gameServer/ServerToClientThread.java index 12ecf009..4a2bd158 100644 --- a/src/main/java/seng302/gameServer/ServerToClientThread.java +++ b/src/main/java/seng302/gameServer/ServerToClientThread.java @@ -1,19 +1,22 @@ package seng302.gameServer; -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import seng302.gameServer.messages.*; +import seng302.model.Player; +import seng302.model.ServerYacht; +import seng302.model.stream.packets.PacketType; +import seng302.model.stream.packets.StreamPacket; +import seng302.model.stream.xml.generator.RaceXMLTemplate; +import seng302.utilities.XMLGenerator; + +import java.io.*; import java.net.Socket; import java.net.SocketException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Observable; -import java.util.Observer; import java.util.concurrent.ThreadLocalRandom; import java.util.stream.Collectors; import java.util.zip.CRC32; @@ -22,6 +25,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import seng302.gameServer.messages.BoatAction; import seng302.gameServer.messages.BoatLocationMessage; +import seng302.gameServer.messages.ChatterMessage; import seng302.gameServer.messages.ClientType; import seng302.gameServer.messages.CustomizeRequestType; import seng302.gameServer.messages.Message; @@ -75,6 +79,7 @@ public class ServerToClientThread implements Runnable { private ClientType clientType; private Boolean isRegistered = false; + private Boolean isHost = false; private XMLGenerator xmlGenerator; @@ -141,7 +146,7 @@ public class ServerToClientThread implements Runnable { return; } - if (GameState.getPlayers().size() >= GameState.MAX_PLAYERS){ + if (GameState.getPlayers().size() >= GameState.getCapacity()){ RegistrationResponseMessage responseMessage = new RegistrationResponseMessage(0, RegistrationResponseStatus.FAILURE_FULL); os.write(responseMessage.getBuffer()); return; @@ -199,7 +204,12 @@ public class ServerToClientThread implements Runnable { completeRegistration(requestedType); break; - + case CHATTER_TEXT: + ChatterMessage chatterMessage = ServerPacketParser + .extractChatterText( + new StreamPacket(type, payloadLength, timeStamp, payload)); + GameState.processChatter(chatterMessage, isHost); + break; case RACE_CUSTOMIZATION_REQUEST: Long sourceID = Message .bytesToLong(Arrays.copyOfRange(payload, 0, 3)); @@ -224,6 +234,28 @@ public class ServerToClientThread implements Runnable { logger.warn("Closed serverToClientThread" + thread, 1); } + public void sendSetupMessages() { + xmlGenerator = new XMLGenerator(); + RaceXMLTemplate race = new RaceXMLTemplate(new ArrayList<>(GameState.getYachts().values()), new ArrayList<>()); + + xmlGenerator.setRaceTemplate(race); + + System.out.println(xmlGenerator.getRegatta().getName()); + + XMLMessage xmlMessage; + xmlMessage = new XMLMessage(xmlGenerator.getRegattaAsXml(), XMLMessageSubType.REGATTA, + xmlGenerator.getRegattaAsXml().length()); + sendMessage(xmlMessage); + + xmlMessage = new XMLMessage(xmlGenerator.getBoatsAsXml(), XMLMessageSubType.BOAT, + xmlGenerator.getBoatsAsXml().length()); + sendMessage(xmlMessage); + + xmlMessage = new XMLMessage(xmlGenerator.getRaceAsXml(), XMLMessageSubType.RACE, + xmlGenerator.getRaceAsXml().length()); + sendMessage(xmlMessage); + } + private void closeSocket() { try { socket.close(); @@ -290,10 +322,6 @@ public class ServerToClientThread implements Runnable { return yacht; } - public void sendCollisionMessage(Integer yachtId) { - sendMessage(new YachtEventCodeMessage(yachtId)); - } - public void addConnectionListener(ConnectionListener listener) { connectionListeners.add(listener); } @@ -313,4 +341,8 @@ public class ServerToClientThread implements Runnable { public void addDisconnectListener(DisconnectListener disconnectListener) { this.disconnectListener = disconnectListener; } + + public void setAsHost() { + isHost = true; + } } diff --git a/src/main/java/seng302/gameServer/messages/ChatterMessage.java b/src/main/java/seng302/gameServer/messages/ChatterMessage.java index f312109f..266fca62 100644 --- a/src/main/java/seng302/gameServer/messages/ChatterMessage.java +++ b/src/main/java/seng302/gameServer/messages/ChatterMessage.java @@ -11,9 +11,11 @@ public class ChatterMessage extends Message { private int message_size = 21; private String message; - public ChatterMessage(int message_type, int message_size, String message) { + public ChatterMessage(int message_type, String message) { + byte[] byteMessage = message.getBytes(); + this.message_type = message_type; - this.message_size = message_size; + this.message_size = byteMessage.length; this.message = message; setHeader(new Header(MessageType.CHATTER_TEXT, 1, (short) getSize())); @@ -23,7 +25,7 @@ public class ChatterMessage extends Message { putByte((byte) MESSAGE_VERSION_NUMBER); putInt(message_type, 1); putInt(message_size, 1); - putBytes(message.getBytes()); + putBytes(byteMessage); writeCRC(); rewind(); @@ -34,5 +36,11 @@ public class ChatterMessage extends Message { return MESSAGE_SIZE + message_size; } + public String getMessage() { + return message; + } + public int getMessage_type() { + return message_type; + } } diff --git a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java index c32a6927..b1276814 100644 --- a/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java +++ b/src/main/java/seng302/gameServer/messages/MarkRoundingMessage.java @@ -22,6 +22,7 @@ public class MarkRoundingMessage extends Message{ * @param roundingBoatStatus roundingBoatStatus * @param roundingSide roundingSide * @param markId markId + * @param markType . */ public MarkRoundingMessage(int ackNumber, int raceId, int sourceId, RoundingBoatStatus roundingBoatStatus, RoundingSide roundingSide, MarkType markType, int markId) { diff --git a/src/main/java/seng302/gameServer/messages/YachtEventCodeMessage.java b/src/main/java/seng302/gameServer/messages/YachtEventCodeMessage.java index eb9f557e..e26dad6b 100644 --- a/src/main/java/seng302/gameServer/messages/YachtEventCodeMessage.java +++ b/src/main/java/seng302/gameServer/messages/YachtEventCodeMessage.java @@ -18,13 +18,13 @@ public class YachtEventCodeMessage extends Message { private int eventId; - public YachtEventCodeMessage(Integer subjectId) { + public YachtEventCodeMessage(Integer subjectId, YachtEventType yachtEventType) { timeStamp = System.currentTimeMillis() / 1000L; ack = 0; raceId = 1; destSourceId = subjectId; // collision boat source id incidentId = 0; - eventId = 33; + eventId = yachtEventType.getCode(); setHeader(new Header(MESSAGE_TYPE, 0x01, (short) getSize())); allocateBuffer(); diff --git a/src/main/java/seng302/gameServer/messages/YachtEventType.java b/src/main/java/seng302/gameServer/messages/YachtEventType.java new file mode 100644 index 00000000..b31d45a1 --- /dev/null +++ b/src/main/java/seng302/gameServer/messages/YachtEventType.java @@ -0,0 +1,19 @@ +package seng302.gameServer.messages; + +/** + * Created by wmu16 on 11/09/17. + */ +public enum YachtEventType { + COLLISION(33), + TOKEN(34); + + private int code; + + YachtEventType(int code) { + this.code = code; + } + + public int getCode() { + return code; + } +} diff --git a/src/main/java/seng302/model/ClientYacht.java b/src/main/java/seng302/model/ClientYacht.java index 61d93d5a..d70ff09e 100644 --- a/src/main/java/seng302/model/ClientYacht.java +++ b/src/main/java/seng302/model/ClientYacht.java @@ -15,7 +15,6 @@ import javafx.beans.property.ReadOnlyLongWrapper; import javafx.scene.paint.Color; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import seng302.model.mark.CompoundMark; /** * Yacht class for the racing boat.

Class created to store more variables (eg. boat statuses) @@ -32,7 +31,7 @@ public class ClientYacht extends Observable { @FunctionalInterface public interface MarkRoundingListener { - void notifyRounding(ClientYacht yacht, CompoundMark markPassed, int legNumber); + void notifyRounding(ClientYacht yacht, int legNumber); } private Logger logger = LoggerFactory.getLogger(ClientYacht.class); @@ -63,7 +62,6 @@ public class ClientYacht extends Observable { private ReadOnlyLongWrapper timeTillNextProperty = new ReadOnlyLongWrapper(); private ReadOnlyLongWrapper timeSinceLastMarkProperty = new ReadOnlyLongWrapper(); private ReadOnlyIntegerWrapper placingProperty = new ReadOnlyIntegerWrapper(); - private CompoundMark lastMarkRounded; private Color colour; public ClientYacht(String boatType, Integer sourceId, String hullID, String shortName, @@ -189,14 +187,6 @@ public class ClientYacht extends Observable { return markRoundTime; } - public CompoundMark getLastMarkRounded() { - return lastMarkRounded; - } - - public void setLastMarkRounded(CompoundMark lastMarkRounded) { - this.lastMarkRounded = lastMarkRounded; - } - public GeoPoint getLocation() { return location; } @@ -286,13 +276,12 @@ public class ClientYacht extends Observable { return sailIn; } - public void roundMark(CompoundMark mark, long markRoundTime, long timeSinceLastMark) { + public void roundMark(long markRoundTime, long timeSinceLastMark) { this.markRoundTime = markRoundTime; timeSinceLastMarkProperty.set(timeSinceLastMark); - lastMarkRounded = mark; legNumber++; for (MarkRoundingListener listener : markRoundingListeners) { - listener.notifyRounding(this, lastMarkRounded, legNumber); + listener.notifyRounding(this, legNumber); } } } diff --git a/src/main/java/seng302/model/RaceState.java b/src/main/java/seng302/model/RaceState.java index 501a3417..bab854b6 100644 --- a/src/main/java/seng302/model/RaceState.java +++ b/src/main/java/seng302/model/RaceState.java @@ -15,6 +15,7 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import seng302.model.stream.parser.RaceStartData; import seng302.model.stream.parser.RaceStatusData; +import seng302.utilities.Sounds; /** * Class for storing race data that does not relate to specific vessels or marks such as time or wind. @@ -34,6 +35,7 @@ public class RaceState { private long serverSystemTime; private long expectedStartTime; private boolean isRaceStarted = false; + private boolean gunFired = false; long timeTillStart; private ObservableList playerPositions; private List collisions = new ArrayList<>(); @@ -64,6 +66,10 @@ public class RaceState { if (raceTime < 0) { return "-" + DATE_TIME_FORMAT.format(-1 * (raceTime - 1000)); } else { + if (!gunFired) { + gunFired = true; + Sounds.playCapGunSound(); + } return DATE_TIME_FORMAT.format(serverSystemTime - expectedStartTime); } } diff --git a/src/main/java/seng302/model/ServerYacht.java b/src/main/java/seng302/model/ServerYacht.java index a24e2ed5..f2d54538 100644 --- a/src/main/java/seng302/model/ServerYacht.java +++ b/src/main/java/seng302/model/ServerYacht.java @@ -1,8 +1,5 @@ package seng302.model; -import java.util.HashMap; -import java.util.Observable; -import java.util.Observer; import javafx.scene.paint.Color; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -12,6 +9,10 @@ import seng302.model.mark.Mark; import seng302.model.token.TokenType; import seng302.utilities.GeoUtility; +import java.util.HashMap; +import java.util.Observable; +import java.util.Observer; + /** * Yacht class for the racing boat.

Class created to store more variables (eg. boat statuses) * compared to the XMLParser boat class, also done outside Boat class because some old variables are @@ -135,6 +136,7 @@ public class ServerYacht { /** * Swaps the boats direction from one side of the wind to the other. + * @param windDirection . */ public void tackGybe(Double windDirection) { if (isAuto) { diff --git a/src/main/java/seng302/model/stream/parser/RaceStatusData.java b/src/main/java/seng302/model/stream/parser/RaceStatusData.java index ba836442..867ff282 100644 --- a/src/main/java/seng302/model/stream/parser/RaceStatusData.java +++ b/src/main/java/seng302/model/stream/parser/RaceStatusData.java @@ -57,7 +57,7 @@ public class RaceStatusData { * Returns the data for boats collected form race status packets. * * @return A list of boat data. Boat data is in the form - * [boatID, estTimeToNextMark, estTimeToFinish, legNumber]. + * [boatID, estTimeToNextMark, estTimeToFinish, legNumber, status]. */ public List getBoatData () { return boatData; diff --git a/src/main/java/seng302/model/stream/xml/generator/RegattaXMLTemplate.java b/src/main/java/seng302/model/stream/xml/generator/RegattaXMLTemplate.java index 8bd344ba..edc11ce3 100644 --- a/src/main/java/seng302/model/stream/xml/generator/RegattaXMLTemplate.java +++ b/src/main/java/seng302/model/stream/xml/generator/RegattaXMLTemplate.java @@ -74,4 +74,12 @@ public class RegattaXMLTemplate { public Double getMagneticVariation(){ return magneticVariation; } + + public void setCourseName(String courseName) { + this.courseName = courseName; + } + + public void setRegattaName(String regattaName) { + this.name = regattaName; + } } diff --git a/src/main/java/seng302/utilities/BonjourInstallChecker.java b/src/main/java/seng302/utilities/BonjourInstallChecker.java new file mode 100644 index 00000000..c37b22af --- /dev/null +++ b/src/main/java/seng302/utilities/BonjourInstallChecker.java @@ -0,0 +1,46 @@ +package seng302.utilities; + +import java.awt.*; +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; + +public class BonjourInstallChecker { + private static String INSTALL_URL = "https://support.apple.com/kb/DL999?locale=en_US"; + private static String[] INSTALL_DIRECTORIES = {"C:/Program Files/Bonjour", "C:/Program Files (x86)/Bonjour"}; + + private static Boolean isWindows(){ + return System.getProperty("os.name").startsWith("Windows"); + } + + private static Boolean isBonjourInstalled(){ + for (String dir : INSTALL_DIRECTORIES){ + File file = new File(dir); + + if (file.isDirectory()){ + return true; + } + } + + return false; + } + + public static Boolean isBonjourSupported(){ + if (isWindows()){ + return isBonjourInstalled(); + } + + return true; + } + + public static void openInstallUrl(){ + Runtime rt = Runtime.getRuntime(); + + try { + rt.exec("rundll32 url.dll,FileProtocolHandler " + INSTALL_URL); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/seng302/utilities/Sounds.java b/src/main/java/seng302/utilities/Sounds.java new file mode 100644 index 00000000..b0bd2209 --- /dev/null +++ b/src/main/java/seng302/utilities/Sounds.java @@ -0,0 +1,192 @@ +package seng302.utilities; + +import javafx.scene.media.Media; +import javafx.scene.media.MediaPlayer; + +/** + * Static class for playing sounds throughout the program + * + * Created by kre39 on 28/08/17. + */ +public class Sounds { + + private static MediaPlayer musicPlayer; + private static MediaPlayer soundEffect; + private static MediaPlayer soundPlayer; + private static MediaPlayer hoverSoundPlayer; + + private static boolean hoverInitialized = false; + private static boolean musicMuted = false; + private static boolean soundEffectsMuted = false; + + + public static void stopMusic() { + if (musicPlayer != null) { + musicPlayer.stop(); + } + } + + public static void setMutes() { + if (soundPlayer != null) { + soundPlayer.setMute(soundEffectsMuted); + } + if (soundEffect != null) { + soundEffect.setMute(soundEffectsMuted); + } + if (musicPlayer != null) { + musicPlayer.setMute(musicMuted); + } + } + + public static void stopSoundEffects() { + if (soundEffect != null) { + soundEffect.stop(); + } + } + + public static void toggleAllSounds() { + toggleMuteEffects(); + toggleMuteMusic(); + } + + public static void toggleMuteMusic() { + musicMuted = !musicMuted; + if (musicPlayer != null) { + musicPlayer.setMute(musicMuted); + } + } + + public static void toggleMuteEffects() { + soundEffectsMuted = !soundEffectsMuted; + if (soundPlayer != null) { + soundPlayer.setMute(soundEffectsMuted); + } + if (soundEffect != null) { + soundEffect.setMute(soundEffectsMuted); + } + } + + public static boolean isMusicMuted() { + return musicMuted; + } + + public static boolean isSoundEffectsMuted() { + return soundEffectsMuted; + } + + public static void playRaceMusic() { +// Media menuMusic = new Media(Sounds.class.getClassLoader().getResource("sounds/Chill-house-music-loop-116-bpm.wav").toString()); + Media raceMusic = new Media(Sounds.class.getClassLoader().getResource("sounds/Music-loop-120-bpm.mp3").toString()); + musicPlayer = new MediaPlayer(raceMusic); + musicPlayer.setCycleCount(MediaPlayer.INDEFINITE); + musicPlayer.setVolume(0.3); + musicPlayer.play(); + raceMusic = new Media(Sounds.class.getClassLoader().getResource("sounds/Sounds-of-the-ocean.mp3").toString()); + soundEffect = new MediaPlayer(raceMusic); + soundEffect.setCycleCount(MediaPlayer.INDEFINITE); + soundEffect.setVolume(0.3); + soundEffect.play(); + musicPlayer.setMute(musicMuted); + soundEffect.setMute(soundEffectsMuted); + } + + public static void playMenuMusic() { + Media menuMusic = new Media( + Sounds.class.getClassLoader().getResource("sounds/Elevator-music.mp3").toString()); + musicPlayer = new MediaPlayer(menuMusic); + musicPlayer.setCycleCount(MediaPlayer.INDEFINITE); + musicPlayer.setVolume(0.3); + musicPlayer.play(); + } + + + public static void playFinishMusic() { + Media finishMusic = new Media(Sounds.class.getClassLoader().getResource("sounds/Happy-birthday-song.mp3").toString()); + musicPlayer = new MediaPlayer(finishMusic); + musicPlayer.setCycleCount(MediaPlayer.INDEFINITE); + musicPlayer.setVolume(0.3); + musicPlayer.play(); + musicPlayer.setMute(musicMuted); + } + + public static void playButtonClick() { + if (!soundEffectsMuted) { + Media buttonClick = new Media( + Sounds.class.getClassLoader().getResource("sounds/Button-click-sound.mp3") + .toString()); + soundPlayer = new MediaPlayer(buttonClick); + soundPlayer.setVolume(0.5); + soundPlayer.play(); + soundPlayer.setMute(soundEffectsMuted); + } + } + + public static void playFinishSound() { + if (!soundEffectsMuted) { + Media finishSound = new Media( + Sounds.class.getClassLoader().getResource("sounds/Sms-notification.mp3") + .toString()); + soundPlayer = new MediaPlayer(finishSound); + soundPlayer.setVolume(0.5); + soundPlayer.play(); + } + } + + + public static void playMarkRoundingSound() { + if (!soundEffectsMuted) { + Media markRoundingSound = new Media( + Sounds.class.getClassLoader().getResource("sounds/sms-tone.mp3").toString()); + soundPlayer = new MediaPlayer(markRoundingSound); + soundPlayer.play(); + } + } + + public static void playCapGunSound() { + if (!soundEffectsMuted) { + Media gunSound = new Media( + Sounds.class.getClassLoader().getResource("sounds/Gunshot-sound.mp3").toString()); + soundPlayer = new MediaPlayer(gunSound); + soundPlayer.play(); + } + } + + public static void playCrashSound() { + if (!soundEffectsMuted) { + Media crashSound = new Media( + Sounds.class.getClassLoader().getResource("sounds/Large-metal-door-slam.mp3") + .toString()); + soundPlayer = new MediaPlayer(crashSound); + soundPlayer.play(); + } + } + + public static void playTokenPickupSound() { + if (!soundEffectsMuted) { + Media pickupSound = new Media( + Sounds.class.getClassLoader().getResource("sounds/Coin-pick-up-sound-effect.mp3") + .toString()); + soundPlayer = new MediaPlayer(pickupSound); + soundPlayer.play(); + } + } + + public static void playHoverSound() { + if (!soundEffectsMuted) { + if (!hoverInitialized) { + Media crashSound = new Media( + Sounds.class.getClassLoader().getResource("sounds/Error-sound-effect.mp3") + .toString()); + hoverSoundPlayer = new MediaPlayer(crashSound); + hoverInitialized = true; + } + hoverSoundPlayer.setVolume(0.5); + if (hoverSoundPlayer != null) { + hoverSoundPlayer.stop(); + } + hoverSoundPlayer.play(); + } + } + + +} diff --git a/src/main/java/seng302/utilities/StreamParser.java b/src/main/java/seng302/utilities/StreamParser.java index 1f90eac8..748337df 100644 --- a/src/main/java/seng302/utilities/StreamParser.java +++ b/src/main/java/seng302/utilities/StreamParser.java @@ -2,9 +2,11 @@ package seng302.utilities; import java.io.IOException; import java.io.StringReader; +import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import javafx.util.Pair; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; @@ -62,31 +64,10 @@ public class StreamParser { long windDir = bytesToLong(Arrays.copyOfRange(payload, 18, 20)); long rawWindSpeed = bytesToLong(Arrays.copyOfRange(payload, 20, 22)); -// DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); -// currentTime = format.format((new Date(currentTime))) - RaceStatusData data = new RaceStatusData( windDir, rawWindSpeed, raceStatus, currentTime, expectedStartTime ); -// long timeTillStart = -// ((new Date(expectedStartTime)).getTime() - (new Date(currentTime)).getTime()) / 1000; -// -// if (timeTillStart > 0) { -// timeSinceStart = timeTillStart; -// } else { -// if (raceStatus == 4 || raceStatus == 8) { -// raceFinished = true; -// raceStarted = false; -// } else if (!raceStarted) { -// raceStarted = true; -// raceFinished = false; -// } -// timeSinceStart = timeTillStart; -// } -// - -// int noBoats = payload[22]; int raceType = payload[23]; long boatID, estTimeAtNextMark, estTimeAtFinish; @@ -106,24 +87,6 @@ public class StreamParser { return data; } -// private static void setBoatLegPosition(Yacht updatingBoat, Integer leg){ -// Integer placing = 1; -// if (leg != updatingBoat.getLegNumber() && (raceStarted || raceFinished)) { -// for (Yacht boat : boats.values()) { -// if (boat.getLegNumber() != null && leg <= boat.getLegNumber()){ -// placing += 1; -// } -// } -// updatingBoat.setPlacing(placing.toString()); -// updatingBoat.setLegNumber(leg); -// boatsPos.putIfAbsent(placing, updatingBoat); -// boatsPos.replace(placing, updatingBoat); -// } else if(updatingBoat.getLegNumber() == null){ -// updatingBoat.setPlacing("1"); -// updatingBoat.setLegNumber(leg); -// } -// } - /** * Parses and returns the text from a StreamPacket containing text data for display. * @@ -255,15 +218,15 @@ public class StreamParser { * @return Chatter text message as a string. Returns null if the packet is not of type * CHATTER_TEXT. */ - public static String extractChatterText(StreamPacket packet) { + public static Pair extractChatterText(StreamPacket packet) { if (packet.getType() != PacketType.CHATTER_TEXT) { return null; } byte[] payload = packet.getPayload(); int messageVersionNo = payload[0]; int messageType = payload[1]; - int length = payload[2]; - return new String(Arrays.copyOfRange(payload, 3, 3 + length)); + int length = (int) bytesToLong(new byte[]{payload[2]}); + return new Pair<>(messageType, new String(Arrays.copyOfRange(payload, 3, 3 + length))); } /** @@ -392,26 +355,6 @@ public class StreamParser { }; } - - public static void extractBoatAction(StreamPacket packet) { - byte[] payload = packet.getPayload(); - int messageVersionNo = payload[0]; - long actionType = bytesToLong(Arrays.copyOfRange(payload, 0, 1)); - if (actionType == 1) { - System.out.println("VMG"); - } else if (actionType == 2) { - System.out.println("SAILS IN"); - } else if (actionType == 3) { - System.out.println("SAILS OUT"); - } else if (actionType == 4) { - System.out.println("TACK/GYBE"); - } else if (actionType == 5) { - System.out.println("UPWIND"); - } else if (actionType == 6) { - System.out.println("DOWNWIND"); - } - } - /** * takes an array of up to 7 bytes and returns a positive long constructed from the input bytes * diff --git a/src/main/java/seng302/utilities/XMLGenerator.java b/src/main/java/seng302/utilities/XMLGenerator.java index 4915bea1..5bcde1cc 100644 --- a/src/main/java/seng302/utilities/XMLGenerator.java +++ b/src/main/java/seng302/utilities/XMLGenerator.java @@ -3,13 +3,15 @@ package seng302.utilities; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; +import seng302.gameServer.messages.XMLMessageSubType; +import seng302.model.stream.xml.generator.RaceXMLTemplate; +import seng302.model.stream.xml.generator.RegattaXMLTemplate; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; -import seng302.model.stream.xml.generator.RaceXMLTemplate; -import seng302.model.stream.xml.generator.RegattaXMLTemplate; -import seng302.gameServer.messages.XMLMessageSubType; +import java.util.Random; /** * An XML generator to generate the Race, Boat, and Regatta XML dynamically @@ -23,6 +25,11 @@ public class XMLGenerator { private RegattaXMLTemplate regatta; private RaceXMLTemplate race; + public static RegattaXMLTemplate DEFAULT_REGATTA = new RegattaXMLTemplate("Party Parrot Test Server " + new Random().nextInt(100), + "Bermuda", + 57.6679590, + 11.8503233); + /** * Set up a configuration instance for Apache Freemake */ @@ -39,7 +46,7 @@ public class XMLGenerator { /** * Create an instance of the XML Generator */ - public XMLGenerator(){ + public XMLGenerator() { setupConfiguration(); } @@ -106,7 +113,7 @@ public class XMLGenerator { public String getRegattaAsXml(){ String result = null; - if (regatta == null) return null; + if (regatta == null) regatta = DEFAULT_REGATTA; try { result = parseToXmlString(REGATTA_TEMPLATE_NAME, XMLMessageSubType.REGATTA); @@ -160,4 +167,16 @@ public class XMLGenerator { return result; } + + public static void setDefaultRaceName(String raceName){ + DEFAULT_REGATTA.setRegattaName(raceName); + } + + public static void setDefaultMapName(String mapName){ + DEFAULT_REGATTA.setCourseName(mapName); + } + + public RegattaXMLTemplate getRegatta() { + return regatta; + } } \ No newline at end of file diff --git a/src/main/java/seng302/visualiser/ClientToServerThread.java b/src/main/java/seng302/visualiser/ClientToServerThread.java index cfb45cf6..e53aed22 100644 --- a/src/main/java/seng302/visualiser/ClientToServerThread.java +++ b/src/main/java/seng302/visualiser/ClientToServerThread.java @@ -18,6 +18,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import seng302.gameServer.messages.BoatAction; import seng302.gameServer.messages.BoatActionMessage; +import seng302.gameServer.messages.ChatterMessage; import seng302.gameServer.messages.ClientType; import seng302.gameServer.messages.CustomizeRequestMessage; import seng302.gameServer.messages.CustomizeRequestType; @@ -281,9 +282,17 @@ public class ClientToServerThread implements Runnable { * @param message The given message type. */ private void sendBoatActionMessage(BoatActionMessage message) { + sendByteBuffer(message.getBuffer()); + } + + public void sendChatterMessage(String message) { + sendByteBuffer(new ChatterMessage(clientId, message).getBuffer()); + } + + private void sendByteBuffer(byte[] bytes) { if (clientId != -1) { try { - os.write(message.getBuffer()); + os.write(bytes); } catch (IOException e) { logger.warn("IOException on attempting to sendBoatAction from Client"); notifyDisconnectListeners("Cannot communicate with server"); @@ -292,7 +301,7 @@ public class ClientToServerThread implements Runnable { } } - private void closeSocket() { + public void closeSocket() { try { socket.close(); socketOpen = false; @@ -357,7 +366,7 @@ public class ClientToServerThread implements Runnable { } } - int getClientId () { + public int getClientId () { return clientId; } } diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 94ed080c..32f65871 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -1,8 +1,13 @@ package seng302.visualiser; import java.io.IOException; +import java.text.SimpleDateFormat; import java.time.ZoneId; import java.time.ZoneOffset; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; import java.util.Map; import java.util.TimeZone; import javafx.application.Platform; @@ -12,12 +17,17 @@ import javafx.fxml.FXMLLoader; import javafx.scene.Node; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; +import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.layout.Pane; +import javafx.util.Pair; +import seng302.gameServer.GameStages; import seng302.gameServer.GameState; import seng302.gameServer.MainServerThread; +import seng302.gameServer.ServerDescription; import seng302.gameServer.messages.BoatAction; import seng302.gameServer.messages.BoatStatus; +import seng302.gameServer.messages.YachtEventType; import seng302.model.ClientYacht; import seng302.model.RaceState; import seng302.model.stream.packets.StreamPacket; @@ -28,12 +38,15 @@ import seng302.model.stream.parser.RaceStatusData; import seng302.model.stream.parser.YachtEventData; import seng302.model.stream.xml.parser.RaceXMLData; import seng302.model.stream.xml.parser.RegattaXMLData; +import seng302.utilities.Sounds; import seng302.utilities.StreamParser; +import seng302.utilities.XMLGenerator; import seng302.utilities.XMLParser; import seng302.visualiser.controllers.FinishScreenViewController; import seng302.visualiser.controllers.LobbyController; -import seng302.visualiser.controllers.LobbyController.CloseStatus; +import seng302.visualiser.controllers.LobbyController_old; import seng302.visualiser.controllers.RaceViewController; +import seng302.visualiser.controllers.ViewManager; /** * This class is a client side instance of a yacht racing game in JavaFX. The game is instantiated @@ -53,6 +66,8 @@ public class GameClient { private RaceState raceState = new RaceState(); private LobbyController lobbyController; + private ArrayList finishedBoats = new ArrayList<>(); + private ObservableList clientLobbyList = FXCollections.observableArrayList(); /** @@ -62,6 +77,17 @@ public class GameClient { */ public GameClient(Pane holder) { this.holderPane = holder; +// if (holderPane.getParent() == null) { +// this.holderPane.parentProperty().addListener(((observable, oldValue, newValue) -> { +// if (newValue != null) { +// newValue.getScene().setOnKeyPressed(this::keyPressed); +// newValue.getScene().setOnKeyReleased(this::keyReleased); +// } +// })); +// } else { +// this.holderPane.getParent().getScene().setOnKeyPressed(this::keyPressed); +// this.holderPane.getParent().getScene().setOnKeyReleased(this::keyReleased); +// } } /** @@ -78,28 +104,36 @@ public class GameClient { Platform.runLater(this::loadStartScreen); }); socketThread.addStreamObserver(this::parsePackets); - LobbyController lobbyController = loadLobby(); - lobbyController.setSocketThread(socketThread); - lobbyController.setPlayerID(socketThread.getClientId()); - lobbyController.setPlayerListSource(clientLobbyList); - lobbyController.disableReadyButton(); - if (regattaData != null){ - lobbyController.setTitle(regattaData.getRegattaName()); - lobbyController.setCourseName(regattaData.getCourseName()); - } - else{ - lobbyController.setTitle(ipAddress); - lobbyController.setCourseName(""); + + ViewManager.getInstance().setPlayerList(clientLobbyList); + + while (regattaData == null){ + try { + Thread.sleep(100); + } catch (InterruptedException e) { + e.printStackTrace(); + } } - lobbyController.addCloseListener((exitCause) -> { - this.tearDownConnection(); - this.loadStartScreen(); - }); - this.lobbyController = lobbyController; + ViewManager.getInstance().setProperty("serverName", regattaData.getRegattaName()); + ViewManager.getInstance().setProperty("mapName", regattaData.getCourseName()); + + // TODO disable ready button; + + //LobbyController_old lobbyController = loadLobby(); + //lobbyController.setSocketThread(socketThread); + //lobbyController.setPlayerID(socketThread.getClientId()); + //lobbyController.setPlayerListSource(clientLobbyList); + //lobbyController.disableReadyButton(); + + + +// lobbyController.addCloseListener((exitCause) -> this.loadStartScreen()); + this.lobbyController = ViewManager.getInstance().goToLobby(true); + } catch (IOException ioe) { showConnectionError("Unable to find server"); - Platform.runLater(this::loadStartScreen); + //Platform.runLater(this::loadStartScreen); } } @@ -108,41 +142,30 @@ public class GameClient { * @param ipAddress IP to connect to. * @param portNumber Port to connect to. */ - public void runAsHost(String ipAddress, Integer portNumber) { - server = new MainServerThread(); - try { - startClientToServerThread(ipAddress, portNumber); - socketThread.addDisconnectionListener((cause) -> { - this.tearDownConnection(); - Platform.runLater(this::loadStartScreen); - }); - LobbyController lobbyController = loadLobby(); - lobbyController.setSocketThread(socketThread); - lobbyController.setPlayerID(socketThread.getClientId()); - lobbyController.setPlayerListSource(clientLobbyList); - if (regattaData != null) { - lobbyController.setTitle("Hosting: " + regattaData.getRegattaName()); - lobbyController.setCourseName(regattaData.getCourseName()); - } else { - lobbyController.setTitle("Hosting: " + ipAddress); - lobbyController.setCourseName(""); - } + public ServerDescription runAsHost(String ipAddress, Integer portNumber, String serverName, Integer maxPlayers) { + XMLGenerator.setDefaultRaceName(serverName); + GameState.setMaxPlayers(maxPlayers); - lobbyController.addCloseListener(exitCause -> { - if (exitCause == CloseStatus.READY) { - GameState.resetStartTime(); - lobbyController.disableReadyButton(); - server.startGame(); - } else if (exitCause == CloseStatus.LEAVE) { - tearDownConnection(); - loadStartScreen(); - } - }); - this.lobbyController = lobbyController; - } catch (IOException ioe) { + server = new MainServerThread(); + + try { + startClientToServerThread(ipAddress, 4942); + } catch (IOException e) { showConnectionError("Cannot connect to server as host"); - Platform.runLater(this::loadStartScreen); } + + while (regattaData == null){ + try { + Thread.sleep(100); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + this.lobbyController = ViewManager.getInstance().goToLobby(false); + + ViewManager.getInstance().setPlayerList(clientLobbyList); + return new ServerDescription(serverName, regattaData.getCourseName(), GameState.getNumberOfPlayers(), GameState.getCapacity(), ipAddress, 4942); } private void tearDownConnection() { @@ -183,7 +206,7 @@ public class GameClient { * * @return the lobby controller. */ - private LobbyController loadLobby() { + private LobbyController_old loadLobby() { FXMLLoader fxmlLoader = new FXMLLoader( GameClient.class.getResource("/views/LobbyView.fxml")); try { @@ -202,9 +225,15 @@ public class GameClient { raceView = fxmlLoader.getController(); ClientYacht player = allBoatsMap.get(socketThread.getClientId()); raceView.loadRace(allBoatsMap, courseData, raceState, player); + } + + private void loadFinishScreenView() { + Sounds.stopMusic(); + Sounds.stopSoundEffects(); + Sounds.playFinishMusic(); FXMLLoader fxmlLoader = loadFXMLToHolder("/views/FinishScreenView.fxml"); FinishScreenViewController controller = fxmlLoader.getController(); controller.setFinishers(raceState.getPlayerPositions()); @@ -258,8 +287,8 @@ public class GameClient { if (courseData == null) { //workaround for object comparisons. Avoid recreating courseData = raceXMLData; } - if (raceView != null) { - raceView.updateRaceData(raceXMLData); + if (raceView != null) { //Token update + raceView.updateTokens(raceXMLData); } break; @@ -272,11 +301,14 @@ public class GameClient { clientLobbyList.add(boat.getBoatName()) ); raceState.setBoats(allBoatsMap.values()); + if (lobbyController != null) { + lobbyController.setBoats(allBoatsMap); + } break; case RACE_START_STATUS: raceState.updateState(StreamParser.extractRaceStartStatus(packet)); - if (lobbyController != null) lobbyController.updateRaceState(raceState); + if (lobbyController != null) Platform.runLater(() -> lobbyController.updateRaceState(raceState)); break; case BOAT_LOCATION: @@ -288,15 +320,37 @@ public class GameClient { break; case YACHT_EVENT_CODE: - showCollisionAlert(StreamParser.extractYachtEventCode(packet)); + YachtEventData yachtEventData = StreamParser.extractYachtEventCode(packet); + if (yachtEventData.getEventId() == YachtEventType.COLLISION.getCode()) { + showCollisionAlert(StreamParser.extractYachtEventCode(packet)); + } else if (yachtEventData.getEventId() == YachtEventType.TOKEN.getCode()) { + showPickUp(); + } break; + + case CHATTER_TEXT: + Pair playerIdMessagePair = StreamParser + .extractChatterText(packet); + raceView.updateChatHistory( + allBoatsMap.get(playerIdMessagePair.getKey()).getColour(), + playerIdMessagePair.getValue() + ); } } } private void startRaceIfAllDataReceived() { if (allXMLReceived() && raceView == null) { - loadRaceView(); + raceView = ViewManager.getInstance().loadRaceView(); + + ClientYacht player = allBoatsMap.get(socketThread.getClientId()); + raceView.loadRace(allBoatsMap, courseData, raceState, player); + + raceView.getSendPressedProperty().addListener((obs, old, isPressed) -> { + if (isPressed) { + formatAndSendChatMessage(raceView.readChatInput()); + } + }); } } @@ -330,7 +384,6 @@ public class GameClient { if (allXMLReceived()) { ClientYacht clientYacht = allBoatsMap.get(roundingData.getBoatId()); clientYacht.roundMark( - courseData.getCompoundMarks().get(roundingData.getMarkId()), roundingData.getTimeStamp(), raceState.getRaceTime() - roundingData.getTimeStamp() ); @@ -345,6 +398,9 @@ public class GameClient { for (ClientYacht yacht : allBoatsMap.values()) { if (yacht.getBoatStatus() != BoatStatus.FINISHED.getCode()) { raceFinished = false; + } else if (!finishedBoats.contains(yacht)) { + finishedBoats.add(yacht); + Sounds.playFinishSound(); } } @@ -360,6 +416,7 @@ public class GameClient { } if (raceFinished) { + Sounds.playFinishSound(); close(); loadFinishScreenView(); } @@ -382,7 +439,13 @@ public class GameClient { * Handle the key-pressed event from the text field. * @param e The key event triggering this call */ - private void keyPressed(KeyEvent e) { + public void keyPressed(KeyEvent e) { + if (raceView.isChatInputFocused()) { + if (e.getCode() == KeyCode.ENTER) { + formatAndSendChatMessage(raceView.readChatInput()); + } + return; + } switch (e.getCode()) { case SPACE: // align with vmg socketThread.sendBoatAction(BoatAction.VMG); break; @@ -391,12 +454,16 @@ public class GameClient { case PAGE_DOWN: // downwind socketThread.sendBoatAction(BoatAction.DOWNWIND); break; case ENTER: // tack/gybe + // if chat box is active take whatever is in there and send it to server socketThread.sendBoatAction(BoatAction.TACK_GYBE); break; } } - private void keyReleased(KeyEvent e) { + public void keyReleased(KeyEvent e) { + if (raceView.isChatInputFocused()) { + return; + } switch (e.getCode()) { //TODO 12/07/17 Determine the sail state and send the appropriate packet (eg. if sails are in, send a sail out packet) case SHIFT: // sails in/sails out @@ -417,13 +484,47 @@ public class GameClient { * Tells race view to show a collision animation. */ private void showCollisionAlert(YachtEventData yachtEventData) { - // 33 is the agreed code to show collision - if (yachtEventData.getEventId() == 33) { - raceState.storeCollision( - allBoatsMap.get( - yachtEventData.getSubjectId().intValue() - ) + Sounds.playCrashSound(); + raceState.storeCollision( + allBoatsMap.get( + yachtEventData.getSubjectId().intValue() + ) + ); + } + + // TODO: 11/09/17 wmu16 - Add in functionality to viually indicate a pickup to a user + private void showPickUp() { + Sounds.playTokenPickupSound(); + } + + private void formatAndSendChatMessage(String rawChat) { + if (rawChat.length() > 0) { + socketThread.sendChatterMessage( + new SimpleDateFormat("[HH:mm:ss] ").format(new Date()) + + allBoatsMap.get(socketThread.getClientId()).getShortName() + ": " + rawChat ); } } + + public void startGame(){ + server.startGame(); + } + + public ClientToServerThread getServerThread() { + return socketThread; + } + + public List getPlayerNames(){ + return Collections.unmodifiableList(clientLobbyList.sorted()); + } + + public void stopGame() { + GameState.setCurrentStage(GameStages.CANCELLED); + if (server != null) server.terminate(); + if (socketThread != null) socketThread.setSocketToClose(); + } + + public Map getAllBoatsMap() { + return allBoatsMap; + } } diff --git a/src/main/java/seng302/visualiser/GameView.java b/src/main/java/seng302/visualiser/GameView.java index d0d1a5e2..a7e68ce3 100644 --- a/src/main/java/seng302/visualiser/GameView.java +++ b/src/main/java/seng302/visualiser/GameView.java @@ -1,49 +1,24 @@ package seng302.visualiser; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javafx.animation.AnimationTimer; -import javafx.animation.KeyFrame; -import javafx.animation.KeyValue; -import javafx.animation.Timeline; import javafx.application.Platform; import javafx.collections.ObservableList; import javafx.geometry.Point2D; import javafx.scene.*; import javafx.scene.image.ImageView; -import javafx.scene.input.KeyCode; -import javafx.scene.input.KeyEvent; -import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import javafx.scene.paint.Paint; -import javafx.scene.shape.Circle; import javafx.scene.shape.Polygon; -import javafx.scene.text.Text; -import javafx.util.Duration; import seng302.gameServer.messages.RoundingSide; -import seng302.model.ClientYacht; import seng302.model.GeoPoint; import seng302.model.Limit; import seng302.model.mark.CompoundMark; import seng302.model.mark.Corner; import seng302.model.mark.Mark; -import seng302.model.token.Token; import seng302.utilities.GeoUtility; -import seng302.visualiser.fxObjects.assets_2D.AnnotationBox; -import seng302.visualiser.fxObjects.assets_2D.BoatObject; -import seng302.visualiser.fxObjects.assets_2D.CourseBoundary; -import seng302.visualiser.fxObjects.assets_2D.Gate; -import seng302.visualiser.fxObjects.assets_2D.MarkArrowFactory; -import seng302.visualiser.fxObjects.assets_2D.Marker; -import seng302.visualiser.fxObjects.assets_3D.ModelFactory; -import seng302.visualiser.fxObjects.assets_3D.ModelType; -import seng302.visualiser.map.Boundary; -import seng302.visualiser.map.CanvasMap; +import seng302.visualiser.fxObjects.assets_2D.*; + +import java.util.*; /** * Created by cir27 on 20/07/17. @@ -51,8 +26,8 @@ import seng302.visualiser.map.CanvasMap; public class GameView extends Pane { private double bufferSize = 50; - private double panelWidth = 1260; // it should be 1280 but, minors 40 to cancel the bias. - private double panelHeight = 960; + private double horizontalBuffer = 0; + private double canvasWidth = 1100; private double canvasHeight = 920; private boolean horizontalInversion = false; @@ -61,186 +36,31 @@ public class GameView extends Pane { private ScaleDirection scaleDirection; private GeoPoint minLatPoint, minLonPoint, maxLatPoint, maxLonPoint; private double referencePointX, referencePointY; - private double metersPerPixelX, metersPerPixelY; - final double SCALE_DELTA = 1.1; - - private Text fpsDisplay = new Text(); private Polygon raceBorder = new CourseBoundary(); /* Note that if either of these is null then values for it have not been added and the other should be used as the limits of the map. */ private List borderPoints; - private Map markerObjects; + private Map markerObjects; - private Map boatObjects = new HashMap<>(); - private Map annotations = new HashMap<>(); private ObservableList gameObjects; - private BoatObject selectedBoat = null; - private Group annotationsGroup = new Group(); - private Group wakesGroup = new Group(); - private Group boatObjectGroup = new Group(); - private Group trails = new Group(); private Group markers = new Group(); private Group tokens = new Group(); private List course = new ArrayList<>(); - private List mapTokens; private ImageView mapImage = new ImageView(); - private Camera camera; - - //FRAME RATE - - private AnimationTimer timer; - private int NUM_SAMPLES = 10; - private final long[] frameTimes = new long[NUM_SAMPLES]; - private Double frameRate = 60.0; - private int frameTimeIndex = 0; - private boolean arrayFilled = false; - private ClientYacht playerYacht; - private double windDir = 0.0; - - double scaleFactor = 1; - - private void zoomOut() { - scaleFactor = 0.1; - if (this.getScaleX() > 0.5) { - this.setScaleX(this.getScaleX() - scaleFactor); - this.setScaleY(this.getScaleY() - scaleFactor); - } - } - - private void zoomIn() { - scaleFactor = 0.10; - if (this.getScaleX() < 2.5) { - this.setScaleX(this.getScaleX() + scaleFactor); - this.setScaleY(this.getScaleY() + scaleFactor); - } - } private enum ScaleDirection { HORIZONTAL, VERTICAL } - - private void trackBoat() { - if (selectedBoat != null) { - double x = selectedBoat.getBoatLayoutX(); - double y = selectedBoat.getBoatLayoutY(); - double displacementX = this.getWidth(); - double displacementY = this.getHeight(); - this.setLayoutX((-x + (displacementX / 2.0)) * this.getScaleX()); - this.setLayoutY((-y + (displacementY / 2.0)) * this.getScaleY()); - } else { - this.setLayoutX(0); - this.setLayoutY(0); - } - } - public GameView () { gameObjects = this.getChildren(); -// AmbientLight ambientLight = new AmbientLight(new Color(1,1,1,0.4)); -// ambientLight.setOpacity(0.5); -// gameObjects.add(ambientLight); - // create image view for map, bind panel size to image - camera = new ParallelCamera(); - camera.setTranslateZ(-500); - camera.setFarClip(Double.MAX_VALUE); - camera.setNearClip(0.1); - PointLight pl = new PointLight(); - pl.setLightOn(true); - pl.layoutYProperty().bind(camera.layoutYProperty()); - pl.layoutXProperty().bind(camera.layoutXProperty()); -// gameObjects.add(camera); - this.sceneProperty().addListener((obs, oldValue, scene) -> { - if (scene != null) { - scene.setCamera(camera); - } - }); - initializeTimer(); - gameObjects.addAll(mapImage, raceBorder, markers, tokens, pl); + gameObjects.addAll(mapImage, raceBorder, markers, tokens); } - private void initializeTimer() { - Arrays.fill(frameTimes, 1_000_000_000 / 60); - timer = new AnimationTimer() { - private long lastTime = 0; - private int FPSCount = 30; - private Double frameRate = 60.0; - private int index = 0; - private boolean arrayFilled = false; - private long sum = 1_000_000_000 / 3; - - @Override - public void handle(long now) { - trackBoat(); - if (lastTime == 0) { - lastTime = now; - } else { - if (now - lastTime >= (1e8 / 60)) { //Fix for framerate going above 60 when minimized - long oldFrameTime = frameTimes[frameTimeIndex]; - frameTimes[frameTimeIndex] = now; - frameTimeIndex = (frameTimeIndex + 1) % frameTimes.length; - if (frameTimeIndex == 0) { - arrayFilled = true; - } - long elapsedNanos; - if (arrayFilled) { - elapsedNanos = now - oldFrameTime; - long elapsedNanosPerFrame = elapsedNanos / frameTimes.length; - frameRate = 1_000_000_000.0 / elapsedNanosPerFrame; - if (FPSCount-- == 0) { - FPSCount = 30; - drawFps(frameRate); - } - } - lastTime = now; - } - } -// boatObjects.forEach((boat, boatObject) -> boatObject.updateLocation()); - } - }; - } - - /** - * First find the top right and bottom left points' geo locations, then retrieve map from google - * to display on image view. - Haoming 22/5/2017 - */ - private void drawGoogleMap() { - findMetersPerPixel(); - Point2D topLeftPoint = findScaledXY(maxLatPoint.getLat(), minLonPoint.getLng()); - // distance from top left extreme to panel origin (top left corner) - double distanceFromTopLeftToOrigin = Math.sqrt( - Math.pow(topLeftPoint.getX() * metersPerPixelX, 2) + Math - .pow(topLeftPoint.getY() * metersPerPixelY, 2)); - // angle from top left extreme to panel origin - double bearingFromTopLeftToOrigin = Math - .toDegrees(Math.atan2(-topLeftPoint.getX(), topLeftPoint.getY())); - // the top left extreme - GeoPoint topLeftPos = new GeoPoint(maxLatPoint.getLat(), minLonPoint.getLng()); - GeoPoint originPos = GeoUtility - .getGeoCoordinate(topLeftPos, bearingFromTopLeftToOrigin, distanceFromTopLeftToOrigin); - - // distance from origin corner to bottom right corner of the panel - double distanceFromOriginToBottomRight = Math.sqrt( - Math.pow(panelHeight * metersPerPixelY, 2) + Math - .pow(panelWidth * metersPerPixelX, 2)); - double bearingFromOriginToBottomRight = Math - .toDegrees(Math.atan2(panelWidth, -panelHeight)); - GeoPoint bottomRightPos = GeoUtility - .getGeoCoordinate(originPos, bearingFromOriginToBottomRight, - distanceFromOriginToBottomRight); - - Boundary boundary = new Boundary(originPos.getLat(), bottomRightPos.getLng(), - bottomRightPos.getLat(), originPos.getLng()); - CanvasMap canvasMap = new CanvasMap(boundary); - mapImage.setImage(canvasMap.getMapImage()); - mapImage.fitWidthProperty().bind(((AnchorPane) this.getParent()).heightProperty()); - mapImage.fitHeightProperty().bind(((AnchorPane) this.getParent()).heightProperty()); - } - - // TODO: 16/08/17 Break up this function /** * Adds a course to the GameView. The view is scaled accordingly unless a border is set in which * case the course is added relative ot the border. @@ -303,10 +123,10 @@ public class GameView extends Pane { rescaleRace(new ArrayList<>(markerObjects.keySet())); } //Move the Markers to initial position. - markerObjects.forEach(((mark, marker) -> { + markerObjects.forEach(((mark, marker2D) -> { Point2D p2d = findScaledXY(mark.getLat(), mark.getLng()); - marker.setLayoutX(p2d.getX()); - marker.setLayoutY(p2d.getY()); + marker2D.setLayoutX(p2d.getX()); + marker2D.setLayoutY(p2d.getY()); })); Platform.runLater(() -> { markers.getChildren().clear(); @@ -396,9 +216,9 @@ public class GameView extends Pane { * @param colour The desired colour of the mark */ private void makeAndBindMarker(Mark observableMark, Paint colour) { - Marker marker = new Marker(colour); + Marker2D marker2D = new Marker2D(colour); // marker.addArrows(MarkArrowFactory.RoundingSide.PORT, ThreadLocalRandom.current().nextDouble(91, 180), ThreadLocalRandom.current().nextDouble(1, 90)); - markerObjects.put(observableMark, marker); + markerObjects.put(observableMark, marker2D); observableMark.addPositionListener((mark, lat, lon) -> { Point2D p2d = findScaledXY(lat, lon); markerObjects.get(mark).setLayoutX(p2d.getX()); @@ -414,7 +234,7 @@ public class GameView extends Pane { * @param colour The desired colour of the gate. * @return the new gate. */ - private Gate makeAndBindGate(Marker m1, Marker m2, Paint colour) { + private Gate makeAndBindGate(Marker2D m1, Marker2D m2, Paint colour) { Gate gate = new Gate(colour); gate.startXProperty().bind( m1.layoutXProperty() @@ -442,6 +262,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()); @@ -456,139 +279,11 @@ 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(); calculateReferencePointLocation(minLonToMaxLon); -// drawGoogleMap(); - } - - /** - * Replaces all tokens in the course with those passed in - * - * @param newTokens the tokens to be put on the course. - */ - public void updateTokens(List newTokens) { - mapTokens = new ArrayList<>(); - for (Token token : newTokens) { - Point2D location = findScaledXY(token.getLat(), token.getLng()); - Node tokenObject = ModelFactory.importModel(ModelType.VELOCITY_PICKUP).getAssets(); - tokenObject.setLayoutX(location.getX()); - tokenObject.setLayoutY(location.getY()); - mapTokens.add(tokenObject); - } - - Platform.runLater(() -> { - tokens.getChildren().clear(); - tokens.getChildren().addAll(mapTokens); - }); - } - - // TODO: 16/08/17 initialize zooming internal to GameView only - /** - * Enables zoom. Has to be called after this is added to a scene. - */ - public void enableZoom () { - if (this.getScene() != null) { - this.getScene().addEventHandler(KeyEvent.KEY_PRESSED, (event) -> { - if (event.getCode() == KeyCode.Z) { - zoomIn(); - } else if (event.getCode() == KeyCode.X) { - zoomOut(); - } - }); - } - } - - private void setSelectedBoat(BoatObject bo, Boolean isSelected) { - if (this.selectedBoat == bo && !isSelected) { - this.selectedBoat = null; - boatObjects.forEach((boat, group) -> - group.setIsSelected(false) - ); - } else if (isSelected) { - this.selectedBoat = bo; - for (BoatObject group : boatObjects.values()) { - if (group != bo) { - group.setIsSelected(false); - } - } - } - } - - /** - * Draws all the boats. - * @param yachts The yachts to set in the race - */ - public void setBoats(List yachts) { - BoatObject newBoat; - final List wakes = new ArrayList<>(); - for (ClientYacht clientYacht : yachts) { - Color colour = clientYacht.getColour(); - newBoat = new BoatObject(); - newBoat.addSelectedBoatListener(this::setSelectedBoat); - newBoat.setFill(colour); - boatObjects.put(clientYacht, newBoat); - createAndBindAnnotationBox(clientYacht, colour); -// wakesGroup.getChildren().add(newBoat.getWake()); - wakes.add(newBoat.getWake()); - boatObjectGroup.getChildren().add(newBoat); - trails.getChildren().add(newBoat.getTrail()); - - clientYacht.addLocationListener((boat, lat, lon, heading, sailIn, velocity) -> { - BoatObject bo = boatObjects.get(boat); - Point2D p2d = findScaledXY(lat, lon); - bo.moveTo(p2d.getX(), p2d.getY(), heading, velocity, sailIn, windDir); - annotations.get(boat).setLocation(p2d.getX(), p2d.getY()); - bo.setTrajectory( - heading, - velocity, - metersPerPixelX, - metersPerPixelY); - }); - } - annotationsGroup.getChildren().addAll(annotations.values()); - Platform.runLater(() -> { - gameObjects.addAll(trails); - gameObjects.addAll(wakes); - gameObjects.addAll(annotationsGroup); - gameObjects.addAll(boatObjectGroup); - }); - } - - private void createAndBindAnnotationBox(ClientYacht clientYacht, Paint colour) { - AnnotationBox newAnnotation = new AnnotationBox(); - newAnnotation.setFill(colour); - newAnnotation.addAnnotation( - "name", "Player: " + clientYacht.getShortName() - ); -// newAnnotation.addAnnotation( -// "velocity", -// yacht.getVelocityProperty(), -// (velocity) -> String.format("Speed: %.2f ms", velocity.doubleValue()) -// ); -// newAnnotation.addAnnotation( -// "nextMark", -// yacht.timeTillNextProperty(), -// (time) -> { -// DateFormat format = new SimpleDateFormat("mm:ss"); -// return format.format(time); -// } -// ); -// newAnnotation.addAnnotation( -// "lastMark", -// yacht.timeTillNextProperty(), -// (time) -> { -// DateFormat format = new SimpleDateFormat("mm:ss"); -// return format.format(time); -// } -// ); - annotations.put(clientYacht, newAnnotation); - } - - private void drawFps(Double fps) { - Platform.runLater(() -> fpsDisplay.setText(String.format("%d FPS", Math.round(fps)))); } /** @@ -651,6 +346,7 @@ public class GameView extends Pane { referencePointX += ((canvasWidth - (bufferSize + bufferSize)) - (minLonToMaxLon * distanceScaleFactor)) / 2; + referencePointX += horizontalBuffer; } if (horizontalInversion) { referencePointX = canvasWidth - bufferSize - (referencePointX - bufferSize); @@ -692,10 +388,6 @@ public class GameView extends Pane { return horiDistance; } - private Point2D findScaledXY(GeoPoint unscaled) { - return findScaledXY(unscaled.getLat(), unscaled.getLng()); - } - private Point2D findScaledXY(double unscaledLat, double unscaledLon) { double distanceFromReference; double angleFromReference; @@ -738,150 +430,13 @@ public class GameView extends Pane { return new Point2D(xAxisLocation, yAxisLocation); } - /** - * Find the number of meters per pixel. - */ - private void findMetersPerPixel() { - Point2D p1, p2; - GeoPoint g1, g2; - double theta, distance, dx, dy, dHorizontal, dVertical; - g1 = new GeoPoint(maxLatPoint.getLat(), minLonPoint.getLng()); - g2 = new GeoPoint(minLatPoint.getLat(), maxLatPoint.getLng()); - p1 = findScaledXY(new GeoPoint(maxLatPoint.getLat(), minLonPoint.getLng())); - p2 = findScaledXY(new GeoPoint(minLatPoint.getLat(), maxLatPoint.getLng())); - theta = GeoUtility.getBearingRad(g1, g2); - distance = GeoUtility.getDistance(g1, g2); - dHorizontal = Math.abs(Math.sin(theta) * distance); - dVertical = Math.abs(Math.cos(theta) * distance); - dx = Math.abs(p1.getX() - p2.getX()); - dy = Math.abs(p1.getY() - p2.getY()); - metersPerPixelX = dHorizontal / dx; - metersPerPixelY = dVertical / dy; + + public void setSize(Double width, Double height){ + this.canvasWidth = width; + this.canvasHeight = height; } - public void setAnnotationVisibilities(boolean teamName, boolean velocity, boolean estTime, - boolean legTime, boolean trail, boolean wake) { - for (BoatObject boatObject : boatObjects.values()) { - boatObject.setVisibility(teamName, velocity, estTime, legTime, trail, wake); - } - for (AnnotationBox ag : annotations.values()) { - ag.setAnnotationVisibility("name", teamName); - ag.setAnnotationVisibility("velocity", velocity); - ag.setAnnotationVisibility("nextMark", estTime); - ag.setAnnotationVisibility("lastMark", legTime); - } - } - - public void setFPSVisibility(boolean visibility) { - fpsDisplay.setVisible(visibility); - } - - public void selectBoat(ClientYacht selectedClientYacht) { - boatObjects.forEach((boat, group) -> - group.setIsSelected(boat == selectedClientYacht) - ); - } - - public void pauseRace() { - timer.stop(); - } - - public void setWindDir(double windDir) { - this.windDir = windDir; - } - - public void startRace() { - timer.start(); - } - - public ClientYacht getPlayerYacht() { - return playerYacht; - } - - public void setBoatAsPlayer (ClientYacht playerYacht) { - this.playerYacht = playerYacht; - playerYacht.toggleSail(); - boatObjects.get(playerYacht).setAsPlayer(); - CompoundMark currentMark = course.get(playerYacht.getLegNumber()); - for (Mark mark : currentMark.getMarks()) { - markerObjects.get(mark).showNextExitArrow(); - } - annotations.get(playerYacht).addAnnotation( - "velocity", - playerYacht.getVelocityProperty(), - (velocity) -> String.format("Speed: %.2f ms", velocity.doubleValue()) - ); - Platform.runLater(() -> { - boatObjectGroup.getChildren().remove(boatObjects.get(playerYacht)); - gameObjects.add(boatObjects.get(playerYacht)); - annotationsGroup.getChildren().remove(annotations.get(playerYacht)); - gameObjects.add(annotations.get(playerYacht)); - }); - playerYacht.addMarkRoundingListener(this::updateMarkArrows); - } - - private void updateMarkArrows (ClientYacht yacht, CompoundMark compoundMark, int legNumber) { - //Only show arrows for this and next leg. -// System.out.println(markerObjects); - if (compoundMark != null) { - for (Mark mark : compoundMark.getMarks()) { -// System.out.println("markerObjects.get(mark) = " + markerObjects.get(mark)); - markerObjects.get(mark).showNextExitArrow(); - } - } - CompoundMark nextMark = null; - if (legNumber < course.size() - 1) { - nextMark = course.get(legNumber); - for (Mark mark : nextMark.getMarks()) { - markerObjects.get(mark).showNextEnterArrow(); - } - } - if (legNumber - 2 >= 0) { - CompoundMark lastMark = course.get(Math.max(0, legNumber - 2)); - if (lastMark != nextMark) { - for (Mark mark : lastMark.getMarks()) { - markerObjects.get(mark).hideAllArrows(); - } - } - } - } - - /** - * Given yacht geopoint by race view controller, drawCollision will calculate canvas X and Y and - * display a flashing red circle on collision point. - * - * @param collisionPoint yacht collision point - */ - public void drawCollision(GeoPoint collisionPoint) { - Point2D point = findScaledXY(collisionPoint); - double circleRadius = 0.0; - Circle circle = new Circle(point.getX(), point.getY(), circleRadius, Color.RED); - - circle.setFill(Color.TRANSPARENT); - circle.setStroke(Color.RED); - circle.setStrokeWidth(3); - - Timeline timeline = new Timeline(); - timeline.setCycleCount(1); - - KeyFrame keyframe1 = new KeyFrame(Duration.ZERO, - new KeyValue(circle.radiusProperty(), 0), - new KeyValue(circle.strokeProperty(), Color.TRANSPARENT)); - KeyFrame keyFrame2 = new KeyFrame(new Duration(1000), - new KeyValue(circle.radiusProperty(), 50), - new KeyValue(circle.strokeProperty(), Color.RED)); - KeyFrame keyFrame3 = new KeyFrame(new Duration(1500), - new KeyValue(circle.strokeProperty(), Color.TRANSPARENT)); - - timeline.getKeyFrames().addAll(keyframe1, keyFrame2, keyFrame3); - - Platform.runLater(() -> gameObjects.add(circle)); - timeline.setOnFinished(event -> Platform.runLater(() -> gameObjects.remove(circle))); - timeline.play(); - } - - public void setFrameRateFXText(Text fpsDisplay) { - this.fpsDisplay = null; - this.fpsDisplay = fpsDisplay; + public void setHorizontalBuffer(Double buff){ + this.horizontalBuffer = buff; } } diff --git a/src/main/java/seng302/visualiser/ServerListener.java b/src/main/java/seng302/visualiser/ServerListener.java new file mode 100644 index 00000000..625d088c --- /dev/null +++ b/src/main/java/seng302/visualiser/ServerListener.java @@ -0,0 +1,113 @@ +package seng302.visualiser; + +import seng302.gameServer.ServerAdvertiser; +import seng302.gameServer.ServerDescription; + +import javax.jmdns.JmDNS; +import javax.jmdns.ServiceEvent; +import javax.jmdns.ServiceListener; +import java.io.IOException; +import java.net.InetAddress; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; + +import static seng302.gameServer.ServerAdvertiser.getLocalHostIp; + +/** + * Listens for servers on the local network + */ +public class ServerListener{ + private static ServerListener instance; + private ServerListenerDelegate delegate; + private JmDNS jmdns = null; + GameServeMonitor listener; + + private class GameServeMonitor implements ServiceListener { + private Set servers; + + GameServeMonitor(){ + servers = new HashSet<>(); + } + + /** + * A Service has been detected but not resolved + * @param event The ServiceEvent + */ + @Override + public void serviceAdded(ServiceEvent event) { + } + + /** + * A Service has been removed / unregistered + * @param event The ServiceEvent + */ + @Override + public void serviceRemoved(ServiceEvent event) { + String serverName = event.getInfo().getName(); + + ServerDescription toRemove = null; + + for (ServerDescription server : servers){ + if (server.getName().equals(serverName)){ + toRemove = server; + } + } + + if (toRemove != null){ + servers.remove(toRemove); + } + + delegate.serverRemoved(new ArrayList(servers)); + + // Get all other servers with the same name to respond if they are up + jmdns.requestServiceInfo(ServerAdvertiser.SERVICE_TYPE, serverName); + + } + + /** + * A Service has been added and resolved + * @param event The ServiceEvent + */ + @Override + public void serviceResolved(ServiceEvent event) { + String address = event.getInfo().getServer(); + Integer portNum = event.getInfo().getPort(); + + String serverName = event.getInfo().getName(); + String mapName = event.getInfo().getPropertyString("map"); + + Integer capacity = Integer.parseInt(event.getInfo().getPropertyString("capacity")); + Integer numPlayers = Integer.parseInt(event.getInfo().getPropertyString("players")); + + ServerDescription serverDescription = new ServerDescription(serverName, mapName, numPlayers, capacity, address, portNum); + + servers.remove(serverDescription); + servers.add(serverDescription); + + delegate.serverDetected(serverDescription, new ArrayList<>(servers)); + } + } + + private ServerListener() throws IOException { + jmdns = JmDNS.create(InetAddress.getByName(getLocalHostIp())); + listener = new GameServeMonitor(); + jmdns.addServiceListener(ServerAdvertiser.SERVICE_TYPE, listener); + } + + public static ServerListener getInstance() throws IOException { + if (instance == null){ + instance = new ServerListener(); + } + + return instance; + } + + /** + * Set the delegate to handle events + * @param delegate . + */ + public void setDelegate(ServerListenerDelegate delegate){ + this.delegate = delegate; + } +} diff --git a/src/main/java/seng302/visualiser/ServerListenerDelegate.java b/src/main/java/seng302/visualiser/ServerListenerDelegate.java new file mode 100644 index 00000000..15400a86 --- /dev/null +++ b/src/main/java/seng302/visualiser/ServerListenerDelegate.java @@ -0,0 +1,10 @@ +package seng302.visualiser; + +import seng302.gameServer.ServerDescription; + +import java.util.List; + +public interface ServerListenerDelegate { + void serverRemoved(List currentServers); + void serverDetected(ServerDescription serverDescription, List servers); +} diff --git a/src/main/java/seng302/visualiser/controllers/CustomizationController.java b/src/main/java/seng302/visualiser/controllers/CustomizationController_old.java similarity index 87% rename from src/main/java/seng302/visualiser/controllers/CustomizationController.java rename to src/main/java/seng302/visualiser/controllers/CustomizationController_old.java index 1a5b5e4d..b8f0b146 100644 --- a/src/main/java/seng302/visualiser/controllers/CustomizationController.java +++ b/src/main/java/seng302/visualiser/controllers/CustomizationController_old.java @@ -7,9 +7,10 @@ import javafx.scene.control.TextField; import javafx.scene.paint.Color; import javafx.stage.Stage; import seng302.gameServer.messages.CustomizeRequestType; +import seng302.utilities.Sounds; import seng302.visualiser.ClientToServerThread; -public class CustomizationController { +public class CustomizationController_old { @FXML private TextField nameField; @@ -20,7 +21,7 @@ public class CustomizationController { @FXML private Button customizeSubmit; - private LobbyController lc; + private LobbyController_old lc; private ClientToServerThread socketThread; private Stage windowStage; @@ -34,7 +35,8 @@ public class CustomizationController { @FXML public void submitCustomization() { - System.out.println("Attempting to send"); + Sounds.playButtonClick(); +// System.out.println("Attempting to send"); socketThread.sendCustomizationRequest(CustomizeRequestType.NAME, nameField.getText().getBytes()); // TODO: 16/08/17 ajm412: Turn colors into byte array. Color color = boatColorPicker.getValue(); @@ -54,7 +56,7 @@ public class CustomizationController { windowStage.close(); } - public void setLobbyController(LobbyController lc) { + public void setLobbyController(LobbyController_old lc) { this.lc = lc; } diff --git a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java index b2e49f1a..74da890c 100644 --- a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java +++ b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java @@ -15,10 +15,12 @@ import javafx.fxml.Initializable; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import seng302.model.ClientYacht; +import seng302.utilities.Sounds; public class FinishScreenViewController implements Initializable { @@ -85,6 +87,12 @@ public class FinishScreenViewController implements Initializable { } public void switchToStartScreenView() { + Sounds.playButtonClick(); + //TODO merge fix setContentPane("/views/StartScreenView.fxml"); } + + public void playButtonHoverSound(MouseEvent mouseEvent) { + Sounds.playHoverSound(); + } } diff --git a/src/main/java/seng302/visualiser/controllers/LobbyController.java b/src/main/java/seng302/visualiser/controllers/LobbyController.java index 4dc5293f..7608b252 100644 --- a/src/main/java/seng302/visualiser/controllers/LobbyController.java +++ b/src/main/java/seng302/visualiser/controllers/LobbyController.java @@ -1,248 +1,227 @@ package seng302.visualiser.controllers; -import com.sun.media.jfxmedia.logging.Logger; +import com.jfoenix.controls.JFXButton; +import com.jfoenix.controls.JFXDialog; import java.io.IOException; +import java.net.URL; import java.util.ArrayList; -import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.ResourceBundle; import javafx.application.Platform; import javafx.collections.ListChangeListener; -import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.control.Button; -import javafx.scene.control.TextArea; -import javafx.scene.image.Image; -import javafx.scene.image.ImageView; +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 javafx.scene.text.Text; -import javafx.stage.Stage; import seng302.gameServer.GameStages; import seng302.gameServer.GameState; +import seng302.model.ClientYacht; import seng302.model.Colors; +import seng302.model.Limit; import seng302.model.RaceState; -import seng302.visualiser.ClientToServerThread; +import seng302.model.mark.CompoundMark; +import seng302.model.mark.Corner; +import seng302.model.stream.xml.parser.RaceXMLData; +import seng302.utilities.Sounds; +import seng302.visualiser.GameView; +import seng302.visualiser.controllers.cells.PlayerCell; -/** - * A class describing the actions of the lobby screen - * Created by wmu16 on 10/07/17. - */ -public class LobbyController { +public class LobbyController implements Initializable { - public enum CloseStatus { - LEAVE, - READY - } + //--------FXML BEGIN--------// + @FXML + private VBox playerListVBox; + @FXML + private ScrollPane playerListScrollPane; + @FXML + private JFXButton customizeButton, leaveLobbyButton, beginRaceButton; + @FXML + private StackPane serverListMainStackPane; + @FXML + private Label serverName; + @FXML + private Label mapName; + @FXML + private Pane serverMap; + //---------FXML END---------// - @FunctionalInterface - public interface LobbyCloseListener { - void notify(CloseStatus exitCause); - } - - @FXML - private Text lobbyIpText; - @FXML - private Button readyButton; - @FXML - private Button customizeButton; - @FXML - private TextArea playerOneTxt; - @FXML - private TextArea playerTwoTxt; - @FXML - private TextArea playerThreeTxt; - @FXML - private TextArea playerFourTxt; - @FXML - private TextArea playerFiveTxt; - @FXML - private TextArea playerSixTxt; - @FXML - private TextArea playerSevenTxt; - @FXML - private TextArea playerEightTxt; - @FXML - private ImageView firstImageView; - @FXML - private ImageView secondImageView; - @FXML - private ImageView thirdImageView; - @FXML - private ImageView fourthImageView; - @FXML - private ImageView fifthImageView; - @FXML - private ImageView sixthImageView; - @FXML - private ImageView seventhImageView; - @FXML - private ImageView eighthImageView; - @FXML - private Text timeUntilStart; - @FXML - private Text courseNameText; - - private List imageViews = new ArrayList<>(); - private List