From 18365e97d05d6a15a165295aded2e903a3842243 Mon Sep 17 00:00:00 2001 From: Tudor Date: Sun, 30 Aug 2015 19:43:54 -0400 Subject: [PATCH] Initial code commit --- .gitignore | 57 ++++ LICENSE | 662 ++++++++++++++++++++++++++++++++++++ MANIFEST.in | 3 + README.rst | 89 +++++ cube2sphere/__init__.py | 1 + cube2sphere/blender_init.py | 18 + cube2sphere/cube2sphere.py | 75 ++++ cube2sphere/projector.blend | Bin 0 -> 684724 bytes cube2sphere/version.py | 2 + ez_setup.py | 278 +++++++++++++++ setup.py | 44 +++ 11 files changed, 1229 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 MANIFEST.in create mode 100644 README.rst create mode 100644 cube2sphere/__init__.py create mode 100644 cube2sphere/blender_init.py create mode 100644 cube2sphere/cube2sphere.py create mode 100644 cube2sphere/projector.blend create mode 100644 cube2sphere/version.py create mode 100644 ez_setup.py create mode 100644 setup.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba74660 --- /dev/null +++ b/.gitignore @@ -0,0 +1,57 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9591157 --- /dev/null +++ b/LICENSE @@ -0,0 +1,662 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 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 Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are 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. + + 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. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + 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 Affero 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. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + 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 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 work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero 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 Affero 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 Affero 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 Affero 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 Affero 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + 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 AGPL, see +. + diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..caaa723 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,3 @@ +include LICENSE +include *.rst +include *.py \ No newline at end of file diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..965229e --- /dev/null +++ b/README.rst @@ -0,0 +1,89 @@ +cube2sphere +=========== + +``cube2sphere`` is a Python script to map an equirectangular +(cylindrical projection; skysphere) map into 6 cube (cubemap; skybox) +faces. + +Usage +===== + +:: + + $ cube2sphere -h + usage: cube2sphere [-h] [-v] [-r ] [-R ] + [-o ] [-f ] [-b ] [-t ] [-V] + + + Maps 6 cube (cubemap, skybox) faces into an equirectangular (cylindrical + projection, skysphere) map. + + positional arguments: + source front cube face filename + source back cube face filename + source right cube face filename + source left cube face filename + source top cube face filename + source bottom cube face filename + + optional arguments: + -h, --help show this help message and exit + -v, --version show program's version number and exit + -r , --resolution + resolution for rendered map (defaults to 1024x512) + -R , --rotation + rotation in degrees to apply before rendering map (z + is up) + -o , --output + filename for rendered map (defaults to "out") + -f , --format + format to use when saving map, i.e. "PNG" or "TGA" + -b , --blender-path + filename of the Blender executable (defaults to + "blender") + -t , --threads + number of threads to use when rendering (1-64) + -V, --verbose enable verbose logging + +Supported output formats depend on the Blender installation, but will +generally include TGA, IRIS, JPEG, MOVIE, IRIZ, RAWTGA, AVIRAW, AVIJPEG, PNG, +BMP, and FRAMESERVER. + +``cube2sphere`` can be run in a headless environment (e.g., a +server). + +Examples +======== + +If we wanted to stitch 6 cube faces named ``${face}.jpg`` into a 2048x1024 TGA equirectangular map, we could use the following command: + +:: + + $ cube2sphere front.jpg back.jpg right.jpg left.jpg top.jpg bottom.jpg -r 2048 1024 -fTGA -ostitched + +This would generate ``stitched.tga`` in the working directory. + +Installation +============ + +``cube2sphere`` can be easily installed with ``pip``. It depends on +Blender being installed on the system. + +Linux +----- + +:: + + $ apt-get install blender + $ pip install cube2sphere + +Windows +------- + +Install `Blender`_, and add ``blender.exe`` to ``PATH``. Finally, + +:: + + pip install cube2sphere + +.. _Blender: https://www.blender.org/ \ No newline at end of file diff --git a/cube2sphere/__init__.py b/cube2sphere/__init__.py new file mode 100644 index 0000000..9e96a71 --- /dev/null +++ b/cube2sphere/__init__.py @@ -0,0 +1 @@ +__author__ = 'Xyene' \ No newline at end of file diff --git a/cube2sphere/blender_init.py b/cube2sphere/blender_init.py new file mode 100644 index 0000000..6999cc9 --- /dev/null +++ b/cube2sphere/blender_init.py @@ -0,0 +1,18 @@ +__author__ = 'Xyene' + +import bpy +import sys +import math + + +bpy.context.scene.cycles.resolution_x = int(sys.argv[-5]) +bpy.context.scene.cycles.resolution_y = int(sys.argv[-4]) + +for i, name in enumerate(['bottom', 'top', 'left', 'right', 'back', 'front']): + bpy.data.images[name].filepath = "%s" % sys.argv[-6 - i] + +camera = bpy.data.objects["Camera"] +camera.rotation_mode = 'XYZ' +camera.rotation_euler = (math.pi / 2 + float(sys.argv[-3]), float(sys.argv[-2]), float(sys.argv[-1])) + +bpy.ops.render.render(animation=True) \ No newline at end of file diff --git a/cube2sphere/cube2sphere.py b/cube2sphere/cube2sphere.py new file mode 100644 index 0000000..987a1dc --- /dev/null +++ b/cube2sphere/cube2sphere.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python + +__author__ = 'Xyene' + +import argparse +import os +import sys +import subprocess +import math +from version import __version__ + + +def main(): + _parser = argparse.ArgumentParser(prog='cube2sphere', description=''' + Maps 6 cube (cubemap, skybox) faces into an equirectangular (cylindrical projection, skysphere) map. + ''') + for f in ['front', 'back', 'right', 'left', 'top', 'bottom']: + _parser.add_argument(f, type=str, metavar='<%s>' % f, help='source %s cube face filename' % f) + _parser.add_argument('-v', '--version', action='version', version=__version__) + _parser.add_argument('-r', '--resolution', type=int, nargs=2, default=[1024, 512], metavar=('', ''), + help='resolution for rendered map (defaults to 1024x512)') + _parser.add_argument('-R', '--rotation', type=int, nargs=3, default=[0, 0, 0], metavar=('', '', ''), + help="rotation in degrees to apply before rendering map (z is up)") + _parser.add_argument('-o', '--output', type=str, default='out', metavar='', + help='filename for rendered map (defaults to "out")') + _parser.add_argument('-f', '--format', type=str, default='TGA', metavar='', + help='format to use when saving map, i.e. "PNG" or "TGA"') + _parser.add_argument('-b', '--blender-path', type=str, default='blender', metavar='', + help='filename of the Blender executable (defaults to "blender")') + _parser.add_argument('-t', '--threads', type=int, default=None, metavar='', + help='number of threads to use when rendering (1-64)') + _parser.add_argument('-V', '--verbose', action='store_true', + help='enable verbose logging') + _args = _parser.parse_args() + + rotations = map(lambda x: math.radians(x), _args.rotation) + + if _args.threads and _args.threads not in range(1, 65): + _parser.print_usage() + print('cube2sphere: error: too many threads specified (range is 1-64)') + sys.exit(1) + + output = _args.output + output = output if os.path.isabs(output) else os.path.join(os.getcwd(), output) + + out = open(os.devnull, 'w') if not _args.verbose else None + + faces = [_args.front, _args.back, _args.right, _args.left, _args.top, _args.bottom] + for i in range(len(faces)): + face = faces[i] + face = faces if os.path.isabs(face) else os.path.join(os.getcwd(), face) + faces[i] = face + + try: + process = subprocess.Popen( + [_args.blender_path, '-E', 'CYCLES', '--background', '-noaudio', + '-b', os.path.join(os.path.dirname(os.path.realpath(__file__)), 'projector.blend'), + '-o', output, '-F', _args.format, '-x', '1', + '-P', os.path.join(os.path.dirname(os.path.realpath(__file__)), 'blender_init.py')] + + (['-t', str(_args.threads)] if _args.threads else []) + + ['--', faces[0], faces[1], faces[2], faces[3], faces[4], faces[5], + str(_args.resolution[0]), str(_args.resolution[1]), + str(rotations[0]), str(rotations[1]), str(rotations[2])], + stderr=out, stdout=out) + except: + print('error spawning blender (%s) executable' % _args.blender_path) + import traceback + + traceback.print_exc() + sys.exit(1) + else: + process.wait() + if process.returncode: + print('blender exited with error code %d' % process.returncode) + sys.exit(process.returncode) diff --git a/cube2sphere/projector.blend b/cube2sphere/projector.blend new file mode 100644 index 0000000000000000000000000000000000000000..073c8247bf892f876144ea2e7a8670f006df70a0 GIT binary patch literal 684724 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≀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 YqdACZhebp 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 R4|r2lts5VplY8#Z{{b~SM<4(I literal 0 HcmV?d00001 diff --git a/cube2sphere/version.py b/cube2sphere/version.py new file mode 100644 index 0000000..0cc98c4 --- /dev/null +++ b/cube2sphere/version.py @@ -0,0 +1,2 @@ +__author__ = 'Xyene' +__version__ = '0.1.7' \ No newline at end of file diff --git a/ez_setup.py b/ez_setup.py new file mode 100644 index 0000000..9f932db --- /dev/null +++ b/ez_setup.py @@ -0,0 +1,278 @@ +#!python +"""Bootstrap setuptools installation + +If you want to use setuptools in your package's setup.py, just include this +file in the same directory with it, and add this to the top of your setup.py:: + + from ez_setup import use_setuptools + use_setuptools() + +If you want to require a specific version of setuptools, set a download +mirror, or use an alternate download directory, you can do so by supplying +the appropriate options to ``use_setuptools()``. + +This file can also be run as a script to install or upgrade setuptools. +""" +import sys +DEFAULT_VERSION = "0.6c11" +DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3] + +md5_data = { + 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca', + 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb', + 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b', + 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', + 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', + 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', + 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', + 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', + 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', + 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', + 'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090', + 'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4', + 'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7', + 'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5', + 'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de', + 'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b', + 'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2', + 'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086', + 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', + 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', + 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', + 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e', + 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e', + 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f', + 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2', + 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc', + 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167', + 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64', + 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d', + 'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20', + 'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab', + 'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53', + 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2', + 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e', + 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372', + 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902', + 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de', + 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b', + 'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03', + 'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a', + 'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6', + 'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a', +} + +import sys, os +try: from hashlib import md5 +except ImportError: from md5 import md5 + +def _validate_md5(egg_name, data): + if egg_name in md5_data: + digest = md5(data).hexdigest() + if digest != md5_data[egg_name]: + print >>sys.stderr, ( + "md5 validation of %s failed! (Possible download problem?)" + % egg_name + ) + sys.exit(2) + return data + +def use_setuptools( + version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, + download_delay=15 +): + """Automatically find/download setuptools and make it available on sys.path + + `version` should be a valid setuptools version number that is available + as an egg for download under the `download_base` URL (which should end with + a '/'). `to_dir` is the directory where setuptools will be downloaded, if + it is not already available. If `download_delay` is specified, it should + be the number of seconds that will be paused before initiating a download, + should one be required. If an older version of setuptools is installed, + this routine will print a message to ``sys.stderr`` and raise SystemExit in + an attempt to abort the calling script. + """ + was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules + def do_download(): + egg = download_setuptools(version, download_base, to_dir, download_delay) + sys.path.insert(0, egg) + import setuptools; setuptools.bootstrap_install_from = egg + try: + import pkg_resources + except ImportError: + return do_download() + try: + pkg_resources.require("setuptools>="+version); return + except pkg_resources.VersionConflict, e: + if was_imported: + print >>sys.stderr, ( + "The required version of setuptools (>=%s) is not available, and\n" + "can't be installed while this script is running. Please install\n" + " a more recent version first, using 'easy_install -U setuptools'." + "\n\n(Currently using %r)" + ) % (version, e.args[0]) + sys.exit(2) + except pkg_resources.DistributionNotFound: + pass + + del pkg_resources, sys.modules['pkg_resources'] # reload ok + return do_download() + +def download_setuptools( + version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, + delay = 15 +): + """Download setuptools from a specified location and return its filename + + `version` should be a valid setuptools version number that is available + as an egg for download under the `download_base` URL (which should end + with a '/'). `to_dir` is the directory where the egg will be downloaded. + `delay` is the number of seconds to pause before an actual download attempt. + """ + import urllib2, shutil + egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3]) + url = download_base + egg_name + saveto = os.path.join(to_dir, egg_name) + src = dst = None + if not os.path.exists(saveto): # Avoid repeated downloads + try: + from distutils import log + if delay: + log.warn(""" +--------------------------------------------------------------------------- +This script requires setuptools version %s to run (even to display +help). I will attempt to download it for you (from +%s), but +you may need to enable firewall access for this script first. +I will start the download in %d seconds. + +(Note: if this machine does not have network access, please obtain the file + + %s + +and place it in this directory before rerunning this script.) +---------------------------------------------------------------------------""", + version, download_base, delay, url + ); from time import sleep; sleep(delay) + log.warn("Downloading %s", url) + src = urllib2.urlopen(url) + # Read/write all in one block, so we don't create a corrupt file + # if the download is interrupted. + data = _validate_md5(egg_name, src.read()) + dst = open(saveto,"wb"); dst.write(data) + finally: + if src: src.close() + if dst: dst.close() + return os.path.realpath(saveto) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +def main(argv, version=DEFAULT_VERSION): + """Install or upgrade setuptools and EasyInstall""" + try: + import setuptools + except ImportError: + egg = None + try: + egg = download_setuptools(version, delay=0) + sys.path.insert(0,egg) + from setuptools.command.easy_install import main + return main(list(argv)+[egg]) # we're done here + finally: + if egg and os.path.exists(egg): + os.unlink(egg) + else: + if setuptools.__version__ == '0.0.1': + print >>sys.stderr, ( + "You have an obsolete version of setuptools installed. Please\n" + "remove it from your system entirely before rerunning this script." + ) + sys.exit(2) + + req = "setuptools>="+version + import pkg_resources + try: + pkg_resources.require(req) + except pkg_resources.VersionConflict: + try: + from setuptools.command.easy_install import main + except ImportError: + from easy_install import main + main(list(argv)+[download_setuptools(delay=0)]) + sys.exit(0) # try to force an exit + else: + if argv: + from setuptools.command.easy_install import main + main(argv) + else: + print "Setuptools version",version,"or greater has been installed." + print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)' + +def update_md5(filenames): + """Update our built-in md5 registry""" + + import re + + for name in filenames: + base = os.path.basename(name) + f = open(name,'rb') + md5_data[base] = md5(f.read()).hexdigest() + f.close() + + data = [" %r: %r,\n" % it for it in md5_data.items()] + data.sort() + repl = "".join(data) + + import inspect + srcfile = inspect.getsourcefile(sys.modules[__name__]) + f = open(srcfile, 'rb'); src = f.read(); f.close() + + match = re.search("\nmd5_data = {\n([^}]+)}", src) + if not match: + print >>sys.stderr, "Internal error!" + sys.exit(2) + + src = src[:match.start(1)] + repl + src[match.end(1):] + f = open(srcfile,'w') + f.write(src) + f.close() + + +if __name__=='__main__': + if len(sys.argv)>2 and sys.argv[1]=='--md5update': + update_md5(sys.argv[2:]) + else: + main(sys.argv[1:]) \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..541c89a --- /dev/null +++ b/setup.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python + +__author__ = 'Xyene' +import ez_setup + +ez_setup.use_setuptools() +from setuptools import setup, find_packages +import os + +with open('README.rst') as file: + long_description = file.read() + +with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'cube2sphere', 'version.py')) as version: + exec (version.read()) + +setup(name='cube2sphere', + version=__version__, + description='Utility to map 6 cube (cubemap, skybox) faces into an equirectangular (cylindrical projection, skysphere) map', + long_description=long_description, + author='Tudor Brindus', + author_email='tbrindus@gmail.com', + url='http://github.com/Xyene/cube2sphere', + packages=find_packages(), + package_data={ + "cube2sphere": ["*.blend"], + }, + entry_points={ + 'console_scripts': ['cube2sphere=cube2sphere.cube2sphere:main'], + }, + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Environment :: Console', + 'Intended Audience :: Developers', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.2', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', + 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Topic :: Artistic Software' + ], +) \ No newline at end of file