commit 706cb3da392a3c9409c4f7b53b3972b252eb87ee Author: nek0 Date: Sat Sep 9 16:39:41 2017 +0200 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2b01f27 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.cabal-sandbox +cabal.sandbox.config +dist +*.hp +*.ps +*.aux +.*.swp +*.blend1 diff --git a/ChangeLog.md b/ChangeLog.md new file mode 100644 index 0000000..319e1af --- /dev/null +++ b/ChangeLog.md @@ -0,0 +1,6 @@ +# Revision history for hw + +## 0.0.0.0 -- 2017-09-09 + +* First version. Released on an unsuspecting world. Loads obj files with UVs + and displays them. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..45644ff --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Setup.hs b/Setup.hs new file mode 100644 index 0000000..9a994af --- /dev/null +++ b/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/assets/ships/jaeger/jaeger.blend b/assets/ships/jaeger/jaeger.blend new file mode 100755 index 0000000..c9125b6 Binary files /dev/null and b/assets/ships/jaeger/jaeger.blend differ diff --git a/assets/ships/jaeger/jaeger.mtl b/assets/ships/jaeger/jaeger.mtl new file mode 100755 index 0000000..6f89b37 --- /dev/null +++ b/assets/ships/jaeger/jaeger.mtl @@ -0,0 +1,13 @@ +# Blender MTL File: 'jaeger.blend' +# Material Count: 1 + +newmtl Material_jaeger.texture.tga +Ns 92.156863 +Ka 1.000000 1.000000 1.000000 +Kd 0.512000 0.512000 0.512000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd jaeger.texture.tga diff --git a/assets/ships/jaeger/jaeger.obj b/assets/ships/jaeger/jaeger.obj new file mode 100755 index 0000000..2913494 --- /dev/null +++ b/assets/ships/jaeger/jaeger.obj @@ -0,0 +1,1232 @@ +# Blender v2.78 (sub 0) OBJ File: 'jaeger.blend' +# www.blender.org +o jaeger +v 0.900000 0.300000 -3.000000 +v 0.675000 0.325500 -3.125000 +v 0.000000 0.500000 -3.000000 +v 0.450000 0.359040 -3.210000 +v 0.225000 0.379080 -3.265000 +v 0.000000 0.390000 -3.300000 +v -0.225000 0.379080 -3.265000 +v -0.450000 0.359040 -3.210000 +v -0.675000 0.325500 -3.125000 +v -0.900000 0.300000 -3.000000 +v 0.900000 -0.300000 -3.000000 +v 0.000000 -0.500000 -3.000000 +v 0.675000 -0.325500 -3.125000 +v 0.450000 -0.359040 -3.210000 +v 0.225000 -0.379080 -3.265000 +v 0.000000 -0.390000 -3.300000 +v -0.225000 -0.379080 -3.265000 +v -0.450000 -0.359040 -3.210000 +v -0.675000 -0.325500 -3.125000 +v -0.900000 -0.300000 -3.000000 +v 0.800000 -0.560000 1.000000 +v 0.655808 -0.549240 1.059726 +v 0.643928 -0.549240 1.000000 +v 0.643928 0.549240 1.000000 +v 0.655808 0.549240 1.059726 +v 0.800000 0.560000 1.000000 +v 0.689640 0.549240 1.110360 +v 0.689640 -0.549240 1.110360 +v 0.740274 -0.549240 1.144192 +v 0.740274 0.549240 1.144192 +v 0.800000 0.549240 1.156072 +v 0.800000 -0.549240 1.156072 +v 0.859726 -0.549240 1.144192 +v 0.859726 0.549240 1.144192 +v 0.910360 0.549240 1.110360 +v 0.910360 -0.549240 1.110360 +v 0.944192 -0.549240 1.059726 +v 0.944192 0.549240 1.059726 +v 0.956072 0.549240 1.000000 +v 0.956072 -0.549240 1.000000 +v 0.000000 0.500000 -0.400000 +v 0.000000 0.300000 0.900000 +v 0.134824 0.311119 1.000000 +v 0.493853 0.517373 1.000000 +v 0.355544 0.465623 1.000000 +v 0.234315 0.395980 1.000000 +v 0.000000 -0.500000 -0.400000 +v 0.134824 -0.311119 1.000000 +v 0.000000 -0.300000 0.900000 +v 0.234315 -0.395980 1.000000 +v 0.355544 -0.465623 1.000000 +v 0.493853 -0.517373 1.000000 +v 0.060897 0.214303 1.000000 +v 0.015372 0.109251 1.000000 +v 0.000000 -0.000000 1.000000 +v 0.015372 -0.109250 1.000000 +v 0.060897 -0.214303 1.000000 +v 0.750000 0.400000 -0.700000 +v 1.500000 0.300000 -1.000000 +v 0.750000 -0.400000 -0.700000 +v 1.500000 -0.300000 -1.000000 +v 1.365685 0.395980 1.000000 +v 1.465175 0.311119 1.000000 +v 1.539103 0.214303 1.000000 +v 1.584628 0.109251 1.000000 +v 1.600000 -0.000000 1.000000 +v 1.106147 0.517373 1.000000 +v 1.244456 0.465623 1.000000 +v 1.365685 -0.395980 1.000000 +v 1.244456 -0.465623 1.000000 +v 1.106146 -0.517373 1.000000 +v 1.584628 -0.109250 1.000000 +v 1.539103 -0.214303 1.000000 +v 1.465175 -0.311119 1.000000 +v -0.800000 0.150000 2.600000 +v -0.500000 0.150000 2.750000 +v -0.440000 0.150000 2.690000 +v -0.400000 0.150000 2.600000 +v -1.400000 0.150000 2.750000 +v -1.100000 0.150000 2.600000 +v -1.470000 0.150000 2.690000 +v -1.500000 0.150000 2.600000 +v -0.800000 -0.150000 2.600000 +v -0.440000 -0.150000 2.690000 +v -0.500000 -0.150000 2.750000 +v -0.400000 -0.150000 2.600000 +v -1.500000 -0.150000 2.600000 +v -1.100000 -0.150000 2.600000 +v -1.470000 -0.150000 2.690000 +v -1.400000 -0.150000 2.750000 +v -0.060000 0.300000 0.940000 +v -0.060000 -0.300000 0.940000 +v 0.000000 0.300000 0.900000 +v -0.890000 0.183000 1.737750 +v -0.890000 -0.183000 1.737750 +v -0.100000 0.300000 1.000000 +v -0.100000 -0.300000 1.000000 +v -0.750000 0.400000 -0.700000 +v -1.500000 0.300000 -1.000000 +v -0.750000 -0.400000 -0.700000 +v -1.500000 -0.300000 -1.000000 +v -0.770000 0.405515 -0.243750 +v -0.770000 -0.405515 -0.243750 +v -1.246519 0.000417 4.250000 +v -1.146519 0.000417 4.250000 +v -1.175809 0.071128 4.320000 +v -1.175809 -0.070293 4.180000 +v -1.246519 -0.099583 4.150000 +v -1.317230 -0.070293 4.180000 +v -1.346519 0.000417 4.250000 +v -1.317230 0.071128 4.320000 +v -1.246519 0.100417 4.350000 +v -1.100000 -0.000000 2.750000 +v -1.100000 -0.150000 2.750000 +v -1.100000 0.150000 2.750000 +v -0.800000 -0.000000 2.750000 +v -0.800000 0.150000 2.750000 +v -0.800000 -0.150000 2.750000 +v -1.400000 -0.000000 2.750000 +v -0.500000 -0.000000 2.750000 +v -0.650000 0.150000 2.750000 +v -1.250000 0.150000 2.750000 +v -0.650000 -0.150000 2.750000 +v -1.250000 -0.150000 2.750000 +v -0.646519 0.000417 4.250000 +v -0.575809 0.071128 4.320000 +v -0.646519 0.100417 4.350000 +v -0.717230 0.071128 4.320000 +v -0.746519 0.000417 4.250000 +v -0.717230 -0.070293 4.180000 +v -0.646519 -0.099583 4.150000 +v -0.575809 -0.070293 4.180000 +v -0.546519 0.000417 4.250000 +v 0.000000 -0.300000 -3.000000 +v 0.000000 0.300000 -3.000000 +v -0.765000 -0.210000 -2.900000 +v -0.765000 0.210000 -2.900000 +v -0.135000 0.210000 -2.900000 +v -0.135000 -0.210000 -2.900000 +v 0.765000 0.210000 -2.900000 +v 0.765000 -0.210000 -2.900000 +v 0.135000 -0.210000 -2.900000 +v 0.135000 0.210000 -2.900000 +v -0.575809 -0.070293 2.750000 +v -0.546519 0.000417 2.750000 +v -0.646519 -0.099583 2.750000 +v -0.575809 0.071128 2.750000 +v -0.646519 0.100417 2.750000 +v -0.717230 -0.070293 2.750000 +v -0.746519 0.000417 2.750000 +v -0.717230 0.071128 2.750000 +v -1.175809 -0.070293 2.750000 +v -1.146519 0.000417 2.750000 +v -1.246519 -0.099583 2.750000 +v -1.175809 0.071128 2.750000 +v -1.246519 0.100417 2.750000 +v -1.317230 -0.070293 2.750000 +v -1.346519 0.000417 2.750000 +v -1.317230 0.071128 2.750000 +v -0.240000 -0.183000 1.738000 +v -0.825000 -0.292560 0.912500 +v -1.550000 -0.252000 0.825000 +v -1.540000 -0.183000 1.737500 +v -1.540000 -0.303000 -0.087500 +v -1.550000 0.252000 0.825000 +v -1.540000 0.183000 1.737500 +v -0.825000 0.292560 0.912500 +v -1.540000 0.303000 -0.087500 +v -0.240000 0.183000 1.738000 +v 1.082842 -0.517373 1.117157 +v 1.210624 -0.465623 1.170086 +v 1.322625 -0.395980 1.216478 +v 1.414542 -0.311119 1.254552 +v 1.482843 -0.214303 1.282842 +v 1.524902 -0.109250 1.300264 +v 1.539103 -0.000000 1.306147 +v 1.524902 0.109251 1.300264 +v 1.482842 0.214303 1.282842 +v 1.414542 0.311119 1.254552 +v 1.322625 0.395980 1.216478 +v 1.210624 0.465623 1.170086 +v 1.082843 0.517373 1.117157 +v 1.016478 0.517373 1.216478 +v 1.114278 0.465623 1.314278 +v 1.200000 0.395980 1.400000 +v 1.270350 0.311119 1.470350 +v 1.322625 0.214303 1.522625 +v 1.354816 0.109251 1.554816 +v 1.365685 -0.000000 1.565685 +v 1.354816 -0.109250 1.554816 +v 1.322625 -0.214303 1.522625 +v 1.270350 -0.311119 1.470350 +v 1.200000 -0.395980 1.400000 +v 1.114278 -0.465623 1.314278 +v 1.016478 -0.517373 1.216478 +v 0.917157 -0.517373 1.282843 +v 0.970086 -0.465623 1.410624 +v 1.016478 -0.395980 1.522625 +v 1.054552 -0.311119 1.614542 +v 1.082843 -0.214303 1.682842 +v 1.100264 -0.109250 1.724902 +v 1.106147 -0.000000 1.739103 +v 1.100264 0.109251 1.724902 +v 1.082843 0.214303 1.682842 +v 1.054552 0.311119 1.614542 +v 1.016478 0.395980 1.522625 +v 0.970086 0.465623 1.410624 +v 0.917157 0.517373 1.282843 +v 0.800000 0.517373 1.306147 +v 0.800000 0.465623 1.444456 +v 0.800000 0.395980 1.565685 +v 0.800000 0.311119 1.665176 +v 0.800000 0.214303 1.739103 +v 0.800000 0.109251 1.784628 +v 0.800000 -0.000000 1.800000 +v 0.800000 -0.109250 1.784628 +v 0.800000 -0.214303 1.739103 +v 0.800000 -0.311119 1.665176 +v 0.800000 -0.395980 1.565685 +v 0.800000 -0.465623 1.444456 +v 0.800000 -0.517373 1.306147 +v 0.682843 -0.517373 1.282843 +v 0.629914 -0.465623 1.410624 +v 0.583522 -0.395980 1.522625 +v 0.545448 -0.311119 1.614542 +v 0.517157 -0.214303 1.682843 +v 0.499736 -0.109250 1.724902 +v 0.493853 -0.000000 1.739103 +v 0.499736 0.109251 1.724902 +v 0.517157 0.214303 1.682842 +v 0.545448 0.311119 1.614542 +v 0.583522 0.395980 1.522625 +v 0.629914 0.465623 1.410624 +v 0.682843 0.517373 1.282843 +v 0.583522 0.517373 1.216478 +v 0.485722 0.465623 1.314278 +v 0.400000 0.395980 1.400000 +v 0.329650 0.311119 1.470350 +v 0.277375 0.214303 1.522625 +v 0.245184 0.109251 1.554816 +v 0.234315 -0.000000 1.565685 +v 0.245184 -0.109250 1.554816 +v 0.277375 -0.214303 1.522625 +v 0.329650 -0.311119 1.470350 +v 0.400000 -0.395980 1.400000 +v 0.485722 -0.465623 1.314278 +v 0.583522 -0.517373 1.216478 +v 0.517157 -0.517373 1.117157 +v 0.389376 -0.465623 1.170086 +v 0.277375 -0.395980 1.216478 +v 0.185458 -0.311119 1.254552 +v 0.117158 -0.214303 1.282843 +v 0.075098 -0.109250 1.300264 +v 0.060897 -0.000000 1.306147 +v 0.075098 0.109251 1.300264 +v 0.117158 0.214303 1.282843 +v 0.185458 0.311119 1.254552 +v 0.277375 0.395980 1.216478 +v 0.389376 0.465623 1.170086 +v 0.517157 0.517373 1.117157 +v -1.500000 -0.150000 2.600000 +v 0.000000 -0.300000 0.900000 +vt 0.2789 0.7032 +vt 0.2538 0.7165 +vt 0.1795 0.7018 +vt 0.2288 0.7255 +vt 0.2039 0.7311 +vt 0.1790 0.7346 +vt 0.1541 0.7304 +vt 0.1294 0.7240 +vt 0.1046 0.7143 +vt 0.0799 0.7002 +vt 0.4319 0.7172 +vt 0.5348 0.7158 +vt 0.4579 0.7310 +vt 0.4837 0.7403 +vt 0.5096 0.7462 +vt 0.5354 0.7497 +vt 0.5611 0.7454 +vt 0.5868 0.7388 +vt 0.6124 0.7287 +vt 0.6379 0.7142 +vt 0.4364 0.2636 +vt 0.4528 0.2566 +vt 0.4542 0.2634 +vt 0.2573 0.2649 +vt 0.2588 0.2584 +vt 0.2746 0.2652 +vt 0.2626 0.2529 +vt 0.4488 0.2509 +vt 0.4429 0.2472 +vt 0.2675 0.2493 +vt 0.2740 0.2481 +vt 0.4361 0.2459 +vt 0.4293 0.2474 +vt 0.2802 0.2495 +vt 0.2870 0.2532 +vt 0.4235 0.2513 +vt 0.4198 0.2571 +vt 0.2906 0.2588 +vt 0.2918 0.2654 +vt 0.4185 0.2639 +vt 0.1838 0.4171 +vt 0.1858 0.2747 +vt 0.2009 0.2639 +vt 0.2407 0.2646 +vt 0.2254 0.2644 +vt 0.2120 0.2641 +vt 0.5304 0.4210 +vt 0.5127 0.2624 +vt 0.5283 0.2735 +vt 0.5012 0.2626 +vt 0.4873 0.2628 +vt 0.4714 0.2631 +vt 0.2251 0.8302 +vt 0.2126 0.8355 +vt 0.2108 0.8205 +vt 0.2108 0.8495 +vt 0.4830 0.8482 +vt 0.5225 0.8373 +vt 0.5081 0.8375 +vt 0.5620 0.8484 +vt 0.5369 0.8376 +vt 0.2381 0.8302 +vt 0.2506 0.8355 +vt 0.2525 0.8495 +vt 0.2525 0.8205 +vt 0.2662 0.4511 +vt 0.3485 0.4852 +vt 0.4451 0.4562 +vt 0.3598 0.4915 +vt 0.3370 0.2660 +vt 0.3480 0.2661 +vt 0.9910 0.2545 +vt 0.9933 0.5041 +vt 0.9807 0.5045 +vt 0.9670 0.5048 +vt 0.9528 0.5049 +vt 0.3084 0.2656 +vt 0.3237 0.2658 +vt 0.3717 0.2645 +vt 0.3855 0.2643 +vt 0.4013 0.2641 +vt 0.9130 0.2547 +vt 0.9386 0.5049 +vt 0.9249 0.5047 +vt 0.9124 0.5044 +vt 0.3604 0.2646 +vt 0.1001 0.0871 +vt 0.1335 0.0712 +vt 0.1401 0.0779 +vt 0.1443 0.0878 +vt 0.0340 0.0697 +vt 0.0670 0.0867 +vt 0.0262 0.0762 +vt 0.0227 0.0860 +vt 0.6170 0.0793 +vt 0.5757 0.0697 +vt 0.5824 0.0628 +vt 0.5712 0.0800 +vt 0.6971 0.0781 +vt 0.6514 0.0788 +vt 0.6936 0.0680 +vt 0.6854 0.0613 +vt 0.6157 0.8080 +vt 0.6080 0.8452 +vt 0.6078 0.7708 +vt 0.6156 0.7708 +vt 0.6158 0.8451 +vt 0.0888 0.1814 +vt 0.6288 0.1769 +vt 0.1749 0.2636 +vt 0.1793 0.2702 +vt 0.5351 0.2688 +vt 0.5395 0.2620 +vt 0.1004 0.4487 +vt 0.0169 0.4803 +vt 0.6168 0.4537 +vt 0.7032 0.4864 +vt 0.0989 0.3987 +vt 0.6183 0.4019 +vt 0.0860 0.7722 +vt 0.0860 0.7849 +vt 0.0776 0.7810 +vt 0.0943 0.7814 +vt 0.3733 0.7978 +vt 0.3732 0.8094 +vt 0.3647 0.8057 +vt 0.3817 0.8057 +vt 0.0860 0.7723 +vt 0.0859 0.7850 +vt 0.0776 0.7811 +vt 0.0944 0.7811 +vt 0.0860 0.7725 +vt 0.0860 0.7853 +vt 0.0776 0.7813 +vt 0.0944 0.7816 +vt 0.1736 0.7894 +vt 0.1540 0.8080 +vt 0.1542 0.7708 +vt 0.1735 0.8080 +vt 0.1737 0.7709 +vt 0.1736 0.8390 +vt 0.1543 0.8576 +vt 0.1541 0.8205 +vt 0.1737 0.8576 +vt 0.1735 0.8204 +vt 0.2850 0.8080 +vt 0.3045 0.8167 +vt 0.2655 0.8166 +vt 0.3045 0.8081 +vt 0.2655 0.8080 +vt 0.1214 0.7783 +vt 0.1019 0.7709 +vt 0.1409 0.7708 +vt 0.1019 0.7783 +vt 0.1409 0.7782 +vt 0.1169 0.0710 +vt 0.1004 0.0707 +vt 0.0672 0.0702 +vt 0.0506 0.0700 +vt 0.6168 0.0623 +vt 0.5996 0.0625 +vt 0.6683 0.0615 +vt 0.6511 0.0618 +vt 0.0860 0.7724 +vt 0.0944 0.7815 +vt 0.0860 0.7852 +vt 0.0776 0.7812 +vt 0.0859 0.7723 +vt 0.0943 0.7811 +vt 0.0860 0.7850 +vt 0.0776 0.7808 +vt 0.0625 0.7818 +vt 0.0709 0.7905 +vt 0.0624 0.7943 +vt 0.0539 0.7905 +vt 0.0860 0.7723 +vt 0.0944 0.7815 +vt 0.0860 0.7850 +vt 0.0776 0.7811 +vt 0.7676 0.7708 +vt 0.7838 0.7987 +vt 0.7676 0.8823 +vt 0.7677 0.9938 +vt 0.7839 0.9659 +vt 0.8066 0.8824 +vt 0.8020 0.8545 +vt 0.8021 0.9102 +vt 0.7949 0.8266 +vt 0.7949 0.9381 +vt 0.4521 0.7708 +vt 0.4520 0.8823 +vt 0.4358 0.7987 +vt 0.4520 0.9938 +vt 0.4357 0.9659 +vt 0.4130 0.8824 +vt 0.4176 0.8545 +vt 0.4176 0.9102 +vt 0.4248 0.8266 +vt 0.4247 0.9381 +vt 0.9240 0.6031 +vt 0.9786 0.6030 +vt 0.9789 0.6810 +vt 0.9243 0.6812 +vt 0.9793 0.7925 +vt 0.9246 0.7927 +vt 0.9244 0.7146 +vt 0.9790 0.7145 +vt 0.9907 0.6977 +vt 0.9126 0.6979 +vt 0.7547 0.8655 +vt 0.7546 0.7875 +vt 0.4650 0.7875 +vt 0.4650 0.8655 +vt 0.9910 0.8092 +vt 0.9130 0.8094 +vt 0.7547 0.9770 +vt 0.7547 0.8990 +vt 0.4649 0.9770 +vt 0.4650 0.8990 +vt 0.9123 0.5864 +vt 0.9903 0.5862 +vt 0.7904 0.4763 +vt 0.7913 0.7215 +vt 0.7133 0.7218 +vt 0.7124 0.4765 +vt 0.9903 0.0062 +vt 0.9123 0.0064 +vt 0.1123 0.7877 +vt 0.1215 0.7840 +vt 0.1020 0.7969 +vt 0.1085 0.7965 +vt 0.1307 0.7876 +vt 0.1410 0.7968 +vt 0.1345 0.7964 +vt 0.1020 0.8155 +vt 0.1124 0.8052 +vt 0.1215 0.8155 +vt 0.1216 0.8088 +vt 0.1410 0.8154 +vt 0.1307 0.8052 +vt 0.2657 0.7708 +vt 0.2852 0.7709 +vt 0.2760 0.7802 +vt 0.2852 0.7766 +vt 0.2656 0.7894 +vt 0.2722 0.7890 +vt 0.3047 0.7709 +vt 0.2944 0.7803 +vt 0.3046 0.7895 +vt 0.2982 0.7890 +vt 0.2759 0.7977 +vt 0.2851 0.8014 +vt 0.2943 0.7978 +vt 0.0122 0.7673 +vt 0.0128 0.9629 +vt 0.0220 0.9543 +vt 0.0214 0.7673 +vt 0.0311 0.9455 +vt 0.0306 0.7673 +vt 0.0539 0.9677 +vt 0.0623 0.9677 +vt 0.0708 0.9677 +vt 0.0305 0.7672 +vt 0.0311 0.9456 +vt 0.0214 0.7672 +vt 0.0219 0.9547 +vt 0.0121 0.7673 +vt 0.0127 0.9631 +vt 0.6304 0.9686 +vt 0.6303 0.7722 +vt 0.6389 0.9686 +vt 0.6388 0.7684 +vt 0.6472 0.7722 +vt 0.6473 0.9686 +vt 0.5833 0.9685 +vt 0.5832 0.7683 +vt 0.5916 0.7720 +vt 0.5917 0.9685 +vt 0.5748 0.9685 +vt 0.5747 0.7721 +vt 0.3323 0.7674 +vt 0.3317 0.9544 +vt 0.3415 0.7675 +vt 0.3409 0.9627 +vt 0.3231 0.7674 +vt 0.3226 0.9454 +vt 0.3731 0.9825 +vt 0.3816 0.9825 +vt 0.3647 0.9825 +vt 0.3323 0.7674 +vt 0.3317 0.9543 +vt 0.3226 0.9455 +vt 0.3231 0.7674 +vt 0.3415 0.7674 +vt 0.3409 0.9629 +vt 0.5544 0.1780 +vt 0.6227 0.2707 +vt 0.7058 0.2793 +vt 0.7032 0.1759 +vt 0.7062 0.3829 +vt 0.0144 0.2803 +vt 0.0169 0.1804 +vt 0.0947 0.2720 +vt 0.0140 0.3803 +vt 0.1606 0.1825 +vt 0.7305 0.0271 +vt 0.7695 0.0270 +vt 0.7742 0.1327 +vt 0.7266 0.1329 +vt 0.7835 0.2450 +vt 0.7179 0.2452 +vt 0.7905 0.3576 +vt 0.7116 0.3578 +vt 0.8821 0.8254 +vt 0.8775 0.9313 +vt 0.8385 0.9312 +vt 0.8345 0.8252 +vt 0.8976 0.7347 +vt 0.8196 0.7345 +vt 0.8196 0.7273 +vt 0.8976 0.7275 +vt 0.8775 0.9422 +vt 0.8385 0.9421 +vt 0.7305 0.0164 +vt 0.7695 0.0162 +vt 0.2135 0.8081 +vt 0.2134 0.7709 +vt 0.2524 0.7708 +vt 0.2525 0.8080 +vt 0.4038 0.2508 +vt 0.3891 0.2450 +vt 0.3763 0.2399 +vt 0.3657 0.2357 +vt 0.9125 0.5356 +vt 0.9251 0.5394 +vt 0.9387 0.5418 +vt 0.9529 0.5425 +vt 0.9671 0.5417 +vt 0.9808 0.5393 +vt 0.9934 0.5354 +vt 0.3428 0.2382 +vt 0.3326 0.2422 +vt 0.3202 0.2472 +vt 0.3060 0.2528 +vt 0.2989 0.2418 +vt 0.3098 0.2312 +vt 0.3194 0.2219 +vt 0.3272 0.2143 +vt 0.9796 0.5727 +vt 0.9922 0.5727 +vt 0.9660 0.5727 +vt 0.9517 0.5727 +vt 0.9375 0.5727 +vt 0.9239 0.5727 +vt 0.9113 0.5727 +vt 0.3900 0.2189 +vt 0.3819 0.2110 +vt 0.3999 0.2285 +vt 0.4112 0.2394 +vt 0.4225 0.2317 +vt 0.4162 0.2173 +vt 0.4108 0.2047 +vt 0.4063 0.1943 +vt 0.6604 0.8043 +vt 0.6603 0.7768 +vt 0.6729 0.7768 +vt 0.6730 0.8029 +vt 0.6865 0.7768 +vt 0.6866 0.8020 +vt 0.7007 0.7768 +vt 0.7009 0.8017 +vt 0.7151 0.8020 +vt 0.7150 0.7768 +vt 0.7286 0.7768 +vt 0.7287 0.8028 +vt 0.7413 0.7768 +vt 0.7413 0.8057 +vt 0.3026 0.1982 +vt 0.2980 0.2082 +vt 0.2928 0.2204 +vt 0.2867 0.2344 +vt 0.2740 0.2316 +vt 0.2740 0.2164 +vt 0.2740 0.2031 +vt 0.2740 0.1922 +vt 0.7288 0.8408 +vt 0.7414 0.8408 +vt 0.7152 0.8408 +vt 0.7010 0.8409 +vt 0.6868 0.8409 +vt 0.6731 0.8410 +vt 0.6605 0.8410 +vt 0.4355 0.1994 +vt 0.4354 0.1881 +vt 0.4357 0.2132 +vt 0.4359 0.2289 +vt 0.4493 0.2313 +vt 0.4552 0.2167 +vt 0.4603 0.2039 +vt 0.4646 0.1934 +vt 0.6606 0.8759 +vt 0.6732 0.8773 +vt 0.6869 0.8782 +vt 0.7011 0.8784 +vt 0.7153 0.8781 +vt 0.7290 0.8772 +vt 0.7415 0.8743 +vt 0.2466 0.1973 +vt 0.2507 0.2075 +vt 0.2557 0.2199 +vt 0.2614 0.2340 +vt 0.2510 0.2411 +vt 0.2403 0.2302 +vt 0.2309 0.2206 +vt 0.2232 0.2128 +vt 0.7291 0.9050 +vt 0.7416 0.9050 +vt 0.7154 0.9050 +vt 0.7012 0.9050 +vt 0.6870 0.9050 +vt 0.6733 0.9050 +vt 0.6607 0.9050 +vt 0.4816 0.2175 +vt 0.4896 0.2094 +vt 0.4719 0.2274 +vt 0.4608 0.2387 +vt 0.4686 0.2499 +vt 0.4831 0.2436 +vt 0.4959 0.2381 +vt 0.5064 0.2336 +vt 0.5591 0.8084 +vt 0.5591 0.7696 +vt 0.5508 0.8041 +vt 0.5509 0.7696 +vt 0.5371 0.7696 +vt 0.5370 0.8013 +vt 0.5227 0.7696 +vt 0.5226 0.8004 +vt 0.5083 0.7696 +vt 0.5082 0.8012 +vt 0.4944 0.7696 +vt 0.4944 0.8039 +vt 0.4833 0.7696 +vt 0.4832 0.8082 +vt 0.2069 0.2362 +vt 0.2171 0.2405 +vt 0.2294 0.2458 +vt 0.2435 0.2518 +vt 0.4943 0.8380 +vt 0.4832 0.8389 +vt 0.5507 0.8382 +vt 0.5590 0.8392 +s off +f 1/1 2/2 3/3 +f 2/2 4/4 3/3 +f 4/4 5/5 3/3 +f 5/5 6/6 3/3 +f 6/6 7/7 3/3 +f 7/7 8/8 3/3 +f 8/8 9/9 3/3 +f 9/9 10/10 3/3 +f 11/11 12/12 13/13 +f 13/13 12/12 14/14 +f 14/14 12/12 15/15 +f 15/15 12/12 16/16 +f 16/16 12/12 17/17 +f 17/17 12/12 18/18 +f 18/18 12/12 19/19 +f 19/19 12/12 20/20 +f 21/21 22/22 23/23 +f 24/24 25/25 26/26 +f 25/25 27/27 26/26 +f 21/21 28/28 22/22 +f 21/21 29/29 28/28 +f 27/27 30/30 26/26 +f 30/30 31/31 26/26 +f 21/21 32/32 29/29 +f 21/21 33/33 32/32 +f 31/31 34/34 26/26 +f 34/34 35/35 26/26 +f 21/21 36/36 33/33 +f 21/21 37/37 36/36 +f 35/35 38/38 26/26 +f 38/38 39/39 26/26 +f 21/21 40/40 37/37 +f 41/41 42/42 43/43 +f 41/41 24/24 26/26 +f 41/41 44/44 24/24 +f 41/41 45/45 44/44 +f 41/41 46/46 45/45 +f 41/41 43/43 46/46 +f 47/47 48/48 49/49 +f 47/47 21/21 23/23 +f 47/47 50/50 48/48 +f 47/47 51/51 50/50 +f 47/47 52/52 51/51 +f 47/47 23/23 52/52 +f 42/53 53/54 43/55 +f 42/53 54/56 53/54 +f 42/57 55/58 54/59 +f 49/60 56/61 55/58 +f 49/62 57/63 56/64 +f 49/62 48/65 57/63 +f 58/66 1/1 3/3 +f 41/41 58/66 3/3 +f 59/67 1/1 58/66 +f 60/68 12/12 11/11 +f 47/47 12/12 60/68 +f 60/68 11/11 61/69 +f 59/67 62/70 63/71 +f 59/67 58/66 62/70 +f 59/72 63/73 64/74 +f 59/72 64/74 65/75 +f 59/72 65/75 66/76 +f 26/26 39/39 58/66 +f 39/39 67/77 58/66 +f 67/77 68/78 58/66 +f 68/78 62/70 58/66 +f 41/41 26/26 58/66 +f 47/47 60/68 21/21 +f 21/21 60/68 40/40 +f 69/79 70/80 60/68 +f 70/80 71/81 60/68 +f 71/81 40/40 60/68 +f 61/82 66/76 72/83 +f 61/82 72/83 73/84 +f 61/82 73/84 74/85 +f 61/69 74/86 69/79 +f 61/69 69/79 60/68 +f 59/72 66/76 61/82 +f 75/87 76/88 77/89 +f 75/87 77/89 78/90 +f 79/91 80/92 81/93 +f 82/94 81/93 80/92 +f 83/95 84/96 85/97 +f 83/95 86/98 84/96 +f 87/99 88/100 89/101 +f 90/102 89/101 88/100 +f 55/103 91/104 92/105 +f 49/106 55/103 92/105 +f 55/103 93/107 91/104 +f 80/92 75/87 94/108 +f 88/100 95/109 83/95 +f 41/41 96/110 91/111 +f 41/41 91/111 42/42 +f 47/47 49/49 92/112 +f 47/47 92/112 97/113 +f 98/114 3/3 10/10 +f 99/115 98/114 10/10 +f 98/114 41/41 3/3 +f 100/116 20/20 12/12 +f 101/117 20/20 100/116 +f 100/116 12/12 47/47 +f 41/41 98/114 102/118 +f 47/47 103/119 100/116 +f 104/120 105/121 106/122 +f 104/120 107/123 105/121 +f 104/124 108/125 107/126 +f 104/124 109/127 108/125 +f 104/128 110/129 109/130 +f 104/128 111/131 110/129 +f 104/132 112/133 111/134 +f 104/132 106/135 112/133 +f 113/136 88/137 80/138 +f 114/139 88/137 113/136 +f 113/136 80/138 115/140 +f 116/141 75/142 83/143 +f 117/144 75/142 116/141 +f 116/141 83/143 118/145 +f 119/146 81/147 89/148 +f 79/149 81/147 119/146 +f 119/146 89/148 90/150 +f 120/151 84/152 77/153 +f 85/154 84/152 120/151 +f 120/151 77/153 76/155 +f 76/88 75/87 121/156 +f 121/156 75/87 117/157 +f 115/158 80/92 122/159 +f 122/159 80/92 79/91 +f 118/160 83/95 123/161 +f 123/161 83/95 85/97 +f 90/102 88/100 124/162 +f 124/162 88/100 114/163 +f 125/164 126/165 127/166 +f 125/164 127/166 128/167 +f 125/168 128/169 129/170 +f 125/168 129/170 130/171 +f 125/172 130/173 131/174 +f 125/172 131/174 132/175 +f 125/176 132/177 133/178 +f 125/176 133/178 126/179 +f 11/180 13/181 134/182 +f 20/183 134/182 19/184 +f 16/185 134/182 15/186 +f 16/185 17/187 134/182 +f 14/188 134/182 13/181 +f 14/188 15/186 134/182 +f 18/189 19/184 134/182 +f 18/189 134/182 17/187 +f 1/190 135/191 2/192 +f 10/193 9/194 135/191 +f 6/195 5/196 135/191 +f 6/195 135/191 7/197 +f 4/198 2/192 135/191 +f 4/198 135/191 5/196 +f 8/199 135/191 9/194 +f 8/199 7/197 135/191 +f 136/200 137/201 138/202 +f 136/200 138/202 139/203 +f 140/204 141/205 142/206 +f 140/204 142/206 143/207 +f 135/208 143/207 142/206 +f 135/208 142/206 134/209 +f 11/180 134/182 142/210 +f 11/180 142/210 141/211 +f 1/190 140/212 143/213 +f 1/190 143/213 135/191 +f 1/214 11/215 141/205 +f 1/214 141/205 140/204 +f 134/209 139/203 138/202 +f 134/209 138/202 135/208 +f 20/183 136/216 134/182 +f 136/216 139/217 134/182 +f 10/193 135/191 137/218 +f 135/191 138/219 137/218 +f 20/220 10/221 137/201 +f 20/220 137/201 136/200 +f 99/222 10/223 20/224 +f 99/222 20/224 101/225 +f 1/226 59/72 61/82 +f 1/226 61/82 11/227 +f 85/154 120/151 144/228 +f 120/151 145/229 144/228 +f 85/154 144/228 123/230 +f 144/228 146/231 123/230 +f 76/155 147/232 120/151 +f 147/232 145/229 120/151 +f 76/155 121/233 147/232 +f 121/233 148/234 147/232 +f 118/235 149/236 116/237 +f 149/236 150/238 116/237 +f 118/235 123/230 149/236 +f 123/230 146/231 149/236 +f 117/239 116/237 151/240 +f 116/237 150/238 151/240 +f 117/239 151/240 121/233 +f 151/240 148/234 121/233 +f 114/241 113/242 152/243 +f 113/242 153/244 152/243 +f 114/241 152/243 124/245 +f 152/243 154/246 124/245 +f 115/247 155/248 113/242 +f 155/248 153/244 113/242 +f 115/247 122/249 155/248 +f 122/249 156/250 155/248 +f 90/150 157/251 119/146 +f 157/251 158/252 119/146 +f 90/150 124/245 157/251 +f 124/245 154/246 157/251 +f 79/149 119/146 159/253 +f 119/146 158/252 159/253 +f 79/149 159/253 122/249 +f 159/253 156/250 122/249 +f 147/254 126/255 133/256 +f 147/254 133/256 145/257 +f 145/257 133/256 132/258 +f 145/257 132/258 144/259 +f 144/260 132/175 131/174 +f 144/260 131/174 146/261 +f 146/261 131/174 149/262 +f 131/174 130/173 149/262 +f 149/263 130/264 150/265 +f 130/264 129/266 150/265 +f 150/265 129/266 151/267 +f 129/266 128/268 151/267 +f 151/269 128/270 148/271 +f 128/270 127/272 148/271 +f 148/271 127/272 126/273 +f 148/271 126/273 147/274 +f 156/275 112/276 106/277 +f 156/275 106/277 155/278 +f 159/279 111/280 156/275 +f 111/280 112/276 156/275 +f 158/281 110/282 159/283 +f 110/282 111/284 159/283 +f 157/285 109/286 158/281 +f 109/286 110/282 158/281 +f 154/287 108/125 157/288 +f 108/125 109/127 157/288 +f 152/289 107/126 108/125 +f 152/289 108/125 154/287 +f 153/290 105/291 107/292 +f 153/290 107/292 152/293 +f 155/294 106/295 105/291 +f 155/294 105/291 153/290 +f 97/113 160/296 161/297 +f 160/296 95/109 161/297 +f 47/47 97/113 103/119 +f 97/113 161/297 103/119 +f 162/298 161/297 163/299 +f 161/297 95/109 163/299 +f 162/298 164/300 161/297 +f 164/300 103/119 161/297 +f 101/117 100/116 164/300 +f 100/116 103/119 164/300 +f 165/301 166/302 167/303 +f 166/302 94/108 167/303 +f 165/301 167/303 168/304 +f 167/303 102/118 168/304 +f 99/115 168/304 98/114 +f 168/304 102/118 98/114 +f 96/110 167/303 169/305 +f 167/303 94/108 169/305 +f 41/41 102/118 96/110 +f 102/118 167/303 96/110 +f 87/99 163/299 88/100 +f 163/299 95/109 88/100 +f 160/296 86/98 95/109 +f 86/98 83/95 95/109 +f 82/94 80/92 166/302 +f 80/92 94/108 166/302 +f 169/305 94/108 78/90 +f 94/108 75/87 78/90 +f 87/306 82/307 166/308 +f 87/306 166/308 163/309 +f 165/310 162/311 163/309 +f 165/310 163/309 166/308 +f 165/310 168/312 164/313 +f 165/310 164/313 162/311 +f 99/222 101/225 164/313 +f 99/222 164/313 168/312 +f 169/314 78/315 86/316 +f 169/314 86/316 160/317 +f 96/318 169/314 160/317 +f 96/318 160/317 97/319 +f 96/318 97/319 92/320 +f 96/318 92/320 91/321 +f 78/315 77/322 84/323 +f 78/315 84/323 86/316 +f 87/306 89/324 81/325 +f 87/306 81/325 82/307 +f 80/326 88/327 83/328 +f 80/326 83/328 75/329 +f 37/37 40/40 71/81 +f 37/37 71/81 170/330 +f 170/330 71/81 70/80 +f 170/330 70/80 171/331 +f 171/331 70/80 69/79 +f 171/331 69/79 172/332 +f 172/332 69/79 74/86 +f 172/332 74/86 173/333 +f 173/334 74/85 174/335 +f 74/85 73/84 174/335 +f 174/335 73/84 72/83 +f 174/335 72/83 175/336 +f 175/336 72/83 66/76 +f 175/336 66/76 176/337 +f 176/337 66/76 177/338 +f 66/76 65/75 177/338 +f 177/338 65/75 64/74 +f 177/338 64/74 178/339 +f 178/339 64/74 63/73 +f 178/339 63/73 179/340 +f 179/341 63/71 180/342 +f 63/71 62/70 180/342 +f 180/342 62/70 68/78 +f 180/342 68/78 181/343 +f 181/343 68/78 67/77 +f 181/343 67/77 182/344 +f 182/344 67/77 39/39 +f 182/344 39/39 38/38 +f 183/345 182/344 38/38 +f 183/345 38/38 35/35 +f 184/346 181/343 182/344 +f 184/346 182/344 183/345 +f 185/347 180/342 181/343 +f 185/347 181/343 184/346 +f 186/348 179/341 180/342 +f 186/348 180/342 185/347 +f 187/349 178/339 179/340 +f 187/349 179/340 186/350 +f 188/351 177/338 178/339 +f 188/351 178/339 187/349 +f 189/352 176/337 188/351 +f 176/337 177/338 188/351 +f 190/353 175/336 176/337 +f 190/353 176/337 189/352 +f 191/354 174/335 175/336 +f 191/354 175/336 190/353 +f 192/355 173/334 191/354 +f 173/334 174/335 191/354 +f 193/356 172/332 173/333 +f 193/356 173/333 192/357 +f 194/358 171/331 172/332 +f 194/358 172/332 193/356 +f 195/359 170/330 171/331 +f 195/359 171/331 194/358 +f 36/36 37/37 170/330 +f 36/36 170/330 195/359 +f 33/33 36/36 195/359 +f 33/33 195/359 196/360 +f 196/360 195/359 194/358 +f 196/360 194/358 197/361 +f 197/361 194/358 198/362 +f 194/358 193/356 198/362 +f 198/362 193/356 192/357 +f 198/362 192/357 199/363 +f 199/364 192/365 191/366 +f 199/364 191/366 200/367 +f 200/367 191/366 190/368 +f 200/367 190/368 201/369 +f 201/369 190/368 189/370 +f 201/369 189/370 202/371 +f 202/371 189/370 203/372 +f 189/370 188/373 203/372 +f 203/372 188/373 187/374 +f 203/372 187/374 204/375 +f 204/375 187/374 186/376 +f 204/375 186/376 205/377 +f 205/378 186/348 185/347 +f 205/378 185/347 206/379 +f 206/379 185/347 184/346 +f 206/379 184/346 207/380 +f 207/380 184/346 183/345 +f 207/380 183/345 208/381 +f 208/381 183/345 35/35 +f 208/381 35/35 34/34 +f 209/382 208/381 34/34 +f 209/382 34/34 31/31 +f 210/383 207/380 208/381 +f 210/383 208/381 209/382 +f 211/384 206/379 207/380 +f 211/384 207/380 210/383 +f 212/385 205/378 206/379 +f 212/385 206/379 211/384 +f 213/386 204/375 205/377 +f 213/386 205/377 212/387 +f 214/388 203/372 204/375 +f 214/388 204/375 213/386 +f 215/389 202/371 203/372 +f 215/389 203/372 214/388 +f 216/390 201/369 202/371 +f 216/390 202/371 215/389 +f 217/391 200/367 201/369 +f 217/391 201/369 216/390 +f 218/392 199/364 217/391 +f 199/364 200/367 217/391 +f 219/393 198/362 199/363 +f 219/393 199/363 218/394 +f 220/395 197/361 198/362 +f 220/395 198/362 219/393 +f 221/396 196/360 197/361 +f 221/396 197/361 220/395 +f 32/32 33/33 196/360 +f 32/32 196/360 221/396 +f 29/29 32/32 221/396 +f 29/29 221/396 222/397 +f 222/397 221/396 220/395 +f 222/397 220/395 223/398 +f 223/398 220/395 224/399 +f 220/395 219/393 224/399 +f 224/399 219/393 218/394 +f 224/399 218/394 225/400 +f 225/401 218/392 226/402 +f 218/392 217/391 226/402 +f 226/402 217/391 216/390 +f 226/402 216/390 227/403 +f 227/403 216/390 215/389 +f 227/403 215/389 228/404 +f 228/404 215/389 214/388 +f 228/404 214/388 229/405 +f 229/405 214/388 213/386 +f 229/405 213/386 230/406 +f 230/406 213/386 212/387 +f 230/406 212/387 231/407 +f 231/408 212/385 211/384 +f 231/408 211/384 232/409 +f 232/409 211/384 210/383 +f 232/409 210/383 233/410 +f 233/410 210/383 209/382 +f 233/410 209/382 234/411 +f 234/411 209/382 31/31 +f 234/411 31/31 30/30 +f 235/412 234/411 30/30 +f 235/412 30/30 27/27 +f 236/413 233/410 234/411 +f 236/413 234/411 235/412 +f 237/414 232/409 233/410 +f 237/414 233/410 236/413 +f 238/415 231/408 232/409 +f 238/415 232/409 237/414 +f 239/416 230/406 231/407 +f 239/416 231/407 238/417 +f 240/418 229/405 230/406 +f 240/418 230/406 239/416 +f 241/419 228/404 229/405 +f 241/419 229/405 240/418 +f 242/420 227/403 228/404 +f 242/420 228/404 241/419 +f 243/421 226/402 227/403 +f 243/421 227/403 242/420 +f 244/422 225/401 243/421 +f 225/401 226/402 243/421 +f 245/423 224/399 225/400 +f 245/423 225/400 244/424 +f 246/425 223/398 224/399 +f 246/425 224/399 245/423 +f 247/426 222/397 223/398 +f 247/426 223/398 246/425 +f 28/28 29/29 222/397 +f 28/28 222/397 247/426 +f 22/22 28/28 247/426 +f 22/22 247/426 248/427 +f 248/427 247/426 246/425 +f 248/427 246/425 249/428 +f 249/428 246/425 250/429 +f 246/425 245/423 250/429 +f 250/429 245/423 244/424 +f 250/429 244/424 251/430 +f 251/431 244/432 252/433 +f 244/432 243/434 252/433 +f 252/433 243/434 242/435 +f 252/433 242/435 253/436 +f 253/436 242/435 241/437 +f 253/436 241/437 254/438 +f 254/438 241/437 240/439 +f 254/438 240/439 255/440 +f 255/440 240/439 239/441 +f 255/440 239/441 256/442 +f 256/442 239/441 238/443 +f 256/442 238/443 257/444 +f 257/445 238/415 237/414 +f 257/445 237/414 258/446 +f 258/446 237/414 236/413 +f 258/446 236/413 259/447 +f 259/447 236/413 260/448 +f 236/413 235/412 260/448 +f 260/448 235/412 27/27 +f 260/448 27/27 25/25 +f 44/44 260/448 25/25 +f 44/44 25/25 24/24 +f 45/45 259/447 260/448 +f 45/45 260/448 44/44 +f 46/46 258/446 259/447 +f 46/46 259/447 45/45 +f 43/43 257/445 258/446 +f 43/43 258/446 46/46 +f 53/449 256/442 257/444 +f 53/449 257/444 43/450 +f 54/59 255/440 256/442 +f 54/59 256/442 53/449 +f 55/58 254/438 255/440 +f 55/58 255/440 54/59 +f 56/61 253/436 254/438 +f 56/61 254/438 55/58 +f 57/451 252/433 253/436 +f 57/451 253/436 56/61 +f 48/452 251/431 57/451 +f 251/431 252/433 57/451 +f 50/50 250/429 251/430 +f 50/50 251/430 48/48 +f 51/51 249/428 250/429 +f 51/51 250/429 50/50 +f 52/52 248/427 249/428 +f 52/52 249/428 51/51 +f 23/23 22/22 248/427 +f 23/23 248/427 52/52 diff --git a/assets/ships/jaeger/jaeger.texture.tga b/assets/ships/jaeger/jaeger.texture.tga new file mode 100755 index 0000000..1f8236f Binary files /dev/null and b/assets/ships/jaeger/jaeger.texture.tga differ diff --git a/assets/ships/jaeger/jaeger.texture.xcf b/assets/ships/jaeger/jaeger.texture.xcf new file mode 100755 index 0000000..b98874f Binary files /dev/null and b/assets/ships/jaeger/jaeger.texture.xcf differ diff --git a/assets/ships/marksman/marksman.blend b/assets/ships/marksman/marksman.blend new file mode 100755 index 0000000..5d53499 Binary files /dev/null and b/assets/ships/marksman/marksman.blend differ diff --git a/assets/ships/marksman/marksman.mtl b/assets/ships/marksman/marksman.mtl new file mode 100755 index 0000000..55f431b --- /dev/null +++ b/assets/ships/marksman/marksman.mtl @@ -0,0 +1,24 @@ +# Blender MTL File: 'marksman.blend' +# Material Count: 2 + +newmtl Material.001 +Ns 245.098039 +Ka 1.000000 1.000000 1.000000 +Kd 0.640000 0.640000 0.640000 +Ks 0.615139 0.615139 0.615139 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd marksman.texture.tga + +newmtl Material_marksman.texture. +Ns 245.098039 +Ka 1.000000 1.000000 1.000000 +Kd 0.640000 0.640000 0.640000 +Ks 0.615139 0.615139 0.615139 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd marksman.texture.tga diff --git a/assets/ships/marksman/marksman.obj b/assets/ships/marksman/marksman.obj new file mode 100755 index 0000000..8832fb0 --- /dev/null +++ b/assets/ships/marksman/marksman.obj @@ -0,0 +1,1960 @@ +# Blender v2.78 (sub 0) OBJ File: 'marksman.blend' +# www.blender.org +o marksman +v 0.900000 0.300000 -3.000000 +v 0.675000 0.325500 -3.125000 +v 0.000000 0.500000 -3.000000 +v 0.450000 0.359040 -3.210000 +v 0.225000 0.379080 -3.265000 +v 0.000000 0.390000 -3.300000 +v -0.225000 0.379080 -3.265000 +v -0.450000 0.359040 -3.210000 +v -0.675000 0.325500 -3.125000 +v -0.900000 0.300000 -3.000000 +v 0.900000 -0.300000 -3.000000 +v 0.000000 -0.500000 -3.000000 +v 0.675000 -0.325500 -3.125000 +v 0.450000 -0.359040 -3.210000 +v 0.225000 -0.379080 -3.265000 +v 0.000000 -0.390000 -3.300000 +v -0.225000 -0.379080 -3.265000 +v -0.450000 -0.359040 -3.210000 +v -0.675000 -0.325500 -3.125000 +v -0.900000 -0.300000 -3.000000 +v 0.800000 -0.560000 1.000000 +v 0.655808 -0.549240 1.059726 +v 0.643928 -0.549240 1.000000 +v 0.517157 -0.517373 1.117157 +v 0.493853 -0.517373 1.000000 +v 0.389376 -0.465623 1.170086 +v 0.355544 -0.465623 1.000000 +v 0.277375 -0.395980 1.216478 +v 0.234315 -0.395980 1.000000 +v 0.185458 -0.311119 1.254552 +v 0.134824 -0.311119 1.000000 +v 0.117158 -0.214303 1.282843 +v 0.060897 -0.214303 1.000000 +v 0.075098 -0.109251 1.300264 +v 0.015372 -0.109251 1.000000 +v 0.060897 -0.000000 1.306147 +v 0.000000 -0.000000 1.000000 +v 0.075098 0.109251 1.300264 +v 0.015372 0.109251 1.000000 +v 0.117158 0.214303 1.282843 +v 0.060897 0.214303 1.000000 +v 0.185458 0.311119 1.254552 +v 0.134824 0.311119 1.000000 +v 0.277375 0.395980 1.216478 +v 0.234315 0.395980 1.000000 +v 0.389376 0.465623 1.170086 +v 0.355544 0.465623 1.000000 +v 0.517157 0.517373 1.117157 +v 0.493853 0.517373 1.000000 +v 0.655808 0.549240 1.059726 +v 0.643928 0.549240 1.000000 +v 0.800000 0.560000 1.000000 +v 0.689640 0.549240 1.110360 +v 0.583522 0.517373 1.216478 +v 0.485722 0.465623 1.314278 +v 0.400000 0.395980 1.400000 +v 0.329650 0.311119 1.470350 +v 0.277375 0.214303 1.522625 +v 0.245184 0.109251 1.554816 +v 0.234315 -0.000000 1.565685 +v 0.245184 -0.109251 1.554816 +v 0.277375 -0.214303 1.522625 +v 0.329650 -0.311119 1.470350 +v 0.400000 -0.395980 1.400000 +v 0.485722 -0.465623 1.314278 +v 0.583522 -0.517373 1.216478 +v 0.689640 -0.549240 1.110360 +v 0.740274 -0.549240 1.144192 +v 0.682843 -0.517373 1.282843 +v 0.629914 -0.465623 1.410624 +v 0.583522 -0.395980 1.522625 +v 0.545448 -0.311119 1.614542 +v 0.517157 -0.214303 1.682843 +v 0.499736 -0.109250 1.724902 +v 0.493853 -0.000000 1.739103 +v 0.499736 0.109251 1.724902 +v 0.517157 0.214303 1.682842 +v 0.545448 0.311119 1.614542 +v 0.583522 0.395980 1.522625 +v 0.629914 0.465623 1.410624 +v 0.682843 0.517373 1.282843 +v 0.740274 0.549240 1.144192 +v 0.800000 0.549240 1.156072 +v 0.800000 0.517373 1.306147 +v 0.800000 0.465623 1.444456 +v 0.800000 0.395980 1.565685 +v 0.800000 0.311119 1.665176 +v 0.800000 0.214303 1.739103 +v 0.800000 0.109251 1.784628 +v 0.800000 -0.000000 1.800000 +v 0.800000 -0.109250 1.784628 +v 0.800000 -0.214303 1.739103 +v 0.800000 -0.311119 1.665176 +v 0.800000 -0.395980 1.565685 +v 0.800000 -0.465623 1.444456 +v 0.800000 -0.517373 1.306147 +v 0.800000 -0.549240 1.156072 +v 0.859726 -0.549240 1.144192 +v 0.917157 -0.517373 1.282843 +v 0.970086 -0.465623 1.410624 +v 1.016478 -0.395980 1.522625 +v 1.054552 -0.311119 1.614542 +v 1.082843 -0.214303 1.682842 +v 1.100264 -0.109250 1.724902 +v 1.106147 -0.000000 1.739103 +v 1.100264 0.109251 1.724902 +v 1.082843 0.214303 1.682842 +v 1.054552 0.311119 1.614542 +v 1.016478 0.395980 1.522625 +v 0.970086 0.465623 1.410624 +v 0.917157 0.517373 1.282843 +v 0.859726 0.549240 1.144192 +v 0.910360 0.549240 1.110360 +v 1.016478 0.517373 1.216478 +v 1.114278 0.465623 1.314278 +v 1.200000 0.395980 1.400000 +v 1.270350 0.311119 1.470350 +v 1.322625 0.214303 1.522625 +v 1.354816 0.109251 1.554816 +v 1.365685 -0.000000 1.565685 +v 1.354816 -0.109251 1.554816 +v 1.322625 -0.214303 1.522625 +v 1.270350 -0.311119 1.470350 +v 1.200000 -0.395980 1.400000 +v 1.114278 -0.465623 1.314278 +v 1.016478 -0.517373 1.216478 +v 0.910360 -0.549240 1.110360 +v 0.944192 -0.549240 1.059726 +v 1.082842 -0.517373 1.117157 +v 1.210624 -0.465623 1.170086 +v 1.322625 -0.395980 1.216478 +v 1.414542 -0.311119 1.254552 +v 1.482843 -0.214303 1.282842 +v 1.524902 -0.109251 1.300264 +v 1.539103 -0.000000 1.306147 +v 1.524902 0.109251 1.300264 +v 1.482842 0.214303 1.282842 +v 1.414542 0.311119 1.254552 +v 1.322625 0.395980 1.216478 +v 1.210624 0.465623 1.170086 +v 1.082843 0.517373 1.117157 +v 0.944192 0.549240 1.059726 +v 0.956072 0.549240 1.000000 +v 1.106147 0.517373 1.000000 +v 1.244456 0.465623 1.000000 +v 1.365685 0.395980 1.000000 +v 1.465176 0.311119 1.000000 +v 1.539103 0.214303 1.000000 +v 1.584628 0.109251 1.000000 +v 1.600000 -0.000000 1.000000 +v 1.584628 -0.109251 1.000000 +v 1.539103 -0.214303 1.000000 +v 1.465176 -0.311119 1.000000 +v 1.365685 -0.395980 1.000000 +v 1.244456 -0.465623 1.000000 +v 1.106146 -0.517373 1.000000 +v 0.956072 -0.549240 1.000000 +v 0.000000 0.500000 -0.400000 +v 0.000000 0.300000 0.900000 +v 0.000000 -0.500000 -0.400000 +v 0.000000 -0.300000 0.900000 +v 0.750000 0.400000 -0.700000 +v 1.500000 0.300000 -1.000000 +v 0.750000 -0.400000 -0.700000 +v 1.500000 -0.300000 -1.000000 +v -0.060000 0.300000 0.940000 +v -0.060000 -0.300000 0.940000 +v 0.000000 0.300000 0.900000 +v -0.100000 0.300000 1.000000 +v -0.100000 -0.300000 1.000000 +v -0.290000 0.183000 1.738000 +v -0.290000 -0.183000 1.738000 +v -0.520000 0.165000 2.400000 +v -0.520000 -0.165000 2.400000 +v -1.500000 0.300000 -1.000000 +v -1.500000 -0.300000 -1.000000 +v -1.540000 -0.303000 -0.087500 +v -1.540000 0.303000 -0.087500 +v -1.550000 0.252000 0.825000 +v -1.550000 -0.252000 0.825000 +v -1.440000 -0.183000 1.737500 +v -1.440000 0.183000 1.737500 +v -1.180000 -0.165000 2.400000 +v -1.180000 0.165000 2.400000 +v -0.850000 0.373049 1.737750 +v -0.685000 0.330000 2.400000 +v -1.015000 0.330000 2.400000 +v -0.685000 -0.330000 2.400000 +v -0.850000 -0.373049 1.737750 +v -1.015000 -0.330000 2.400000 +v -0.750000 0.400000 -0.700000 +v -0.750000 -0.400000 -0.700000 +v -0.770000 0.405515 -0.243750 +v -0.825000 0.395085 0.912500 +v -0.770000 -0.405515 -0.243750 +v -0.825000 -0.395085 0.912500 +v -0.566806 0.114835 5.640000 +v -0.631838 0.212162 5.710000 +v -0.695478 0.148523 5.769857 +v -0.667417 0.114818 5.743857 +v -0.631839 -0.212102 5.710000 +v -0.566807 -0.114775 5.640000 +v -0.667417 -0.115182 5.743857 +v -0.695478 -0.148462 5.769857 +v -0.729166 -0.277134 5.800000 +v -0.763607 -0.193984 5.832858 +v -0.843971 -0.299969 5.900000 +v -0.843971 -0.209969 5.902857 +v -0.958776 -0.277133 5.800000 +v -0.924334 -0.193984 5.832858 +v -1.056103 -0.212101 5.710000 +v -0.992463 -0.148462 5.769857 +v -1.121135 -0.114774 5.640000 +v -1.020524 -0.115182 5.743857 +v -1.056102 0.212163 5.710000 +v -1.121134 0.114836 5.640000 +v -1.020524 0.114819 5.743857 +v -0.992462 0.148523 5.769857 +v -0.958775 0.277195 5.800000 +v -0.924333 0.194046 5.832858 +v -0.843969 0.300031 5.900000 +v -0.843970 0.210031 5.902857 +v -0.729164 0.277194 5.800000 +v -0.763606 0.194045 5.832858 +v -0.667417 -0.115182 2.400000 +v -0.695478 -0.148462 2.400000 +v -0.763607 -0.193984 2.400000 +v -0.843970 -0.209970 2.400000 +v -0.924334 -0.193984 2.400000 +v -0.992463 -0.148462 2.400000 +v -1.020524 -0.115182 2.400000 +v -0.695478 0.148523 2.400000 +v -0.667417 0.114818 2.400000 +v -0.763607 0.194045 2.400000 +v -1.020524 0.114818 2.400000 +v -0.992463 0.148523 2.400000 +v -0.924334 0.194045 2.400000 +v -0.843970 0.210030 2.400000 +v -0.566807 0.114835 2.400000 +v -0.631838 0.212162 2.400000 +v -0.631838 0.212162 2.800000 +v -0.566807 0.114835 2.800000 +v -0.631838 -0.212102 2.400000 +v -0.566807 -0.114775 2.400000 +v -0.566807 -0.114775 2.800000 +v -0.631838 -0.212102 2.800000 +v -0.729165 -0.277134 2.400000 +v -0.729165 -0.277134 2.800000 +v -0.843970 -0.299970 2.400000 +v -0.843970 -0.299970 2.800000 +v -0.958775 -0.277134 2.400000 +v -0.958775 -0.277134 2.800000 +v -1.056102 -0.212102 2.400000 +v -1.056102 -0.212102 2.800000 +v -1.121134 -0.114775 2.400000 +v -1.121134 -0.114775 2.800000 +v -1.056102 0.212162 2.400000 +v -1.121134 0.114835 2.400000 +v -1.121134 0.114835 2.800000 +v -1.056102 0.212162 2.800000 +v -0.958775 0.277194 2.400000 +v -0.958775 0.277194 2.800000 +v -0.843970 0.300030 2.400000 +v -0.843970 0.300030 2.800000 +v -0.729165 0.277194 2.400000 +v -0.729165 0.277194 2.800000 +v -0.631838 0.212162 3.300000 +v -0.729165 0.277194 3.300000 +v -0.729165 0.277194 4.800000 +v -0.631838 0.212162 4.800000 +v -0.843970 0.300030 3.300000 +v -0.843970 0.300030 4.800000 +v -0.958775 0.277194 3.300000 +v -0.958775 0.277194 4.800000 +v -1.056102 0.212162 3.300000 +v -1.056102 0.212163 4.800000 +v -1.121134 0.114835 3.300000 +v -1.121134 0.114835 4.800000 +v -1.056102 -0.212102 3.300000 +v -1.056102 -0.212102 4.800000 +v -1.121134 -0.114775 4.800000 +v -1.121134 -0.114775 3.300000 +v -0.958775 -0.277134 3.300000 +v -0.958775 -0.277134 4.800000 +v -0.843970 -0.299970 3.300000 +v -0.843970 -0.299970 4.800000 +v -0.729165 -0.277134 3.300000 +v -0.729165 -0.277133 4.800000 +v -0.631838 -0.212102 3.300000 +v -0.631838 -0.212102 4.800000 +v -0.566807 -0.114775 3.300000 +v -0.566807 -0.114775 4.800000 +v -0.566807 0.114835 4.800000 +v -0.566807 0.114835 3.300000 +v -0.578805 0.265188 2.800000 +v -0.497516 0.143529 2.800000 +v -0.497516 -0.143484 2.800000 +v -0.578805 -0.265142 2.800000 +v -0.700464 -0.346432 2.800000 +v -0.843970 -0.374977 2.800000 +v -0.987477 -0.346432 2.800000 +v -1.109136 -0.265142 2.800000 +v -1.190425 -0.143484 2.800000 +v -1.190425 0.143529 2.800000 +v -1.109136 0.265188 2.800000 +v -0.987477 0.346478 2.800000 +v -0.843970 0.375023 2.800000 +v -0.700464 0.346478 2.800000 +v -0.578805 0.265188 3.300000 +v -0.700464 0.346478 3.300000 +v -0.843970 0.375023 3.300000 +v -0.987477 0.346478 3.300000 +v -1.109136 0.265188 3.300000 +v -1.190425 0.143529 3.300000 +v -1.190425 -0.143484 3.300000 +v -1.109136 -0.265142 3.300000 +v -0.987477 -0.346432 3.300000 +v -0.843970 -0.374977 3.300000 +v -0.700464 -0.346432 3.300000 +v -0.578805 -0.265142 3.300000 +v -0.497516 -0.143484 3.300000 +v -0.497516 0.143529 3.300000 +v -0.700464 0.346478 4.800000 +v -0.578805 0.265188 4.800000 +v -0.843970 0.375023 4.800000 +v -0.987477 0.346478 4.800000 +v -1.109136 0.265188 4.800000 +v -1.190425 0.143529 4.800000 +v -1.109136 -0.265142 4.800000 +v -1.190425 -0.143484 4.800000 +v -0.987477 -0.346432 4.800000 +v -0.843970 -0.374977 4.800000 +v -0.700464 -0.346432 4.800000 +v -0.578805 -0.265142 4.800000 +v -0.497516 -0.143483 4.800000 +v -0.497516 0.143529 4.800000 +v -0.631838 0.212162 5.300000 +v -0.566807 0.114835 5.300000 +v -0.497516 0.143529 5.300000 +v -0.578805 0.265188 5.300000 +v -0.631838 -0.212102 5.300000 +v -0.578805 -0.265142 5.300000 +v -0.497516 -0.143483 5.300000 +v -0.566807 -0.114775 5.300000 +v -0.729165 -0.277133 5.300000 +v -0.700464 -0.346432 5.300000 +v -0.843970 -0.299970 5.300000 +v -0.843970 -0.374977 5.300000 +v -0.958775 -0.277133 5.300000 +v -0.987477 -0.346432 5.300000 +v -1.056102 -0.212102 5.300000 +v -1.109136 -0.265142 5.300000 +v -1.121134 -0.114775 5.300000 +v -1.190425 -0.143483 5.300000 +v -1.056102 0.212163 5.300000 +v -1.109136 0.265188 5.300000 +v -1.190425 0.143529 5.300000 +v -1.121134 0.114835 5.300000 +v -0.958775 0.277194 5.300000 +v -0.987477 0.346478 5.300000 +v -0.843970 0.300030 5.300000 +v -0.843970 0.375023 5.300000 +v -0.729165 0.277194 5.300000 +v -0.700464 0.346478 5.300000 +v -1.140536 0.000030 5.300000 +v -1.214678 0.000023 5.300000 +v -0.547405 0.000030 5.300000 +v -0.473264 0.000023 5.300000 +v -0.547405 0.000030 4.800000 +v -0.473264 0.000023 4.800000 +v -1.140536 0.000030 4.800000 +v -1.214678 0.000023 4.800000 +v -0.547405 0.000030 3.300000 +v -0.473264 0.000023 3.300000 +v -0.547405 0.000030 2.800000 +v -0.473264 0.000023 2.800000 +v -1.140502 0.001960 2.799813 +v -1.214635 0.002435 2.799813 +v -1.140536 0.000030 3.300000 +v -1.214678 0.000023 3.300000 +v -0.843970 0.000030 2.400000 +v 0.000000 0.300000 -3.000000 +v 0.000000 -0.300000 -3.000000 +v 0.765000 -0.210000 -2.878000 +v 0.765000 0.210000 -2.878000 +v 0.135000 0.210000 -2.900000 +v 0.135000 -0.218400 -2.900000 +v -0.765000 0.210000 -2.878000 +v -0.765000 -0.210000 -2.878000 +v -0.135000 -0.218400 -2.900001 +v -0.135000 0.210000 -2.900001 +vt 0.8627 0.6306 +vt 0.8628 0.7335 +vt 0.8457 0.6544 +vt 0.8403 0.8338 +vt 0.8289 0.8068 +vt 0.8175 0.7285 +vt 0.8243 0.7035 +vt 0.8187 0.7543 +vt 0.8333 0.6788 +vt 0.8221 0.7804 +vt 0.0058 0.6666 +vt 0.0228 0.6904 +vt 0.0057 0.7695 +vt 0.0282 0.8698 +vt 0.0396 0.8428 +vt 0.0510 0.7645 +vt 0.0442 0.7395 +vt 0.0498 0.7903 +vt 0.0352 0.7148 +vt 0.0464 0.8164 +vt 0.7145 0.7328 +vt 0.7817 0.7478 +vt 0.7254 0.7479 +vt 0.7817 0.7173 +vt 0.7909 0.7328 +vt 0.7909 0.8379 +vt 0.7909 0.6258 +vt 0.7817 0.6337 +vt 0.7145 0.6258 +vt 0.7254 0.7173 +vt 0.7145 0.8379 +vt 0.7254 0.8273 +vt 0.7254 0.6337 +vt 0.7817 0.8273 +vt 0.2781 0.6228 +vt 0.2523 0.6366 +vt 0.1757 0.6212 +vt 0.2265 0.6458 +vt 0.2008 0.6516 +vt 0.1751 0.6552 +vt 0.1496 0.6508 +vt 0.1240 0.6441 +vt 0.0986 0.6341 +vt 0.0731 0.6194 +vt 0.4335 0.6228 +vt 0.5359 0.6212 +vt 0.4594 0.6366 +vt 0.4851 0.6458 +vt 0.5108 0.6516 +vt 0.5365 0.6552 +vt 0.5621 0.6508 +vt 0.5876 0.6441 +vt 0.6131 0.6341 +vt 0.6385 0.6194 +vt 0.4373 0.1684 +vt 0.4536 0.1614 +vt 0.4551 0.1681 +vt 0.4722 0.1679 +vt 0.4693 0.1546 +vt 0.4880 0.1676 +vt 0.4965 0.1428 +vt 0.5018 0.1673 +vt 0.5132 0.1671 +vt 0.5519 0.7962 +vt 0.5630 0.8235 +vt 0.5520 0.8244 +vt 0.5749 0.7897 +vt 0.5750 0.8229 +vt 0.5874 0.8227 +vt 0.5997 0.7896 +vt 0.5998 0.8228 +vt 0.6118 0.8233 +vt 0.6227 0.7960 +vt 0.6228 0.8241 +vt 0.1984 0.1671 +vt 0.2151 0.1428 +vt 0.2098 0.1673 +vt 0.2236 0.1676 +vt 0.2423 0.1546 +vt 0.2394 0.1679 +vt 0.2580 0.1614 +vt 0.2565 0.1681 +vt 0.2743 0.1684 +vt 0.2619 0.1557 +vt 0.2390 0.1321 +vt 0.2278 0.1483 +vt 0.2294 0.1222 +vt 0.2046 0.1383 +vt 0.6117 0.7920 +vt 0.6227 0.7732 +vt 0.5997 0.7628 +vt 0.5873 0.7888 +vt 0.5748 0.7629 +vt 0.5629 0.7922 +vt 0.5518 0.7734 +vt 0.4822 0.1222 +vt 0.5070 0.1383 +vt 0.4838 0.1483 +vt 0.4726 0.1321 +vt 0.4497 0.1557 +vt 0.4439 0.1519 +vt 0.4502 0.1361 +vt 0.4616 0.1434 +vt 0.4611 0.1086 +vt 0.4653 0.0981 +vt 0.4902 0.1141 +vt 0.1995 0.7598 +vt 0.2106 0.7902 +vt 0.1995 0.7843 +vt 0.2105 0.7630 +vt 0.2226 0.7939 +vt 0.2349 0.7656 +vt 0.2350 0.7951 +vt 0.2474 0.7938 +vt 0.2593 0.7629 +vt 0.2594 0.7901 +vt 0.2704 0.7841 +vt 0.2463 0.0981 +vt 0.2215 0.1141 +vt 0.2505 0.1086 +vt 0.2615 0.1361 +vt 0.2500 0.1434 +vt 0.2678 0.1519 +vt 0.2746 0.1507 +vt 0.2748 0.1337 +vt 0.2751 0.1179 +vt 0.2556 0.1215 +vt 0.2754 0.0928 +vt 0.2592 0.7307 +vt 0.2703 0.7596 +vt 0.2473 0.7649 +vt 0.2348 0.7308 +vt 0.2225 0.7650 +vt 0.2104 0.7309 +vt 0.1994 0.7309 +vt 0.4363 0.0928 +vt 0.4366 0.1179 +vt 0.4560 0.1215 +vt 0.4368 0.1337 +vt 0.4370 0.1507 +vt 0.4303 0.1522 +vt 0.4235 0.1365 +vt 0.4173 0.1221 +vt 0.4364 0.1042 +vt 0.4118 0.1094 +vt 0.1993 0.7020 +vt 0.2223 0.6967 +vt 0.2224 0.7308 +vt 0.2471 0.6967 +vt 0.2472 0.7308 +vt 0.2701 0.7018 +vt 0.2702 0.7307 +vt 0.2998 0.1094 +vt 0.2753 0.1042 +vt 0.2881 0.1365 +vt 0.2814 0.1522 +vt 0.2871 0.1561 +vt 0.3106 0.1333 +vt 0.2944 0.1221 +vt 0.3043 0.0991 +vt 0.3205 0.1237 +vt 0.2591 0.6986 +vt 0.2701 0.6773 +vt 0.2470 0.6678 +vt 0.2347 0.6960 +vt 0.2222 0.6678 +vt 0.2103 0.6988 +vt 0.1992 0.6775 +vt 0.3911 0.1237 +vt 0.4074 0.0991 +vt 0.4010 0.1333 +vt 0.4246 0.1561 +vt 0.4208 0.1619 +vt 0.4049 0.1556 +vt 0.4123 0.1442 +vt 0.3903 0.1499 +vt 0.3670 0.1406 +vt 0.3831 0.1158 +vt 0.7986 0.4902 +vt 0.8098 0.5204 +vt 0.7987 0.5143 +vt 0.8216 0.4955 +vt 0.8217 0.5240 +vt 0.8341 0.4962 +vt 0.8342 0.5253 +vt 0.8466 0.5240 +vt 0.8465 0.4954 +vt 0.8586 0.5202 +vt 0.8695 0.4899 +vt 0.8696 0.5141 +vt 0.3446 0.1406 +vt 0.3286 0.1158 +vt 0.3213 0.1499 +vt 0.3067 0.1556 +vt 0.2993 0.1442 +vt 0.2908 0.1619 +vt 0.2921 0.1687 +vt 0.3091 0.1690 +vt 0.3248 0.1692 +vt 0.3341 0.1448 +vt 0.3499 0.1696 +vt 0.8585 0.4933 +vt 0.8694 0.4611 +vt 0.8464 0.4615 +vt 0.8340 0.4616 +vt 0.8097 0.4935 +vt 0.8215 0.4616 +vt 0.7985 0.4614 +vt 0.3775 0.1448 +vt 0.3618 0.1696 +vt 0.3868 0.1692 +vt 0.4025 0.1690 +vt 0.4196 0.1687 +vt 0.1806 0.3259 +vt 0.1829 0.1782 +vt 0.5311 0.3259 +vt 0.5288 0.1782 +vt 0.3501 0.9234 +vt 0.3392 0.9282 +vt 0.3376 0.9145 +vt 0.3376 0.9411 +vt 0.6216 0.8339 +vt 0.5533 0.8341 +vt 0.3997 0.9208 +vt 0.4106 0.9257 +vt 0.4122 0.9386 +vt 0.4122 0.9119 +vt 0.2654 0.3613 +vt 0.3501 0.3968 +vt 0.4463 0.3613 +vt 0.3615 0.3968 +vt 0.3386 0.1694 +vt 0.8674 0.2341 +vt 0.8584 0.4613 +vt 0.3730 0.1694 +vt 0.7991 0.2343 +vt 0.8096 0.4615 +vt 0.5021 0.8909 +vt 0.4954 0.9250 +vt 0.4952 0.8568 +vt 0.5020 0.8568 +vt 0.5022 0.9249 +vt 0.2818 0.6735 +vt 0.3501 0.6666 +vt 0.3501 0.6733 +vt 0.3371 0.7567 +vt 0.3352 0.8314 +vt 0.2954 0.7568 +vt 0.7180 0.3863 +vt 0.7863 0.2826 +vt 0.7863 0.3861 +vt 0.7228 0.1795 +vt 0.7802 0.1794 +vt 0.7304 0.0777 +vt 0.7720 0.0775 +vt 0.7698 0.0057 +vt 0.7322 0.0058 +vt 0.0877 0.0816 +vt 0.1264 0.0069 +vt 0.1513 0.0825 +vt 0.0701 0.0060 +vt 0.1077 0.0066 +vt 0.0204 0.0804 +vt 0.5853 0.0069 +vt 0.6239 0.0816 +vt 0.5603 0.0825 +vt 0.6604 0.0057 +vt 0.6415 0.0060 +vt 0.6040 0.0066 +vt 0.1717 0.1667 +vt 0.1761 0.1736 +vt 0.5355 0.1736 +vt 0.5400 0.1667 +vt 0.0946 0.3586 +vt 0.0086 0.3912 +vt 0.6171 0.3586 +vt 0.7031 0.3912 +vt 0.0931 0.3067 +vt 0.0890 0.1753 +vt 0.0057 0.2875 +vt 0.0062 0.1839 +vt 0.7059 0.2875 +vt 0.6226 0.1753 +vt 0.7054 0.1839 +vt 0.6912 0.0804 +vt 0.6185 0.3067 +vt 0.7984 0.0059 +vt 0.8667 0.0057 +vt 0.7870 0.6190 +vt 0.2244 0.8856 +vt 0.2133 0.8896 +vt 0.2133 0.8782 +vt 0.2593 0.8855 +vt 0.2703 0.8896 +vt 0.2665 0.8928 +vt 0.2518 0.8966 +vt 0.2613 0.9005 +vt 0.2492 0.9096 +vt 0.2595 0.9096 +vt 0.2612 0.9188 +vt 0.2518 0.9226 +vt 0.2664 0.9265 +vt 0.2591 0.9337 +vt 0.2702 0.9297 +vt 0.2702 0.9411 +vt 0.2242 0.9338 +vt 0.2132 0.9297 +vt 0.2170 0.9265 +vt 0.2317 0.9228 +vt 0.2222 0.9188 +vt 0.2343 0.9097 +vt 0.2241 0.9097 +vt 0.2223 0.9006 +vt 0.2318 0.8967 +vt 0.2171 0.8928 +vt 0.9943 0.4182 +vt 0.9894 0.7957 +vt 0.9905 0.4149 +vt 0.9151 0.4300 +vt 0.9070 0.8127 +vt 0.9074 0.4229 +vt 0.8978 0.8127 +vt 0.8982 0.4149 +vt 0.8891 0.4228 +vt 0.8887 0.8127 +vt 0.8813 0.4300 +vt 0.9730 0.0209 +vt 0.9779 0.4005 +vt 0.9741 0.4035 +vt 0.9943 0.4032 +vt 0.9893 0.0257 +vt 0.9931 0.0224 +vt 0.8810 0.0208 +vt 0.8891 0.4035 +vt 0.8813 0.4035 +vt 0.9730 0.7946 +vt 0.9780 0.4150 +vt 0.9768 0.7976 +vt 0.9148 0.0208 +vt 0.9074 0.4035 +vt 0.9070 0.0136 +vt 0.8983 0.4035 +vt 0.8979 0.0057 +vt 0.8887 0.0136 +vt 0.0765 0.9079 +vt 0.0652 0.9535 +vt 0.0654 0.9080 +vt 0.4451 0.9120 +vt 0.4342 0.9573 +vt 0.4341 0.9119 +vt 0.1121 0.8497 +vt 0.1011 0.8952 +vt 0.1011 0.8496 +vt 0.0881 0.8952 +vt 0.0881 0.8497 +vt 0.0751 0.8952 +vt 0.0750 0.8497 +vt 0.0640 0.8953 +vt 0.0639 0.8497 +vt 0.6711 0.9276 +vt 0.6823 0.8817 +vt 0.6822 0.9279 +vt 0.0998 0.9531 +vt 0.1107 0.9086 +vt 0.1108 0.9538 +vt 0.4466 0.8537 +vt 0.4354 0.8992 +vt 0.4355 0.8537 +vt 0.4224 0.8992 +vt 0.4224 0.8536 +vt 0.4094 0.8992 +vt 0.4094 0.8536 +vt 0.3984 0.8536 +vt 0.1766 0.8370 +vt 0.1878 0.6666 +vt 0.1877 0.8370 +vt 0.1637 0.6666 +vt 0.1636 0.8370 +vt 0.1506 0.6666 +vt 0.1505 0.8370 +vt 0.1395 0.6666 +vt 0.1393 0.8369 +vt 0.9041 0.9936 +vt 0.9146 0.8248 +vt 0.9151 0.9943 +vt 0.9735 0.8097 +vt 0.9840 0.9785 +vt 0.9730 0.9792 +vt 0.0995 0.6666 +vt 0.1108 0.8369 +vt 0.0997 0.8370 +vt 0.0866 0.8370 +vt 0.0736 0.8370 +vt 0.0865 0.6666 +vt 0.0624 0.6666 +vt 0.0625 0.8370 +vt 0.9608 0.8062 +vt 0.9503 0.9764 +vt 0.9498 0.8060 +vt 0.9376 0.9764 +vt 0.9271 0.8061 +vt 0.9381 0.8060 +vt 0.4796 0.7367 +vt 0.4902 0.7501 +vt 0.4748 0.7437 +vt 0.4650 0.7017 +vt 0.4567 0.7166 +vt 0.4567 0.7000 +vt 0.4701 0.6894 +vt 0.4630 0.6847 +vt 0.4796 0.6800 +vt 0.4748 0.6729 +vt 0.4902 0.6666 +vt 0.4919 0.6749 +vt 0.5069 0.6666 +vt 0.5052 0.6749 +vt 0.5223 0.6729 +vt 0.5175 0.6800 +vt 0.5321 0.7017 +vt 0.5404 0.7166 +vt 0.5321 0.7150 +vt 0.5341 0.7320 +vt 0.5270 0.7273 +vt 0.5223 0.7437 +vt 0.5175 0.7367 +vt 0.5052 0.7418 +vt 0.5069 0.7501 +vt 0.4919 0.7418 +vt 0.4785 0.7757 +vt 0.4888 0.7619 +vt 0.4907 0.7702 +vt 0.5055 0.7615 +vt 0.5040 0.7699 +vt 0.5165 0.7746 +vt 0.5210 0.7674 +vt 0.5262 0.7837 +vt 0.5316 0.7959 +vt 0.5331 0.7788 +vt 0.5399 0.7940 +vt 0.5344 0.8261 +vt 0.5181 0.8312 +vt 0.5272 0.8216 +vt 0.5230 0.8382 +vt 0.5059 0.8367 +vt 0.4926 0.8370 +vt 0.5078 0.8450 +vt 0.4911 0.8454 +vt 0.4756 0.8395 +vt 0.4801 0.8323 +vt 0.4635 0.8281 +vt 0.4704 0.8232 +vt 0.4567 0.8129 +vt 0.4650 0.8110 +vt 0.4694 0.7853 +vt 0.4736 0.7687 +vt 0.6272 0.7017 +vt 0.6292 0.6847 +vt 0.6356 0.7000 +vt 0.6174 0.6729 +vt 0.6221 0.6894 +vt 0.6127 0.6800 +vt 0.6004 0.6749 +vt 0.5870 0.6749 +vt 0.6020 0.6666 +vt 0.5747 0.6800 +vt 0.5854 0.6666 +vt 0.5602 0.7150 +vt 0.5518 0.7000 +vt 0.5602 0.7017 +vt 0.5653 0.7273 +vt 0.5518 0.7166 +vt 0.5747 0.7367 +vt 0.5582 0.7320 +vt 0.5854 0.7501 +vt 0.5700 0.7437 +vt 0.6020 0.7501 +vt 0.5870 0.7418 +vt 0.6004 0.7418 +vt 0.6174 0.7437 +vt 0.6272 0.7150 +vt 0.3967 0.6749 +vt 0.4117 0.6666 +vt 0.4101 0.6749 +vt 0.3699 0.7017 +vt 0.3679 0.6847 +vt 0.3750 0.6894 +vt 0.3699 0.7150 +vt 0.3615 0.7000 +vt 0.3750 0.7273 +vt 0.3615 0.7166 +vt 0.3797 0.7437 +vt 0.3844 0.7367 +vt 0.3951 0.7501 +vt 0.3967 0.7418 +vt 0.4117 0.7501 +vt 0.4101 0.7418 +vt 0.4453 0.7166 +vt 0.4318 0.7273 +vt 0.4369 0.7150 +vt 0.4453 0.7000 +vt 0.4369 0.7017 +vt 0.4389 0.6847 +vt 0.4318 0.6894 +vt 0.4224 0.6800 +vt 0.4271 0.6729 +vt 0.4268 0.7433 +vt 0.4222 0.7363 +vt 0.3799 0.6733 +vt 0.3846 0.6803 +vt 0.6288 0.7317 +vt 0.6127 0.7367 +vt 0.6218 0.7270 +vt 0.5586 0.6849 +vt 0.5656 0.6896 +vt 0.4567 0.7964 +vt 0.4650 0.7978 +vt 0.4634 0.7317 +vt 0.4705 0.7271 +vt 0.4650 0.7150 +vt 0.5338 0.6852 +vt 0.5267 0.6898 +vt 0.5399 0.8105 +vt 0.5316 0.8091 +vt 0.0398 0.9198 +vt 0.0510 0.8811 +vt 0.0508 0.9277 +vt 0.1878 0.8699 +vt 0.1767 0.9165 +vt 0.1768 0.8597 +vt 0.6479 0.8889 +vt 0.6591 0.9281 +vt 0.6471 0.9273 +vt 0.1395 0.8699 +vt 0.1506 0.9165 +vt 0.1395 0.9164 +vt 0.1506 0.8597 +vt 0.1637 0.9165 +vt 0.1637 0.8483 +vt 0.0169 0.9198 +vt 0.0057 0.8811 +vt 0.0168 0.8812 +vt 0.7578 0.8681 +vt 0.7689 0.9147 +vt 0.7578 0.9147 +vt 0.7688 0.8579 +vt 0.7819 0.9147 +vt 0.7950 0.8579 +vt 0.7819 0.8466 +vt 0.8061 0.8681 +vt 0.7950 0.9147 +vt 0.7049 0.8889 +vt 0.6937 0.9281 +vt 0.6929 0.8817 +vt 0.9384 0.0238 +vt 0.9268 0.1310 +vt 0.9269 0.0742 +vt 0.9269 0.0356 +vt 0.9265 0.4149 +vt 0.9380 0.4653 +vt 0.9381 0.5221 +vt 0.9380 0.4267 +vt 0.9612 0.0238 +vt 0.9498 0.1310 +vt 0.9498 0.0742 +vt 0.9498 0.0356 +vt 0.9616 0.4267 +vt 0.9615 0.4653 +vt 0.9501 0.4149 +vt 0.9615 0.5221 +vt 0.9612 0.7947 +vt 0.9498 0.7947 +vt 0.9613 0.7493 +vt 0.9613 0.6925 +vt 0.9501 0.4035 +vt 0.9501 0.3581 +vt 0.9616 0.4035 +vt 0.9500 0.3013 +vt 0.9265 0.4035 +vt 0.9266 0.3581 +vt 0.9380 0.4035 +vt 0.9266 0.3013 +vt 0.9384 0.7947 +vt 0.9269 0.7947 +vt 0.9383 0.7492 +vt 0.9383 0.6924 +vt 0.4567 0.8569 +vt 0.4699 0.9136 +vt 0.4568 0.9134 +vt 0.4828 0.8568 +vt 0.4830 0.9133 +vt 0.3884 0.9096 +vt 0.3751 0.8528 +vt 0.3882 0.8528 +vt 0.3622 0.9097 +vt 0.3620 0.8529 +vt 0.7173 0.8467 +vt 0.7306 0.9034 +vt 0.7175 0.9034 +vt 0.7436 0.9034 +vt 0.7306 0.8466 +vt 0.7435 0.8466 +vt 0.5267 0.9136 +vt 0.5399 0.8569 +vt 0.5398 0.9134 +vt 0.5138 0.8568 +vt 0.5136 0.9133 +vt 0.8157 0.8586 +vt 0.8726 0.8434 +vt 0.8727 0.8587 +vt 0.8727 0.8750 +vt 0.2135 0.8668 +vt 0.2702 0.8528 +vt 0.2704 0.8666 +vt 0.8726 0.8913 +vt 0.8157 0.8749 +vt 0.8725 0.9061 +vt 0.8157 0.8912 +vt 0.6464 0.7117 +vt 0.7029 0.7264 +vt 0.6462 0.7266 +vt 0.6463 0.6961 +vt 0.7030 0.7115 +vt 0.6463 0.6798 +vt 0.7029 0.6646 +vt 0.7029 0.6796 +vt 0.2928 0.8882 +vt 0.3497 0.9027 +vt 0.2927 0.9027 +vt 0.2928 0.8719 +vt 0.3497 0.8882 +vt 0.2927 0.8556 +vt 0.3497 0.8718 +vt 0.2928 0.8403 +vt 0.3497 0.8556 +vt 0.2701 0.8202 +vt 0.2132 0.8045 +vt 0.2701 0.8044 +vt 0.2131 0.8367 +vt 0.2131 0.8204 +vt 0.2132 0.8530 +vt 0.2701 0.8365 +vt 0.7982 0.5973 +vt 0.8551 0.5814 +vt 0.8551 0.5971 +vt 0.6218 0.8593 +vt 0.5647 0.8434 +vt 0.6216 0.8435 +vt 0.7982 0.5816 +vt 0.8552 0.5656 +vt 0.7982 0.5495 +vt 0.8551 0.5344 +vt 0.8552 0.5493 +vt 0.7032 0.8083 +vt 0.6463 0.8246 +vt 0.6463 0.8083 +vt 0.7032 0.8246 +vt 0.6463 0.8409 +vt 0.7032 0.8409 +vt 0.6464 0.8556 +vt 0.7033 0.8555 +vt 0.6463 0.8711 +vt 0.6468 0.7988 +vt 0.7036 0.7847 +vt 0.7034 0.7990 +vt 0.6470 0.7684 +vt 0.7036 0.7683 +vt 0.6471 0.7522 +vt 0.7037 0.7370 +vt 0.7037 0.7524 +vt 0.5648 0.9057 +vt 0.6217 0.8919 +vt 0.6217 0.9057 +vt 0.5648 0.8918 +vt 0.6218 0.8756 +vt 0.5648 0.8755 +vt 0.4049 0.7769 +vt 0.4141 0.7787 +vt 0.4049 0.8007 +vt 0.4218 0.7839 +vt 0.4270 0.7916 +vt 0.4288 0.8007 +vt 0.4284 0.8057 +vt 0.4099 0.8242 +vt 0.4049 0.8246 +vt 0.3958 0.8228 +vt 0.3880 0.8176 +vt 0.3828 0.8099 +vt 0.3810 0.8007 +vt 0.3814 0.7958 +vt 0.4000 0.7773 +vt 0.4180 0.8322 +vt 0.4365 0.8138 +vt 0.3734 0.7877 +vt 0.4453 0.8145 +vt 0.3921 0.7615 +vt 0.3656 0.7880 +vt 0.4391 0.8007 +vt 0.4453 0.7880 +vt 0.4291 0.7766 +vt 0.4187 0.7615 +vt 0.4365 0.7877 +vt 0.4049 0.7667 +vt 0.4180 0.7693 +vt 0.3919 0.7693 +vt 0.4187 0.8410 +vt 0.3921 0.8410 +vt 0.4049 0.8348 +vt 0.3656 0.8145 +vt 0.3808 0.8248 +vt 0.3919 0.8322 +vt 0.3708 0.8007 +vt 0.3734 0.8138 +vt 0.0512 0.0057 +vt 0.6116 0.7668 +vt 0.5872 0.7615 +vt 0.5628 0.7669 +vt 0.2590 0.6714 +vt 0.2346 0.6666 +vt 0.2102 0.6715 +vt 0.2818 0.6668 +vt 0.2977 0.8315 +vt 0.7173 0.2828 +vt 0.7187 0.6192 +vt 0.2704 0.8782 +vt 0.2131 0.9411 +vt 0.9931 0.7960 +vt 0.9148 0.8128 +vt 0.8810 0.8127 +vt 0.9768 0.0208 +vt 0.9905 0.4035 +vt 0.9741 0.4149 +vt 0.9152 0.4035 +vt 0.0763 0.9533 +vt 0.4453 0.9574 +vt 0.1122 0.8952 +vt 0.6712 0.8815 +vt 0.0996 0.9079 +vt 0.4465 0.8992 +vt 0.3984 0.8992 +vt 0.1768 0.6666 +vt 0.9035 0.8241 +vt 0.9846 0.8090 +vt 0.1107 0.6666 +vt 0.0734 0.6666 +vt 0.9614 0.9765 +vt 0.9265 0.9765 +vt 0.5404 0.7000 +vt 0.4622 0.7808 +vt 0.5700 0.6729 +vt 0.6356 0.7166 +vt 0.3951 0.6666 +vt 0.3679 0.7320 +vt 0.4389 0.7320 +vt 0.0399 0.8812 +vt 0.1878 0.9165 +vt 0.6590 0.8817 +vt 0.0058 0.9277 +vt 0.8061 0.9147 +vt 0.7048 0.9273 +vt 0.4697 0.8571 +vt 0.3753 0.9096 +vt 0.5269 0.8571 +vt 0.8156 0.8433 +vt 0.8156 0.9060 +vt 0.7029 0.6959 +vt 0.6462 0.6647 +vt 0.3497 0.8402 +vt 0.5648 0.8592 +vt 0.7982 0.5658 +vt 0.7982 0.5346 +vt 0.7033 0.8710 +vt 0.6469 0.7846 +vt 0.6470 0.7369 +s off +f 1/1 382/2 2/3 +f 10/4 9/5 382/2 +f 6/6 5/7 382/2 +f 6/6 382/2 7/8 +f 4/9 2/3 382/2 +f 4/9 382/2 5/7 +f 8/10 382/2 9/5 +f 8/10 7/8 382/2 +f 11/11 13/12 383/13 +f 20/14 383/13 19/15 +f 16/16 383/13 15/17 +f 16/16 17/18 383/13 +f 14/19 383/13 13/12 +f 14/19 15/17 383/13 +f 18/20 19/15 383/13 +f 18/20 383/13 17/18 +f 383/21 386/22 387/23 +f 383/21 391/24 382/25 +f 1/26 386/22 382/25 +f 10/27 391/24 388/28 +f 20/29 390/30 383/21 +f 11/31 387/23 384/32 +f 391/24 389/33 388/28 +f 384/32 386/22 385/34 +f 383/21 382/25 386/22 +f 383/21 390/30 391/24 +f 1/26 385/34 386/22 +f 10/27 382/25 391/24 +f 20/29 389/33 390/30 +f 11/31 383/21 387/23 +f 391/24 390/30 389/33 +f 384/32 387/23 386/22 +f 1/35 2/36 3/37 +f 2/36 4/38 3/37 +f 4/38 5/39 3/37 +f 5/39 6/40 3/37 +f 6/40 7/41 3/37 +f 7/41 8/42 3/37 +f 8/42 9/43 3/37 +f 9/43 10/44 3/37 +f 11/45 12/46 13/47 +f 13/47 12/46 14/48 +f 14/48 12/46 15/49 +f 15/49 12/46 16/50 +f 16/50 12/46 17/51 +f 17/51 12/46 18/52 +f 18/52 12/46 19/53 +f 19/53 12/46 20/54 +f 21/55 22/56 23/57 +f 22/56 25/58 23/57 +f 24/59 27/60 25/58 +f 27/60 28/61 29/62 +f 28/61 31/63 29/62 +f 30/64 33/65 31/66 +f 33/65 34/67 35/68 +f 34/67 37/69 35/68 +f 37/69 38/70 39/71 +f 38/70 41/72 39/71 +f 41/72 42/73 43/74 +f 43/75 44/76 45/77 +f 44/76 47/78 45/77 +f 47/78 48/79 49/80 +f 49/80 50/81 51/82 +f 51/82 50/81 52/83 +f 50/81 53/84 52/83 +f 48/79 53/84 50/81 +f 55/85 48/79 46/86 +f 56/87 46/86 44/76 +f 42/88 56/87 44/76 +f 40/89 57/90 42/73 +f 59/91 40/89 38/70 +f 36/92 59/91 38/70 +f 61/93 36/92 34/67 +f 32/94 61/93 34/67 +f 63/95 32/94 30/64 +f 64/96 30/97 28/61 +f 26/98 64/96 28/61 +f 24/59 65/99 26/98 +f 67/100 24/59 22/56 +f 21/55 67/100 22/56 +f 21/55 68/101 67/100 +f 67/100 69/102 66/103 +f 69/102 65/99 66/103 +f 65/99 71/104 64/96 +f 64/96 72/105 63/106 +f 72/107 62/108 63/109 +f 73/110 61/111 62/108 +f 61/111 75/112 60/113 +f 75/112 59/114 60/113 +f 59/114 77/115 58/116 +f 77/115 57/117 58/116 +f 78/118 56/87 57/119 +f 79/120 55/85 56/87 +f 55/85 81/121 54/122 +f 81/121 53/84 54/122 +f 53/84 82/123 52/83 +f 82/123 83/124 52/83 +f 84/125 82/123 81/121 +f 85/126 81/121 80/127 +f 79/120 85/126 80/127 +f 87/128 79/120 78/118 +f 88/129 78/130 77/115 +f 76/131 88/129 77/115 +f 90/132 76/131 75/112 +f 74/133 90/132 75/112 +f 92/134 74/133 73/110 +f 93/135 73/110 72/107 +f 71/104 93/136 72/105 +f 95/137 71/104 70/138 +f 69/102 95/137 70/138 +f 68/101 96/139 69/102 +f 21/55 97/140 68/101 +f 21/55 98/141 97/140 +f 98/141 96/139 97/140 +f 99/142 95/137 96/139 +f 100/143 94/144 95/137 +f 101/145 93/136 94/144 +f 102/146 92/134 93/135 +f 92/134 104/147 91/148 +f 104/147 90/132 91/148 +f 90/132 106/149 89/150 +f 106/149 88/129 89/150 +f 88/129 108/151 87/152 +f 87/128 109/153 86/154 +f 109/153 85/126 86/154 +f 85/126 111/155 84/125 +f 84/125 112/156 83/124 +f 83/124 112/156 52/83 +f 112/156 113/157 52/83 +f 111/155 113/157 112/156 +f 115/158 111/155 110/159 +f 109/153 115/158 110/159 +f 108/160 116/161 109/153 +f 107/162 117/163 108/151 +f 119/164 107/162 106/149 +f 105/165 119/164 106/149 +f 121/166 105/165 104/147 +f 103/167 121/166 104/147 +f 123/168 103/167 102/146 +f 124/169 102/170 101/145 +f 125/171 101/145 100/143 +f 99/142 125/171 100/143 +f 127/172 99/142 98/141 +f 21/55 127/172 98/141 +f 21/55 128/173 127/172 +f 127/172 129/174 126/175 +f 126/175 130/176 125/171 +f 130/176 124/169 125/171 +f 124/169 132/177 123/178 +f 132/179 122/180 123/181 +f 122/180 134/182 121/183 +f 121/183 135/184 120/185 +f 135/184 119/186 120/185 +f 136/187 118/188 119/186 +f 118/188 138/189 117/190 +f 138/191 116/161 117/192 +f 116/161 140/193 115/158 +f 115/158 141/194 114/195 +f 141/194 113/157 114/195 +f 113/157 142/196 52/83 +f 142/196 143/197 52/83 +f 144/198 142/196 141/194 +f 145/199 141/194 140/193 +f 139/200 145/199 140/193 +f 147/201 139/200 138/191 +f 137/202 147/203 138/189 +f 149/204 137/202 136/187 +f 150/205 136/187 135/184 +f 134/182 150/205 135/184 +f 133/206 151/207 134/182 +f 153/208 133/206 132/179 +f 131/209 153/210 132/177 +f 155/211 131/209 130/176 +f 156/212 130/176 129/174 +f 128/173 156/212 129/174 +f 21/55 157/213 128/173 +f 158/214 159/215 43/75 +f 158/214 51/82 52/83 +f 158/214 49/80 51/82 +f 158/214 47/78 49/80 +f 158/214 45/77 47/78 +f 158/214 43/75 45/77 +f 160/216 31/63 161/217 +f 160/216 21/55 23/57 +f 160/216 29/62 31/63 +f 160/216 27/60 29/62 +f 160/216 25/58 27/60 +f 160/216 23/57 25/58 +f 159/218 41/219 43/220 +f 159/218 39/221 41/219 +f 159/222 37/69 39/71 +f 161/223 35/68 37/69 +f 161/224 33/225 35/226 +f 161/224 31/227 33/225 +f 162/228 1/35 3/37 +f 158/214 162/228 3/37 +f 163/229 1/35 162/228 +f 164/230 12/46 11/45 +f 160/216 12/46 164/230 +f 164/230 11/45 165/231 +f 163/229 146/232 147/201 +f 163/229 162/228 146/232 +f 163/233 147/203 148/234 +f 163/233 148/234 149/204 +f 163/233 149/204 150/205 +f 52/83 143/197 162/228 +f 143/197 144/198 162/228 +f 144/198 145/199 162/228 +f 145/199 146/232 162/228 +f 158/214 52/83 162/228 +f 160/216 164/230 21/55 +f 21/55 164/230 157/213 +f 154/235 155/211 164/230 +f 155/211 156/212 164/230 +f 156/212 157/213 164/230 +f 165/236 150/205 151/207 +f 165/236 151/207 152/237 +f 165/236 152/237 153/208 +f 165/231 153/210 154/235 +f 165/231 154/235 164/230 +f 163/233 150/205 165/236 +f 37/238 166/239 167/240 +f 161/241 37/238 167/240 +f 37/238 168/242 166/239 +f 170/243 166/244 169/245 +f 171/246 170/243 169/245 +f 173/247 172/248 171/246 +f 176/249 178/250 175/251 +f 178/250 180/252 179/253 +f 179/253 181/254 182/255 +f 184/256 181/254 183/257 +f 185/258 173/259 171/260 +f 187/261 186/262 185/258 +f 187/261 185/258 182/263 +f 174/264 189/265 172/266 +f 183/267 189/265 190/268 +f 190/268 189/265 188/269 +f 158/214 169/270 166/271 +f 158/214 166/271 159/215 +f 160/216 161/217 167/272 +f 160/216 167/272 170/273 +f 191/274 3/37 10/44 +f 175/275 191/274 10/44 +f 191/274 158/214 3/37 +f 192/276 20/54 12/46 +f 176/277 20/54 192/276 +f 192/276 12/46 160/216 +f 193/278 169/270 158/214 +f 158/214 191/274 193/278 +f 194/279 171/260 169/270 +f 178/280 191/274 175/275 +f 194/279 178/280 179/281 +f 182/263 194/279 179/281 +f 192/276 177/282 176/277 +f 177/282 196/283 180/284 +f 196/283 181/285 180/284 +f 170/273 195/286 160/216 +f 160/216 195/286 192/276 +f 172/266 196/283 170/273 +f 163/233 11/287 1/288 +f 10/289 176/249 175/251 +f 198/290 200/291 197/292 +f 201/293 203/294 204/295 +f 205/296 204/295 206/297 +f 207/298 206/297 208/299 +f 207/298 210/300 209/301 +f 209/301 212/302 211/303 +f 211/303 214/304 213/305 +f 215/306 217/307 218/308 +f 219/309 218/308 220/310 +f 221/311 220/310 222/312 +f 221/311 224/313 223/314 +f 223/314 199/315 198/290 +f 203/316 226/317 204/318 +f 204/319 227/320 206/321 +f 206/321 228/322 208/323 +f 228/322 210/324 208/323 +f 229/325 212/326 210/324 +f 230/327 214/328 212/329 +f 232/330 200/331 199/332 +f 199/333 234/334 232/335 +f 217/336 236/337 218/338 +f 218/339 237/340 220/341 +f 220/341 238/342 222/343 +f 238/342 224/344 222/343 +f 240/345 242/346 239/347 +f 244/348 246/349 243/350 +f 243/351 248/352 247/353 +f 247/353 250/354 249/355 +f 249/355 252/356 251/357 +f 251/357 254/358 253/359 +f 253/360 256/361 255/362 +f 258/363 260/364 257/365 +f 257/366 262/367 261/368 +f 261/368 264/369 263/370 +f 263/370 266/371 265/372 +f 266/371 240/373 265/372 +f 268/374 270/375 267/376 +f 272/377 268/374 271/378 +f 274/379 271/378 273/380 +f 276/381 273/380 275/382 +f 277/383 276/384 275/385 +f 280/386 282/387 279/388 +f 284/389 279/390 283/391 +f 285/392 284/389 283/391 +f 287/393 286/394 285/392 +f 290/395 287/393 289/396 +f 291/397 290/398 289/399 +f 270/400 294/401 267/402 +f 242/403 295/404 296/405 +f 246/406 297/407 298/408 +f 248/409 298/408 299/410 +f 250/411 299/410 300/412 +f 250/411 301/413 252/414 +f 252/414 302/415 254/416 +f 254/416 303/417 256/418 +f 259/419 305/420 260/421 +f 260/421 306/422 262/423 +f 262/423 307/424 264/425 +f 266/426 307/424 308/427 +f 308/427 241/428 266/426 +f 267/429 310/430 268/431 +f 268/431 311/432 271/433 +f 311/432 273/434 271/433 +f 312/435 275/436 273/434 +f 277/437 313/438 314/439 +f 315/440 279/441 282/442 +f 316/443 283/444 279/441 +f 285/445 317/446 318/447 +f 285/445 319/448 287/449 +f 287/449 320/450 289/451 +f 289/451 321/452 291/453 +f 294/454 309/455 267/429 +f 270/456 323/457 324/458 +f 325/459 269/460 272/461 +f 274/462 325/459 272/461 +f 276/463 326/464 274/462 +f 278/465 327/466 276/463 +f 280/467 330/468 281/469 +f 284/470 329/471 280/467 +f 286/472 331/473 284/470 +f 286/472 333/474 332/475 +f 334/476 288/477 290/478 +f 290/478 335/479 334/476 +f 324/458 293/480 270/456 +f 338/481 340/482 337/483 +f 341/484 343/485 344/486 +f 345/487 342/488 341/484 +f 347/489 346/490 345/487 +f 350/491 347/489 349/492 +f 352/493 349/492 351/494 +f 354/495 351/494 353/496 +f 356/497 358/498 355/499 +f 360/500 355/499 359/501 +f 362/502 359/501 361/503 +f 363/504 362/502 361/503 +f 337/483 364/505 363/504 +f 366/506 353/496 365/507 +f 358/498 366/506 365/507 +f 368/508 338/481 367/509 +f 344/486 368/508 367/509 +f 370/510 292/511 369/512 +f 293/480 370/510 369/512 +f 372/513 278/465 371/514 +f 281/469 372/513 371/514 +f 291/453 374/515 373/516 +f 374/515 294/454 373/516 +f 242/403 376/517 375/518 +f 376/517 245/519 375/518 +f 256/418 378/520 377/521 +f 378/520 259/419 377/521 +f 277/437 380/522 379/523 +f 380/522 282/442 379/523 +f 197/524 337/525 198/526 +f 198/527 363/528 223/529 +f 216/530 355/531 358/532 +f 215/533 359/534 355/535 +f 219/536 361/537 359/534 +f 223/529 361/537 221/538 +f 202/539 341/540 344/541 +f 201/542 345/543 341/544 +f 205/545 347/546 345/543 +f 209/547 347/546 207/548 +f 211/549 349/550 209/547 +f 213/551 351/552 211/553 +f 214/554 281/555 353/556 +f 213/557 214/554 353/556 +f 217/558 358/559 278/560 +f 216/561 358/559 217/558 +f 200/562 293/563 338/564 +f 197/565 200/562 338/564 +f 202/566 344/567 203/568 +f 203/568 344/567 292/569 +f 244/570 225/571 245/572 +f 225/571 291/573 245/572 +f 239/574 242/575 233/576 +f 233/576 242/575 294/577 +f 255/578 256/579 231/580 +f 231/580 256/579 282/581 +f 258/582 235/583 259/584 +f 235/583 277/585 259/584 +f 231/580 281/555 214/554 +f 292/569 225/571 203/568 +f 278/560 235/583 217/558 +f 233/576 293/563 200/562 +f 344/586 369/587 292/588 +f 369/587 338/589 293/590 +f 358/591 371/592 278/593 +f 371/592 353/594 281/595 +f 256/596 379/597 282/598 +f 277/599 377/600 259/601 +f 375/602 294/603 242/604 +f 291/605 375/602 245/606 +f 364/607 324/608 323/609 +f 325/610 364/607 323/609 +f 340/611 336/612 324/613 +f 326/614 362/615 325/610 +f 327/616 360/617 326/614 +f 328/618 356/619 327/620 +f 372/621 357/622 328/618 +f 330/623 352/624 354/625 +f 354/625 372/621 330/623 +f 331/626 352/627 329/628 +f 332/629 350/630 331/626 +f 333/631 348/632 332/629 +f 334/633 346/634 333/631 +f 335/635 342/636 334/637 +f 335/635 368/638 343/639 +f 339/640 370/641 336/612 +f 309/642 296/643 295/644 +f 308/645 309/646 295/647 +f 322/648 376/649 296/643 +f 321/650 298/651 297/652 +f 376/649 321/650 297/652 +f 320/653 299/654 298/655 +f 319/656 300/657 299/654 +f 318/658 301/659 300/657 +f 317/660 302/661 301/659 +f 316/662 303/663 302/664 +f 303/663 380/665 378/666 +f 314/667 305/668 304/669 +f 378/666 314/667 304/669 +f 313/670 306/671 305/672 +f 312/673 307/674 306/671 +f 311/675 308/645 307/674 +f 232/676 234/677 381/678 +f 234/677 238/679 381/678 +f 238/679 237/680 381/678 +f 237/680 236/681 381/678 +f 236/681 235/682 381/678 +f 231/683 230/684 381/678 +f 230/684 229/685 381/678 +f 229/685 228/686 381/678 +f 228/686 227/687 381/678 +f 227/687 226/688 381/678 +f 226/688 225/689 381/678 +f 233/690 232/676 381/678 +f 231/683 381/678 235/682 +f 233/690 381/678 225/689 +f 255/691 235/682 258/692 +f 244/693 233/690 225/689 +f 184/694 255/691 258/692 +f 173/695 244/693 174/696 +f 184/694 257/697 187/698 +f 184/694 258/692 257/697 +f 187/698 263/699 186/700 +f 187/698 257/697 261/701 +f 187/698 261/701 263/699 +f 186/700 240/702 173/695 +f 186/700 265/703 240/702 +f 186/700 263/699 265/703 +f 173/695 240/702 239/704 +f 183/705 190/706 253/707 +f 183/705 253/707 255/691 +f 190/706 188/708 249/709 +f 190/706 249/709 251/710 +f 190/706 251/710 253/707 +f 188/708 174/696 243/711 +f 188/708 243/711 247/712 +f 188/708 247/712 249/709 +f 174/696 244/693 243/711 +f 11/31 385/34 1/26 +f 10/27 389/33 20/29 +f 184/713 187/261 182/263 +f 22/56 24/59 25/58 +f 24/59 26/98 27/60 +f 27/60 26/98 28/61 +f 28/61 30/97 31/63 +f 30/64 32/94 33/65 +f 33/65 32/94 34/67 +f 34/67 36/92 37/69 +f 37/69 36/92 38/70 +f 38/70 40/89 41/72 +f 41/72 40/89 42/73 +f 43/75 42/88 44/76 +f 44/76 46/86 47/78 +f 47/78 46/86 48/79 +f 49/80 48/79 50/81 +f 48/79 54/122 53/84 +f 55/85 54/122 48/79 +f 56/87 55/85 46/86 +f 42/88 57/119 56/87 +f 40/89 58/714 57/90 +f 59/91 58/714 40/89 +f 36/92 60/715 59/91 +f 61/93 60/715 36/92 +f 32/94 62/716 61/93 +f 63/95 62/716 32/94 +f 64/96 63/106 30/97 +f 26/98 65/99 64/96 +f 24/59 66/103 65/99 +f 67/100 66/103 24/59 +f 67/100 68/101 69/102 +f 69/102 70/138 65/99 +f 65/99 70/138 71/104 +f 64/96 71/104 72/105 +f 72/107 73/110 62/108 +f 73/110 74/133 61/111 +f 61/111 74/133 75/112 +f 75/112 76/131 59/114 +f 59/114 76/131 77/115 +f 77/115 78/130 57/117 +f 78/118 79/120 56/87 +f 79/120 80/127 55/85 +f 55/85 80/127 81/121 +f 81/121 82/123 53/84 +f 84/125 83/124 82/123 +f 85/126 84/125 81/121 +f 79/120 86/154 85/126 +f 87/128 86/154 79/120 +f 88/129 87/152 78/130 +f 76/131 89/150 88/129 +f 90/132 89/150 76/131 +f 74/133 91/148 90/132 +f 92/134 91/148 74/133 +f 93/135 92/134 73/110 +f 71/104 94/144 93/136 +f 95/137 94/144 71/104 +f 69/102 96/139 95/137 +f 68/101 97/140 96/139 +f 98/141 99/142 96/139 +f 99/142 100/143 95/137 +f 100/143 101/145 94/144 +f 101/145 102/170 93/136 +f 102/146 103/167 92/134 +f 92/134 103/167 104/147 +f 104/147 105/165 90/132 +f 90/132 105/165 106/149 +f 106/149 107/162 88/129 +f 88/129 107/162 108/151 +f 87/128 108/160 109/153 +f 109/153 110/159 85/126 +f 85/126 110/159 111/155 +f 84/125 111/155 112/156 +f 111/155 114/195 113/157 +f 115/158 114/195 111/155 +f 109/153 116/161 115/158 +f 108/160 117/192 116/161 +f 107/162 118/717 117/163 +f 119/164 118/717 107/162 +f 105/165 120/718 119/164 +f 121/166 120/718 105/165 +f 103/167 122/719 121/166 +f 123/168 122/719 103/167 +f 124/169 123/178 102/170 +f 125/171 124/169 101/145 +f 99/142 126/175 125/171 +f 127/172 126/175 99/142 +f 127/172 128/173 129/174 +f 126/175 129/174 130/176 +f 130/176 131/209 124/169 +f 124/169 131/209 132/177 +f 132/179 133/206 122/180 +f 122/180 133/206 134/182 +f 121/183 134/182 135/184 +f 135/184 136/187 119/186 +f 136/187 137/202 118/188 +f 118/188 137/202 138/189 +f 138/191 139/200 116/161 +f 116/161 139/200 140/193 +f 115/158 140/193 141/194 +f 141/194 142/196 113/157 +f 144/198 143/197 142/196 +f 145/199 144/198 141/194 +f 139/200 146/232 145/199 +f 147/201 146/232 139/200 +f 137/202 148/234 147/203 +f 149/204 148/234 137/202 +f 150/205 149/204 136/187 +f 134/182 151/207 150/205 +f 133/206 152/237 151/207 +f 153/208 152/237 133/206 +f 131/209 154/235 153/210 +f 155/211 154/235 131/209 +f 156/212 155/211 130/176 +f 128/173 157/213 156/212 +f 170/243 167/720 166/244 +f 171/246 172/248 170/243 +f 173/247 174/721 172/248 +f 176/249 177/722 178/250 +f 178/250 177/722 180/252 +f 179/253 180/252 181/254 +f 184/256 182/255 181/254 +f 185/258 186/262 173/259 +f 174/264 188/269 189/265 +f 183/267 181/285 189/265 +f 193/278 194/279 169/270 +f 194/279 185/258 171/260 +f 178/280 193/278 191/274 +f 194/279 193/278 178/280 +f 182/263 185/258 194/279 +f 192/276 195/286 177/282 +f 177/282 195/286 196/283 +f 196/283 189/265 181/285 +f 170/273 196/283 195/286 +f 172/266 189/265 196/283 +f 163/233 165/236 11/287 +f 10/289 20/723 176/249 +f 198/290 199/315 200/291 +f 201/293 202/724 203/294 +f 205/296 201/293 204/295 +f 207/298 205/296 206/297 +f 207/298 208/299 210/300 +f 209/301 210/300 212/302 +f 211/303 212/302 214/304 +f 215/306 216/725 217/307 +f 219/309 215/306 218/308 +f 221/311 219/309 220/310 +f 221/311 222/312 224/313 +f 223/314 224/313 199/315 +f 203/316 225/726 226/317 +f 204/319 226/727 227/320 +f 206/321 227/320 228/322 +f 228/322 229/325 210/324 +f 229/325 230/728 212/326 +f 230/327 231/729 214/328 +f 232/330 233/730 200/331 +f 199/333 224/344 234/334 +f 217/336 235/731 236/337 +f 218/339 236/732 237/340 +f 220/341 237/340 238/342 +f 238/342 234/334 224/344 +f 240/345 241/733 242/346 +f 244/348 245/734 246/349 +f 243/351 246/735 248/352 +f 247/353 248/352 250/354 +f 249/355 250/354 252/356 +f 251/357 252/356 254/358 +f 253/360 254/736 256/361 +f 258/363 259/737 260/364 +f 257/366 260/738 262/367 +f 261/368 262/367 264/369 +f 263/370 264/369 266/371 +f 266/371 241/739 240/373 +f 268/374 269/740 270/375 +f 272/377 269/740 268/374 +f 274/379 272/377 271/378 +f 276/381 274/379 273/380 +f 277/383 278/741 276/384 +f 280/386 281/742 282/387 +f 284/389 280/743 279/390 +f 285/392 286/394 284/389 +f 287/393 288/744 286/394 +f 290/395 288/744 287/393 +f 291/397 292/745 290/398 +f 270/400 293/746 294/401 +f 242/403 241/428 295/404 +f 246/406 245/519 297/407 +f 248/409 246/406 298/408 +f 250/411 248/409 299/410 +f 250/411 300/412 301/413 +f 252/414 301/413 302/415 +f 254/416 302/415 303/417 +f 259/419 304/747 305/420 +f 260/421 305/420 306/422 +f 262/423 306/422 307/424 +f 266/426 264/425 307/424 +f 308/427 295/404 241/428 +f 267/429 309/455 310/430 +f 268/431 310/430 311/432 +f 311/432 312/435 273/434 +f 312/435 313/438 275/436 +f 277/437 275/436 313/438 +f 315/440 316/443 279/441 +f 316/443 317/446 283/444 +f 285/445 283/444 317/446 +f 285/445 318/447 319/448 +f 287/449 319/448 320/450 +f 289/451 320/450 321/452 +f 294/454 322/748 309/455 +f 270/456 269/460 323/457 +f 325/459 323/457 269/460 +f 274/462 326/464 325/459 +f 276/463 327/466 326/464 +f 278/465 328/749 327/466 +f 280/467 329/471 330/468 +f 284/470 331/473 329/471 +f 286/472 332/475 331/473 +f 286/472 288/477 333/474 +f 334/476 333/474 288/477 +f 290/478 292/511 335/479 +f 324/458 336/750 293/480 +f 338/481 339/751 340/482 +f 341/484 342/488 343/485 +f 345/487 346/490 342/488 +f 347/489 348/752 346/490 +f 350/491 348/752 347/489 +f 352/493 350/491 349/492 +f 354/495 352/493 351/494 +f 356/497 357/753 358/498 +f 360/500 356/497 355/499 +f 362/502 360/500 359/501 +f 363/504 364/505 362/502 +f 337/483 340/482 364/505 +f 366/506 354/495 353/496 +f 358/498 357/753 366/506 +f 368/508 339/751 338/481 +f 344/486 343/485 368/508 +f 370/510 335/479 292/511 +f 293/480 336/750 370/510 +f 372/513 328/749 278/465 +f 281/469 330/468 372/513 +f 291/453 321/452 374/515 +f 374/515 322/748 294/454 +f 242/403 296/405 376/517 +f 376/517 297/407 245/519 +f 256/418 303/417 378/520 +f 378/520 304/747 259/419 +f 277/437 314/439 380/522 +f 380/522 315/440 282/442 +f 197/524 338/754 337/525 +f 198/527 337/755 363/528 +f 216/530 215/756 355/531 +f 215/533 219/536 359/534 +f 219/536 221/538 361/537 +f 223/529 363/528 361/537 +f 202/539 201/757 341/540 +f 201/542 205/545 345/543 +f 205/545 207/548 347/546 +f 209/547 349/550 347/546 +f 211/549 351/758 349/550 +f 213/551 353/759 351/552 +f 231/580 282/581 281/555 +f 292/569 291/573 225/571 +f 278/560 277/585 235/583 +f 233/576 294/577 293/563 +f 344/586 367/760 369/587 +f 369/587 367/760 338/589 +f 358/591 365/761 371/592 +f 371/592 365/761 353/594 +f 256/596 377/600 379/597 +f 277/599 379/597 377/600 +f 375/602 373/762 294/603 +f 291/605 373/762 375/602 +f 364/607 340/763 324/608 +f 325/610 362/615 364/607 +f 340/611 339/640 336/612 +f 326/614 360/617 362/615 +f 327/616 356/764 360/617 +f 328/618 357/622 356/619 +f 372/621 366/765 357/622 +f 330/623 329/766 352/624 +f 354/625 366/765 372/621 +f 331/626 350/630 352/627 +f 332/629 348/632 350/630 +f 333/631 346/634 348/632 +f 334/633 342/767 346/634 +f 335/635 343/639 342/636 +f 335/635 370/641 368/638 +f 339/640 368/638 370/641 +f 309/642 322/648 296/643 +f 308/645 310/768 309/646 +f 322/648 374/769 376/649 +f 321/650 320/770 298/651 +f 376/649 374/769 321/650 +f 320/653 319/656 299/654 +f 319/656 318/658 300/657 +f 318/658 317/660 301/659 +f 317/660 316/771 302/661 +f 316/662 315/772 303/663 +f 303/663 315/772 380/665 +f 314/667 313/773 305/668 +f 378/666 380/665 314/667 +f 313/670 312/673 306/671 +f 312/673 311/675 307/674 +f 311/675 310/768 308/645 +f 255/691 231/683 235/682 +f 244/693 239/704 233/690 +f 184/694 183/705 255/691 +f 173/695 239/704 244/693 +f 11/31 384/32 385/34 +f 10/27 388/28 389/33 diff --git a/assets/ships/marksman/marksman.texture.tga b/assets/ships/marksman/marksman.texture.tga new file mode 100755 index 0000000..ed3e8c9 Binary files /dev/null and b/assets/ships/marksman/marksman.texture.tga differ diff --git a/assets/ships/marksman/marksman.texture.xcf b/assets/ships/marksman/marksman.texture.xcf new file mode 100755 index 0000000..6906f63 Binary files /dev/null and b/assets/ships/marksman/marksman.texture.xcf differ diff --git a/hw.cabal b/hw.cabal new file mode 100644 index 0000000..988bec4 --- /dev/null +++ b/hw.cabal @@ -0,0 +1,36 @@ +-- Initial hw.cabal generated by cabal init. For further documentation, +-- see http://haskell.org/cabal/users-guide/ + +name: hw +version: 0.0.0.0 +-- synopsis: +-- description: +license: GPL-3 +license-file: LICENSE +author: nek0 +maintainer: nek0@chelnok.de +-- copyright: +category: Game +build-type: Simple +extra-source-files: ChangeLog.md +cabal-version: >=1.10 + +executable hw + main-is: Main.hs + other-modules: Util + -- other-extensions: + default-extensions: OverloadedStrings + build-depends: base >=4.9 && <4.10 + , affection + , sdl2 + , linear + , bytestring + , OpenGL + , OpenGLRaw + , GLUtil + , random + , vector + , wavefront + hs-source-dirs: src + default-language: Haskell2010 + ghc-options: -Wall diff --git a/notes/gamemodes.braindump b/notes/gamemodes.braindump new file mode 100644 index 0000000..8d7d8b0 --- /dev/null +++ b/notes/gamemodes.braindump @@ -0,0 +1,7 @@ +# singleplayer + +mode for research + +# multiplayer + +mode for rexource gathering diff --git a/notes/shipbuilding.braindump b/notes/shipbuilding.braindump new file mode 100644 index 0000000..7972d33 --- /dev/null +++ b/notes/shipbuilding.braindump @@ -0,0 +1,8 @@ +# Shipbuilding + +Can be made before multiplayer sessions (recommended) but also +in-game (but time does not stop). + +Ships are combined from predefined components (core, weaponry, hangars, ...) + +ships are shared like in spore diff --git a/notes/techtree.braindump b/notes/techtree.braindump new file mode 100644 index 0000000..3359564 --- /dev/null +++ b/notes/techtree.braindump @@ -0,0 +1,8 @@ +# Techtree + +Not a tree per se + +research only in single player mode + +Gather resources in multiplayer mode to spend them on for (very expensive) +research in singleplayer mode diff --git a/src/Main.hs b/src/Main.hs new file mode 100644 index 0000000..bc81ee2 --- /dev/null +++ b/src/Main.hs @@ -0,0 +1,213 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Main where + +import Affection + +import SDL (($=)) +import qualified SDL + +import qualified Graphics.Rendering.OpenGL as GL +import qualified Graphics.GLUtil as GLU +import qualified Graphics.GLUtil.Camera3D as GLU (projectionMatrix) + +import Control.Monad (when) + +import qualified Data.ByteString as BS + +import Codec.Wavefront + +import Linear as L + +import System.Random (randomRIO) + +import Foreign + +import Util + +import Debug.Trace + +main :: IO () +main = + withAffection AffectionConfig + { initComponents = All + , windowTitle = "hw" + , windowConfig = SDL.defaultWindow + { windowInitialSize = SDL.V2 800 600 + , windowOpenGL = Just SDL.defaultOpenGL + { SDL.glProfile = SDL.Core SDL.Normal 3 2 + } + } + , initScreenMode = SDL.Windowed + , preLoop = return () + , eventLoop = handle + , updateLoop = update + , drawLoop = draw + , loadState = load + , cleanUp = const (return ()) + , canvasSize = Nothing + } + +data StateData = StateData + { ship :: (GL.VertexArrayObject, Int) + , proj :: M44 Float + , view :: M44 Float + , model :: V3 Float + , program :: GLU.ShaderProgram + , mrot :: Quaternion Float + } + +load :: IO StateData +load = do + GL.depthFunc $= Just GL.Less + eobj <- fromFile "assets/ships/jaeger/jaeger.obj" + let obj = case eobj of + Right o -> o + Left err -> error err + -- (ptr, len) <- objLocsToPtr obj + -- (tptr, tlen) <- objUVsToPtr obj + let lobj = loadObj obj + + shipBO <- GL.genObjectName + GL.bindVertexArrayObject $= Just shipBO + + verts <- GL.genObjectName + GL.bindBuffer GL.ArrayBuffer $= Just verts + withArray (loTriangles lobj) $ \ptr -> + GL.bufferData GL.ArrayBuffer $= + ( fromIntegral $ length (loTriangles lobj) * 3 * sizeOf (0 :: Double) + , ptr + , GL.StaticDraw + ) + GL.vertexAttribPointer (GL.AttribLocation 0) $= + ( GL.ToFloat + , GL.VertexArrayDescriptor 4 GL.Float 0 (plusPtr nullPtr 0) + ) + GL.vertexAttribArray (GL.AttribLocation 0) $= GL.Enabled + + texture <- GL.genObjectName + GL.bindBuffer GL.ArrayBuffer $= Just texture + maybe (return ()) (\a -> withArray a $ \ptr -> + GL.bufferData GL.ArrayBuffer $= + ( fromIntegral $ length a * 2 * sizeOf (0 :: Double) + , ptr + , GL.StaticDraw + )) (loTexTri lobj) + GL.vertexAttribPointer (GL.AttribLocation 1) $= + ( GL.ToFloat + , GL.VertexArrayDescriptor 2 GL.Float 0 (plusPtr nullPtr 0) + ) + GL.vertexAttribArray (GL.AttribLocation 1) $= GL.Enabled + + GL.texture GL.Texture2D $= GL.Enabled + GL.activeTexture $= GL.TextureUnit 0 + t <- loadTex "assets/ships/jaeger/jaeger.texture.tga" + GL.textureBinding GL.Texture2D $= Just t + + let vertexShader = foldl BS.append BS.empty + [ "attribute vec3 coord3d;" + , "attribute vec2 texcoord;" + , "uniform mat4 mvp;" + , "varying vec2 f_texcoord;" + , "void main(void) {" + , " gl_Position = mvp * vec4(coord3d, 1.0);" + , " f_texcoord = texcoord;" + , "}" + ] + fragmentShader = foldl BS.append BS.empty + [ "varying vec2 f_texcoord;" + , "uniform sampler2D texture;" + , "void main(void) {" + -- , " gl_FragColor = vec4(color, 1.0);" + -- , " gl_FragColor = vec4(1.0);" + , " vec2 flip = vec2(f_texcoord.x, 1.0 - f_texcoord.y);" + , " gl_FragColor = texture2D(texture, flip);" + , "}" + ] + p <- GLU.simpleShaderProgramBS vertexShader fragmentShader + + return StateData + { ship = (shipBO, length $ loTriangles lobj) + , proj = GLU.projectionMatrix (pi/2) (800 / 600) 1 (-1) + , view = lookAt (V3 0 2 0) (V3 0 0 (-4)) (V3 0 1 0) + , model = V3 0 0 (-5) + , program = p + , mrot = Quaternion 1 (V3 0 0 0) + } + +loadTex :: FilePath -> IO GL.TextureObject +loadTex f = do + t <- either error id <$> GLU.readTexture f + GL.textureFilter GL.Texture2D $= ((GL.Linear', Nothing), GL.Linear') + GLU.texture2DWrap $= (GL.Repeated, GL.ClampToEdge) + return t + +update :: Double -> Affection StateData () +update _ = return () + +draw :: Affection StateData () +draw = do + GL.viewport $= (GL.Position 0 0, GL.Size 800 600) + (StateData (shipbo, slen) p v m s rot) <- getAffection + let pvm = p !*! v !*! mkTransformation rot m + liftIO $ GLU.setUniform s "mvp" pvm + GL.currentProgram $= (Just . GLU.program $ s) + GL.bindVertexArrayObject $= Just shipbo + liftIO $ GL.drawArrays GL.Triangles 0 (fromIntegral slen) + +handle :: SDL.EventPayload -> Affection StateData () +handle (SDL.WindowClosedEvent _) = quit + +handle (SDL.KeyboardEvent dat) = do + let key = SDL.keysymKeycode (SDL.keyboardEventKeysym dat) + when (SDL.keyboardEventKeyMotion dat == SDL.Pressed) $ + handleKey key + +handle _ = return () + +handleKey :: SDL.Keycode -> Affection StateData () +handleKey code + | code == SDL.KeycodeR = + GL.clearColor $= GL.Color4 1 0 0 1 + | code == SDL.KeycodeG = + GL.clearColor $= GL.Color4 0 1 0 1 + | code == SDL.KeycodeB = + GL.clearColor $= GL.Color4 0 0 1 1 + | code == SDL.KeycodeP = do + r <- liftIO $ randomRIO (0, 1) + g <- liftIO $ randomRIO (0, 1) + b <- liftIO $ randomRIO (0, 1) + a <- liftIO $ randomRIO (0, 1) + GL.clearColor $= GL.Color4 r g b a + | code == SDL.KeycodeEscape = + quit + | code == SDL.KeycodeF = do + dt <- deltaTime <$> get + liftIO $ putStrLn $ show (1 / dt) ++ " FPS" + | code == SDL.KeycodeT = + toggleScreen + | code `elem` + [ SDL.KeycodeW + , SDL.KeycodeS + , SDL.KeycodeA + , SDL.KeycodeD + , SDL.KeycodeQ + , SDL.KeycodeE + ] + = do + sd <- getAffection + let rot = mrot sd + dphi = pi / 2 / 45 + nquat = case code of + SDL.KeycodeW -> rot * axisAngle (V3 1 0 0) (-dphi) + SDL.KeycodeS -> rot * axisAngle (V3 1 0 0) dphi + SDL.KeycodeA -> rot * axisAngle (V3 0 1 0) (-dphi) + SDL.KeycodeD -> rot * axisAngle (V3 0 1 0) dphi + SDL.KeycodeE -> rot * axisAngle (V3 0 0 1) (-dphi) + SDL.KeycodeQ -> rot * axisAngle (V3 0 0 1) dphi + _ -> rot + putAffection sd + { mrot = nquat + } + | otherwise = + return () diff --git a/src/Util.hs b/src/Util.hs new file mode 100644 index 0000000..91bfac5 --- /dev/null +++ b/src/Util.hs @@ -0,0 +1,67 @@ +module Util where + +import Codec.Wavefront + +import Control.Monad (sequence) + +import qualified Data.Vector as V + +data LoadedObject = LoadedObject + { loTriangles :: [Float] + , loLines :: [Float] + , loPoints :: [Float] + , loTexTri :: Maybe [Float] + } + +loadObj :: WavefrontOBJ -> LoadedObject +loadObj obj = + LoadedObject ts ls ps tritex + where + inter = objLocations obj + interTex = objTexCoords obj + faces = map elValue (V.toList $ objFaces obj) + lns = map elValue (V.toList $ objLines obj) + points = map elValue (V.toList $ objPoints obj) + deface (Face a b c []) = + map (\i -> inter V.! (faceLocIndex i -1)) [a, b, c] + deface _ = + error "loadObj: obj with quads encountered" + deline (Line a b) = + map (\i -> inter V.! (lineLocIndex i -1)) [a, b] + depoint (Point i) = inter V.! (i - 1) + tsLocs = concatMap deface faces + lsLocs = concatMap deline lns + psLocs = map depoint points + deLoc (Location x y z w) = [x, y, z, w] + deTex (TexCoord r s _) = [r, s] + ts = concatMap deLoc tsLocs + ls = concatMap deLoc lsLocs + ps = concatMap deLoc psLocs + defaceTex :: Face -> Maybe [TexCoord] + defaceTex (Face a b c []) = + mapM + (fmap (\x -> interTex V.! (x - 1)) . faceTexCoordIndex) + [a, b, c] + defaceTex _ = + error "loadObj: obj with quads encountered" + tritex :: Maybe [Float] + tritex = concatMap deTex <$> mftxs + mftxs :: Maybe [TexCoord] + mftxs = fmap concat (mapM defaceTex faces) + +-- objLocsToPtr :: WavefrontOBJ -> IO (Ptr Float, Int) +-- objLocsToPtr obj = do +-- let ivs = objLocations obj +-- faces = map elValue $ V.toList $ objFaces obj +-- vs = concatMap +-- (\(Face a b c []) -> +-- map (\i -> ivs V.! ((faceLocIndex i) - 1)) [a, b, c]) +-- faces +-- ptr <- newArray $ concatMap (\(Location x y z w) -> [x, y, z, w]) vs +-- return (ptr, length vs) +-- +-- objUVsToPtr :: WavefrontOBJ -> IO (Ptr Float, Int) +-- objUVsToPtr obj = do +-- let uvs= V.toList $ objTexCoords obj +-- ptr <- newArray $ concatMap (\(TexCoord r s t) -> [r, s, t]) uvs +-- return (ptr, length uvs)