From f2944c1b1fdff2057f34692ef194ad1e18b069bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Sch=C3=BCth?= Date: Mon, 3 Jan 2022 22:20:20 +0100 Subject: [PATCH] Add interfaces and cleanup code --- LICENSE | 674 ------------------ LICENSE.txt | 202 ++++++ README.md | 44 +- examples/PointDemo.gif | Bin 0 -> 45735 bytes examples/SpatialDemo.gif | Bin 0 -> 267912 bytes jreleaser.yml | 78 ++ pom.xml | 18 +- .../io/metaloom/quadtree/AbstractNode.java | 25 +- .../quadtree/AbstractNodeElement.java | 8 +- .../metaloom/quadtree/AbstractQuadTree.java | 6 - src/main/java/io/metaloom/quadtree/Node.java | 15 +- .../java/io/metaloom/quadtree/QuadTree.java | 10 +- src/main/java/io/metaloom/quadtree/Size.java | 22 +- .../io/metaloom/quadtree/impl/SizeImpl.java | 14 +- .../io/metaloom/quadtree/point/Point.java | 23 +- .../io/metaloom/quadtree/point/PointNode.java | 36 + .../quadtree/point/PointNodeElement.java | 7 + .../quadtree/point/PointQuadTree.java | 19 +- .../quadtree/point/impl/PointImpl.java | 18 +- .../quadtree/point/impl/PointNodeElement.java | 13 - .../point/impl/PointNodeElementImpl.java | 14 + .../{PointNode.java => PointNodeImpl.java} | 122 ++-- .../point/impl/PointQuadTreeImpl.java | 33 +- .../quadtree/spatial/SpatialNode.java | 5 + .../quadtree/spatial/SpatialNodeElement.java | 18 +- .../quadtree/spatial/SpatialQuadTree.java | 14 + .../spatial/impl/SpatialNodeElementImpl.java | 14 +- .../spatial/impl/SpatialNodeImpl.java | 31 +- .../spatial/impl/SpatialQuadTreeImpl.java | 16 +- .../quadtree/AbstractQuadTreeTest.java | 23 + .../quadtree/{gui => }/QuadTreePanel.java | 6 +- .../io/metaloom/quadtree/QuadTreeTest.java | 54 -- .../quadtree/point/PointQuadTreeTest.java | 37 + .../{ => point}/RenderPointQuadTree.java | 32 +- .../{ => spatial}/RenderSpatialQuadTree.java | 29 +- .../quadtree/spatial/SpatialQuadTreeTest.java | 74 ++ 36 files changed, 796 insertions(+), 958 deletions(-) delete mode 100644 LICENSE create mode 100644 LICENSE.txt create mode 100644 examples/PointDemo.gif create mode 100644 examples/SpatialDemo.gif create mode 100644 jreleaser.yml create mode 100644 src/main/java/io/metaloom/quadtree/point/PointNode.java create mode 100644 src/main/java/io/metaloom/quadtree/point/PointNodeElement.java delete mode 100644 src/main/java/io/metaloom/quadtree/point/impl/PointNodeElement.java create mode 100644 src/main/java/io/metaloom/quadtree/point/impl/PointNodeElementImpl.java rename src/main/java/io/metaloom/quadtree/point/impl/{PointNode.java => PointNodeImpl.java} (54%) create mode 100644 src/test/java/io/metaloom/quadtree/AbstractQuadTreeTest.java rename src/test/java/io/metaloom/quadtree/{gui => }/QuadTreePanel.java (91%) delete mode 100644 src/test/java/io/metaloom/quadtree/QuadTreeTest.java create mode 100644 src/test/java/io/metaloom/quadtree/point/PointQuadTreeTest.java rename src/test/java/io/metaloom/quadtree/{ => point}/RenderPointQuadTree.java (80%) rename src/test/java/io/metaloom/quadtree/{ => spatial}/RenderSpatialQuadTree.java (78%) create mode 100644 src/test/java/io/metaloom/quadtree/spatial/SpatialQuadTreeTest.java diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 20d40b6..0000000 --- a/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - 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 -. \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..ae8cc53 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2021 Johannes Schüth + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index 6db2330..2faa384 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,40 @@ # JavaQuadTree -Just a simple java implementation of a quadtree +This project contains two very basic QuadTree implementation for Java. -## Usage +## Point Quad Tree +The point quad tree allows insertion of elements with provided coordinates. The quad tree will automatically subdivide when the maximum limit per cell has been reached. + +```java +// Create the quad tree with a 0,0 start coordinate and a dimension of 600x600 +PointQuadTree tree = new PointQuadTreeImpl<>(Point.of(0, 0), Size.of(600, 600)); + +// Store a bunch of strings with provided coordinates +tree.insert(1, 3, "1"); +tree.insert(11, 32, "2"); + +tree.insert(454, 555, "4"); +tree.insert(353, 555, "5"); +tree.insert(552, 555, "6"); +tree.insert(551, 555, "7"); + +// Locate the elements for a provided coordinate +Point target = Point.of(500, 550); +Vector> elements = tree.getElements(target); ``` -PointQuadTree tree = new PointQuadTree(new Point(0, 0), new Dimension(600, 600)); - tree.insert(1, 3, "1"); - tree.insert(11, 32, "2"); - tree.insert(11, 52, "3"); - tree.insert(454, 555, "4"); - tree.insert(353, 555, "5"); - tree.insert(552, 555, "6"); - tree.insert(551, 555, "7"); + +![PointQuadTree](examples/PointDemo.gif) + +## Spatial Quad Tree + +The spatial quad tree works a bit different. Here you don't specify the coordinates in which you want to insert the element. Instead the element dimensions will be specified. The quad tree will automatically locate a cell which can store the element with the provided size. The quad tree will automatically be subdivided to generate smaller cells if needed. + +NOTE: Please note that the current implementation does only work with element dimensions which are rectangular in shape and which have a size that is dividable by the initial quad tree dimensions. + +```java +SpatialQuadTree tree = new SpatialQuadTreeImpl<>(Point.of(0, 0), Size.of(600, 600)); + boolean inserted = tree.insert(Size.of(150, 150), "2"); ``` + +![SpatialQuadTree](examples/SpatialDemo.gif) \ No newline at end of file diff --git a/examples/PointDemo.gif b/examples/PointDemo.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b80cb7823b9fa5b1469cacb43116789cf3c5941 GIT binary patch literal 45735 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¿&QSh2>>Vl9RrkBw0RTDUYQ%)T&5R`E60JttB$X0p}!6 zYPu`4W+^aW=I_J978|bHWhoMC)u;~(@Xq~4ioDJYRjI0SBw|9yCZvuENL~JS9`lW# ziH$bqNaK4P{!JVf7OWuh6Xb-oTGQNwdad2OKkVz8#XhJCHl<{eylNK2vca}0e)#<9 zh0ep?S>IJX^&Ydk;b3;3e`k+Sag}y%WSeu(UqSjT4Kv1C!6}hw2qQD{1#dBnzb2wPe23e&GkVg|*qn<4^&PxO|c1~Gh=}#7L-d6cjnL*

}hH+*R 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

f0OW`RWu#Wri>jt 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 literal 0 HcmV?d00001 diff --git a/jreleaser.yml b/jreleaser.yml new file mode 100644 index 0000000..2089684 --- /dev/null +++ b/jreleaser.yml @@ -0,0 +1,78 @@ +project: + name: quadtree + version: 1.0.0 + versionPattern: SEMVER + + description: A point and spatial quad tree implementation for Java. + longDescription: | + A point and spatial quad tree implementation for Java. + website: https://github.com/metaloom/JavaQuadTree + authors: + - Johannes Schüth + license: Apache-2.0 + extraProperties: + inceptionYear: 2011 + +release: + github: + branch: master + username: jotschi + overwrite: true + milestone: + name: '{{projectVersion}}' + changelog: + sort: DESC + formatted: ALWAYS + format: '- {{commitShortHash}} {{commitTitle}}' + labelers: + - label: 'feature' + title: 'Resolves #' + body: 'Resolves #' + - label: 'issue' + title: 'Fixes #' + body: 'Fixes #' + - label: 'issue' + title: 'Relates to #' + body: 'Relates to #' + - label: 'task' + title: '[chore]' + - label: 'dependencies' + title: '[deps]' + - label: 'docs' + title: '[docs]' + - label: 'build' + title: '[build]' + categories: + - title: '🚀 Features' + labels: + - 'feature' + - title: '✅ Issues' + labels: + - 'issue' + - title: '🧰 Tasks' + labels: + - 'task' + - title: '📝 Documentation' + labels: + - 'docs' + - title: '⚙️ Dependencies' + labels: + - 'dependencies' + - title: 'Build' + labels: + - 'build' + hide: + categories: + - 'Build' + contributors: + - 'GitHub' + replacers: + - search: '\[chore\] ' + - search: '\[deps\] ' + - search: '\[docs\] ' + - search: '\[build\] ' + +#announce: +# twitter: +# active: release +# status: 🚀 {{projectName}} {{projectVersion}} has been released! {{releaseNotesUrl}} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 96dccdb..fd52fd2 100644 --- a/pom.xml +++ b/pom.xml @@ -3,8 +3,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - at.jotschi - QuadTree + io.metaloom.quadtree + quadtree 1.0.0-SNAPSHOT jar @@ -14,11 +14,21 @@ 1.0.0 - QuadTree - http://maven.apache.org + quadtree + https://github.com/metaloom/JavaQuadTree + A very basic quad tree implementation + 2011 + + + scm:git:git@github.com:metaloom/JavaQuadTree.git + scm:git:git@github.com:metaloom/JavaQuadTree.git + https://github.com/metaloom/JavaQuadTree + HEAD + UTF-8 + metaloom/JavaQuadTree diff --git a/src/main/java/io/metaloom/quadtree/AbstractNode.java b/src/main/java/io/metaloom/quadtree/AbstractNode.java index 28e82c1..8ca53f2 100644 --- a/src/main/java/io/metaloom/quadtree/AbstractNode.java +++ b/src/main/java/io/metaloom/quadtree/AbstractNode.java @@ -1,6 +1,7 @@ package io.metaloom.quadtree; import java.util.Map; + import io.metaloom.quadtree.point.Point; public abstract class AbstractNode implements Node { @@ -13,20 +14,19 @@ public abstract class AbstractNode implements Node { /** * Default value for max depth */ - protected final static int MAX_DEPTH = 4; + protected final static long MAX_DEPTH = 4; protected Size bounds; protected Point startCoordinates; - protected int maxDepth; + protected long maxDepth; protected int maxElements; - protected int depth; + protected long depth; - public AbstractNode(Point startCoordinates, Size bounds, int depth) { + public AbstractNode(Point startCoordinates, Size bounds, long depth) { this(startCoordinates, bounds, depth, MAX_ELEMENTS, MAX_DEPTH); } - public AbstractNode(Point startCoordinates, Size bounds, int depth, - int maxDepth, int maxElements) { + public AbstractNode(Point startCoordinates, Size bounds, long depth, int maxElements, long maxDepth) { this.startCoordinates = startCoordinates; this.bounds = bounds; this.maxDepth = maxDepth; @@ -50,22 +50,13 @@ public int getMaxElements() { } @Override - public int getDepth() { + public long getDepth() { return depth; } @Override - public int getMaxDepth() { + public long getMaxDepth() { return maxDepth; } - @Override - public abstract void subdivide(); - - @Override - public abstract void clear(); - - @Override - public abstract Map> getSubNodes(); - } diff --git a/src/main/java/io/metaloom/quadtree/AbstractNodeElement.java b/src/main/java/io/metaloom/quadtree/AbstractNodeElement.java index 9cd2899..fe5113f 100644 --- a/src/main/java/io/metaloom/quadtree/AbstractNodeElement.java +++ b/src/main/java/io/metaloom/quadtree/AbstractNodeElement.java @@ -33,22 +33,22 @@ public T getElement() { } @Override - public int x() { + public long x() { return coordinates.x(); } @Override - public int y() { + public long y() { return coordinates.y(); } @Override - public void setX(int x) { + public void setX(long x) { coordinates.setX(x); } @Override - public void setY(int y) { + public void setY(long y) { coordinates.setY(y); } } diff --git a/src/main/java/io/metaloom/quadtree/AbstractQuadTree.java b/src/main/java/io/metaloom/quadtree/AbstractQuadTree.java index 633c627..710780b 100644 --- a/src/main/java/io/metaloom/quadtree/AbstractQuadTree.java +++ b/src/main/java/io/metaloom/quadtree/AbstractQuadTree.java @@ -22,10 +22,4 @@ public Point getStartCoordinates() { return startCoordinates; } - @Override - public abstract void clear(); - - @Override - public abstract Node getRootNode(); - } diff --git a/src/main/java/io/metaloom/quadtree/Node.java b/src/main/java/io/metaloom/quadtree/Node.java index cd7fb49..7b3e7a8 100644 --- a/src/main/java/io/metaloom/quadtree/Node.java +++ b/src/main/java/io/metaloom/quadtree/Node.java @@ -25,19 +25,30 @@ public interface Node { * * @return */ - int getDepth(); + long getDepth(); /** * Returns the max depth * * @return */ - int getMaxDepth(); + long getMaxDepth(); + /** + * Recursively clear all elements + */ void clear(); + /** + * Divide this node so that additional sub nodes can be stored. + */ void subdivide(); + /** + * Return the sub node data of this node. + * + * @return + */ Map> getSubNodes(); /** diff --git a/src/main/java/io/metaloom/quadtree/QuadTree.java b/src/main/java/io/metaloom/quadtree/QuadTree.java index 3ac64b0..d0d820e 100644 --- a/src/main/java/io/metaloom/quadtree/QuadTree.java +++ b/src/main/java/io/metaloom/quadtree/QuadTree.java @@ -36,15 +36,9 @@ public interface QuadTree { * @param point * @param size * @param element + * @return true when the element could be inserted */ - void insert(Point point, Size elementSize, T element); + boolean insert(Point point, Size elementSize, T element); - /** - * Insert the element with the given size in the next free cell - * - * @param element - * @param elementSize - */ - void insert(T element, Size elementSize); } diff --git a/src/main/java/io/metaloom/quadtree/Size.java b/src/main/java/io/metaloom/quadtree/Size.java index 1bdaba2..fd93757 100644 --- a/src/main/java/io/metaloom/quadtree/Size.java +++ b/src/main/java/io/metaloom/quadtree/Size.java @@ -3,17 +3,33 @@ import io.metaloom.quadtree.impl.SizeImpl; import io.metaloom.quadtree.point.Point; +/** + * Dimensional representation for quad trees and their elements. + */ public interface Size { - int height(); + long height(); - int width(); + long width(); + /** + * Create a new size which uses the coordinates of the point as dimensional references. + * + * @param point + * @return + */ static Size of(Point point) { return new SizeImpl(point.x(), point.y()); } - static Size of(int width, int height) { + /** + * Create a new size. + * + * @param width + * @param height + * @return + */ + static Size of(long width, long height) { return new SizeImpl(width, height); } } diff --git a/src/main/java/io/metaloom/quadtree/impl/SizeImpl.java b/src/main/java/io/metaloom/quadtree/impl/SizeImpl.java index 8a09e9b..c800b24 100644 --- a/src/main/java/io/metaloom/quadtree/impl/SizeImpl.java +++ b/src/main/java/io/metaloom/quadtree/impl/SizeImpl.java @@ -4,22 +4,26 @@ public class SizeImpl implements Size { - private final int width; - private final int height; + private final long width; + private final long height; - public SizeImpl(int width, int height) { + public SizeImpl(long width, long height) { this.width = width; this.height = height; } @Override - public int height() { + public long height() { return height; } @Override - public int width() { + public long width() { return width; } + @Override + public String toString() { + return "[" + width + ":" + height + "]"; + } } diff --git a/src/main/java/io/metaloom/quadtree/point/Point.java b/src/main/java/io/metaloom/quadtree/point/Point.java index 9b4fc72..bcac2cc 100644 --- a/src/main/java/io/metaloom/quadtree/point/Point.java +++ b/src/main/java/io/metaloom/quadtree/point/Point.java @@ -7,18 +7,31 @@ */ public interface Point { - int x(); + long x(); - int y(); + long y(); - void setX(int x); + void setX(long x); - void setY(int y); + void setY(long y); - static Point of(int x, int y) { + /** + * Create a new point with the given coordinates. + * + * @param x + * @param y + * @return + */ + static Point of(long x, long y) { return new PointImpl(x, y); } + /** + * Create a new point based on a {@link java.awt.Point} object data. + * + * @param p + * @return + */ static Point of(java.awt.Point p) { return new PointImpl(p.x, p.y); } diff --git a/src/main/java/io/metaloom/quadtree/point/PointNode.java b/src/main/java/io/metaloom/quadtree/point/PointNode.java new file mode 100644 index 0000000..0274718 --- /dev/null +++ b/src/main/java/io/metaloom/quadtree/point/PointNode.java @@ -0,0 +1,36 @@ +package io.metaloom.quadtree.point; + +import java.util.Map; +import java.util.Vector; + +import io.metaloom.quadtree.Cell; +import io.metaloom.quadtree.Node; + +public interface PointNode extends Node { + + /** + * Returns all elements for this node + * + * @return + */ + Vector> getElements(); + + /** + * Returns all elements within the cell that matches the given coordinates + * + * @param coordinates + * @return + */ + Vector> getElements(Point coordinates); + + @Override + Map> getSubNodes(); + + /** + * Insert the element into this node. If needed a subdivision will be performed + * + * @param element + * @return true when the element could be inserted + */ + boolean insert(PointNodeElement element); +} diff --git a/src/main/java/io/metaloom/quadtree/point/PointNodeElement.java b/src/main/java/io/metaloom/quadtree/point/PointNodeElement.java new file mode 100644 index 0000000..a64e4f7 --- /dev/null +++ b/src/main/java/io/metaloom/quadtree/point/PointNodeElement.java @@ -0,0 +1,7 @@ +package io.metaloom.quadtree.point; + +import io.metaloom.quadtree.NodeElement; + +public interface PointNodeElement extends NodeElement { + +} diff --git a/src/main/java/io/metaloom/quadtree/point/PointQuadTree.java b/src/main/java/io/metaloom/quadtree/point/PointQuadTree.java index ca8324a..7e84437 100644 --- a/src/main/java/io/metaloom/quadtree/point/PointQuadTree.java +++ b/src/main/java/io/metaloom/quadtree/point/PointQuadTree.java @@ -1,8 +1,9 @@ package io.metaloom.quadtree.point; +import java.util.Vector; + import io.metaloom.quadtree.QuadTree; import io.metaloom.quadtree.Size; -import io.metaloom.quadtree.point.impl.PointNode; public interface PointQuadTree extends QuadTree { @@ -13,7 +14,7 @@ public interface PointQuadTree extends QuadTree { * @param size * @param element */ - void insert(Point point, Size size, T element); + boolean insert(Point point, Size size, T element); /** * Add a new element to the QuadTree @@ -21,16 +22,18 @@ public interface PointQuadTree extends QuadTree { * @param x * @param y * @param element + * @return true when the element could be inserted */ - void insert(int x, int y, T element); + boolean insert(int x, int y, T element); /** * Add a new element to the QuadTree * * @param point * @param element + * @return true when the element could be inserted */ - void insert(Point point, T element); + boolean insert(Point point, T element); /** * Returns the rootNode of this tree @@ -38,4 +41,12 @@ public interface PointQuadTree extends QuadTree { * @return */ PointNode getRootNode(); + + /** + * Returns all elements within the cell that matches the given coordinates + * + * @param coordinates + * @return + */ + Vector> getElements(Point coordinates); } diff --git a/src/main/java/io/metaloom/quadtree/point/impl/PointImpl.java b/src/main/java/io/metaloom/quadtree/point/impl/PointImpl.java index c19396d..c510caa 100644 --- a/src/main/java/io/metaloom/quadtree/point/impl/PointImpl.java +++ b/src/main/java/io/metaloom/quadtree/point/impl/PointImpl.java @@ -4,10 +4,10 @@ public class PointImpl implements Point { - public int x; - public int y; + public long x; + public long y; - public PointImpl(int x, int y) { + public PointImpl(long x, long y) { this.x = x; this.y = y; } @@ -18,23 +18,27 @@ public PointImpl(Point point) { } @Override - public int x() { + public long x() { return x; } @Override - public int y() { + public long y() { return y; } @Override - public void setX(int x) { + public void setX(long x) { this.x = x; } @Override - public void setY(int y) { + public void setY(long y) { this.y = y; } + @Override + public String toString() { + return "[" + x + ":" + y + "]"; + } } diff --git a/src/main/java/io/metaloom/quadtree/point/impl/PointNodeElement.java b/src/main/java/io/metaloom/quadtree/point/impl/PointNodeElement.java deleted file mode 100644 index 06e1d79..0000000 --- a/src/main/java/io/metaloom/quadtree/point/impl/PointNodeElement.java +++ /dev/null @@ -1,13 +0,0 @@ -package io.metaloom.quadtree.point.impl; - - -import io.metaloom.quadtree.AbstractNodeElement; -import io.metaloom.quadtree.point.Point; - -public class PointNodeElement extends AbstractNodeElement { - - public PointNodeElement(Point coordinates, T element) { - super(coordinates, element); - } - -} diff --git a/src/main/java/io/metaloom/quadtree/point/impl/PointNodeElementImpl.java b/src/main/java/io/metaloom/quadtree/point/impl/PointNodeElementImpl.java new file mode 100644 index 0000000..887610e --- /dev/null +++ b/src/main/java/io/metaloom/quadtree/point/impl/PointNodeElementImpl.java @@ -0,0 +1,14 @@ +package io.metaloom.quadtree.point.impl; + + +import io.metaloom.quadtree.AbstractNodeElement; +import io.metaloom.quadtree.point.Point; +import io.metaloom.quadtree.point.PointNodeElement; + +public class PointNodeElementImpl extends AbstractNodeElement implements PointNodeElement { + + public PointNodeElementImpl(Point coordinates, T element) { + super(coordinates, element); + } + +} diff --git a/src/main/java/io/metaloom/quadtree/point/impl/PointNode.java b/src/main/java/io/metaloom/quadtree/point/impl/PointNodeImpl.java similarity index 54% rename from src/main/java/io/metaloom/quadtree/point/impl/PointNode.java rename to src/main/java/io/metaloom/quadtree/point/impl/PointNodeImpl.java index c58c8af..17dc60f 100644 --- a/src/main/java/io/metaloom/quadtree/point/impl/PointNode.java +++ b/src/main/java/io/metaloom/quadtree/point/impl/PointNodeImpl.java @@ -12,6 +12,8 @@ import io.metaloom.quadtree.Cell; import io.metaloom.quadtree.Size; import io.metaloom.quadtree.point.Point; +import io.metaloom.quadtree.point.PointNode; +import io.metaloom.quadtree.point.PointNodeElement; /** * This is a Node that represents each 'cell' within the quadtree. The Node will contains elements {@link AbstractNodeElement} that itself will contain the @@ -19,20 +21,22 @@ * * @param */ -public class PointNode extends AbstractNode { +public class PointNodeImpl extends AbstractNode implements PointNode { - protected static Logger log = LoggerFactory.getLogger(PointNode.class); + public static final Logger log = LoggerFactory.getLogger(PointNodeImpl.class); - protected Map> nodes = new HashMap>(); + protected Map> nodes = new HashMap<>(); /** * Holds all elements for this node */ - protected Vector> elements = new Vector>(); + protected Vector> elements = new Vector<>(); - public PointNode(Point startCoordinates, Size bounds, int depth) { + public PointNodeImpl(Point startCoordinates, Size bounds, long depth) { super(startCoordinates, bounds, depth); - log.debug("Creating new Node at depth " + depth); + if (log.isDebugEnabled()) { + log.debug("Creating new Node at depth " + depth); + } } /** @@ -43,10 +47,11 @@ public PointNode(Point startCoordinates, Size bounds, int depth) { * @param maxDepth * @param maxChildren */ - public PointNode(Point startCoordinates, Size bounds, int depth, - int maxDepth, int maxChildren) { - super(startCoordinates, bounds, depth, maxDepth, maxChildren); - log.debug("Creating new Node at depth " + depth); + public PointNodeImpl(Point startCoordinates, Size bounds, long depth, long maxDepth, int maxChildren) { + super(startCoordinates, bounds, depth, maxChildren, maxDepth); + if (log.isDebugEnabled()) { + log.debug("Creating new Node at depth " + depth); + } } /** @@ -55,7 +60,7 @@ public PointNode(Point startCoordinates, Size bounds, int depth, * @return */ public Map> getSubNodes() { - return this.nodes; + return nodes; } /** @@ -94,106 +99,93 @@ protected Cell findIndex(Point coordinates) { return index; } - /** - * Returns all elements for this node - * - * @return - */ + @Override public Vector> getElements() { return this.elements; } - /** - * Returns all elements within the cell that matches the given coordinates - * - * @param coordinates - * @return - */ + @Override public Vector> getElements(Point coordinates) { - - // Check if this node has already been subdivided. Therefor this node - // should contain no elements + // Check if this node has already been subdivided. Therefore this node should contain no elements if (nodes.size() > 0) { Cell index = findIndex(coordinates); - PointNode node = this.nodes.get(index); + PointNode node = nodes.get(index); return node.getElements(coordinates); } else { return this.elements; } } - /** - * Insert the element into this node. If needed a subdivision will be performed - * - * @param element - */ - public void insert(PointNodeElement element) { - log.debug("Inserting element into Node at depth " + depth); - // If this Node has already been subdivided just add the elements to the - // appropriate cell - if (this.nodes.size() != 0) { + @Override + public boolean insert(PointNodeElement element) { + if (log.isDebugEnabled()) { + log.debug("Inserting element into Node at depth " + depth); + } + // If this Node has already been subdivided just add the elements to the appropriate cell + if (nodes.size() != 0) { Cell index = findIndex(element); - log.debug("Inserting into existing cell: " + index); - this.nodes.get(index).insert(element); - return; + if (log.isDebugEnabled()) { + log.debug("Inserting into existing cell: " + index); + } + nodes.get(index).insert(element); + return true; } // Add the element to this node - this.elements.add(element); + elements.add(element); - // Only subdivide the node if it contain more than MAX_CHILDREN and is - // not the deepest node - if (!(this.depth >= maxDepth) && this.elements.size() > maxElements) { - this.subdivide(); + // Only subdivide the node if it contain more than MAX_CHILDREN and is not the deepest node + if (!(depth >= maxDepth) && elements.size() > maxElements) { + subdivide(); // Recall insert for each element. This will move all elements of // this node into the new nodes at the appropriate cell for (PointNodeElement current : elements) { - this.insert(current); + insert(current); } - // Remove all elements from this node since they were moved into - // subnodes - this.elements.clear(); + // Remove all elements from this node since they were moved into subnodes + elements.clear(); } - + return true; } /** * Subdivide the current node and add subnodes */ public void subdivide() { - log.debug("Subdividing node at depth " + depth); - int depth = this.depth + 1; + if (log.isDebugEnabled()) { + log.debug("Subdividing node at depth " + depth); + } + long depth = this.depth + 1; - int bx = this.startCoordinates.x(); - int by = this.startCoordinates.y(); + long bx = this.startCoordinates.x(); + long by = this.startCoordinates.y(); // Create the bounds for the new cell Size newBounds = Size.of(bounds.width() / 2, bounds.height() / 2); // Add new bounds to current start coordinates to calculate the new // start coordinates - int newXStartCoordinate = bx + newBounds.width(); - int newYStartCoordinate = by + newBounds.height(); - - PointNode cellNode = null; + long newXStartCoordinate = bx + newBounds.width(); + long newYStartCoordinate = by + newBounds.height(); // top left - cellNode = new PointNode(Point.of(bx, by), newBounds, depth, this.maxDepth, this.maxElements); - this.nodes.put(Cell.TOP_LEFT, cellNode); + PointNode tlCellNode = new PointNodeImpl(Point.of(bx, by), newBounds, depth, this.maxDepth, this.maxElements); + this.nodes.put(Cell.TOP_LEFT, tlCellNode); // top right - cellNode = new PointNode(Point.of(newXStartCoordinate, by), newBounds, depth, this.maxDepth, this.maxElements); - this.nodes.put(Cell.TOP_RIGHT, cellNode); + PointNode crCellNode = new PointNodeImpl(Point.of(newXStartCoordinate, by), newBounds, depth, this.maxDepth, this.maxElements); + this.nodes.put(Cell.TOP_RIGHT, crCellNode); // bottom left - cellNode = new PointNode(Point.of(bx, newYStartCoordinate), newBounds, depth, this.maxDepth, this.maxElements); - this.nodes.put(Cell.BOTTOM_LEFT, cellNode); + PointNode blCellNode = new PointNodeImpl(Point.of(bx, newYStartCoordinate), newBounds, depth, this.maxDepth, this.maxElements); + this.nodes.put(Cell.BOTTOM_LEFT, blCellNode); // bottom right - cellNode = new PointNode(Point.of(newXStartCoordinate, newYStartCoordinate), newBounds, depth, this.maxDepth, this.maxElements); - this.nodes.put(Cell.BOTTOM_RIGHT, cellNode); + PointNode brCellNode = new PointNodeImpl(Point.of(newXStartCoordinate, newYStartCoordinate), newBounds, depth, this.maxDepth, + this.maxElements); + this.nodes.put(Cell.BOTTOM_RIGHT, brCellNode); } /** diff --git a/src/main/java/io/metaloom/quadtree/point/impl/PointQuadTreeImpl.java b/src/main/java/io/metaloom/quadtree/point/impl/PointQuadTreeImpl.java index 426309e..2025125 100644 --- a/src/main/java/io/metaloom/quadtree/point/impl/PointQuadTreeImpl.java +++ b/src/main/java/io/metaloom/quadtree/point/impl/PointQuadTreeImpl.java @@ -5,6 +5,7 @@ import io.metaloom.quadtree.AbstractQuadTree; import io.metaloom.quadtree.Size; import io.metaloom.quadtree.point.Point; +import io.metaloom.quadtree.point.PointNodeElement; import io.metaloom.quadtree.point.PointQuadTree; /** @@ -14,7 +15,7 @@ */ public class PointQuadTreeImpl extends AbstractQuadTree implements PointQuadTree { - protected PointNode rootNode; + protected PointNodeImpl rootNode; /** * Create a new QuadTree with the give start coordinates and size @@ -24,21 +25,21 @@ public class PointQuadTreeImpl extends AbstractQuadTree implements PointQu */ public PointQuadTreeImpl(Point startCoordinates, Size size) { super(startCoordinates, size); - this.rootNode = new PointNode(startCoordinates, size, 0); + this.rootNode = new PointNodeImpl(startCoordinates, size, 0); } public PointQuadTreeImpl(Point startCoordinates, Size size, int maxDepth, int maxChildren) { super(startCoordinates, size); - this.rootNode = new PointNode(startCoordinates, size, 0, maxDepth, maxChildren); + this.rootNode = new PointNodeImpl(startCoordinates, size, 0, maxDepth, maxChildren); } @Override - public void insert(int x, int y, T element) { - insert(Point.of(x, y), element); + public boolean insert(int x, int y, T element) { + return insert(Point.of(x, y), element); } @Override - public void insert(Point point, Size size, T element) { + public boolean insert(Point point, Size size, T element) { // Check if the element coordinates are within bounds of the quadtree if (point.x() > startCoordinates.x() + size.width() || point.x() < startCoordinates.x()) { @@ -58,17 +59,12 @@ public void insert(Point point, Size size, T element) { "The y coordinate must be within bounds of [" + startCoordinates.y() + "] to [" + size.height() + "]"); } - rootNode.insert(new PointNodeElement(point, element)); + return rootNode.insert(new PointNodeElementImpl(point, element)); } @Override - public void insert(T element, Size elementSize) { - throw new RuntimeException("Not supported for point quad trees"); - } - - @Override - public void insert(Point point, T element) { + public boolean insert(Point point, T element) { // Check if the element coordinates are within bounds of the quadtree if (point.x() > startCoordinates.x() + size.width() || point.x() < startCoordinates.x()) { @@ -79,20 +75,15 @@ public void insert(Point point, T element) { "The y coordinate must be within bounds of [" + startCoordinates.y() + "] to [" + size.height() + "]"); } - rootNode.insert(new PointNodeElement(point, element)); + return rootNode.insert(new PointNodeElementImpl(point, element)); } @Override - public PointNode getRootNode() { + public PointNodeImpl getRootNode() { return rootNode; } - /** - * Returns all elements within the cell that matches the given coordinates - * - * @param coordinates - * @return - */ + @Override public Vector> getElements(Point coordinates) { return rootNode.getElements(coordinates); } diff --git a/src/main/java/io/metaloom/quadtree/spatial/SpatialNode.java b/src/main/java/io/metaloom/quadtree/spatial/SpatialNode.java index 48312cc..27bf35b 100644 --- a/src/main/java/io/metaloom/quadtree/spatial/SpatialNode.java +++ b/src/main/java/io/metaloom/quadtree/spatial/SpatialNode.java @@ -7,6 +7,11 @@ public interface SpatialNode extends Node { + /** + * Return the node element which contains the actual data object. + * + * @return + */ SpatialNodeElement getElement(); /** diff --git a/src/main/java/io/metaloom/quadtree/spatial/SpatialNodeElement.java b/src/main/java/io/metaloom/quadtree/spatial/SpatialNodeElement.java index 71134a5..61d6e68 100644 --- a/src/main/java/io/metaloom/quadtree/spatial/SpatialNodeElement.java +++ b/src/main/java/io/metaloom/quadtree/spatial/SpatialNodeElement.java @@ -4,12 +4,22 @@ public interface SpatialNodeElement extends NodeElement { - int getWidth(); + /** + * Return the width that the element consumes within the {@link SpatialQuadTree}. + * + * @return + */ + long getWidth(); - int getHeight(); + /** + * Return the height of the element that it consumes within the {@link SpatialQuadTree}. + * + * @return + */ + long getHeight(); - void setY(int y); + void setY(long y); - void setX(int x); + void setX(long x); } diff --git a/src/main/java/io/metaloom/quadtree/spatial/SpatialQuadTree.java b/src/main/java/io/metaloom/quadtree/spatial/SpatialQuadTree.java index a60feb0..6620822 100644 --- a/src/main/java/io/metaloom/quadtree/spatial/SpatialQuadTree.java +++ b/src/main/java/io/metaloom/quadtree/spatial/SpatialQuadTree.java @@ -1,6 +1,7 @@ package io.metaloom.quadtree.spatial; import io.metaloom.quadtree.QuadTree; +import io.metaloom.quadtree.Size; /** * A QuadTree that can hold the given type of elements. Each element can also have a certain dimension. @@ -9,4 +10,17 @@ */ public interface SpatialQuadTree extends QuadTree { + /** + * Return the root node of the tree. + */ + SpatialNode getRootNode(); + + /** + * Insert the element with the given size in the next free cell + * + * @param elementSize + * @param element + * @return true when the element could be inserted + */ + boolean insert(Size elementSize, T element); } diff --git a/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialNodeElementImpl.java b/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialNodeElementImpl.java index 6b1e8bd..e1cc72b 100644 --- a/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialNodeElementImpl.java +++ b/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialNodeElementImpl.java @@ -1,12 +1,10 @@ package io.metaloom.quadtree.spatial.impl; - import io.metaloom.quadtree.AbstractNodeElement; import io.metaloom.quadtree.Size; import io.metaloom.quadtree.point.Point; import io.metaloom.quadtree.spatial.SpatialNodeElement; - public class SpatialNodeElementImpl extends AbstractNodeElement implements SpatialNodeElement { protected Size elementSize; @@ -15,20 +13,24 @@ public SpatialNodeElementImpl(T element, Size elementSize) { super(element); this.elementSize = elementSize; } - + public SpatialNodeElementImpl(Point coordinates, Size elementSize, T element) { super(coordinates, element); this.elementSize = elementSize; } @Override - public int getWidth() { + public long getWidth() { return elementSize.width(); } @Override - public int getHeight() { + public long getHeight() { return elementSize.height(); } - + + @Override + public String toString() { + return "[" + elementSize + "] @ [" + x() + ":" + y() + "] => " + getElement(); + } } diff --git a/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialNodeImpl.java b/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialNodeImpl.java index eeace79..44c8fd4 100644 --- a/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialNodeImpl.java +++ b/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialNodeImpl.java @@ -21,12 +21,12 @@ public class SpatialNodeImpl extends AbstractNode implements SpatialNode element; - public SpatialNodeImpl(Point startCoordinates, Size bounds, int depth) { + public SpatialNodeImpl(Point startCoordinates, Size bounds, long depth) { super(startCoordinates, bounds, depth); } - public SpatialNodeImpl(Point startCoordinates, Size bounds, int depth, int maxDepth, int maxChildren) { - super(startCoordinates, bounds, depth, maxDepth, maxChildren); + public SpatialNodeImpl(Point startCoordinates, Size bounds, long depth, long maxDepth, int maxChildren) { + super(startCoordinates, bounds, depth, maxChildren, maxDepth); } @Override @@ -45,7 +45,9 @@ public boolean insert(SpatialNodeElement insertElement) { boolean hSmaller = insertElement.getHeight() < this.getBounds().height(); boolean smaller = wSmaller && hSmaller; - log.debug("Inserting element " + insertElement.getHeight() + " - " + insertElement.getWidth()); + if (log.isDebugEnabled()) { + log.debug("Inserting element " + insertElement.getHeight() + " - " + insertElement.getWidth()); + } // Check if the element fits into this node if (fits && nodes.size() == 0) { @@ -74,6 +76,12 @@ public boolean insert(SpatialNodeElement insertElement) { } } } + if (!fits) { + if (log.isDebugEnabled()) { + log.debug( + "The node element does not fit in the bounds of this element. Most likely also subdivison did not help to find a place for it. Maybe the max depth was reached before a suitable place could be found"); + } + } return false; } @@ -86,18 +94,18 @@ public void subdivide() { if (log.isDebugEnabled()) { log.debug("Subdividing node at depth " + depth); } - int depth = this.depth + 1; + long depth = this.depth + 1; - int bx = startCoordinates.x(); - int by = startCoordinates.y(); + long bx = startCoordinates.x(); + long by = startCoordinates.y(); // Create the bounds for the new cell Size newBounds = Size.of(bounds.width() / 2, bounds.height() / 2); // Add new bounds to current start coordinates to calculate the new // start coordinates - int newXStartCoordinate = bx + newBounds.width(); - int newYStartCoordinate = by + newBounds.height(); + long newXStartCoordinate = bx + newBounds.width(); + long newYStartCoordinate = by + newBounds.height(); SpatialNodeImpl cellNode = null; @@ -139,4 +147,9 @@ public Map> getSubNodes() { return this.nodes; } + @Override + public String toString() { + return "depth: " + getDepth() + " dim:" + getBounds() + " @ " + getStartCoordinates(); + } + } diff --git a/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialQuadTreeImpl.java b/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialQuadTreeImpl.java index 456360b..c3622ac 100644 --- a/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialQuadTreeImpl.java +++ b/src/main/java/io/metaloom/quadtree/spatial/impl/SpatialQuadTreeImpl.java @@ -13,7 +13,7 @@ public class SpatialQuadTreeImpl extends AbstractQuadTree implements Spati protected static Logger log = LoggerFactory.getLogger(SpatialQuadTreeImpl.class); - protected SpatialNodeImpl rootNode; + protected SpatialNode rootNode; /** * Create a new QuadTree with the give start coordinates and size @@ -26,13 +26,19 @@ public SpatialQuadTreeImpl(Point startCoordinates, Size size) { this.rootNode = new SpatialNodeImpl(startCoordinates, size, 0); } + public SpatialQuadTreeImpl(Point startCoordinates, Size size, long maxDepth, int maxChildren) { + super(startCoordinates, size); + this.rootNode = new SpatialNodeImpl(startCoordinates, size, 0L, maxDepth, maxChildren); + } + + @Override - public void insert(T element, Size elementSize) { - rootNode.insert(new SpatialNodeElementImpl(element, elementSize)); + public boolean insert(Size elementSize, T element) { + return rootNode.insert(new SpatialNodeElementImpl(element, elementSize)); } @Override - public void insert(Point point, Size elementSize, T element) { + public boolean insert(Point point, Size elementSize, T element) { // Check if the element coordinates are within bounds of the quadtree if (point.x() > startCoordinates.x() + size.width() || point.x() < startCoordinates.x()) { @@ -55,7 +61,7 @@ public void insert(Point point, Size elementSize, T element) { + "] / [" + point.x() + elementSize.height() + "]"); } - rootNode.insert(new SpatialNodeElementImpl(point, elementSize, element)); + return rootNode.insert(new SpatialNodeElementImpl(point, elementSize, element)); } diff --git a/src/test/java/io/metaloom/quadtree/AbstractQuadTreeTest.java b/src/test/java/io/metaloom/quadtree/AbstractQuadTreeTest.java new file mode 100644 index 0000000..16463c0 --- /dev/null +++ b/src/test/java/io/metaloom/quadtree/AbstractQuadTreeTest.java @@ -0,0 +1,23 @@ +package io.metaloom.quadtree; + +import java.util.Iterator; +import java.util.Vector; +import java.util.stream.Collectors; + +import io.metaloom.quadtree.point.PointNodeElement; + +public abstract class AbstractQuadTreeTest { + + public String concat(Vector> vectorData) { + String ids = "["; + Iterator it = vectorData.stream().map(e -> e.getElement()).collect(Collectors.toList()).iterator(); + while (it.hasNext()) { + ids += it.next(); + if (it.hasNext()) { + ids += ","; + } + } + ids += "]"; + return ids; + } +} diff --git a/src/test/java/io/metaloom/quadtree/gui/QuadTreePanel.java b/src/test/java/io/metaloom/quadtree/QuadTreePanel.java similarity index 91% rename from src/test/java/io/metaloom/quadtree/gui/QuadTreePanel.java rename to src/test/java/io/metaloom/quadtree/QuadTreePanel.java index b134ce3..bb7dbd3 100644 --- a/src/test/java/io/metaloom/quadtree/gui/QuadTreePanel.java +++ b/src/test/java/io/metaloom/quadtree/QuadTreePanel.java @@ -1,4 +1,4 @@ -package io.metaloom.quadtree.gui; +package io.metaloom.quadtree; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; @@ -24,14 +24,14 @@ protected QuadTreePanel() { } - protected void setupGui() { + protected void setupGui(int width, int height) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.addKeyListener(this); f.addMouseListener(this); f.add(this); f.setLocationRelativeTo(null); - f.setSize(700, 700); + f.setSize(width, height); f.setVisible(true); } diff --git a/src/test/java/io/metaloom/quadtree/QuadTreeTest.java b/src/test/java/io/metaloom/quadtree/QuadTreeTest.java deleted file mode 100644 index cb2b3c4..0000000 --- a/src/test/java/io/metaloom/quadtree/QuadTreeTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package io.metaloom.quadtree; - -import static org.junit.Assert.assertEquals; - -import java.util.Vector; - -import org.junit.Test; - -import io.metaloom.quadtree.point.Point; -import io.metaloom.quadtree.point.impl.PointNodeElement; -import io.metaloom.quadtree.point.impl.PointQuadTreeImpl; -import io.metaloom.quadtree.spatial.impl.SpatialQuadTreeImpl; - -/** - * Unit test for simple tree setup. - */ -public class QuadTreeTest { - - @Test - public void testBasics() { - PointQuadTreeImpl tree = new PointQuadTreeImpl<>(Point.of(0, 0), Size.of(600, 600)); - tree.insert(1, 3, "1"); - tree.insert(11, 32, "2"); - tree.insert(11, 52, "3"); - - tree.insert(454, 555, "4"); - tree.insert(353, 555, "5"); - tree.insert(552, 555, "6"); - tree.insert(551, 555, "7"); - - Vector> elements = tree.getElements(Point.of(500, 550)); - - for (NodeElement element : elements) { - System.out.println("[" + element.x() + "-" + element.y() + "] " + element.getElement()); - } - } - - @Test - public void quadTreeBoundsTest() { - SpatialQuadTreeImpl tree = new SpatialQuadTreeImpl<>(Point.of(0, 0), Size.of(600, 600)); - tree.insert(Point.of(11, 3), Size.of(10, 10), "1"); - tree.insert(Point.of(22, 3), Size.of(30, 10), "2"); - tree.insert(Point.of(33, 3), Size.of(40, 10), "3"); - - } - - @Test - public void testEmptyTree() { - SpatialQuadTreeImpl tree = new SpatialQuadTreeImpl<>(Point.of(0, 0), Size.of(600, 600)); - assertEquals(600, tree.getSize().height()); - assertEquals(600, tree.getSize().width()); - } - -} diff --git a/src/test/java/io/metaloom/quadtree/point/PointQuadTreeTest.java b/src/test/java/io/metaloom/quadtree/point/PointQuadTreeTest.java new file mode 100644 index 0000000..c0acba0 --- /dev/null +++ b/src/test/java/io/metaloom/quadtree/point/PointQuadTreeTest.java @@ -0,0 +1,37 @@ +package io.metaloom.quadtree.point; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import io.metaloom.quadtree.AbstractQuadTreeTest; +import io.metaloom.quadtree.Size; +import io.metaloom.quadtree.point.impl.PointQuadTreeImpl; + +/** + * Unit test for simple tree setup. + */ +public class PointQuadTreeTest extends AbstractQuadTreeTest { + + @Test + public void testBasics() { + PointQuadTree tree = new PointQuadTreeImpl<>(Point.of(0, 0), Size.of(600, 600)); + tree.insert(1, 3, "1"); + tree.insert(11, 32, "2"); + + tree.insert(454, 555, "4"); + tree.insert(353, 555, "5"); + tree.insert(552, 555, "6"); + tree.insert(551, 555, "7"); + + Point target = Point.of(500, 550); + assertEquals("[4,5,6,7]", concat(tree.getElements(target))); + + Point target2 = Point.of(0, 0); + assertEquals("[1,2]", concat(tree.getElements(target2))); + + tree.insert(11, 52, "3"); + assertEquals("[1,2,3]", concat(tree.getElements(target2))); + + } +} diff --git a/src/test/java/io/metaloom/quadtree/RenderPointQuadTree.java b/src/test/java/io/metaloom/quadtree/point/RenderPointQuadTree.java similarity index 80% rename from src/test/java/io/metaloom/quadtree/RenderPointQuadTree.java rename to src/test/java/io/metaloom/quadtree/point/RenderPointQuadTree.java index c037418..c012a6a 100644 --- a/src/test/java/io/metaloom/quadtree/RenderPointQuadTree.java +++ b/src/test/java/io/metaloom/quadtree/point/RenderPointQuadTree.java @@ -1,23 +1,27 @@ -package io.metaloom.quadtree; +package io.metaloom.quadtree.point; import java.awt.Color; import java.awt.Graphics; -import io.metaloom.quadtree.point.Point; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.util.Map; import java.util.Vector; -import io.metaloom.quadtree.gui.QuadTreePanel; -import io.metaloom.quadtree.point.impl.PointNode; -import io.metaloom.quadtree.point.impl.PointNodeElement; +import io.metaloom.quadtree.Cell; +import io.metaloom.quadtree.NodeElement; +import io.metaloom.quadtree.QuadTreePanel; +import io.metaloom.quadtree.Size; +import io.metaloom.quadtree.point.Point; +import io.metaloom.quadtree.point.PointNode; +import io.metaloom.quadtree.point.PointNodeElement; +import io.metaloom.quadtree.point.PointQuadTree; import io.metaloom.quadtree.point.impl.PointQuadTreeImpl; public class RenderPointQuadTree extends QuadTreePanel { private static final long serialVersionUID = -2360219811620173423L; - protected PointQuadTreeImpl tree; + protected PointQuadTree tree; protected Vector> selectedElements = new Vector<>(); @@ -27,7 +31,7 @@ public static void main(String[] args) { protected RenderPointQuadTree() { tree = createQuadTree(); - setupGui(); + setupGui(670, 550); } /** @@ -66,10 +70,10 @@ protected void drawCells(PointNode node, Graphics g) { Size bounds = node.getBounds(); Point startCoordinates = node.getStartCoordinates(); // Draw node bounds - g.drawRect(startCoordinates.x(), startCoordinates.y(), bounds.width(), bounds.height()); + g.drawRect((int) startCoordinates.x(), (int) startCoordinates.y(), (int) bounds.width(), (int) bounds.height()); // Draw subnodes - Map> subNodes = node.getSubNodes(); + Map> subNodes = node.getSubNodes(); for (PointNode subNode : subNodes.values()) { drawCells(subNode, g); } @@ -84,7 +88,7 @@ protected void drawCells(PointNode node, Graphics g) { public void drawSelectedElements(Graphics g) { g.setColor(Color.RED); for (NodeElement element : selectedElements) { - g.drawOval(element.x() - 2, element.y() - 2, 4, 4); + g.drawOval((int) element.x() - 2, (int) element.y() - 2, 4, 4); } g.setColor(Color.BLACK); } @@ -97,8 +101,8 @@ public void drawSelectedElements(Graphics g) { public void drawElements(PointNode node, Graphics g) { Vector> elements = node.getElements(); for (PointNodeElement element : elements) { - int x = element.x(); - int y = element.y(); + int x = (int) element.x(); + int y = (int) element.y(); g.drawLine(x, y, x, y); } } @@ -119,8 +123,8 @@ public void mouseClicked(MouseEvent e) { java.awt.Point p = e.getPoint(); // Somehow my mousepoints do not match the coordinates at the window (maybe this is a xorg releated bug) - p.x -= 8; - p.y -= 30; + p.x -= 0; + p.y -= 20; if (e.getButton() == 1) { try { diff --git a/src/test/java/io/metaloom/quadtree/RenderSpatialQuadTree.java b/src/test/java/io/metaloom/quadtree/spatial/RenderSpatialQuadTree.java similarity index 78% rename from src/test/java/io/metaloom/quadtree/RenderSpatialQuadTree.java rename to src/test/java/io/metaloom/quadtree/spatial/RenderSpatialQuadTree.java index 488a76c..927e052 100644 --- a/src/test/java/io/metaloom/quadtree/RenderSpatialQuadTree.java +++ b/src/test/java/io/metaloom/quadtree/spatial/RenderSpatialQuadTree.java @@ -1,4 +1,4 @@ -package io.metaloom.quadtree; +package io.metaloom.quadtree.spatial; import java.awt.Graphics; import java.awt.Image; @@ -8,17 +8,17 @@ import javax.imageio.ImageIO; -import io.metaloom.quadtree.gui.QuadTreePanel; +import io.metaloom.quadtree.Cell; +import io.metaloom.quadtree.QuadTreePanel; +import io.metaloom.quadtree.Size; import io.metaloom.quadtree.point.Point; -import io.metaloom.quadtree.spatial.SpatialNode; -import io.metaloom.quadtree.spatial.SpatialNodeElement; import io.metaloom.quadtree.spatial.impl.SpatialQuadTreeImpl; public class RenderSpatialQuadTree extends QuadTreePanel { private static final long serialVersionUID = -7363155496742737522L; - protected SpatialQuadTreeImpl tree; + protected SpatialQuadTree tree; int untilDepth = 0; @@ -35,7 +35,7 @@ public RenderSpatialQuadTree() { } catch (IOException e) { log.error("Could not load image.", e); } - setupGui(); + setupGui(700, 700); } /** @@ -44,31 +44,31 @@ public RenderSpatialQuadTree() { * @return * @throws IOException */ - protected SpatialQuadTreeImpl createSpatialQuadTree() throws IOException { + protected SpatialQuadTree createSpatialQuadTree() throws IOException { Point startCoordinates = Point.of(100, 100); Size size = Size.of(512, 512); - SpatialQuadTreeImpl tree = new SpatialQuadTreeImpl<>(startCoordinates, size); + SpatialQuadTree tree = new SpatialQuadTreeImpl<>(startCoordinates, size); int elementSize = 32; for (int i = 0; i < 56; i++) { Size dimension = Size.of(elementSize, elementSize); - tree.insert(getRandomImage(elementSize), dimension); + tree.insert(dimension, getRandomImage(elementSize)); } elementSize = 64; for (int i = 0; i < 16; i++) { Size dimension = Size.of(elementSize, elementSize); - tree.insert(getRandomImage(elementSize), dimension); + tree.insert(dimension, getRandomImage(elementSize)); } elementSize = 128; for (int i = 0; i < 3; i++) { Size dimension = Size.of(elementSize, elementSize); - tree.insert(getRandomImage(elementSize), dimension); + tree.insert(dimension, getRandomImage(elementSize)); } elementSize = 256; for (int i = 0; i < 1; i++) { Size dimension = Size.of(elementSize, elementSize); - tree.insert(getRandomImage(elementSize), dimension); + tree.insert(dimension, getRandomImage(elementSize)); } return tree; @@ -101,7 +101,7 @@ protected void drawCells(SpatialNode node, Graphics g) { Size bounds = node.getBounds(); Point startCoordinates = node.getStartCoordinates(); // Draw node bounds - g.drawRect(startCoordinates.x(), startCoordinates.y(), bounds.width(), bounds.height()); + g.drawRect((int) startCoordinates.x(), (int) startCoordinates.y(), (int) bounds.width(), (int) bounds.height()); // Draw subnodes Map> subNodes = node.getSubNodes(); @@ -133,9 +133,8 @@ public void keyReleased(KeyEvent e) { public void drawElements(SpatialNode node, Graphics g) { SpatialNodeElement element = node.getElement(); if (element != null) { - g.drawImage(element.getElement(), element.x(), element.y(), null); + g.drawImage(element.getElement(), (int)element.x(), (int)element.y(), null); } - } } diff --git a/src/test/java/io/metaloom/quadtree/spatial/SpatialQuadTreeTest.java b/src/test/java/io/metaloom/quadtree/spatial/SpatialQuadTreeTest.java new file mode 100644 index 0000000..7e13bb5 --- /dev/null +++ b/src/test/java/io/metaloom/quadtree/spatial/SpatialQuadTreeTest.java @@ -0,0 +1,74 @@ +package io.metaloom.quadtree.spatial; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.util.Map; +import java.util.Map.Entry; + +import org.junit.Test; + +import io.metaloom.quadtree.AbstractQuadTreeTest; +import io.metaloom.quadtree.Cell; +import io.metaloom.quadtree.Size; +import io.metaloom.quadtree.point.Point; +import io.metaloom.quadtree.spatial.impl.SpatialQuadTreeImpl; + +/** + * Unit test for simple tree setup. + */ +public class SpatialQuadTreeTest extends AbstractQuadTreeTest { + + @Test + public void testBasics() { + SpatialQuadTree tree = new SpatialQuadTreeImpl<>(Point.of(0, 0), Size.of(600, 600)); + assertTrue(tree.insert(Point.of(11, 3), Size.of(150, 150), "1")); + assertTrue(tree.insert(Point.of(22, 3), Size.of(150, 150), "2")); + assertTrue(tree.insert(Point.of(33, 3), Size.of(150, 150), "3")); + + SpatialNode root = tree.getRootNode(); + assertNotNull(root); + assertEquals("There should be always 4 sub nodes in a quad tree.", 4, root.getSubNodes().size()); + SpatialNode element = find("2", root.getSubNodes()); + assertNotNull(element); + assertEquals(2, element.getDepth()); + } + + @Test + public void testBasics2() { + SpatialQuadTree tree = new SpatialQuadTreeImpl<>(Point.of(0, 0), Size.of(600, 600), 10, 200); + assertTrue(tree.insert(Size.of(150, 150), "1")); + assertTrue(tree.insert(Size.of(150, 150), "2")); + assertTrue(tree.insert(Size.of(150, 150), "3")); + + SpatialNode root = tree.getRootNode(); + assertNotNull(root); + assertEquals("There should be always 4 sub nodes in a quad tree.", 4, root.getSubNodes().size()); + assertNotNull(find("2", root.getSubNodes())); + } + + private SpatialNode find(String id, Map> subNodes) { + for (Entry> entry : subNodes.entrySet()) { + SpatialNode v = entry.getValue(); + SpatialNodeElement data = v.getElement(); + if (data != null) { + if (id.equalsIgnoreCase(data.getElement())) { + return v; + } + } else { + return find(id, v.getSubNodes()); + } + } + return null; + } + + @Test + public void testEmptyTree() { + SpatialQuadTree tree = new SpatialQuadTreeImpl<>(Point.of(0, 0), Size.of(600, 600)); + assertEquals(600, tree.getSize().height()); + assertEquals(600, tree.getSize().width()); + assertNotNull(tree.getRootNode()); + } + +}