From e14cd563d3cebb44e73a79ca2e8ca35c621a9ed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5vard=20Jakobsen?= Date: Mon, 23 Sep 2019 00:24:52 +0200 Subject: [PATCH 1/2] Added BezierFit --- cadcore/BezierFit.java | 905 ++++++++++++++++++ ...r Fit _ Jim Herold, Computer Scientist.pdf | Bin 0 -> 466948 bytes 2 files changed, 905 insertions(+) create mode 100644 cadcore/BezierFit.java create mode 100644 cadcore/Least Squares Bezier Fit _ Jim Herold, Computer Scientist.pdf diff --git a/cadcore/BezierFit.java b/cadcore/BezierFit.java new file mode 100644 index 0000000..99c54ac --- /dev/null +++ b/cadcore/BezierFit.java @@ -0,0 +1,905 @@ +package cadcore; + +/** + 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 + . + */ +import java.util.ArrayList; +import java.awt.geom.Point2D; + +import org.ujmp.core.Matrix; + +/** + * Class used to fit a bezier curve to a list of points. Imposes 4 constraints + * leaving 4 unknowns which are optimized using simulated annealing. + * + * @author jhero + * + */ + +public class BezierFit { +/* + public static void main(String[] args) { + + ArrayList points = new ArrayList(); + + points.add(new Point2D.Double(0, 0)); + points.add(new Point2D.Double(1, 1)); + points.add(new Point2D.Double(2, 0)); + points.add(new Point2D.Double(3, 2)); + + bestFitTest(points); + + } + + private static void bestFitTest(ArrayList points) { + BezierFit bf = new BezierFit(); + + Point2D[] controlPoints = bf.bestFit(points); + + System.out.print("X:"); + for (Point2D p : points) + System.out.print(p.getX() + ","); + System.out.println(); + + System.out.print("Y:"); + for (Point2D p : points) + System.out.print(p.getY() + ","); + System.out.println(); + + System.out.print("Bx:"); + for (double ti = 0; ti <= 1; ti += 0.01) + System.out.print(bf.pointOnCurve(ti, controlPoints[0], + controlPoints[1], controlPoints[2], controlPoints[3]) + .getX() + + ","); + System.out.println(); + + System.out.print("By:"); + for (double ti = 0; ti <= 1; ti += 0.01) + System.out.print(bf.pointOnCurve(ti, controlPoints[0], + controlPoints[1], controlPoints[2], controlPoints[3]) + .getY() + + ","); + System.out.println(); + + System.out.print("Cx:"); + for (Point2D p : controlPoints) + System.out.print(p.getX() + ","); + System.out.println(); + + System.out.print("Cy:"); + for (Point2D p : controlPoints) + System.out.print(p.getY() + ","); + System.out.println(); + + } +*/ + /** + * Computes the best bezier fit of the supplied points using a simple RSS + * minimization. Returns a list of 4 points, the control points + * + * @param points + * @return + */ + public Point2D[] bestFit(ArrayList points) { + Matrix M = M(); + Matrix Minv; + if (M.det() == 0) + Minv = M.invSPD(); + else + Minv = M.inv(); + Matrix U = U(points); + Matrix UT = U.transpose(); + Matrix X = X(points); + Matrix Y = Y(points); + + Matrix A = UT.mtimes(U); + Matrix B; + if (A.det() == 0) + B = A.invSPD(); + else + B = A.inv(); + Matrix C = Minv.mtimes(B); + Matrix D = C.mtimes(UT); + Matrix E = D.mtimes(X); + Matrix F = D.mtimes(Y); + + Point2D[] P = new Point2D[4]; + for (int i = 0; i < 4; i++) { + double x = E.getAsDouble(i, 0); + double y = F.getAsDouble(i, 0); + + Point2D p = new Point2D.Double(x, y); + P[i] = p; + } + + return P; + } + + private Matrix Y(ArrayList points) { + Matrix Y = Matrix.Factory.fill(0.0, points.size(), 1); + + for (int i = 0; i < points.size(); i++) + Y.setAsDouble(points.get(i).getY(), i, 0); + + return Y; + } + + private Matrix X(ArrayList points) { + Matrix X = Matrix.Factory.fill(0.0, points.size(), 1); + + for (int i = 0; i < points.size(); i++) + X.setAsDouble(points.get(i).getX(), i, 0); + + return X; + } + + private Matrix U(ArrayList points) { + double[] npls = normalizedPathLengths(points); + + Matrix U = Matrix.Factory.fill(0.0, npls.length, 4); + for (int i = 0; i < npls.length; i++) { + U.setAsDouble(Math.pow(npls[i], 3), i, 0); + U.setAsDouble(Math.pow(npls[i], 2), i, 1); + U.setAsDouble(Math.pow(npls[i], 1), i, 2); + U.setAsDouble(Math.pow(npls[i], 0), i, 3); + } + + return U; + } + + private Matrix M() { + Matrix M = Matrix.Factory.fill(0.0, 4, 4); + M.setAsDouble(-1, 0, 0); + M.setAsDouble(3, 0, 1); + M.setAsDouble(-3, 0, 2); + M.setAsDouble(1, 0, 3); + M.setAsDouble(3, 1, 0); + M.setAsDouble(-6, 1, 1); + M.setAsDouble(3, 1, 2); + M.setAsDouble(0, 1, 3); + M.setAsDouble(-3, 2, 0); + M.setAsDouble(3, 2, 1); + M.setAsDouble(0, 2, 2); + M.setAsDouble(0, 2, 3); + M.setAsDouble(1, 3, 0); + M.setAsDouble(0, 3, 1); + M.setAsDouble(0, 3, 2); + M.setAsDouble(0, 3, 3); + return M; + } + + /** + * Computes b(t). + * + * @param t + * @param v1 + * @param v2 + * @param v3 + * @param v4 + * @return + */ +/* private Point2D pointOnCurve(double t, Point2D v1, Point2D v2, Point2D v3, Point2D v4) { + Point2D p; + + double x1 = v1.getX(); + double x2 = v2.getX(); + double x3 = v3.getX(); + double x4 = v4.getX(); + + double y1 = v1.getY(); + double y2 = v2.getY(); + double y3 = v3.getY(); + double y4 = v4.getY(); + + double xt, yt; + + xt = x1 * Math.pow((1 - t), 3) + 3 * x2 * t * Math.pow((1 - t), 2) + 3 + * x3 * Math.pow(t, 2) * (1 - t) + x4 * Math.pow(t, 3); + + yt = y1 * Math.pow((1 - t), 3) + 3 * y2 * t * Math.pow((1 - t), 2) + 3 + * y3 * Math.pow(t, 2) * (1 - t) + y4 * Math.pow(t, 3); + + p = new Point2D.Double(xt, yt); + + return p; + } +*/ + /** + * Computes the percentage of path length at each point. Can directly be + * used as t-indices into the bezier curve. + */ + private double[] normalizedPathLengths(ArrayList points) { + double pathLength[] = new double[points.size()]; + + pathLength[0] = 0; + + for (int i = 1; i < points.size(); i++) { + Point2D p1 = points.get(i); + Point2D p2 = points.get(i - 1); + double distance = Math.sqrt(Math.pow(p1.getX() - p2.getX(), 2) + + Math.pow(p1.getY() - p2.getY(), 2)); + pathLength[i] += pathLength[i - 1] + distance; + } + + double[] zpl = new double[pathLength.length]; + for (int i = 0; i < zpl.length; i++) + zpl[i] = pathLength[i] / pathLength[pathLength.length - 1]; + + return zpl; + } + +} \ No newline at end of file diff --git a/cadcore/Least Squares Bezier Fit _ Jim Herold, Computer Scientist.pdf b/cadcore/Least Squares Bezier Fit _ Jim Herold, Computer Scientist.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8f10b3f2ce7727b2cc4b18ecc5bd12a171790a12 GIT binary patch literal 466948 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 z zIR^LLYxl)2j1;RA76s#@T`xBopO5rX>odQYzbj{fC_{4cU?%5XE;D0AhGMotMT7o( za@#aC*u)%T5uBC3Fz2yt1XF(1$)u0{14dxG`cWnC0vh6AP;pw^P4OZL#=xBH(p8nAT-ec<_f{Nhe9 zJk>9`98Y=w0#31yY5BTGNK^lfQr?4HcgBcONVk!0D-*g3zz83y zV^Q&u;_{}RN^QvDWpUM>&fKxt;^uuY7K=^ps?G4iRv5)iYB`)R0_N?=oHGA)Rm$Rz z4*w?1Ebz^19K1RdMQ7ufa_GVH2RGf0ALD&kl=UfX1mbK^M`cT>TPT!YBgRM=ib9`z(qzlPt6OBd)+M_{k8z)9cy|$+0vq;^L=!x zx{61I%3rGMG^+2S!}idFbQ9!WiJU%B`fiy~Prs~sRzo3d`a#g>vrzWs#sPUl}!B9Vg0;}@&u$vs){Wc+k)px%d zv`?-N_@W}yYZZ$G#HOPv=YLo0VdJ1ZG|L+1_YrINPm%?334_vJ&YK-gWQj%e(KO+6 zeH~rXq4SJIh4bel+v>4?`qREpKmMDnWg;vxqq-DSu!x5V1Jvbm6gT%TqY;d%o4EB?ZV29c ziB&RLiuI0Af3;BBR&_(=iNCehJ$o$ZYOkZgzt?fIjK43nHB{LKkl zkwDjt6UWM!7#M{E*K*Y=Z;WuM)w8yy^$$nKL}65Iuqml@nQz)r(rR8?8*C~*{+;ae zmChYMnx5=v59=X-h3*YpsRM^{rOb@iZ-Q-V9fec0JaBu?Xr* zNOH5{FdvAsj5Hfl;h^dVTtT^p2w$FS3Y81f?q1>7g}?$+Qq5t&1BQ@{n{1ibaAZr3 zNYrKb_Qxb;N2 z^KllJH9HG4iYy72f;>g*7B2N%GYt|9NxI@7KT*q)T+*%S%+kx)l+{@53s%%kG1~-c z(#j)+z6&68oC$yHPkntlxIp!hW(qqS4baueC6d7?XNINj`bkSrSdR}6NG{5`L!+|GpmE5Tm zwl}7N3mK)g*4sp`QQ)y+oq%h_ioP1*a7U6Gi@j@=SxS|RQiMwfwsIT1eVAy9qg%#KOI7%M}OU~h8H1{Lm&_Ku&(zG6xF!je} zYp!vPn#dWz1`jR;MTg%duMnjUH#m%k%mGUnGvG`=ZbUU$cCD7E$VrNMO{+DgHjL6! zFI0^|PXeFiyV8+&0CJCGZD=|iG3^>-#6V6^y2TJO+MFp$VY$`J(*d*Zy;6BL6-v_G z6Lj^*8`I)~vDJUjS}bFn*+5&znGiFVD-;&|LX7k{^FTm z^R9s(8WPorj04_SeVPO=yDkKu{(*?sd(|?-Zcu%U_%SKS*3u*gc1ITl={M%35)Io2 zayk@g3{jtzK8~=ej>Wy(=~8c%6Tp;zpSq61JoFopIwSl8q0e3|NOPr{d!=ST zEB(3Yt#kJLqa1)V%)QA5RUl2HMv{}`!@ch2#qqn|NQQ3^;2mLj>_*=PxO@3!NB_*|4f!O0y~_$p zG&^3S;)~SzNDo4AGC3|+q_g(Dr?cFewL(!pqCmJog##iKyCpT zzrdLo!dlcUqHL7Ip8@Bx7EHmHw-Ki)ya2NqNs$KO62~=> zo&* zZa{b%?14+~2XZ*>jE%Z?Uy!D`hIR|kcBP~xD�mC;|0Ob3371()Avwn%A}N9+pfV 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 L9A}VhC^zyIt6**iw#;`Q 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 D9zZ+L literal 294610 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 E2XHVX4*&oF diff --git a/j3dcore.jar b/j3dcore.jar index 78e5dcc35929a0b53741295a58b2451481810fa5..4d5f1584eb56012bdca6b0f2f642caa54515cd4c 100644 GIT binary patch literal 3057672 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ξl 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�j_U%BEWJN8DCHL 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 wEue%CT?(+LF}7GN_ql zQF{yc1eQZbT8Us604K1LX_%ElldV*mVWrV5s{tKrg{j8MrW36kT509d1y&xd1yb=w zt0CQN70@kKBf8IOOb=L1fMVPfD8|j`b*nkOZ508@xFvmN71K9XEBXb9#fes_$g*0C z7I>CgZN-sRJ24W^aaIR0)9NJVS)Ijv>qt>$brmOC-Nh+Z4{?UoQ=DxbrD(E0rDvuA zA@z6cJ!3acc7#U1m8;Re5LAlEd#xhY^9lR#Em3Jg?XV8xKu&>1VI52@ZdNF|g#yQh zX&w^q1o!R0*y~a40nt4hHAaxf7&w=YVvs5-^=BiDrjO=j>aL&K;)n1h;Uom!%7b z7hTI3vR8T(+eHiAe|Z@5VMg>=@GwL9(BDtE$3%b*PPc|p*cuMZ&=FuFBQYRGV?c}r zZs<7RhEAkz)+AUq2p(b&;sG zE(JvK8nM;7LhP{Cik;SM@uan0JZD`kUb3zcuUprO-LU$^!toHwO;6(mQbzc9K!#v6 zr`8cgcp#kT&>%jN3z+oQn zCs&0P%EFPj8#~ZhG^0EL=zpo@DXHaYspT0)SyDKOF+$HO4JWCsZF4#1!z48yn#c0n zPHMbPs5c%NyyXLFpeX|j^5%7AteeGRL}>0tXzoUcxRqp$7)5T3A~#0FtyF45%rXaf zrr~5o!0# z1vDTPomI(@3Py(=#uK#}Pc*44R9v25mSIG+EY3|(c%s^m@k9|NL;Io&RLolWt8Q={ ze))vocrH|ctVg&l&U^0_Sv0GX*i@# z87fgpjDQJuvTmhB>o%B|yAvYQT{vZMAH=535Sw6@6JjN!OLw&XMm?+tX^{009b@f) zxb!eRW<5%~tjFjT>v7S@dJ>|{b7GnGm{?)G0Pg*wSY^E=&b3|^tF2eWr9hd!%6eT~ z1ElFqK$)(!-V%2LY5HF49kJPZUp#7kAfC1Mh&@1?{?+w<0R`R<236R<813!<9zEk z;}Yw4;|goPag9}HY{WYD2HQ05wk-gM+GaC5(QIKSnH}w9bFv)*XlRmIVW*n&?KE?d zoet2@40D;CX|Axd%$0W7Jj>1oXlR~!iJfm=X*V>lwhI6p+QhuxZff3XJz(B%AE9QQ z_o=B`Mr1QOCnT|pF%x0_fSO!Du}Odp#R)<;2u>jsYN%mgUgF)9Tcc1rnoiWK( z#+bv1n(DtG?q}Q_R>tIjLT~|aPPOx)KChNRuv($TNqP(F2v!eVzn$g)u5m6_DhhIO zzM4@0uegPd-AYx%jUJ3A$6CS@-B{S>oS(T6Kk!d&*nvYEstIQcEy`S6&p)FozJKNc z{Il2}A0NI-V8%F0LBZ(tfdbzF5^iI=1C`hvX&s&$>@wAPAwKKb6r#d|*w?~(0>(I8 zx%nnstxts}Mr{|Wf^vyj-;u%WLg|C`UK0oMT%ZEAmsS=lZ5N07dxYtJQg;V2Dm0RD zdKL31)jodCk+hkSQ1>)DPsm=OGO8-wb$S+6V|q02Ny{~{TjiBdWvCU_o|h^gdm%0S z(i(QCDp$)juC5=b3!pSU-nVo~RD7k_jSAG&Q7z`h*Y#5IlXBG;)K@uJwS->@^-61QOLvNPv*E1)FXvukB0J9Wc$3cVL7VM9wA1cKkJ2H;bMn9 zLVRbBl1270a)Lcto^Owpm)hgxRrYwf!Ja5@wT_Tey2zJ(x;e6pe6)Ozx9)%&qphc zbh)QJwdQQ1?gi#d_x!#I=MjbGOg@3F%C`xK^lZ;u_AKF&H?3gRxaVpPEqiXF=PH6)JTIB6i>PB%(RP;PC2I;W zRUWO*sdi7isZ5lUmjkBCMLCP0b*hO_h1y@V7m#IFQOI6M8TKN;123T>yN24?OX*@f zudq*~P4-E2kG+B(u}=ootf1%Neii<^?UnRT`waThUPV9IX9?3jTV&ejh$i-VqQqV$ z+S?b1GW#Miz`j_FwJ#AB_8I_^U#_U6GbLy4!>z!*v{;`wOU0?PG?4@HP)BzfP@*Cp z)~Yk{@TA)ZbOU2k?woeMR_)O!r71;4dD`mVl3$c2G`)(6Nxy?{t2WXuZyCh8(=4nC zs@-irR%LDrZ2Rdc=qgIF*U>;5ck%73XoS7dor18xXQ24~QCyS@rl8z%4Z%zcQit_z zRVHVXtIUVCG1Bz7t$+b}Bbxgrm0cFe5vXq+3n4ti^Q8-1yvSuC|bU3jnMC3W~gy^6cBF)V`hC z+jmkw`!1Sj-%VBaJpi!2moBsKqg(9z=`MRSZLzn|Lr_mWZf~P!?FZ;(=viO4A4H1+ zOvvq!Xh-v6SO(p{3k;x`ev(o`6<=7yNe7lRAlb z8x#p`rYJ7mCHT?{?_D+8D6*7F)>PNoG&9>kEAuqlsCQ*9M@5UiGxw1jS@m+@Jx#s4 zCNA_lIH*>9@l7^;fsN+`6ej8>o5$5Q(QNg-$Yoc)YZv3ickN=l_^w@y7vHsGFLe~l zziW53Di-hu^3)5X{N|Yq&%5jqO5zUC!k(U=UZOPnWeVG`P;>iL^!Mx3!+wK?;yKEG zlcw50YqH;>W%k>2iv13qW4}vR<9WTkhi)Jj@E)*1;T;tBO6yO|i;fSd~Oi`PZHrqQ{wzjP!(<9V`1s z1U#)O_DsY+^+wpI-hJ+(vx{Myn*S9c!hx(4YAatc)~NyfE9rh<;w4hPLd9bsylw1w zfPa9CmrvW-58!z~A74Z3#dDbDk0hn`8K0=9}>K+o~d-yM2BfnG>rXssk_!ltqF=@l*sK4{Xb?0hYO zUgzf_Ix0{s@f!*NwH-%X(R64*R;8hyY&dpHe#3fNgddlJ}0_J{Nl z|9qSTi%+nH{V7-AQ!etS^aTHW=FsO!)SGMHo5Ol@SZ{iQ^ZJ6n|0TbDl|Wx7&^P>* z`}s#3$iQpzLG&_N5c(=R};)|1}Yk3$p!X`l_-ev@Tm?{P*qYsejX(Pa@Yvj* zZ|b?8^*hgEnli9=Kugbuw&^S=)*AFv3XAcXgBz)ZrDw|#xZLmvOyR+<^XOS~7A%MP zYzuZgKk#8 zBK>B;Z1bFfHOrSSTfRtjY@{)~hSXi?w&bBKN(18!jAOu}CCg6I-2ywa@EEdq9-D%m z>-lABSWoTrK)&*PU^nm6-ar5rRz>v^;Cmmq_v>TAxnv#%GodNHjG5dfG%w2&5saL}?Q1iLz+ z5YF-9Ers81=iKYT9eM>(rj=8Xfk;CJBAwqd_$`wbIif)bR(QgPHsVZY!cxy+*ku+u zoImhSLL!f=)r=d!g_&HqaBk(Sg?(x&moLJc5CG6j^UA6ltv$dXLZYE4KJXhR8vS{*&5c8%iD()U%|!DM?&9M5U(DBFr8&k2Hkuc6 z0WXCKh}f_$jws@gl_AlBP6+{=q9qt~NEFi|pB_BY)T4sC{BpWJ1l#^4AyEno-?4d? z)$@V<<;z8zdfqVCeIXa@R631qjjya1p*+g$vS*$-J-RbGpf}ovL_2{eEO`GRJI#)s z`(cl{qv*sxoiX_}X`|B!)YEZXz2q-E_vI!|kA zb%mJ?&sJD|gOlTT30y~G>Blz-8bk3ZO0Zq30VHvm4exeI@n&)mlAu*P$01@qR5*k) zxh9|@6Jb*&Ox@wvgBsz04rg5BX580R^0CR@=kbZ%_)B#?O}-vNW$%hC<@ zo$6*7!o7^$aNo&CDe_>L&8d|Z*TVv?8|sno)dLE>h9&rf!%@T@jsgo*e@B!8FG?Zm z7^xmy;mzb#39jtTI4X-A8u2|_)d+ZSF`_-V9?C~0MJ9d}-$T_!#bKjXP&sD%aeNO| zAC%SPjT>ayc#~jjKdjPss>&1jBiO%*DM+-BDv9#)zw9UTeRNq=EdSenEZ+xPZ%!_@ z5TM+?G#5s{^RWHECCRnW!8zRQN+s@8mM7y(y`}7R^X4Av#?%v2R2;u|+gV59PS#QU zVyP&~rK4~^>nMJiRFrJqz}o-5GQ`qkQfAX_)NCs?f7ly{5(cPY8xkX#fD3EVa15Fe z7&N1RgLVvT#*T*eY#eOmj)%>N3Dh16mab5{^aN_`1e%7l)1fk-0qc|VprET17R`sW zx;TwPUp&# z={(r9Jzwsm)$&6+5x1f*l3&rqxaqtG##b(*WhmuDN~%NQptE1@(D68Pmb{mqY*q*1 z8n*-33us!1=Ki5rb)tZcTLpsn$N>lNUV@j6Iug1VX15hDvsPlCEEy`tuMWT>l+|0! zAYkq#zNK3o>|1ow(tU`)6H!2 zBo(nqB6EaMW`!*_o|4rjY;7kK#|#q3tg^7J@lSTaj}*d&#?Q<-a<#Tfw>gz zt3sKl1Vdpf1)Ti#-@b5XG?jXxc(u0lnih0oaZr;I!N7(fUyAdL8butYxvfUWj zZj6Xqv7&O`V{kZ*114}&uBl%6d;{EK0l0u4UYToF@a{A=sjG2_AU8or1(QG&+x?8k zKs{$=uI+OL*Uw`Hp3{w@yj?$!8F)@NN_H*1k*f+^!66Q=c=ZT=+vPr9#x9%pGGRWi zlJQhQ7olp(#r3OKHTDEEQ#Io+1e)G;1}mn${I++U!Fp*gzwKRTq*|Rd1vndB<2VH{ zpU8C6i0Ol}5ei`A?G#{zylcE~NfbjAjc5=U$a*lutHBVj0Ykiw3Spk3DR!)y!LC6O z?(eq;+bqLcs0ZB&?e}fiFufBZ&|P4ecjE}zy(=|Ac5myTsA-q*y>tiF4^`Q46Dl zx6`xYE_zNpK+lVv^nxsfq3^CR^gWo~kW=U%ayGpw7sG1FrSz7(pWc?c={+#g_hB;P z10#X<7&*AA+8lSE%jjd6Ciuh{OrILZ(r362{kd@`eP!H3UmM%$8(eAq)_9J-H(tOM z_}A!1V-MYDe2S~BU&6>RGveu#Rfk5=927_zraD%fl!1psD^inFl>MxeVJ!>$%)izN zfcq+Div!QJg3m|cEIzPB_tM}xI-hMvfJ3V=NM?n&s33rOaEfNf{2AuhYAeyX3ok;= zTk4_~`~|O=-KZrH7CHB%l9o(%Q39uiLruV;YWwjiN= zNe~SX8S8R4NgI@k1!F!p!Z5=Orw|Zt_1E%|tRaOk2?jG)2Et=DYCySd3Qh;Slw?51eTyBF5;qqik?P8g-R=nj(qq|rd^;#kzjUsM98r3c(jp8+0 z_^ju_)r^)#>v^cEMoXh!9FM)Kv#r>8b7$~s^*tTN6BU`yZ>WP3@wf;hHio}ZxTmPvS^9Z zDaAl6E~OmNni_%+!W1~nS$CjTq9Y&+I?*)I8K|jUV9vZdeJOg-ccLf#DtZY=90lcQ zZ_!-zfw9)UK*j5iw*kOG8z`oULE;55Lc9srhvFDm1)L0XctdtO83s3y{CSmKWy% zm3KAT`2tnfM$FfnqYAxY_y?R>Rpwl^q2Jd5-xgQ^T;LXLrdzPiNy-cn5f@rj>NxI8tI5gcwt{=o4wiulCOD7!p8k`WxaA+HLN zx2oJ!?HR6&yy2V{p9n?wWLHMsTxnK|hY(#ymbj9l$3m3cSXs{JOBKPoU#o&;ju5gm zJrxN26_*F&;ILFT%;OerST={j0;Ng^xzgT$U^?#g z1AQ+xEM7YJ)%%{8&I@zX)ygJ%HWc6S=E!aGidY*qS-?X%uD&rdwE%vR;zt#R#mL*VoHH zLhXx*;650-+>FzkTX7118yNHh)KWYIcDRGOU;!{lJW7**DpU#W$}+JF*s)Jx%k62L z0DcA*&7Y-*#NV-ic!A!8=H(0V5+=!)g)LqMvd8OUyx1*finm0ycpKXx?}*FAyRc>c zo_J2YFFq9?NK@>QO~gNC5AmU#C_aKU^N(TA^AmZy_zc(`pUa2D7e-6*ozYo*Z}b;G z7!$<5jA`OWV}ba|SS@}w?hwDg>djtbkJx8?Cw@0c>^IXyo!L+dv#pe7XK9#6Nz?E?8oL~emh6?Y+5nvu9DuRv?3D1ZP=LkA`akZyW!ngVJ_~Wl)Ip8I#6U`!J z)LDB)46J+9*;8GLJlwP3{Y!T){aGuZXlqN482uM@)D}Y_T*+r{)eG1spR&X|IJy6( z2R`(Y2;xz{s6@Y3c${31i*i2r9L>oSTOvm%E+bEbT2Ten=i`aFmK)~c3i5RBnH28} zQ{uy9K24DgX^t$Q(_|scY&N1TvI%kDVlB6iw(x1*3q38IvkHv>BWe~-=jULS_iZYx zIX;}j1{?BA!#P;e!#G1uN2NqdT$KYA*hd_CJ(O*zTDx_Ov>47o0Irw%YB-hNyo(dE zX=QVRp9LIiv?HR3Q`tikCuea8M2HcPba^qRn;il~GCY{;`yMIK^d?v3rsSru{E+6x zFHggTZ8vJU>*@0oFO!Hz+)Tpd8Ga^s*ExIa)GtZIBW@rm8vHkOF^id+*8H~^S_5iWd|Hd4nv5!#s7pH_v4wN_FgX)qOgcyn;oJruwJ{=` zyD(Na*vis*p)Dc}=7g&W|esFjMG)p8kIFpALh z1`R$8v0inL+fAO+6A-l9mk&IrFCJ(QUpnxdZoeT@y>7UUuE|wzo@j8cD;gjHrceip z%S6}(a;mYxk;}U*{v4`v^vK_JfgAaPf%fu9+jY4Sl&|*k$kuha5g-=qcPR=1EERO+ zhR~5bp+LJlnZV7!-IdZ3!QW6DPS5qNR~z<>kqF%U`BQ3WL~5hGcxMJ7UZsMy(GhrG zhKGvliqxjP<}fT2Fy{3qEaw?1+Ps0LvIu_A0MTMLV z6Z`Xkeo`qOmGi~3aslLoW2FI0-i_r#*;Ou*$H>L-sg`HTC9w2;oZKvH7dH~e(e8iR=#7k*ft_d((~N+$x!@F^=0MDwnw*e5>mVKGfm zcUwOdh&+vUln{sZ2KRvBPWvh`YX(38IjCH$bA!={&tNFxQ%Ul~({$HkA-5y?P1wM2 z6h*%k7ShNv2k(JH$#23`fD3yz%5UvMIU~eTZ;%8gh^%Eu!|cy7HCJ6 znM6oTICL!3j)h4h5v%kZjKr@3!}%7VW84M|=i4zF?+_ErJH-t1F0sVC2Pd1maf-P| z+yE%@uL6qvTjoRJ6>~4p@*f3m^JDChXl^Su=UrR|;3DWVdL?Ll8&!^@NMj)~6RGk! zERjO;4(pre?qQA7pk$zI8C*f(V(G7bc_5UO>YOCe6iM<){djbuIg%uk{xj5JGpL9{ z6GV^>vF6YsXB0UQL9SL3$mv15aLEe!<1kB3ouRF*(}!)D4CRcrp>ulMXlJwzot3b0 zUrurxHQ*3On9rb%o<$oyhc^1Y7;8R{=WTu<7MU-IW#*4Wh52K=cJPw8#r&nX+x(T- zW4?@b`ZZozeMS7){Ed-mzKWL&egwGpKNt(lKdLr^3@QUUC|Sm);Nr z(m&duIWNPLbXtb@cZ^8t%A9@>@_%4iXA=^7zQVFzz@yGXc8Ln~MoQHI7sf>`u8uF< zB?y1b83jScGRPtoWU(JaPbo|MDTU`7S_Y^fk^wQEY5o({@|MWKSfT~EK6EN zfOQ@Xl+ZDN?H(&8SmSUjYdrEhK^$gH^oNxRIJ_z3fmZ-gK(zqgt%v~`N*KgF#STHE z!67ROOcz6HIe|ejnvUQv2GRO(UbYmKsgB%<49dKNtH5J!2jmlhMFC@g zML}Ru$f#gZNVH7_0Ghj%pYQ+z3>o|=H*{oup3L&|KC@lq;+{Hy=LiX1&Oa)zRPawJ zs8r&sQZd9{ND>JwSq_2Q{i0lbSE%m_^ z;&fG5v(ci50rzz-T67+8U+0SwYXNXy7otV+Dv-4l0PM>|8BQ)6tQDfwIud~EW#THU zLfmXsirWD6eTP*eeqhxC;du>CH0#7$ctmZCb&N5|YBUb9*5g^xV}a=0Y?NCYjYjKu zqYWa9A%J|JZf!Eov`$t%W{buUJ&UlC7|@@W;tNt-nV9R98Q>E8FuQ8ClhBKrX)!1e zKzTS;j7W}yv4rlbOJ1eBBqnW_oL*d)+9e6S%Pz@Zc1ixSOA?9~l}J~=3wErg7i}o$ zD5a)X$eK&#^yyo{o7E=0NTPwUl4l3wAGfGz=>4Wtl!3NZsUd@!ZK%7W)~RT)el*w+ z8f+UHY&#lk2O4ZA8tgPQ*qLIvb(UCdoh^<99CxR6p4b6M?$ZFreV%opxY)W#eAfE7 zxCXG?oB@l3Mex?uJ|{)3qSpO-zXC_)YV2ZI$9Zqn*oU0|cVjmg%>dukmG)5vF#%cw z|K-Ir1tY#fnS$Y7nO%$x9(<_L1`20A+VE4!?_lV9#W~6sMu{4`%AYb|@G6hW;E!H1 zk&nth{_AmnNjUDaitr!VkgkL9gI2mC!VkrxbalW^e{5|9Z&?xH9XKF}@(waESR{Cd zZvoz+yM2Urs7ExcE728k++$sfu6P}~;up~suSZwB0bTJ%bj2@&cYFoBV;8#PEqJuy zR?%gB4cO7Q0r>xR@Q^zI`hTZ*-ns|8<6eOO-v@1nJ;pfeL1UWrka4*6bz`3OsIdXS z-6vX47$;dz8r{}+j6v%u<1FiG<8kYIcsS!Z<5d8D{}X`U??UwXJ~SuTt@{)|F%-P5 z<|n#m!--3C%`HI5QDzf}ChCd&BE`?O39b_ikz_9zC|5vtMGY6@b?}vJ442UMbNzqi?h%N6xm7&4iFbLrc%c@XEMk@gPF{k zj(vZ?{S?}6(kyf`1&-FQ(UV?5Px>u-((mwO#A{-V^(P>Ezb+O6jl9}=18bhY0s8$- zaiR4O@hR&q@o6BD-wl+4hpqR;Q`QIKht@vvjtx8x+cJRGVPxAeqtK2UMfM2QBbqhf z@fnfXA(&ngbH{+l47$P>6c-HV4Ze4!)oD2KkVS@0=u%feWl67c_?R(QIlU=OuO6M? z#=&3Z6!@#0LUswguK9no!1>Tl0UoJ3g~xq@zr5jhfxo=rx4*!`f+Jv%_zV|V_~ruZ zfXkaB6KqbgD3zpQNV>{k=Bf$|N>?4sTv@@4DvWTZv!JUg>|&h8j|NKbIN&yq2O9bW zprMxl4Sgb@f2WA~_EfRlo+j4V)5VGQ3?QM;0&wpylRbnigVHO4lQLGTH^U zE`B;{k`^p#kFA{wJ4)SY)3EKP1_>6RP=92T!7;jEv8gzq*CU5<@nj!|s@{mIJ^@vI zA^?$FfJc5ZK<8VznWRTricS#pRx?D%CI5#&A(g`^64ZA@P{j%m7~7*I2;K1Aj9T zYB1<3qaN^CN_#ZiLzX~dR81xvuGDOS;d z^wNQV+Dm~ScL9={rJ4l^hL(P~gqe-EODmcB-Z&zW;`F4jw2X#TW`@;?7W#=6MiUJ! z{eTH`QliQl@fAiB4K1T#=?NNLT9*oo6dxZR9hDpIMe5*Q36%)%E!D%a=%ZTJL@VrL zs}&U2S52dfX}}G z;Pa~ie145sU|%a1+t&e1{6?|PzDb;J-z+Y*zbx*ycZqM>Ulp(0x8lmx*Nmz5?MA76 zhjFrfmoWsb^K0yTja%&djJxgojXm~m;|Y6@@wEMb@nicz<5l}1)!{vc^+-{ zA|Sf*jl-4L z#67@ge-z=rWozM568<{)la^9Lm<0UwQOh;{`W50!x|*?WjgjM;pQJ_ye&c|Pnq-c_Q>hgR1nR_!tho%V>;b&BCohZ-CWk5$ncg0=a4o~+o0DC+19 zvnY_VZ}XGTqr|v}qeQ7{f@{q7dA%OQp)okR($3+y4~*f_m9_|vt^%Vzy2A8;XeBIV zD@JxuQeTCH);uf1^vu41!O2BW!bEXt!bExLEXJm^NB&r3t5|6f#G%s;;?Slb4sB9# zFr115_W-~e7z6*54yVfM)($A|!lkz~rV>=HO2E>g_Sq8Oyd03oTTpB8$x;Mb^9c_; zV1!G!`PcUaqNVdQsAGVlfVxmn2tfXr>ICfk)sbe`=TWNJrzM)5U&TOPn~w(%oMLyF z9-vrTZ7OT~rC1Esh9}bPe~D4{+oIThR~!o6!ddqFK->mTaSR}Co4{0cfVk}ff?kRS zCnh#J5G*=z(c@%_0mlyU#PdL+zr=97>pPU({=gc%` zJBOKbojK-wXRf)-nTIo@1!j%2&}?uPna4Ye%?@XY+2@p+L(WojyR+Op!#Tn{%Q;H1 z&ADPko|_NF_a$JI`2XL+eP3J%o@n8;Mg4!{zlHO@s8G(^;jGvs^%|iL3Vi+;pH#8t zM|B;*B!fP^U-RtK`xiqHX=gk*^;{K%h9fj(yc&qt!_07Sqq2jZbX3Qwg zQ0)zA3i{r%^#Qu$Id2Z=h@2bD7{17Nm3SY$v^c}>t$wc! z&B4(3EyA%Mn!~~G+k~S(H0$9HX(Y!EZPoa9cNynst5#))fm>T(UnMeUVcK1@%it67 zACVKFj2t7oj6;i17fgpKBH}tm?9F1GA!Z(iA8gDj8Zd|;YVoX6GiAK|!|s*oD55z< z9Grq1bM34IFJu%rYso5#_d*Mm4&)0A!(ZRnq2;Yu2x^N0-#x)4l*AV6H0@sKyN5zU z9lnqy#i7FJ=3-goKtp+H&aC1b)e-V$6*;>_oqCd@p4~yT>Fxk-qMtPwo9I`iiGHQ{ zNCx>xCc0SWfxDQ0WoK!CG)4w&E~7lm(4evubBUKc9|bIU$vxjt2M&;nw8_+VU2X|v`U;-YpQdPHPgA* zI^4NW@vMvSB7n>Dt6Xm%^rSXfn|o;*g>Ig)caz2z|#0Az@_AAW0#FvzE3>p ztHS9ZSO7vG0p2&HHd6a=&wBV6ajdiwit;*A^`-#$yn$;~U(w7kwiwJ1TW2RDTr;XC z1-NE3?#e37$tumuD$TbR72=i4e9=%^Y%LmREgDlWhOY`dGqYff*6P{|&95;~`>MLi zzRO+&O$&m5g6Emn@RO?G1-`YuR8yMgTNnD)`bJG@pvPO3 z)8UUid<9IdD9^Vnz*orFit>HiLVW47Y(J%EX6gX(BxmXX@##!Sqzmb078ZOI zHBK!kKj`akaq-s%S-2%B%}vFB)Yn8e1@yWtni3=;rVEf+P(GT&@T$!@00D zp0ErjKwOoA)Jb0hX~nH6%$GQijW2*-cc^8Osx6wGmB zpz*b!pa@6bGYiJeyUXCEAg%ay9IoRF=TSUS@ED#bcmhupd=pO;d`FCPo)RU_Gh(vy zES@O%E~dNhV_E$?9}BWY3C<+z3HdoPk3@*uJbEn z1D+f>4bKfc=KL1Z((lb|JTb`8(%*^EKxK^L5uS-*utm?OIm1>sn{H(mL0TSs!yVtdF~K z>r&UVKIe|Gu5z=i>)l-IW;f6Jnmf|E)6KW;af__S++yn~JS{NK9cM3e$J^!Z1bYLX z7wE$C0_VDu?JL|v>@T@f?61J>Huq5bZg-l!+nsJdkU26Z!`M&+Wd!%E!M>*0h7m$7!Ul-%la|Oj>w4M!7 z^O1j;*$lidfIr;a+6VY7-xmdk;lG3@OmRHcnIwvJWJn zk>fT&z_wnDb~lLQ+-4vwA1AtD9&k@!2gG3=Uc=;?>^&Ts6Y`p6;_HmqB`Uc(Z90+U z@MT)7bfppnV(}uSp)pbv8V^v8yVAWJ2e8)nihNY;SQmi(=txW4Jphz{03Gx}vEF?M zkmg#(jo$aJI2OV04ll4KkfvqI;f?zQ%5{%Q>)vFf>D6yMc>2qQLhx@aJPeC8J&=qr zExrK`9tWh(8Qk-nNpcp+*%_i(oRfiTx*)~kTz-KRi}U!U$ocMyyPo{l4fntPsSI8u zmg2%VluyryiHrFAagtBO#KrvmB*`UlsFGs4_USmHIm0dc!jCUNCc%%2#b?|{!l&mlG4=3Oar+1KNr_TMqG*GsKnRsyOm-HNUQr;@UVuT*nY!B)MLS8>F}quzXc( z8*6Io>o7r90+z3$w`X9mrDt$`OV?04K;hcjPaf)k+i_|#GK5!Nzpk#brf%h?^7><8 zUqgFrKC?sn#)3MWM>W0yk7+8{|@|k z7|i1+l5mJ*nu>y$0+buzOe%2JG?2dlI`Mx7$?LETwi-`TrLnzyC{| z-6-DnfiP|N-jgTuA?AlD%fWEc;|5)0xE|xfb|%BGgNp#|d>|6*>Hsh~h%^{(8&e|v z(8P{YvaV0#c@-(X1jY(D*$`EHQ{P~3U;CzkzAf$j;E`29qABeOkm9wyT|4PFC{wzR z2y%3OY62}M_X75`{J)7lfWItAjawDL5G((i$ivc2M{QjT*k<5HZ|EG{Qrp|QRf9Mu zoAv|goT;!n2M*(09HRE7)D&QL%S5>+RtO;49!YYP0RHaH0_enFCix1rqdeS3-Ohb5f@CA~v~1D$Q{CB2(V`nps8K#8vC>g{Q7IhlyB9~tI! zej8?dbjbjLml&~;)EajV47LM!*=p|xV0M8Ta&tO+=dA5V??W53w{$Q2FK|-FPOJHk zVNo%+5BBPAV2FGlwmjN7kTG3J$@v9a?_=(}dQc!eR+2)IW2emuQJ~@R!>%wx{Bl%B z>xaK`q59>(N5h#4ucTyIKP2%XSUL{;L$Si?t=K@Gz9u7I?Lm#~qi_j`S%?kXk6sy#4 z4Ns$BK3dfJziaSItX$mPRKNB9?^^%&82r+Iga3=yNMUXg>y-O?;BL~qo;w%(HVZs( zqkcE~zk&Vn%6x)2(f{3~eoqoD>KDTrze2Q%Hk8K{?P9ZE17C*71ULLdhdwtJE!?E3 z6Fo`AZl3VoCo+^mcU*mELL5Rn4|4D#J70`|M06^)VS7amw)DAqdAr5Pal1u+UI9Le zphf~L$WgmR(FHif+jqU*s8%9DjRyP{n*LvC>VE@d^c`^$9_!u=&7uytdjjgUCiZM6 zXo(0Ipw6=McZ5Opnvd-j#Yl4W(pAAnjj?ofz8F&)w-)6V*FY%`M?{{zD9c)uUEp1f z`=X2R9`*RF(vqywN%}x3tF$nyv?!}|bXMtDYf(-?&Me%U`_-(1oOw%+F0MgU6d#QZ z_f~$!_=%d}cbwm-3I3oWATiDt<53Zp7mZf|6oKS;d{GHMGZcZjq-YX9GZle(Qc)g1 zW#FDylpmTAeQADCp>iUjxv;1xbf;vxsAzQPPV?xZvC1n6&10D{wh(02BQD563zQU$ zxJryF$b!0+y(oKjaSbZTUgYii;Mdlotn8xkKtF0NT?CAt_}0=TMfv<$nq5?)td|!R z(!3(OXp%A?H4_ztlk6hAuXzZ*`2gc+d{4zU4(f}>;(JGy2TMjkEl0#0S412HW{aii;W$4-(aWsl5rYV7N?6Rj5EXw#+l+b z##!P`<7`M_&oM?C=K?A10=!x9F}xShYb-P_HI^Em1%}$?z)t&|vC8;7@Y1d{jxnwU zoc?u2i}6Kci*dbis&NBm?HdvLYsROH+l;G>+l?<9_rY|(agVXvc+l8mJYhUwJcX|p zjE4X-v)A}DY~D1!3I6&mbENUCIokNHIm7s#Sz)|xUSj;i{G9Pm^Gf3_^G4%s^Q*?c z&952nn0FiR0%+zv^I_nsfCrc{k+DzA604;+MT)Ibbb+GM@Q1XzL=Voh18~jpFnG-aW?d`rZi_OJ4iC!?aC79%~P7Q z=vRADC8w#&+<#n%^**trXm<9aXnN;4KO}J<+ z)nrkXwA7p#qs76fJ2l5kbAkf4B!!0o8|D0t$;43aVu609&COe zOtC1Do^(+P{eg_@4{5C^wsBVrFNA}}6pcfZlr2;2plLSDD0YzNiOk=m72}k4Z{QBe z?IZ-JzsaSsaaW6NFu-y$FQ691z*$FA{}6mNhy(`(lU5K3Ph0Q8g^W1Pd8Ljb2sIwj zz~?x`h>$ujDlLZ8PP;f+L0x^{CF4StjN22?MgdYrhPhhgnMdPtbS*AM*NLg-TA*$m z1JsQM-1A>2s?3d|!8}2%H%}DDnr%Sa*eZGe$lGuB0rk9JoNo>Q;d~GkyHng~o+fTK z&j234nYeF$ws_DyM?7Yp3-pci#Ea%90N{JE_@#M?_^o-l>U+2xyAKP$m>QT+2Oh#P z8rYWqzYy=?3iNworj;=#;~jLy60r@-Jl#DfVP-MWZt7~nVTq-z!nQT96pncn{BKY9 zKNEuXH2*l}GOx3R*umv3QlMV4DNak4jDO+XFTVQ}`U?Lh!b94=rN5=8b<4{B-l4t} z@%ZIZtciT1{fefuTCx2dY;R~EY{AQUZCYH|r=GM*6>7O{ z@YK2mlEQ5*U7c+RwWhbNy}GNVqpYWmGL*(GEq&O&mrSdv@x@vRX-Vj=g?N4NUe?uR zh!yFAo`}~#JeG*35!=%CmHjP!Th_J=Zo%$&>4&729tGpaGh)36Ji^aMV{iW;3!h0d zBoUO|8RCco<}Iy=X;~}%kgTP}5XqTTIqShoWf|(_#5zPAE&#b7VQ? zkzt_)SZO={ik7~XlRLXQ@xWT=AOu<12^(Va0mfI*Njw2eZ7I(30GEA^C(ae;8De^B zxCT^Ve`hPIwXC(ZePAH+?3WkG+~HE3ubzQo`WJeDr#;UDusLLC*m!$@mOhr=+;l17;rH7%NCEhGHzqVIa_3 z!K#`-zgp^2qn|ia@6YWgrTK;^N{u{d?}L0UEt>HK`*}7?36_)dyD-_fDA~9ef}-K_ zrG=l#e$gOG+IgfnieD8THW=k3_=3!WWTgk01-@4C3+I6laP^10Wky<$PmCG;Ojppw z(4VKJ=4yX_F+?EX)sOKRVoLg;O%146klQ&>+qn&63Jem$$>AQhs+qe4$B#UO2_$q= zhZD7_LM2Jx_Air*cMeqac9Xw?+l;`IiLG0!d;2SPwo>kyqq9`sAMt|36I~g69I{5_ z*6nNQhjo(AAK-W)Ig-R8X>e8k1@3QG0Z>^ zc@_2LV$FHLrNAOM^HJF0PE#&^2*>X{Cam2eOG}rSE48%8f&pkX5GEdr>(d)C+n65^HAUt#5ip6a2ptP*oTpN zDwaP($n~}$uj42h#enwn`Wo_zC7HN_wWE?7)0{U}B{%NTG4}PMV2pD;b3UOtuS8i- ze026V#H6d}fNO8cVY2TqHmBq)h=s=H9EBh4bcpXX#>U$kV{>+d4pS15O;uqMPKWwV zi83xi?F04*Wjq6Ia5mcITxbzofNu3Ml=0&bdtNLyL1keppn`UY&jS_aT6|rv$_(hS z{KBHqMWaz-EwW{=sPWsVWVmwstpUm3G_5JZzM%WqUC6`T$iuxVZuCtyJy@e(opVu{ ztj>ZNW5!||Nd+&qt1`@BTv)(>>fZhV;@SrrFjYVJLFQ^^O0JATA&pTY-zbje3T*ly zay2U@SH@<<)q#K%O6xIrkhz+jnk%#yq(}LX9C4iZb%iP8AaZqBYOcP6xSm2lOg0}a zS94Nx^)tlubL8rm(OhBrI*42yo{}qb8i2v3BOnF#x~>jKIW3eHy`O^YxzJh~vs=uI z)UxVF*dxcxBSn_Uad1)9s@kbukVvQPvZ|rUcmmU zbD*-be-I0MJ}t_}E!%lo*)qtzReM`gFHWh|yO#&MgX7{S2s4a^hjvm+9iNh?xkTO4pc(7_~2uGVnWanYOBVbbkP1<1=4aacEl!n>ote)RiNqs#JOQvRz$B-TtQ6L+{ zI*1ceSy^<6>Omy>Q&0R%{M-X@I|Bbw{7Q|L zp7;|Ua}jATtE#PBz#BcB2qJ>l#b2a&!xMkSfyamJGyf+3?uj==vlRdE@K)hl9!?nF z_He}bjt3aj_dM}FjUSM7h%Fvwaul#roZ?}m8=hf8Tivic!!{hrSF-UQv>|3zwDcT0 zSW?~D(^k^mGT6EW2k<3ZS_ZZp-M+J=v!^67tPYb#hKHB6Gd)B$!Vpu_1slV(2=-A2 zv!j}w+C*Q;SH-&-j!O&o5*POEc{+6A!P&z>?8l(8u_XrOQtSxx( zn`AVq(-?y$FvjBTZe#qgEgKz*o-u(n)Gc~Eql9Fl_~}R3_2I2Zb%RR7bR7nzr=!Zr9o{W6~QskQ<+CNhL+C3H5HUIVh$Jx<$uTtw7K$BLVEYD>k%=3v|VjU zYCaMb7_>~Pu%M@RuygaygujX{Ej=CF(%TTwVX8X#{kiAQVQO|7Za?1`ojHeLmQi=C zCm={@fs)gBKZk?;L#=~D{p~t~9K8^q_G4VkpLSe&&80P3grn#c#CEg=1Qu&5LS3=c zD z9NJskcf$YZ^i=q4I@mn2ovVghQ}6oiz5QKnutR_}d6e%ReXIRcj3aoN5UQ#s+8~G& zD<+gSZ3SCL7|J7(8i&j@y(yzQ%34N89-x=2YN6~8QV8k0Tl%+_`I5&Z zVW8RFipbMOU{Z^r4YHv2$$7z_Ns&zFKtpdY>elIQ@9#hhWT;=wF5Ru|?R`xv(Zx{x z33kQ4%D$g|mXPcR>815U49ovQE{c5Ui3bu@&6%)3Nh@?PJB6N*k%_5XI?WUG+tT+D z{(O~|1gB7SUbSp`dV2;@`?I6Xvlv5k4buxhBroRPTmMj4&~`D37|HxJ^mLq!H8lvz;P90^fzF=V`um5LMmI3s7y zIQ~zB*D|xEP+eID|0hD;r}GfKUKY~=8YbtejFsc-q#(P-5E7@h#cl}wG9a3ZKPk@R z&u-jH*nB0#SPkv=IV(=yBgzL<&*Y69OgTq2+m(qRkZ>bgHXzbSSl0Zr94rKkZW*1xDJmv)&nf| z7)a+EAYgBVxS|PCjdk#~9$KEqVgb8RoP*}L7*%{JD*1D$zw6<03&h>`L*ugrsmvC! z_r+`}PR3Q!`BJq0TjW*Za2(nLP_&xN=d9Y{$mbquhXB}n`K{H1Oi?z@cUYXOR7C|f zXF&E|yi1h8CFe<1v8?vmnNa)~jcOW0_pw?goaj%TkfELeEzqqvSm=VFtQ#`nUX@9t zGn!ZHusQS7z7uIvID6boBr)!OT!jSK{RDiM04r|BObhW(+$C1<*@OGUBxrEX=kM5g z@G+T9Joyn|7p)j~4Ly&Aaw=W>+z6W zPe-AiX{slIup;HRDW@)rt$el~1a(9L6h^;!521uenxKbYw>ti9K`&puJC>MBR61t>=kpH z?LA`N{m@(l=ppOTZaZS^HG*&14Of?*%F}K!f5QdlzFqrXVw)^T)T2J#z;pGG;Z4RZ z;5q2<6}WA?64Jo6Ft7LD%l7LpKkGe+ci+RKue$!a!fek#w`0ePGl7NRSBny?MT_A%q~HsSuNK}tV#$4?^eVg)wpT2Lkat-vZ_zF%eCH7)D-zk) z2T0!lqk9}hcnYKN8FbX|imBpzIKcQx&{4@%xij{wxXw?L%;iYu29Yrn@t57roR?Fn z{K!NCTL1ai=x48>pZx}0^>;|@H7K(GNktB+dlur>YHwuOXQKJov*ymQZRE9b%`6~^ z8h6cl;fB5Nr1qqZoI&T!tbAa>3*Weyn!_TE+`_&g1&V=q$A_S z+vwl_LL0rS($1sqb(R#TzE9<&e!l6gvck7mnUywlXl7+Tipid|SFBX%mNh^SB#VsQ zCyu^P)ba~wDQnc5>^MoWaVu8~^_dx^RgXDH8n{ql*idwJ#58aob_jLkAi&b7^EXW4 z>;Kcj8zb;OcMjg?&J|fW0m?TD#CROSOvmpWh)0tqLp^woC^rrlb;dl=Xv`NIjm4tHSR%TO<*JlmS^4ja zi3+gcRAW*u3bYOSV7j)e(ABt-7^%BjLr~l3REb>V!ILn`QJ+<)&uY|Xjfy$Om;KOr zcBm+K`cc;Ty|>6fZ&0Ud_2ho43xoB|OT?@DMLkq}k3qbR(2;7wYnU4nagRjDMBJzC zFT0Hg$nFWq?n#KY1=(#)MCoT2@*Y3C7y6BS)WJ5gZYwlj9h*`Y%ZV0Caccu$3PvXy ztqYCTjYjK*E_c5uH3q~oW1Gqk-i1WNOw|p8+?i(gD!J+Qt(r`3rr#n5g6z zl<^J`^(4^9bHy=nd_gVGWfYA(cd4YIiC^ntVtq{O=qWR__MofhQdjQ~aa;ys+(>df z$qDX}k0ImumjNHJcWLj66QnrNT~W33(pL_@WGO8+NpTVc1_!)k9&hdH>|4vbcUVau z=u(=4z3(9W6b0LX;962}%`zyk?{;p&!;4qp0nh=jI~_o`FZJ{WT8y&; zg}@KLcBc2yBY3hhG}x~0-J^)186|GVmAi2`SV}R>M4c)tDL6F85E^QjjDkCO-CKi9tZ#1}?CoEGTaU9?YG1J{ zaP=F;6Nia89&U<3G&_%EKFI>nt}b)>yI-9xtpZd&1hG+jKef}2;1L2ul90)ZSZi-T z%U5`cNJg~am`dP7TxIzvIU>Q*9e-lMl9U*Z%c7~s<|mR&4g zrehI`0~44`T&@soRZzhORKI9L^^0ayzi3JPaz@oR{ubfueV91`eG1DxW9B17?!h9% zY|gVD5Ll!-kItalJrFL z#X_vRj{;jg8r!%=Y~xPC?`CY_da#8%3%?g&^?M1nalDL(scs(vn^KfYs+YWn*`Nq# zGpvebs6?QS7jYNu^D%j1kuIF=4UCgvB}I zs`6o>S7a2SOc;;4WJWEQc@#426}d>7TXbn*;mYkZZx0e=QF0}lWZ|S*xTzL0)gl(P z$iscaF!~Iphuet>3#ON3!Ss?Wm|l_v(@U~odPx>JX<>4LKoBNy=|e?3fiA!$e>c|S zJs2##=tq6%DW{@F`?35V#I}A2Tl#H4-Pta_fd$qNuwHo;3!%5vDuEYXb)OkR&2soG z=Fm|}U>G`3MN>n^@9c!ZlVj(hr$Z@C4TC?WcXYiAx(Hj$k7J|oN$i3y!8rdU#`34p zIX|NsIVP-pZhl9hoAR!$$^xE{QzO`1Kf`hfeT16cBgV|I9A&VT!PW*x8?-l9dvhsU z$dG;*Wr+DFP8jOp&kEaj;GMg0tq1pEzntlJ& zHAG3m_(QYrKQz<7tr(6$u}B6{w}@1gi630Yi~i@C+7f$+sD&ZB%gWXS}uh!kD4}a>lBOo%n9NNb1rV}K*tC-fWECp zLAC&b+k3|J$^7>&<^mI=w@eQPs|AZ(UNw6krI19VoyZTi>!hvx;(hAL>Whw(0!M8{ z$B7CHQw628Q3ahC2AwpFYa-%_TRRveDdt4j$qCmmQ;BpZZN;N<>J7PkF$I0VzB{|f z!CTP93WQ%3AUXfEQaNO<5jsfu(Cuv6M6l40&IyC5P`rwlS$}K3A%17RC;p(u9Zn106OVHtQ4T&}ii*TW z`37v1FL-|U+j}we_%|6IhTkYRwctQ*Fcr0JQylXhbTJ_)UyuRq@r5Ldq*xqB%B9pv zT$X_^AY~sBhhp%&m{`HzBkAoZewD?MsS1Ai+wGWG8565wq9!I*$HdWqF~H3?sqVdD z12(v`4|;b13&CDxq~4%LcQja%j~wdbZ7!W%Xr8pUv|*=bZo~<4#-J(#j-R*#4z{<6 z^X9sqp_(>C5$;t#GWtI|td{ z4m1+pWC-!lQgfMh)TJ}8lnd;(q3%BHtTh~08t3HuT37#W3W3?XR*AG+LjSw2ch z*-szZ-@xFW_Wu&<(1#0f{!`qbq#eDlZL$9yJr+u1z|bgMkFodRi;(*z_~qrENub<> zW3Ygka^uc}7wpe~O{#XD@?l{C8;46TC^drWbKP;+83Mcp3$JN@xRa0qcOR3j<=kt? zn{WzvpRmW`v8T*2_Xua~VdpGY8;;+NxeeY-6`4K`SqIYwM0_lcLYk4?4anH>kSGB9 zKv?es`Nk;JXfQJ%V9>dwV410n@zdhI#^yO764V>`Kk3yXv#ey+5VOXxrOLDZ$&+IL3{=932dW+y1vIR#TM?#QDY}Fo-wGg#(PA@UJ=LsI5W?~Wv6>Y z7T-6(fmZfzyjFPxm&@>olb`7+KD7h4ceunv&#KOUp!WA)OjLsmeq*zf zSJ2q(<`p(J%e+yI&9S_q#^xM1uekAEk(DFA9&fgCOCGClwsUjNsc&|0AG*HT%{9&X zW|?c9SKl1V9SQp!H@D=d`g;RRrbOqP4W_#ojdeJZHpSfJxqr_I53XJK3Z5FmAA5T$ zlY>g{ww8hUmC5q)*bUOLGlbzd(s6OC+mUf6=46n><4&gI(QQQBeB8;(aI&483@6vg z%Wy_I`7x&;?i4zs;#e^kOJ_7Lf;%$ijN$Ltm@|&Q#sB!`pCC7DMupJah_uwpTsMI?(! zmXMT^K(cN)SiKm|a_Jo59{Kp}to3%$eENmi1qBB>$4>4M=LO@i|U!&yUuqXomk z(SqTuB{_zqK{_~9XmlhEP151De{EP#n+-7s_xcT|nFL1)hJ&L6!@<#k;haEnBFQF_ zlSo>mb8=j?=@?q2(-s#U+R!eY&3M0F8#?HB3rQ!*DI{A-x=6Z7dPsUn`bbVC=_eT= z86+7Z*+#ORWQViQ|3}kKlG8{|m(Ce+alTHOXuuBcwipgB`WVhRB zkK4D8U%0|zI2TFh<8g7Bjsy384Ci8!Pm)|hg3CXKb1BKENj^hz83}-Y4d-%_D@bq) z$Z$SS@&yvy0y3PdNUkQih6J~O4CgwMFOpnOas$bYBsYl~2}OXrcec*c2@nE8t^@aOEhVvbgr=;_A zT)gBwLl4hN2N#5XrVZbVJI^`a=Rkj+sr-OnFG%M_4$~jf_m7y~kNNcy$xldrO7b&$ z{W-sWA)Q~w#h<}V#BAqR8P3bjuch-!hWM-V8?upC})Q@yUiFB7cAwNO>AjVgEXID(5jxXA8fZj8BMzF;(R-3)%kGmwkl z#GPz66S27-?M9$N+$_eCO=AwD%w+_5neIq8pQJ##g^YI;t&8XjUxr&u0)}b0;Fg9v zmIVCrC3id%oIp~-TuvmJgnDr&vlhOIOt^=j{@f|d$yDa#Pz-8!nslefjU~=A(wz~< z`8$4R#@tzPJP$W1=FXPxVKH}3+&GG+!{hE;cV31&A1&f8h#S@J!VHi_{8}vCB{8>@ zpG#xzvba0nT`t`tV(yAKUV)lK`y*rSQT#27x#bL3K~l*AfEV5aBZx9qqea}6bXY}F z6LVKf_vn~g8#hj3K5*pvobzVPt&6$!ti!c27l*CSxeYP5G3GY0sO!*rF8JVc?gr@| z8+V)Cb);~dV zG5rDT+;DNr(QrS7DaySxZanLLn&dMimvP#Xboi`$39WZ6!&u^pQjOQ zZ=ri7zrgkux?pg6~o{bkJk zRm^=k=KeZ{hnL+~V(xEZ?yJ)MZQRUpf5$@qp5zbA_a8INx$bKq&e=4M=hr#31OK}W zyaI(K6LiT0T`)nzB@=Z2N&+@$xMYLwnk}mk5;gS!!|0a2d1gjdueUEFY ze`lcC-ly>cl6@djNNL28wnX(xlQtI8mNtn);*wxhm@8xSk`b42nJJ|glUNpl!JsB( zmXz6X^C+1kWp3Oo=WkxztmN;=xLGZ87;nCm1#zka)!859zrq&<4sN_0UtEvvHwV+8Xtu;l`}E~If0$zqZv;2sh}u*>99 zl4We8Jg^nHoUTX2Q_STVQ_m5ViHO;rswWwkme zZE?49R8vD)UE|uahN`-X=9EA=5PDYB*VZ@S!H5*662w=_%$C>GCE`1ZH_d2URaaJC zTjghxDV+nCvNh#3Rdr3uLl_2i0vD91rhHvfRWvrrKXRI?j%`}kkYsPeew1$?223Oc z4LFgH(o|M8tf{Z9s#sTB6(*Jgw~Xrgm7zrmEV9?sS60GV2ZZh2ytxrjV7y($d+FKTEj_qp)BqKab}c&23w`JfE-qG}6iOa8r)B%#9Hmi1 zVRDMU#?I3ql+90gtn7qZ&j65^;5iX#B&EVIhVr4!o7?->A`?n_ot@$UwV^b5TunD5 zcoooD0-AWw;JivC;tdV7>pNK$gV0#Y<`t;+-m+~ion2ba>}i{-9&OB^f8__B`#U?f z0RD#|*0u~lES}%p+tWLMdr6(G>pR=G18css6<3t<`*AG`kXP+(@Z8hd*`>>!+k)$N zEnP`=`G~*Yw~6GUa6rM7r#lq1^$y|2kFJbJfV`-EkojyxUK#NZg_{9hnJnuW>;!6C z%K&OJ635gu$2CJ;gPn~n-F;o{0}+qeczY#`0N0ryx`zIjx?0%V)!VNm_PWS9Jwx4P zt%JA;+SI-S*FE7iw+r{qQtUK2&x3Z72wk zj|n}XY2%v#IM7wq-`~sgiLUm|gAn1OzN>b&*Yv2a0QJ2=^uPV9-Hlc)yq{q9HZ(C* z%hI|Tn;z+BQU?l!pb?#=Rf&FRPzMylU4zwwC-j0i3R6P)>XnGRzolkiedj=@0>wA` zTW~=yEhBo|_!pJDM({yM^?eRHc1?XJeH&P7$tRhz)%YSxsk ztlG4;7ECm7DqK^)zN&IleZ!`Ps>Yh*@aadHQ(jha^vVXlwG&tsMyzyH0RvZQ*3?z| z86vkl5@TMou&M?f!KRwZV?(~SDP)t{I5EDUppE!7jEk-R>uvKbrL-qKeI9))ofiEeXe$54NZhN&x2 z8B)A8C@d08_+Ykzpsa=TEUcbi8HAiyS%VRcAlV(8cT^Da5eyhCe1A8nSc z4HYI^>jBC`rJT*3{R4w*fwKunHvk5T><$|f&|ACeZUb^(xT6gn>354Hvz zv>&{Gxal@<3t%;nugq=We<2e~=iy0OuJ9l0Vs^_rvGPdoGpZb9w>kz^F(sQF*KJbAsxqWzcr=zzgOcdN{W?CwIy(Y<1q;9itI^7-(o_WyfalJqlORpLmB@y-1$-B@f65s5LbYemmg*5+PlTcq>N>fVk>_zacf3S2T6j(Zba zw~LOE5T0JHb)VdcL6E+xQS~!_Gdn(t%(WLML3GZU>4ou29eRqSBK`UrZvEm1i};Sg zH=AwP&g^?nG;1Va9s*YM_V%}}BqoJF>!mk3qDb)-iNha;e$PP`W~X%;Jq(ljRwRNr z_1Ig8?|^C=p@%<~pO~NUV9=pyk!cp-dx%7nfoN8>^t6!^WaS-rPTLa*%a1$h{S>yiJeG?aiBLjmHGe9Q>QUkPaV7q2rZBxxA--P); zu&=0xD4`BM^HXd#Rn|Anhf-0hb>q5n$T=#SFnI<}4OJ^^xDnXoN7m4o5I1b9SXW+! zz5m)snvJW<8rD_;={75ff#~8j*o}qRs;;R;gbN~xl-1QV);Be%y@htg{1$|-t*_h! z;mb;tBQI)KUtQf;g{*p^WmN-m5*DhizHZan`VGi>JyeV~)C2G!@L9I5seaR%nzhLK zrj=E7RSjiLHGCX&l;8AKJFxA>TB;gLTl55Qf*1rWo65>pHt?DkKGj#Is`$pTHEY=% zBhhWNEMlN>sISil0ncyg=^W?`!#HP!VSUD21dDJppPYO)QebWpMal7PR<(0swuWWT^{wVtCcKe-GvNHnVLes? zZd+GPCZ4rh+dF`r57D13@-Y>0B7ZOO6gLs7jm%FR#SCTueL_t9ENR@ZRw@FT8g0ajBjH#Ythh# z{?5U6z2>jSg~Wb59*7-8#6zlEVZ<#G7^!UA47mxeJ>u41CzvI8BGwxf1gPUiCVd%Q z6>&#>M?@M?7ofYTHjGYL6`{x^>XU7@9bitq+t&h1iA$Ya-TIU?Zcq;JGO`sLa6Vhm zuYKv6Lkny4B!tEA*7i2q!@FKuq&h_Qj@(=lnQiTxTfj+Hwr<7(GK)%?jgWYgWj7v; z5+4E?B$xt55>P}H5D=PYY!E0Ra!7~?uxkrYomhFn)>dzPePIK#x8DaMQk8N?bn0HA zBf!E{x9I`o6a*|E6F{A-9+jL4JT3B}arn<393T~R5hz=y#_T^*dVp}gX5)eCCRA=d zh_XWA^N@om4ZJP#y{XlVzb;C2^5lX9?WDlv*8c|q4&ffk;!qj5R3r0{FDQVe;Cgo9SW9LH(hkY@mC)?V)c7`%csCh%P zpb#UVbD#!;w{vqRXUV)^$)!DZb`c#Heo;v-kkl}qASvmi+$1^4ppKBFlsllcBIQnK zrC{?Hic_G^09FzJ$5Ox|(SUeb$QDIFMg z1g5ioKQPU?Y<%q)ienkYuFISf9ExYquf&AvLm-CEx~$;%Sjt5+j{Snar*&{gp7k~| zGF_$W7+7t+x`lHf z|HeQ73bo&#@K8f~Rr_wshIxJ_aKd!e-LkbEGhBsUqp;7XwOQbs_2F~C=!giM)53+q zV+M@(V~O1|z_b*P8m!&_$xqsSb5%#`-EQcpLP&!)YtRebVNZ_6qHPWk{Wv%uD0rbC zJpDu}2$<$l1eXdddfNNboC@HidMsEFF6{V-kq}m;S9DZF&u&JbWrSYaxud-+=wiud zWO&E8#;^B)pC#%F6~$+G58ysG$U{=#c?WnmUCOhum`u%7b$@SnqKt+ZK3+87aCt#; zYNR1jjiw1v%_%^FP+N~--gAo9Qd*yjI2&sg6F`jezI+sIfSx?1b=}4yy1utv+N&;v7;k zF&MGe9)<_1keX-W^f~!#JR3=BOTByGB%oFy*@!aPVHCWs8TN2|6#NeFf>|DlBkb|f zL+fy>ifTfnQKujmtiIvwIUW^=<$eylM|TcTh6i>X96U#M{{HJa+2J8Hm)evi-7ylp&A=LeZh|P>>mtQ`0%?)yf54eDNjNFPPB03 zb!;$V@WF|!oDbOmVhI=Zle!1Q+6W%}O*031+9(KEvYNsmZ-w{Bl;sl0*-tS5cmfm)7ptS6VLUfc#-lPwR-7kQ{vF1 zg)tVsJ-~d5E{-$wf?7?#ncFFL2)4r$bY;)MYxUZyerOQzK{zvQZ|PRtDINm)K#S~L zHJ7)v1;NLs2CwOfhL-X?j78L>l9kj9Xjussrd*t-$WQhQ=$oYnBhCs{2&{3ng>Nd< zCVxZ#>$*Wdn2T`$=pm}VP(G$koiYctp}LdLPApH4N~aRW zv!A)Gx*GG4JRgAd=`ob!?raC1!R%=ZW8tz>$_uc2@?pXAurczp)!>WVxv~zX{m3xT z*$rbNw;9D9QV?vQriXokq7^7%qVuTjlirbpesFM+o=?peAi387&=OTR60o~EjrhkT=Z*hfZ5C+0br2+iS97v4&toFKQ?}rpG)6< z*u{HTsI=k+u`wp6rL}bkhieCzYE+7u${%{*P(Q@Rz+%HO9fa!)%C!erEcj0#2R+bE z0}G72wsx$^<_-)h*!M=ni7n89!a!uD!_*CKiH3=*h|mkEJ9K~&sOfoh>);N}qJ~q- zKosR&ad6dryhZ`NbNtHaJ*VpmTXy4d)M^`;4CYDx+wtA?mD{W1L z)q~IXhMP}1PS z7svS^^$c)k4hHWV!b5SCtUqZfk~m^MV1B>=&;=po2g-F)V0OM4)YNHj6g_8)@Wl4$^2NAR0k#b&4Okl%Gdx9Rt-148wad0rj z@WDiV=z&Wb37yxz18XQORn-))mU)I)a=_p~JLJD~M$2w>fC6u<+*nC32N){a1E133 z@|CBN2aJ)~V2oKfP>alvu;5}Zakh>D3*Hx1@!Z z20PrWLA_w;h8~1k^3U9VEi&W&zm4U(40#0I@FNeSH~@=4aGokqjHtV-&zZKg3`94D zka5CB?^2OR%o_MkC}&TgW2$nr(tjRM`p;NY59h<5g!YFOGC~WHaRHn+!@;NacR}2< zerL_cnOLfOz-`gtag5W{4#iE()blGn>mRl&<%OQSNPgUtpO6NFwrPZ*4`hk@}uEOQ3QFdXZ^)`1IJQ{ zaQlb+Or(iy-{{Gkl&zjAz!>l=;bvVD~k}R1Cd)5ioiJrB|I?1zItdl*f)mrOWZOnJOwb`>etSz3^ z$x@#}veoMHtZu8vvwGP8eJs_fR=;NrSYWa#jjCqP`G{o5+U8l?tsS1V(>l$wPPfkR ztTU~%JnL-h9M3w}s`IS#tn)qV0&B5neT*IDLe`YVT~U&vP>0L2F0wxESr?OBLUJj| zXGkt%z|WFkyn5CZjO=qHpC|bO?QWs#?Id?tcY4-c{JNVC_wegplKV*RC)rK1hvY$$ zhe-C4e4XTB^V{HrYUqWxc0B7569Y0Yv<&;~=k1>L3+tDj^)h|^hU8U}-;&HDJDif*d&-6ed&9j^ zz=9%NW!^$hep!BHm>!zUNU6T&$zAfRp8bJ+if6vZnn+{L!I2y}%3GeDZ@Vn?e9!!g z`G#ly6}2I6u@`vqR{1sTAX4)h)nPz5d7Eeb*m?=FgH(^Y9ArDmL4IQW6eqBryj@=G z$veo@@053W@^0oeZM>*OcsQu!J@Q`9`nC0nC+}mzf>mmQnExXAH;BBSc7I^o=(n8I z*>hQ-QlRe9cyhPgBjp30d{91w!|c?YGtWGI*xcLSok)AH{JJL}mN+S zk9+b7+w|l&L9CxyKacjiYHH4U@>^&K+km@m)8~_@ZTovRZUpKv6g`xmSLw-b%kOyd zDfu+cc|G}zz0s4;l6;rsdm#2XHdx`I%(6Nk^XHZDh){`m!kJ0R=REm+CMiMW^YRCt zd_lhG$sfuedGg1sub1eWMc1F8O65-hz9IkW$-l|Jd-6^B56?c6uKz^Z@-2S-i?uqEBQ+26kmS54Rr9|?*LP`r&o0E4 zAhm5H1BUB49zdu0NjgR5r4roJQZ=Ibl3(M=6&)F@a~DKbB6C05!;9exW*$~76MKX6 zVlCG2F9}Ndz9&DB`_v(D+R7^Rus7_#F=21^Vx0P8W(+!BYGA7_)X9rKb95T*Z7PCj zaTa?W!gM(4|*YVbN7R>)y5jD($sur9-ftDbp_as4~lW{DT$nk1G1 zVt*P9YJZBYdMkL8eF=@9v7us?hyfL@7NWysC6v(bx4GsY9*Jr$3}G8AiF}uOvADf4 z>T{kK%S^TbXAkoW4HU2;b_J3Lhzd5auD!2q?QL~+ZHV&y&fI(7 zyRXD`_y3`pxl_)}nKNh3oGE8sGqWII7BUr6m_OwXOu#JSVq#6}(T(Sa9z19C44BO^ zvdtD|%YfMmJ!7`U_&3{_Z3AXI{UjX5^St#%K(E&u0_IU>2gB?bz%NW8V+q5RveOBp z*zC+s7e**X{;mPDs|hl8H+uxko}Atb+4X)C0-*1>;p)wOX&~9d! zft=PCnw<%4Fktp$ppW#A1A4g*aedhAAJ9jd0|NRec1FW7-ZcjX%t7YhfIh}7XTdQx zU=Cp`a0*Hz%`5pM{`4o8zV!uiCQ4&CBtbRH=^vbE=8br<)b%19L_| zKUrUDm|#v?sTp2c%(22X3~JpDKQ2kh-6bCY%LKcM+Ef54m#z05p; zW%=^Nq1Gp$FVi33zK8Ot@hqEady8#Lwj-`y7SMFg;a?VCkp|=+7!~q&MyMSh;$jbI z8GcF9{>i+~iz`p6TWZ^+p`1B<*(POvc5)A`c1qyWp|r)-)TR_y>;So|<$Pn)WRBke z9_$!X2eb^vzL~upfI}8czI;tNmIF%_JJC)VTDQE1E44*p>ZBEOmM_J|oGXWO<$K7A zIk=gVsq@gYGPA2&sDV3fAMJRD!NK6Oo6d` z67Of?K28v~BalPgJhvh&gUHT&YeL<_$c#l;7Ly@6yc8Q(xPAb3O;L3d48NJml>u`O z&)HS_s(}86ermv+YgPx$d03vA^UVbT{U!b7fc}a;D4@TlzaG#}K^FZj4!+IKJM8?O zop<#?_8x{?syMq!j&)zkOpvm_8_?g=q5OTIe;Ckr>AM5^T9&{ASyI-R(8tcwzX|B) z=wAo)^Ykav?D|Z$Hqc_-6W2`^LMZ6Zvt+-7Cy+&4?s^tKm$7p>$1OHqHB1P!Iuqv_ zmj0`la!Tzo$F5=g65GZqt>)1+pnb*zH)TDf))+X#445Yy_oN|IqRC~NB~ffsTb+ZZ z%+r=+KI@-|&86wIXoa~U^yx&A{yzX0=|zD{ptm@5M2N+!me%m}NX{+g?K zhCL@>t}#yun5XiJ?P=p~%vY=ij9_Oi%l^}N{`*}20*9ml^K_0r!-T$321ox?|14mh z#cImg*ayH&cRx>Za7My`LjFm>JjXm2djsZq0e!Q+C7|D|W8%AsyJwqzN5EVMJTUd0 zA22Uqh5X+-?j`n7Yb^e0civ8&XrIBl4pUq9ZRy0092$F7p=E#GgflOM`9w>c$f)2} zR#a1dL)#`-oO>?f+3I3$+9gb`ADKd|G3xh$`^`(u%M9~!1k5X-E|^zh1~ab;=-bV! z1Nu($8Ym~`wa_T=WnRZjy+?mApzqZm3g{2>;CY0defs`@{wVYZ{c#RH!JK-4or4VV zl>T%;e};q4vGaodVnBbD^L?p*6)>+iHw5&5>fZ+R?|6Xzixa-*zWs>{{aODdp#Q2L z3h0N;jRF04cK$GL2Z!z)fi!z(N&-W^I`5f42UJl*aeEdwaYxo-8-56$*MLR=%iCnVB@xsT z?rnFzQ4v>+ohO?uqTpu7$nh>2qIUbNy<>$3%-DzXB?MO%wL_dBUDbJugHD>AoA^;s zJX6Xq5!(ks?$w&JfOSbF=o@^;rVeKyX;WJ|SG(N3=Yq#gFTTS$)UwO4wuhWEd4fFwmcOs!eU z@6lkE;n^6R`xk$9I%PtJ-4d9VyFmStcpgre>Q?doze8jT;RHr_@kPXX2rB zHUmy7cp!ss?Vivc*mzS%?;7Uax)`Bhjs4ufvyNy)_r+4 zHq6Aa{bY4ND&4gSb@dTXt#E6+YPeZ~H8fXASZmlp;YC|$ivrp6R8)sP=(b4uT-k%s$+J( z)Z*S;#bl7CC)_zue98{AI~_)6OYMtkf-Ku?H^%DdQ{iTvBsroM#hNQ(0-{yQwSgoV zg6xqwj&0DN{i=Ix^Tf#n$P~RgB@-4D3zT8KV_;-4h+`Mn#4UnZ99af@$OJnz=e-|% zPg+pNT?}~yG7qzjh3zYU27WujvMvfB(KSUoRy2*y;%EV1t+qHm0hKt*Tlh}G{8K&M z^<4of1Ju4J&OGnj3{P3or(-Q^6sJq!a}L$>&SEO{RTXD*4d`c1nmm32UU}kI<%Ug! z9_1QEj)^@6xn&-Nd(q1<_&T@+jg!d*XR(tS%O)<7z_PUt1J}P?{jx}fWlCh=CgK#N zfq*s3hAm#gCSN&-i>W$%vyk6~h}{KIolwn&rd?7psk$_PgBRgi8}soJ+%_{-35hur zc#dPDXkBYk=Q7Z#g0R1wIN3#^EOj*^L1M%#7~R7wCM!|~P`X}ID8Q~|aox&li!LUv z)!JHNjI$E7MP@$SPZ)=VBW~r_Dlf+w4oY{mJ3?J!;(}A?hW@sy99~zoVp*JE_GKX# z$rCatWN|}@%Y^(z!-73)cO)KD9C)PK9w*QZzbXVsu+vd zSAJahrpcyC!L2dIS|v|gPz_s{SRu~*8Am=fmns8Swz!N$9)dD%KLMynWliN44=D3O z>v9=O9DbB642i@yPn7t@^oe)4ytZN4*dbUOti*PtZEZLNN|lma8s^qCD|DzwL-85~ zM4LIc&N|D3%4*veSaY9Ct>G*3;IFymYhq`rKy}WViPd;%5qD#39RxwONMQZQzP_3? zjj{oTwFx--~2@bF_v2w`McvKMq;f%hNz-Lllz*&Os@nNVWNbeNI}XAKZ=W3e%e zb15kJmMC`1o%pecVpbUXO{-f9s^}d?v3A7<4IIHY+pQ-nojM@vmMpESLea6}VeDP* zW(}SnU5m$FFa=7HZYn*-5sp$3Uvr|FIhNX04k5MBRb0#tSk2G8R|sM%iz_~a1Hy|d zmrn+vG3CIFd<7F62-x;Rv2xrw40DT`X7TQg8e^$17dYGHoDR%V^eK0`HQ8GwL3iUN zxS|dk1bb%2k?VHZ69w^1=o)@3#u-el6CP zddRv>q9z>N^uch}pkd>lH(R};bA0xb6_%1~2Y3qP%f09w$P3V(?Z8t^HPuf8D^pGI zZA=+XurEYv8WTYW&}L2t!inZ_;IZEu(L1OmREt>gE+YuOearV8)Ekhz&>1-w>PHRh zD!eCPO#ssqtth!XtfB-c5YJPQm`9)haSD^jTEDSRMif*p_ao>jz7)$FiXRygc36`3q76iaTdTs=RAl&q}W7PfBKv$W&Wij)foQ^EuWz zp)G5Cj3l=G)pNh<=@DpLL)hSoRS_j#_&#dhDP&fl8GB_-PzK8DR zWfE|AJst@&OgtZnaf>SDOt5dEec!$@V>3&DCu{;alVxD|#9_nm_S86jx+y_AjH%-V zn1K!K71iVC0T;|jF8RaBKs9WcCB)7RAYsy7ns#;!)E($T+i1&mUEU3!XwwxtVo5XK z+S})Gi!QK%RkmX#z~jlY?IaG;P82F45Bvs|B6{U6WSzBC#uJv?)sm^ee#0w|9Ks|&lW)NLv z8JKt#l*K{aQ-(q!W@%^b)Tt+hT4;yPuk+#%$~G!X&>G#n9b222*od=-7%b4;SuC~H z{*gl_5zfQaGjY~vW6KE@bOxdImQtqcqB?8d23Q%(SKtJ*MV`piK~$=kv8GETqNbE% zs#s!L!>7hYkUiAYus-R(kzLLNnQ8^>6#3_-Y<>Ty%4{RIxvi|O0YkL|mw}^sT&k&UOywFLgJ~4+SaYo6 z{&brYd-H#q4!y~Bw?G}NK%amOUJbSjV;44^)nq2_9^jR$IZJW1jL(5muA8PG-PDSN zd=d|py+HZ$fINuMQwT};*aAWMFhWrAutQKjOc9iiOS#I& z?M&t4f~N9eprCvhBPbu&l$DQLLCVJ!A>|*je7@$(VYXXPzO;SZKT=`bGJ-GJq(Oyo zKS%knZcsih6Dl7z4$8+BC-{=h9aI=b4a$dIgYse8pnO~{RX(g7ln+A(<-^uN`7n2Y z-&D&-`3_%!Pqb#PF!)3(aD~AqTA?cpKGBL?VepC8+!Y3&Xf5JlttG;(;$iS{Q?0ct z{4D4M3k-!Hj4Iy?{YPY+>kek{zS6D;%4p$gIg3GooiY|A#;+YP2yTVL| zdtBjH00(mzMORqFC?7^K%7Lq!$3y)u#r(d%w&`gBbgY#JOTWl1e_xWSuVNfTb7FlUFqEZ zr{ZCa^SkF`rpL3c^yd(M-WC2E=)?0d{;`RU@?oW;d>HB|AGSKmhq;dOVX>op*sH*o z8Z1$i55o=R!)hnip7&8M40u$27@Q~{wmiy*Igj#T(F5PdHjeO3zFtNYZpzjt2=Ag| zwjM-@Um-Mste=E#v4fDS>0Z+C!^HaN-QV=J=U3yEqbaMxpD9n2gG6_{o1_|Wf2wY%IXy?8g1xVzW zTd2L-Y+cT*5QdyLP$6b6!!tgI+yXXU8q>?q|TaW^#?jr`%g zlvk0}6e+tXe_!!#YPON%3M#S+Rb0`&;&_9K@hg0!ZKX`@b~NTrD%9?xKH9z1U)w>0 zwVgChtEVaWo$NWID>de3694Ia+ zE!|D6i*`|)cwOqpvvo-@0U{H=U(Zm`zgW=TUgTxscqSKj+C^=PL4H&8J}jCR9PGluuIzLxmJQUMzk0CKvv@D{s>q?J8RiFtvH8HZ=f^z`z&_OMuq2~!gCwwJPxm8=X`c9VCO=1E@J0mb}nIOeR0;M z4RjgTcsZc20Q8j&bXENG>iFk1@y~1HpVu+$_3Uh5XCqQ?6m%g%i$|9;^9Km%>Z=MH@C zY@qt$Py;ov6Gh||73MD5)j+!$eory~s`;b_dXTBGm!lqH=V7k;5&qf-ko_p<(FS^q z!;iD`1UpZ%bD%gEIolPNHqb$>x2O0~dTIk@=)FC;o(+_nt2^@MX-D4F({L?3a6Ep( zeYg%E@~|{Y&+MmX`(_m9XGH0_C_Udmf6LW30FzwLMl$qmq@$+xK;(sr(p-HPy~ylb zPn#7+VP#k=9yNR)@Q!)_%`zQHR0!*`?xW)k+J;-NMC%P0NL~sio3r;gUork zfnGsihYGyfK(7@e>nl-uo&DFM^oH`8j2zFDMM)dMJbUTQisD`LRs+3_?|1n7?+x_s zHd=xvz1P=hEQ6Bh?^pCSA1k&#^9@CU7p!KDJxHwp>T0W#3l)!z(g)M>P1QOt{Cw{| ztB?;Lrho8&PUek+sHKlbJ`=fP=x(lLykY!5ZjJ?g{goA^hXW!F+M-xmUY=c zL3p2Th*A7AjxMpHKaWR$Vb$>^WZe$>Y9qDaUS?2`*Xpbd8*@9d#0$s5{vCXmNo0i5F?Gc!h?G*J-r)J53Ou(p>QwtrlO?Y2x2>w)mOO z7r)ab;s{+KThaBhEp3t==@!|Uw#jaEkL*d?<8K>KAmJt>FKGjb@sAV<-w zavZ%cr_h&j7JVyg=tp@H{U#R*As34bd9v`!G?QnD7V;cXEYBCcEfd4pIgZxpNKCb3p-7H7#VVx7E6 zTr6)Fm&t+TvA z>mqN`j+S?8WiqPuk$bhia=$iEKBtY9FKNfgx3y{VeeHPpu~sR+fC2qKwR!RfZJGQ- zTd8T9CrTWf>$_S#7ODD61Cqc%$~ z)@t-ptyb@I1aB`XKEweW-R&KURBIAFaKqkI_ES z$7$c_YVV*!1N-c+BeAEnRKJL$9ZKKg8Zn0_KSv=aYS=?nC^`bxbT zCIIvGtM!Grf4@k-S6{3@sMqR`!GB6$sy_{rtXK3^FcDdUd*-KjJo>4gkbb(Sn|_vO zl76;Qre2}EBU&+K7}~FfcF53v!~X)BVUr`&8$a8d5Nl|M@w>9xuSYO4(j-YFft!1h znF5BQ8S?i-WQ2dC6Mm=JhV};{hav7)G7eLLI7E4s|Do(D{~^8gAmPi!9|rUh=va_`2#*I$D2FVc{h$Ymhh$ zsfp~cKDQAWjutX*MO^R!)xc3!Z6h|Msm*HNe#+G!MQx8e-BCzFH+B46G_S416rhxW zGH*bcvp3R}@J`r(3ACP`+(74|slRWa(@OT!A7e3b9vN3071UQR?i3Xe;tlLWwPDp| zM@7CK6&m0g7GBDqIzFQdFWp6$wlO_N1vKvM+bE;2&Xe@V6@7Kq4?d3KN2hf)WqRP} zdu)XO1X0ukoVgwS)Sjwofykg`bQ+xrbkC&oly5P~M8f8x{sJ}8Uqnk^23=pF_WJ8o zs=q-!^*5=X{ua&B-==E)U0R^OLnrBfr-l0av`qhiPSHQ43-pg@z5X#>seeM(>Yvd@ z{c}aFGV&au1?U2daouO=enSsnkm{N82x|1Wqg})ISIPv5@hpHvVtF+N7q&7)E!unH z215JMx)Tw=q^xfjWAKIk>jV!2u04D8!aD{-q8Sv19l}=<7529m*A;=ENFxkCuaLxgdU5E@W%KY&#L3kJkrLN9-tnjkBSHsfa22qB7*o*aeE%(2iJ?H2Po72ii-Rgk(xO~ z+TajrJI3tW^gZ#m`j7Oh@-1$8hPs1Weu6^uGgg%7E&UIS$Rm{Nk(B4rsh!89P986H z^Z4i(kDtmt0UF`SqVb+=n&io)nVx)F<|&}noI*O+?-Q;OQ zcY4~=cF$3?$J2ox^%T=no)UV+)0y7(bfHf?UFkbdH#+R;f#cU+!sF>Je4b-O#M4hS z!JFd+o&lnTXNc(J87jJajul6HMu-ufkz%4}jF{>T_=y{tL!s3F zA35~nim_@@Vy#C?!3yTM(#JdP1J@R?hKs5&_zSrvwP+oU2xeuT7hZzjoLP4mJLB1@ zWM?9PTOc2pyye)^J))JM4b&1Jtp)8DZN~8!0>8FpAN<;O+mUyz-0f^mZf|okkFvK9 zV6|@n9A*0*Y`>%J7u$Y`m5s*<_+JeJD~2ojIVw7HD^B$wV?c@16SxsI;zTu;|x&31!l6F77W-R8N4 z_IYllgPz;y1gL+<=I9bdhVbvJa>UZ@1|cou<7*ND@@OQBJ85 zd+J3uPlG7)>=yk!4~oH_hs0>l!{E?I#B|RSVwUGg#hG0RFFDwpiSb3?LI~1OoEP=O zG{Vp$hp63eG^S}*0OJzRquA5kL~x}urElCwg}kK#5i5TK6{2`9HY(J1kZZpnUVby4D?Klw z{FhMv%hbg43hHqvRVa#;~9qy;0Qz;a`r>>TS^}xq1`3Q;q>DtZZfRVp;U&*{Yrv0m-A|y`U7E42`@Q9*RIM zx3_g8kZE~(Q@fxdTUqh|er(caX9j1@*PGc{S3>x4C$Zu?#pYa|&j(pk^5@sclAUg<^=XIB15p+YJW}1v<1b zwa1+Xhlv&reHn*iAp8<=nE0P?=n5RV0f+9up$Bm2)ff&%4zp4|n!^J^FsWU8!x_f{ z)#m>>+jL}W@t?CTLbjGVE*GeVbEVwjDV1JG5xsS+v^lmgU>S^|6WJ^JRb-3)ymci8 zFqcDxVxED%gvrCtV`4;{W7N3Kz#k z6>oq=r)S8M@f-y*p2z5VftqH#2;^T;$U`8vM(-V!7NK^@2z`L89rTV?M{B&v5Auln zwB9Vfp~2dnI56IcN2#72gq|I&BFnjFJ2;E2Y%yfF7>byVSeUX`vQDzFe zQ!${w6@$H5rp#;gqN4C7rDo%EM$s0Y1gPQw4oG&1nXF1wSQ-(s78XUt@x=^;&CtTl zlwY(NB-tfqZBy`-2UIl$yk*Pv%`PtCvkuE%5&-Y;R@b}GtpP#W0Q-ior+#

@rEx|(nqeG8CmO{x*C?UIMrT@W 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Ž~~F#RvLVESKS!K@!wS}^O!RTj+p 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
R9@%;2nMMv!6_r=88-b0T7{ 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 z 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®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�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%0AcpRSKNptG@Z` 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≪o6^tK0=!;Oi`!{vk6L6@Aiaqv(8LNm;#~^6 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 z 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

u0V0^7@RC?j>E4*jEjrob5*32!GohpZdA3l`hU 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�SgQ^$Wq3ZbzRasuuWOxOa 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ℑ^qN5_0*zbk~N1%HCxHeZ2ctPZ4*i&QGDh_`pP4tGDT`8k>pU%~+kOkgT?6 zi}uQTJx^4s0S3!DGG{{_-W-G?OCK#p#Hz6uwIh{nVaaw0BPv;%u3siY)N6<%pfK>y zLFF&4wm&e$_Rrk(MJEiepNkhfZ3pD#F1sqrm-(ab0D9dWl7ME(*PYA%I%?lM~R*!6823~zIan}}r#-mgfQn?~YF0w4YZ+l8@@4*RvLjXvQbiB@rZ0vTAUfNvnEazkNx&h?VvCuun3+y~v$T?p4G*6C$NRQKUz4QYeKZKcX#ZH-N zqkKkIZddVxg!afvCuy|ok`wj{v{Ac6FR|ycm%C*ZA`LfBjB|npQ4@3$a8y5I^l8h# zG2RXUwbl@gQkGEc9WZin)j@gZ=PB=?oboQuQxZS*B2B%>rGCFn{UVnzy(-MydlGZ5 z@VCL9o0yM(&hMWy|8i!=%QwS6r08*TKfUk)DaR764;bx62oIYO?I)YZ>ZS_7;S*KQ+zfXIL@*g8kUH+1`A|EabeHxp*bv zPU4;Q=C^F({m!=I3#FMqRC84uGZw#LJCbcsR+t2!PY zsW!261Sdt)6{1#lK1OBNqvN4OZ;0C7P!x}9^U!B>hc0?vZhs^K9v=^CmxveI;4#ju z=IrQvz8&3G``Io-gJ9R7r{v4`(fRT{+2wbot_56g(vIa{YRA$`?N|`HXvgB@I+jiT zDVzM=)QfA+bfk@X1qn=I+(_2YqVyWFW5&>YbwxMITLZ4_#ai}aSN5;j#M67yQRr#f z_^@s0zw|r>@#Rj=ccS~?OnbbU(N)ZC<}N+^qxG8#sy2U@BJ*F+1^oji*?&Uj_dX1u za8H>Jkwf5~q9q+_K4H{um!nW-o#+`kne$rDlQX;kyoW)#iuLI=oUiu^Sd$jY*Le3q z;(5d?k>|Wp`Ic8EuXyG1W3N(v=2gk>ylVNY2RD`1&2;g)n;Hm~`+2oyAm@6o+6>3> zd6U=2O!fMjg-QbJ*SuLTnRCfW$1l6fmHZ+nN8>>_J4bSlF}i%iRCM{L;BA$J0v`8MNU4| zc#{z%x~z6r?a_9A%7{jj4kezYy_vet$I*X&Ha|_~Ka&2*@qlu>WL#{C=ulScC_E9NtKljVq9rpSQ*}sJ(_?(W&mNNcu|UBHR9@+hh@3#jjz)63NZ%h zza%Av4p5=knA_s91Tf1szq*0mZ>@DifSk6!HHt8bfeyS<;W#Rn#c9KPFa=+jwudQ~J)z~UTVR;hmKDCxPJrCB zu~Mg^NS)8zkWQf?Z6FSSKrRmG@H{Jo_R;EA1!Y7<`VkXR|CA>v9^yl)(bK57ud~%| z*=PwH-b;KSWfA4mouso0UuCa6fx7~o2Md%-YjqQvO;yPh;^YIxW(jH7Pa1(Lw7N7N z;iH}(XhQUy5dRG^r-{C`7#$(!!f<#*#hl%rj-f#D=G$HQ+Q{p{ns=bFyt@jPn+uLmi^+C#i z*Co-kBJ!|Z4Zbfm?KDVLM$oqG-H7bgQIrO0$2$)C9!y(VA>8oo!q`BKss+s-NX4(4 ztPpmM4SK*nf}&E117$!}^GvqUQ|}*;pWLYT$7y+HX0nKsFc1 z77e#GBBw_Y#Lv*fnR@tw9?sI&&ep>@5jhuQ#wa_Cr|Iu)`uO|;xj@es7RW_{Yl8gG3wHm$W_Bhn{yp1Xvdwhww4qW zvce({6kDM#9swb!Gst|{_lzJQ9-`A)AVyh1WGl(o%1!H6x9X47pplmxBr_JvX;3hJ z#cD_d+Q6k}7%0}HS7s_&YowTmiXr*!w@hhm!>(|?92R3^e_jlGa^ST2ao#y2oxXRt zk27_Mtyy5bRxMvW*>_Stee;Tz^$Pt0aFaiSm?#5ZM%kxv-P~a?w&psB0P2ZbSGj3&D9P);G<0e)n5juogH1O#^$bTTL@@opGAX;W2eTa zO6`tvKO%;&xuZIKJTk`K^D!Mh9u<>gq1o>!^3gFlu9LJ6&<*XQV(e&B@)dFv>zo*p z`d4F^l;0a;W4kpEAUmT;G7M{Pa>Nx2a)y-9prh>AkOMUbv|p}cJ_-FPuL|n{A7L1JU(1ALh!cqMnF(es0-qi(sd{mg-TMx z`8^`-_eg$^O8Y&U-v^}qZsPZtwBINIAazK^*Uay6X}>l8@oB#`{t0QnHU5cdzcv1Y z(td0FlhS@`e3R3DYkX7EertSF(|&7w)6#xxeACl@Ykp^>{hrD1gVTP`!YcWYwBLvF zdv@CIIT$K4{!*8v)G5O;#|8WvLfxtm8?#2&52@X>Z*jelyKaB09)YM4rJdH^d>A0y zoBjDxDi0La*Ypd8ACa&VgY`A5bAdFmfNf5F<#6|k8OaN(=y*XBtGP)EY9e<@nL@`Z z3LX_U>!VNCDV$2pnf0HBWnq~6x6^;C$bYLkXi-=r^dSSovpFYz+dq44h%zwY$ z6`aLu@g6B*Q%qq3dfCqre&{9pbqYbyOWnPw(BgWKsz4oM_aBd-mX@+heI$Ovj$u1> zB_5AXVBfJ-&Nl1iJhtnuG^YZw*(^KE7P-%C6{wr#c{Z;W6GvAm&`qaMglzd{nVoe_X1UR&=pt>H2j3dgYC7&asJK!Z?0B z(#o4Ejn!kZbrxZ}tdy;@T5}}|+N;U!-Yqq{jC1wqcF6A{<-1Aw%cOjdO@-*xbe@^YPhqoP4-*n8 zpe0GBP@700qr`n7AW4;&UuCHh_s|AoAWmWPrIfwSS~hk1vZ*t|JR#%FQ#KE@^;%m_ zCd7`)iHawgiynzwxE2Fv$^BX7{1)lGM0(#Qz3--%lR4E-;W@vYn-b+@k0hBwuf+Fu z0K|Ht*MHh)2Il)qwE0Az$!QV2Q}sg+u*^K}yI6i0^Dg=QHTnGwZpz*x&%cAr>py7? zf0ae3^N%wBU_SqEHdo)bWhszw?Lf~p4WxjMsw|RLpg!4E);FtZKsOmd<6nx#zt)SU zR~aIPpTdiNm7TdCRW?%Vi+?&?=q!`|r_c1y-b++na=6H7T2xlQjH*i;8tNGf#p^@9 z`;zZ|})h8tBqc7TN)zMXR5aT+0{0UrGd!2rFh(38Vb$(h6GYIU==(@IX_M&s3)s46*{5ot|)rD zTtxpy6ChjAN|ypti>QRSm8IBuCd!0$5>sqDG!#)wyQ$|jdO+C|m34YpALVdL#43A~ zVxvueZ_>l5XndkfO`G+{7Cmg$7ts4eRqq3pr~X9w6IJC81buoqN8>nGUqkmZLbgTZ z{HWAv&=IQpxlk^O$i?to$Vs?@fvZ9;)x%|axLglcXq;axM0P{}bCrBaUqcr@QJbQfdgR!buAeB!ntL zIu3yc+^ znPwx;nj)dv$chWKTL;RH4i+JwMhDWtf<>dqUB+m6a_?3+)kvl_Q>GF~4Kg>j_`Hat zat&e9t1h>*jngHOPvwi4a2~3sG*Lu3KCnznc4Eqp)zlF8I;#7 zk&cRHr3DTOh#akY$Jy$AhWw)ygJg2;O5b$Vf+f$VcVf75;_|gCSGUaAKsvCJZkfvO zRg^D7qtmzZ`tj+frU=IC<7L#R(Ai87^ac|Jc7aKHHCYcc5EMSG3MIjeu$s&dQ-l3g zEgNDiqGqZ#;n*0qBG3@z@|#W(jMnFCsD*mCNp7|p9978Nt{REsBXWnTWA0R|_Pb-i z$qrFP3aY8)au3Qg9kZQfVH)28Y76!n)q?*%MwRSgJ!MmkZZywB45?9GC_4aE@qixG zD4hM?Zz!VxKOfeuqeo)wo;(&~UxW;?=Ye@uc3fGO&w1>>Gpys;4tXlZR>Yn>tg9I- z@5Btm_-2c5t2|*t7LrStux@t-_Y~Yoo00RSx)tgy{g-UpaY$-8V+5bdAdG#w8&o{ zs=p2~RBb>F-Vs$%&Zo{YQRK@|a{ao>7qihB!cBHL$ZD_5`N9w~5 zOM#PerxVb69)Tl1h#04Qv880cicG7DtxU&qKjIYaY7Nn)-gmUC2O-Q)BK*P0@T0h+ zYlO;rr1--6pc)_6V12kdL7=ON+eHR>4xzuQkU2y!3(b}*N&2pGNS8TE6YB3Oqh%`7 zIUy%+eJN#j-j)&lafF|f44=vy>xq*3(Bo3NwC^JdKlaIeQ+Ydymro{dtBF8$YPop} z>ta7WZyO29oRpI{>MfF;xATa88{rR2hEL^97v}YmPU`JiUcQdJT~7oH^441eedB8F+5QDM}=T@9$T}-dI zm+3u=lP&oIlG4P~BVgr=IEX}jfS2rg+&fh6l!nJ8%F?r%r6=}0*zo8Qw5w7|@=%ps zm3tt?<(AgCXIoA^?OU+YiC~>mB5%=geg>rb7jO-}4Z7o(wEbVvp?-}x^B(A7)vg4( z)J9o1I;EWUF6EKb-qo#suchD(MR4X$VxjPD5(?fMaI5iD>-i75(jQ6a&o)AITiRKj z_DrKYkQ}K(0yS2*hJHBhs0NU&(edYdCW~jcn12Aic%OYAnUA(1>U~6JUUCpggr`P3;L-q)M&$`pccglpCP~sj21+-s~|AT8H ziF+^*ew4N1BDYHgmr4#= za69gd@T#8nZQR1XhyRhi112#as<7zS%mP210ZKs(voWdY0IJF87^+F=FskwAj-=p5 zLS`VU;X$a*21}i(N1@t4A3%(C@ne+$e3Ekf?QyB23HMN?N98W*+4!jRYG$15&CNcF z5-SfPEcT0s$}rjP9}l6i9H7v#fr0vk_M9A3-OtbvcgDcENV%s6G1@MC2(VXZx71rZ z0~9C?JLJstB-Eu)DhW)TF^SzHaIx+)sh}UWt~nBq5b={T6bxHLG19}V#qq!}7Cwpe zt&PChsm^HK)S3~rijh=Q6VTu>7;_v5*nTVvkY?<8#sRh;kM?;2Ap4238k42XW-6wx z(^&OPN54Lko!W!hUY!L>>kte&W&^OFBR{|{=q>Dm-o-BH54`hNv&equIyEC*r+C6; z2B#+xX|eyGK*#w27XyNdDlsZf^3{r6YJ&9c8oG8t4Xud14^;5OQ$=taCP$zqJ&Gb6 zW0O$>FXfm&kr+K`O=*nOWz4IWhuB)-34gjZkuCA3%dY9}3$k=YsCRm)Z-kja=NYC_ z4vxqyMcd#?rcw^o$FucnjvnUfVV)l5N10~uAk$M8>eV7W9Ig)*M>#BssQ;KsnW2ZJ z8V62fD&;6W;7O)ZJ;_w6Cz(q1BvUEJX^`bndd&(~pKLlh;)V`staCQd5!)-*un)Rs z)0*_MJMBy58vMiLJjwA1^DprSGbLC2cg`DfRygV9NGT%hUg@;|X(Tf&a7881Ir%Eh z*Zy>2?U465fEbio_Vs)UsLv9&5DRCiLapY-A=j2u;`-WA}DiV~VpV7w) zy}B@ou3?!z=*Zl(b@`_4FS&u8`dX~|bBk%iTdmOl*cZ&IEbUBPdKG4Ld>tXw!%KZW z<;MW&muIctfpeF^a$?e7Olu6~ZJ!uIe?N6I!@)UvieV@PN@T4%ep#o^U{2A)2K6tq zk$iDaLAr!w8MiIzP-Nu&mFtug46y*UR{cltzHYBhuu$aCmp$1FGi>{=*|C&US4RE zl}ssaSCjV1m1q;SXId#|4_V!vo%few?$J4zZyUH8&kSfdcXLZ$aO^>LxI)%%3zA#J zNzy|IVK<*y+Xh)UN0Fnu+PQx)D_|GX5i0u=ZjefV1@#pygchQZd`@ zWmZ@rVlE=)ZmfOkSk&}EIvB`80x%d;ze{B)p+clGxbsx{YbsrXd6GFXEt!)@=46st z4WMET2{@-WS}m!CJB#CJDywdh*G3#la6~utvz5N?j=Ht2)|nNWVe2v4h5euzQK!{{ zi+USTpHE2oeV(X`vZKC?K+elcX0BP%6=vt!t$Y(+UNn4qt_$5pWGdIU5ViC2qCp?z zyKB8K(}ltu4zay5Ur#Lmt*4bBo>m5w_P=};H=~!ItS(oIPP%->l?Mj7D(s3BSfV~x z^cU}xI-e_Cl{ud)<<{qlzcH+ta6VV=C(*AQRrh0ku1t!^cu#$abF0UeIBP#W6J>3x)}4~*Pc(x6q*?!sj{0|& zq5q_N{x^AJ5a+0|XLxU^WBFZ^^4`(|78E~H&xd{S6<7d|$+zD<%HwNx3swTDibgo0=s@WB!2eXH4l;&z#VuGr8muR1!}S z7?k8}8f>M@@c_5*lugSw_*gu4G*xSxAQW7(Zo}%8M)rf2QK_tb1u*=mc@p;@l6J

0d4pGR7ai-fH0yrqpbc5vZZR93TI1E!5Kqg3z*k^U)6aPar7jX`ZBu8 zSs|m3m`M}Uzrh69S61dMU!V112CAo=nnDso{SuZsJ@kmE&2cZitcghP2r2|AQU`*| zE$t^NZRcOjslu1EEI(N}h>4qOOZQ5!CQUV-7Alv;e{pNeY3bT^1zx(ea>M5P5_m4K zjQ`^m=Ly1kA1L@@r2146jNiEuXvaCS%Zog2Cp&&)zsq3p__WaUybbLjZ|U0(sqlP& z#h>bh{mvVEPaPoGyJde7ZDiUIeIGjjACltl0I<0F$hDkQz7cp*x6_&m==%L=(s?=; zZD9Q-#Au(#F@u)WwaT=uxN&}Err#n0z65fztImuF@&reqDzJ(s)-!Zib%htR9k!Sm zz++}mbZ8lOQgi1c2?M8cZo3)3jwmV^@I4!J0AqrV57CFjtH&rdV2xtgz14g6Nq@o* z@Dr-yx*GMTd$%uVmCtZo?J+e3_ejXiS*gT^`Y(czWY$aMPhZr3MUP9E887mUgxj~& zi;B`w8!b<|r$!^4C)UpV=?Cv3C+c74I+wNu?62cXcI~QJYfo60H6%S0MXo}NGEn9h zGRrL}M8;dB2NWm^Re^#lJ$-P59&o{1DMuCp>9U8T3svn}2$t};LRB+reXhV6i>jbb zh{!5^g2&xT^|)K9=$lH7x>CLS4wRFl#J^e(V1WiI7HFVif!50@g{;grMx;$s+{7X( zs*5Ong3;GjeR6t4&WOmF5%nD4ZNP_buIpY`jg)!npOm&2hATKIf!!dy_@kktK1 z4Mp&vdgx_s--#L|vs(2XN4^|emF5!ztCE~35_7I5sjqEiE0*bL+WuP>6}c^8OIMHi zLGBDHt0Hn%M9#(yDHd|1i`!RP$UdTC0~p@a4Su;h6&OC1 z;PJ1OF4A-onP1Q!Mv>HG2wvD@pR3*`z>b}z4ks>9Hxn1d;48(6*(GvmjI{z+m+9eh zxq`}!!G(BbM6Qadogmh$F*pOR!zR@^P*Cd~>{@+0oE)F5I-%u(3?#mzkNZ%62AJQF zLF-a>iW<&LQTWFw!Hk8K4#YkR1Hq*HD>3;hloHY{dq_{TJ|6~>u%GV>XQ{*~CND6qJ=uk52Iqw9rpK@IeXk`(wrcE1KrnF)_l~a_Y;>$kH!L*Qd z8ohniBfFL|#}695;-``c<#g#(Ht5i?o9EG zLK!h8Em+;U>clo%g6=tS&-R}YwYo32HxF00E#(R8HmqTi&Ex$e?J>QQ zZwD?jH|0zxBE+*V0G0GYN*aVnI2a*T^#iJ#Q2VDwdmd_${=(Fxh<`N|a@GM%5By?@ z>+7M$aFs_kK9Ji^HtxZd(<>3w>xpd4ZoW|-Q4jZ$%Gnm2%OTVpIUhh9`amFzM{p=Bw$TQ+k-Q&p@d(E8i`ZSAJ8K8C9W zhCdkepfE)XRUL*7Hv4|?c8Tf(jWysNR-rg*2A`>DqF(L;=lm~4x z<`CtD;hMlCh^^vKvwk3hyQTf8sv`dmr={&`roWKtp{uC4+IP7|qi_~&JhYc2J*1Z3 z>GaN`{Abf9&$W30PomyKr&%P3Mmo`twAznUE!#9Q#m3Y;NB~!tF0KoR3)(nDHPtr~ zR}~$`IbwDV->udZWl{S8Ay~L_bPZog=x0*Hs)5zAxS%}2|>l5jh5S@d6X{7ajSxWpG>8qBC|TRvSTd#<9ev|x24>?-7y(JNk$yQ>4_@sPt_=<>7l0{dgs|G&3G>{ zPsX$hfUStpx@W~0Mh=ZJj&PWx2g_n0swIVtuZR z8UG)*ZO>V{WQzoeI#gNx)0>i8TbGv2Q`g}T3?Y1~a}(uQJXGnv7_Xi!n^nm6AF10F zRuqXBkmP5#tX8sGvz^~r#9grp~@u?0dvJbsaD5y5~Dfs zGW1_V)~^M^aGg!Ct0ve@FFFT5Z0O>Zeqd1Bk#j&!RvF{Of`JO=DdD7NOH?5UHDzUJK(mz!# zWlWX&4_gn8o(#&I2v2@}*P#dXV(XAU6`wnu2opU&YeK|X_rY>vL|O}x5ilY=IU=jW zXZ^X|{?mJFBC64xsT$3hYTX!AMd&HkzESUB-#An48)wR?g*-b=52!eUvLzy0^|q=w z3+Y*B>H)*XnO0xN=8@Id>F@I*N@q1w&X1@`<4n0QqI6a>ak8m&Rx{<&h+I}6mq+ob z1C!N2tC}iMQ^p20YMiO|j5C$R3MG|F9GElSpxN6VrM^!rkQ?=UlOAr?1MK#B575D5oO0VcBo~q(V$qFgL;L zl97$ME719^D^9lBr*Sz8D}7`Yxo&~HdDy8fD;Voe95#O)agJJ<`$l5cN__8emTV+j zb4vbEtwH$3_inYMmugT2L77#mp34{EWAGjL1iIsySiEMZt~#1Lz`L|H<9=jNBdN)) z72gAuJ}q6r&K_KAQ+@AOd_t5{jQ>+tFWtSo zVD}wj@~k|UM?GMlq63?<4p+6$%L{pQU5OwI*Pqz3fg0K?FXpNFL?~2BTiVvGC)~F{ z3+JjrHA_>sV10(hGbZ1b?{rWHn2r(0cje{%lu^6nZ7j&Duf%X8@@kBA&ue}SIdONv zrnPOYYg*EXp$6HyRaHo@wd>k?ZQQheJ(~6IJ;pvQ`V`uIVNMeUCw^5Yox z4zH{5x-24Z_zl6OfMZ#$*-fph?Uu#>_a*ibcdr<>6L0C^r!lN2evVk==7mJxUCc1F zZo{aRG3+Y%@Ndg6WAcvtDkkr$di>Y&o0z;Ozm3W79#}wG#_x(L{hOmisrY5bED^W{WFM zb}^M<``fxQL%3AVCU?WR&8_h@lsRL7)dj|qAD14>s`)-Vf$%^yyP`uXdhbJSV}#FsjIoj`~$jYfKa{@p9*h z(y{ysO^nAdQSEvJ^3E|&1k&tx+Irmd0!b_be@Gn}`mnO@>T*LoHE>HB@{pkU=Fp0Mxyu%aKiq}{YKpd$chw~1KfAVci0Z)MJ3{*M_3Q26 z)aZ(mKDTB-crvD2ly4c~o%MaE;S1WOy6f|+$j>RiBtlNk}BuP<`2(;Lr*b^dm&V7Bm5NGadnC`YBbB0otayk18H&kjz?pa+wq)z?y#9?I8!00aO$|ikbd;1x=4|cY%B8Od@ z$&1Zl;4guu>gsAght=shthPCPdEw)HRbc zm*2^OrY_Z8{QP!F&uS({tF}=CFGrhkoA~@Gr>W z<1%n*#h^!JFr;ozKQ0YREAWii_;j~IMn^`K?(twZ%w{S$6=SN;sT9wiNy~YLU2h70 zBb19T%>H~4d%9)p_$vQv54$TrhK<$(*^wE`&h9w52;KG-=(VqB_xE<5>_q$dFxQW> zDf(@8a$dp6=T!#&HyQHZW;5qK2Jb)d_J1*ye?s-JVlOW zw|ALY!u2sY`D(*|;AU))x5^1-8_vEikrT~T>=fUCgSp$}WVkC=;~Z?gc^aPbA7aM# zHtu8`pX>?@mq!9)<!N7hEg< z8Elik2G5kg1uu}l2QQcZ3f{!^9rDlM*X6&NUEXIl`Y^ahJ__!YkApAEC&3>|d+;sf zhSD;Y&wkVT8@Nh#Ve~#R2|7z$!4eenboSNcSm@_z0SW52RPsgb$?VWAw8TS?b@a zoq!jRPt@WeB1a~J;R!>%HC1+=hECuSum?0bKl*lr2h2}8%NQ?d)K&WorE%k;_EX0l zlIs14o5+v(Op$llpU8>**iRjMtgt5)ib~7LV%`j-BlfJ!Wh#r!K@?L$g?wUHa7a?> z8j=*chNNV!r;xaaXOtGVT6~r6F#T{#iod}jibyE)uhnsR;yPrn zc|0UIa!6=oLttb>aAbqt9lE{!$>6arGo{lG)LNgU_iPKCEGaZk` zGfb12$#IrB*vvJDnR(_I{3W(>waF|n7nw!o63Chv64){;_*l({wEt_jpJYCinIAIV zPyA5vJG80eT${qo&DjWEtZk~p_SBecPmRg;)R=5fiO)R4RbyjXb7@R#E{(RiG}y<( z8|)KKdUN;?b`M8vZ+|SKLLCG3aa8DX=tWlG{dOhn#Vs&qtb$ABM9V^bv^j}c>SSQhu>f;qFkN+cBLY;7J5<(x)z!P6w0n{%zJj|6Enp2sQkTY;yyal zZW(F2(`&>W=1*5Jx_ioqE7u@l*EI+0oEY+z7!7{nkPc_E5Unt zxo308fBBNmUUu;efjWhkk#yb5c);~vp3~XOiIl_oGU6vMt330#jAGY#bj1Os&2a?GK5&2)tb|xH8}&an=|ovc$OSt&Y`)TXGMuq%=w537w}Oo zl&j4}xb(XmKebKWqpK)JStP4c}crK;teVC1Z8nJFWzY&p)g0I{jT$!$s*1`B{Ap zUVw+_;Hek7U2ZRQRazDgX%845kKngX&tY8iK{Yc$J*7=lk9G&?VbTgcPG0e-x-<*# zY`>>|NTUXuTF-0lA|4!KFNlE$)5a<>(72_nY{6w#0Bx*TVb{4Ux)q$f!p|#DD|uSU z(@Oia(tm18z|$(8R`ImTKCSYfR&|SZD_Ai$y0g7^w`j@r+ht5?l}zszJ$YR!QBp}u z#QsV~YJXL!62e1H6{K5GXn39K3TJsw7=Q-S7>AojU}vYeaF-tnZ~0v1El2)5*6g8S zJqLpEc@T>)z(v289oCoRDtO1YW+`2Pe1=qeCQIF%_4c^VFZ^d?!{RS@Hi0 z_rJmkXET>D20lwYwNwLJM|5Vm3fWwA8CIaR|SD_l&!SG7anB z00QJH^c)~>#`3lKFnRFT#HB$GxL<56P&gi@@rua+7JR_OkII**& z`=*CP6l4d~H;K-}`_KZVcwMN6MS3_~JrXUJ!}9D5XXh%Wh+*}!!(l0_Lg|y;;1b(g zs*YX%fABr@!fuf$R_yRot|9()K@jn84!Yhx}zC^ga{VFEfgN8OX1S z!9@S5yhHb3NUP;456Dm9aSr4+gg|s6Kj`6zoh&<`V5q5Wv?#wFdGUSvzQgw&%&dI~ z^Y)=6J=-o*%7vjhEhg-D9u)z zOtmIcr?4`T(R5Nt_4Si#LFiMl&j%AKzAqlJ2)}(LcMnLn`xs5{C;JcB4M3BSzo2@Xd$+yJdgy ze;7!2&<&h;g!zEkx5=GC`X2C^CUTH3c_4rm)Ax0x{7x`^4=Q>6Lwfj(z&;Dz%LB)= zaH<5l52pDTLlp;$-ODjK*1#6>vC)U_<$wk4(*(ND;`VYZSrb7L=st_u>y<5$B|;^T zB|dU5$A~f=6yl@za_qis7>n+EMZUM6qAg53`I`bFF4(@;2`u0~Fn{4e)27*x{ofA$Q#U614;?a+*eq7Qhj7)v+D^66MHc*5 z21l%q{?pwsrz2=&y*X4=XDq5?bT1Zv3mpOL^+-?MAIppW3pAA{F@6OpjGtcm`-24w z6(LxKW}r~_$-?(>(9EdrfmOG`Q$+Z7HlbeyW%#IS%=!B}iuHHc{)&Q2Q*2?;Q#-@S5#N-Xx|;L3ZU-)PV!b95}E%2OLqbEx6aGi1rH)|4nEWj-?{&W@+#^uzDv4;Jp?7^mpXWB z$E5~7=a)JMK3BZW!sj|KwO`uWe@kf<4eCl;2jb2zZ9pj_I%vx@M!&Q7hkAHJ%dxGBcOY1$`acP0|`K8T)^%ZZku)fYq>jVCJ{o6|0ySaO!oaW7r%UM%h z(UZLUd_Q~ug3Aq81SeJ#MLjD&cRD7m@pf%F`anoRZJ&-dKJ@Ip2Vy$nFhjWiquPP z7z}3-`>SQ>J>%dwYw>wD5FF=7RM`{wZwgq>HlR3Lp|sfshVybToHwH=y_@;_US{rZ za=nMS`$hIUUS>jmlPURkfb##yUi6<)fxpkrUpr{NFfhMjIowpSFJ6O}^+tSFj|Sg4 z1Gv#)U^*3xX#&fnRf(O&g11u?_{~k z+bUo3&XcRXOXM2w2Ci=f<9WAS?|n^f@E!&0`6Bqv?|}7uS#I%u0?zYi;5^?2=lOfN z!}}{(&-dldK#}YWRDkd72flL{_|9f|C@@1F4$PO`fu-O)PXya}3OLWr;5;wj`Z92y zSId)u?O;8>4A%2uu%3^B^?V$h=L_IGzXQ(m``|p^kZ%RvmX`wW$+y9EzQPvN_rP@i zAXq0q3=RV0IU0QDMEO~8CK%7fU_6(B@jL;HXB*dB!FZkn#`8k?b?_SbP4G^zo;$&M zenoyC{D%A?_?Y|=Jm;T+FUp^TuYmvjk^Ck29=Ojx$v;4%d=M&<4?|tp6Rb5}Xn+ZX zhM6E(&JZ}xaA>ZHgpTI=cvBc^HPO&IQxrPG#6p*v;?NhtfL;X#^d?gty2Dh2?lG02 z2f%~w1`qlqc+l^e?x7!>n$T}e&(PmYuh1u^e>i9chD*$#a91-pJiye4hna?O6ELS~ zTpwbFh7U8t!b{BX@JcfxywQvdpJqmdx0nOM=b5JP#b!+SN^@ZNdNVeBD_cKzn{nYs z%t7I&%%t$EW?J|yGd=tpb7=T)W={BHGd~hGhee9bf=HEF7^yLfB6VglEmZ=S$^q>( z^74qxa}Y^3Wfp**;Is%tmf}*813{=MFcMJel6LmDK$vzMTDRXI@ma!afLDi3=+@50 z$o|CdP(ep%0^m&dkpNjb!llr(|0(#0*`=BUaMOJyK^jXxbtx1k+iBc>Z4&vB3aafV zU{m**6Ak^DveIefiL4Micwo&7D7<~=MT38a%!E3RJ((Gz2SKd4>9$|F(eR%sJDoVzx?P6pE^ShM~vp&t?B@`TV5A$s9n_s)uttC|1D-gf|2Rb+pknS0;6_r2Wo1QHS;G=U^^ zMCpW(KrqcDfPe}ic|as2F@<99UDvvby|Z>jKvz_(*!!xh>#pnS7R%cG@2;YJzccsV z_io;MLD1d(KL4L+X5QRsXU?=UXU;kEs-h75Bd6x#M?$6_kD`rSIxRomfI(FH= zS#U8ix9_#Po^T?aGZ_*A2K;rCDlUXgKWJ__5jaI{+_fWIXZ?Su&P!p5h=F#iWg%im z2ssWsH@ooAOFtSOTU;4Jowz-ZZTXAgn)vw+EA!um?X5H-wzg*-xliU8?7&?x3CLH7 zLm}tC1TRa}!w}#yywcP_qr?g&n7c?EM$3dPn0q7yb5Dg}?pdOhE)i|C8N#_+p>FaR ze)KEIkA5w#k$!Ql%oW$m ze&R-12su)0QqVI@+C|kYJ%Gijj%OzCO&Hy~K)pF%dE0Tmj@(6w?&t4K{0+^4EXSUw zAG|k-hs95fCY39N0q}i99i}LAf^O2Lsi_XbOOYw=k4$lYc#5;UFeWgq;~~{|TfiHos41+J1G4>U4nqWlKaPaY;gS5r=e4`;b~C7HjX3s47P7d=D0_?{ zwfz-y`FYP6tAxA?i91O`B-9j}C|%qQ3B1iT9Ft)z#6l-QEOZXULg$J5FwVAtw7nnX z>jNNHAEZ+tB6^N^h%OcnLmc!`h=T4=eO*HOE=WGuy}Fbs5!Hp<*N`q!BS3vs{S6_^ z2!_3h6^84br8E&j#(3gVT&GP{7>4E32!?$T4Ew?u1|Mv+k{5@lzAZq-j4-I!!l*dW zCpc>5O!BK`6YHpYv?q7uG$p=`q7~Y?GqQaO>#DnWB}M1xcvkh=T~9hmopls4I4so- z-Ulz7$dv8l7$EyMs0lAxIyKR|+~KIHTZuhZ8@DFImRyfpQ~yb(ThsaJt;nd=EmRY z9q}>!9ml3G#HX}Ne1>)GbCD#z6uIJGVxag&6o{Q-toT+;7vG5k#4fP_oY_O95KU5w zHBuAnq)(h8gIKK+)tJ4N*QYrweTMaEnLA(=y$o7&yfbW*O>2NN9TNF7ltlh@Ba)Jmwo(xYhHN(e zI}=8bv;FoD&{zC}1^tUB8d-rXqhVrzn*g%ZR=F`XU6r>gi=Cq8xKu9U1mk|UizD=Pr$e10}q)rl%RHKIhr1oW9S(eT zp>xUD1(pf)BQfwB-T!eC<^OR`Mf22tKdI*=m|iML9zUcNrxcuIRfjsc?Cbmo(ZwD$1(ZPY&$rI^+QblvX#Z3bq4lYXP^Kp;E&N6m<u^`T zURCoS)fw0bvg%gKfZo6W2-R|{{sTG#ThXR_a0a^s&cH+9T|Ep0JOTtfiiSUi ztCh#0Gq3|tJ^{M^N$@6~!llbIxM+D6*DTM0czyx9|BKKWcn#a>>k45%TxX#8>kGtd zI6m;-=sntd-4*#~tpVI={j4ka&Wqc@P#^I-T{a{!tH zdqLO7N&K_!0HnVmThBt8|LbiC|ExP;tIoK#FQY`SqjcYFrK{ZwyZ>xvI7T1OwS5}F z=FhqVKbsk5eTAQO2cpgSh7I&a+4Bv5|B34kbT=Gq#!($8#4Ym(+=4=wKcYI2bh4v5 zaJ{-0jb}J`uT=*Oe!UWW_^|2#&fvxns0~1A!JiLCc_Fy@xTnxZ;%?KUI$#KOPxKR4 z9e@N1)CZL6fClY>kyUZE3F^>vk2Znd-*eM{dfEhghJtdSz!tgpDj0m*Ga`OE3I=Ap1o9*sIh5VVo`q;H-gd>UFRUxn4>-LI$A2 zkOCbByrL)jK_X!^bQt!d6J;5680uh~`d~;XtblFmcIYx31HFaQAgOR3bQrFti{wp^ zShy293=iV>W6)uE209EcL5JZFkYe~d^cX&a9>W*VVfdD=(KNbN3qpq>m9E#a=mxDn z-KdSBo3;Jv7Huxwq0OT^VVC+Y=rC;3I-tvNEOZ!7r)}E#&|$a+It({Mhv6>hFl@)~ z$DzmYEc6&&hRy1?q08_w^cX&e9>bT=Vfc=o)^&PDPoQU^!|g5B~C!=v!a85WWS_ zYghukhQpxO&;>n)Bca1^GISWufeynJ&|$byB>QfI9>X^Lei(WTPePC3dFV0x4tfk9 zK#$>L*tPx?l5Jm$J`jM&@f#u+It+dNnWCRRSM>Lf6odTxioyQb&}*oHUc(~jGK8Sl z&;~t*HPB%=4mu2{i}C(TpvQ0x^ca2xJ%+9LeLwUV9)%vmQ_y30O-%9sSxoi6FQ)lF zgg(PpqR9V^m}y8+Yy`wCBSn-Ly+x@pT+B5_ivx_AqROa%j>A0YI4p&Z!zyu*u}&;9 zP7sF}5J)x77fXx{VySVps5h>K`0Ia7?_t<~T<>AeYWQ(_4|`U}e?{+M&q4Vw=soNy zF#jdJhdl@9zohrDX8=X%J?On1y@y5WNV?a04-i?ikDsjfa6A4cBFxwCSGtn;(mrVZ z+a&Q_YwE6^0muO8KJXFHs{*mjtzMjadFv_MCq6*>}a(2;0|jzlL&oi30z zYoLO;7EfucgO0>{=tvv^9f>2MBXKlzB#wn_@o_NEbu!+xJO#4Fr_#qDf4&x{3qNeV zCqM(DH*_M(pbt?6O^5@b2XU~tKpZA65uIX#I7(cKl$VK%pbv2k^dWA9KEx*ILp+Ai z4so4$Nn8)($2UPo;$}!H-vWu`TOoOTo9rcSmpS4NIaJ&!r;1Gwx!erV$}RFB$l7Cr z`vE!=>aA+XO@6yhjy^NsbD|V?RKJ;s|sd z?1dGbMOXkt0_}7oGw3{|X&y{)< zE7+d>k8Ei-#fly(-7_7FO)#EL(4CObn=r-O7=VAo0DK1n@I4H?zd*<0Z_u%LA37Ev z;5hdo)XhJFj>X@hWAQO`EIxsb#itl}pTlP47kC-tpLjL-YkF3E1LJ}_@ixG>^pW_E z{t4}>@1Q>sg#JWt=uc!zT?~f)#8|9i`%6m{$wVK4$Dh-h0psj66H+6tR&Xn_*=Rs7)kl6Rd2V?GsOeX<>Yr1nml)6*DHYmc|s;f0)Y7 zv<7w~Y8gjl`yIWE0;PL4lOIk%wwd`Ol7z=HTanQyX4{eNn!T*>5p2vRRb?gs&4HLoRm_&EVDRdvSEFO^4=pi|S zo|Z-QoSaE7%31WLETP|nPx79eOCQP#`Vwz={YzGh6nUUXm$f2C&KHB^0#N`GVVqnD zt&ByYSS}Vz<-y`;d5E||E`!=-1IUU-alZ_Sr{!|-Te(tAxbrCx(avy`GF%;vMvr#J z{*GEjoFuMx#t=t4BRYwzospbu!6L!wJr`t;NFJnnqMxxE!*>PJcGJ(ex?^zV6PYKC zoRUeze*=)fmRN{frq9Fcp?HhDys4uzN+@(|5L+26L?=@_JFpPlNnHkw=D?aDoV5@i z)2frV&OS%?nOadf=l7>7=?%R7lvoXpNCK{{0#h&Jd9eiY(xlg?!S zEOyQ|*-&&gTZhh~bGbnE>pYXrH|YYCF68g{bP?N%zKAYn2iBrDu$AZyY$bYwvJ!33 zm4XsN&7swJs&!Uc z?Mgw7)vg5PS2VS^x1yCPfWNr=XiV?+RIxiAzwa$$ zSaXMga7<}TmbL9oogurOg8Dms(9}B0{#4b~+1AA`OoZxJD?ztl$-0J6TW3>iONT*M z0l|oAbhG!1&R*8y&27-t$WYtb)!q;)ZQ^mC;$4z#@!W|t-NGfnz7}o(_A}@ji>{^X zEPhkQ!d<|mZYI0!dM(&F8fW2(0M7MPYT*h1&Ox-06)+BnV`ke^sX;ebbR#siX)sss zPFSV6)mhus*4EnI8EOo-*|7?4CoAK3&0Ff5OSpF|$o~UEJYdYGsLPZY@tf#o$IP*v zfpxZ8R?O^LzC489?AemE!NWCgYMw>6u>I*<*oe9eF1DcL+Q>+_oxj1Txn4Q1yc|)5 zd2kL18g!>ccQN`l(KL%z(n5powg?1?#cy_6)XdmOk7}p00I9F&_Sz6kZR3Gy`?H-G zpUbK|ILPxBffcZ_wX?LftEC4twTG5B!=B|RXI)5W39T(_ftlf!1`L3Gyp!G@zGZP| zr$2OfSA8>9vXn^Wwd*@NL#y32v7xmMD`CF3Kzn>lE{mP+Wonw)Wp#BnHQUgkcztrvgQ%;j(jo zn&D)Lyk)bQ0`?nT+#;o!3pPUvY`4Wr8jMbQ8IsP#1*zTG(eN1%)>aQ(N`}6Xbcbsb zDg6fAr9!BQWWo%APQohczx)XQ3ccI_!zi#5EwE6EQ4|!T!Lc7ld15>sBHWjzhzTyXcOn9S90>CP_Pnliu+6g) z9UR7++tV;s)0>eOQ2iZQ;?x2uCgXNs3gw8YsB0Px5z|q2Eeu53WiNNi-j~Z({dPU6 z8DAc+^Zcsv@c6PVIE2??F^4QX``*MPMgBsQz+xMJzA68bjwr@QVF$CfClp;{@;SI4BGZ zN5^!gvpGJyktVy@$EqA-pP)U<`l1a4k4DdKHy3Z%5ey3j@&0HMj0^RKaiPI5E;J4d z@~Prac;ED0tdVa}h4?Gh$G<`L>3zsGeSmY}r+Cr$GddREPZnR&FT__04QdBY7o+VR z7!P#YJMfb5no$j$@FJ>6fGhFJo{Rq2g~%RL_CoX>Ch0E9z*xzag8E6#9Z$UME)AD{ zpi_Dtip7S)W}eknk@28gd@#HQc#4;PGNeJ75X9;ugVbLpxW#9JNUFyRz4iq3l3rS5 zM5+xyCV``dSHTM?7*vaPGBnyz$?fLHd3%4Z4m#;)N`-mz+evGHS~?U9w|s0!U1eL z`$YDRu`o2iCUOSBL{2`0%qGYzng-K2GhrI14rXx{L+Gp?w+t&0*8-C`T`-BmV|qCG zc7ZyF0o0Je?_HtacF{iJumQ<841DWfXy`y3CYvyoc>*>#tL`vBF;oHn;8q%@DT|9} zTY7ld4~KcMjk`XKOf#2669YhR=)tUXEV4v3oZvKWArQb5k8 z9C-i@k>xZB{=Q%{GcY&=e2dq=!_e^Byb90h32H^Gq_&7@9A>>fl)UZjouHWbZx9mj zA$8p-59_t9vA#1@SKkg6PDd2;bt&^UM}gaF(3k)kKb9T)$y|+J%hhNCJNpH2Oqdu% z+$6k}OH&M*8UzhH%A{%RPv__v{0nd8g7W7qv)C!&Z>0v!HgEw(>0Jtv+OI_BIXg^;X&9OAV zWMg|c%+d24Xx(!>AGR$giNj9lnTHlsyfZG1xdzBpT;H%V)adj9ULLb+@V2m93U$=h z8@pDw2{NZNG&{WAZv3mXdENSzd))%Lj3;{)cgI_HxZapou{`W33kLaeE%3qn#Cd*e z?zl#~!?+5(1%^Wazf0E72tUoc55GfMZ83r9K+v7>q!uy*V*iOvQ>7RQds z%9gIOMvTTdTp=yQnKJER1nx&Qm~Sp8^GEP(f}QKzLN?PS>T<#1#9*{^wz>&2y76bj zDZ+d;4^Uv9w=sy#Ej@F7oQsCtGqOj-nL0hQnJ5n{N|svFOdfdn#bzOM;j)293}&o( zEN$j0WF^^;xfl-+4i>t7rpQCQ%{J+a6`C)y24Lm3^EF}(Vp@BsHU+yxigB$X3-sKv zJ18M%6U>s2JZ_5GD*lp_nn%akXJsx>?H4!=OAr7-nt}6w5dfQxqGzc!Hi5Kn`N-Fc zsStjnc8F7B6~bI2)19d22}LRBx!XuvsDp3Aq%=NbYcTE2i7Rs-`wc*Nyf-M=0hn35 zkmHEb8y;rXk1o6#JKTXNycUJmc?%yF#_>WlmMP`|+LRo|6jSAT4lrfeKk$~#NdlYM zpCf?Vysm@LSqpJ^Uj(cjgf2Zqm5=3rCnO4ZKFicO-X6V zc}xK+MG9+s>e1eO{sF(g?%@)d*e*w+Rp* z1|G&L45wyV0zU+jW)-z5=u=2%H0`7j*zU)38%#)%xZ}P|(Hul$QjGh93$@gghpHCp zsVT=*E%c=ds#@qzm9lD~k*b|gwa`pW$M+P!R&_V|7!ZNJaJhH=5gLJzq>&Ng;aU(6 zqdx7}^yeW&{Fj3SF>5Xu)X_u(Hu)6V2M-VPwA+WBVeAYKqLT~wS0Otif@n087XE4P z{d3D{@2>oe<45>spceiIiUZ5lqLP}bC3RJ}N`Tp8N-W0R4%qXZ^Xr@WT5wM{`oy+Q zT(pH&)Phmpj(khp{j~>``5*UrI78a)z7x2>CkCPh7o-jlOMe^?VP#sii^S@yGZYr? zV^zcX&RNj8dsyT572QLPd-r+qtl_f^8f)OhM=2fl%d#F=f3b(KMj1Q!aXr^V3mDX> z+ri*GHSle!DuXhe%d|*0xH$A)7>?!Zz=;+%p~)6lu2T)Z3!6?eu&KtKSKVj_mxghY zMm3b_WWcC(bS)D!CK`9{Gn!HDb3dyq{Ki&{keuk8ZZjq`2KKInuY&hG)^Vub(SvxPTxin`+zn{ z&(;gEDeG<+Hm&)ThtDi!<(ufw@+Vz#1*PHCY>q&LpFbOSu(e%dqM7B-GB3W2vQ;cZ zwGf*RPvu1-AIG;siVM3wk_2E`*G|K}lSs9Q!L^@>AAtROAX+^bAP)fshT+Iu2!;e? zoUp1+2fw})tnf;&6sH5Eg)Z((aLypnuSPM{DmQ4 zg*i@%vL(n4e)TQ^?p)M%0Gd?^C~832)uLf_h&u?k?u$WY9gGx95VKT)4=(DrG|YiL zM?>Cz$fJ5NcqsZ0l%YSzg*+iULE+pDTiMnK?t=n==bM;VkZr+VJ25#M5&R{!AUlEm z^laqhAHA~@vr<=OC1)kCT5&H0CT3@4XHde$m+4m{3#V8+F%z+wtFltF(pRm3Ipbvb z$driyEE^|Xe3>|pMcpnFX|Qyhjp4F3IV-z$V&5zytM4jh{uo{$TL(!6+!+P=5bw+O z?O-P>kZl3l#B4t_Xq4iVk(ItSD-mXsV`1&Fgmf+; z86_}W3ere%Fl}vvG%hYkXm}iudUIoT3rPHY=?sC53iQS$R|o@jUvfFka?1iVaohF1 z#R2%NOvWslp^E5^+4%YGW@N6-O64v==lswv;UZdNvhQ~6WMX`TQK3fU_MdbcFyR^| z=49n?cUETQ*kjZ|Y4<7B<1o#MKR$oL9h;nV@s)Js|E($Jtc?>hdD#i~&yQSvoSuz4 zOXII!al6&seB@jhC}*jP0Hi8XXbtw%wb)bF<6M0N_S7S>dme>d^B8PC$Kn)wBKXWF zgYkO`Vo$|?r_(uf24p_Zq${BFeH}tK(=Q+|a4v19^XPe${We`7QlY|>0o{=tx)e9I zmxt*&&%8C1$h@Fo9~C6`6uXQ`CEEL{*7LfpVI5{ z8~Uvlq&Ku2dQ%%pf6zwJ+uB(Aqc)M=(WcO!wAu8oRzvS;4fJQNiT~9r>_uxeVs7$V?;ndRRndYeCZbnOTStq>UW7G{b7-+ zKPA%i--vYmU6G-G2~BDeeSHRAf(wc~oQnteGQ>b%e=*3HF9!Q2iy^)uG0aychC^FB zAFs_7_&P+P?^rR$cbXWB*XG9g&KKi-8^pf8%f$rWMzNo7li1()sF>(`MNEOF_EaA< zr+r`IH8`J`!GsA^I;wV|^YJcOo+7T`hW{U+X%4}~kG*N&K;ZwRlz-Bg-ocdQ%wS3` zd>{OTeelP>d*ORpQc6O9&+nbIj}}bH^h7%f!Eq|Y(56V0s1FtH0;z;&<>I9Ff@h}< zrtAV4m=QNMQp6UWxmQK2_uJwC5+CfLdr-EGRt7tHPr$a5^Rs#1j}f$|JH?y0m2+T9b*n@aZ8jJ5kY|F0Gk_ABl>BOvy$ZQ=4h-!kOXHpIKQ+S!t`X zQnFHP`m;|~A4Pu#&OjcU{_KU=UaPXwvN9C?nF1e~dWGpv-`_zl_POK=nP=0Xhk#H- zkk%z<^=X~h50U+BIuxFwLlT(|&9=G|qKP16;u4}sym#Vl4Vw_nunEx={s@BC{@6oVAk>fgkyE8dM1Su%|KE*X zHHr6eCb2r#^>WrDcj|dg{qb>SuSdP?IlDJ!)9B@yi-^otx8B{()?PeYo%P6_qdZ(L zQ8UzDBL81n?v1RUEP68-ucxVLXyf(&-qyqHho3ASQ*hE2)9h`30$Ku$#xiquH`COL zcm-l7N#tiDD;v(GXQi1d2ZnVGJd-~1>2?YPX2F2A`i=qtdzCP zw}@cRUB`OFUi31EZuKC|&AwZtWn~3yQrD)TZ9L&}LW~s0h%tC)c7MD?J6#+vW{ML;g*Z_h zBu)}d;$*R2oQf}};n(S~y>bTZteh!sg*BE(@G|Yw`0@r`rhN|=0~_ znc`BJB`%YL#N~1%)S{>3vAPm*wXDQ@j|bv)+JnV)as^bS*NGeCY2sJ%Tyc}UO57}O z7PrW4u+H*?xJy0{i!85+yX70O%JN58W%;YvDnAhS$gjk`5R&+{mMZSk28jE$eDQ!b zLOiJLFScvN;vub0Jggli9@E;zl?)f`X=$A{($&Me_s4ue@}d>eSUFJt;nm44s(((qj;P2U~T z@@;!9Bl|%)%Kw5K?SEB{ z_5VSR^S>j<`#+NV`u`y(7^d9M$dZ$cJUQ7YkW-9Fa;kBFoMtSLGmS%Ku@RE9jFqy) zI9!$*opQEutej(VM90EwB*&nWO+?6OyMhvBt_jSw-?)t46-ZOfS5ke%&s5i(m;3%$%tI!%QzQi?PR@UoJ@=E}t1*A(VzA(Q~Y7dH|-FhuTzu$Gg$pX1vRc{Y0tIl{%+5#XbRd1!WS zt|wfJN|b=y41t&7#vHZyt%3JPp4DLY zA-5sRVRXhc+GRUNI$d!d)Apu~%K`a=4K(Sale# z5u`%A(ZlMDNgvw_%>GT=i{g_~z~~&Th>jr<>97wW9d@>F+!Yr?6qElziNr{U%@4JA zKpnrVWqE6qV0p7ar9sS>*+EupG-<9$2Lw<}IXe~XRI*cLQZ;nsI8lvBwIG%tvV z`35ZrLfixSQ|TZG7_z^}q{Sv3Y|_Ps#*FZ z2-_T?HPtKYJ0M|ZHFZ?Cw>EY)usH%wAXvV=BLs{rYwZZl?1H>=UDIl$49=WaRz7P< z-NNb;6ztZmK0@%t4cE>qEiF3;LdPniuB-xyGi$3$ipxsNii_$PTqh|^U_^iCW~;JP z`>SipDvD|r0!Fv+nMJiIE(s<(*0n*$o`uEgp=fS|OZ3~QgIaaCdaiC}73bSiAw1xx zvbDvr3KCa;oH5%?ZVr;-kovD}3pF$?Z)&J#TslK4+R#T>e7RR_hL%RQP!U8#ICDS+ z?1-=cJxuH%SvMOH-T}-qNO3GSc#=4FAz%mrwsIh(G-l)kfqMZcr$VTGJUji_82}oc zwB-$uVDh!qL)XEg6$GIseOZXD!uTQKs4TDe8ta>y*DG*Bc$#Mnt49CBIABrx(gYH4Tn}n z*ziHO-gGn~*y_s!UwJEOmy%Dr zRkx+tIg?UHrQd?yc?0@5Zz*kXs7EG1a1T;rtOUw6=BPrjX{PD623oj2!P3mr<0SM& zC(K8}8R3MvPKo*^TVvYO1SlDsxN~>w_M|kT%bbjqGhMvk{#!DpM3=Z5M)vNeKw2;@ z0V?;C;RoSQfsY$DYbty^OK(ks4=HbJf}ZA^=5!wE` zS$ynn+fap6webP;^*=-he*}?=PavZB zDJ_TY{$cbv1T4OS&8&aG+``v%KYc?l3m?4(oz_o;NneNn{mWAx1ekdjIwR1GW4 zP1!UqAr0c6{KrD^(XzQ%@jFB7l#*9X2zII3D?*(sTN|S&9M}%)M`MDR8F~Bo4z+%7wU|~9|!_D9bNY78BnL)^476*`d7RQ$GuTuUsJHYf(0HP=$ zm&%z^nnsmDs-kMndmuYC{H-qTQy8Zak~U9bLD{}>Vi&_TVXh- zt2s2;k=l*K7uUC}sqYv!D>lZ?S=8COn)UdYD4bjtYa0xNok5EXT5Qn4>c#nh4Gf-i z6ja|6Jl#r-foYFn9uB(lkSHP`x2OK*altqL0{|%uIIvFIkm#}EK1At^7B+bnYDD`i zT1v>gj0w{iMYC?1EQs#17OWx?3~I74N9utd-tC($$RV{@(ECJLZFIOrg*3vVcIvPo z&eUZ=mI=;UPQT8AK+_Qh9ce+B3E@L5I+~8LAklQ3LC0Hk0-b2lNnFm!bczMBrqf`C zi~R-*(oJUy8XDcS9?%k(mdK6H?DUA5IN0EOh;{~I#FtJha#R4avRxi*rG)}W?-59U}Gz$ zIBTYcVEM#R?d^o7G0W{M6IXf*3J1<(iivbic%guPLp!h?i^)h@fC-Clyl(MgfI8dj z%R1&abu=krx_|UAnGZXPFxv$SgXldzvdPt$i~VDOsepOBP&=cdy|o#2#LU)i34q}> zO`)}=?Oh$6U8{?`nxUJELt}DtD{DZ^U)wN~t&sueePb$8G0y9pfZkI~Jg{tKRHq(* z6{EWADGtX*C~tBr8-VW~m5bfNcuh`KhczH)IR_lapo zt%|`05NF!DaX4It)?owT(J(D`O?PMa?)H$$ix!oZEgC)_3vfgcluz1Nkg>B5#IHCS zAA|7Orjc0()Yi*HQgIe26(+EshIod22pS*I@PNJ{h_Y0+o9i=<+2EL_!dGK6nXsGy zTehGm6Y#;>K>Z3cq1KQH{f#tO(8Wbn65GeE+_>vg{Z?&)AKzQqFfNOh;^>3{JV3GLaIBguORVj-9wr-x97tzY=`$+xKTxzYcIaz7LDe{Z5n`=f=m9@8-V7$Th8vVG z44kak*@XnLF|dD8Ao`|3$5D!5*}Zjx`vLoy(}~a?L5~s51}5|gKHLVX{(&aS2w5Sn*lM*4Q20U!3LcCG)vG3ykYwW%HlX=# zD+;h|0Z`SVk&wD|TjEUsdlha1K5^j*Mi7^yBgEwuATD$6JbmbZHDH(Fk9BZjm!;6! z?v$kVMUdvoRztQyZBoJ#t|?&&*OVRXbh6WB;Qj*sT6SOy*Thu@oFmvdlAWX2Ihvhg z*g2M+<8U*!YZw1Io}CleInj_O!HR=y<-p18oWjnj?3`xE)BV%mAMj1xtPxrK;SB%u zUvJ=lmvZP#|BS(C4*qfIEOyRj=Nxu^!OpqtoX5`j>|DUkh3s6!&M(=yn4L@5*WM{&F)rx3F_7 zJGU9~cJ}XJ=T3I+VrLUOceAsZoh|HaW#=At?lt7EgEUXxXUJ_PE?(pV^1&c2klVS7 z9%AQVLp~CqL%6Mn$VUzNm?<9*(o#-g${nVB!jMmz@~I$&_|tg#v?-rq|5;N$$Nuw% ze8H4225Gh2ZpxRq(wBqs75N)>Ugh9xLHRldUze{2P5B7k2(?$iK1wK06--Q1FL_ z{3t+Y%D)@(aT+Gf8;;-*FU+P|Ki}+LHUh* zo4@U3=i4A4`Oc8LObw7-p-`p?q}C)m5HvqT(*dpKm_8 zk`!~!Vl9`;K!mCFH3W|it)HRwXFt!>2CzR67|;dV^Q!6&LS*BLPpTJw6r-3&DrG0I}2&1l@=) z3)w%2i&?}aEaof+^RGiV;!qAQVP`2PsmIXKmhrC!3?8kKlY|(+L%Gi7?0{IZDyu5W zDvQdO%qc0FWs}o!8Sde9r6nbG80pMoPjd6t7T1)NRPt8|YNochsJvu}{cTBY*`gAp zw7-=cR9#+HTvo^Y@v@q_d8pP-2BNKc&ca%7*CSsN+$1FnQGykYN04jMn1SyUvY@J_ z9Ka`q(>Nc}YD&t%ub*E6t@dzD-99cT1Dk#U=y7k#(y|g<5>%BgnO|0dxZd8l;;NE^ z%4+LMDvJSBVtGkv-4X!gq)e(Qn?1+-A+2~}F<*ZaReDk-IH<8pH|JE$aS244sW=UyHQ3b|!T@et(7elo?6fv`s zm$%oihB=t}_D;TO0z%~Cxfr$Tvu)xX-%=a8+5u)~DJL#tE9A zUG3^p2DtWqwhPA@##0rrfqM-b6d|4Lom)S@acUJt8C_BV^8XNFeRuW90| z8$M$P_&iix4-Da~6N8-jZY1NSxT>NWQ_LBL6;-oJmdwJe#NfzwR{*sfR99iCFmBl6k#wfR&~R>KQ4QMAEfTOIawu}TJ0hcXPKnwLN^7br zmdviHnpZi?fm>I}M@1#CDlM%osly6`>AsBNn#sY_n?Uohc$mY=U&WidLFn~(dW7#W?q(zxd-BBhsP+LxW z(~6Zn<_q!?Ro&X$)PQ!Uw6(V$27U{!tlduu%bP;YjaAEevBDGub&$Fo4el&%Zfcta zNNuz8Da-IsM)yytHnT;sVZw!ZzG3-Yiw81V*VcsiwGTH*hW)Vuk3TR{qdueEZLMGn zg+H%uZE5X*rTV4@2GISCUBm&={gUJY=zd69!%Q~S0q&>l&i4A2jy4$EX=zwri-!t; zdp9l#aSf|HozV;2)b=^B_E*?rZONKZ8@&h#{-WwZ%rtFtS!C zTlQ*)a(2)Jm`ht--@cv!1t^KDllG}T5M9IxW2iW zF^rX_5wBUSwBKYX1-I>pkOE&}6@0wj9SxzDP*F=KKZ;P_;YFz8Hll;exe1<#pgm}8 zGm4J+IYs@b>k0l0ERL~T*Zq4eVdS#%CNp6aw5cw;;5j`PVAERR+G0!fkXu}CN(1ls zjrLc&^xQb6_QJV9NqKWH(UY?{W)ygmC)&yF#>7t@ZYbs}UglX5>gcpT+3=tQzVHgU z5A&qhL|+w_oldExGdM!YjJucbY-f|pRxU=Go3)8Wn@RXnGta&`&UvGl6CIoJoWo7U7W34h&F z!JtIGTtF+`1;V)==q?HbE{&nB1fvVUv+#~5y)BHAj#47C)h#O>X=A@;Ag$ep-PY6$ zB#!er6R8)(Szj}eJl^--;q=iG&Ubv!H#vP#!0wU({~*x&sKR>Mj8zdmM5ZEV^ctKOdnw>uyKzq| zFU2H6&X{F76?H`ymxgaK34_QT-Yb-Nn7eWCb(c$T*ksIrSa`e%ltI>HRO0;zLOITL zqBjLrxL%&BJfw}FVLjLANvA4inK!psPaMd<-PG?%2r!ZWhG*#W9o;Ntc?(5%`;N}W zgy-a?UTP)@>AHR3vBka66Oq-&ZC*5$#a(+6Hhbh(J=RkJJSulrK|jRrwg6rPN?qb6 zLVxih5a%;5FEe8(GhSZef1MXa(|{dpkJoV7?h?ggGv*`D3AbQ3ArI{6Zw!{Y1b_t zDM3h{x#J`vVPYqVy&F`JJH#DEk=6uWK)A#?t(_fht&lpgNlZ3G7eg0xFSz@_T&`x? zUS?`knG%2wm*l{}j;+^?gg6YA+XTSue!=4FzQg1d5OAY0ae2`xYHoJFfP~3*?fNPT zuB4@Fb;#z@AoadI#qE|717U(vJXItplhwAI4}%zkNjI%(e-fVggS>(J4XcO!@Lc3W zGIm#f-Y@cHw`D@UBF!$s+j8*u4QO*wGJvaVwTrSzv5$b2*?WxS6%aJM;x0rV!gvMjDJ~7t zJ~;6x>Nb4tjYE5Q6JU-R8cr0v5_rGICqKL?FdPCnUNx-ZkC+TzuB(R^tz*1mVDwU_ z7?&&SiO*4G#6)0Fuy{wew=*3vefxmeT;H-{l=EfyB1419L7%3Mm~z5LWW_YLK@BKa z?B7Y@ChT2}7-_-q%Yhg~iA|6e3at%S=Li$=K@Q?7?V&cv?%@!YY>P5+QngxOIde~K zMe3MuXe@k$0l>#8TeN6!>v0|JhCW!qkr~*&4#3X^Clo3yq!4lKNbW6-&r%0q(P#G?^!1{ty!cHkW zv)P%$PPwSC#L=AY1aW``&Ef+vEbVf;Z^w-mRE|%!#3}5Y${9|BByhB$SPOc{XIM}| zhI1A>XLHJP_}4G^*SYMR$IkieT)@tS>|DgoFWI@6;kbmI4FV^Q7%?jk(P2T~`EpBK z!OoTJTqUly#5G*XwOqh;>|D>z4eZ>=&PH~A#m-IKR@?Y~ch-v~pz3Ui+t}H{g>B{J z_i%ELiiXWYu*ALM*Os`Coo$@2SN6n?oz=n~U04fU0Qe3{M{jhw;!EZD_5Q)}|fKIomC*L%e8domv;x^yo_5Ey>c> zFc3;SuUj2zGJ7iUa|PqZSaK;3OjR9}T!u%N3l=EkB^z+^Eox{8bwH)bc@x&jGuG19 z3ed-@fbo{LE*zL(Y3s#1ab$RBf-~vz4Wov8<8)%=MGlQexptm*zNKBDU5J~9=n@&R)y{6?3b|U^ zMcOa1*l}9BTS}W->pKnYVoSS(=g;F%;-}O|w8ICrv<=#&mUfwTmZe=Tc7O=Cpi%#4 zOS=+|OqUs!c9rIIQNl$R3l-`XiK|6yU~&b za-b#i;bJnH&iygo{jsn6V}d2;$@!M{nD)4#Ay^Q+)uDNc@4rukC83!zC~Iv=z!|}%9Z?$i+-O$Xy$JpaPUJOF&}Av z=h8m5v`@58E$uU2);^c3EIC?YL0ZXhc-}4s=e2dMeF@bodal_=Oi;;c=BS0f4E)vl zPQK@kk=^#r%xhIKk*?BTw|9_T zaxIpE!$$4U8r|qRkTuTBFoBT$$aoQmD7-@NefA~H01tF^Kw<&UlS9{oNvH))ohxl# zxNUphZ0aal4xw^Ph8SeI959<<2kMPqJ!e(}s5cx5?O%hUJH*Z9VTWPlHg%M%3!8tF zOn7=&3aF%VzQZ6#1KV0VI&1KFG`6fTzpwkPk_XMMS|tz~!#ndD^0$^Z;WQY2(7pRB zKVd{CH>g_+9$*d?8!OOaZ_(i-An{^^=%bR@hY;^o9`eLFkA}BXb%fQ|01A+*FDtPwh~(|r<5$75h1*wgK!xQ(%J%gpwWt!0CkvSUhA2e#Sm^=&Kd^zL?tTKpYt zD>3kJYKqC_iqhAr6i6GhrgTq%!rJQ_oA`<^sja=0$q;ADW^}|9AKB5>tYmJk&7`Vp z1)>^Oh1zE-opOIu3oDuc6G*`qIgp-P-Gx&VGYlO5RuAOza!lz?mxhTmfb3T^Y#tYv z&X~u}6{qW*KCv)4oiWDq**#{csqb`!VrCggXBXzf9OUZ=(^&?9oFG1h2Wq#~!zqFf zMTWXvX8nUe>+znXee0xPPYIQhLQLCB@7dTKFfbSs|w;?9fUYu3ES2v!UyV_$E888)4 zsZ?MbO&I&_tUXh$fQlZkZzzSA$=3E&aR?0ztm0;M+vrMpv3OMlUXgEN?As;SZBJe1 zNLzW%^@CzYYRuUjtr!r!qQ)cwG0W^9^d;*}wevkFPTP*an7fm8U#IM^C>^tzHG0$y zWDGd=ROU^1KW@&b`)VFo4%<*&Sy!bphHx`Xd=ul4{ zI_!&BsRjFeLKThFF-K5OG-iQ=SNmfXj&ByE44i9Ro+dpK1Q@jjOhBw|>%;|dN*At* z)x21MNr5SXlIK;{l+0#9Q(JfnfK< zQ?N;mBpn@B%V$uW}o3VF$YcgV4}g#5>q_+rXn5;G!+jXn)1O$Q$9Fp z$_Fz|`QWE1A1pQHgR7=|FxHfh}SK=>d}cp<`zJmJL%AM6Pqg7Bf9@DhZVdcySxFY|;O5N`B@LkKVT zgjXQE(i3h%_^?PAs?b?tl_z{W!p%|P)se7hL42zx+=lSso^U(D9iDI}!d;&58idz+ z!s`%T?+G7)@R6SIQRsiLLsfr)zodL{m6Q(-sq(=jRX+Hk$_GnS`QVBwAB<7ugB7ZL za6^?3hN$wv6IDLgqRIz9N%>$KDIfe%<%314d~ivX4@Rl-!7Eih*rmz`$5i=Xn!=aN zH&tOUN0kr$sPe%gRX(_+$_JxV`QVi*AM8@)gJTMR1~W}n7<^OZgLSHWaD0>x1}c2X z+|uwoyA@$DPQ&5b5e8F6r2~gX`C!5*AG}rNgS`rW26I?d7#vmQgQ*Iin6IjQuvV21 z?kfBl%wSbv@K}`(HmmZ%X;txHw!+U6k0QUjZu5M5%oEOn7QbNDJKQJGn8%2Pu}NI5 z9yaCo1^jr93~!s}PsH z@U;8mc-s9*JnjA>UK4)_4|%@~CAe2qjR)_=_2hAx?EdI*JzD&qjnhGqP5YT+B({z9YgnN zC)0NA4Cs6Pf}YYYr02B_^on*BUU0ddey?rB%PcqJ<&|6LJMcm^?G9mTn?$0vRitST zir(5IB3FA{4A7ny`+(6`0AAf_?YCkw_;RIS!5skRTQ%5j^R&N;rP@bgmG-%4gE7=D z?Q3y__MJFZm*OPdCr;NB#5pjIdVxMwT&2T?k9bNvZI5W|b(&JNK0imliZWo*CS@Bf zSeSOuy@Z}vv^__^n&#mZ)zXC(kMLuvTWPW0IIZtxG@e5+Jah0vbO=Akx0w$0T}@g1 zW67ml$kK&r^{S9%+fUMVZQS*I;iGu4ev+^7(QM!Ld@e4BNAW^vSEr;Lhf#0G`w{Qo z4y#BFcVVs#qz0%zv&!^g%0C>&Xih=+6xhIEUveKqQ#ciU470oXBI>0dOgTE9o7L-S zw7!g{>Wx&XFQ+0r+}Gr1tBRT-o)`EI)oJw&2z)`jXrs}i+71P0R`nJNGNszCuS4i17voUd zwx6b-*d61I4#r*7ZiYg!S|a8 z%-PW+htd36T$qPP!~7PKz8;48CuF`nPd`&W{HATLAq=&p;R0KnvPypnZc$_YI+dZy(C^4W<4* z7?8uJ8y+2TfqpYC&;?OI`}i#II{+gzj- z2KbJSfE=@!^OSryF36eDAfJS!?}mGZ z?yeCAiWKc-VR9b0Hk*TQhN#CEu?=7Lpm2YWp%l}UYs^LI4!`( z{kGC!%5I3-IF#KG-vg-qLDc>*<@z2`c!5!c3}E2>Jui3vIORTva-T=JFQMF*z2$xo zF89~Y7^v{VyUK-kD>bWev3g-zi~82;j*AK3hwVbB8}eDD7!(fs_WGR<1|bfO(y z+?X}p8`Fsl<94WKkK0OXH&EgxTDOVTBjpkJ+f6&wQ_TK6v~vL3IS}m}gmw-=JBOm3 z!_dwGn&~g3a{oxG_K#BSO(kFV_Tn98@wxaSPJ=t68$1Dtz7$_MNqHyq0q58WD<8=p z%7;oO*$rNkM<|M3AMt3m9wtm9#9eMQap#{wy1$45{+X2SFQ)$fSv1IBqTuxqcUZ=} zB=-M^e}sXSeD=mMdovB=m#RG^w!a*qe};iR#sPXC7w9~D_tVwx7awewRO%N^D*5LF zY#c892Lbg9X@Gwb4e=iw0oz`Aqrm=GT(I+^!EON9UyE;?79Q^mE>O?vw3Uqo;z%3v z89naXOx&?)EjGL5P7Otu`a1!47g>HVx%_J}T-MP({`Cs(ET*OVIy=VB2*P<aPm zI0qbHQGwGZ3{KinJ#EQM9~1uiE8jzK`cDHirvsWZsJH)2VDT(q@$3jRx$&X-E)2~O zECjqO1b7F44b~&WXMC)Oi11%Rrhfw(uq%ER*ienhay_!#Kmy~+9qvavBWH*^a&SK2 z6KY=13k_@6Q4amr-1r1K>azO{^EO}*5X3FPc+nD18P0I;rz;|x+6o27p zFcd0aBJ3EfHwEl(rDL)2cqi>f<}ZNGI?magc#p`2t+3%39>ZZOjD36PsROYAQ*uUt z(u^Qw8woVnuxPZA2s5xrG{dm>hrXomLN?tYp`_296aON=v;eg~e4dFpIF9h(+Oy_6 zYr2kuYYzuUgDcFZfKh<;w2=B4BWR#8G8)q!mIJ1zG~ym-MnqAm1{QH?_6+mL9}IIf zU_KBq*8t{Pz+4BI=Y0>%fw(Y_jE4CTz#Md87RzA>jyImo?qPS7f;sK@sHJB!ftolE zV`th1I%6B10JhbM6@>_c*?Cf7{uVm9(AYw!6ylV;g-*kOI$g`JMfAAMbjCw;=4Ltz z1C2l9IoPuoc8l0d=iEcTsPzs#PUzc4=PvZ!L+90U$j>2U8_gfEr^D3X`OLbC?)b*I ztgE>&dq>84AoU0!^++J~C?NG1Dm0Fx@y78q#W;bAj1#HUIEgBZlc~-)g&K`h>3HLG zI@>sdE;G)gTaB~mZsQ!)38Trk3*(K?0^WhMi&m(?Eex694sEctzNR6-xfQp2Mn!iI z)>fJ5b`L#+&e704tvTHGt4Y6$`FW!eKzAGr58W|uPrE~*Unq1c28nmsfW@e(ffvPiMLczreZN3oMA$(&5-<`l{@r=qxQ*~czUrbhD+YB!hA zT5~BKWiF!=%?3Kv4AD8}ays8^a(df8_**cnv3fRv|Gx`eqNoMw!!{J82H#x^vx-mNSdRtUM;v^^Y!mCwO zuEo*Q=tQI*AO||VsX2q=6x6Y2y;;#?XQGogM!GIS_^58Pdu#x_UtLN;csFgJWOz4k zAhQ5hdAD$1at9VrEzL)(=VN}bZ+GBKyiY*pdFa3k(SaAC123Tha|4YvFU1tRjAomc zqZ6;71I;V(!qC-tR_IzF|t2-M#I{{oFIVe25 z{Xhs48K>_tLO_)EFuHj}-x|S)mulEsoYc_*0JVS?E8mNgdw`SsfRk;&$%DYjcHrb8 z;N)SNV?II^=A(F*=`lREw1XPVC+RTrDLU4ChE6h{qtnb6qHwanzQ?k00u2ji=>D%%PdHSL|=Xe{d_!_rksX3w$H@SD9r|-o6j#+E5Wn|U! zD8R>WpTOHnckwt##3DQzZ5~bIm2bCMUF@0vhrRcXv$D7zxX(QI?%wunVPSzw?`4;w zpdeK`tkOZ61r}I}l*OgkOB7Ai#1=IHqfv~K#Mou+KthygEYWBZHHj^@bfd;-P~PvE zd2ZQzFNpc&_j~_%Uq0;2^UO1M>X|cV&Ybd+6h&W_;^^Ji(qpwTn=o``_`X>GV zgA9(oBcr45$%N>i@LKg3VB)VbC;B%Q_xt#o`iHEDerWsMU5dEIb2L6uZUK{FKiJI? zOS*`=lmH#wy&l0xfZ^>Tj%kOP_Iq+xSB!(B*DbZWDBJNZOR7@&8|B^%y0xd&SgH82 zGJe)GB~yT#P&W)urGvti;p@1Zrx|M1+TOVqRjV_U#<{7) z+pCh$q;5Jkhq-WlR@Y>FsJl?5_4iNd^PoInWQ$bu@SqVz#cs0Lf6nNuljYEBw69Lo z_WjT6-04cCj-2@_!%FpW%-3J19=8r z3lo6#N9Xp*%AOvO0pc?tHBuToM%u?FOW)WO84#N)14$bao5f(v#%IWJGAA~N!I;Zn z%(ETDQOG`QM)u+cnm(XX74+e5dZ4?z9yl_6&_-nS;V5lW(1)pg`_itRjk0Slll;(D zX%l?hrGTS9;z3ui>*5XtS2vfI?HD_WrZ1%FwbDDbm}W1Pp|LtVp)A8Q+;aSzti-*^ zNir|C+BO?jyf%9u#}%*7r-Hv27M1F9x#pWsX}p@K`&b(>e{xEqU}XD8Rfr%osHn22 z{WfWn3|A_XkFZg81EsSz7n$w*->yp1&>x4ae91&zV-x66=rQ>T0wR0tk4f9JbDI-b z&>!n8PGNQ)8mV6>oO)(q{k^i7YTCK90hPslDsiJjUMec4qCe=x!$f#PRqYW^v2|}J zMaNrP`qQCBsUq4Wiz-R|!{=ivl`^T?F2YFlo@8W~BD#qD8TUHE-v>5! zgS|5?jy0*(jBWKgO<= zf5yILC#_Brda+(?c^}Gp#qF<7UAukK5yR@eVV>y4(o;;S{boOQz^r_cTYwgmdi_K` zlk$kypGj`FpR*a93jI}DT0&GgD*$6?Op91sFm{u+NCL4FrS9(Hb&t|LZcwZntk{i` zh~31X+-w`m_RX=+8;~Y|vU&FtbMf={$vV(GBB(Vx>yLBDtJv*iJgv?sOlcrFC(qw6ERqum&r_24fqow&8pF&-LG1eVZ! z`}E|K#1pm1np`^qpVr&>`&> zOIf^yG>=zG%Xlm45Kl_?IO0O_c5+y}qZ}3QgiEW=GA`alCdIqTv82t2_mp|@UUE{r zw=5=J5$_|L;*JxEx%&Om5-y8wwWIWaVreJYj}VVV3^tLY&{OKh6iOzQ(WKHKwt_Sh zq_r+8E>rXo6sl!r5o8gEiYS--d@a33v@ckCFu`a6NB+T-?wxnNgS#~rd4 zdZtl+mf6MZT8fXB;y9O1@o~~RKAs_&V8H@h(wx%ArU9-!qpLmC&1WwNfl5`p%nEVE zXE4&^QahRanC9zhJ4xr$t+qsY{6_W+kiK4ODsiiE*>ugJESAKA@FMrEe7f#lit4!nD}c*9SgW$eI~)%dLp7mRNj^l*ZQrh3lkk{1oXKZ;&DJ4YoNg zCEW5PphEq2z^8o1VjI1O@g}4hRaMM}9--sPSRBRnz#VC7O6=AUzetMWU!|U}@wo#pps++(Z@IsN!aRS5vTx(YaM1-RvDxxQa1_s(6?x9-)dy`Q5Pv zs~D48#bach>`e)<(iDbC7s~gm9~WP5#|GZ2>{xr>oW<#;?k6?T-aZfHX|i7HLG=&h z%Pm!0xDU*n;`t24uf!r`)ZJXT*zdrljj5<7WF@!QmHhVSRS?COSYG;5jq-Hx!iQ(H z;Oe~=!gJ0K1FcYlif-2MmxAh(q!si1jQH_qr6m45OciA5;xB-_UX+3HUxB=SBg5k_ zfxun{!e5b@@!!e`@mFPO{0&(d|AVZFza<;uZ_8=%cjTh@dvay`&vH%tFLGo2ud+S< zcMEzQC04Q@2by~7i{RTnO`?R$BjI*nP2)}TrU&>Yn+_P5LkGk^rr8(+2(s$_t4pXi zV|L2kKmztzi<=fJ_iIBc?H55>X2m!p^*M`qzqCl8QI_zeS0ZGai{H-{&83+))0-7k zbR8Axx|mn=NMdqT#d8(UH_9)!AXjZ!?_G#sy(?E9KS?hqr`t&-) zt+yULF(1FnbUIZ^pP-cRk3wiiz`2|%Gicfj*kKwwbUz5{O%hX>iD`6ox-?JBpu00= zNP;sY&&MWUpe5$Z$%zGWZsK^kG;yMQBeBqSKPi#Vxl{6B_dI2Ka3mXVH-HG%BAR*g z(g+9evhb_dut11{@vpavf|G-z6v*5szuIciel)Zl`c_esYopyJ6RT{U3~=wzD6L?A z8XRtB&~?ikS5@)*idP%uHHtpgZJk*lVHpyygE-FMGcZ#6fV{DN|37uwM>gFU%W#P` zlJZ7czqF}VSgD}IITB5r3(TG;?Gs-CZqJu~i3{Y2#6^tQ*JNzsV%th9CDW5(@zY{K z&AbKa2HzJnczRXEn-zb^ZE#<0-&W~i8~j$P!CTcqt2UVAs`Bzid0TNN>ngAD6RqOl zF*3!*S-X1T8XA8sjsF&n|2B=^LgTm6`0vQ5#CMtQn`BzTorWr;c%Rq~B+@;=tAuv~ zQ^GOEl+yz}Z(l`Qf${kPxEF$Rd;6|uX3JbEP8J^o)}IexJ)*E4IS8z`qe7}y01DPj z3fh&jX`bdGEy&^_*?Yaj4<(Yg4N(6Ppnf}`euo^MxKlK!Ie->c!lx!9UH{&WkBLp0QxmKI`M{#OS~yl6Mx76c2@wq)UOGsJ>y}g zDL~A6N2FVoE@_sYo)~Gnp9a|sdbM;`;sYs7d?>9FAKSwDZ7Wo1uoDv$_jl$}ndrw? zxz$|JD1V|zqCaOkNJ7@>*zw*vkr-~rQOH4Eqx@wme)%FWs{Xot{~P+-_|Pz%lQ5hU zy-;tVVdQU)sX(!zt&{CgLl+xeslfQ43g(NWpKH%}bqPP({2aWQNE%H0Quo^$uDjj%Y zNBVG!rN5COEYWhHzP8E(nh6nykCYyti6WE*wtp(HZI|neZf#B1x^g^+kea%RQ@4uu z$!)kxByq%6D{?!N$5~f9{zcK$?Gm%h&nKGhZ_HD96%+Nb!tn??%V}2oM`y~?ogq2h zA1ChkFKwEe*c3}FBG=)M`Yk5#E%~F3BT{Z)C&8%r%*LOa78;{aU2WrjsP5`_H{n+y z94bB+bACH1_1jA`zY`PQS&sC(%5cA%jPl_*`@LkA-y0{pRk-KvBOCl9NEKUW~i(XkNy?-%-d!Kybg!76YN2BmQ0d0R;eG4Zx9^DNK ztj&L;8n*6RHn;E}n}uc9Ua~xxYeU{z_@JjP%#b zbbph~^-q?3I?Q} zBf27>C#xHcN9(iXiq{7KxRraysvRbz3&eyi6y9eLqK`lp>q1TU+aS*q$Pm%dCIUp} z{QpA%B2UiXrbab#zaux=*o~+?BKenr->v|^T`A3du1NiB7};-2AOAWT=zm8B`!_JU zkP7}bnd09pGyU%|%D3PZ`&L=v|4>f$Z)22yB;WFHmz(`NUXhj8@o#@>i2)Zn$v~>v&YnvIf(tFEvC^VRG(Lq8jX)uZ-xM{$`$_GVAprpO5X+4{%9Kv5x|Xwce1xCXx9)5 z)>EmTPtXtX&N1Cqn4W*21|WDiyT$5P_|3*_{% zboTd25C3x}bH5BI!4YzaC*w*&GN~ji(@KhDb_uR&OCq-a_Q>mT*UAUFs6KQ(tX>SIi|sP{R!nPXslB_tYgC)CewAmuOHU_)%S=L5<){ zb%_Qwf=AUQ8sJD+p9pH?0evE<;WmjUf*N^9p9pH?VSOT~kw^52phh0mCxRN;sZRto z+(Pk0P$RqbX?I*|<;VK^6MZG9kv;mfC(hGPWAd0h9)T4}%FkjlNS@H(Nqv1%GyFUz zPs!67Jfmp@Psy|TMDUdSLZ58#T%6bE_4Swf^nyOU7?)qkuOspsZNf`h+RHI{MSiQ_ zey2~r*QZzY={0?NU7z02r#JQK4;s9suLQ3MPFj~}@QS>nPd0d0OMXvZ{}@NQ@J|u> zv(6LoU-S#{UnBB2Xw*%>z(EYH;mE1(RQ$yQB`Kc+>dU@-HGUj$J~F+2ea%`m?shO2 zSM=TOt!u7KKxtO9~;P14$|t;eXhwV6GsPD@dP?Gqc+qA{$3ahRIQWSF*W8FsHU z!&LX9lwq)DD`?>CdTWEu8BZ%@f~cthy4G2)!g6e`wYJ5%f^t7$P%UMgEvLd}_7hf< zMsKQJx!Re6v`!4Qw7^AF$E-@7=arhZ)2;if)Y$)T_%{2Wc`*Bb(-B!y?`enVIqeX< zm&G@&OIZOl(j(7Um7>jD4z+_X-Ss9z0#!_V7GR<%GJo4 zh5x{v8YZPO*2*yQujZ)6)-T0&Tp4z41B3pv9hBxcU6Q{$+!2xYBl3@kd~g7BXX?3Q zTuwWjTcETPr~}#^qd85Cke6n5D&50;sgq^Cd?+h?`KAVE$f>@Zsli!Lmhus&Bsp83 z&e5;uYH*$g=WB3*2AegwP=kx4-j}av@Kp`IroqMf;SvqLp}}QZ^5q&_Aq~EKEdTN$ z$#}X-gHPnsi2U7`f6Kl@wWJJT_jMm(1wreqBhc0+YGTZgZ{k|gN=C#abXZpDldn&!^{GUk*635I zKCRUuSf{}$+LVn1kVy3T8h!nqeCq%fB|*t~hUl`eY5~K%>1k#4=)`8*?JQu|9aXW)0)v_B4?I^Zn(9)eS?#Ja^9t2~uk*G{HfGV;m?dXp7MzV)b2et#*%(YX=Bi(jlq~U2D{l9k*7LJ(A-8UEUuo;frErWK*VA2OGyAEcWj@#h-?1>Xl-5Ps5KiD3 z9)>Gx*pxmhgsneBn0mPWN~NiX^PeRz{K@loR6d)lP%s&5`8;%YF~Rw&f;;lJ`x|dL*{5acZbXiSj>U`2Z<`?x`3|TEyb8! zT!K!ZU`}wQjZZc2n-6*a5WR0=FY3+b-b=g_yjqQcQJK(6LZaK<0laNmN2c^gvX9f*tf;t0kZqZnX}nOc*;uwg022+J`z z*bHYW75GAFfp?Qi^BvO?HzaK_WY-=KARTaZ&=LDNoy@zKF*t84)cbY!x5Po=uI_8cyr7kZ>c%Tt2aY1G6m;B68lUa`0M*+2#h89 z4v!IfWg>C|lDPZjSlD|(>UV<=-%*L2rl}rzO#k9>_E(6|FGB1y^Q#*(B}Tv%H>Gd| zyhF#R>c$)baLTVboSj5kOQVLg%nZoN6CjJel#z$pBTqYubhW((VtC@$`p;K zYA{WM>H4!_8qCm|X2!VhJ31n>kuMlMdGfTmDSz=Z$B%|9p)8V;vGr@$jTJuC>(|Z3ANk<~NWdldMy{J`kCjRM z>vuu*t zdaWv8nLjs)TD&NeTdU)05iMT0bEH-KVSOG zVLps~UYBw+CP$*TEN}zz9C%Hxt6j$2021Tsmep=tZ3*;rA1v5n+1*-4|4)xAy>eH6 z#u&G=wV#3U80~P*%J9*YZz??Zht`(@*1gq{$FzpAI0#&6-2?!xSUOi9(&?UX%+RGm z^8b-Xl#=u!a0@1Hb^SI{$}%&*cR@6%1asrsUiec{P`6n4@l|#Qnst@52=>ExqrG{wn_aV z0*V3E`4!D<)(RE+iR_jlZe^Og-CO%$1qPv+BJu;U`41`SM@U-U#V&QPOp->>_Wg{4 zN>qp2w}Gi*6#j!29vAenSGt9q5z;Me5wtLG zaGzjgAexJAo)4oZy0I`|aVD!Z)+iXJWFIR(YJcVC`UB)fK4jiMA}?z``1KrqtC!hT zRn_h8mo^+8+ES^Ca_D%gsa3=-TG4X*P#KKBYmK%0gLF=@NlK|f|Bg$#PNswOhCYo# zJ*40XJBrl6K!hKO&kvRR)9#f}W*}Uj&Y?X=k;juEO=*S8ZYzEH)D9y0S4DZo@>9py0%^dczEwAc(ki^vlZ zy#y+gpBImsroBL9m{EL6vp%iqHs3RL4m9oAh~5Qtl;nZbk=NsNn>woGjfh?eRq2&bN4*WI za>3gXc_$9|yc^>X!41%#^!le%?|#DaR}KEA!QZvu_qAXD(BOlJd>G@f@{zv$Q-hB& zS0n$@T%Tz0saEoD{jg7;KGPyU*I++s?8Hc17>3n&d^HF+hohz_&M71kmnkNyiLr=@ zM@=FwGkG^~9;2p|n33kCEMm&zGT$`QmkJG__YztpPdoYr~N7@jWpLMbJwMp}j$Kf{;uOi%(p@xG{XV?Laj{m6c3fm z{t{F*Ya8&2;AA4pRqX!?p`G!lbkG}>Z0A1eyE)}i%1-GQ`{c4e$)4Btb(?BeZ-i`D z*h(GE(tyC-Z0dUrl==bkjLfInl+Z~b?R@Vp>GJUthL>ac1(+Egvh%>3e-f#5AJV^4 zw>Qe})gg2K+zPl-h78wl&byBF(V`A%8eD$d$BfVFH^3g8o!qj<)%pP!UkhB-S%1LU zgJHyxpDhBnV9ra=*cEs}R^L1kbtMFu%5dfnRY1aK8hW5}Q8K&6)ZjX=zVMm8S%A>j zALzx}#?(bijt5$<+s@Lfwe$4y?0mgd+pHIA7ajZ#NH5vQ@`cXQ4&dNdt}@l!x|u$D zPj|8JuF)>jHs)REWJ8f}`f8rM%c+!$wlVdm6}X15UpXFLW%~Jeb~)@2Plge5c;F2A z2m~>qrZ2W`ks}6wutVg2A3?fr`f{J_2z(?T%$utjuIwdW?@}PlCxBOfge^9KB5U%?t&I9=SAC zdI_ocMf!f+H#6lT-^|kA%{IsRa2n_OklnZWW}a-Hw*M8_3OSl-kiWMH1kYz zq7Ospo4#3y@Sj;En>j1w)>#wydsT<))A12GNFN?CwLb1(mguzM5V}r_?RlVL z^W4Z5EOS7_Ec4BBIg4x0LUrQydIb#O{Db0bd=l2dV8Ff1D&MTunOb93`gn{v%g1F5 z9?$Y1GRtq5j~5v(Ue{~p4LVL6%_iTRs!ykx(|yCz^yMBMyEFCmEV)75WS`@kb9E)& zt3dXkJQOkK`Q|G+3V9c-dZi7>f8n{9cI5q*MiGuTUU+gj2U*0TVVE3p0H$zODIH}1X)3Xd2@*`xYO#E1`fo)+#KAM zGi0P|s%e=T?G0t!QpZLZX1NqamPrKyY~p$=$N>eizJ4QqzTmgy(Mx&U1uk)OTbG-M z0#klOm3NV0rrF`j^J*F0nD!T+?~60n5gHwLPB8Oaa^~cOv$zH#u47)0rqr&7+JbMn zp`m^?WL*2)?lj5pA9=FWYvEL{+4shAtG$H!aM}pjTF~Dk#HaJCn09a2iZaG-Y`_iR z21~PMD9xktr+iZF`W464ojxp|`I$*wYQ z^s_&v9K%ho)m{Qv1>A0C?{G|33r1x!6PPn3#rWQR z!&6<${TOsAH`&opE9#c4QUppxOX~v~3;sE78WEaXZiV{n-ckUS{_l7pE?K!&U5VE% z4XVvUg+U`NeMPG`(Riiu7|rqxDc7k1mS@EB>Av6_v!m{Yb;7bRW(F-yUAwVnsY6F4 zYwI_xTz0y1c1b-Y>#ZNibS1ufw=Lpxh)LIVQ`mL#mvbU%k+maY<7;XgR*eoE9;@)h zacMl%Ej9I-=I5Xni_l9`w7(;Gp-ckjh^cb|tnfl5WeyUlEyxyE!f@m0c75H1)wSy9 zw<2?v$rKnkm5ywvx94g2QN7%hWQ!FI3&`^(X`tm=OPCkf4zp=&@~x_?TQ_^6bb|k} zo@0JFW@|PeB4v=+QbyIOyq}i!embe_)b<+`Gx^T8&*zXA;+ba==w};4LfaTB+QyK| zHip!-F{Gr8op?oSrKs#X1Tb-H-OgscVoo{vvtV1jR5PrZ(KD20*&by@);Rna(yN2diD|<+NgyB`i;PthD{gjkZaI(k3 zzpjB(c??|5Ib0K;NVu4LmX(Ajb5FjC0bk94so=Yl4$*F23FlJzibtd@_J&lNpmjx8 zgacYP5oqY<)Y7{(N_S`Zr-!OsHfiO8ie z+#zT6R<>}ty;X0xuj7Wh1)m`JgIPF^DwH|Y76xZw`Ap&wS&jIA8SmH24M7#zdZZzDAFYKshU(=!eHUFG z2NQcKT3fRg#%_zQ-)OW7*ZJeZS2s#WKP*+uclDG$<%c1Q(x;hWRQsv)Mt{uiBJy!K zW{ovMEoQ*{uJ_A8lmU-G$m7WEmfzjQ){*HTCO@hDT88x7bPNSRMyeNGIgHK>qMajX z>3F$GCUf1sfD89p?$VcXo4yA2z79e}LLL6C7r8>FZ9%6xGsFt$YA_Fo8+3(ZlxN03 z-*2WQHwI_fNf)bQUmU2hp?@=YtCbcg=J6H)CBUE4~z87Jr^y*jnn|KxCHbWcn zvd42He)fp0iH597AEVO8sdO*X_%p`j30o=LYy=0GuT({SfjFHWmBlE@Dz?PkOz1Qz zqg&)@VEh^4AEXyg7t-~o7G1?NIK<_D0bqWSuN*ytKAlNbMWh^2jRoc{(kbZD)au@4MAm)z~zYHkk(a=)U_DSben z>ISf^PkYekG1kN12WtHESPGwP72&7MubBFPOuJvE>t*2#n>KTP#VngPdlwg5$5|u6 z5ROs$R zE?7_6Eem(ZBHn6g_fd1*&yD>#yYb>wKa%u=OiLPNsqImn?a_NQyg$ENraxP*eyEmb zfb$%v5HYQ#$h5JSZ7qn~aM{+;bdnyXv-B}tWT5FTLro7EWqQg)QzcVPHDW7$`iCdu18{~1xJ56xux z9ACi-cdaFs*@{{>Z{DxXKI&E26lG5YVD@S-b?52?tU!?g4>;6*dV6L=vl_*M!=n$7%GoEaxsUhx6 zrMejuQQ6uI7O{JQxrQ6RYxxNOD`;CaZBs0lQ1Gi)^Uv!tKeAWhcpfe?H-gk|;+p#5 zbUnlE&u}Lb(7N}^gwUgM%DvJMY$x~1xSWy@^ob(^-VCugBacw2Cy!>XueYI>x%|ON zFSPNIY~W9&GIH50dPttNu5QW7WhaT;?^GB=8SJuKxeP=8m<|K=&Y=1S-1+)|J$-~ znG3Q4Qe`^Y!Qq=@^^#RnYS#stPpW|67#7LY2|HVZ!TykIZ+KUA4ME0u=3we1h~Sne zb7=JH)ta57D;GqTOX6;R$FJSErmn$C*1;vnzWY7=K=}@G|EpYvRD<*QOSZYniHTBY z&=^>7$QUM8Did|uvM=~4Il25=Q@^P$)0_V_89x9zBK0)(0Fr(!wXsbXi7ul8cS{+W zE+_6+jgbPVr7G2NI;DU_US7c|PK1wG>-q?mJ2-D|@;T~rYm~>2&il2hah*}1noP6u z1pg}X3OPI?XR31B**@Y_=iod@FrAg34e>o>fK+@BVZT8bVcN(k!KGpy1dRgeTuz7X?IY3aR`e4!FS2(hWB zgmOm>YPs&57_VRpg`-%d(^s zE8JOG>v3{|-=Ln$sONI(xiY&B*6n}VnLq?G)0yv5$&FNU6P4UdXTFzR5x60!NKOAY z?aV<&4H?1~xr25u^gPNaG z#bZ>lH&gsjit`ZcG>YK2;9EV_r*>)#i zRP>*^ZYC8J|fwD$vlUq#>s_98JI2|%L zVC4v#Rn1r#7gUoY_S)8oy|xR)UUiZktv^zt=4g&Lqex-<3x2JR7nPMU)QY{f=e*gW ziP$ULqDr+^_8{kLcq^63us(M(Fxol;N!$0olWDdSgFOj$#v1-e6^-{XgkbSUyqs-Kp`)k&bPak&e|)IA-pAntcp!o*bJwUR=-d;{2`GetK*V z5&hGHY3`n#M_r@{oTkSN6{(zphc~%QPgUQDF?N@0a76^8wzT0Yefg#aS4ZR;jjz?< zTM_v-oTfPDLa)*vZq>x=;_!B_*QXma_^y7qQG=TzvQ4YGIU?UvVN!Y;RCYyVcT{D8f1*}k1_f4N)D+COG}x=b&osao%wuW{<}vxX z7J}sOV`>bhRG!h-XSIr7=+ko=Jg=1@_4^}vAsX0z(G0(d$V+U?wd+>ujJTV({|%|o z(j{u+#~ut^CF8OVAZgK4cdW>fM?K(KL#0h48xXMMZk;nt-eDtk?N0yJ**omu-ZZL0 zvU)b;_|ADEUrEY9@{b-j&gRkG+@pk<&?^WQyzemMcj|B>9M9)0x^e_ZW`+KBv? z$#&AE)`k}550=$8tg%OVz2(oJY&)k`=t!^BQw705;BEBA)3nrrQcJV4#ZhZ)0Zpu< zbjXG^dmu|AbVdC>cApld1i5mhIH$@qA8ygK0x}oD64sw1X*L@}a!|fx%#)JH7DVw; zaGvL*;Y`M6TDv>d)F8&aTm`v%AM$48qvZUWFRxn_2cMglw|uT$-ti%s-t(cE{^WD> z@>)T;wt7Lf?qG72Xj9KSs9Yr%I`raiYS!g_VQv4zN8$Rzh7|rjK`UJlK{}wR?ItUCT5yih#@GGSA0{h zPt6p5Q~(%C@I4eZObZnS=CxAQ6*sG7@YgiBST6C=F>l3Tacu3{o*Oz%falbS)v{y- z$Kp;LR#i%?)5^7-vX(}_h-vMcq)BK)+7ysSYXa;ClJd7|w0S_Ay{Hr+r3DqUrF@*= z*@48;{`X`9okV!9c#`U2G_!(|DTz0RjDvjv!K2LfdvFP%EaAKV4+tL?HPiuJNKM(W zXMm!cNCE|WnU#0V2!W<#=sE@hMcG{7)KG(%*@4qSih(dvmelR6(~+)R12?EvwSAV< zuY+)^%H{^8#8Mq~mfZx0^jj8eurhS((oCL6z{<_x9|c8g3uEw`ms>fi|5s)2ny*}& zw{3wHmpHu#{S>ek%d(Oj`5IYOXO*SkfNmn+EQYeq3fH;M&DW<^D+ z0L-oE zXd;;?KWc}xO(vREoDXL#sWyi??2wMh#C_5!)OVJR!^vVKq&g=PjnZXvn9I=#+vN^z zHBtk%(P-LgqqV~{`kS`VMX9!CT5lU2O%`eMinP#VQITz=YkV{mnntP7M(LU?qQ&}L zoh(k`(kr{ov1H7(ITo~8hrzZv7PMJocpkRR*iy1`e4d@xotDusirE?ik8>>GJAoOV zh(7WpQjP_9Cj*{S0I;b@`%Qy$JA?a^naI!0f=HMRd2k%u&^gExoq(v&LS#M`aj#s9 z7*ie6M9btCvK$e{6;Oi{A^p}O{?dTt$$FEJ4X~az!l2z`x^f@WOHMcaxNgC=IwB2c z!{9jw(S>u(@p3WDmrKklxs>bm%emja!ffWa_6^iTuHmk^4yfy-PD-j+am(-?**zl5 zKb0%EcE+zv8~dWdb1S&>w2&DdLto2TSq%)5nzCoUy5Uc|WPTVZ#UXfg-~cJyj>+qu zhE`AA&otj+dZnC20;xuwAjH)1g`M=`@~8r51}0Mzj>T#RuJP0Z{=NWL--ad0h|Yf` ztbiE-ED0k3S|pl`5tbJx6Y7bnMP<=|p`}PV9iA*!*eZsr1#ERq#vHJeger@skv&os zNtX5nu1k`5xM)2Ke@ll2zi`mlB^hzHWPzL`!kDn~UzEGj@}7g~Tg60ALoCNy0U zMIwny#SEe-NtU?LDG5eLJuBGJDM^ivKBO>3N%pEk&}Skr`5iFi_1s{57arn`Scllg zZOzTxi`)v2e>)iU`>eAcunqi>m3kX;vp?c^aXWV$cR;A$$;!K%yNG)b622E%vHK`x z2SSOsk%p1K0||<~$WT0kK*S4(GQ0z)^Aq_o`@&B+ZR|nt=yB5-^~+xJGjo_cWriRu zG)A65Kx{TczYPX%~@`S=amE9`8qJx-25ANa3)gsYJ_> zF|i>J?mw~&D$ao2>}DPI%P6%smGu+W{eEtUN}41ds2DIyvmX1|;Bw2Lb(~ZkK4Cl} z+-iyZD>Nu#hDMFugzN?c2hZl5JKJ#Vtm2s2p9_Z(VEu8NF(;aqGMP(<1;Ao0!f&fh zJ9dTkVEvBrHPcD120p*d&TzfyCf_sN(kb9hq+~XoMRaTm5$fwMJ=$HwCF-tBqvmr2!gRqz**Mj=K zZ%}MCi(rw~%5GDKEaftJ-Yf_0t&le<^UvskeqtIh(6`={m<=#THez&dlj)9nXO%e} zed9CCAaj-(fmY`ja}M0{bIpku>|16oL5=iMa$ipB73QnvO2Vtmw@nrqQ{9A&xiXuK zxdPyH8Y{J+u`2*hC9rQ`loXt+m5kxpLFFZVA2%2A22?(sOp_S&0--k{vbs%%vymQSZk6d~I~G*FFN@6&WCa`R8uKF% z;_Z;dcgXqXF38}!A%E|co6H09L-QaI`j9+mcCw-GlIP5BHs&9*0pA3NaxW$&e~$5% zr;Kl&#zf>Zn1y`SbTiLkD&=|f;eTn4G%uLp=0!8w{Mt-1zcDA6*G-*y!>l%M0?+RN zx9^&-oA=B$=8xuj^S2C<-3{nGIZb4LD;qjhY*WqKdiE5$mK)g+DMvgkebf-AZaVj4 z6$Rna;BA|}4Z^Eb-jnd7qF65`fFd{0N=99b09GK+Lg3H+1v8qR>U-G7w;cu)H(KmdtB}hn685$043gl^snak1r){=w z&_JSNDQL`2hGy)}@5&(i@<@ED#jN&an{@758P-QIBH1$3-ZaY}cttz!PLS3x?%2K7 z6B|1(dv4FZC`2g#<2q?aDgDrlpa@?d!RvE3hj9`5R?fgJ06N6$%T)FQ$ofkw?=b1& z9WGTKQsLe}8RZR@G2RfF;|*oNhRG^#xLiPdF?9E3-Z=S=H(qY_aP#6FBM*4T%1?QI z(wipFdeiN|wo}JhqZrrERPSjGaMrUTwhu|`RxEnPnhSzptZ(PNn3R3AnUN~bjMR-X zjhEq;3eX4E;0WT8JKJrOF80AvtW)(71Hd)~nzg#Gf)Hu#!b?5nf55R|l&&O6ix{NC zJaT7cIINl(V|FguCe=2@y*VPdNK>GJGleG6m()_n1iE`;^toNrxl*N+ZltH1tUu5? z!%N%ShP1cy;V~b(6?vg!IZP*ZLI$9hA@hK@SO9sBwD;x##Pg+}w?Kw?$IB$|1exM3 zWKI^ziC(QN^6F%zw@l9TmdiK16>>f2pPRika;LXe_IUNO*IOsQ@J^9ey#{%g^uKzW zI4_;bdFeDeM*}4S@E^t8RD2GzMmQoxg0sqn7WM6iDd)~E7aFeTx%|?pyGXtotodcE zLQT=W6wx=wx@uc=&K4<2hEb=|14((?2=8(G-g9oIr&dtLJCkL5fi(9v)7y)rtM^qP z@QT#Z#@fTC&~uyLUeCa)|Ijnp+4>XM0$IBSoS}aqrAstg11*@c|Vhd-V?Iids0s3eI4IU_nreKKQC8$ zzhu&1kQ;d4?!5v^{;llteg{hay*$PH^WGcsYwu0@llL}kllNee{1GRQe=^OyKbzLx zUoh_dcQeHM$O6X*X|^9x)Mx+?jzh9s!QeANh4f_8=@Th(WSeI?XFs%#9$5;2T*_kg zn3XY@PbX`zDq>b6{$)@` z*<;p3%vxm^*q3@uSr;*BBo^aUZdA^I|0Ul6Ptt}jRH%Xc*9rPy2_ z=Ol1L#C$huZbYTYAY(Vy+^k=avYT#h(V7sk+hY*1+hx8VC-{N3@>SH*c~-L*7zq8gJ@ly`DxrdW**nl_eRXmw5;1A=83qhGFaA(nY|hyTNg7=S&Nx_ z%+uOv#OwAL#OwAL#OwAL#OwAL#Oq4TFXNm>UQC!@nO|%0n~1@l=9%W@xOv6=R)eQC z_?-sNXz+Utp4H%04Su1)YZ^SK-FsbwH)0Ico7%!#V-)@e?fhFByd5#`#1Ro&p#dXs znKtw?^KOE}&L1`SQ^fo^A=j9{Xz$|MNoA4r~ZL{_mmB9Pga`+9$zDlH{xW9x}+T9-D_ zr*awAPhKjgyK(NBf3sY$IIiJSV>Ct6AWZJ6C;I_t@<@}8yZeW zL1g0+XEZebmlJa{@ym*|0h_F!cFU_YZImdTOKVNH_h7ZA+ndV7FH13}wRUN`EF+!r zYQ&y*Rt|pC9ur7Q>r{JY{Mt<`8|v4pK1)^+{qu^Ld9WW)V)uiVIJ0iqSlY0`NvI}N zGN@*0D&-i&QB~+5ol@$)PiUyCbJOnp#X0fJY=CW|-lO8PrLLUJFRN@vas)dAv0N(+ z5=hZm08}MD6}$t+eZ*PP_9{_;%NvhuStlwkaZ-y;CWPO2%m-BW?YMPIvF^z)%A5RR zavf@(i6zbgmxA;`{70f3nSuj!lIqshE?!-y7Ikn8pd*}cDHH0KY@{JE_l8tc`pcAh zT-O0{?u&h!f`ugOu_-HU?uxp))oNrYZC*2&u(F2w`VG#SQXo&#%8hc$q8(lr><4-o zM|5``nw-{(eZF-xY*5YESl4j+baJiN`D>_KuDzdIi+3nh?JD267W1M_lUAtsO(mvRNYk<{@U&dNqLw8! zzM%oUoL%YALn$7cS-C&9rM6k>TmlsM&YH6&XXCR1+2~+0vo`ZumyNW8A<6H2X7OkL z-Zrp((7?i35Vp)~W8s`M^H2rQ%T!K%%GmT|u=;Y8jFCvHT{?N?;)dD=3wSYfc-@9p z&{kNm*QwOI@04*pV%?uG{VN4 z(GXA33p9eRX`@pqZY$}1AX~zzY-y5&0fBT_vT8zo!+48h$8T~@*%&&N);cIH3vH)9waP-?4xy*NWdF$G z_0*S^S-)xWp%jP<3_|K4rUmP=v5kIkmgyMkCYf6YK$4f6xgzh(+zlkXhze{Wk(KMm ztI=^}Os!9mGAnVaJH(W+6EIx|cq;m5nx>3p;|25%hO4s-EoL-N4)y~&$jJj^r4Ggp zmK8d|nHo%^rl$J@*kfR?1#UaA9SuZC^HAg%q$QWEaC<1#dmTCMaJVrtE_(@O|GJ65 z?H88U3F?AzDzICqfxo<;7szKvDnp^lYEiPdDwrO75=q`v3r_3uvysn%gLFmq(&ID_6 zyhSccMp-t2Y-{#%fixOdw|L`n6a~1;E@W!>aoOu5$+tK4G3&tRV=L@QP+&%2Hhm!T zF$4CDkM!SjhiH7;$IsX=eT0=>^aT&=KI*$K`SLRA3hGQl^-^B-FXDCcz3yHQv^Nk0$gdlsFHPAqxL!}E`GN<(65s2kW1VM!BJZ#l z_=?J&ul!S8fr3(Wdm2F$u&vSbu!d@ME>AB5bp_6DzSrBU^1W)W&msD=D$jw(!y;Z^ z-|Oe~*ReUw_YU_4_})Oq#+o^opUPvtcZ7GO?+x+>``%F~r+7n5Ti+Xs)53hevyP7O zz2Q2zBTVZQtY+bP-y3P#``*zM;`}`)P9C_lpIRp6NaA~=wEoeCbrpB%YnP(f33hhH`t?XT|>kh?|T!xiM}@}{cYXKb#-_}tMk1Y zP0O?1d`$KMMn~+JhX??gU$CwVwobB(qrCO9Ve-XgD-y~+0$YyC^K z{yw>|da&)%_m+AL>@ttTsMRcUo7hbF1S{9nrOnbuyyd>P!duDanNI6ezr>!Em#TKt z!RiX^E{N@zOsBXx;0v-i2xFP$brVUvHCMn#I!oQ&{z4P00fV{qmqt)isE8<-j@lNr* z25-IZZSXew-X;&~G0!Uh9Jjum8n1O%oz2V{vvJun<=BM=j_c%mr+KHdq)Zp~Q{Ov7 z=W>2qbRuVigPcz5tya)bcHYuX{0mS?rxB1nv{Oo4qM`wt)=u9G zViEhfZK2P>k5SRnmgJ#@9HZ_nX`E{m@EWwaZYfPkYS|9|XdhD8#@74ACghvqks?I6FBd|d3r)a{hExG^3w5Brq7;_XRew#<7dtqpXR1n_)8t< zVKT0(UyldNQ#RJEhvOEUCfwRiWwHm1CMOo<0;Dtv11-OUD_N#A$gcdQ*{;IW}WeAzC++d?vo-f&||g z|2&1}?C%r@KQVPIr%|O#VYnZ+7LK)YdnrG$VTBr5oWHVeHGDFE<$86DrJvO2)B(MS zvD~67(^$7?>M+)hf$rdk6P+fZEteGKmYR@V223u&*6>T1`}Jhv4!O{UT7G}CIeU}>K$o0fyp z5=2QPO{fv)7)vNw}-CPT3ows9k>VLIeYqo#hAZ79ce_f zigEI?Y~^z4jBivG53R!55vMbr1gqhDZ47t7#&83WAo)4Zo;<}LEP(X;v%JF%u-`c8 z+x#5%ZOnP!#vJ)=%&FhT9QDt zKd><@1RKLeAcml}1$+2>Vr`N2O#3V#sC(vZn;)8Z^_O zLWAZSw9u@TRk0n?QlDB;OEHC@L)@CjpuD7hYExBS{;0IwA?@_7y#^gL=%_&_4LWPk zMT4#ybkm@_R?X9hajX+^_3`%tqQCOXf!s-lJjQVOFI@T*>5lVJ-=#HtI zij4?+pNBmAg{X^NhVb`)QR=$D~7YY0}lFU{5b|HCp|zl_kSL^|1h z!OOx(z8tMzMlrv4GjN_AMCaY(A;d}XAR>=4h&#amyBOLZqZ#}Y^u6~mh>xKY{5Zq8 zm!W)u;d>ITxSyj0@HE5q3k-~?5`0lZ@N-yH!@eIe{u#WN`Eq(>|?5KQ76h{=U0q-K*l4Zt9Bi= zoQZP@CIK`xNV(o4$J~S2`9@J|_lF@MI3+U()*-byl3E5~XnY99t%ph%RK$AY+;1RO z=!Th5wv!m>uf)zIdO)cjZlxWHET?OgjWRX7ba>kvtYBgkO`U1GWjZa`Y!D;)2?|K{5}z5-zOnswh%SDT2$7GS6(us$ zXf`4G)ecoYmwN^?qII-wQy%}G#LDBtwoANCcpG-bhtb0}jWRnkB#CYo{j@EAkF}=oanU_8XRn+a zAgyDAcyd+6+(wxD%$^?mpw&MxWX>%8K2xa&mR1olfL?Cb}cDq{5qxSo1t2UFV~4 zaJ;P>ZH$il1dq>MslS`)9@PJMpp7w}Vw3Zy{zN0p+>dCtRgw?Os`=W8Rtv(5*i-J8 z)swedyp}}zzfsogmQ|Dc?g3=b%-@p?@1iwo0Dp+6xryO2%EoRKt+O9Q>LZBMmmyN$ z9Fh9o-pMl9Tg}L=u`L`X;m@TvK7I^}y(JR1etvuDtH9(B+XR4#SJHa#r{Q?R?in$? z6okc8VZYLW(i)l(CP@`}lFt2161*~RZc~pS5sWHSlC4r&+t{_#S`zg((9(@k?rlP; z=TzG|*5!V(1y!b6Vg1dRJ}ADrsy78ytK*M^R*iCwDtIOe*53-`jlp_!q%?N*JH?_i zsQ*l)md`?J`E2I$oJSrpromMXQ#u%cY!?a%=R(2X0$rhFpnukdLP?|4@0N8+ z)Idz=_>>;Zg@SF7gYU1=qKjFFmq-uqQmOVXlL6l4wpHkysS5?uV*;%L90sH@{)GW1 zJ&JldIk!}&@YvZss;P-C?r}YjUESjb9=o~6jTsc!PnF5NZ_u)BJ~UdO>^eZ;$-oCa+b>GYuqSjZ{Pp2)k=EYDnZ$ra&1w#i>!nHS{Kjxf-XKl7aydH57Wg*=;EVv zaVK5eMHhF|#h=i{J#_J>bn#KT_%L1Ed&phn=A>{JnZ?fktyw(x3%d9uUHmy+e3~vk zLl>W=i@%_Y&(X!_>Ea7?@kP4$E4uhBU3{7@zI4c4T8#W(2Un{@FHbn$Jv_zqosmoC0e7hk1|C|-a_4+T)U`YPN-X0gkEYZkxq z1zr3rUHltee4j4j3QICnB;7*A(l->5!J(*(4aMcyP(o&fFoVgr6UetXRCdT+ z>Kmk}kHPi|y!Qd%D_!*6)5V^2u@_zJO&6=^Vl`dtLl^te#r|~hFuK^AF7~90 z0}r{2Ts{}>BD2`-zcq^&enA%p(Z#`ZaR^-;N*9Mw^>Dg4f-a7vi=*h`Xu3FtE)JuM zL+GNT>JJ6oaCKj}i_GGGt&10ZK^G^{#TvSJEM1&T7pGA5RJu5gE>5S5GwI?ix;UFI zPN9p((#5%lIE&@xXfrD4Vi%|zJ<1hVRqv3mDgojSu9h_rT1YDvVRe2q=0F_L%yHD7 z6jjmjt2yV~&0k zJ1FSQ?L(W-9NB@+nu+NdK8?<6&7G;ax01l{#sbzEv)!wj6H|0b^`1VvoX^YF(w5BX zoKRy|y(M--7fK{_k@%sn(uA)`%h1J;P?y-MEA=qa7UzR{{>eTCOiH)nji42)Q?0m9 zdSZ%;w;p)Z(}=&Gw?LW`-6xlBmDmIF_3isV(03NzrHO3Vi4VKFkxq5B!5 z2XM{$plw|n2^XQ;*&;ZZ9h*HT#!ODPQT-EZ8@syZxn^b>b!ASY%IwilI39N5FV!dq z8+Zl{Jq~z2A!VT_rFH1%Z0S$g#v~;aJwRK;Ou@#ET_2bh3rUPZ&uP+@p<(3!a4NaV z9XGzID`uJ=H?G#>#x+BW+isDvWO1Lq56ZP6Sg6>#)8}vLbGM;zdbU(-ZItVh7|;3+ z%DFD(h9Kp;+xOp|3m#3y0Q@Y^;%5l(G6W}!CHvW?ga(bz%IOomrN zI1&lHK(~J_<)Pnz!d_wzd|CR3ek%h*zmuawugav*A3>m}zRF&>R~b6EV|gM9hp&rIf?XcnfW? z`x(8N!RYm+-8y>pUp#uFvPUmjT&=@(WB3q<>ybjkr3@Awt|9Pvb+}RsZdKNTI|k;4 zgg#`rK4Q53#c+MXaDB>f{hQ(XOooIbGCZ_jMgor$!bXneeQG!))5AqFFI+4qhNH45 z9Fw)-xE-e963qxYPTk; zzuZC%cam_pGrY@g;)lCSt8g#r5biBK!&Nv>t}e7tk?YPNPh;k$+nBvjQ}`sSQD0)A zhL4g+c!)&9!=)@dLRyDMN|*4_1r} z;VIHT451O8FGIsKWO#U{j0?|_8r~;|j|24P%AD{#IX=7q&^sQ`J3&^57s|kv_II-A*;DR6}V&^bKEN+un*DqHI5Fk}dnhY^aNwlhTb#5e}VfyKM8)&ABqCIVDnvd1&{B@D)-V zz7nvzT1vv#(41?fWB6OP8UGJ^X95^ibuRvMCzIS{asweGKuCbFL&Cl)n*<0DOb8No zMHrF*(U8O>Z0@M7ORKf5)u+~-%Cl-~m951h-L(7uy4l6n*X6aft6kjc|M#79@64T< zJ0aAiwtoY6oqN8sf9E^j+K&|~s1(`OCTp`h-lo$;AUoBSF^6(IsiM*XeIazi`)$wEM z39>ptT}emnAS?++ zph++ReSsOorkIVMz!~b-2!?;ln)e*OjsJvD_|J@p=hgYx2ecx(-Gz0)MHmNMs$Rg2 z&WnhHUqTH0vbtHlLQLI%ApU)oFwBGyw=DG$i$F&BGX12LiBEuBJXc~5VfDtFYCc|5 z`>0=91$am8OGxHI+zA$`R}dg(qPs3}6ABQZnNdQB<`E2whF8=u+iFCz@`7@*UQruj z4}D)za+-Wc(kp?eR(7 zK#@r7(!7%DZ2Kp;@L$l@CQ6%HwJB%I&gPcJRhW@mYKc*<@oPf4rSX8xu1+z0^2{}2 zHi1%L!n2Zrf$Bz{^h5R1#7sPNQTlZ>RqK$pRV~r>&Zbo;xJxbAr0QTxIohVpz)Y|f z>J{&M85Ir->~M_Sf=5WKa~!0W1&->gh#WFaO?Ts#ma0Jx`^+H@i|0@WB5t_DGy`05 zFgONW`mDTGqsL7!Dy&^n+Aq0<86(ZWw5ru)hG@Rb1rEx}SxIp@XR&iHQvEph=V=!R zLUz;RQG~F{D~=O@`;f}u=5aRDVV653Dis-}h)(LY(BpR+%OKWM)K=EA$pD#xOmQlJ zr-NN)s8L+ULC}c8LtoiV_h)GopX4Q=h!=G^Xf3x4?{@c=3&MjLzROZW&F$MSpDnJ4yUFepqjf#OY)Kq+6jXwgV@4D*Gplrf_ zz{CEOC$-F0?#heAM{$nvdKWK>rW#PRu?byJi2BW7wSl%-M~iLL*=t5eM7ty+D~67n zxkR~?t`Rn* zjxTB)$mn$QX=ISdFd4%T$jz7|VqM8gUrVT-2oN($kdZl8S@glr;+dJ6wbDp!47YYh z#08YTO^sGv@tS2>18G>`GZg}I%fg&xEO36 z_|Y$Yj`GMcf?}nen{`|3Iy&F96`>^Eicr^a(xqT<+NFTRZ?6F-TLb#W)&SGxzJ(w~ z^W1z|*Kvv~z~Jsj*?-0|FokJ3m1STWm}dsqeJ0Dm3{c%{JvIM@%fLc#ZxzeHVwQm= zpu{Rr;+ZT1H7om z{37%P334TH{Svt@%~92AncV5qnK=x{+6d#ZPC%@%aonz)%9@%@RW(($Rm)e^3th*i zfFgBvMO(YpL|b+?34Oq#TCi$m^^zr3E2|d8zLsAsAT)S{q^9M??boT(lbKt@jTgI? z6av&E#$yCLHVM&|7V*S_4MEE1F1>2@I8o1EOPj24*%~|FSN~pmzTSDI?a7xm2TZ)uA*j;IlLWwAr7&+#*-K#| zZmiNA^sxunYK)PAS zrq?zWNsN}V@-78VL4^WDN8mjSO9T0o0ie69TO?zG#H@s*rF~Z=cRlx9;TRqThFFN;ErVb z!=AG*G8B7#Iig9dKr)SA-AwUaFFUbJtthO)YXw(KD{Krd`ol>pW9KIU%~8MZF9n|z zm_b%7gRssZ%VdyM9yS?dC1oD(Ko6HwvLfA+@m@3g+KcFui_!nTgjN4ia=eU$)5*zziYrFQD2S&OHk|n3&Q#ZO zof#WB^1bwMR#IN(`*-vG_56BT55K>W@81i&(@7Ijv*Mf1d!ROMK0fuw^++`3n7{|g z*dpD+m_&B0h(OIv%%SF!PZ=x{kW7r0)~} z%hGh+`~5=O!@ROVhDeXb#3r_uQ8^#d`pwr;yo=j~~tTlciJs z7+w0x0OKl{(lAbC;au!;2nXt=k7X_-m@Gq1VK|nDRi;6LBJ(iI-b5gbX4xwT7mR1w zn*{vH{3;qSj2JRNQ4f@^Lc8LiDn6yMZdG#$vy`R1<%bMUFmyb8FIETPPpT|(F3vot zYy!d|+7_$55D_TqWx)v_2#p6o_N{6=0J1#*V!szUE{SsBHRhL_I|B;-ulK`beKTlE z47PAULt-@()>bnFV-uJ6Fs6k){G|idr^qW}@`|M9l^e?|7f!bn+s#XU(0S#aBrkrC z<+Yl;oLkk0sh2Y=Gh;@U3oH*{#YI_Cv^)WqbA0oREM357rSwl~*?;J`1Qc+}i?R|5 zB5BuXHnT7Jy=rd!2}X0QHAK5Cxiw6dd{wU*(I3|t-+w?IpqRb<#q1p~W^XBG?kN;g z(#DJFCU=Wzo=#TG*jEX~l<^wU{OKRFP%D=9Os)|Y;XW*^{b41IMmuLBB-?D3u!U+q zM4QBFT?n#^HHdP~|T&8Z}myd9NkX`k0nEjuHF8e-T{z6MQS6dl~jt8n$ zRvF=^%8AD}Nu6y?RU54{)VWq2*VQU&Z6z#K8?N6kBIx1`Y8xS|nypWB|9RehmFO_v zP_5Q?399x3b%FH@BE0^U>&ry7$ipyDzFS z|DZz5w_$ef-?2yfhrG6t8@3?YXH_S0q{-Z!ICz8Mw&=2e=@_9Y)} zL1X7<6D7rozqf29??;tp5+(yhtXFAge@C&cgjgg^5zz<13&R`?<*zU3b5s=^QGK6Cg8v@i-w3*Vp9f#mTgU5?3kO#=o4Kv82 zkCLdeWkN}f6ru1aIgOSRB4f5F@#e5B-88uq(haqJ z=&+=9tf%Y`2M-pjJU)hA6j=nt&$jPnA`wMiZygD)pFdHEJ0NcZ9b>^Eur%&<0)9dK zOGN{INTBIFPDiXC4JoI^xLTllnmQd?SF5e@Ah>qY={J%-(oD=&}<0z5r5h5qy%xF2NWYm;HH6>`YDMPO~7*mFAfY}b1W?J?<3eVirv@kPIUzvA+!x|AMV9jzA?7S;tbB%IUI*x?JtkTWd>Q zA#bjf(^U~p@37T7ZFRNq^@*xuDWd9Fil{od>Rl21XIw9kZiwJL<3?M(*H-V79leJ9 zem1ZIfLJ(|`hcx&w$&{WdhHTPL1dj$b!)aFj!vn%JzEhqr&JLzr$pT;KkK`@ven($ z>Yi+Mue|5geQLj)J|w66Bj^tjGv|OJX3hciVOu?DtA}j$Fg(phaf562Oo7sc+$O_R zUli?%cE=j<&=>nDba-&yWD*2(FwGbB%@@K`6x@Xu>P5{R;)NQuCpXr@D$Qi=qnVh7 z0lKgy+9`1iTpwoHA}KImg@wD?GtO#kL7kbP*<@g+Dk&vlrS1jlGyFb=P6gtqG1WcG zdZb%uzfM$O5ycZ?&pF%4lmUDbdL<{?(GlHidMVjYcs8P?u4uEUvjzD3b9n}_F(Hnd z>}KH<)otxr0QMsTLVUAM;!j?TmB0 zXvn6hxKPvA+Ggn$H=j?tMBbU}MGFk65!Qp`uv_RHkEi2G z3nt>Y%)F}G+10*NBH@TzGbwE(#%SuaQ5;nfaq;FQAMDPiSn}#te`=d}U5Q+~eyPY@ z&^>tJq*!0bx=ju{OVs(G`fT-xgNLI>9dUXxcw{>(OlibtL)NbO(7*A_4 zkB}X$(H8BbQ&X)D+5`x^Rc*hc>rsUj|FhT=W3h!fX%KR>sx(HsabyF66#YREUlgh3B_$D zqVLt6;;%0Nt)^glu%wTdTJJg&G+`lBbRWO*yRMdN=kw-S0$n6UWSOQ-0 z{N|N{SA4CIFl=ZH&ts+@mFCCU-F=_n-qrh_A$yAM`HV;F7-sMz78D}fs5xu>$S7N* zCY+=~z6P|3U?VMEj$izJT_ef@n)5pJ)a1W`?FmXF@H4 zM7Y0PHkbMeI?z|p4Ob-?M_<7e`U<|$S5OXDFTJW?4#_l7d`OnN3M^6KOu6(_qb}t23H> zGI*0qJ_WfYsP(2Kx`Pbwq*c+7aT7I>L=u&kXO?^p&Ka^y)MSY#E^4cJ8B z+-M!yUq~Z_*rt1|@DBl#O%*=s2I8Y`IQL`KgD?t3a*dv>gPv?DoEuRRHsy@(`*5gZ zHgf{a?E4<$(-ncA_D=rvlYDv>+${rj5?9#^i9J{^_~+pRs9hUQSseOPx?DI$%$+Y1 zD&zenqIs`-*#&crmvX=fH9-73x&`bXE2Vrb4kERD1t^b5I{k)Ejc{JN%Q&ZF zd9*?*7yj~K3zbM1t&6N|Rb%C#)0NBWoCkloms{}g;KD&+U2u%(^n4gh#ibFn@V{7K zTYA{)fo2WS-)?lj6@j>*f-_|IJ#cR62etddFvim$0;$X+Qq0oEd0fJSVsB?jjqTFn za0c)C7Kh^%(5-Dv#0}jfoaRl&AaI&0v!>%9a0WqJXL_yuGCxp|b3r4f&|BTso-TlO z+wRw~we6b32F^0bsX`hyHU{ETQ?oLx`OLmbJm4+Bv0s&%W-Za#!XKGNo|{$F&2tD1 zB_qxjSS3@ETWU2QZ^4Gi6!1ERwzSkz^YQZWPpV>=9(f!IlSbnWyJTEF-V3}RW`udj z6Agc6RY{#5vhgw-XNirtPDAY;dBIR?yBcGir>0w7YJs&=EwOg#@}vFnvKnfuM#|NM zdcG;wLzGIe>^3QvZn(QK#^Am-)^OoH{uwkbq3L{cey)hcdTGXZFX?Z4P({7WV;$2w zn<(zGQpAgGhU(=s^*);V3X1#=0`^`@kw2i8TQ{rK)-8xX{tHpZtzPrbpybmcoXh=L!1(maan=D032%$HZxa@t%* zYjX@&ZKmKda>Qqu?Uru?1)L(PGH&icD3HoXBWk~ZW>T5~3#$%+P>J;g3iCx;@$0&w zJS6>9cj)c$cUHV-Cd?ajyV@9UB{6=Xl_q#anPO%up}Xsg!?dfMyoT0IOxGrq+H|;E z*6>5V)no?J7G?dIKK}_S2G8O@^EXVf-x5UmIecgSPE}gJM-=u))nNSzk=CD8m-W2b zg-AULgi-d{!CWF4L_g~oki>Fs9pmQJZj(|{DU)WVPm7oh(m=(JbT zxYW}r#6~g{!f#UsUf zvKP~t{>Q})>Fv7J`j?Qo_#gd~WZpX|bB+E&2+5G&^$q3Yo-j|9h5F)-vXChDMedk_ zJm?L1kk7vs1de7p_{oEC5-ti2P(x)0<$n4+!%uM0zGJFn{V`R_!Z!$;=)s58kb<(q zN-T?d$^9_y53Auv)Cd`u(!8Dl5-ZniUfJLz!DK~JS$R0DMjlq9h&vytC>SkwMd8xB zdArsN`TZIW$zwMQ~Xa8m_8CBh=ZUQFz80qqc{} zsy2Sx85*Z94vp81F;->1%5t5F-#Qz~Cl$mF6w1+kwvmXkk~xSjp)otL3kvBquE8BP zV<<(1F8uMsYMe22qHcZlt5T{nUK4M>iK8v8#}LAqWoVwt3svGeae*4jb#!P^V(;`< zJ85F^FuaSbcPlaf7V3E~Sqs`aovbHtOq{C`ZK)r}8VfWE(ofoT5MNC?p>mDj|5x#{ zn9)*8Syrf=&{?V^w3?B!2B(Ru)oG!%@nJg1Vz>;{1sl+PNr@yv|9=KZJ`~N zZvr!V?I`N?S@^7P?Sh?|E&z8_@FD3wOi+GD%h*D8`NG7LN4 zfEM15!)_Ul)HJc1He8>?a2yWQ{|tu>_c%v(+yR`GWU#hEEv`%LbeMdEOEQvDe}gz6 z2$&^>F2~pZ(`<*iN^vey7dz~ixm%`|+Uin=jq~O5dY^;a;VT`CPbi9EAxL^XoF>L& zl{$D-7uk@5*2A^7y3WCf9`tCqQ}F~|)KUj=5kDuxi$^eZ&`+f>H^}Kd@@a}d)nzZo zCC@%qQ2+}LJ$f(5kzs3}oNLNf=hWm3Ui29)UWjw=$G9ep2`njZ*e9xKdc17IBoE}| zq$)n7)Wnls!+`RF(C6>gegNWQ5rLwfIjJH7pR^DTSOA~SZTYzPgIOJ8)c53js?diq zp|O@&v%{m@L7=49o8NefMhPh+EQudUp$%S*k9zQFYB=8Xp>)#*%yj|BhkqyYKbz%F zSTF-zy&+e-hi7p#=4ty(;u~-UXB?QpJdi(d3+H@6Bzz~jW+9k#(37B^S)7GUw~FOZ zNXZdezY@KFFT4bsfXs4&JY-2o2)jId)Z?*D+HaT zb1+H^=RvHV&rYd@_tmkqqujI+H(BA@csj!l-AQ-vA`Pp9$SNvLeQLcg_UWLcPo+`$ z^!a<#Rp#!c`_zTz?!~*@oUFgyt#dNKhaOOOx}W-A4?Cc)c46J6_fSCn`(1iZ!rcpZ zY33Mre~Cf;>)o2aW}pr~U^py=YD7{AhXa*5j!Jqhn;l+{NqRl3T$+m+XQ*u%d)h@E zW*@Tbj)zx06D`VhEU8;iB;18*$8{{Hx3DDM!;1J36#t%q&-@&oj$Tx^!iBrt>Z3kr zp)X;LQFmEW)VnBJ+j8sCZCXqP5`P`4(|1gtD zjxl@?EK_9tXy|I*Wx}O4h{D1b|M7|Ad_F~;E>@s}Y&AF{CQtC0)ljk87>0tUTu0=f zeK<;f8!e|XHvEk@fFzDlqh^s$ON_p8v|%FQ3WeJv^}YTvqAuRPhFUCuA*6<#ygO{M zX+*=+5p7IIv@runM~^b_^xA~Z%)>p7!-_G@r95Y<(|ST~rBEHF20rTHls? zMdJ!PLt;!DF|W)#F838ih84{>4UO5~zGKU-d)j&7@mmP`P$4 z3Ii@P>E@U>a8?kUGKnW~h9EtZqO(LP zI!pX$Wr-iHEW$~M7p=Hn^my@@HQsfX_4;!HdPO^S5CqmMDaOVr#J%?$G<|`qg`JQh zEU`BkY4P8rzEJjaWD_(G3mPL=_HP(sFtvO=EwasF%P+u$S7CIogbCm!mY8@(rXC2I zT{0iLdft@S15}joHV*8K!|Xl7b$B|eMn1>&Es;Ase3om8k{ zBMy&$DuU-S3Yq$8W-`KnHDW`rg0Tk`O2IsK13ekVdbziX@SMc~kVU#Q|A$mwZ0{ZLLn zlGBgn^bRgZs3f$>X!x>VE~+&*kA4+3J__@GE)vzX(n(eURMsBWP!FqEP6OpsBBxTw5^IovVhb_Z8WI6s8O>+0 zkC-SwOtc2)kR^AMySgs#ZVY@R_qk?pX3`nxg1cj|%?M{oMyXZ(CE_jwWVnWmnq{vKW+- zaCK{22YR7m5J5iKtrX9w2)p%I5fwZCvXpf74Na|0OFE+M+vN)>qDyzVmFe9e*g}fz zRS$)K_laWSUr?j0fdEyos1Pbm1MI!WprmNJHtZA)b0fb>vMvT;0BCpX01|)N{hl!g&H%dOX zHP0pnNfMpu0TWVH+Qkfz`qY}skFn90QthPT>fenZz*7&EjcZJym*LuH7iz(c(XJ*U z$u~7FB?z{N$^2TaUP=bY8%OQth;=1?dPKcHV6-h*Dzg&x(58;9#N^h)qG)HklsmR$ zdQBL{d;ur*EH<-Ko3DO*w7qHSqF4(CYy}KL&}*$MQn0a8!7S-$+u43{Ag2ElJH=9! zrw%U>#BAG|ZxfeB?Mj8z{rFglPBK!l*(n2uQ0J|kTiZHzOkL!v9Q*eNDcO(J>+}NK zT4-B~Kun3Yv4;5X*#@S>+k3?N(U3kuAqB*__g4=j-7`AM!E^T=Y$=n!POO%Eb(@^- zk<(qAtSZM^Ou!st1K@8EGuGt0FNy5%1`!+H=-{>HeU7?GeZaw)H}7td(|_@3Ew!p0 zWaVdypz__o3$C3v?8IVnlNfS3<51R5tsz$b7@8oajEt~`2$#q7D+x&=(*SpQ|+>R7i~YaQ!$spAJNCUt+KX5gQkQoh;p^PN(H zyBzCoiz)p@^`(G8Vt*Hh0$Gol#oJPem@&_Qo<4dok9G-K56YmRguPp5tJJWDcT8 zlIS?2=_ROCwqb!ZR?_+q0Mw6(scbiDF;t^qhqnFnuL%(KofwBUZ1)3##x6^(pl?ag z#O&*@J+jSRRv4e2T287Cj#tpwM?sS{^-r|aygAGw-uDPIQJ zpeJ`CGs+BL!BBMB`Aw*v6{nE5aopRV(YJ7CM+ZcOMw+YI*6eQUXaS>@dB%BuMBzi~ zG)=Dtk3Xlook0M!s;yf=%nW%$6tYF^@`!2gP0&UpadV$iVv|(2(~tm!oLDX#-MHkt zrA|xj0~c0G9)2J)GgFvM$zEt-Bj+4?!qRr%xiA-Q4}KNNvUltJ8CLh|Ao=^=$7V|X7Q9D+N2<3c`er7 zGMGesWSf8?6yL3?;(NZ7=gWN0m-GET-}4nbU+H_kisyIu zp5^;@`kpW4S@dGO@?697wZ7*)l#=ZjXC=EkePv6iuj~r-m5rgkvbED!_K5n*Hc?;M zDe5bmMXvqGi@hl4+j$z{>ds}CSLEj&@uch@lXXig9RoNmltfD~r6c1M|8W zb%I-T%Ddf^Qb;L&?{X_Y7bUWs6Dkr=$h#@zJ$%Nt+)ell2}KX@JoFB7#U-&Lr#w0J zk`n+AQ65fxdk<+!3yP1bfd>GC-`spr z6&xTUw3717qpH+sPDwN9XqDJ)mQKaK72_?LB2qLXkb6plwNG-#}3LO%GThz&=Fc566o2D8-U~7bCMlPpSN4YVi7kAxBl&5jFG)d1n+P z2OU(yaATS9Ydl;b-xb8GgyT84N+C2TrfE%53FT-sN~Mb0ph^8u*+gF}L@TXC{S>*< z&uHyuQ3?Awg3Mp&5*Mkg!k0xm?7>C2=0SB)$}f%aaI7)VR?+1bd)8R_hj&|k@7IL# z_jwY-+k>i)X-I~!Y0GpqFu|1mNDcl(4gNw6{z?u0Mh*T>4PK-MFEM6b4z5K%YVjci zm@tXxb3qM6kJPoejp04wHZ}B^8i^IuD6F7H6U1qZm?vSbRIaO4A>A_W*3^%1M(zLT zQ)geHgKym;40-$EIIYF!D4)JLQNE9;$EU{-21RP{ivFCSj|45 z4#|%_N64Ny?-;(^u z-AaOUr>lVIVqtwJ7PR1jGY(?fcvw}&d*DLE$I6UwLry1`nZK46`t?z8IEgVrhnBCb{^thMSZ);jf7YlHfsbv6MJH>&5X zbJbt0P3rGflt74EtSoqGy{#szAMCUdaMPw(t=4?pkP7ncqw-!-^YaQz<$wNwyg{N^ zamed&u(?rj9xbbgBXxOFyQrs13*?n(7su5hLtk>_ac{ zMwzH|9A<4Wm>De%J&so526yJI1hYM%W=gcugKCk4$33X34mr7P3C^LYe7Dq;~6Sm1kX}3N4(4TJI(>t_Dlennczv2Se3zs|PqAJBJlD5+l9O7nWuU2T5DrW>t15g-G^cEe!79EtJa69 z=|j}=VQTmhEO9>uvN;IT{gAo}I!T5`F9~Ef)>fae39UV#92^4&)vf9cT&1dF@?2Fz zmw_dV>4=F^)w7;b*;H)hBXa);Zzsvydh>RbyseKf*~W1EI0FU0$JVDP;ioC#XYqah zq#9;@5vQ_WqF=s(E!5X^sR|VVv02t0x78_hIL#9l) z+DGI*o~glm-(?_tpG=?jMkIk@g+c7X`7AXQ%yy<#L+aI1hcyS)+Vwh^^SY;0E_GaA zb3m2w!v-0EPXTZIXC9HxTz6QVU88S6x=VREE0a*onNI++4|W5K06S3}Kyh6J86{V< zLKw63XHd@gDbSv!IsTXC__->xe#zYVm8!tTdLs7Kr(s*Y$ohjWd5H@DLzUq*N%~4X z__FF{tIxcsvd?7U*ERaAsZr=M@OLlJ%|c3ej$4&kVL`ju1sg%TOtkQfBkj zTsE;(LOQZ~Y!(taN^K#&HVg5!C1Z-bkgujOB^$6bD9+SRpy=YPPpQUR)q0lXCZfk@ zoluQL?wyrWoHZ*_j7O1e;l>%cMY*@DvBfz>xrf#E6Uv(96gvl1b8+@zb>6KiQtZsi zIzaftT#T!~SDaNGx!<(z0X0#evjUG6xRVd6^KVt901gxTJFhqkD~Xm`ES3r0E_YI* z9a5*KUR_J*B&5LGEaIkqCR2C5_im+Emvy}SXG`)Pu|S3tgM$%4tW`5Bf+p=RfAZUM_`3ME|jSz zg|gI~P_|lzQTUorFSR+;2b<_Z)fy^NdqVxNiSDni3k^^=hlR!m-6Pmk zAHi<=81~fP2#r?%6B?_&A1YVRVn_Y!&_wme&?NQO&{XwuXquH5nqifOPO~P5W?M5u zbF4X`xq8IxQhBekI%n%?^f^6p9@O_w>hn`LkSThVO_!7I16zIGR$t&(CfW!BGQOZ9 z_cjwC6Gh-L(~6H90EyAemX6!hfsU z)10J%Yz<`pXRB*ui*PM=m!k89GtQ8Dx18|E85WP6_~f(|_R~w%dqrdHeR6ugoNkiS z2jq0KoNkd5{x}J&oWpMSc3XW=-rSKbt~f1qmpt5!A5M9=S03(*K*fJZ?(VnMfo$=@ z`GESc7}xR2TDQCmG0VLNuvR)@rz`>>pj$eW|Mi;IAZ4udsN z@>0hHreM_wmI=oN))P5`4I}E)>NAqyvvT*j9Bfsd6qo-`$?5X~?h8`5FUsjla{98I zzLEo!uL`KI$q9wMhtxNuSy0(qs=j5bZ=aIlRzFX1YhCrKH&}1$&Cs*T)!aOfGy3nR zb(O4Rm8ymHw$_z!Sd%R3uK`_v6%3E{U!ZlR{>N6|NvC!7Z=~16&gZqL+YAiG^0F56 zSe=GVcaPQ%2Y(jLJy5&B>xF!}Lr&+*>AQ~lp89@(oZMgy`2-&U8`OFSA7$q_@Z8RI z6yB^HEEsv$Aa{*&_XG8`t$yghF8XnR;)SrPJ;|(t=`AWKF((Rfts53WNBu-SBXRHW zb`hYu!xyOK{8ar+Jccf_)w7QJU-febX4EfxqLvd3ak{O3<*5Htzn0qm##X;|Fv0v? zy8LnBfIhaZ{^*D{_G?r@X;RMzXi6kW-W<4Be|2D8{oR2L^LsKO^VTp?#v`@ z8VCLt9lDN9S!zJN1Ywi|m+Tcs{X=V!JC`VQVt80Kck1_6wqxZeG)5v; zu46e?o@4d0dOL8H^5w3N+!Z)hUq*{nh*Jxz$m%EG^>?fRR;7mnX>h3Q)3U*gi2UQ1N5L0YmTDBYtexJkJg#dN(;PSMO+Qgo|a5Kq_+GwcGL z@H{tRQdX{VK|IC9WOa#7alV_Pd*y<7%6B7Lyk4hlaZ`4yTo6xqGljf`Iy=!1X#ES^N_CN;NS5SHtewfDm*O;>t!Cgv|)CT7ef=E@;D@ zorPCPqg>E|`$*H5JyI@^q8a6aPinBPazQ&Va0BN;>WOkeyxkEX5Y0f!2rv=O%ShQ3 zE0$lmV6av$7_z>g?5G-gL=6)u_F$u2F!-Pvu9XXXza|UkJ$;Ej-6|JI$&7NrH!0D# zXu0non*T0b?C;Uq-$yk6G%VvE>JrD43wEPiu*X#{kjB^>YYe|~L9F~Ex-Gx=YeM;9 z4U2L?K@XG*qy|R0;Fr|kSJdD))Zn+&;5lmWJ8JL;YVb$K%%6g5A<6}e4=kNUC5VZh zAn`7Kke_%rfzv-D@$Pp}jl@-IqQrYN67Mlb)L0|&?sr0!`z788kB~czHxlojrJvxJ zcu(}wi^SWXULKLl9aNJ8B;HeG`VM9q8;Q3+-9c5FB=JtEz*G_=j+`bi4yx$~)eHo1 zGvhN{OT5{*&d0TDEdqe$RtSlA1`==lWU+0%gh_fi`_=2M2oi4xiFY0n@7_qf^WppS zLE_yPiFY9q?|w+U`y=r#M&dmXiFXMS??Fhs2P5$=L*hLYiT5xh-XoBBmm{00(7hfg z@xIvW@kEKYI7E(1yifBa-tl^!9Gq9$Luylbd@m}Cbyr;Ml?}dld6p@Yg=D;cMA|vrG zHWF`Xa*=rBzPReJTI@=^HE@x5>*420yhZpdnQ@T;7q7LEct??VZ$W_CKsPiZ@ouK3 z=TplTYPbXDN;?woP9)x4NW6FHntBrNeXhh?i6c(8s(x`53Qr=gS`yFE2$V0PoiD~~ z`=wroi@55l*w8BG2?3zzFDJI9Sl5!rJM@q5OcYnm|MjCI!zC#Ba7^Tbld>FZ+jcdH z`B{?JgyFWj!B+1Pa^^+?U5U7fP;p44*>H&H9aJG6-q(TqL!^08L-jcgVZ1u5h z^=L#?j3O*PhjK(ABwHPom?sFQh-IW@h=`=h)p1)rAr5^`$mvt^26;Dvsmbbutv)N_ zCS+3~g#_~{Tm`7l3#>2Xh`=#|$nYzY0D07x)z@-Z48ATARKFo7#o$Lo-T+f)1upVaD{zz6avQl=L1Ki#5!>Y&s7Y&YVs z7V&t!Q3NID%4w6FT=7?fNWPjJ2za8$HOmj@$=&&KhfvB^zi`wq)vrz}4O>qTcNKFk z7L$f~t>#Lmwh9%SDpK^mLMrwf5nQcPwRjD3*oOSxVIT6xo=C;gLq#(7CrABRJuhwb z7d#G$6bk8O`V>gV{;poI)r%rtdiga<$6C}Y0TQ7U=@^132V9RRDP&~?2($hv>6jH( zbTE9M0DuWhJ%_D8mdL=eZ7W9$zii7v`epTU*iK-$ozERxhCYr}pf(`?vI6m(3I<~91t-}+p!$E$F zT428|8B1QyJY!!mqo&{9wt$M=9&%Zn`u$5rDGxw>kCiAL>yhNSv_?;uRuO#>A+4QSH=;4u16ZS%J=(f zp4a%EMIHuG$ys8!ZqV1bG|WiFAdU5VsAGMNOT`-WGi0*9Lc{8-gyWMxh-Q6-Zq`>w zXRabOGZD%}YLO($avfi{@r#j~ZHEUh@-j96oFzrKQnPr%JqUdyqE(BQhy-NiO3mUa zt|F^<=oB4pR^3a@;wf)JYW4x0Qp7=CA%#g7Xp$RGcqfIti_h4zxCvi^0~Y4Z-XN1) z9UKnZ8lOq7Fq8YrsZdTuo`o*l_WnfL6tNk6&Ekpz5u1se3=7?Y(gGrE4t9lTeZ@kz zRD@_lM2J>qxRFxCH7I~93?z*ZZ3#tP%J8dZz||r|tB2FJ4k6llHI5C`WcE)p5T4CK zc(xQ9!Zirb&PI6Fh+$JRrcJHb{B&Zuw+E};oj}zBwMJ3y-(?f~2=R{*sO?2+Vp`BI zPzy9|6)vb0(+Jc)r@^`cwcWrVFp>+&FHq}itabYuW^&wGH{K;*L!kC`510tl_5kLR zSh4&9wV_&|Hf((X_N*h0sF5O28)^hzq-URf!d`A)Gl)cYSI{&#~Q;gP>Yp+bhqXAeoZKU zkrAjB^+2E|H829T-&2D>P=h~HgXgKiU#P)fslnf=!3zk~UJR~<2-L(iz&;r1dT=BN z)Jk8YK#dq7810UA1!{ea328Y3HB6PT{uBGJ;uC7T2-NzBya5^FgrjOA;rEO{t!L>c zi$JZ9n2?fwikDslYX0={h$sS+Att$NLh6pyLu$HA<)KVzBT)0FJE(?u0=0A%m_cG} zt7i&~gX%Pl>Jg~TiqCdqLYj#QX*R3~!dY6m2-HvkCMxjx>~t?daCSLc-0P7)-GH(2 z2dsVw)CM3>D@LF;5P@1L0<}R1)P^8XD?^|*41wBk1ZpGL9gkucJsN@9SOjY22-GSN zr;SITHWh)|G~Mfg0<|l>9%tq7nUGGGx)>8usx(_Lp9p*6^_ml}ml3GVMW8khf!Y}e z)GCqWNEF|NI$u|yc9ll`g1Y?zwF)Cpt1tq!xkjKiPXuabXo1@NqpDI1)E2k`wHZdB zwonVy7R3Z=g(6TZiWkZV)XqfEQ;R@tIRdph1Zpc0sMR4*t4E-=8Zpy41ZwLMHElqk zwh?jDW&~1ZoVd86r@tas_J0#d5H+XI!}g zwZ+`(0Zvm+$2`^u)Jly&O`2RJ=tB>yrH56uD^SzGMWCjKp9s`+f9O%{4Y+u%jX-T1 z0=4Z3)SBsr^AM=DQPT^kWd}9vM4+}Cf!c)#)Gk7xc8RX3Cs4a4CQy^WI;N_Aff_hf z1ZvCTIU0f56}0n}2-M!8q0!+YPIoz84baiX^;Pq>ZB6)+G?KNLU!9>WKeXN&;W0v>4?$f6bodKqp?(sN zQ2n6dz32Yea^nq*O(9%=z9=V!nA0XlB0_Tj`d@7IC$Jxwh*I4o?n`6o&gM5sH&$X- zhgkDNkRiHK8qsV%~kY`?wA`%fRdO_RtmMlyJArtaw3E@7L0=^o0TGTts zVnF>Nk366{FBd0;GjcvO@H?cMA zWKoSX$5i9oJk`3AfJueoiqO}PZZ@ofAoZN)&J|usjLk-NYtwGs;P80I2*@|i2C`=h zUQB%FuSBOC%4nDxSd{v;+!n ziZ;S65;*>XFy-p&#QgZOtJRhUIXtx_pIH5P*kOk|M*5Z>=O5)hD zHM&JSI}gw_b(2S<>6z!w(33|34((`QP^8c^L>?p_0)$9cM_UWD!72KXO?8j%hbO*1 zn_3%J?rg1X>g=a-&!5gi;^s< z^2gNGS0*A?35GR{m`)JIJPl`Ukj2(6FUi2el37skN8<8k&t%oA(FsPm37SbDM8Zh6 zVWE-_3Ii--eF5H-GVw?FghVH{h0~ZVv4bOq1Q2j0h}I^S_RW+a3g5ATb-IxfHc^hP zET%$z;Q6FTW!P+xh0?IpSf~|KPJdu6Tl|C2!ko>TDtu$MQvsi5Cx3b|i3t7Ye!7IJ zNKVC&8o9SY5)qhKn5GaKx#7k`DmPvMLttD9d+RC+`c9hr8eM2;m0mf3AgHGcbf?>- z^MyFF0Rpv>2W0V7mVFyx$53c}(zqx@gB5o;6=c^ZyctH+qc~t>6W+%{h0x_CNG&yk z1E-kTL_5e=H$gjn0G8TqEX5zxWuOvM_-t~l2GdsjBP!O0qLm{SYJV zevtP8n)U%N8zD@l#IlJ+5c6u9JbWId$dA!1Q%M$5(-H}ueJ|Yesms}7%Q2P@k`cZ) z{ar*R(a4j?oz)TO+|dk|Y(?;>a#bM$g>gAlK<}#AP#364a$-xJs{=gBmAFwv-zM@^ zj66DB5hbdxnqzC?2v@bcqs^jwhy{CIY{w+|ClDXYgb+x(V@}*61KH@6`LVKr2th$U zZzw@g-P+mI;nF*jscgqQN~UM@#(<#CkPdUeM#FnZXcPtjfy_9=QS()$0Ah<>sEP>S z?cnHYumoW&a){%-*b#!XN1JV|%Dm0Ct(H4jkqNQtU=u{Zj#Y93^#uf22q@WGh_V=v zJT;(&7UCHOm(qO*^(F4PrCV#8B_7`EyhpYmh+nrw_hhSRZWq<)Fk~KDTPcgU)YAQ# zB|J5#MEqw@8DmW9G91v?TF&dP#Gp|VO;VOch9hU$!OB%un|K__bu4DG5)NV|w1(u| zbcd{kq4fnBM^zYk&lBZC4jDJXArQE?37$lv$tn}0vOGPqB z)mbp1fdx7!O_nIVv3^+pDA3HpH-|eSdb^))V1q4%)@C_b#ITIYI($&&u#dLAO>_>6 zjgz0xF4}oi^3NCbCRWGMia$?Est=43#wQ^l;t97<`4+#?+EQ(8;RKMi`rDx{3 zzT5>j^msRJHqM+$WH)zK?PwQY@;tNGPh2bk%J#grnZ5q#0B`=mMapW{i=3r;JmYl> zR#KRzJwya(V8IWd*}WZBOgm2&{hnqaTnrbuuFaUBpb5d%i9mPkSk+eFd?7?fxAACL z@7T?BwHg2TP!evFnQg!8HJ|Z8S?YE4lEuxk$0`lTSC31xs%suX84@csyaxkXa|ZO< zn!3rCIQG*Wp|%17R;4L~%dj_9V5MtqTHe-Gzq7r)t%K-R!6CDByt~$DOI1gQ#Qo_f z#rC(sf}Mn(;D^xJWl~Zomn}#>jjmBo2TnEWPQv$Y)q=q59sqtqalG>SqzvYj z>Dk#}_*^ifES|DD#dp6$c@h?LeAjy#xKuCivUH1fOsKphy!n%gyKsCDV^)&!tR!RD z3rzrfPSjAmt?+PQSiG^z^CK+y@q|XNX*!Ga43?lWHczRW*iiD$bPk`6VIyQdmCdBU z7Qe}%+mszfktIWtgnawnh3t8t3{)t0J|oh%1s)PB*+CT!PkDr|{QKoI`8d7_{sjH^pw(Hc z=)*NsaXrm=HWTn1O#L^)-`@n&eKY@}%tvMZTn-=4J40by{t2|5vlKcH?T{4lU!}_ttF|eiIKPKfVnIhUR zVO=(9kSX=@D0f!9>1}ufp_1^P8R4REc=L?RBK_liN>l@QMZ?*0S0XnzeNaV;!ZWfC zsH~D1Sw%v+(!zQ~6=ix~7G=4g+C`aslvQ%KBEd)vE^CVD(u9k$3`kv;lJWILS#u7& zdg(Z+mYD|286}Enk~WNyelSMLV2qR#{bC}_k?Al;R;xQ1HFq;&?p2p#b9xmVjqBiO zTn|U%12~1aS3StxL;QOfEx3>BrbWZ*WmV3g`3K|0!Y6OY8j(GemYabb-i)58OF~YP z;<+&Q#d8aACnH5>%j#pQ_xgf-i0~T83)My`2?*w}Dp;H8 z&7@Hk$5dZ3FDyWHOyXyROZlMxVKv||MpAmHe-CX%dBF2>NxV0W4&1jG^#6lo^E(Xq z@6+TzK>YN5b|61QZvG=(#NIO1N^LdgW%}nuURlT!Wk}46Gngcf{G8FVjy1!ZlcPHZ zQ+-owXIn>AY7lvmr}a~(i~MYsEh4l`%_E9{ry$i)q>^7C)-#1z*CMnGRTUBS0Fjv? zLR+k=<#CyOawfDodRML#t&dtE-<*Y%<&;Ee{pzch*VnClZE?xj>24!BQc#R2SMM3d z0yMD+a@*9n(*4{GscqUTD7E>8g*&z@=ss9=TJD*ISoCayyA2ub#x;&bNAiklb{on2 ziZ_nS<`2mnP-nMcgx2ay)m9lb4E#BIZ5dQaH<7LCZGwKNQ{>c{)Miv0ntp_;5T~1z zK@-P*cVwom9bqPPL-G4S+PH~i8OCksPz61`L50!IAr3Lu@&JVX+xyJrP&-k2W^?x;LgM)a@qQm%woD zJi(#p4HPE|56!o(^l)HD(+(V8_|p3_e3Qh)K8KSK7?~_E!p$21K{&x3rw6ADK2{kX{dlZ)Qn80p>!wg@nDcy~ImgmNg-`y5u=& zXS30n!74u!uFz=^AF}?N&4_>*&Xdp)xw4oWAcnM*#D)_&pF0FFZoW;di;_S*uGpx- z%f+PCYC>@^A}ut((wSY1lyNy( zN>zteh!78;IY!0?PcqMyvGo!eTQ5U|#jCxJK3Gp?8)(OKG;qpZ2Be8vOqc>&oY4fq zhCWV#-308dz}^PzWIUme_4*2C3;2vxjU0fJir|z$`Z3-%dS+7ORwE zXzPSN>kA5ws=g3hVx5pPkk` zRrKyVD9F`l@?WFtl25EK9XV_oYLU~iMIh~rSfiPd%sxXJ+|yaifKjxl_YjO9FLkvn};0xrA-$+aSvTzf6i2;QdFu#WcOX*cq80{J3Jp?n2D z$b|3J%Yqv!*IOKYAl@?6TK|ACeQLy-R`K$;MJmKMgI4RCn(f=98XKYiAX2SgoKyq# z`eu_GF}M3ccxr@NaRQ;1nBD*HblP+l+8NMkGg+L4MRZDZ+8L~?ZwQ^X7;<3=blREF zX|<3E%U^FgZ4IQ*T4!(D0Ws z6!t-+hTC3M1VWvEFJHW!oSgf&!#nre$dREFrcXS`tsQT{D%s_ICr zMhX6d{QR!rCrhO9U|POcBEw2cFs5Oa1Va{%oMs%kOgUWu^sWNrU`~xf9;X z=wz@Str7!o$|KfZ^TlAS(m~RsmC&jJT$067=|aV@e%W z;-{m~_beJ>3{1|623HS}Ube>7h6#h<#AU+3Oj%$1Y4+@hN;97_63AmJ3%hh%%Z-pl z9#J`mROYzP98lTI$9-n}6RuWuh>T_rWwM25O2GgymRJdVA5@}GD97-9;^s^Xfi@g* zqDc@}2&Pi-Ve-u0Up_bdj2h%lwLFbXn?&IFLH@Y7#mzvO6)c*G=fMmLfp zkO1}?J)T&$DnM>jl)#%WmpUcIvNwNE zjzj`sPfDCTf6sbz3~}@+(GNx<_g0Xgy&eYaeW8ZdtkAPLM$=fT8^?S8Ce+C^Sp=ys zqO(*;BT{!f$u!(p(e2J;=`@nA5?4!47V5zeQA2#sWjqh{Jr5&|&=>M2M1%Y>w>jG^ z_J;K#T3O7#pQ~EspX1njntJGhVAiA^(KxZM;?m$!DY- z#+GgsEwGvjtb_7fPupyO<~xUKor`%E5MEX{r^py5u)TTZ~CY4&|hSD0}SmL&u14D)o$|H1AV%e zA#fqEPK!Z5*M%B1%N-p7Bj`rOBHtjhP>&WWK zr!B|Og8iN`5nwm!w`@pjO295JosEP~Z|7~=6U);S&a1bzjS1mllo{GHQGVwdfduj6 zlBbuZJd0wKrytH+i=vzZ^)VNUavlWP84v-dL{Tmw!CQf%TmvDumI`cuqC6Xl@*F72 zbD=0Vzu6R}@d#X`tt;A~DBIIelxMj#-`FIIGAn_i%+F3sQtpMMybzM|B1qSZS!XT@ zCMks+6&DdgN($^4U73|YSN=`t%4CxAoosxrX5VoQWc#&@i+6b>rKqv>fTX-7h@=z` zg%h?ud)vxPb{-s}513~0>qs&*g$3GMdnL@l_+XTra81}tjnUFLIh70BRiALD&|91o z;!{EH@Tm~;#B&%EHh4bW;E@bVXE+*D!3D9#*nA_$ocwbwBv{zih^1ohnr7_(cJA1M z>9?_|OJ>9&FvMlXsW_U;*|HNGvsE2Uz+ZCm4Q#4V!$Wo+k3nOqoCa}-XQ1|2ONotj zcm5f2I+{=rHZT(mIP+Ypsl%m`3Pg4LWPB$_Bp7&^RFiQrsir#Yb%5_-r}UY41A?w@kBU00+lmWInP7j!xg@bhWa1v)GCzkPH0-7r8Tmp1Ce{6$f=qICQbWoL+al~jc) ziDgv=mQ`kJE_dZc;qix6_Ellb(wkKR z0dXxLnb$F&rDCPDp_`}pf6XYJf~IheZpUB8b1{`#kB#L9+HgIUI7dUrb*b1$y$IvR zb4DP*8v$;1`xq@{%n`#fsg%B!P$yB*%_zYzDEBHWZerZoDvbuL;EJXe@|>|B-C#zHl7E1#F;Om+98O-1&_RqjsK&tu@x%J zfV+zK)Zc)Q>EGC24qa{j^3`*da#vfms&ahw^2HPX@kOOpoEcC0Ym$Ec(r3SNEp&h! zvXXg!`}YZ>Hw+yI&$uxWc~|a8l=!&8plfl9rRpfgk{u^ zNc<^f>4|;JO@8b_Qcg=sDY2RSsc$Fs`+u-$+sG8^S-oWG zstH|tx{?9h)-mCtt7-^e%ppXZ_qTuF2=ru3!E34)Vzye9oLt(fw;FcG3S8*QA(|ZC z-~N5yJ=aUVBNn!&vZZ}{)a+>d+ieiF|B=r298+!dVl-(ZN}-JzX7EgDqHXd z*-D(*%J%lADB4mDu708)tdwu9^TKUe)1XB;CVMcs?%#Ld{XGKf?GS=XeZ}dN0wPQf zAuPPV{rg^iDggYBEzQu?HOVzzJpO428#&4n;6CuR0Jz;WszB?wFn8BymMJBNSo(N>`}aNYe0R{&mr?4Tb>S2%Q3OA7Bz9C?WdQIl zRAIL4>}p!j+!_q;b3gsc2lp_;D;Hys!Q%a7+vQ9ZK2yjQVrPAvlmljV3IsO0s zZ`pKqBXWq2v-h`u-<<1D3bOlQ`l~-o`}4biCr4s4JbrHw=&rW9ty}9G;8nCPjJEEI zcBbpHzfJq==x;}q#3yI#693!3@5cL50WVl;*bXsvZE&Yuc}u}hFJ(cJgSj93W2$~6 z7^p_9Ez9BEq(T&oy71UnmlZQbU_@wTE%Ljjpl~#_j zSP^CBf9~;gAcG4i&}Q_1@V%>h;qHP%v?aa2{rkT2nILHCAythk+;JspnsOvUYWijn zBw_QUHk!=uYsa0ts1OATIm)~OaoxXfSf5bJ+*uH9IDcCQF4G%Rp-C5f=B1*iYo|lZ za3td2u8QuUbw9BGcJ9Qve`Vc~Be7%cXm?O?OBPg6sdk_5pYxaJ7$<=N5w1+8NY>2;z$Jg;fJ~b>e*|i)?Rx59jn@Za}B!5a_~R)w|`%0?~K$zkNeXtZPAW^ zF)t;2-|)gAr)@-Kgkxw7lr-f}CjD@Rqpuo`)sA;pmSn>`}eJT zcY1Jw%Yxx;soit^GI~Ug@)$HJUinSk!%N@W(uN}kfBUX;HYg=W;s|>Df%I@!w6*N* zYHJTbMpE}5T(jeyV}K_|;+k+yIGoxqZd2B`Zzu9haP61<{^J)t!=_x0L`3=IxoIE< zEZkDITVA^Jr7y5n$&uL2&+H6nKE7skt3pDUGLQT z%CLTU<+aUEv)aosE@8Ud_k4FCt9G$}S{Uu3K?5+EK>p@}?}VPlMnR6m!TtG{f*`j? zw=}mjckNx!9MqHo@v~oe@{&!gGIAvDOMYIR6;OQ-qWHWdOv#>xrgqt<1UJN{nwzfM z%vhI$F&g{Zzwf3=%7uV>20kw~}X?Mnj`9DXudzjDQ|hW;M* zha93i>HY2B_sn~G0yTX@2nIR3$SzvIrcsW>h8=Ww5cD1G_-C!}f;Exa;ll1Y|D1(m z-a|>{NNj_k5N#F|1H`a2F53kVPViZN(x z8(`_jn6&U0um9exHh{@7C;{k#F@Zq4a7!FqS^Im_9>*n}xTQ;K%HIZnT7+S53sY=m z6AodUV4`({t)%wfZMfpAkA{?zqb#AI@5Tx^x%P{i8lo*}7H5IBZ1#>iI6F#?#HnyG zX2j{Cb>Emb-g(2c_p^-3k+|erI228Vx;479rK|ffDyzWgW4GLY1Dp>z64#ZdiSC#R zw!Lfn!nPgl41m@&U3DV*x$~c5{gWfHpbySI8N|gcZP7Gf3s+w~ct2Y>ITAUZA79WT zu<4suI_>Zs^Z)h)C6*&`VR&fq$-uKh1drPJ&;0)MyD6_66BEYOBegvM+I@-Dr1SR; z$W%&>MAG~Y{5N*rbIYS$L^KO7^!^QPbLUfFIV66I_qTuFD{FcNH+{Kf#68r0{mKnY zG&vG!r0X$V>%QFSAxj_Dtp55Xn{uFNI7WHJ=DL61(5alG=uI?lhchf%&DM zx9@%zYnmL1E6}&Mo*ZWS@(O-Dd*)NS+L3O^F+QQZ4-%X_r6rm>+gqZ0#dy5?X)VQ` zw|e8p@({boF*E`6*6RX6cZsZ_rY;TJwY2|l)?WY^ITFe4M{f%N*Ad+!KASNq4~Dzpo;{gLk9LBS%F7yqmuf0MDbajaqQ$ zg!T@$zQ_ieI{j3#0RG|7_c)s%k>p6M`enb)P8mp5dkp$+j2&fjH`^FCSmQ zke4HIl9v7XWDwI2dg=bUJ-6)5hnpY=v}f#Z|GrOza#G3~SU{m)cb~IsLiKda*Etdg zxHTXUO!`tueV^@h`teC1BsmgM$F;RV;99$;E*b&eUjqsW+7<}RvIUvn|0%1r9Eo(m zD|P8%cH+Iiu``%?D^O4W+4=8#&oT&Yjzpfsh;`|p2KVtZ)2@5Yb3{Bm)(?U%pSw30 zQWYU7c6J7C`lM*XYX16_JXRw)MkWBf<)Hw8aFqp_)ka$hO&7536_9h+|L*+JjB0%( zfc)jhQb8`M`G1|A33QD|8^>=5wePXS7TnlELSk!bi$sVuO@b;#Bv*2|a^q$pR4bwQ zsMupEwWX!@wTjwnDXOWhZR|U>x74oR^S^0s`}Cce_j1qqpA*M9zj5=At2Ez=^kcJS>*0Z`G=Y_-jm+knTu>mmovjnHu0eh)LPrJ?tV|G*MxXn(rStViQ!4obAbBAjDu6RQ*(j% zV%NwFXQ=XGuuqltT%X;pt-%2C>G}BMN_x)4tK$0dn3&mrBb6!S$;!4&g2tmOqk!Ab!-*$(l@r1S|nJvP!t)+^Acv*LNDnTF690Qs<@*?Lld9!%2}#~P?H#QslQGN)}@ zfH$A_)6JKK3wVyjQSd`;TajO5&?%`BR)tNnBQ^23NRyi+mp9 zbv^sB9y!P9#nAwKv~&sA#2}iPLVULH<5K}U=T1|{v`W0ZfbckO!i3>XqiN74@z|(W z`I6eUD&XdNskTgDcfKjj-ZD|0LcANl^r0?aZ*Am6MvZIrN>MeEXcp!8Wv0#;{Tgs} z4i1$J={Jm43!$2hBrxK;Wk?gjcgU)^d{q4NA1fIQ5ciay=Ib-n_L}A%Uv!gfh4_^I z_EsfZue7I5$g{UQ#bb~kD~Kw4odnA*$EZAUPVBO9T1A6++_&$VGy&P}1DtQ6)#oeP z5Hdiun8iJBN`awPb6ldL?(TG(=n_LC1;jnt^??&mc@e4qrCqlIxMTAcE$_i;B z-Qs8>WwHsk1_2%4r+&MN)OSGD81%25B4~V4qU<{v;EH8M(QDbnA@Ne~xkrg>W1-b3 zn&Cvm+UTg0c3cEJqTOS!88mD`yy1L#NC{UQu0{uPYuzf-Y05uD73lb7rly@0aT86n z%@h3hu8-DKgb0=XH+uIaSAzkn?f{~$7G4k|ZOW5*yA!J1&nELAUQK(hYIz;}f^wEp zMNu%!o3rigt(Fv>Le%6Ozs%IrH&i%rga~5A*o(V2QoIiFLtMS?Dv09J>)o)_;39bq z28a)8ot_9`?Xdnt>qEYhZU4;`CRw;3_u(v-ebzYs;3 zj$dYKk1nM(;||@LMbDOtR$RfF{BE(sGiYTP;;i4pgsdP_|0Kzlcl6C$qxMla4e^zm zJ!6C{EZ&H-*x$8bm(QpYp#Px83Q@QiOp8L}9b2i?^Wnt}2FSxvR%j8kCkRorA&@`| z6k^)YGASu#s4YOe$%f7q(&(_Sd4M^JjthxS`q~W~ef{8RG7RF#rSpWycau!E6xyGS zPY^XTAgAxS{^#dZbP%65?VGQMwC{pQyY26~9-E#@eh2Y>cGV(1a_7kS5L)*Y9|MNj zb0dGAR*dEzPz_d9Bfivui)*X(_<@Bs(})07XTU=%g+RwrvY5B?`LgKVv`Gf>&Sv)} zAx|}`H2id2%_CGn5YO%V2NW>z^dD{c>7)1>U1`-6;(c|@VFAz@W1(ej`H9hMi+Y~i zL$*P@@E%bl@ZVj*4ulJm9$SKWm7ce}@jEpeh=;b1v*kSfqf204+jeiS8?6sQ+$|fQ z6SH%B?wpnVB=SmO0|mU=^1QJw@g_PxYZA3j5R;0e3|UUa0CA%4 zT^*vY)-yrueJtti%2ZJhCsui&L-Z39cKqsx}??n0v zTd*4gvo|g9IqgRYKr{k5e)J{SbG<}zd>5UeS%yEDZ2s*%>Zu^^7N5J65xTIW=7P)# z*n5s9`vvRLuzkgfrVG2#PzSYiSdM`uFux9*jsfB9JK#BAnV_IztycPSU0fL@f{Uk3 zqh<~9w)5~UowV$uMb5W3V)kFDhQ-+nTntckmXBkl)od}(X8XLx*Hk7@O~$*u!A)4` zIVX-(ivvO3+m|av5gx?Pyj|O*WeQJWVt^Ty6nE|@nFP_%CC4u_)n}&wBmAfjiyr|4 zmfUSdEe+yD)_9kgBcEX*h<)%u!2ep(;y%Q8<5ukz@Z{G-lpK5a{$eU1h=+5=Yzats zlL0dM!`YWT2L{o#4Wt^5qJn?tc_?A2bGf2uq}RLD5+QEfs%B+1j$uDiEQ~|Y__DwC z56oSH<|DCx3lU4X!k0d9f5E9_5yYc(zaRxno!hi;edipdm=iLx;wu;>f$H2{Fg(1AwiEQw-u#%)GIBRzSF>qZU3?L#8@#|Z((A_h3;8@P_`j%YwL79qS{v1 zb({MfrEUP?H9vBLm>g*n9)d;2S6k=Yu0+8c#A|;1b_GmsA$pnJC8jUUPbCTQUgqXe zAyjZ02FAVk=wQ=e0zkZ%sdY-sk=um^J-_tHk805Z8bnKVj$dZ#s`~<-l|Isu%!1qs z4LJ3RS~0|1a;gULdOBY*CvhioQBS`V$A^#eI2#F705=porsisGR9V-4MiAS=O!7W#*v8y%7xVHRO-$pOLYUx1%J`8`b$* z7j8FR&OQ{fZ(#tnPKbMbiEs7T+I|F%8s4pDq19w1#C>Y|_X1*EQix#75e>5KkbQ=6 zG;@S_>_7aF1SI_o44wL&a(NyF(=j}VTBPHbnHrES;7KoeD|5$a^Q7(v;=aD~ftces z=&3C+7UbA+*EDZ@F6gi{=X{sg z-k@ijnwO(?3Gq?KvxpcgUa*I^%-lM4UK#~1P;Hj?VMWC($9)X;4`Z|zf;#b2<0dPu z*h1WOT9=ejRo7(1Sp0(N`5^=J4zu!JdlAnXk9~muuG<^CSabeE{9QAA-uv`VapS0& zL*6W*ogJJ{NLwgiH|Tt?NbVh?oINd6%yz5SsT$+fzbfU1MkWek9C%Oo^^&_cPzL~UpNzky#I?1Ua7BQ)FnvBvS@4Qh zGa*lAr1_4Bic6B|J73u+X)v_oK;P@zi_lk8B)+4x+@+$X+wV$yNB=_VUklNA$M|KX zXgGoDGmF12<^*2V&z>8*_pR81^yL$YH-Xa4v}jZned=tIAKyV~d~vwi{2~a;zRU~1Tl@ecfm?0ntRbxwR-QO#bJmyqt3(R ztT5RJ;x%8i`fVDWB7?ZYcbXu_g_~l;Z3wwFRhiJ@6B;ogUd7esOOPqFH%;BKxGpZw z^=wz2E4nK>T2%0+EJ8e+ z`8*^zj9=PpqPw|pYM1+xJO%^AJHmLQ2&O(}vh0JCMT%1{As+O;TT4O9jeG;?M6C2~ zmZH1*ozH!cpayGvE9)uP;>kF&-t5VbrPIjmAntnW8pwg-VoYeZtNBv$6o?n2m9FOa z@6jc_j|d8U-~Il1iclaP`$U*kGLE{7fGHzoRGkgt^d%O*Z)qM4 z@!;fxak@ykwWuBU&o`HPN%IkimuPf`1TDD}40%s$)-Pldg(MI!(FKcDG_{R=-KuW* zhSp0UZli6pgsQmE@%F)Y3U4G5#BGc{prXlbM9$NzZLoAHX)r*1PSXEp5!I3sV~x|h z=+wJG-rx{&PRNJ3(xV$rK;;&r=H1pl%yWZ$6yg(wifzaEP~~iC?H_xW+*qs4V&On@y!A&@+-GUc*Dbl2L_= z56JM{+5LR(QPDwE$&O!U>VChf8dp?L5|QO*v$mGoG1Fjxc$GYAB;{FY*@5oi*H$tt zytnA<=`ScIfczZxVS@DNkc?=u8G}srOHA9^Y*w56S_~wxrCHf0`;zGFK8cUMZH~$l z&>D;EXZ_ObR6B}>Al_gCgFGa~NnZ-7-wZf6ZcUHKood5ewnHH204XQH>Ea1#%^p*6Di2o0Y|-ENOuaaC>2y&tJ{BFNJ=yqAnq5I z1q%MZCgeH^+`QK5onL9KAL6d;Tc(<%E~(h<9;fvVn7pLm7j+I(Q9yhXvvXBFqTGk! zcN6^={*b%IOP!(PM^B!4h{y?aAx{*oCj~@B(I+2@jWY}>E*A=I%y6USQxZ4(uWACg zH8Iqh;M`!fv+}S5W?D~yxC@?dDkF#EY?gEQ5w&Nmtc$T*Gk(ts72@qD;q}Mw5Z{&; zOOabceEcr>zMSiv%|(0r_s&oDLc9lw8K`C33q#-F%j-?k`?wek5I1;zf(S}?2-!ap z2uz{ppB3JL)z-*^N4)n?K|nPfj)!*MJ4wZsop}cHy8u&RD>XZa+uMJvK2zN_(2!rAs`~bJnzKTDYUFxI z#!|d1fnMj~kCg(((QE_a@s?|r0BMS&OX##2g>m7{TfACCaV6xzs(RlQ87WNoX(=js z`H-K@Q)n>|;-N?8EfJ0GwoI12B7l4zFLA5KD+&@Ip3lTr0-pVVQn{5ePXRgW&B?0Ow4ko+Y%2*h1Fxu`xIQ z`R&OC=sE%tPt+FhMu|3ZBGEh7&$s%LN*3a!JD|gBCK{1M=a77zNb^PL9@An<58`RY zcYUKY&H9D=!_pBRw<$e{rMuzC-Ui+-F>Ssjhqlq zvsB+VNz)l0dT}r08*fSv;%P36exo#<$fw8qS1Z>oP8}(U&#n9izFwNzeh!^=qt>R2 z-_xQ6#3TNVDY|@GYrr#eVscP)zBMl>3WXZ6zU9D3XUVx8wm5|abJx1=AiE(imV(^fKZk(V@Z?@aY?A#+S#OkHqXEkFPQ7#4{TUS{#EWyl$=6Kp@9038+?H*%cZrkR`O6z6XI3V6B4Apy zIJxp?-Xu9cbz!c$HqIhWZpisJN=}`-rVl*m%F{~LK`Ga_{vHI5QC8ixN&_#O9Go}X8+5}XU zbt6rl%J{ts$AZ(-EiydcsKb)+L6syA!AFUrpPKP&I~} zRa}NtECTOLj;_6jFi;(a8&gAxQ?CFQnEkNs5W+!x5o(fAh83N_M~=UHuzTEj>hz#y z%tU`r8SC#yQ(j}=B`osd%XI3>p&Bd|Yi*rW#Ez72;dHl;2?X)FZ&_alC@Kl~X0-qN z8*kC@2Jw?oofbcIbmy1_Q($dci>{S&l^gA9}TILu7t>DV@YSv*Z1YqW+Oit}Bjk-yPMmpd#xjTB}92%0X&+w`2nxd)EY_L#FZ|d+8RM#6?ZG5j*njXwL%u{ z)j@pzRpApoqWCZa?0kN(>|dt{2XQ-nK9f=9``W0SZB>5@v{6t2QQL9+GE>`qCm|+8 z3C|D0zC3*=zxs;ih7iy7c@lu1ZX-;7l+w|M1-IfZG(6 zLA6-sXS`KY>zcVRxrL~wbYtz%#ng{Od<5E8NdV1tp`7n=WMBEf+8%Frj$cl@rV!u% zS!)!4hnnfdbZrG;XKF{=nGagGrdLc!+|_4z%SiG}gLv!rHcJ~9po?}%)TcRq^jWJ_ zMpQhQea(GL|An+U1=V-J;FS}G%5e5TU%gcfOZzWw()dqmkPsgjlSXUN5s|hSlPGWo zs_s!^^DYO4l)TeBj4qZW`mLcEplnIT}BhS^^=$$4Q-e9awv zGUV{0%Tp;5fcVz ztQ0ER|3`Kk_v}7lG-Vay7TSg=U~&sl9X?Hc%J!oc2yv)?niQ%!K8CVWeFu(Zx{)h{ycP{q%_PoTFIFhd1dLmPn7)lX%R3rGu0#N22=Urv7v`g!~EO z{cy@oDY9FfIZ-kK!OZtVKWl7{`0M;PhRL6$&y?E>_Ux7U{C=UTg7{z=_Ef;88(nO& zxB$b@`JIs)kCkvSKpbawt)s1dTV!0q0D7B6)Iw33!|Ppna-U)sh&$78x4LqiWD7$EMVzE$<8^7=s^wRqr^!^0@@fV^1a zG!9gd)v*T(!sl9(rnz^PHeukaNeZyz9H%iNxAMfrf;3h<7}{_ooi&7bVNV_IOd8t$ z08VlFns@NHk~B(@cwtAZlu+YwXGv6ws+$ElUq*W23q*w)u`==8;VfBQomrFe)i+R8 zLVP;XBTJovx<+ArspA_BxzD=QW!5h_t!CpZK)eg2EpNDBl%dgkx#z5@2Xg!}Q(K(X z=L)-Zm>bvb%(E*L_(HrW4qsGZ6LW$r+VvJM^1A7vSu#kV@xn@K&Gu3G1&?`~mS5 zxMH&ez(lh}@J0G90!_;2H-AAkAGg@!E7DVq~uH*g&f(oN$Ih?4O_d5&cbEh(H1!n2Lg_(O#4lpw(pMDA9!mQ|5buzuMyh#oe}=!r zY-xYOoo1y_EoNuvC^0uY-V}xBAtZqjY9wuL#vF1}JpmK`=ACuneYFZ$j zaV7CUyWIv6+?JRWX`!e%nOsydS3NVi{^6{AwD3yeHDBbh7TF_mkSQrXK(=(<&wb6| zeFTDdoLS+e0@igvSDTe*j zp!RZZAYC_PMsMF%{K!3g;7-2E3kFbU4DlG}V4O4LVP=WRt$$nZ=}H3|#JiTE|8oM| z*_y1l+b7+)wnN?gRK^giy@Q!@c#tVlQGaM{ZRT2gEu+Q@@zU^LA?LQW&^r#M=wKV| zK?`~YfK#6?+C7Slg(%!{{4!I$HtK?LrK-4h82Mtu`rKDp_+b6}R;RG-O`-)DdmK>9 zf18;)9f(`}>3%sn-2QQk!r#9Axca&NgoJpzYo4Wxl{#Bc`gL?zf2ZjI${t6!BAeg+D%tsA7XRb*?Dbc~|DgZzcV<3S@&Eb9iTMXV_+6HV<3C7E{72Fb|CnBX zDEW*353Ta2*Ms^mi2n9Q_}h2-ml%D$meIvwp5)=5U-ysC|K97+L+np+^e<}vdWG}< zK>v$k|Ek-t4CcIw{uhDZ)BnQI|HAnH!sq`*&;JS_=pX-&I{0A~|ATIat{uLp{`Y_V zqxpaT^9BFCwEzAucAMhn>*s$de*JpC;`JWe|I~4m`~Op%qW}J{|NgJveF6UX0(^Y| zid7Y-ex<*b8xMJt8n3O1*)5E_FDm~NR{l7?NDJh@5Dfnplc%qP{y+anjs83?sVHk) zI>12S<*>zd$>O0(Bpb7r^XrYLRYSP4|KEGsMi@8ok8RZaDSJnYH%}%m7<_+e&+fGW z5n!w)JmxQi{ zwav_3&YUjzMU*{`A;<$leB9RYH0j6iS!CTLld>yn(`9X{hRCwA;f{UOT-HPy9)8wlHXCC+#F9k{JF`OdKpDvq3U*%|)N?YB_TNo1GP&5Bt<0rZdQ+1xGHK%E5dYfNnAokqHGkNY4 z%>>l*>NQXOVKzK_q-mHq^s8^J6O0Dc9---;I?+9;*rkR8Md~uV(!3L50hVl>>0w>4 z$C2FgFB38NRsM{lA4}ybKONtZu`3vKe(6SQ zIU@N}tKHfv4(BRYZ!seS~`1Khr%7>u#&oYthz#KBB-1{70%44(ivfAxi zvGZ?^9KalLnG~4Vbvj{ZR-y)vUj3^AAfiw`%gZSiNc~9c{%vN}poqh_s>OzH)jdsD zP4IyTTzSQavfNaWNEPjM?{9IxNERabC zL<5_LDA+nCYI*&UiZ(UpDf`YL5(@T&@`I-c=&knR~HX2sQT`OFh!Tar|jV}Gxcl8%M^3H z@xcO(k4dSt9^piQ-EF+GkM`tuIPTLSw0miT)dTX<%afamiKnkS7>}W<3g(2!AjdBk zF$sZ;Il^;d?Wgf?X8ALqQ!YIOJtxBtXB^Kt>ER+bgaM)w9j~jBWyX`_T6G>c;K-!> z5$;^x5i=VcccqOt>tVKvGZPoj{-J{PQZi|-dPP|Fs}-NttT__dhhN5Xr#5WmcP~g_ z=5_pn18;HiB-iq-m`^564qg_jR^907sjjkoQ6k2n4XPthVh~pDNGsi5?oIaT2$$H1 zC3^@jMjJ7beNqXla$vJP`$5CqqUT;%dC7DVal0Sc5ZRD_GO{+b>EPFIWyWA0>f?oI z6zPQH7s<)+bC;rL*cG-g4OvRQjMb~hn(%6Q|>bmsGtZj;@?`=r|qn*DI25{23Ua}6HrOqI=YVML8s09UdoX|%$yKB z0>wFk0JoQiIOKly77nlYt!2cuTB2loJv30`ey%T6b%|oqwQfF7SZD?3J#++7fAcNa zVQ7ahTk?ej-hvJ4cB7b9zS@+{#a;Zk)-NDPj@HVIx#CIBaI#Klpr6$vTSEC^nZ8s@ z6B%Fs`Lvy<5p%H%gNiKx7&*Cm3HEYjr}SB9RUu;xIgEGtc~+F?p?Ury^^OFk&P?RS zK`0Mpn|Wtg+9}|Xavp(>`o_aAfC?fy#|PTcUfyRv`W8kMSU%wpfwd@@eAqR>*3WVP z!|F!bcSF~VTL-oNuneF)9+0#1c>Oh4@hwdq2E|3e#U}LUz$(QA(BlPKl^h%P4tn{& zCQ|0-MY%f2k=*@){>>L}Hfa?f0{_R{-<7j8M5uh9+o7SI2o@W05Mb!#mHJDgDHc3j0B1cp68AsZVk4eD z?dt>L;(U=Zk)t$k6#Wvn)KiLAqvS#Kg>TSC8s@~VQ0>U%{(^cwgRF{EsSLZ*WrWnr zjlFM3hzP-z@s_76>%x zL=dO1F?z8fJ<+fK+t0+NO7)Q+M*1nhCQIvJS#VA3J{X~3m#1H8GmKa78M0MGR z2Pco}gWXWz>0O#9Ddog&mQK~R8i8gDVI66bpTOSgqJvWkRLieiWPGSKuUdjlrl-jV zH9{lI7>}?-TQO@7<12PP47z@qn=yQ`_&YlDHCq8dIa|*@T+G@a7%cCg;kK#*PL>)2 z5|&dXMpL>+z7q9C=ViXNw%VumJv9W{OdXwlsf}l2(f7VJb>V^MS|I3x5TqC7U{ao}<7%I%KRt23ERv6|l@Be*YDtQ*q`mc{^zB z_!eDGJ*m9RDbKMl!;{`s5rOuO1jatJR=9t0rwAlI5R4prB+kE>Q?1RL>0998lHQ43bgNx$Mn>}kJzJ(wc!nN8Aea~WN54&w*y^jh0jLg0t!b#3KO?;|7+EuKn? z5M`zwLur%G1ODUy3fv2_I%|{Q3NGRXO$eNhl<}XB^sNgE-dV12ePWV>mg5L*=YYL@ zIk2UQtBRuE{o?NG3qtotC{t?F>I*Zxh`u9KZtU*D6jn;5pvi0dFyX?GZ!??4N-u7w zu!gDg>eJouy-0ny8|^UN-urY_C#1MP0BT-?YXVMuW4CI`UDZ3>o!j|t^F9|BtBbZr zEBm9bjC>4}_z6nb!t{JWZ4DWo9g3`^;xK{Q@H@l04xI{iP7?}@9J)b&m2r7TGO~jE zQnubq(+LePbCu^0=W1fccHa$~ORr)eoodUUp(7@>ro4I!gJ>jI)3wOSm;6+#qB0@x zSvSgAcm?lFN_t9+=vwRyMMq})i%b40`14l!XyPL7PVS<&n7)l#%3H#%A>?Xw$-TvD zcf62G+~jC=2ut$z$01U4lDr2dFGF)942`F2I$sR!OuMsuM?FL}$!B5A#M--ec7}Vc zKUyI<4}SF-RbmMsO)`L|R0TKJJ!`W!w(@^6OEU??k$@apG) zyUOz!EU%iO#ziPspur{Olv$d+vCGrZj`sX3Ht|EFzaw)OBAYH=SVAF%T%;syH?G=M zZ7)jFU*>kn1Z|7AhX>+EuGrDK-^NVOm`Rvr)rXW%isw7}^2O)m#faV(2UF48NRbP+ z>1XM8>?HXx+2tStqj20DaI|tBxr}COEpjr%${DLV3pe-##ifOC0@w7D;4n3rH&-GEiezi==Zz~)mAQWoh#Ux|0P>DEzI zIl4zZZ4lCwBIpL%(uzHeYSh~!D!+jEA^#EMVVk**ha&@A5G59p6VOmg8xcBbtTR1g zX{o%B{6f07EEdmokGF<$WH`v`MXq^S-hT_|JA#shHuNPcLKIP*=XmQXUXDQ8bU9h# z;}zJg^C^jnmD7(DxH^38<@e&qD-#cRPDft(xZ~%DSP>AT&WI%7B29SsV516)cW#{L zN3iirpZ^q#V?F-l(43+k2s8<`2xN9xP=qMXDnF78tf^Gjp_`QCvj!ZgJEe{OZHSNE zis~txH%#iON4bjqIIzYt8DL**O}uHnDPiGS#Y9A!N`$l5K8?%YEMm-kwuzS4EBGfZTioD7&WtvnfUPBrr4rPLP0o13MhE0>XCd! z3|a3=l}w9rI`YxJ%=r&T`z?C98+&HMl<{26lBdJ@BxXJCGtJ#IRDo?-aIK0)!f^e5 zSmE$umhXk)Tntl0CW_iP4W4iS>aYl(mt8zdz%{6D@oH7LQh`(`9mQULWtO*jFXAS} zlp~R?2=T$7vb2};dh$9NQYZwgr$;=c71vhCBR=^pEdDlbyE!;4!BaE)++vPUFX_~I z5-$L^Rd=AzG-|td)768Cqln9I+Ugw{==o%TIPd`Lp11X+I66O+2Ex`>1EkE(Iel#E z*E+@dBbEOZXi3}V-+=m)E^c^LRTKYGi-O3MQhhPlrpRsc;zkH-h4hxG^L~bx<*?@F zPr~+AkZiR)-=_Xq%XuXsB7F@bJJ5?8c{YXXl&bPZbQ6{+>|ue=&uYc5B=A>e=u?^E zX;gfGxI#^QsoIE6VRp@DS+qz6Xo}!c_!i|%nIgy55t}gi@Uqu0GJYlJY4+A~n=Ui@ za+|PwaxWNlER^ehwm28FCaXRt_)e4Pv;%>&9~QcOefrYRUuXBRqz{`+DD&Ax>R&FB zYfI0$Tpuqund9M{*mqeV~pT4Vpz5+gFruTi!;M|L8I$PFmp_iGK49e?0ah(Y*aiG ztUZD!znIw1A&EQ^BMc>Cghr^7!TJaQUfQ*KFev0AK&M^2xdB?YHcy8^)*nJ4zNfOV z`BQ>h^kx8Jc;d$v?j3J?oJgqMF}uY5(rfOakYS&xys>j!)%w%#t=#{FFFW_wuQQZ> zeZ}~Re-JV-vAyi{!%$7P`&pTj`JOqlP*=|74oOEwg7!N<$g6zXseF3NMMZ{F7oD@9 zz#Vlqny=96MpmEIBbxUwb^3B)u7;}A6@0XGcKgXcxnFT@`Y{B%bLvfTY}{PuWPq6K zGoCphU5STF0|ngPJu|So_>K}suF)T}efZm~jqIl46$E?f64ro(Y`(-#s0ZLpA1xu= z<95afy|lpg=d-2qx4I1g9=a$N(*~EPs5{e@%G;C*TW64}%ye1_>`o%*s#TREY5X;u z{Eo_wS$9o43#lG%)ZIMI36NB~?bmlHY={wIww$CrdTPs~Fvzb?`EP}ibmlkdTU)W? zgbz6U)&>(I?@JUUBz4*9(VE7~{XRIL)wZ!^iB55}ga29M`j#G(PC0L`V_k3^_8iiA zk_XX7bTaT+joS!`7^Y6Q1LR0?|6JrtfvSl*yk-9f=%Fe_o=zx;4C6M~oo`j{t&U)5 zvmZc#leZ|loM*lMMr{5^?b{K6K_An(6QT#}(~}3t0Ku2!Sd1zfDIP3tv$6KcICq#` zA34i!N}zr`X8g&2TZ|ps_u*D>6=RZI7(vrz0E_`ss{3OmJdDiSdqGq|dhw1}^iN^J zPqHq~744vg5d<+iUH#Ikv^}J(%hcPrSUU4vPQWON?j>*}>p#-7Z;dYI14D!aG+n5j z<6PS&;FW#D3Fz7R^R4VXwLxbqqpKtS{A1zbr)6ER4%qM3-og$htstof<KB^}fd( z&Eq2k@+o?H5X1R9p>nwm%eMx%h@qW%QR8p0&#<$Hq=~l!{tWjMEN-DOF2~g_D z>-){!o7%VKR%X$Ff{oj&b4xoje=fHEr`Swil~-@8YV|$4$2GigCkOXb$Qkq0Pd(~nvOV7Vs&7T4 zg1V|8A7QgURnZ`CQ#T{25F+87m~e=r&?lU^xjLwo>YB?J0@X7&t;8B*ppTTRG&LZ{#2g#x`u(HoXhy>M zQB|6nBF~N=sOPBF<-Fh?gys;pdgy^BW1FlV+z)L}Utzf~<(*d_lOA=GBleTk!h#qW z_O8dbjCSpfFj$P3RA`?Sr_k2ey&RTX{+jux+U>1f%HttpUZ9MAy37?C;=!gz8thOh z_0A)4w~|2WxzlDGV9 z1oV-p{5;sVQ5T{fqlCD;(Ad>@UUt)6#B_Xkl_k^m)z-_5PcL>Yafcgu(~ZZGrmhu% zi%t1n1w#&+?mfht3vB9}FcMCSuSABG_QfD2cQ}f*{Hbj2bJI+Z8LerTKAc}4w{y7= zV9F;Y;PlhQJB4Jqt_VgB?&=fAjU7LajETcvj)A`7^Ytx*={6+ zu1&gCDDeihIFdtDYaSil9~-U2_c@|7H#D{{&1EQ8Pe&-SP%hlvc^Qpv?-%Dr+%K1! z&UyZRgkQM!%gz0#I9C44x&8{wzs(bcA$1za>y;|^*lKT0VdW1gQ&el3xC32EraS~79s z&(-uD*?c0z&W%M?v!1jw5&BeX~%89n&W??OibhAXlK7w%S#LP6DH4VNGVal15;0q&s9Ua>bmb&8@tLI2`$Ri(vl-% z@|!R9iDy`Bx`PePRZ}^TPw<2w%w+>967lOUYm+9fFZCl!qU-etAOGOd!_w~_Z5D~8 z=#y=`CL6_)eqkCW)y^S|=YkW%y)emz)`0l;eYc;Pz$4h<C{b0^3oKhKNgxj zF0Q+=>z3%?|8<7z<(&-q_J_W#m&SRERboEf4eNShILo}ciQ_A6Xx=g1Mz1PXaVPQ8 z>(gq0!(lPcUzziN3UiXweq(<1sr_Jrw~mA|8(IW*kBgE|lu=Nsqd-+`+cR^JPz)oSCGl6Wm}9ZIg!M@&8x^81s-Jteyu(`>M*1))TGTaLl^>$vj*PK zqUNI0iUHRbh4VnV^VSf}4kKd{lnq5KX-C%Pp_EE-T5fY7d(vyLLKERR!%C zL*tgL2Q}GvO#z^u#`=}*x(DOb%ji#*S_rT-z0&8EbCY2vn&7PQFC$1oGdo$qr#ki?~?(F$-p)jcOpD9)_g|zQ9 zI!u@>i?D+khOYG3UUCQ>G+9U<3sIyswdFKrWIuEwXkYwk$oc+2* z0HWkLkE!7svxRmc68SvteE#A-vKKvMAs-`fwUt&B%Jlnnz%S?LC+>JFV>;wrYbMD+ znT1-~)94z_)A`!$K6e>Uj`wsEK9NU;-H-I+@6GUgun`Xm<3&(J*K|MJ+U}fE(AXkz zK{I|AIV=SSaIC40azPC!31P0`uK0+Dp2hlP%k=NhdyvQE-NSr3Oe zZoay1eptM>hCIF2H$`aS1n#F(JGC|%T)C)<@9xMDXm)?hF1Z&E=g@)sBJ=AIrMK1q z$_EtNk)>gI!PA55#JHC$IC!vdrD^jvr(%T|1vA*ku1phutJl*VM*exbbI%M?NpHIC zosz`#?Nr`n;ldeh&%pQl!xTd5Q|bSwnzD1jQW0h#0#V7Z?7muGk9_524hORBe-wJ!xV47Am7iC zg}~W@Ks4sYGEVTU&>k)JMY+@g=2n&s-a09<`H&_mb*JxkZ2|QaBF5! zZIVEJvI?5lt=a>I7-W0L@`g4_R+FC&XFC1p+xrnr_)aIxMN_>&5FfHXE&)wU9ykmn z*u$N{5YMplhqHz}jOK~NAKlXLXQj?Y3sG1GJf7>47sYDI#?z3OQJK37)QFn9G|lMN zo0lE=s9#lVM?UFu@pCB<0-d5SJwWj5bnzGJp@89|e)gWVy?mw(Y0uf=1Sz_$+AnYI zbH_m~=ja9xG?@9gsi)n{4cWbIslxFB#6Fu0s5+LWD~s?q3ZwoQ75d?x{yrx37q2nO zGbm%oDiG9|?3ejW&5tEVvj^A|m?@*2qOTqsVC?P4Dt=VilRzd{0mH7<)__ZH)^i0t z@?9X->Fx@r$aO$de-s$o9gfNP32={Vo9}IHJ&SsV5QKhek{?OtDEX$gXOfiZHC|kJ zLAE8#)ILpo`5dM8*I`zvSaUYiG`C3hI>cH;@*K`>f^>i&@$!5Do6$U;=JpHZeA$U4 zKOA#*%Gx2I(}(m}Y64pufJ9HiS`vu)0JJf!unosYq02z?Na+8FoPMU*=`VtB-ILKo z8f{m1@j7yPH5t#gYC^=1o`%ZbhrQzOs0kr)OB|)(zQE!5Qm7w&u!zqUsr3AeNr6o+ zU3bFp!gBiS^%@~6#@?Yiktt1hP@j`0-x};N+!LyX@19M8o|_i{Bh@46;i`-%WFT-a zgAT|a@SnZ10zw@S_2kkdoi#MsEI?0RzVOs&`K4$GD28LQ^+1NTMyF=K1xDXDt#43p z@d6tpx7i1)URbVb+TG5(O3mlnqvQFPO}Y~Bvc*S)er-Yd$R@W2^cGa<@#Ue7rQ)3L zka=^7+Cj~0M#DO=Fay|FcEvuZJP6J6)t5UV|L$OOWgcMW5f6HM460OlexmnTknP~Jfn!Y zv(LD`p=4~1Pw(-J+OP>yqd8KdznhJB%%%kMWCNkTc2~?`qsy9}s+7pmmb|XebqNa} z;z|-I9&3N(!~bRI^A?ZU&#Ldkz^4igWKrX#oRVdt>@%_qx9S$C>k9E&qZERXhD18# zEPX5}U(VTk>6gy42Cgsf8F%l?mISA>=oDtiwm?6vJ-KGPVh|dN8rLJi_*3P?+Zmj` zat&KE6ZNd6ut!7RT?!y8mDMUC>M!Wx#!2GevgOJgMc04n(E4fwXMfJ@eaowk$Jk(r zJ~0xo9&p5w*X=%11>M+Hjsx5&cgfd5=*?l78S^qkUwvl>Ln=*XDyQLTbq&{FuHEiD zc76203lgABl;yyXHCJFhO-XcU;{Q~;_pzX@p@P8_cXzQIoiKy^xuK(Rp$esCx-9mD z2gt?gqCwIP#M9w)w>`Z@;RnTUNfd%{sRI@|+bxH99uGI0NSZjIXfoW*&l zuIB|1+;IaDn@eH>xtSSsy-7yehIE7jjYi$Ap+OA#L>`9ce?$>J87DYuyy$sW4c}FJ zH)u|~B+}g}kQ*rxR+NTLzQuEXgk6rjQ2q694S6`l5gCRr)AW&P9EaRsV^*?OU7#0I zY-9cAV~*A4OU0lm%8^Lq^wj9pN1XZ>4ZR<=0Dl^hO|;>Y`5fZs))V(|u&dYGpi7ii zL4%kgftS}dex3%8lmaAD z($ncJ#uj`js#PXE->;9tMM3~Vtkpf!XYQIxhx4!h#;}VHh~o-#HMqA5V%&{7Vxz4^ z);krE5`2f`VYx|+M_T6(vqaxVXny?kAwp9G<^#16U}Qsgg@bY^O*Ye}wIN;J*crEA z*!ba?(T*Phf?t~}KZM$rSp;tslIZ)=L_>I6ALWy&RM*kgCu$){x}PuSglX&}X8qw! z{ib?;wqbm7!F6R2&`JR}H1}^th+Ia-r(Up}M2si0)1IgSp`vgwN*zz<>*ndFk)*0N zEMG@`?1nSxO`vVb1YCkHu9`^|KJ~N;jq+|Y>%}0N@A|sy5WOEQ_*3t~(cFgl49XlU z2kYHC4fm|!KpfcDwlGfx5iB3J?C*s6VA^Y-C; zmdY!q*ym_4s|UE6X6wlcf_u&m6V1QH0=^S7#z#^n3C(pqN`pF#*QGUd-C2e%$aA}B zwK?2qeFp7&e597Xa+jaDSIciBVrdwbdDVp*MZm|gCjg!w5aSnqDU7qj-s3u8Z^t!S z->B)!bB2pZmO8)izFXzJ1@8rY#>6u@A*ZRP8uiKPloDU9BX<3*xaV`YcrThU%n~f2 z&3w-TS$_u4OT;B%ACii`yjDdq`;vo1d<3(8=kL4)kw<@VQS(ZOCxS7yn4FH!l~F(!+8e_?}UF`dP&)i*u-m?&_`6!n;M` z=pqn!c32Mn+fdc_(V{EnWMUmsFDQIZ7Pq7$n3p$Zmx`iag&k8*OPvtX?YQ6TFrtCH zaIfgz1zgn8r^4)F@Y0=+sVE<|n`3CqOy;&Y66~J;Mse*QO~%jS+T?So=SUdjLu|LL zkDdkB-!0Z?N_OW^`(dbe$uKg<5g#>v^$yDv;<_Dn?&bO)_Gq+cS1fcCzF(w70=%de zM4W7Ti59EujNanPHg0N++z+d@f9K+y82N3BM(6iF4uo9Y#1NGXblp-5%x&AVf7U*- zSe1}Z@CkRC^hox;(%VN#bfL!(ffC4Z-#A)cKuN8FEm2@hdZeoe5@4t@28340^=SL( zD*rh8MF=Bo+$fua#CgRCh_hUJZ0?IqaJJO&7gp*|0M9G^?MOlXc`VweatQhSY)WeY z%&T7or?Zxc5Hi}?RW+UQ`f&A!8g|{e>D=fDPyM?m;={cVvmSPpqQ%hKE*B?vPo%2K zB*Vi4P=%>N-f_JLPKdf3*WUelFT~p*RDQ}GiqBigu814QK5;6A$_zy2R&Hv z(&~7v6Hx9$St+y#XPV6!bkE5(xekWzDnrBT=!)k@YV2>!TO8$0R-oK2U0vA6{nCwP zH%Ndq`d&Wl*}R$N-KV6HInrqVR?na4Q3Y1kwk7yTg3_!GRQsiQ)D~T(y}`=3WDN4? ztXw6Sho0f@HObq+da?Mp#ye-wmMk;NM1OKmn&GRy#*cE>=!zdsrNYVbVHwh&itaul z2bfRCNFGRDWHxxbw8*R=`6YVp(V;)D z(-;jZOR1AZ)mHOpH_-KJLs45SK4O$#8Vf$@e=6%^-Gj<&c(*sB!gZp5w(=CBknZ&o zz*y{<$gQ+pj3eIvQ|uRgTgtskqczk`lN*p$6B*qXo|~yb*(A*hUD%nH>=b;0+aa}I zAqw4ARsMCW8N220XXzVA;#p6X&MVXQ>QO=}U22SbM{D!GCbs6lh|Z5U^N?5mFdpfx zeKXymJ?%4u-D(`k#r(d~j>!=M3&$X3QJln4DXH#jcX;)Ioe$IOS5}iR@i4x3Klqs3 zSZleAZ6RC+tjhqEowNkvam)89mVuEg;g#I;dRX`OONal*suhyMH+>&N9j)dWAvyr` zm*f#WGt{88n+kMd2o`D##`0m|@bAkszpmSRTM3s;QOV%0bY(Y^Y5S7|p6FJ)xQ{a- zSbYvJWSMj=(K<)k)5qF5!y%@Z~V(`ZA{9s`}~C2IYfZ z+wyFSVoK4-9?Mgv2Xdpqb7>5xwMsbEW~grr$2@8o`|d3-Trxm3)7|8jr9|w~3m#ab zBIc;<0(4i2EJha=#M<@FhXdYzFO5Ia=(OJ~{`(oBb&m&C8A(%aCO(i?`!7+8Wu@J8c>s zLiz;Wm+8V@#Lzj@wx^RS08jCpKZ_%M`YY1?0IPE}-IoPV?I{(dAxtokI5+EqHVp=7w zYOXHwg8A1IJjRUW3ht8ld}{2l!AYV3M&g8;uX5-A z>yg7hTfLWdSmJD4ZqiIytqpDr3Tqwd<2Z^-fRpeLX+FW?I+W>ANd2!S0~~LDe8Z`s-{64- z2S!3mA~F|R*f(^Xq}U?G!PR>?uY?IaoJjDa8_e{FG=4t;3mc<*S%W$~wPOQgn+=wI zL+swr+Z78*+8MG87fl|g zMFccLU=DBdc{?BAlBEtn=bnG{IdI?kJ|=_Xj?vJ?oP}PoIaw!TE3QYJ7W^XK{IGfh0Q* z@>B(P2-3ujeRcv`AplUUjI1=bP_<@TGNqx>&>nP(n||(1Dduo2!^SLNMVQ>(|Hd$& zw^R1m;j9XSlUSmT3<6czuA8GiBBB-JOofN547$} z1jtY9{=gy>ltyoj6@g?r7;mmFj@d`@erTS53F&;()e0F91J3R0Z?ym=`iY{?^}yn| zJ)ab~mr!uXaOO$}HgP1O-?*aSyS^WvmJ{ndg34z?SJm--8_{`Hnl-(h(1maFb+IAQ z&b{RrJ^hv_{ur}>(WV0dgAwRk4PPz_90C+kU8v=s)MgP#=e!uRPzSntZ~J=ohjm> zE$0QS#Tnz~oK>%4q{vSaiS5#Yj^N(g)JWZ&|(QJ9auOUfpwWx!j^U6ISp=`OsQ zPC1>TFfBJ0AzdPu^ZfaC(GFYt zh7z8(Vu-Kfu5L0GbQO5IiWjeRjVH^ITyO>sZxL%!%E(~*jS_H`?pUZFlJR9u~PY>0iICz2QkX=IYmIIG|h-^?mnVmXf)?b=Wj=ckO zS#a3hOm+7hEc6~K)jk+9!=aWy&FNX_OJFWW0YmbUDE?@6`wr{)lyc?c>0!{R;0JO& z_ucLetUgz^6SF=`;g-gMH80kmu9czp7e06$-G{4h1@YRESJ3GV&5~U!?@srJPRbV* z=0)F@YsPD>J1NF7c64k)uE!(Yw!^_FsoS(X8AKmSR(rx{b&fb-BRIu{ryCOP&`1CF8TMeYFYph+nD|XUgbza>d6EkCfg+NdQTo;fS+7PA-eS zq%6~6${g&IU?(CoU$1g_IAc<8C;z*8O+GhFnXFdhKFk4u@jeewQkP2pI=chilI^Reg( zSjx7^52XwO?p6)-M4Z=lZh4Q6Ye%y>j`!B=y9uhwN z&3=wVIBpcT!P(Hc6xMD8qA06%N=iM(pZw5V7&rU7y-{y_6yZnr5aeiAc^7aR+oPSS zqx8U0;~s=O1TA#kp)@b<8wZ~N%h~RTz_v2q;{^*OJkLiW*8H% zlGn!_4lrXEx}7bzu3+@7576+kA4S>z5Lu8;4DEL#owe=wo-YZ$(VonWP`7Q_XHAU- zd}S#K92zMB8^FCah;{a==F}XzD(yUkFSQcIKk??Ly+y9Z1xb;cD+pu(6*|EV2&$gC zoJCp7%mp=V9;a(?Qx0#c{Epm7EsCqSS@=nmRKf}`h0YTrcZWs#UMeWU(GHJ@{e3!Y zf&9vgzb&rGLfm3(=q5^g@?13l0FwOC;nRP{!N}XG+H8u)U#VxSz%s%G|rdB&Pl&7W9rry`qEJK1*+zUM5B@1VO?I z+{y4T!JnIxz*QNSBeL_&QSMM~zf$e*Xbi69C&4Nqm^3;UzI|NpYIT1`ef|Q(XHf!z zREk?}yM>3BkNjm0>SO-P9{L1AFI!Qgut4xxc6m0iOA#*%CsvHrK>pRxx^(NlQ|b0r zo`#kj3EAIGAp!+Jsie9_&I9g1m0Ig1-ERPQgEM-*2Buk65d=Pr^6ZF9a(sE275Te|Ci$TgW}56g9bf_mNrZF z2PFo#Q;`>F;2OJoj^ukc_`U);kQN?Zs{88zgMa=qllWUBD2UkCu-k3lu|gwtu3u5k zo$222QwA$7019F`qpQ`qTA!mGblZHj8NYY`NvOD@lA*}}vz`>wXRNLXXR(53qEKx~ zo3mQVh@eBoBaQQyDc67g{P?!b=P9aCfxP78^7Me(Ew1YI)RF2)kavYt4H+qYc(}## zaiQQ#8msS=R)a)(x+YHm74@@Ai_|RbW(Ktu=E7O3V2f1Cu(Y(icRE_Abc*QeU_?5S zGu&v}t8|~-@HWwH;mSpMRU!65E=oy-6e}ywF%az|Yf8>jt0u|MHv6A2`aQw~M@{TY zyd0@c8UuT=tv2U-4?~+yn{nCFOZ`g0op{F%N1(;S_`^$n-!PPE>LANLba8f6A20yQ zt}<5IF}@(0s;-_3AmPBUTXlF*$4`+sx~3ys)Mz|IYn#3N{!ZvK0)PebfeN0#;nFx^ z72E67l^mVJxtrg-(LIHoo3}t9D~4AWlWfDk-V=YXfaQ7~SoAiw7Y*HSvlkt$>Z?k} zAHH!l6azC^i+3zvhCX1O{X)g5g_)I8&fIZ#Vyu#FLs)+V!eN)$Usrs*_2;%w>S{p@ zCl!P-IWsH?xTHJb(l+!EqS(46S(&F}cz6fa?E#gQ%BpSf=u<03Eg zDDMqI{!I=UZ^W~A*ke#j5P=4 z8Ph4#QFL22rXYMC%l$(e_P24NiK9e=CWylti`)8=cpQS)iYo_s%C z#)v@iWp?hFNQk7EOg<6wcb``e71saKZhE^fIgGK{fanl64GuOK)(LOGcx~`TYE;!a zKNww9Azp?K)s4Rpe!tz8yTldTCc9C$Wp1GKROt5#7SLBN0?UMIg@%#C*OHW_ql^E2 zOnF|BNmo_rEn(Xw*`H0Lay*8~+r?nAQ=P3d7A|m%B>Iv{Jxol?p#4hr5p-G{b5x8VD31mHe4Kov5Q%oq|onV{**%C zo+PK*_S`e*Qp(&qeH0ZPA{|HV`P-42yW9{XxGpv6Gx=cP`Go+yg(Dg{P+>7|;a!}E zstw~$Vzoc~+0Qoj`1qx%dF0>*KcGWI6K50`Y8i`gEb<8vh7wwJnHCjL`6zmb{k zdrdolh`EWa=XW8e$iAqLdU2j3soa#ZI^QYi`)Cp3-Og)Nsxd~p_#+?RPZe4RF3{uW zzT~EiOvYi5!kmt;btE2TxW59JgVceoGzKBhh9>cboD>^n2PQDb1!Y9{i<-doxM^Yj z@`s0-TWJZJvB4Xwqm%vpV4)vO8t>L3f;&V6`;v^O zh&kT`YCtP0t#yOo*6dzBk@lWKQ-QD5A=~N44C_;bPj#(s|4}D2>~Gk zx7Vh7-W7^SL&3P6AM{a~?$4UZUuW}<5J>D`3Q`+wbiB^sxJ$sc;jPljD7c6`_w*Cg zP2`!zhC{u|-$0#D#4x&)w>_^fek?sti~c~Y5!Sg2pf9i3oX3ztZpgOv;Z-{F*mRWs z<_h>Mqzq$)BxJBlmkj1-ZQ0s|t8CSj7|ylTcq2tZh0-7C^Yarr>={*OQ#KX|i-hZa zOcl3%n0KM#EYWE%<1mS!LF4N_lIo%7{0|+w&vc;{7INt>Re)lxo9$2G#AU3b>yV$| zC4lYwStH>+zb^kZqsZH`{lh43);WNMV5gN1z&E<`X@seZrehE$x3QJHF%Ld4k4(ZV zM$xjzBYLl@O2IV4D^YBT%r$NVU$->{HHwDvKCK%>EPIs738-Yj3ZOBvPl10Bk^$zfrSO z$frQy<8Xy^O(J?Gv8;h=D0VKj20X^pAp^}njl#VJm7yw~E;0q|tGo=$1H}X2DC+!0>hl)maHk(rb0Q_7>C-7@ibr%;^RNo8VT`ND(_zhv zw`(YiA9KC@3#vQQf>Vo_m?4+d27BK3J3Q_+Wb3WZ^Lop!!miJz&{2nZ9`*P^6a4ZN zd{oviANA355KrrQ5jmv~G~K(3X;NN|LS{!1(@%rY%SFjIie6nu?eLv+PqTacL`8l# ztPWGAgc}sx)A5POJL>z@#O-pq=cC7h7SF6hwNjPn>W4HiKO@;sXB(r7y@N3S5TcTP zcJRcR9ZBYeR&zr~%}iYDBU-V~dN?W~9ch3lJz&w9?OhWcAuqra?Wq+?ihhwVhGaUV zNfoRmW+_D+SyNj4vBpuueyNV1tN;%E4|TY!IQ=j;)acjgHOrE^qw z_|n$p*5?l^m;MHFl-Z{q@5t1yh#R^uQf^PktV$JbL_3Yhkb%X;EUtk9H2eHH{06G^ zcd_6t9%m%SJ&c5Vg|mBx&0BL_?6gmrfiM=E7}w?k?0b-o-M5uq-_}3;v*KFT1HVO4 z<%0^m(duBzs@lG+&Bb2Crd|Wfb&~t{XXM{1*hW0_P#`bjFGe?+LVz-=cgrwdnxBS^ zgvn*Pdqpy;@%T-;($7&;{rchZoLjdgd~J|Ra`KF;fNctwo7<|B>HHWsYXI!)p}P6s zS>s}R$g0PdCp54G0FNy4qLUS40Z8y(Ex2bk|&})qtDz73VPG7 zWf}{6Oi_|&JN_Y=;co%NkL)d>1*Tg@p3n1>*5E7xl4r8o#zgED;?lVsk!L;CC=~jH z+daIyo79P1R%V9VUX%0Y;%*{k?BM#77)q#=R^&R*b0?C~k%|5KHqUPZfM<;96#(^1 zc1}*x7zm>%To+a|%KDM{dqp@XVNaz=9wk&}S8sXOe#W&r6l%i;Z4(UWwIKoz((It< zqZdb>FU(VVN`h0bp8(SOi0=N8FaGQ~9L;8H=7Z&E>qe9HGrQ#@GR#RYXE$r1i@DwW zBACPOhj;pW2DtlGlrLUhk&*R*z{jC=m_7!oEt=)*CPzkp8O zM!XX^SBB>%SWM^BgTCE@o=0%#c4f#7oy5tx5$aunQ|0K|f44=X-(4r9j2nFk61=*v z6_rW6d80k@d99w|6{)ZqX3B|A|1~1xiwyaPFu!3L{AtCH#<^W*Xq(2XF7yU_36*en z0wdTKVsOW98|Wj_l^@KGV@mWXOpjeU6z<_J(sd?|30?#q&gwXN^AXv>`KX4V1s z8L9C%RKeQ`lqY^4ybCw4mx)r?$gD_l;QfBa`@pbdLds6&W7|AV|K4Ebq0kENCad4O z>J>zaG%zk!XthXg_5#83Zj5zqyx((I&yn&7vi7^d{%)BGom`OZ9_Rd~(U51|U54A0 znZIbyu(@b**NvfhJ)dOxFn<}pD+iuc1;368HI#_8khKuh<4a zSbm+4Y|GJ(V57t)WSmd-lovh==+0WHy^a7FcfyO^yCeveo**4OL}-4s%x@`v;xS=M z_3qG@tR7wH)Mi%SfefCR_BGE*S8hf5Wdpn#IBF^WG+iH)qbzUxWff<9!=ZFSbZVB03X2feg468^1@O#~wYSzwvM%6kM-y zU3ZFGGU=nv9~XG^9w*RJoCOwZcJ!K(*fRu3ez4YjI=7F}-s542PED5mc77DO#puuq z`!Y;rkh(soc#UJ&Mpj#e4`sFfU~c|^jp_OvGY3~xp3+uosy}&%4Roys!Vox%KDBLE4D}ZN|os@efwzFO`kyMv>@`ZnjlRRtJ9GqY7|hb`WME_9^jqO2c8SQ z&-MRnQ0&uzZndOWtDl{$BEMX`1zJZ=bBh&#>Z`HU)Cv=T5c&W@eex(j$D-dYGoK%2 zQ0at!=GFPUL}4YEQW~3=F4~ie^YU2@UUvTIJ-;`E@Y8=D^k8pR`haVfM0lUvDyP$% zsVHC1i`bNjgjk@2+`N2tcPKbA?!O%+a^xt{h#V~(rXr+ONJ;FXOBoxx-s4J>_kB6) zWCcE|R=(Ir(bcc#M!jbMVE2Z)!91obK#&RiM#DD5Mq;&J+I(3&>fr;Xs7{ZKd zFHFuo)da=?QE)YMxR~U-xHc%`2UJ9<&5)iOy#J>|iWige`%3Ce1^a zIX;88!cT0t2!qihFdrm82)qBn#T-Td`s7UMnA6C8lLlsjatRmWYYrrsjmyGDVkbt8 zdG(dU#1M$5XkE4pN}AVmA!xR*wn`W|J~6mgqce54%wke~G%<-{_R z(rpDmhOH{BK<#^dx#iaqN=BhJ6;+8dxv%@{x!{k?)_+3L-j0yWdG4(ei>meOv7P10 zh*p(x)m+R-GhOAHQV_dhok{r@YyI_<>!TB1ye&8j!jai;@Chxh$AZRqd8Z zcs5#(kZGio4<#X9-&2Cl`nwI^^VjXWUdf_ho*k?xOPe;7D@jP|#%DE+FEevHzmnr# zJ&gXp2y`AzH99clxmG$pb*JOIyRF9*YanMn1PN>F-9W-f!L2~el)i7>-o`6pq}|o) zSQI6iq{gx;F29Md2pRCEc55vdt1C^w>b-ZB9Zk`hmhFD!vbj8 z6tr6vDlO>t#A>PR5&KZu_}9G5v6~ER!kK>DDz#y1*jU@x7p#dD^be+yO+DRJDvlvp4YP<{Dvwz4H@K+7Aw>8te z>DT>vb1zuE4xFGR!$?N^!#t&>reUQEy5y$fg;so)%=sIn{m5c&4Q*$bETOATPq4F+ z5G)($sd3n~Nl?(ehZse@5`Sd+j*!ilxrHORN0iWb8L{${2GrzEML z_Deo@{4gp8#CLU@RC{?mXUchk#-%0*J{pK^T5h1|vYrmZ({1NUJiGuyx+Pz2X1&mV$S^XPr}?k&x|5aCSik;%m_@ zIDsh=$TM%6*S9}9fL?n@Kk z>Nmrf=V8lKD7$r0*UPX6_d-$G9SQ*xUKoL?owJ#nE2Xp+K;4S+kmBkrQMzTBWM42+V{8dpb)`kg)4BVKVTg5 zCdnHv=_T*DmgZegLIz?S#BMK*qg?Fw#QVEt76WCj7^%$uv?`n_kdnPuc3}2Ez76d{ z)utXuCar|f(Ixy-&7`aAUtN=T%gHF~4(3|vQlqoNUVAFF_pLbUET8Sf%#AtL)Ki|w z`}g&5zsk4pFY^{XkI?S->qA;j!Nn)}U_oeXi5INy6Ck)cP1g>j3KwpStB?Fp+W2pp z*l!Eb-uZmHx(t;E7kg{3jWMz~wVDk-jQbW&H~SeSySTf zKvn7hnM|a5d)V#ykw_n)m-&G=h0Li~uLT8VdLow0m!S;E>sc#Vwo2HpmN;=H%fo)i zui)?f%g&_w1X3v4OGCz-9Bo*eFjaRg(bmWqd>F+Qz#83aDIO~V{9*$7?&QPcHmlHl zx+xgM1jvO;+!WXNiQYRqYJ0%ArPkD#s_#|*wS4)XJffcmiUHk=Xf2~P)rnSLDbyt8 z>4>_oQNIBa$Ua?PwL13}9L{k6anc7vzD)0X}wvo`y%(;$in5Q$$lBQ$r98$cxhdRNeW!o;3y7U^&etsDEduWed_%5NH(GPpEW z-8)7!W@c`)DqEc8ou$2Xw(NA%vO_+Q--YfU=ho(r|KE>Y|6@)l`=>|Ik+G$i2yn`E zQY*6CfQHuVcLg!oyB#?hZ@RHiw^MpdD%<@BvBW3phdvUf7|}JDx>q!x#}E6mTjH4k zS^thaboO2dS3mWYLz$s}&x6`m7AGQ0LoC4RsHcq|2OMQDmv+xinf-hifud8`luqGM zH1T0au4_StJMF~(EOmWd^<3U zmvMH6B^D2g(Ls4AWH2XRqOk_I3+uaNu$lQ)HQGaj(x0_zuAR%VYmdCo*+z+wEaN?!0{5x^xpsHul|M@tR5wTaiBt1drr(Q9knTSquswcP00Hgbk!>?9Mdj zPJNN)V!vz@uuF@5-UjNlO+ zF0*!O++(S|FL?Fu-&7+j*UArJXej+&z~Pyi$-Wb=R&S-?7B2t|x9VJ+#KRXNy+Xr0 zs{dEL{bL{Oxg=vT3-CEdhHG&dK>WN?a8lLWj>ND53}B6gC)8~H|6{T18xVrUNTO|? z!kB*?+}Wzh|coP-WK)mOjc-Wi6N;JI6T<*uzqih>{>frc}gxl4d>OK8q%SV z3Ag@A0?Md9$a1a|0#-zZnvYIXrq^YPTcI$9sIr7dA_G9KVLAz8{OTQwrj&IZchP%x zIbccsfq(26>_2HxogQ}9=DhJ}dotmwi|*+weX%A&vn- zKdQ-ObIpw^(Z`26C7Z?5+fQ`AaM3fg+zS&fk-+&xj1W7gmpf;O$n9q1QCe`_jRUTq zNn5{+&VOtdz@RPhGHQA1WmFW$V0_?#J*a$p-NvL+&x3fM&Mb*4hqO$8Hgga1iwA8p z{fs6~&}MR?E2JX=E8aT}hz@#LVjR5&E20YfA=cs$w@b1Po8ReLV{L^NTIQ8nSS5e~ zkT_ujel?1d@8DXm3x|5J*X*g5^DCH%o^Mah6T$n&U;_pDxx*6vz%FomWuN}DCQj99 zwaM;7rLSbT8Q2HE>e)>Nz;Oyr0s|pkeRKc&zy1-JsA=O5qfM|PWBFl|GZe`lUiv+*rIWL~&F!1H2EB{WR}Tog2&l zc`u8rsw4|4J!#^kFPh94U%x%OMoIVeOTLqh3F)o1Z=8NvJh#}zzLP4O5LZwUjgWhb=A5eDGh!6`0E0^e2NS}0RDP6Grc$~jk_@{Hd zGnzjQv$8G4AU2ZB7V5K=@4m%!rm}1cIreu^6u0vR9tdS#W{}fu-L=i@Xy3_F2uXlx zO=2IUBb$kLH+Bh*&+072YMnY}E(?~lkwjf(2eQ7z^vN*1EaDe+y(eFv{PqrOu@}!@ zMi02fb9qvAVxy-bUe4JNwC7ZE7DpVA+Q5%&P*j+A0*H#I$gI#&XQwFPMowHWXqS?HtastbM*jhJs3%q#O^)h?OHT5GQ#Y0*!wCbd-(O;z$vR>o;s5%ro2 zU>m2aT3>seGtkL619QymsY;RFD|V2=gdcgDq#4?`W`_%A_E@cG2*ZgzXAsL>>9{7Y zYxdN*b>mE-C;Zk@{F8SiGFdhYls^Bd<^|x{BLb32z=Hd+8Ewd2$3WakqpZaLmM52r0 zqrf1(bntg9_DKf?N=zikd2+Kk=&>*$awS4LTn|3At@MrVo}cs5JFy5G6k^ z@Snf_iy(ZjpHGLx-Gv2ROA|mKRpssED?T}0p!tH<&3?Ct{kk@hxPO36e~g5G1~ul? zRSA;*_(SKVUtQ9_!0x+WDCF?DO6?0(;0(_TBkr)4hH3?o7Jc*pMJ5)^4#pBOwZ4br zK3xI|#yq<_@Qlzh(G>l_YKfqXrPxhnB>~X=N$Xi`W0&WV1LEo+OMVN>p8;KJ-EHkQ zU9?9PCsI*+$^hV;z+$shPHP-%>&f=$zPIJ?!yV$CFa*<% zW&6I2LOJv<3q)-{TSq1 z8hQ0rKAa=7Rg36hBw2j`t8f%3HAu>cC$9&&D8fo}PAy6FoYHQp^CpN&-(OdoDvl2F zCK}>Ti&6VF>x258xWWU@DMH?)s?0k$Ipb}SLGbHDJ>5GsQiu(l0&kimmq(8M-^6{o zLlcL^SfP3nxHs2o-7^;{^36?cBjFK7#pIcxXF!&m^eATihWgpQZ~HGV{}rR(LaYas zpV$$}V#F-Lla8)gp(PdAV)>q3Q2ogVm;3DcRdHnY(koN!i=cWd#osY^bDA?R79!%F zPYDLdXWxJd@PYN4XbPl%Dd#h79DNxTM33y{TAJAS`kzn7sg(;A;p$e>8(jzIhfkQb zOp$H5JbGda65sK`d%%cND;;^XFHvt5g_#p;v*-<8hE$YG>ue`{JB`^DZb7rd_nB&X z+DCNaNKv#Yh`)sq@3Y@2jIrf(I27kdr;z{_bR|?T>&fFGh^Al#8qOX-9bJ}PB#Y4{ zQIQtWw>-5zwrEDc*)>%M-^%M7N?kxPedb-Z#vE4!quR6R^6-^Iob%^cWhCP#xxgJi zJA%%3iz2v+wzg6yGc;r)_qIJ(xlevec#FN**TsKT*$Tkabe!Mq$CZi+4N&&s(oQR>pR3xj>Dzw{(0@pTzXM z_{NbFRr=!Ps9$hD54s;v>jxT7#=L!dkA7OOR5`33u2G2u3@s1dF40}7?!b0V#jBr? zlo2QDR2`k{Uj)As7N^(1;pQoap^}(FW=@49VCLxTchins?fVP%^^iqn#*x*_&BVo0 z(7eFKTi2Pwa~aayNZnVLS+UDZcS@%YQ6+QcCS+o$^?EF5FEn#>ea2FZQT~H#dz;HV zEG$sbzV!I2b+y=aHs&gFmd5i0Tb_b~ob@;i z)RY%F2%suno6Xqtm*3>(lTch9)}0-WjQz{Uyv?xdRk+=gb0~HhhL7`UNU0kKFRv(0 za3X{f0qv?9jfMM>7o+ZC5~SQqBYr^dcfyPTmgtfJ&1uF$7&1Z#9JYHSrt5^-R!3Z8 zQr&bY8&8iT-TMLTtu8*erLgbITZlFq#zPyZGB&cn* zjqQ7BQ&#u>qi8tX47e=0OZ;u~OvJBDb+~Rfi3kb^2-VU(bQ)^WCDqH-|I^&wi(+F# z4YXEf9pDNID~Lf>^2*6%hoSSWpf9ADL_zOq(;*}Ai#xQMV*FuLAAxh$YJsu$Z7i)g zOoZO~xfEw8gddjTNELg{*HM|(#h(kMi2&7rzJeHuwMd=+7`|DE%1=S_MD04IUwSd+)*ME`B6Jl7mmOv zz2)t^FD2B(r2dcw)!Xs)ZC}NRAEwu}RWQD1NLWZ=H7urCk#8~c6#IVXnpvL@s{+3>_0eXu{V2Up zv_v|~ETg*Kug1#|H}+=2cX{zq&bec>aSsfW#}lkrUJU=0ldsaH<*5*A65%qqQmXlK-RG(4hxbs0O2IdZ* zlawzPnU|LmfN58sL@_aDAHY+Kam`^r681}S&~-`hvWn=V*RBx|kt2S-k%@vJAbqZz z$<|6eL^>c}VC$-|@jOlq8h@_K9noiS@lE>dOf2f`c|pN=IzARDSOuORo%bY&VwO_N z`>8kl-akR~k$3%~LVkGkwr?0i7@1ROji zEHt=BK3`;tuT|q5&*(CCuy*3AVKB z-udg3np(eax}h3SyUAqFv9!-+iT6e+>3IIsMd)_Dh2;{gvVt@z>q}?4ze*~eAlK^2 zvdWN$pK%7=7eDwGwwdarKMKJ5)~YH@A_MH$H9Xqjo#C#o=*rV*X(H@3ZBL&Y5*>si ztW8!gam_38{%)Xe)30;LEpdTs=S3(cODsq0GMcYV_zcmHz82 zzsDoXf?wRC6x2i;xk1Z~=#*5*10upavDUaWR`I3hgh_-xMg5;*sVCNh+j3%mjKW=H&>Red*tCS<)}?Q=48!{@$Ym^cq=2CklDykLA7uSz|pD?Z$!* z<|=o(z3{RH?pZ|~(PMup${!L|EXuj0`P9k{K6^t5x~fz6Rg!N|Gv3b{qeBn3hdAwi zIZSas7p=Yqc27gCSr8C@qHcRc79AA-GPKz=&7z=u5xC`Hw{VEqaPU>A{O> z)SG#Fj|N**LqxyA{(HK9mTp|mE|n}wUe<*2oE7f_ja`@b zBK8|C{!Yx$Z*F+soG4ZoSc1b6j0IxAnP6$I+3u?rhTepRBWU%=0DkjUZxaSMy5dSQ zsn0bXID)Z?HsLNN8B_p&uPuRAr8p{U1($~-U1+N$3bK>qsVR*4#V%hTQ_qb@tm$8j?X4kM`BnfeXC)9E7WB-E#C{=Z>vD(YL2R7P zxEPs|M}vEWr+?`n{3-%})t^4K4ld?X2m{bD?-WPwecv|P2w%4ntgj47IGn=^&TTw5 z?syagn4*8h>zA0I5{oQ<8@aK>sO)o8ph{1YtWs2=<~cd$=K!Wv^LFQ+yFWhJQ@|b3 zF4EUeU;g>)?mo8k-Cf$Iuws4S`P8CnAzW~L4P^=hLdt9fz!Mb)JqFh$%D8;6O zE(nXN7&odI-)d1ukIZ?n#1Yq^iiV*@nFOG```9M#a4cNV&5=ST-Cl{_fh>0YsXs+f zUEA!_ac{nZDCottcnUlLd0?K6v^MmxwY~m!g_zS|DBXrA=x2TEgxL5&P z>#WfiEs|XtB6%~?|_nhdI zRdb{nzb56sHA>QX&}4681p|TNG&K9@67(}12P2nwA{ydQ>)DA|}nOsFQ#tFxVocl_SMeMOtzrZ=k21hB^U+An)ItiYom#I|= zS$D%Zft_V~#`qbrFK6(K8xQ$TW%q|0^MH965dXeA>Bk>4!5F-)CHYmSUq~OjqW4={ zxjbZh7p8`wJf^bql1j3$*{yf_H?Yk{q{S7s?jQ$-~GaHvS6aGS9uT z_O|dY23tQ6$gkM0IMUUhTJ(xgN~-j4{R1- zIkwW175gJF^`kud)+pr1y&o7mHYfIu;M5sXEiZhf%oqB8dRUT=EQ{V)y1g7>+&?!i zeo~jyiN82ouAcJe`3%b}WTnEylc*AsHx8EMb4{-mMHQdsqnNa zPmyF<-;{D1w&3Va828mZ`li3MlwJGRfAv;7l9GYlaN-NKqKG6EI*u7%`GRxl1T^=# zv2Jl;7_?@&luA*6w zWked%Srk0Y*maL|5^CS^OGp=iEkHpb+W2s+B7bh}{wLRrU)^MHi(=#csI_fL^sP-j z9-OHDl^>h&b%V|tXXH-@sjeh<2huzUZV+0`*FYtnNXVC~WB9ZR#>OC*w{hF>_ zJ%Ip@l4*Ywd4H|KQ|#_Xz(ThQhlK z@w^seyCA4LTWg}o3EsyE4Zs=>msOC@=ag%9=5Utf=f%EFC-fOE6e5rnKt|hQDo}u4 z%`Byqj@Ri+P~RGUh;q8dkAje-8_toZPV#D7sI+^Yn5q|rDsamy*5O>=&hEpP?~UPx z+$yHv^{{CB=Z3P+Lo?H<%kKlvFoCZb1W~YN9g*#=;wL_YV0K#Abu@Rrx*odi&m`UX zyCfYDkjP%rlmHvH8ylidXbUxr7BkoMkZ+j+8MoARFp56NYZoPK{^h26$vDKkAJ?n3IqF$>^psCZMysfUbJs2@C7v?UkV(+S3Y{ zEU!9t+|~zfA9;8tNrR~xzvBydJb19+?Mb0&w{FmNU2oPPce!a+x;=?Je+@?#OR9$d z4=6A@sHWt1DBg@omh`_R;jdrhrOJQTNG7mPkAu+R(bSUFUy1IKpts4*V(<MWeXvC};XDS^C&r&N<2Hiiw=CCv&lbER;zC@^S{8+OQkN$gtD^?c-Sy-*3tJ zSqVIX9r;Z0t%1o{u02aIge%N64d2>VqF&M)ytY?p@PNkyJRL4tx@ z&DWq}^47s!GLh`AezDrV0t(zt0FYQ)HlNN_JMyi6cI7{qx3_gk za`7io5VKbCQ3ibsq=*tO`!ek9&YYL0(;{RlK@>ZGKwIyF=PNtui}g=)SucrnQLzXFs@~@lKQ@R`5a^22{vOHYBDSC7yVM~L=<-7cHoAuKt|z3{O$@{5W5=pn#K_nQvi zUrAC8`rXhzoYW>9=savD`egNds^bmxrU!NOmA`=Oj}^yB7U3AYB== zP@YU1d{l95btZ~jOorM%x1Ifxb-w4Z3d7*;HTxj*Jw|{GU^*PWjb82G4|fWO2=khx z4j%$}SoAQuc08<$LEafAad$3~Q>fL}6(-p-4ih+YdgGo#lY#PFJfpx2eCYZ3F~eL$ z1N?S2BdG(vxBw&EJysvc>` zALIUeuo0)kv-hLiA}b&#l+(sp0%|ErYCz&5g0C*?t zA^I~spD7xfyoX7)t8?pG^f{a=nS&{mxsrFWIi=pd96`oEHFJFmt*THrL_>_FKcUDn zx9g)N8ML?#=FPv3#H2s2LxTrHFnwI|@+bfJ&)@#&sII_B8cRR%$8@8}Q|iD&9<@gL z)bAHH6>wXTo)UkROxvK3iJd0-)&%AfvYUP%FUy^H0K1zQQRk;f9$8E4jhg6XMA=hY zpca=SBmBBXwF<_sk9$kUb=B>p*v+Q4B`Anq>BIEAhR>0_Pz=$rRs~rkFA|D>Be5@1*se3d5ut@ydV* zP^Mw=9$^mau7;_M|z{a)r=|Bi$1Z6}5Xfr}EXsc9fF>&;9~&#@P&c zsj9itNLw1edpG==R^)CYvPA+&t=ftcmsBoZ2ye zBoZWgjhCJh4o1Lmm00vcN9=o6=tqwDM^5PP=Bd2-RvBluGE#>;4?a^u*T`k28X6)X zV%O5&a*&k0O8w;A4r3JFy^gbPc|$4SJ<19yehf5bdRd%3M%sBylY7RA=QS{o{LL4w z@tHcNq{|aUra_Ji_C~r!kB^(yZtKP78JV+*6GpH%m+m#?5MKNQ)5m?(7cni?lTJUG zCb-6+=>Uy+4yoP`X}r*hHjmna{GOhVIr z5pM1sONEoPFmb3-37^RN)A`)?@vX%QR&=fS6L}J@er3iUd_R|i!0yha7lj?mPn6`= zcp}v3AzAtbK!=xm`Jc#wRU``SRrnMlGMe<-cz+s7WMihlGlp7L!a26`nsLZphCV~bzN4EDHGJ8L?zCA37hIs%?JaRB>6_w)l+^&-P zJe`NBQ-JoIr`nuD)R7DQbp++3vNZ6v*nOd1SM3F^;S?!k%^^s*(eZX0m9VV?{6rU* z`VhnXb#c|F5LmgaiRa;kb$ii<3n!t1nDIAbc|pLCGEVU%Rknf?+xVSkr9Z5wdF!DQ z)vj{(VoN&Ho&iF{Mh00e(x3#4(!{kF+0{c_dvZPx=)d)2%6SB1OfMOv=E-@$3{u*W zAiADN@B~s3X*#D+F*7SW3PxWWqkdyrzW(9E0IGRO&yYrW4!Jj@*$6FridOctu+5_v;T+P%u)ok`>@1zl@BEQI_m4Jjo<{cycP0jr2p|qo+mCGYz4g~7w0OcKF6MU9 z9x7vDlMP&)LRD$p;{A)KN81{=c(oqs&|f+y-tORh@V(Tv97gV0R1}bDYslk#3TUzq z)m1R%fHK^%!e-`iMDG4Fq4hNg&Q{6M?k0dFt{^{!%XOi1Fl#T9E!kQ5zzt=&n=+w} zx#66OXAT}&A@d5iUvp;%ODg+o0p8-!Uh+rb+YmJR#GZ(@**lez><^$88jKX1J~)E0IPjnW>juRwh}N%yms<`z@k9^z%2ox?34R?~hR=uv-7lr?2~ z7L8tq+WTo7F=8{~U>DCl1K}z~2+5hXAwUCdKpGH!2p;7|FLuy#rbMNCO zD{!+pJS-82Ov^x4 zAKQ07jz6eg58?){&GY657KN1{W7y@~g{=oacgru;+KC?7oUO?wmDMV-Ox-Q;}W}1F6Yml^g;ww16C5P(5 z?n<$b^Ept=+b*WPctUqbI`f%3tRyz6;l*In^l_Ap{&AG}ZPix>vJ>ZY6!St|@-_EX z+L_FL(LojUDajEAv5D9Uj_jiV{Kb=eQKN4IFXWrK9UT{Y^i}iiJ%yrm&n^W zJ`vgTQNaICmRw@xSf#oGA^;`xl-$ard?Eks@uuXdDZjJ*2Or?FOC?RAOG}$ zp*dTKv{F?W+Ta2z)#krcy-FP1(1fQS-Nb5$^j9R41MoY;l^@zch&J+H0B71|UmK~$ z+TvW@IlS*qagC5^`6x!G^`zVR5E_4FQ@^>MpJN!Gh=wkrvIKUPiJzPP% zs;aTs@vSBw!6^i9W1t_CHr+J-43bpUMvvE3AE)6;Mm%Q8FaTP}yXKrg{oGlQA`7wcPp8<05K+d!OBXrc#MQ!?DLxP8v6X+$*Kb>o4ja6198ej@>5 z@sHx?FaCkfiz+@MkUHI%Wwg7c4nnR*H`MwwUpKC(?^_QJFS79;hWr@nU*hZThYIpC4k`)xx?G!}Dkd z#@ws0$}Xvm=-_r!#Z}~w?Cb-habu)Hj|)jgdS6YLjgiZYYdgXsGBX;Im0WalwXSFP z`hOiVes(RVpIbeNyvLyRB%W@!c=A;q9Bkhp2-JD`wZd##ODtvg0=CKh2)9Z}-S*q{ zmHHoLbpcL@0QcAx+H%(R@^CYQ=n+V^nyC*)eXP*FzP?k95`|&bX9y@{Q_N~g(y!?ad@FZms3qOx?KSw8*}m&VT+Y+ z4secbD?2Pz{&g+dr*??ogn~Jc;o5AtJfr(XiNlu_8)5y0kVoHns7QF9t8hz>NTJ_n zB0jv+@TezKLfc$b2MNLQLG4*1O0EW@c@G6=u_?bV9oWvvantp$??Su{0lro|I2RxF z`pV)H2x9spq2ri6r9iQ}N97huDR>Cfb}f*ww?z=gc_c5@<~ zdAvoW8ilhrThpmEDF_v+`!_bve0%$KEM9ijr`=b+SBzAxnD8S~*6!L|+TEngV0+?0 zZ>s@w=vRIpcX*5RT&W-22ah@|9%EA^>yAq)sDl^6-qxkW3MoS|NJluwJmQbRf=~V* zZ*=TpsGw?3FYm8j=~>_^(++3NkBrn9AO?IXotgN zHJZ5IQE;S3FZO8xy6T>^d+fvEiSN7;K(|#@d_BmvPn65hv4ht z=9@7!lNxA~l#6HMQ6fEXxTNKe>yh5Zw?*8$%jF7Ol?n;i#D0`A=3Jwue^i8ale+za zW1zKy(dp>s?4lp1pt71`PWs{f-Y1OH;|9ltTh?T`$I&;H6jA>M$TMECH?y>JQ;WLO z?QrkduM_?sTV?csv*3OYjK^6f?mb_QN_RG@Cf+I|wuRVI`5Jbw3WtB#i1&M&CRcZF z`zLQgDfO!{syt@A;K<0LhRvY0D|ffoui6AT1$nA*X{_53On=3J$Hyt$ElCn;Qo6*o zV8j>dQ&@skfUgL#j=+$yD`&=u%v}ywf&Ik--ujUBF}jfJh|0BWGvVn8T)WXAq})sZ z<(&&qJUYZW5v_K(!Ri%EztwhD9`a-Wg#6MTDCA=J3C0+%a z{=Z$<_$#XY<}6-dA{1Zhx4r^9RuUkflj?mj2ZGqDVidP(6AJm11rhdbYy440r-Nn= z-lkx%qNX*|1?(mV8o!-fj81@x**v6kRFR>^rU6?Fsj1*_SoUtdoax(=XlF*i7#Gv^ zgxO*(Z_w-SrbFRrfJ%&sdR=M5rr)uvbY%O#wKl$O>!6mZZihQfn3~=}`wVLy(J^6` zC%~iZPj_ZA1@<&N%ESEyf7;{v&!7KyxEp(@>`JT`(!nK(gBD|ZCFOkI55RM8p|w^EF&sDNIfqw>Ayx7_TMa(I z>T70usRnx3SuBtUc+xLPBJ0qP_&%1z-9QS_+pp-_9qups&yXiCo2Sd=0+(}?^LF}J zAa#8GtEttwb67%hV1zh)t99&ehO22s^>prbH~)TvoO_W-UwXz{Z(dvd4p!bRVf~ZG z!h~BW?X>*|SX0aP2MmLXC8CImh;<7VP(V@X3etO#Za0Jg5t3j+fT-BTii!V)U+k2SV^-r!x?VeoFJgi@sn z_a#Z}5AK(<-Cl?Lu3uy}H%sG3m`=6&WaGmtdfw)woH1Irdx|u+D(P|Ys2BWUdD&}@ zS|xV~m^8XRP0-fNYL0F2;n3*?QKuVt&(=jZySh%;q8;6Z?HRn}(WpIxyhf7%_50o#} zGHvd;=qT&>@;1IZCsssP_-X9#@O@*qZT1&bTW4mM_RH90wsU9A18JtlQy4Wx9$#{`&(8wNGvwnNfkTD08 zGeX)w_-0?ZT`-lOlekOckX~(qe}l)E7lQkupexp@`MKT}FWpaE^=Ta%$FDvp9rA6? zyPRl^;C0vQhn}(%=`Kp?Fu#05`{o6A8=rSmd3m>~(Rs;7*8PKTmlT(3b?&lDw}3Uk zFZ9u}-n$#N4>5mqi?zD{%wL(_jY(Pe-*hy#G`V+1JW`Dx8JPU2%BMWtNqxk8m$zSs z1_~Ru&k;oYs=c~dvY@!{r`s9B(k5+*$s6yyee8-4JHs^Grh091U+JuNW2t4Us@kf= zW5P#9@!O;8vW>aIE>xd4 z@01;7bz=C}q;R(lHQl3Z^6ox9@y^7*@Me$hTddl3vTSZQEPi$0=?32tx__)3_*BAa zxchKuH~*rkYTCU{KCgP->qgu6lU758BK7qPl<5qDyz5w3eo~A5^nP zVr_lt%prDLzv7Hty8^zXJ#Ko@w!3snlcUNCrTfP$#|^R1^78P^+ z@4A?DU|)6ZYpoL>cNZv+&2H#o{PpIBeG?Z3ZP=|8@>uGjcA@9ioqKXVO9!UC8b3n1 z?M~6kL~EamuOF{^;m|F=wQ=4|)v@ps^_8p~4rNQdw6UKb*tU760VfP+qC##N}Q~BV=+XkxAbQc3F7DIk}~2FAG?bn!WFayg^S8VYjaErjMF;Zke;Rs2wQ!yK^N#DQX3y?6yZ?QaiqxYUp7;5Y zJgzv>fB9@f zd*iJYc`2>8xTUW7A&wuD9OQhD6TLyZs=DW#q9cjbBZh=lQP;A{W_HWjmUXl`f9s`4Hoh5fA!Od<{O42q`_{4(>BPJlEh&8x%v z&Q+p$rP6tgbL_teM(3qx2h=a<-o+wav^PS0$l$%ovu$2U3sY58THVe&xOz-|+O+v| zhYYK?8>g(P@3wO3uP&Nvhi^RD)g*m?NZRr5-pAv1+03*xo0Cv0?EU>k*F2wfPF>e}A2-9aoL*x}RUr+or(r?A47M$F?3{Z{WXs zi1R%gzqu7vvvv=&cGI15M4S81;!ANJ@yIkj@I)6kqS6BW-p!!(?ud$`{E zZrV?KR!Mbmp2H)}i<0i=hiESwv({$l8ud0;zUuM0N%8874)4EnCHDDTrSFRd>Fl?u zZEL(O;#j8r+NDx6r6b;n?yG0+&HQfCecg>Zqmg}AOPWgDZuZY^Q(l+7`t6HhFE-MQV8Up@2c7ESl|ntiNn#?{TPlTLnJ@+zV4+|O4- zH$Pq!=sT2ZI+v1TSNFYJ*2Od}i;A`u!je+Tzra9yvZ+5`bHRASl-bvooGqXF@X6wa zh7c{)rnQ+qTBTPGOV;hsNq-vg-v9hbyzQR+M?Gq}EH3n9G z2|m@UwBXDhc#%i!ht7rJT%Y*pn9)1SlYEQ(St85zNk0ya&N_TqY^q{nmi|UP@w30? zysG58rG;ybZ+&XF!7`c4SKj-m-;Ug$Mf!Q;IiLJ0EUh~nN!{F4%(>bn z@r8Nk^VVOUq-iayHSeUGbY;XBt^35&?6fZ6#SPmTANF*Zn3(*!;^VM5wcrmXOLpFJpHuyL&Ww2( z7wTsZyIU}4eYbp1(RtsB!DSV18hPN2pbzj<40kRE_G{clOVi+&yB( z)^kbgs$5p&^zcqsxsf(y^jWi`M>FG}{QMLC12KAFV-BrKTZEf z;@kQ~Z(S4Ke*KwbJ>s!skX4m&yPHPUdsemm{^Zu>^tZ;Ud3`T*aFX6T(oyx-kK3zX zeKaUuw#PO7K$i`v#ivR?t*iYyNZtRfW5*KC^{B*^?lsY8Owu$H9`L^yhc;R@<*HBm zbtqr?s{X9$3m^NN%owYF`RXLIr>FU^SG-8d?%A(Mr_0xzLHH`lPx0&Zbzamu81C(} z!2In-x9!O@ylp1ls!b|fc~C2EM}lxb{F|&j$;JUMd6}zw4cA`RVg8~X&W}?U?-)N~ zYfVl5u@TdQ&(C*$+Fs<;KeSz=`QC$zG%9b#KMXr1cyw+^`izL3@R5OG zy%PJ}mLBd`V-o-TQLT>KT;*{x16O)w^CbNIKe-S_W zW?L)0UtW>YxzmkSqjvN*SX>+LWFUT0J?xFISw^oOyLp{&8zrwFrSh}X;-K(CMdwEY z_jk%F^8*t_Ll}Gd)}Y-nx{KI_hI3^L7}n5 zx2Ik>q{(@#GJ5##C7OP>H-=x#jT~3mr*OQ`!s^B6UX)7d&8kLL?~4(imz86HR>8d9xNFx}TRpM9;UU!7y}Xy>%YkQ?8}i328&yun%d9zuMx6N=}xJyDD${?+jDPe_Z_J} z*V@+dJx?b--nz^~X>hx9kHT`it;2>{=xPQAFRQ9)yLRr_cJp;>oi4p8TI$>A*>jCX zX9p8WQ`TCy0i&`jv$D=SeD}F;K$+9kd+xf&_@Z8^7n5?6Vt(y;HuFBe;`HN!g-2~` zJ-75&U~;mGb>48tr07LY_kY{H^4LIq%a0`mp;DFGIUTblDRD!JM@MKCblL2+UOI5g zl+V@om(8F5sPX=!^!@ESYkX^7_oIPxr>W1cuMfwZdBw6b{dmec>w~YvZ%j!|XZvq2 z^vomRKj)yb;N|_^*Gf;vXB+2w)_WPAjbFT}qTQanz>7o5&h=dBa;-7*_R-U7je~jw z#BHuSH|a$7A+>i!*1ev+JYOq_iM%Pk7?SZLdm}qE|I5&JDNc`zEMM<2J5;5cd}Uy~ z?x`qe_r~=0&1#`#nns^uUsGSk?9myXG3H|28cX#rFQT>Xt`JtY4cqr~^`6+*dwWfk zR#S0c*6Z;}1E=p>JDDGP{Q3;tj?rt%K40B0?3vKNy;Y|^ZqsZw-+V0jmg>7@@Tz-* zpY{=3K6&Qx{o&PBw&#CY^s#9+J9p%+F1`o8>ynv zftN?Pr(CPMJ-Dw$OyBCV*kRMCJFRbItGf#4cN}=JU!Myvf|Q3YKh%Fff^GkDDzQV< zKJMqd@f+fLHr5|Lp!8JD>&5yxgZ*zfANH1Byw)_h;!C&kODD#g?&=&6v2}&e&myh# z*zVSvKSWcq*3MkIaxUk?n^~qR{u>-_?myIXmg=bUvA50o`zu>NNnG*rT)*n-lQvE2 zLys-J{{HFQGb=T2EIj{c{i^r(1M_OiC#>F{^rPqND?i`HdY{T!I^yKw5cNc-IUGh>jwAhe5E-j@2ZpQnFZ-9wRWE>40wN+XO^YTk9dWmFxtx^}ioR?gUY zL5UeVH-whel&?MdJzUG4^I(m?_WNtbbDyb3=f_-2ww~X)b3*gj_BogC?7Cn0Xqrc- z=2aQzHZC06@9yrsy`u`Fr#H?re7Bij*ME1-x*_ME9d0{ktJ(C#f!og)RCT$t>UNfL zf4_jL?arsRSI@9Mv-ei1oBnr+Z`9nW=WF(@FzD3+cgw4N+O^l~W}Wx$4gZbtFwNB5tt!IXcMR4%AO2u{*CYD} z59xAy68m~qFEy{zeo9+L*@tIsQGGmKw^=3U`?pI8Rjr)tEMsd!r)X4Ztr))~&Df~Mz={_zjd6K z@sS^=a(k?eH!0mbdzK47a_P;y+@>DZD{QCDe3YiVB(=?Z<*DkQ&lH;mpY8FXY}W0@ zWgk_F+h&AY_W9a8E4((R+rv*ij0gCe<^*?oVq$QlRZgoFZ^zHq9+Yk^cOCm# z^mXUF6%7~eu2#0%c3S=N^M&=rwmwm7%)LT)tsQrWYqn{vS}(mGZ+G^OxaK#h*d$Gw z`R?4uyISMkEV;YC-HA*yEe|DVgLtmmRmIGBMAzpRr(9iquRMR&r!^^8)J;lmBuOu% zZl3MnaJk3JwW|-rJWJ7-eB8DqMUpo-b<%LtGPZHuw&%)@>I-7EbFDPWG~#u?m2P*B z9FRW6t;>>J?{D!}?|F1N>J)p;+IfiZ<$zVU2H#3s)&11>)Q3TD9L^rQaH;php~4f> zoYtH>k@wEPa>IM8o%@>Ds=o$&I=oiw-ezb->n*uoP8tU`u0FNEZ;?dEo%%Pcxh?k zz$ZnQOjaGg+%-ttZS?%CtE@GpmKRKhsP4Y;sMJyW$pgEq-@G=wPOrKZ(q3i%+xUC0 zyN+*A8#U)ZkM{H3pGG-s=wy;%7VuE`i=Fpv66;Ed>STx1hW1A*$IU91EP8ir%sP4CG3V>eQMs#Z>nDJk|T0`+v9+$=Gw0nmo`4U8=KU7&5)H1?aOv+ z54wJ`-fn#1E{%Ib50pNca7FKk=vv2v?iG(xMBnR%4_t8L?F0SAbz_VsMECKy5Mj1` zFtWv2BD7%puHTKNDyv*0d zt*D+8pWTbt60^8;YNr7dWOlJ@D(k8Wsw}U5&}`fD#c=aG-%`11m%1EadH&G4lr(99 z-$?hmH?F<+b<|rrs4+0QF=*a4^N@iBXV$xhr<_?kKA*FHaFK0d)|QHnmj2~!y)1$j zsU3XExtF)ZWU5i@*tDBr7dG|@ z>-$Wb##S4)qgK~st$^x(+9*wWWMTM|%*By9Z6noeM!rl*EwXxdzN`DWs{tp%9y*@6 zv1sI~VjYi>F~v)kW@YYQxST)dYvx>C(|ND1JC})jZhEY7MPo;|q31hKJoD(>HN#=A zf+m(^TErcz3=E#reZbeq-k$^ayPqg1(cubv)=)9wUOH2kCY88WCQck_nci<~x14m> zYhT`L>vWkXbZoxCjTy1C&4UMh^YwG7=Nj2JyytH0*Lg#jZQDibMpBz>b#G0a>|EE) z$>Fj>1@|aPFfQ-r|z=+8T&oQtD()- z#qQ@dt{M+2e6!$y>M8D?^A8{IaZj^-b>8sZ`6Y!}3+7erv|nwQm$FH+BxZQOWzV*s z(Akx;>*cJE=?8~dBsXqav+3!O9bM;bTKJ2{=iaD0$m*pQ>Uz+>*XAAiZV^wvyB~@V z{h7nx&?>=w`B^isqObw_*RGVUIk{??ee)Zw3riB(zDpR~W7^F-M_b>F7e;Yx>W5z4 zB-+`!X7#?4-IQ}4jjS|;m^x$|sY)B9A`=Y@Han_puuzP=MMK54v~ zpgu5Y|HY~TUUS44Coh{r-}~#VdNX>%@~UU|pIsW~Nj27WYg4K3H*uHY?%3D+PwCp_ ze<&YyFL}<9cU0}oQE%TGt{T^--Fyq%!%9o;@ItIkP8>SiR3pCdK#$sFHBN%H)X3?n zwRF~F?;V-PCvQLUsZ~cupZub+qnvj<`x=t|Jkvt2wU_bIsVUB1XLe6Gl~8|bSIv4Y zRj&aHFF(oXcVP2%?SXazk*`+9k}1Pxn(yuzziV6E5~`h%`^<2DT!xvzB`k`waw*4P z_vph%#!Phi;dJTcF*`|3vxCFzt*Qs7&c9f-WBR0^kE!PA1!I2t3hqzxF?c;ub-PEp znNfE0JiDqdrmVS!9v&uEruU|28ir{XUS9Lwe4MJ^y~BdOOWX&Y%-A;d?XD-^er|8I z_@K~w4;Ar!qE1tjbVxocK4yNQy{DC@Q?hcK*LPoRY0%ht_)=;6cbb9sb^JK7y)W0O zJ{K-ZU0Alhqivr>4XZ7Z_&Y*&zDlLUd97bbYA?h;d^uR%^Td74m~>Zd!=JM>%L4Bz zceZFNF*Y&Ni?U-Ct}6NRW8ePTFCWei+P~`asW&ADHzl>nyxr6-xhU?sQN*qXPYxIQ zALpGq#dWFg(5e1dMNQVZ10l)X?wx2o`qjc$vzAK6jr!bo|Mo`7d-YD^CpcIat2d7x zG}|rU6DvFSt0`rvwP@S5*XO4Q9_OVkGMKmF@`;13O$ruj}K?$Yaf_+3^O6bt5^`fxUVtVJiTwt-4;#X z$WI(EI;h0H6y0|2`mhOQAI#PJOJepYAJu%$k7_m5%Js=ygXu3_Yb_pax5&TS@mnin z*7${oKa4w>IC#?C>h#mf{#tnlUwmu2^1dCImh5|1+S)n3 z^j*Dd^}-UhOZ^YtF01EVJA9|;bm^6lDXz=6K0P&PZO7U5tK7m4M3zqIuEkpYansF$ zwoN%78qPl2)HOe3;ThLE4sW`#uhd+2cl9#b+)q>2{j^4whu-Ip6*1A@=V`xqIn~zt zg0wJtiNVu0uOcQt>py6O^7xzE49a<&bqAsjehv9*_w;ms!C=0BlljFswAL z+CZfp=fB1X0;EqY>_2Bm@&yNSYSOz?3 zny{W4d1~3ffMfl;ei%OQL{9&s=j&q5bD~k1OvxTgWT9nbB#dyY%Jz^+Lby5448tE&KR%azVPzGRtor&ct1u z+GAyf*4A(qrLI$jy^BlN`mq4nFQDn~Bvto6&aLbTUo&c^EH zsambZbf01zv{bd&`sG*Uo2ELGPbB5pTwL@?-79PHF6F|Ld#~zy<%SJEVi8?n*6Ojq zscv1N)!CeOt+e`Qr5C#$ZDTt?ye7itMP|o}4-+#_-<$WUib;4S(BgbZ- zj$ikvhyiC4s!r7QuuON-KJl^Zk!x*t%+fD@?K!<@U(A#EUnNTQb`j6L&wcGRpz3q& zo~P=Kn~r5i-3*HO>}4E#+HbPkt@(2n&fVqJSU=19?EPsSO)6`f&xDo4mo6@QDLLZo z)qVKv_BT~avO64Hb1Nn(^BHTxsH8czXH(V<_g^qRIP)J%28 zypunh%}S8kgMp zk;Pwa*tY%RX^(#FQkfm&@@{794yMJKGyBCpoAg%s-L;F>MG35nPW4s&J1rbAhreM> z;q&|F*gZ1$onQ8Gj>@9UD#y0-;-fX4&+G_V$uAbXcL?cM{b1VqZ^PLsyB6in>jtc#_}w^ZgletjjZ@mbxEwwtCFlx}>YRd3q2Jrsxfyx2xA0_!lroTMm;MaDp4ky+0a?XPjk)^()hHp7; zW$_{E^OvyWb={8DP36vx2n?QH;WTrXP0+jUeKK|2-~G&-^DO`K+zIza{yI>inq-wa zx7p3UoL_Z1L}_*CqOaqJ&8hsbV8fNBQPv#?Mo%=(Dl16WV=uB(3k(17GfaJL!y}uG zt%HLGOuFuVFp{QOHPjq>9cOt z{B>r^UR$2t$a}8(QuwLi*@{cNHDAOm|5gwC&p7gnwNKh`ELeplUN-;eo!h1dl_Gme zrzhOlGF6*%_Slql(!EK6x{cxe8j=s^mt4P-ye8xRf#Zv8XFKWn>WmH!nP_@?fcwdW z$+-bttwk{l&7qMg99o6AC)&)D7LF^hLT!JO8Hh zqeq+HH^yzxnB44W`FZSo){iKGHl9GpmpN)Zwr{i$>>nH7fZAOI$j}LkMaK@MLhI_Yf z-pk&x+~MYqmSv%pMLpI$WWUAb8U*+zu zKX-59*#$G6ESPa`!qE|}jk_5n8nL> zC|f%(cH4YK&-$3|wWkFtdzbZ2cP<>)XW->KIq%Ct@VbgOUpm>KB;nmd*-@@uF9{~+0}{PPc&B)O=SCbxpom9IbU z9_px3HOkGZW|F#Dy4c}M)6(%?@3K7Jd#;Sw*V*5L{q@+d*cZMlPaoT;{ATsoclz%& zJ-5s@w&h-WzbUiG1pZ6#WBnZ(ZEt6~PPMrkcw3Uc_uA2>dgBA94#vMJO<5XXv^7ri zto@!Li|?MWdhsOh;Ln(o4~DJDf6%O3ZS{WRu-iH8nVj2`uYbGUp(JBWW$c*Q9xub@ z9=~>Zcy*QKT}j56i5baX8bWu}72I9wzp#z=_Q&n+O~_xoE;Xf7Pu1uJ3rs4L6FyxF z$*fLjWt2KCR{!q97(vR7f!d+x?58&z2#YB#Yvr_1zq;9d%gG;y*som{UFTe!6XI>I z)In{F&iIid^gA6Nd9*^SV#IRid84My$T#bD`rJyF#X}5+>3m9^ z_bqtO&ie*)3TDofUaN%nwYF>jZH9BruU1M*gWAyVZ)GVdwO3Mdvs`KiHY5LE2cpb-!i@5j2q+I8M{yFdnT>`5XEg+89zck&zTxMofvgVy-BL8)C>}{e2-SoGqq!f@p4JB$pE{VMkI? zB4HF)6fJF;0`5NX1YuOPkQL44gbRd`!Z0btZ~)VLhQh zAEy;_eE6g!#~9vvNJ zF?@JzY^*dZZ2qy`zo%p(-BqPT((WC{Hd#g2-K zScOAelu#56oFd;)k?dHI3aBb0cLklpU2*BrKsb+2o+IP`W^A)0c+ zxqL9&NGh0zm_~k$<+7uQ35X~G{QxMg2q1tDYXKEte}ql&J4I|!pNb9Vl0Ap;L}-sl z3ZMi24$uaYK^x#iM@kXA!g;|w03kz)*(G5(vj;F_IYcO$7U2rOEn5^OgxOgz4j==wxt3)9Br*#pv4XFhF0q{lw6Pbs=g#htUB3@;5C2&jT61kCLmWYc!FjP#v z0)3?9UXX|0i6az&;#C6o*uXOyNJAvNXlkZ}M{&i`R7fQ_!e|!xnghe+ZqT8{4f434 znA~Uzz88~e6x<+3kwoGF|4AY)%az37j)4yW;WU_RH8d!gT{kpNC-!NbBMrKdN`;pcwcnJ z;D#h|EFwMdc_=^JJi|axJV`W87R8pL1l@;#0|8oz(h-h|g%U7gG6@Jn#771J+Oa8j zbaEUnJY>g(g?@KHz#w2S0I&#*7Z`+G!9Rt-anPBNO5%y4fFt06@LLwBhzPmg;*soI z{=y|eTm;xa+EGG@NCcQgy$9N1GVo57gf4KC5ZP5Akuo>MLN`Uc6Nkqv7db@kn<{Z; zxo-mZPka+%*`|0mxB znucBm-NC=RCT0)|-4i8uPx@#bRDY>7A;0z)tWHbGsK9ph#Nz&`X8p}2b?#M7Yo zLl9_1G)7S%=qR?BMKFlN1K$jMgaKSCl>H90k>M!{R?bg|I{+3G=tY`f3QW<^J)(qQ zS@e+rnDqLD`yy0x0)I&8Uv-}Ko6f_|Ax!%>ombo~`WIjyC=#MAOB_|nfw%<}hQLrr zB?cFjz(JZ0UKqeB7XmEut%4%3T9SE8x)*%XDb{mSQo?`K`@i=Bg~uLGvseh}6; zdHPdMTme@Ep`N!S7@&}L6yQO0oxI)kSgZg{3V@j-0n(7Qke(YUMlZT{dhnTQ? z;0DkLV2SB9kV%z1oakKo<$OCn%VBWU=dp+{WoiX zpfH-t4l&fDCICcm*x>6R>xT*p(!wG_W(WpDjTQ>QX9k7?9>fBBqqyt{)WYA`56KZ| z2ryp64dseNxEI(I4gp2cCwd6+HUw-GZ7tsbhKKa6Ns<>kVLu?VUZqR?ZUclp^c@$VO!ZC0WClLVj$I|?iaov(Ax}1^- zfiMH)w+XBW z=3$0T@Ce31W++7kKnsE;nCc=j476DsLHGo}f{|fx4Fv$)9zBX!6M0Bs87w*oFrWf* z0pOtC2oVidD>3>_Q<;hUgUC>fT_?R2VMofl8 znEw8+lZhpqaHs(>{BFtZ!AQY%;p{*Xi%mfh1^hlx#s|+%g`ql-9YeAVLd0|e5v7F* z@T-EN0!t<^&q9RT0!}al9)ao**p@zUgVr-xRHj=vp@Q1MJT`zRGCEk|aL@-B0~k!i zgt-x-51ExB+5%tjWSW5HOA?qrRfJSyDJVTdIL3_sw1^Qgegu$>2P{Pni3y>R+%T-AqJM)j4ES7>KTM6$AyX|Ro?|#{n-QVndO)*H zq!_q^s=;NWv4S_U>=fv<8#sM<= zNY$c6djP!{ae+?6qV51iQX1t5RpbNEM;^F!b|i*PFan05YXL@pI|s>w2PIW`C}jc} z#C3>4wxF390RSdr%^wR#$YI%B3`503U_g|Fj&~7F9C4vYkP|LJIKWs5vI)wZTrg$~ z48X-BC!yd)@11ddO!XYN706{Fq@qaJF+zYDTpeGEQZ0N7sUm=gk6I4iTi=IWYfUE!TWHd!6O>7{17Zb zAy8Mq2@uH;r^1ICFyb+(9>RArCgXNtTC{&CM>9)8tr_q^rdObpgl@!kP*=L-M#}Jb z41o{Fw;pmf13SmaOwJO#J|G7C+7%Z8yi zZ9%IL+6=%e8|{f6%dm}6QkLS(kex&31a?Xy11J>I1jus$+yQ(<3oHzRr2mt?lfV$IswLE=m4ne* zOQa4`CxCJ|TNFdF9FzvNzBRM4w(jA2`7>b$2Wjfp>khtNkwqEQD_jT z0J2z(hAZ@D#0z0O0|rCjhS4aJ(~{3Xg27@eHsiFoH(8iK$LJ&^#E)sE242VlLl_P! zBe!oh&2RE4$V-m5kwTC-v1$bc1ACc(fg?%@Qfx?CNGQrgCg9n^rDAf7#i%tgWm)D$ zuS6>`vK(e%!9L+vU`-T*FSuvfPEbr38WJD?zQ@t23t5e<3*?M!(HkaOBl8jQ04%}3 z<<$wfx-e+@C#pqU&?}f4x>}&X zL04FSn{<&$1l9sB8@`02T*yM?$wHCur77pR#LzCiei2oKeMo*0581U~q`01Ap6S>+RZTZlmj$UOfG?|`qg zQqck>LijU}(PgBI`3PhVbo3?H58xPLGYW`FeDr`O2C7MYjNp$#kWLF16;sA-dC>No zu`vD1_XZmXoxejtHs0I%fzAWYdYbP`Sre2GCo2#y{j|2(@KD zx?(~P#d0?2KB=lPZbXg}Bw}o_4A?N_m9hhVHWp~bG-8pIh{%h61i~BK+`m~RgO@-W z5+cLcmriE=7I?$$lwCVQ)D(DSPWS_LIqffqE{pn znl>F(;PGKJs1J*f$`}XuK>U`jY`{p8O48ec#w2Lu0#8EZ4-ZkX=$|3N1o-oV2O-P? z2&c>YNGZY*9Y7LcF?_=5NkpVj#Y23@BTw|*ET*^z!-#stLh}O5!w?G~38e%WXGwvA z0L0VWW0r!&k@z_5V56NNJsVjQ)__(Y!b7>-8D=ZwO#p@*YzQKd%;=xY4oT6JF?rat z3s^4Go(CsySg>J-L3dji_)?G+Y5|x9W@=;~Xd<$S2oW;ukOf)tkPPsVj=cUO2+_kx zlugA5BcZ2}tOd0)p$PIR^qs%$j}CeX5D}|@V{8Wg6sVIUCY_z&j3_h~6A!{}N3}#+ ze~W!k;IbXz2L7ZSy%$-8<;%o9BlXa*@yHQEU|AI#WXFM`4>km1DE1fUD~p@N6a-EX zr;nt=C&d0gVtNui0ThsaN*b@}0tM{9C2+FgU=s$04WPX;SpYp)tOf0c_8Ph@OuQf; za!LrD4A6@cBI#-CpAa)QOna{|o*@Ecj3U z)2N8sr!fM35R;~opcIJ4A#^F5;eE>%{?J8*?P74^hgB(dB%{7DX3!2%fO zqsX8q01x<>E?@cdh*`)0S>fO}+K?(RFcQl0=t%H?7%s6SS%AZ68<;yAtPL~>za=d9 zl|U9tr+C4%Au}aVlj0u98VWq;fNHDVdOO_U@$of zc0`TGlv0j1I61Ur%FJGYxnPA@b%W@gIW%jjG!VKVVSq&>m||g>mPu70ox|2Q#1*Kv z3!#Y-Lv~`Tp-_#4QXRCukP0iEo-yNbW7xPJ1;Gq4b)XohM9+o9@nlUvASpa91*(WD z(E$Otboq`zC!FDg9g1{dQ$UEUl@f+9Q7r8`6?WR;P<8{v%_>_EAq1pqrpp&rjU@E{85gV`}yA`*;}vPibdhA>&)$4ctbL<$%#Fi&Bi z4zP@o)9(`y3Td7~>7A#Tn$Q-|jCy$X}Cf3FZJFavlux+PekC&B|ZVv6u@XrX2@adKWNCzP&Q z$btx3O<^a{zyv2FVyw%_eZ0(<0^4N~3Z6xRtwF5Fj{?5~l#1Y(2j-NW?=j2c#RX=0 zCiA852>iY}OpIqkv;vYND>&x^9}MRSB#lQG4oV%(rP~sinDwt@$*mBR17t6T&g5uE z4*kGe_yW1XM8Du%v9^I2{LeYTf&g=nud=QKI8tS{1nMTE4ALkeiwFtR8a!B*5g>v~ z1z@J||4<3cgkp~5vFXNDV_I@D6;MnuQ5}J`peu5&gD?ReNLLI^3{u5(=wMzT-#dIx zu!EdIf*V04#ohgW5KD{b-^GIEG)(gp;&sGrx?=__V^~SSGbBDBxTW^W-~$V`*>#bb3iU zBw4;nlp3HC^@k?_O_~7e-C{;eX9=CxKr#y|#z8%5F+Mz1`5lJ=x)hBKaMctpuR%$Z z_;XMKF*pnP830TLJD_GrLc&PbBJc<_M30ulM`FIZTP(R#2= zXonzi4jW8_ZZ2q9;!pb^E)#Bq&{ZCA6c8y9G?8f$P9-xCBBd7F0>OY|MRt!a`GnPzuR` z)POVuC=^ctE@hFGY!MI|LJoumz*cltjJ<*=$!QAR@(b=5WQdRkUt_lgbJYwTBC|uJ zoTL*>k0$B@P{nYU3I+whkQot8QO^OLa2TX-VEO>YB6L=;IammmAu^T=O(D2p$fqMW zG-!oWYcjno(Ew?Mb729VfKGp58_;x1ERsu-dRnY71=ID6*F-4}+<}$wv9$zSYH@49 zY&gS~p|`vaC@TVkYLK{zE<(Z{2_(vBAi^hwx4(~v9ndNWF3;iDXbWhSSeqlfVs0)XcS%G+ z3VC8Y=Z0F5Y;nBOi~JE|1yq4TScM$t0qWt`mP z00M#(tfqy+KIlqI3rQ$h=3*sDESO9Lga#@~A}P#DU}`Z0;Uto8xuHw%7T}J4$Pz68 zHUu{!f!Vk?-B30>L$O(w`de({2-0P;X>?*#iA~(Ba_s?D_qM?_fAk9>B$8~4R&yC0e{lwg=1?LA zql2gc?`Xq4yf7}7QKFzs2z`jZZL#I^x!mYzxj5L6m^zA}m8ogHq62ZtpC1v$Q zU^_Am?&M4VJevTSnqxN?_h0WV5U(feuz)5wNZXKSMBvzi3^feJi{by$r_JQUcvBWF z3H}Y6^TnP0HU~+bKqtYsLoo$C7+eP70S?LR50g!_S!PxG1_MeG3Q5?W09y@#rafLH zKEU)8ktG1%NZ%u7DWLD5h5|%v5>zvjp`fssip5=&Js7YA+Dg!lWg`R;I%IidOCJVAh1kkR z00xNoTOcj7D$0WWg%N(zKd^27+te3zrY{M=CvUjKWi`mEoU`#0%WlIs@GQj8XcRWIltmzNajQ%A%QLzWi=%jmmE zm$l65K;6-SFdBd@-eE#~4+Cfnu{*dC#)JoSGysh$fL5Sl7?HN5{p10R#(#?$5HskR zgna1yWG2GPK=?a;N$zyvbaGCSKmaC(7F?F67ZqsZ<74CLH-W`6f|fK}2Rj>oUkA$1 z*@5!*@pAI9@t|CMDdv8cJ>}@*;6QmfQg+TZK28q$IL^lbM<~pMZLcha31E~Lnb0A~ z&%x7=@`hGf7e7A-d&+hKW#jD)liS$3J5cU6fgn|fAUg+dKPu4K!ISdB=>uJS9az48 zHu!*xCl%-e&9$CRWJ3A7UMOcTcY6mP(ttZ0nr_L1l(&tKpNoSpZY03Po@|OG+myDA zFOaQG1-ke-d-=n93>$EBHl7nGHy2NM)-=4dHXo{`T_wkw~Gf*>|n3Ya`Cit z_qQj#z0lPQ9Pk4^!OmcqpBG_`Y^-c{BnIa9aPR^CdHUJdy12Xe0S`RwS&lA#p0EUI z8MdJ*xAS+0_kno(`*?f7)jBBDfJ}gYF2Haf7hg9DcEB)pyuXcnBH%9Y-^0e!jtELY z4k#wvE;Yf+AExt#eY*px3X(=fIZ*Zvjt+KyE&&euEEoyP`1*U$8e!+<>qi*m?oN3+ z*a5vZJ`*Tk2cG~JJHiJa2X7k}U_Z7!`}p82UY?+4M$ohdq5~aq2tW<+_jJd-`Z$dD zhu!=|4{!z>C(t!yrJ~dWUEJMSD4#z?uTLI!@?2x1gNL4KbV?}CoL4*FMQ?a z?BZiDw+O+!gB0-?dg7b+>J1C)y+EM@1+7%mGY zRTP{vh{DzZhS}H$fcb;n(To90@O5FV20kJ)Fnq+g1G?{V;9pwtSy-4wPhvwlf&55| zkRK_Q!G{wNSUn-`VnPowISWDe$Gj~E{4a)75bxlDAYG&+-jNMq6CFrFfW?IAQ1QX= z5#LY%7jCeP2xE9y2Hho{w=wB74#G+Se22&E;HO~>1WfRM_=q?fnEW@y2X~6c?da0U zRWZD%q)^LpW=IpC@l)<{U;rf_r*R}bVKUmKD&p6dm76Hp5%aO80nEZ(xZ|Q<~z&Ic%Car^dWVU}q#|*Fj zWPm(QgqVp*vBIHL1JZ+8Vdt{23QP)wNvA4|4=3v&;>dhC1a8a?3NRNsUBfC0UJ{dO z8Pfl!JBBzD+4+C)$i5&fRFnT;F-EO88)+4xvnWiF@FPGSC~dT8HB)p1<%MJlZUg{n z|6_7;B1z_A+IT>x8D)YhODHD4e}vTk7URlZf@f?_ru+ZrHa*@FB)LD7+vWWpkg12$ zzzgL0|elp3e24l zIOm6=jI6aAY#6>JC`x)5!8QmkVJ!z%f}end^h|i5!e!c`oCFX+({E#wXIdua@XEj6 zOc^biMgqAVQ;JW*(FW7|O5|Z<>+9w2@8{q?K`}hG#7u@sr~zoDpxi^qJ<`}A800bd zkDyOPAp?UJr-La|EH@GtLv;HM{edks49Koswxn8?WIBcQI71XE0lxczDu+v>Fo`3l zzMzJDc&`RDZOaHGvZDWhry1oX#G|G{{w=#2Lh8u!9PwYTj(LT`8gOltsV~ddLnT3{ ziA4x#Wycd}Fj~CU36h1(hR!nq69j)Jjk$*ebA!tu#t*abq58=+;6PCdI&47%aApJ- zo$(cr1_p@Y=u@G{i^r`5z8L)j#wb`SX|cmw=VS=JbV4YF$8^EkkZ5usN=n_#)6jJU zor~m}E=-Qed89rI1_K^K5CEPSUhV(}-{QnDQ)ceZXcPG$XPL>M-xQ1*udIvl3MKTr zfMa8U(Sr?;yVl?|u^)=y2KpN@quvvQQm9i2fXy!CU6<$(!3bqb!35+~TvqlYMuLu> zL11QiqCi6w6n+Svdy(!xFiGqMhP!4k7u`nzj$b5(<`<^_4wiF8iYR9`2YOu?45T|l z@J$h5QGQaeH|&Trf-ntw|HvCa7(Xfd${T7`kWfR|1rG#3tilv+|E^*!g%rA22pf{s z_fU-##f-=xWM1|~Zm7zbjwN+Kq~FI9mP>-67L2D|06OF~4+>Qntb{}MjyOf2pY~TM zafT9zHOT!~;4SQxUXc{AWUsYkAe{@Zd?S<7WDsNniIcE{XdH&1Fl`8&oukR1x}ZP$ z`=kvDlbJk|EalEk#p*^N1@cI^f*BAZz0EHM& zq5X!gcKqYbP(=0M<_^fZ<=C1W5w(P$p!gzr^BMsg=5=^21sB{a*`qh)S9srmK5s*f zCa<2uvzV6t8IU)=s#G3JkcJTQ7F0kJ(yWESCB%2((BH}!4%l!AT$jWR$Xk~Hs1cYI z9w$L5tktp?LYB5&Bv=6y-NUt8Xl7xcCF|A&L%^vS(_$(sq$Lg}0Na5s38qDhIV8m9 zB|~l64%`{7A=EI6fq}QIO9wrR6fB=<+95hbgC#gSx?_)2ut58XHIv>`Xja3J=#O3w z*lvsF(cSLIcalgD(X_Z0&?4HoFuM0I#z-!W5-!o_fUr;OlfwoU1`ce9UD0nqY+)ar zEy=@th$!$DGvi%a$fUz|un9s-OQ{ew2Ca=2p^RySHHz0TWDG(Rr7!WrF3D6aO>lUv zS@BK)G6ehydCx1&7(gZX5bW?TQ`486Fx-JPNQj5Ow?w>zHGpq$0*~m_vaBq$C;2L@ zfLKH*1AhXm|K~+Ig%>v<6No9a+;yclO%wJX(j}D1HcGY#ib_8Vuw;YUET5AQMt_GH z4fJ#q&0}ix@ClyLlfov@Le929X%%{iS_DcEk4%R^2h-r|MHDq(j<>)oJgB3;l-FjF z&B!WwM5mypj2h4og3}`|A!SV40?-CelT=xb|M({kk=4XQ=w5N`S_*-977N!15-sba zVbWbEWS@$(7%IG13ty70ca7WN)LTgj|AGHAFVe<#Z1!+`^|ei8R5;rZ@KG$z`*r35 zj4)Dqz*4eOTG2siu+mEWv8sboqS9*oZ4Lfdi$9X^$GSEai@FN&xApjA1OC{EKQ`fy zK$R-UH04 z>T393`-6JrbZ5+xdAg+YS_ z8+MHv6Km9HqG?8>>BaB2_Br?7bITC){lDM$KL6*PXYM|`uD$o#YxlL*mP)y;ShmXd zljMH82H&B^57fBR8@)?JZ9nve^?vG3Z~TcOak)!PocHSSU4UN!Dh<9;=^sj*#+ zCN*}b@qii+s_`Q=cB=7^8V{@Sh#HTou}h7|)OcKtCz6!z$+$daq0_NmI`}CD6AkMQ(Na+oa-l3fOK$5ElmSmr6@x=#1F>;|afQJrwrVMDqFGFwsBTSJ zr}CpgN`GCplhA1yq5u+Pp>ZOfUY{vi);Lk8+q%XH4{W9Q&5kyGDM48tZHRG5niR&P z^-!lfBW;LS$iD;er({!0CQ%0xH5=GDKc!MZCUxih)Y%cVtd?9XnPn1cSqu4VS;uEn zVkVK6wb?)|YffNxQM9akjLPGkW||FmiQYcgLBmwCR_$uwVP%bd9E z_T_1H9Hz!WGTN7kYD|^MzD!bMiW)Q2I9Q`hSKCZAW~p(A`W>pavlQ;(GT)cEGC3~K z`0}jO`?5feF|vAXkoAd#qLeKOrUlV5G>Fa$sDZ^W}MYL4my(mzR8b zS$^!xE3(Fyg>sB9E7e#k%Y12&Un53FSeT1?5Hsv?(>FqM%opKK4stGGZ@>T z#yaMJ#$%22>SKu~Xo|pdWI#_@USPFQLV-?D+3h5J64H&?@j&LW3UQPyu~o_#zDCCC>?Y%IkB_(~ z;0NW}FzD8PAzk~0nC%w=wqI!2exYjng`DjdVzyuC*?ysL`=z(oFCE5yA#nSp&+zR{ zndnrQN8p+#E;e2+soo)`x_G-d)$Vq2tM3zUyTq!U?NU^YEne+!m&Cn9G;$>7KKj0i z+$Nq}z;fq8DV0m54QqoA@_p$dw@VM%X0w?eWMjIJjlL^#f8lJZG@Fi^O}FzaikEMf zWOdtEU@NI^8xL%W>b50;&981tNn2nB?$YXQQd-dxGqL=N>!q|hv~S1SwnY%9th#M^ zU@Na~+j6^9UqB)^tX z@*CRrw_y8s3@*Qydihk=$mev^KQiom0m{CV%jHjUi~L#clE2D*@;8gDqXJ~f08r(V zQ>*GKuWMVcZBg4q+hlQZ@eXN|DNGUq64O>HOb46z=rHkmFwHA8GQ2RRZCiE?DxRoT zyjNWVma5LN$lES$GdWbV+7#0(ySk>2bTECTyQ!8wrl0gPwKB{MAnyfflIjtXRHFI; zY1bs}GZ2F^kCM1Kz@|7REb}b#&_!UcF2$E$CuKXOa$ZG;2c&9;bbM5)&#mqPVcsX5 z%F3Fga|T`q;hh{aONvaLv@&z0y*W%enZu>0QSx5cT#345AOs~^MTr`1id2b~Q=%9p z8d|7C+r-@>ok3Wv%R)@2er(WZZ13sTBwaJ`Z9g$*QNpt+;d$WheCcH_kQ#HL3^W(X ze&!PLT_lS`OmyO_-7yAS_f9N9cPmm)a~0+is43{VogjczROg2|QEwt>sT>c)VR)L6CKEkl0seyTtN#YAkIW9%~nG zm$>p;?f>m!%iG2Ef4H|*<_8JeC6*G{B?#11gyW}C6U!HA#KG-i7Tj_L+(Lndfi{iJ zExyzSw&S}rRRa)rwHZq=h}&ZJ&qkcZQa0i&E?X($Cgjz;3^3&Z;sR@cxUw|jic4&^ zemgInf2#r*ECeUSV3}etghFm*w#r)B|AaweejN;!6~bVdV$S9oU@%$_B|zt_5RcAD z*?25KfY!?r;58(&2>nhTLIX=Yh=x##AkTnsmWE+Iz9H$^06!HF zwhqC5P#^kZfMBvL9S(VFW5+9c6lkd2qD1;krqGe{(HYPCA3^v5ZYZO#14I-rkt$_K zEfO8HkqoMh;6)5DzL^fhNV)#fgzzuD;wFpoI{&6Ca$^PDr(eD3V;7-y_g;Y@HkI1`;}XOc6_ zne5a#)15Oh&v#}!7db~b*E%vs~S=B#x~o#Wkh&L+2;bD~@A zoaByhPI1RMr@GUe)7<&aW_N*ey1U3Z+g;|I=dO0nch@-=x_3F>b{}xIxX(J*y019b zxgR*!yPrBYcuD7b-U#Oo?*QjcZ<_N%ZuK? z(3cYJVjHo0f!*7v<6gU1OHA& z-j~kKFQk|Ap$v3>DI=U;kth4JFz4vR8_St^ozIBGjxUVbKb&|=bpaF0U%-^=wCwyt zV$Q#%h4U4u*a4=q$t(qma+U(FE(q8shEa#I6o7PC)7phJi`M+CDs)xomP*WRDaCG? zl)L4mW}8_cyLfJPl|*7QS}41?u92I|t}oeDlU)tj^&>TV*$_szaP?A5Cr(!MTz*jw zBHh76WY-%;9}yz5ZFQGm?V8+Ewj;@Ml(cXUkT&jtKw#rsAls5c*-juLTkPhtE!k7H zGst!(*&af+hXR3JdVy>cg|a=Ii0tQ^%Qms6Y!{O4BC=gfwo8D(kw6G1N~tY!5xjy( z92|sEj|vgIuTpA@6qfg}vC409yBc@b)8reZ)ZHkZ+~cK>dx8vfPb3qLC&H|vP45>% z#_2@lAR~;P*Yy6LkimA;y%1zv1TroL0%suwvMno=?d3$|)TFs=%l4ElvzdE6+1^05 zHv)l!mk>_04JvZmU@MU}r?bpzgNjre>|uM_TpQd&8{A795boYj8*HZyn#hVnps-ZY zHYhKIjE9NHaZwmOuMNuggpA!F<7trb49IvE2xq3ZH#5SG-XMB??nWfoD^zAS7{qDI zvOmr$+l%al>=wm+MJn7^Ic?z>FD&DQz}7)$j#!`suf}N&4$| zK$8sA@4ihkNWX)dWQczEYm%Y*9o8hn^}BzQjL`4MCK*+854i*z#-Y-J(f+rRaDOLd z?(e0&`>Aww{{Ss~1}%Ip!`(m1X!i@5?0zYSxPOwv-9O7Q?q4|7IX8{au0Yd2?*Ta= zv!e~r{||B9f0EaEggbJ6=3Sd9+`sim^j`cSuSM&xFA;Lj;Kqb{hU#G;h6~Kx`^ z`#^8wPAZm>a&i*m6t$fim(!ALLpQ5&QW9c5L&MHgWS=l*sw&$*ovS zE=m|ot+n+_#t?Ed5FfKphRCdg?X)_O7!28?N;Cxpxfdyk{ z&Y3a3ZUHxM<5@0n;gWyn<{RnUY(f9 zj;U0y_14$VQfWJQGQf=9W~Afb)@zT5yK|wdigY+OEkuxhOtX)p2;dRQMs?7-Dt-Z6R*l}lZCq+oOkqn4mU2BpQJE4&lb%f&G( zS6WZ7nz}d|pfA1+n1HCB)!ekYk%lO)gVPV$uCY8}Ay4}9lh*Q? z>m&DYtqYWoTe+uwc}AYqGTQq&AkUFH&{-h%AiV=TtZ>-i@CNb)y)`S8c!ir-_<|49Qov)~IoVNCBYOIxYarucauggz;`I)={3FkIg zW?+rWo4&lIP5ZXIL*BVD?GO={cYXP}yl13iZnzy4)1zPa+~5M3@a27>i?q&-8jPR8 zW%|;EaE8swn}cF~jts`NwdrZ2I&XZagGsG^l8WKawE9O=ivJ|+O;Ss z7Ok!LC@}q174lCvaAp%Qh3tKngxGwOF57(dot4IAhY|J={VKG`!9~k%2jn zR)X=eMI*!J?_A;=oDIz!MbMsp;E5^tp3c@NpJg4E3m+e4# zvmLVyoH5f;JvJeH>7Gfq5mvs?Nq0z1l$Ng{pj^ONUWe#1N=unNjgY6-um1QHxrft` zk%{@0%qP?T*ncQRi}b{(*>jsd(%z=Wxi#0@bi-Y`ZZyW?9v5+s$2}q9o``!=#621J zl!$vO?t>%lY24j1e*wE4c`%(}9*V0UdFkDn9yJ*5!ks2zL#>;uS(x_JjxD~&4!MLK zsHUt7Q;sC1L!5Szlc3Oni)jK7| zwlTh4JO#vFFT97(6y+))e3wh(Eu>(U3yabi?mG`8N%0n`tS)QWB+0Awezjy?h5vxG z*de8l64-K!lxNCVww3$fLM66mr0^-mbVL_WFzg8_GkXxl7=hmuqR;|K& zbj>fQ)idPxEcrc0elJq1m#Ec`snsjw&Gg=Et^7#dZBu!tYSk{cR&SBZ+vM^Nxx5EV z)(j!!Z&<7LS+%OnP*+f^Ps#5O`CRvmI`1xsh#I8tU@ z?mP5cnl(-cc@0#c+sDyqDkzWOt15*r+g24Rn(Npk9k+@ybJ$LUvr|sJ;CP6eDst>d zj$NgP=_Z3scR9%PAm89FT`6Tcd23hfo6a5Xfi(ShPURltQ`ID0aw|5FZ1yFaL1eQZ zpqK1r#k!_I=T)p*cE$F|t=MF8oI;LM$#FUrn?c16p<;TP%-Rl9E0#|zQM7i?%01Pw zsb7x_vEb^NoA+Y!UP9jW(j*jYjrNh#5uWHvPl|ya^@0+O|18sF~?JgnTZ;|h}$@em9cR97YlGh1ra8HsRw#-&?`98VaPA)ni23Ir+`D+oQ9tP%uei+b?0QyltKL%*l<$Hy& z!sI{>wOI)3pNp`clHbqB?+x;M3xvH5!rld8KPOjq0%6{I3#YTxsB|A|o)q=CRl78Y zn_KOfY~UD}oAV#Y`7?6SG(VLz6@XRm%|NlyON|A*D`hY3H<+eomF_=X8>hPG_0mbd|%L9&(J+i$bpF+9~L- z=Q7D_Q4bCaH@#nzbeK`QTUymnj{Qe?{VGAl2=XGJW~k>5jkSrj@otum{c8HP0blUw z>`%ee+UcyA+4|Lo8Jq=$8ZQZF5?6>*q}-V*?VW?An=?atJ2Pcp=MWjscdDc7f{k2C z1%(<&%jww6YG5SGi&4}2RWm9a&@aKOXKULDdwnYym=ecG6 z%z0i}>CAbtva*@?i<2px&IdYR>8+G@^%FBE#gjNGUVh%P>)H)qwZv~S|H)m=%cO@}1>c2x?h zquM%YK<8qaZMvw@Rh`|62>{qW#iqM4>eEA`_S8hZ)Y)5|ebm`kjcPS&G@u`b{JF%` zn*M4GP``m{?5oBgjW;-Mh9qUW*-xu9RDFi2ZMaro|F{_uHzSi2WE2HAoz(XUtz zHwPxoL1wfXV>IsAVmaQ7i<|KYGa-q9$E2hjZ6+%YrzFhOxH&jsrX^*GnM|9S>5A4F z2{W_U9HJ;+X-ebfP<6~wqfYY~sJ7W^%u!=*(i~x0oB+1Z+l{49o&806pq<`?_bMDS3{Q1K_HIS% z^Z=LxmkOIA*qY8oCBf>oghtP52j@j-=8!fG-5%C9G)`HyYTWuwTyW^g1_CH-M`!D! zy-U_n{j$v*UN)?==LMX9#8rp;!S#p=Rp!+|_v{2|p#$82xK#~n*REd6NW-y>k=nd8 zdl-X&qc1&%cUVSxxeD|+4&9Y=JIq{s_c7v`;m9d^q;Ro{>!%?%^v0C zp8HWWYXA(WM`VW^Tde9eKn(XcUN&Z1sbC(A8 zTrB&#CI3t;ymHCDhbaItxW3VLEO3`m@F4AL+~Rzrn;TB^_WJ%M=j1PP>63r2Q({RY zHO_e4lThgr#+fPU!6!IatqSgAh^g|V>+7f6;UhR1!)z6P z)8pHMmwI(U7$P?7>%+5NPA;>vE4PYsv;Da5VL%GNwh3~bt&bwBBAIbknHBfJIhDwZ z06H3%q-9;&_L)++R(kFk&7DbL-(WZhW`Qw0K7YbARF#g*8yQnWu_EUiT#IE1jCI|^ z7#)g{-6ePXoRMwu}hUZj^47+kE6* zfcJg5-RJZRp1O>-BrsdgW`npv!E!O(RI`2in6ge|^VZJ3Mlj%G6#3#r+} zmpkMKzB$gU_02lD(3cOjaQDgmzFDtTdCzR{%|>&)k9f+*zS(4$7WZ&hp8U)==bHmgp_Z-CvO)(@1%NF z?R#t7+~%9D=KH?6U5z^o?p4@(OtGJl>gMuJ-=ytr_CtMhpS-UZieO`p*$#=D`@iOOwAp61`=&{a z9cnzF#)IZZakJAm51EI3PGBzd&7d{~!O*SW4?zWjk4Pe}M?OA+wYI9yX?5^w zLqxy5ZKVQqqj#aHZpVtWkz1G9sLx`~LuPZ~%3uXYz}jzi587fS)0#!YG%ErcZVe*6 zm$fs%mxdYy${QNTqRZ%5I7=Fr*p8`E=SSGZOwlSk#X`Y(lStN$TB52OeTtqbrV;w4K@?09mdi5%kw>S?_i$(T9bDN zD#lG};oQA-4JSfW-t1X(CNS7VRuSR2Mq|Y$j+s_RXfb*}^z9i%N;CJdtYr1BH-bIn za^V`%%~ZIeW@D!fV|Ty7C2u4!5oWQ$NB~q2JP4s>}9xhLti2+kklJsHu zn~B7ND1ibkt1|=Cu~A^s9+cmVK_3m}p`#O97{D3^3K|#4UegU1uAIGkE}Dr}QvNOl zc)-$&z`^5bmE!fOMWd17&1Rn0y`n&LX;+>GQ@>=EJ&s_@y(pN|!WwqV1HzQFrhf4F zNQcgotji4K^s)RBW`e<0%TT~Q82x9WlH&go zpGAv?MxDOvQ$uF)lGWk1p}>$IhS*V=4T(Nk9t;)Qb#;*rJqA>5S?UlqSh*xGTn3#u+^>3J#L!bQ>C(v{0bPfS%XjIeG&q zwx{YJ`A|n-<`HO40@z#kPSHT#3OP#?0jGs1)KaB|>CIVzqo2$Y!%jVV*fI_M4OwG= zbmgS`d`=)Mq&*Vp7ji^@kv*cn822R+_qT9=JL0|+_je-h%Wz*FabJP^%82_aptAA8 z6y1B-FMBQWyB@oPA|%mm7iN38Ig;)ceAtO$ite`TmkpQwvgfj2Hb3^u_RD_Rf${Cb zkNqAw=w$}d1K324v>X}8H6t{qBIP^9 zaKoZzz%S8Aj;paB2P4Z`e7B_`z056+O0uu!@~Pc!*+)Oyr2V|mLUeu03^iCQ*$+guJl^*i>L2MPW0B~o}ZMdk(NopWX=OPQ+NO;zrpD)&*9 zZ9sY?4e8vlDs>>#Rnp_LO?vTZ!Hp>u>!QRMg3k)048Uw+4E^Eo5U zA7Nej0%nUZ=}Lb>Mn-Sap9IMPdaJ{+MmcbbxC7>@x!*P!u}engQr+K3#|cT8PKCle zeA-gUQKZqk_o7;=c>uTC2WGHqM=0Y-!o;N96iFMSIDIA!N43Zl;j>7Qnn7_06)Y?2 z4$3$~JS(DFq;XiQD6I8NU2QW6q)egS4=vds@j+#o#7sHDEfvzvw1(TD4Z1nnBCXv{ zMj6!iz-Kf8KBFT|M;Nv{k&5G>u$g(~ZyJWs1UJw;s+{ErA}W00+2nw<2Cer!M2)b)c_`ZZHiiV>-)9bOHBxM*x? zVQSDoQY+m|e;Hr~$`G@!3^#+Q?O>T@hHz86pDpGKVKIkOhxI;3^Ni+9xxzk-g1?k5`1lZcI%#TwM^$-C z6osXV!m(#L6z9tf8rmv7pgbU9jwILlbdn>b${Ynm)QJH}yW$c^PKj<*0CB=JUBZOW zcgV!)H4n-p=Od}A+giMzXa$G`=^^pHk>1vLJ0j42bmAyhf z9DIg^usty!}y&-=sEzzb3yBhn6u(A zYR@pLPR2#MvxI3ipP)2%V|z#54U#y@8B`20UR2}3QZ>CvX3*D=nbmo>MNJGpU5R## z<8@@(OIJ?nU}}Ea%qG@u`W^1TFAVaVWTq~uZM^W~z&UnElN`F$s79q0y5!z!T6HW- z0AAOuL5{kbu|Rdj8UkevFiT_0F9U$An!aY1@`H4ia$`r83%=UcuWpyr&8T&$Y5x&k ztzx17h*+)Ge0Gz}844TOZW*RY+Z3^BaEHd*#4EifnR~NztMuB$o8+)va`-lxHzHA~ z1kj>MjyQ|8=~r)8#_|&~vD<{Pf(efd5@u-PJIwQ95LgCNWpuqx<^i;EJqShqh~a4` zIz}F1IC@ytaJYODdPvSNPs_K=GjfG_R&F;h$o=L;dEUGvADY+XQ@H!SG;hkk&0D6( zylqO&JEqe7+;leYncn7oGsJvg#+hH3Y1n6(U%^%Lu{p+kVpf@7o0H9NxOMr23zpBI zo}Z_Oz0FXMQvM-SoW+_pDh)M%n;fNF=7B3{HXXTXvmWZH1d^c+C5<#)1Unu-g8|Fi zZ2r!$@DKXpzof7EH~sJ{INV^wcXUPap1dE>GU^yCm!PApcX3E~ryM=6V!;D)%nn)j zD1M7lev31H9j)Jzc@_26Zz+4C9day@**+bhpC(zBO4g7`mc6S|zQg6TPGn~VAv_H} zp!XHKWToyZ@u3x6{Z{J+(_$=p&D{q$t9DCYK8@_&)TPmzWc6X#*Qht5{fDU=-eR1` zMS|DvmR@+Rb?J?r0*i)1s_SazZIkuoU1jrjSx?A@-O@on8nZmGq+;q9pN*Q$E;)X? zYzoqrZPv7Gs!!M{C$c&|X?nl%GWKRC_antA+vU`LWqr5HX-q+z-Re61csphKyt1+# za(Z2A$>R?7+UO9iW8}@EDT~@rJiDUS(anzGYDtgbXL)p_mtwm9hR0KJr)jfR%axw4 zj>s^^nve*zTPt z-pgR!z+Uwf2<;RW)cOs!5xaoiV1LGtP`~CYWi?By+fPu$k}7L`BdcW`%R8S?A0`MNpmD?94Uaatq-QVxY1vof@e8-#Sre9yN@wY8#pzH0 zEpkql(Bc1QczZ^Y5`$eh^;4*gX z=4rHTgZ`QAlVu`iWeY+(*DB{Qomc0i6h4o%jKuG0E%f9oGrZc}Ia>ST&W%#$z=Z7F zB7L3j!AN|w40CRigPc1k0T+_ta-p0dHcl6402Do~w|?}1X++GPFfnv64tA)Fab{F9 zqKI#0ksVRb&KgE2Mtby9o0dyY9R3H4e!=*1Q8>ye*LX0_RqD8;16^gzj&zl=V5qa- zV65vJ8S6$Axd){70^v}{M!=4A*_%Ckf}s1Bvm7Y?WeYA=S)}8S_7FP&RY+IP6NO(N z`wa%5bM%-EvW+`CAV6fNoCl@Gc?d054>JHgCKH{EKpdIyNn-M*vr`M?~)=wLOPDLA}D$`5X%Fe&wlK;1~M1@y7HaMMJ*k@cv z2Dz^6?|NujVROgH%&)^@^rF-1J}9Zxv~zg|UZ7tEc5k(eM^Z>$BPF z1y1o2ffKz%U_&pF%DBLU?n%31PM+XIM*u4>uzDvnPC~lG*+uTP3Xe3u;l}#Kt9ayP zz_`^bSFats)ZSTC^$Fx-Hw`Ehny1@iZ~%0iHN-|Q3!`WD#H_xc`jdJ9zOCuRLCJJ&qceLroM{p}6+=Vt zb>VWPU8bi`W-5NN>fpQ1W)9Y0S0d!nPlm%cyMLPzN%XQkUySyH7m^tI(u8(y>+^Dw zBjQ)o`&BhwLpMu8UQgbb z`LmYjFBlUfEY-9&X7=n^Q+OVH!k)FQA)eJGPS0GXv6e{961X)hwLG(g!P!?BJI7S)>>#;D(Av34U zm|X};1(uvpzgeXh}<&crKM^PGu1tO(E#bKsP=Raw}jCA&NolLpQOoG(UTvKB2-cY%MHmxmndz6LqDVOttP)1 zg`?V{R8o|}!En|WC{E$H6iMH6nuTBw7|%vapZxL^h-V97L=waxNpMktVLZekYJWILO6_6Ajy*fBr5 zFwAC?B%5^Hssi9sk%RUNUD5g!XurHz>GsPDDcpW}(Lkp5ZTxxOc6>`#!Emoo_%BMqBv1tt&CN*T70}3;S0HMWol7W^5$LmXBkhy0$V`~P$lP?Q{Bzh-T{s=8dl zz>}rkD;-UHPadajHlXIk0}FK7?4(wNvoxLaxMdB>`5s7dHuv;g%g6#e*mJ@f>!arQ zeBX36-6(MLEB4g3&o}#+?s3z@H$6=+-}F|IvOcEo*VAfQk}1f*xT*F{jbX!jfvNS; z6ZUO3h?#J-I$kQ@$?_WN%VlzTmKVw=uaGOVyihlJm3%kL3oVmef^)7C0gqnEYvkH& zKk~dzuFv*k@64m7*?xn4xk+x$_CsUlE%Lo=zx}L4Wwsxc;3?E>KWcHi+>uq}K?OFo zA(3ZVq`w*9n}LR6|3L1{N=^w;#GK_t0q>T3vb-oC8k)1q0{ZTkZP|X{5AM_~zd-{F zXo1Y_g_)8LGL#4|RW%;W21M!M7gZyrY;{kfoNzHd;ltGRgs;4QzS++pJ2%V>M+ZbM z4W|}P1;{&pX~Q^|o4)XZgIOv!VuAGlqe*V8yh)oCYHpnDDYgI!H_U zYTRog?&EN;jkwq0ULSF9z`ZfzJ|6d`i2DTGCq~>S;XXOyJ_Yxw5%+1hH%Hv3<31ze zJ`?v@5%<}+&xyFtMSm%46L8xVoMxnWn%7@?F>wPH&9R)HO^^~Z5uc2_&wsuZ$v~Jv z>X|%isLJ42lwe*2tV1}yRbEk5{h8Rpn}cv`6kDyM$$1qe4~V}*S}5yP(Jt}e)GQ5- zTNP@+k$NOz9P?oVK1w>8qq!?nHI=MyLg)vFw>G^~&|ynTLvNW4y-CUfc2@-+a4IhY zcmu$f16&`#VU-jDJ~S-0YKx@UXiJ3$B@G#kr8(uU$SwErfZil!<^)*sPUL#xBmlGG z3c*M9CI;XW5%8!jje>8I*0}{g3+QJ9{T!g53rrSn%@!Qqfpo#!WJ3nw;R~M`gkJ{e z%K?1_ps%FhsuGb!V6z2JM!>hr2G47sxdp!w=r;lVW}x2!OqP<(7M!c_bipgLAye=U zxfs72(DwlPUO?YR!S4q!tI}o*4ufGDJjzG2G2St^;12=)VW2+(^hbfo+P2w(qgXc$ zxl=Y|3Ld^#n!)(ThLXc|01ai-8$P~O+PQe}Cii0z>%!$DkQUp_89KdWOnk{%m1bpvo z@VwoVQ*fsY=;c7K0J`2VvBwA@U&g4S3@3G|;RktEs8 zi#-Q+>i5Xaa9#K7Gze*>vs{>gKFf@op~6ljDl6gvpI{t5!IsWYIJWkeuFeSQ?~H`^ zY!naJ9RTm)D4FDph4*kAMPtVk7BFu-g~KRazyY~6ADCP7X=FN`OlOekOhB@43IXSj zr|?CmA@7?FnMx1JZL(tly$qx_fYjwQnGVj)TYCRRs&&8sObo^@BWy9uopsH zs*|)2>`ncYwHB6P%R^Y{5xJro#`c({L)Aa}JIk83GeeEx15rwiWA)M&hO)TB5C>CP zC+Ek~&3OeL!dKzPdJRUj*JU)!WfNg8I~eA&xz3w#!@dDmfX2LheiAo I?^Bq)`oTi4IEAI9r_g>`Q$3lK6 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

3g5C6zUgocPPiUDPl+MyYL+y=j_p?rmDjWZ4s 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�s7){MGM9dp$BFtFQTX9p0WIX~;h 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Îmfwx^q|0AD0(ggVri}()X#@z7pBXf2v>QW65 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 z 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�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

    9Meaq<&MhC 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

    RGeUYn?||EUKu&V2v0%Y+O_su_s!r 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®>Rct2RfjWGp-(;qKLMw6{K51^w`O`YV*0{! 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 z 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²(3I4mR!~ti(^k>-f<8$g4NE1}zvO;ptuEn;nR(dxCr(Lk!KJS%R(&8R;* zF)0SkQ3|M}#;izL_0fN9E-Wk56>jh3%8|SeOou)>oIl#(-p#hIcvLI&vR zY1B6=+z+C_K$-Z~1ZjXl;o=RAy6LNBP-+<3MaCYjzk~+it2{U zVBSSMvu?t&dbY}m)2X>1Zz+3lxK>`AcpdGFNGe0`iR~*us4Mrb)_$%8Q<$z7=$TSlB}1U4bq$q za&d~hB7Na?wi`O8#A#*6dP`=;t5D_Dfc18;L0?OmFjw6b=Bj&vF`*yrq~UZUQ0-3G zjJ^$8jKC7lSYJ1HD>}@V_hSyz+-|zL69M98lVC4BUEb@vg84K-AV7{JZc?CxgS6Xbr zm}p9tRF*86%;_7H{4GlU4kiCUUFb)Yi;Ym1e#mC0$Ckc_TE{p04-|e73QLGu3#Q3n zBR!I4XT%naX19sVUD<5Wgd73pRnZhBH-j3K6qJkI_(+=FHn#LVlo{7-k%7Y7pzyXR zyd8>!U?5=3>%S*{8QM+is2x^Ud%TbC!Mk6i0J*Y6Hm;F5&_&Y?_SE@5!6yJ+1XHKD z2%Bk59V7jc*IRKkG*!TEw9JLOBTdykItP=SiG4G{K(|-&R&<_(8QlfwW1w8%?7fx42F)Kq{LCDu?oC@JXxR<0~)-sl5;KK;bW(4?{+`a4dcG2%2loJHf~n>khraF|ah-h+t{95xwn) z^G*P9|6u1`cHU#>eRe)@=tHIiyy}2F1P1JP{2=up@Ub7;7y_L*@J~O~BFG{>;WRHf z^eKPF@4xs9en0cm=b$aYfpzZB>8k*ouLHmk-?9U%+%4#Pj{AWfSmka-F#Owseh$F* z3&+9mZwCDofCKB@{plTt{=>~f-y3mf`_r!u{l;H@=PZA4!h`4?E?m%z11E!>MnZ7V z;GmC#kcMi(PAhgY*l8pzj)T*RoeUYI*AZkVgPj%xQzcT^NoA)wJ1rd1GC(Uunx9S(tpXxlv_@u;!A=`T zv~@%#d)oo-qCGdQ12lb4A2n|+(ZpIJc4|FpM19qz`n2yY3!DL6q~_y3=rcL>4(2*}FUthI>Es=d^8p`?r;ay zdaa5%k%k*2Z%`>wcb}+J_WuqIs#$`LLep_nlMYXViWJfCMNX@eO>ni1jIX?MG(e_m z@FMsp=truZagzfmCPLUcEDbG^G}7!pK?76S>$TvBDOhn<+cL8X>P<9HU;Cgrl4f+I zhTXLNzazA&7JyZ;a@;RVS-G_~agbnW!?QU&;hA0qt<<=F#TzgP+aFd$&_7iuR`Ln; zS7bc8sRyct5lo__aibRL5^7I^F6ul5JEelVWBumDX^)nZy{S@69g|hZMM?v5{8Kg# zniN;9SR0f5&;~`d&1AQ{hF=)Ui#@ucQ>3TujWw!?jluC4x3yoHxeRvvY0+MQjQx|h3 zzST(Ez}%H|)Bgpcqa$Dws~3O^zGWCL>m&LGVU?}F!$$0m76aJE-k>1eCkSWz zJU~^9;1Rh|jAZkA*tN3~^ey3$I|w0$^BXXgBt~(ew~Nv2j0w`6bXO2ci|>O2bA50M zf&|92Ank=C#$jB=c+4O%f%XUKAvn-|hY9sCJrblx#iSr~`92*F-WV?U2?LX1Hsu}BmLMF~T{6bgXJRu<#&zEKY=)+3#Y`o!<}G>0cU z|5b`I@-5c(nPJO%L{agwvg)dpl_g`~!tew%g#Q&=GxbbLcpEIRmonRsUtV1c^FP7b z(lucWg!8OYyMIKxA~0?-Bg?dU5cZ6spmcehHje2SV4*E zUz5Q?p|4J$)?1Kyc((7#?FdiKRL45V2>_8kFM z$&s`iMC}m2cI)={1r)gbAtoL-%?4#PIUBUzW|0~c1SW%AJO#B(1!cbwC0rIRVHfiA zd&w#=J3@L14_GPL+*6h&bKFBtvN|y4d4mICTEg+u5dY+j>i@OP)$F%*_3f#Vk zwIDqpW5NB~dOu}=>3CXp2vYh0L3R$m`?QU;Q)-ceFlvBiQwl6nw85KMN4%L0q++xj zOiHwbDrqU6xt5{*I9Y253~+M9XtXF*2bA=$608{MzrG` zlyptFq}XWlGg`8tNqj=KJTT-djnnr>*qBic}+-S?Wa!hc`rxa8|fyM*SG?( zfRu%JJDu6?uOJ8|SeVhBn+BQjU0E&Z&rh@HP%b`nf#?JRP_^9+p)BY%=&EBGA9Z7q zQ2N|(pH6EY=$d=04 zLg8$_CuobT84oJ*mlf3a(4QF_?xYo*S#sqwj`9t3c1kHlj>5cTj@EnFgo@V`&XneW zO}Zy)Yr(Z8M`}xRu7@@wl+sP|KVv9+?Fqvn&0*{dY;i#5jcX}%;H=Xv?Hy?!re+yu z0b+oh5&OLMaTMmOYG0q2_L;JMed@OlAFh`ip3HFGSJ%SLGGj&pBQE4RlzLDwZ+sYk zmu|-HbsLEOcL3|4SGfEQ1QlQuuJluJw=bl9G#?keHMrQXr>DW_^gQ;E7jVmbk?y9K zKs5Lp9)MrRL+=|f)$$g7h8NoJ@G|>5eI$JJiAbkUMK}7FIGVl`!{{sA@t|~$z7fml zM?7Tx1U>J+h>ZmO4RjEyTuEFje9$^(LMM|2A$eE4CH&Z7Zw~K%Q#97=2%z_X{n4=Wa62$ z16tORGDT;oqBmN5D@IGLc+@6$u;se7N;WEqC0KX^ z*hw?eEi7Ld!I*d_jgpd5GJ;X!PU@Q;a*>3y48%Xky+PIua#EZhUY4EWoba;rR4f`* zuabk%^dYcbF%;GWh6AX1up}@NkEHoDNQ_4F$G{B7SUi>%z?#4~ssJ&8=yu7vz=xTu zHNY2O6H|KH25rL`;~qAj!XkwIAW)%=Ch<_<1F(fk2pqtokUqp=@elU&ykWs{G%MHw z${8Y~P02eg=e~mXR6OOVm)#W1$o673b;rwYPt44Gu>j0(i)b!XgwBI06_cqX8r}4xdV<_4nHfIOdwt5D0;u$~2pR&fpHIVe%Ogfb0@J`9O` zbO1}T5&z)mH;Q|zf<6RCbN5uxL~u-`E9yD_22^q*1;tJ1%FQqya|^n1D`xC%0RQc% z6qK(-m5z>+9aj}(-kFRtWDuv2Gpo|oV%caAhO9!ZM%og{d()&>gmMTN+-ovx(}7^N2L#=(nnC~qp0*TRQfn7#Sxw9eTxIaK;QDt!T!zKBX+LZvTb?t@mWE3EJkHaj? zg#qQT$>HhQthM$StiTzO%B38U_&d=1>yX2F6Hmf#0g=7~ZkT@n6McZ!;Sa$V@iD3c zjk{j2Az#B9%Di6VFvGI99;gwVrP{z#&O~r_q+&IxK0~j+K(D_ zufId3Af4(;=i*l&W+aNj@pjHuDN&1>S&;&68*`yr0Y22t5x^0y|E9@M^3MESQ87l&Fvu)%w?IInP0$Ri1Kn84~w4rRHE$pCVqEZmTb)~cL%fmbz)3j_G z^lZp#^%yUK5h+!%9^-Nxh*j0R<6(@KHZaCUN0f zAr^co5@sBIh%a?<#WC=?o#WI4?2A4($K<*ji z(AWT4R^X@hG|r*%e()Dg4B%=!iDM=+c?NBKWj}|eurrmNLUyKc#_0k0jtPK51W_=X zMZwzBZ2mCEI;j8S5TwFSjG*BVA+!xpGuR(TbYV z5{A!MBn5>MoG>sZoL{=Cyts54n9NJ?{855;*m}<*35r1WB)n8rmPBQAs#jK4N_KaC z{Bc$nK^Bae-z^>t5U<1HVA{5|BABYNlCMVcWxGKpA!SxOt3DM!QS3d9xvz2P_#h}~ zEKLaV44oXL^)%Swr`=Pzb*I9F8@1uqsZr&()9UJ#DMnCBc5%PT6%!GD3N1RL{(LDJla%HJ=N= zA5Qmx6EnPu1qlfmQJ|-lRkh`d*HR|1X$RmmW^nBY-dRW-GKQlr2xmowyCR$&70y8# ztPzS!!*10V%{dA# z3$zS?%m?)9^K#P-n1u_gi5RB&SxRj^%cg`P3KO$UKb{?wmiMM0+v7O~WMuwjAsG;V zC1EBHHI4v*cqD{s^6|tm3SS1H9jcq)aEA{BeAEJQbLaGXDY=L(YjYSh=Sce%xp^!~ z8jo5gAkPrAS(TEDU5z&$J`V)j>g>S;*{1=@({Y^RQ^l}wBbY6m8{uSIsz+WABo{uO zBy5_4&%?v8VeWl~O?oVBQfEehqrj5P3NG;1QvNEisF#R&0Ly%|WC7;QLe!q;wFVSJ zWo-7m6ly*k6*PvLnrvTNfEutFAqHAH-kLqoeuNtU&iZXq@jrZNP*LBmba-3;MOVuE zBBEO1Fls-#6N(fa{6Z08nstEeodu&X0U5QNn&P1*75Ka*o@`nJm3M@sQV(GBL3nb> z!^9qk2b5XB_~UyE0L2IWCeWzL8k>?b{TE#UH71Z30m(5NH-WZ0rF=wqaj-EHBxJ>XNl-11 zlhu2MG_A|+=Ct943)~KFJ1+;iDX^p4JY_zi{o;~`3a5@-=;yk*TM&ogAJf7F4 z;E8G)9+zg}iD&_yb{6AdWf`7Fs^lX_KH6*0sK`Nb3=Wb5yJT!Af^K*IYlj5!yTI`J|)e`Dtrc3x!% zQU-MbobGi3T=I3|4R#=BP$$3}UnjsSUnd|jP$wW~P$%B?J%sZl``+^nM-$oiK06<< z^C3GQvGZ|&^)ayTQ@{9^_>7&;+4;gRzU1JS9Q;xRzp{sZ^vmwEK3wvxz0dOu`-TE1 z&Uvib9`^OY&z*6rGwdO6o%rq>e}Ayf9@eV=2cNed+1-A~^E{|OaeZHNyVkSs8+IV6 zP$wX%P$wX%P$zzH#E;MrCZ1vECs+K;zrVQR-~9U@&iV&Cg46!$7r%+$+4+N=gK!M) zupv0fdo~>TAGGnHGjP6O=QDO7DN$$m*fITvW!UUE?6~as*$J@Ih@BuijoC@^Ltkfz zou=$0v(t>76n0YCY0gdyc3S$4G&Bm%@9g{$Fj^Vu@ENVym%&aOZb4hWk;$#fEnlzQgpvBcfT)p zzpv4c9l)S3!=Nw2ps&%N9RQ*)1EMbjqOWljJ4drKfSrNt46=v4sD{XX=soQjraj!9 z!R!oSXDBK6;_3|C;_8ffeq%l-na@e)tHHyiuFhC!KlF|2uwxVjFov=yZ=krcJ|D)r$)u(X^3y6J%XnR3;J?PM)4Oyise-`wR1|V(F-#x zpRc@r6*rk%-bndJv9JTrxO|x+skox3rUsWquY--f2;EKB3xoJ_Jj#}5xe7>Iuo9F2 zup#s`s5;%+Dn&Yo7m(2e1vCNhC@29)%b5X_Wjj<(MUEQcbvp5CsYgnSI#sHrRI_ps zx-7xCqN)a6RsuO`Ub!CB3sEtEFkor)%&XVQnwt+*IG94o6)Rcl01K!FYZFRJ__JSro-2pHX_3T# zQ5X)Zxg>(`Sky8<4mm|YgeluPYjonzYL* z;*p{U)VLMhKy(Z=oyFBFYid_6XY|6$Q!UU&E3o2LVB0ERg>`3DsiPRTDZiX`C-S43 z+@zf4MYRj$YL?h3UtuRa8Q|!|t8@XrYs4m3eq*GqEniXL5I+GFFWGUt$ff)Z>t#Q8B7zIJ*ziY2{1+KEZ}m(DR2hhI#q�^Si!)Y(T~D)Kq#)gnO% zbdjQKm0@qpQAX4ZP)ApJB9@XzxbWeyS6)+4xp;E*q@qa>_==ws-k}P(Ch<3HU-)*2 zlMd$jp%bVQ8bBJjUvTz@zN)-&&x_uH8)Qi)Sq4RC$PUs^^mCAYVdvlM{D*!GiWHH` zl8q3zoguQ>$q9-nNDN= z7>Iw02^^fr&QLKx%f?2(=#5wj)r+OoLE{wTRA?3LmdU=;a2pN;#UwEq;+tIE2GnGn zj+)pxk)8E$P}if5aR&cB7KG{E;f`@;&^U{mbT&I1**S-ubJ^L%&SrMbV`mGu`h2A4 z;?8DgBRl7?b1plZ*xAg^dF*U4PIrt89OJ^EaglLx(71#nFJ<3laL|Uw9b+q^Q8ofk zurtarw(;))cAgB1hq#HC2aPKLRO3o^t}?E6jO{_=8g9`JcCKaTI(DvS=LU9ma#L?a zDz0(|JJ+&v9Xr>va|1g&;fM#sgF&&9hi?!AeHG7%)$FX|xDy4IOeaMNU!`dZ)9^&P zvZAP39V)|*xuD)ep`BdExG8AdY}|tBXx!=;w*`&cjXQ#3jaVBL#|un{I~fS43JhKS z_ut5r=C+|R8rN;I_Z(3Lez|#WPQoxuJrRiIOZ>xc% zi&m__`>Z_iMoX)yTdrPYcstg5Afi{`phKlkiEWp{r>GJ)nM9w^fVk1{t}49E^y($u zT~F}-C>Z^R@nZZYtAY|El9uNd42>`_0CzGlsF{PfQR2<$yp z5#MrAe+_SZzTztEKMfXFzf0Z;sNRTZf)h>=*tMYlrmzYlqx~bRaM)+nD5EM$mrME$ zxJ%^5n6QUDt^gP|OaMu`y`|enf~SuJPag@eK8R0T1c3Cvq)jtwVozIJQ(MXhsiNxY zqP46#LwM>oq8G!U0(ne}jglh5zM@4ni5t!uDsgaFUcN@H9!2oAvc}~zhenvAhdF$3 z7Kww28Z-uL;tv2;qV?4W@fm8SMeb)4i_k}?GOetw=24ZJOslF(CsZ+q2rogsqNHBU z3d91#_EcZ71f?i>&jjDlhniB{@-Q=-L?-a)iYh)mnpvayB%zKwtWJoPZPr1ZAd6!X z9}nOXpAh6P4hi@*_?&>>R`eTw1;l4K?hk|yM#2K$@eUCFE)0ZyQDGBdD=KUw>_mlK zg#A%rsmLoT9K`p=QQ;(nn?!{}2se!iC*u_YhZ61wA91+-qPb`hZvWlXQnZW;_e3}? zD%=I(R#D+x$dIH*%18gxMC(Wx{ZE5R!sz~|K|Nt4Y~p*{sIZN2W>nZkxLs5@fN=Y$ za1h}RQQ?m0Pp3#2uli8AiBnz|xLN4!9E=ga#CHatugDIC9&lK~0o<-i8kb+wEq0`a zLr3y+K&(geqhO>==r3iKuBPAuXbuj5biAEs3L64Ij;sf2_y2r7N>^%BJxLAJ(**T| zWIZ{5r5=BLf7n!0qW-i%JuPKD-E=*y0v3Y_KIp^2%~RGI)t!t6s)6|w3_cG}_rKDe zM)BRrYM`F3=nfA|XGmuKh2aUt*VCtgditWCezG2L{>o`^ELcI9B{u7@V9V(SjhBt% zYZ~4_O?eQM7$Ixw_19`jimz#612s)TO_OC!x#5}=tJRV8snZ_K)D<-w<}^^#T-0=| ztf{xI=}#?IC8-`&PiX`7EXF96$$I*Pd-SJ92~1?bo>4VbH&9azdQ>ZG>igGfQgYN$ zHJ#i*P3uw9DY7P>e~jpkMM`G+I>J#>lG0H%ZEBz<*cTV)L7ge?uDYiF8a1%=bc!;R zh1t$>A69bnlO&V7ELXC`iOV1_1_4KL1;l=ElT~Gi=3rW5^zsibgC!u@4xr)7W!K7G z#y^e>gzVg9QYIwis&D||d#S}%Iw_LFjLzZ4W$=3$CUOQdx(Z!nxC(z<73pjn*h+2* zF$RmhDWTsXFr8xFs^Xg?5FPKk6*VAvEW^Kqg%W?-0oAbA(p3;`!$pejfoR(vh_%7S zBt0wcpy$OdzzEkM4d)>m&TM!yh0W(V05gkWThcgOlr%^bxS<0Af@_T-v=-t^t1fD& zE~*U|#n$<_s8(E5Q)%5TaasFN)x&*OCvLQO^v3Q~5>*FKpv@b$iDFD&?$|E(QaTHr@~DI|c~n>` zQik5;v4{<+5&M}(Og4y{5#LeCG6#XXfOv|UiKlUxcn*8iOVk6haPwd+ssy5H%fwq$ z4NPhcUK=bC%JceoaOkyW88wTc4XdB*<#}#d z(#z1Y9O;!Hv_q~6u-!R36jA|hu^q}(f#EVRTn6;0;YS6fT|B3$AkVreA7PXn?N5+= z`vn8|Z%DoUhdPU2p@#T38ZLgPiQ*5)EFYwDoR8LkSEVUamBJIol!M#~{m5Xrw~@W* zl62|i^itLDVV;QL7}Q9m*OehU>C=115X~OJbu;HU^LlW-9F(a^kA|y^y~* z`Heo**yxA+dEvH18)>p5=tYT=4F+Z&0cmE11V1N7Hv7?TfH%+y1Zy)TGBMfPPGJ&@ z{q2?C&Mk&5T$$R5q;{iH0|7;nha67dQKkn%3Kt*pN9PDc=V-(^I;kANs2q)>b0kIQ zXu>%zGDZ%lx6(jmZkQGR-hfp(5i{v{Y6{b9+^#V_3pztCK7LQ&SQCIp3EibQs-*&l zE{^L;F=B^dF+t|eI1@Zzv%ByHuVeH8rn8LCAKcigZ=vd8+iY)VEXQH%EQq{XD!Hr0lS_8s^9^ zdNs(CR)|*v&S}F{aRXFw`Wzs?u%ZJrQTq8X!flj+#TT6bHdJb0OOS2mGlmgrqymZ2 z?)NAWuQ$5Ha$Vw7&d3uOuwvZ^STxelhMaK-mi`{H@R({f+*GyxLsk24REXCfJ>eQ_ z{PtrV4TZ$cFfQ4b3oRJQd3$IChs>Ce6%(>$XrxZ*#C&sOLRjq4g#t_*^m1bJjQQ%1 z4F+O^jbif#W4|_z4JO3~n}qZ3q5M0;+l1T*eHIQHc;wR~0{JD0`p=XwX~KFA3^Pgo zSn9`CKaTowRg#d74e98Rt3HSP`Zu7{HPYdr{%x#(lk{&Bq)Q&f=sdJAW`AhInBNEU zA--f9=xauEd?_$Mno8?^E$9qi8agqxfljEB57`M_`C&Vu(;c=GNS8di!A`(Ti7ykK zfGJ2{dvu~BI?)N8=!{Mj3XjUQP~S0n`G&L(g?7m6fYJI`J|!8gbBhb5;qp(jo6TWug)c?jjzsqVMmv1V-uf7 z2G^CrnzZ1eMjy=We02C4^HAdm*z3uocD_-RVxd#QlT7m~T4z zHx2!piT=$-|DYttcdV@K$oq#HkFbA>QDYhUw;26fivCrgw&m#G3e{(GWGYJ zLPLG0!kYDIROmY$6Z;HW;yaU8_|ArEgpHWo=g?-~Cc4D8nXdDlhdbK&bhqz9y5DyZ z?ekqC0jDQEG#jaN{P)>8*V7l=bJn#11T9<1nl=DV>9^Pq0Lp+Z13?vVIAAKj%YL0G zq*D3Smyk?`?OXLfN!RYe7DdJTy*a6-9``kZl`B_chDQYyXZaN-Si2xYJBC}OW*nK2e6^N zTF=sFvF>qc60Bdv@CCW~W0y*2G5ZVHU$AuXCfOf{qsGavaK_6|i-AgpCw?zDEY8Qq1-(xbU`<>P?_JrU6^xpbCt@dvTy)gPK1P|o$7wM1y3F=HNh^I% z(Z#-}X_xO=dfxXOeeQc+1br`xX16EF^R1QsDR;C75#T9y~ zrpa%`%hXJEBVT1M{yJq@nfi(=EEgV^ReyAK)rDMH;j%7K|yxyFAntdBOK_@se|te8t(g&=KH>;6MWy$RlaZO0pIsn znm^Fbz8^8bKa2LhUqrU=-=eqgS257{n;7ByU5xYnAqq_)=9q>kGJRr^X^SPMBPvZ7 z0}bu+dZ3vY$#f6iXw>c2&BjWXN{kqD&OkgUhkB?G!8AEs7gYq~P^mcz_f$0x5W(7Q z!dVzC^3^7sMIzC;9OLB)ahhYJGfDh8FD6$2Y37G>MWevDbIVXjkQ3%qz)YnkW=qO6 z(UwO}16qAcPUmTN5LZ~Drn*>p5Og;&t#jzO~NM(_XhlNr< zK&d~VG=SQf1F4TWh(?)%X{I@Z%FUs4qB)GtGl$a-Gmmzg`SgG}njSUB&;heRLP_re zMoV(#E^u!mC^b06YEB+MR_EVS?px<32RUq;jV};&hN>^lenFRZwWFCWAF$1$=HVrZ7&?0j# z*2+A(&74nfnG1w4i$rI0k(gi>ixbSn;xw~NY&4gMbIfJp60<^FV=foBnw4U&StVzQ z-cbx&?K7Qf^ecJoL?4`sG(hlEAxiZn;wZbpXij{ z)Tp-yMJH-#E8;ZaA#Z3$ib>?ni`a&F8&fzb=0wa!^Z#N_oParTBId-&G{9U>^UPD| zRP!{t!Q4PEny1r`=9wbRJWC8U&lct8x#Bo;lUQSJ7HiG(#Rl^Nah`dh*k)cNt~W2n zoR}dWt#QgQngDa)S|F-0QcL)6DV%ctTe=7?hn6l~wCP@2R*)shIIQg%(`#P?bP1fL0!#jsh4>@ z^)+w6!rw`w%^PX5c{9y6Z=quIR%{8k(+cwrT5aA*Cz-pjHQY_x&3ouBsMxsI+)GcH z_tKl@ee{KSKmA}nAZ+tN(bC)}vdxD?Z}VX>(0oLUFdr4;%*SvtIe?SNlQ@|?g_Fs% zIGH?$lgSHma?DekFBC7T$-(ns1^+Q}IFA386~nFOKYq!Mn;V1m+*pB$z*FNm{PN7G z#xGBd8gE{}^MB{Gs6E1I@g`0MZ&Q}}4)rwO#p&QZ8f3mtBh3$Jy!jDLH$Mg*_$Q{u zr?k}k7aeDQMr+J3=xp;#oU6W~Tg2m2R|h=q{@p-EVcL{Z>ypVD+Nstz3H5>O)^zeT8N96B*V~qMvoNm}m_Ui>*Q8 zWNWav%o-x@vhu`z)(ElR8Yv#O#)@aH0`YfiocO>RFTS)U$oa~QS-i(VH<8@qz6TiM z=Iaq{dH*95w)_9=2FfG;f6}at*+}DNt$YGK+`(E+TG&6aW@FMGOS#s3I@(%5`PM=j zZxvCYwTNb0(9mg>&~mGkR$7Z`omEDgta3WvT1wljWpu4oLAP3!w8yH#gk3>TSk?5L zRYR{>we*&?ioUm2i$>NO(ZM=i46;rT)2tIkg>{lR-8xxZWvv%`tqtNK>vZvib%r=# zog-eh&J}N4o5Uy9X7QbM9;PeI%;}478mOpvF`?`6jJ$jtoXP>LOw919hnPb?hqSa5 z(Z}w(T6yZd>U34{0Wal|9A~=hrIm->w-$kWnJnfJ+D476D=68zlG3cJDAT%{x>(mx z4{HbYx2~mO)^#+-x`8HJJ87nMBQ3OUq9xWXw8FZT)>yaEdh2#N3-_We)-Jl#x*IrS z4_#&LrR%JF0icD42b1oZ2Pf5G@4TosoCe>%Jg|iyzy627^f18m2*C6hHM1V4R@M{L z4vOQltf#1_^)$fr3=OrOrP0>&0MiQq(~AJpO90c~0H#*}rdI)`*8rwB0H!wqrndm5 ze*jGH0!;4#OhrcyCf((@H$nw9*Xw>fsjc32{3jj>|HN#9;&bbBfayzs35w6Huc^KD z4Ry7?!_M-1?EmT0hei>lf@i{|1=;12FvtF#QfN{Q)o?q_b>;w%9(p)Hdld z+o7v$m#(w)lV1KHoVes$XTVS=?%;xq*(3I)K!xDuc%0~MyEN{ODeYO zwTE4D(z27?j52X?9bu=^V!Jt=VW-h%yA@q*r_&{N8@j@7OFQgL+1X;<*|&9Pw;!^z z$4gA%9m@0ohbIF1ae_i64bBB5IZ-7!Oi$MxVNbhKTRWSE+c{Khccatno^+1gi!QKp z=|a0NZMFN+)pmdMv?M(HyMyq-PkAq)rzw)DQ&L!&`__~PQOTTXb(vo{zfd-nBYnQy zE}G`bA=3*n7WP?Qh+hPKwin_zK%e7T6tCVuQ`p?CY807*Q57+!S|X-Zsd zg40aRP#Jq@)(*YNhZn0xM)g*zhu)9m5TFR!5%R@+Xo@9!BRTdtlw@zBRC_bEw$H=- z+d?_^`Iv(j&;a{F%)^UljD0cY;w3c0zLe(MmjO|2rApWnSZ!ZUC)-!hnf8@*o_!TC z^wn6xJLm@cT2Y3%M*!85FpfS|qpfj(ios+BjgIAGu!ndXA)XOzJOafyYm%#?$ui$r z)GCrJ?%>aDWZy`!HZ;sXph3_82Z0C126zbc=LWb4^w&f15qQNnz)7G#H^58aWp03* z!25g%egd83e_;3zl7l;5l4DQ@$D~n?Ma7Oyr#dcecl`8-6QK8$DH`A;@jfRWfA4Dp+$7=84UfN?k=!7ZIg*rN2X|$6~B~A{V=5(iPoF4S3(~~}MAl>iu7HyqAVuaIA zOmzB-+0Id-)Hzx#cLs=+&Oouw86-}3hKh5YVR8y+i8{ejpUf8c0>)diVJ+}_BcIB> z0H4~5yg*bx(JvFlQ=Fa0+RTGmREI)2Y@u2J31DZEW z>-IA0;lRe415q32a+>B`LGzs}X_<2stf*W~r#ss*?XIEAoE<>x*V2v7b#$k*llD3{ z(LU#9p!r)R&^!rZ*zuE;zs0ZxadLmQ2(iAu4JKk_AKBVj(%%G&FZ{W!Q$b7fXQbNK zC{tXiX2!y#!krM^!CL1)PV0<4bc$k&eNnO-?~CDFjAPpwNJ%iza4*@;edt>qHFF+7 z{~n~a&OXX<9-^b2hha+TL7Iqf)11e#v<^^_^CWB6V3L=ivRmUixp5{yRB{TG;^fW2iyg zs|L|~smloupXRf*bHW1`9<>OsZkVmv$%z`QsF8xup#pv&CyF~a%+Vaoi5i_SpKnr5 zn0L2H4n%Zf`ElcBwHkIx=DM`m_0v{2K-alJy2VYRU2YTF<0eZ$Y3&aHumaQp4X9pf9dmh})B%aC=L@X>B8-od(>49-25+&II08Pm?}I5gVkB5ya`z z$LszK>Ektjru4}j;Vk9l?`JD7C)lXGyc?XOyo?UcRbIZ8do);hH>+6YIX+K$83k-n zUS9v_9|5=q0bGLtt|0)|P=IR~z%?A;%A+yv2r6_((mXexmbjy+#vM&3xnt;TcPw4x z7SPr1IJ()LKzF&5=w5d+J>X82;L=K9M6L$ca~`-Z@Fv^Dz60EW!le4wrW48*{1yrx68Gk0e6M=Gvuz+e#W6!X+Oj6YVBv>ZP$K=-Zk(a zcDBu>M((lH+?_}5-1*eaT|h^<3u%N~M3dY_G{-Hb#cl~zyQKi#V%q4I(IxH@+ToVd z?e0>#->smB-Aa1Wt)ge$<0SYzKGIYTzPmi|El_P!r#Lyt489^2>%9{pW|4|vuoNq= z1YL>thhNt4y;R4kGn<+?47M^If8_KvG_rxCu6rUtv<@IT2_QNdGi*KeaUr|mo=W3f z$ZohBXuf+oEp^YJRqmMp(^+(edp0oHMu6%Zy2{;5*SlNjR`-0m)4foF$m2r}Y7pJ% zfoO*80z+tK7(lb6FA6@hWdws~j`T_B%vIiK;2f)>(D6*Ud)Z(vMYoh2FFG#{Il#k^{6bd(2T$?Ybg0(puRp70K-CUbHaF})60pY;EfX@aRl{Brxlfbp;wb1oORe1JsDt}FR`3hd&wYu8 zyDwv}_#2hEuTZ7?8m)EzPUpI>(>3lJbd&oQ-R-_j``mZvY4;!Wvilyr>Ap`NxF67G z?uYc9`%n6h`-u?lr^0YQ7q0t-NOHf#096Q2HPY{T>RzA2uMR9~l*3OtEJ2hbU(In^ z$>G-+mh;KsX9gBQ%Hih)K44ndL(`cc;6;=4t0hZRZ!Jk1}{CMp2x1}5X znRJhzm3UNmf);ca9s&8xyc{DD{g#!3Fkbt1(+ue|;hQOa7JRd$&xUWd^f~a&kvZREC*7QAt_(s5glkk-g3ME4 z2{XU79J@h|-66*a>Kq$M+r&oEwz1JPEH;M5#>V0T-92#$?l`KAji+U?2~rMk%i6u@ z-SV*HuvT)|w1GVVmZ;_*98l#;uE~Y!$W1FiawH)Z;CR5O8Fqs{Pra3?GbgcBSY1^3$_~6Ll8w}+(3ha@M3jT z$P&JvFIEX-%z!cWrh&0pv|DT++B3E+AeX4BcRD&&nhbZ@Mh z9*fPT7h*N^uh=~LBsQNujV+|FVs-ReY>`OC7K@VD5-}uJFSd;}h#g~%VwYHxG^Dpf z?Pk}IL!heS{Iqq3oF>J-gJvi@&S=MscVKH8o1@r@chI!fM!bWj-#XBgl(xWzgWYs1 zl?f}|blGMeZD~M{D#QJu{YqVeiZAqcy{WZ&kHoZrNe;F$-f9@{a2Rh5jE9z7>}cem zwKO%hj;dqF(2Cfxv_5tmofumW1D;4%#7?3+V<*!Cu~X>D*s1jQ*lF~3>~wl3b{2gY zJDa|bog*T#b44NX0prd7oOTV=; z#HHUl8RFvY7#ZTy?N}M&!tFR2f|l-}<5iHqpP+&auwDgY2%e~dI)W#uU>w1dRnS22 z6ctP$c&ZAT2%e^bNd!+XC{9+KxK~q;HKTU82DQVrs2#3D?QlJ6ha2GiH{$y4n@|MZ zObcSSP$Nb>j=<%oC&X^2vtsC^#O|Q$_##piuU-esausr~OfkTP;TbY0%hNMuP?o1> z$)GGP&z3=1Se_$;vaCE;2B8*^I8TKo$oVQPVJ=YN7{gqs!a9d9QsFpKS{O%43h9o_Ul;#va4P=NP|>J%QrkNot5a z1?4;qFMEd0i9JgjV$ab{vFGWY*b7oYi`8tR)&X;^rGjkq)%c8^3fG`S?6Ab=BXzjUkL5xr^zouf{k;d~umBJl)Gsaa zA=Usdqv0PEt+^0Bw=OSaWUB&0#!Vk^a|cC62OMngap0F5E(hVEMTx-p#pGL-9UV~a zwZ3V`876F8CD9#?R>P*yr?o>}z^C_6>a;`<8x>eTU-Xdy$U)AiBr?Bg$hx zqUiWpY#;kYjEwy%_KE!_s$##3WwA|Sg|3O!dO#ed2c@GdaUEr_>nP{IBC1~K$Wc5; za2*Cdyxj8`gjaYjgYe3&_mu;bK7m|lBDCi%0BGGvfb9_5s+FK3#}7E|rVbhk9oThe zpN~Roq1b2ql$6up)k~vglc59heSPvBv>RN8Rm%Y{EqzDNkgi*l(QWFgJJeIp(Ez=K zcF;T19(os=q<5oQy*nML_n;H>QaVfTN!RJU=pnr~y`uM_SM`4Mrrw{v(Fcf#UMAA| zK+#n%7iIb&k=F-{UG<@2gub1arf)Ci={ty}`i|mQy+WLz=fx@dF5*mmnDm``*LV84 zzH{o<`c8+1&DJ~4{=P>4zjd6Ox6W^N^4ZvOzmZ97k=tzJQ}4)aBrVr#S`|3@I5^FC zIL!n&%|tlO6gbT^+FqYdyXloQUY|+x^u1`czBe7K&!W@yeW+RAm+sg1qnGsk>1F*O zdQCr=zR+ijfL2;z`UxY$tu~@4w702s` zh?DgO=`>4~)8GJabvgOfn{^tupy|+AWL@$<)fIG0yMiudGe$oWx?BTY9tB+<4P72X z1NCF6LO+g1=qJ!beLd}^pGXJmCnF=CLXG;Vbhv&x9j~83XXPZdSm?Uy0LcGj*V5HXQOTqfa|IN0B@}ZN6mvBcb1jwY*U`@U^)y<)k*4Z5 z(SG{PRHNTYOZD4mm3}*%4UIM(I|cN+P)hMSy+xwIRSci1$%}w*-crSE&Po1vw9?vJ zo`6!Ggi@Y@Ql5rVo`bhM4{vz^-tspT*Dum6{Uw^Czf6nuS7@dF4_d3gN~h|t(S`c! z$c1k}DUI@kXRJG=ozMrs(S6iODuvJG^Ut2(7Fr>3c@VPx5fcBHlKQ8Th_?cAKj@Xa z5`$Y2Vei2vBp#&T{by-GZ*~4S zH=RCA1no=qTp2{;58)LmESt_N3)JP&tZ|Lv@c?y-2dQ_QPfT0n4ertymugR!s>?1P z0_5_`N8+_$SdmPS9yiH}C#f`^0!dtCeKWUgq+9Qz+aAQ22Kt2RS;s%} z@L4?N#$Qa_a~yWe^EO~uLOs=+JcAa)s}fC~FN+~o^$86ehQyEiu3({QoE0O#D0qyJ zs8@L;E$%G$;N_{bJe%+0#}&Oe7kJxCfJEtdmM(kI4qC$6&n zG}}^>^C}*go2DY(f-`wciI*z$CR10`pj4kXwMar)nAKYZ1{)W6OYtO)o2qLRl_*1b zg7V}CoPaYWwj4@QvNz_t3-S+tWPkBCq!mzHPf;DXf~zPL=_)Qxyny37h)Sp6ATAa= zh>K-#%I?s!Y5GeYQ+!Y%2-<0Sdrc~}Cgd&S;KdzmgPxDy zN3X{pq<_aBqPOFZ&=S=dtcgD*u8uz~o{v8xzK=hvb&Wr#jfg+5 zHOBv{HOF7n-i*Jj{Sbde`z`*@fEj-^kd414GpC!yaSEHxgL(lCdHSYtIIg;N=2VJy z)y+Tt;kGzcRDn`!C~Y#r7x(QBU>GV+xmc8SGO{AGB}j({zz;nUA}VWlmT76 zv+m`)YYUk{kjNls%0K;n!P@VS?Xw4fm;E?fXN4Movog2x4s=_DrfQAB|= z9g;|MluMx{fXr@yunG{s;TJ`ZzvDAsO#myR56S^#mR!VFb1nvN&vO;d5OE(OQGiG? z1fRQ)y3B=3`*2nP&hhe1z}*xQ%td6u7|O-uZ#dUU{zh_f`5Vn8#rd}7#tb>k9sf7-;XBBO?;;<*PtV0aqgUgf)0^=x=&kry z^ltoX5sZH$`o_N%W8>e6+W7Zkef$S;ef&S-x%iLb%lLn_MEoahNc?AQdi)n{W&Aho zy!h|hJ@HN2D+Xy_7()BO&;mHQ4fzpw9SODl>Z0SfdxsHG0!JqYqtaY(qC1{pdEMKizE%peSGLr}Uw1Len9Q zaln5@ppHOAC{PiO?AC2vVAJ`urTF?xGNmR3J`Zf-8N9A6O1^a1+%-&u85X7 z(V_Xc6RL=~krgps>sX;Xk#!Ly+Bp|5b5Jxn$n5j;@pUn=P7m_2r%n_u3wD|}-DKty zT1B`UQ^!KeMQx~e`*Xz0oe;7gB&|CjpUfq2jC?$o%qPHWSf+cHgH28l7fUuTrBM-; zNO-|)mLSp%zn%=GEI~erC)j66D)CsS3uLk8O>aS4<=rr&3^G&86lS;CI2c>1vKvS< zrX+~y`h1eZ!P!cC;cjzT>UAM#Dg%`qFf^B}t6Ud_hCb)xQ-5ENV`kjBC0uYa2F@~? zg2p6@7?VjirjcPxC(Ed$tg#oB7<*GsV-}oe9~x@xOL=2I+QT@Q_B3YGcw-LDG8WQ) z#$u{68fl@?M9Yk2w8~gcM;a^Wcw;4B{xR#CID8V+{^-458hjkR>2v5p=z zj-jWFW9je4arByTJiTF@Kpz2;*cCG)}?Ipr?tHai-{PoQ1nj&&CCk z$KY<$^F@Vmf!Nu&MC@iok&GY^VaD$4s@d3W)H3il{+!%#c*FQ$iFcBP&oL7v~4#m?$w=OMc4^< z3(mcQ2CysZPI&fE2@g+EE**vs|2r2q&&ACe-711E5%z9aaMLL%qe4eq%9wosX9J+u zSFY24<*4Xv^>pJE6o>*WQ~--GRAe>-A=br^K#CPmRye@|PJnR&5(lvg-=q5n6o3Kd zB5=H?3XLvV*cScUMgN(0eH{)v>WqeEHjPGcs@jd+O zJ6dY|NGpv0(qYEWD8xRc^~NST1;)7~q0!}u06m@v(^H8E{gjB)uL)d;YP>H-B+@AC zaSf`nC!K)C7k7vc;bK%(*sU5UZZiqBxIE6xZG5$AVYonC`^)q7+(uc;CW1>?0#z5f z+VWWMgoAD$uGw|V+*7dr2yAIf&~!q#Po81_zsg-Z>fk7>zE#Z#x3On>T0z5Ies>#* zt-un#UfgEC*O&ypM04Ac60TZCsV1JU<}FIxRdB1sjW&t9aIF%TaMkUauf5bIul&I` zYkN=~CJuB7?<&kqT(+c@Dt+IPV6AxVAn{gEMTz?kDyg-f`22!T%Hf|xDMb=JX=S1> zd~cvUl_@Omv+!j6tWZBI@zbY0J{C}yL@jR3 zz=g<)ikOa)2J5=$HMT&&ZDzM>Evil4-r)-_jDH$d#NFWCc0;#nv!~+T&h9@tc>!Z| z9qtXxMO25GPb0X1x|I!(zfM^WC$S*HD9c4!9}061Z;nXq(_&k->_sOQ!wr^DGEq<2 z#8T>(IE4Bn8mK(cNIN8&XxGFt8l6~9lM*Xvuf$3^C~+vwOB_Z^602x=Vl^F+ID(Ez z97!i7j-m~Tb@W)`7o$_c`MvFAoo z526zO@Q>Cy%X9q`my@2@K%Mbhnz)ksC9bByiDud^ah*)i?R;R}g3bp7Mh^{CbjD!a zb>|28Y+uw&@Hsr)qLE*?pU$7u*c^|LRF5x!q8rICYRrni6@hXO-W?^AWYMcFz{(Mr zB49MDtMhX4pyI*p54(e5t(f4xKjY$xs=Qn|s0NQ*zSXdlhk}Gy49R$2E+_OynwW$? zh9wDlz>;;@oAk%R3cx<=9<=0Lt~^xG{&;~*xHTgl^QfY#^C>0^-ip+YI;&Xk7@sKc zpD6-&Rquj(y7$1P1nLG9McviD3to_+XzVkeEh6s<;lcY-xbVIdxWp^Z_b8$HFhHXJ zK_@&|(YZOaqk?K7vb^!jcQtIoDTv&q2;37{f%_u6;8JA15sy^6G*cBiBWZJS1}6RKU#jP=REwXJvD69J8}!xr!lOUqyww zHJPjk6E*JE<+&nU)arjG3rbU=Ewpu6k<&#EkjO0VR%Oj%WGV4hWz}MADf6Gnx&^7X zE(^=V-T4J6_ts_UVst6_R%Y>Hd@1{%%kl;3-K@WxB>X2fJ~oSO6zUe12NF10NH$IOkaYMsm9R#a<5i%SV2y zKqQw^foLwH0apB*pyK_AfTek3lvV&{+9hzUqI_Y!Q8FJW=9K3M4k7>2f#in7D_k68EBueIGrN zxSzgCJRrIz9uyN24~aF2hsDi_N5or+M>R9?m^L=?xHdWQgjSPyQd^vON^49!qisk$ zr@feXAs`Ze3*-|o1x61 z;@#kriT6XH#D}3#iH}1^Cq4~5ocKH}5?_W#B)$ocOMDyNJMmq3ZsPlJL*j?<+Qg6H zM-o3pMBrINBX^O~2rWU!%3`cG-Bay$D(a3#fEb^GCN1ij|k(W&) z@}`-Hd}x}HugqlRzh){b%yd*Yt?0I9r|58;2R+N|5CxD6-rb6NRSksr!sJMKv7EHDbH9rRzgF~=`K`NCBizlG$R zY!gWbkn@uY9(8O1o~zg*c&=e3yqu_1@Tg=9@Uo6ALf|S^BFMQsg@9VN2%!~6T*vZP zwCp6FJK0$zNVJ6@NRYo3B$2b85gF-9q7XbuJOp19H36zHTv-%`FN=rb3#0A_QYfx8 zE{Z3OhvJFDZ9OTEnnwk@MG~Qj#cw{Y-by5Q=efdhg>rFxsa%|bRC0pVO~)0>#VN?; zA{FF{v+7+WS1=E$HFv&bX#Z8p9t6&lc54AyNUB{qt)@ns6Y|j8lvhy{Ya!863ubFA z@GejdEjz~Xw4iW&Ex0%ZEvVi03dhre!YOFMMJi}PZOT_jo)%mrUkfghuLU#-E1Qi~ zTbcKir?Wti%grfUkrj*3xh~u4oLPj=b=jZHsFHnd|7~@Kl?GMWs38B=WZ+@~z6Q1~ zLl=|qmGGxBcuPHOWk#25#FfkYuCSFEznDfr8(Ucr6cZ`v;J*z2((;J|oS#r8RlpE&}(eFIDmT)mKp^p3fG6 zdo`B=FVtK`^>;p31n*T^F1)W!7v8V5c<4rr{%uj+9jcINY-#q(cP#?Y*kj2dRN&+R@+;ZHH(qCK;62mT8u4a{xey(AobQ|VVQVQ z9le!Vx)@zbzLi7)yG>|Kop}({cUA|QH(G3 z_vZ?bg8sIsAdx)+cgzM?Q^^u02u;EvsZPc?RffH!u-U-?yz-7pRV@iJ9+@J0^Sw7WHOFYp=2-1EbDZ{}IU&&5oD`U9P6?c9Rt8=$X9g4I-oeS{KEadC{emx; z2ZWO5L7_@>cIa$#PUtmrZn&E{FFeOw5N^i4!k?H+BZJI_ z$RTD^9cmsGJ`k8qwF6cTgHr6~ow%S}DyWTu8 z_PTkJuA3+8Bh6Fw@#bmzMDujL+B`#FVxFa6Y@VY(XP&43YF-fE!MrFw+`KqG*1RM> z)x0#mk9k>qe{)0p9P`Tfi{{lv!o0>9Z(e5{Yu;cyYTlF(<}Hcc&D#=3n14y!Z{C^s z&D>}XH}5q^oA;TO=Kbbu^8s^-`Jj2E`7lC{n!lNkCx@F)CJ#5CP9AGMlRVXYHhG@; zT=H`BugPo8za?)qUrgR@zLb2}{Co0g^X24=<}1n9&3`1{Gyj?V+M3 zh^Y+%q5I1Q4!V;bY(*{^p=dHniDZm2Nu6@ZILI9*Hc#%M_Q}~G=YU)mshPz%M*Bj*efZR49$Ez1k@X1v}Sf0@x;tA{i?h=$zmjtEkOuZxs>PVv` z*dh^-CrS=QA~@eHxjki*J5bl;j?^<*LH&|D(ct9HNN~M>ulPJnA!8|z2=iPVE=ei7 zi*`Dng14do!eaD?umvYxhP&Lbt(vE-5p|i|m4hgCBP=3uL{3Q zU??=vWMRb%rEyb1F(OaNs*^5!MDKw8Vod*t{bF4IkbRCst5Fq*Ja5ZKcKGPLniu63 z3M_Tt`fq$~fgGDwmtYoLN#1;!97|?$Pf8{yQ0L@C>Xn>CgOZbJyW}()lblZbBrB;d zIfIT!&ZN_md(lFG5MaJ$}8PKg!$XRdc|0{HPoTBQlj!E;sdPv3G`cT&Iz5v-gI-OZNgpTA7MbKZVtDdg zF)w+(SeCp%tV>=f&P-k;HY6_=wmvBsl!v;RX%7au?{IW@L{@_7fKI&i0-|U9yz}Q>{ozysyNNXu7L$`P6p+% zFy0CC8li2OFGuMKKlAgL98`x}1m)ot!T#r7!VAN(2)=pKUkfX+N$v_ven5KiL+XDft-^J6-JLCOHmC%EeCl9`14{Th4cO8@iDm-9xT-`n<n`H;tWMq*bswT74Hu$zlz={XCb6BJzmE_=|@i#EhKua0{8ZE=HkPMNegm7*(C8G0+_(0i#)QbT9D8gif^ z)c*9&R_aDB%-Sl&sP$P}sTPbMrR2jXU8YoqCmaC%vt`q&YeBf2|b-{_Ak=Jo6FM9Um zA~$-@eUaJadAwk2?=uBYa`B{pczDW}JVfP8F6OgE?&P8>fAVpqL;1MUqg>qQihRn$ zmFn|xrC0g5(yd(F=UvBop`bbCSUbY8Drk6WXIhckg>FynO5dh-ryo-zq}I-MwZ_L_ zaI5q?-?6qrUt<_ade>GdYpnDYsaQ{1ne%*UJJQt7!6G;FP`6l71N*?f1Gl+@o*mc; z4)P%qaZ{#uYv zmhP$9aEL0}K2?qERDvl>(jT3Us?`sN=XyII>`Q}Yq{7mYTI*TTx&Zef+Ido|1 zTsktv3z$cW^Ig^d!&UutoJTekRR3a8ar{zoar}3`IOc-*#X>%DF{GkB3}puog|iB9 zUMk8fE|M~dk0ov5V+i00UT!Vp6|l~gv{UM8s!Lsin)!OVHg%(v@d8)I=OH7v zhA#K5vqjPsip?z)ZER7t*$Tn9z4PUM}=X z*G{jr7Up@_=>;?s{zeC+UZRszuh1E(e@bDz^E~c!?X=#v(;tgbFwkaXC^pO%NWcbJ z&IVc0T88(if9eC8p85#+=o4C(`jk#ceFhmW@(*Rb4xYwcg~Ox_XlDK4x#GM^YBL9l z^RkLRI!OEv&QMnkjPI#u>IWK?`VY-d{X|PrztFPOuP6(Cmwda2ebePG--md7cYN44 zGyO-Wd^5)#p6Rc;C9 zK9wBQcS8N-#tU@tOM+jx6%ogZ&)KHVqUhG*5WGN%hqm+j*p~;NmQJ(LMzB__d5FiiptZYp`I}`Dm|8_ zruU@%)8lACw7s9=FTu zh}Lo93_jooOMCeznuI6tX12rFC3r_0+8lVU=06V+;lmi%;LjW|`6~xfIjkw=q*B~-m^EQ5QJiLjR`T1-zm&s-7a(2!JOW9o3ql{=!$>0NiY<$5_7UZ%F%Va=| z5rc@Cp9e7zz~>BJEq~^^zkB^K2fC7Cy8A8WKo(vRrF7vCbmtV zF7oL!#mMwoVq*GiF*ALxSd%_a+>}0Fyp_IC{3m^p_&t587D`_RuiYT7P`)d=QkE8DWqJWXTM&roIhS*l7uM@{MH>4@|T^l17edMf=g z{WZpEG-P5b%v&%?1z(^>+;Ea=~c{)y|zn<)L1@|OY+SPG5%SSi`D1jQgQyd zCUNh^FkNXRQD3ByP#w-+$$3#NH4ownDd-C*=xZqGTk4el z4n^OOP|{DR#(qXk@(Ybm|4Ij>f1`Qn-|3!=Mh|9!^h72E1zqL4Qp9zo2RH9Zt{;Wr zDJwizkxu3LNkl4Xh3_{wPIQXzG4U4eCf!CVNx6;EPe*Q}7ACiJ8_v;uep743$kRPNo zxb^*$u%bHCc%$?So@l`EXC43i!SoJe@#c&S0%|rt%2Pdj=pgDr^^`O^p1qkcpdSwh z50JA%{$Wmxiek|HQN3f-hw`0EJB1Y)fYEI)!ImfZ$;vXbE9sfxRFT=8#%D%CA*1QA z%vf5J*^`dWjHg>N6W}S6NEglG8n?hX79*T!0ExlnQ?Pr1q65pXrf4d5Uj);_Wf+ZM zonS1OOXxDpC8(l$P>?^Nz~@hL9*jS6pmI=%KcV>NPh84NEDlr-3YTHjj|rluA_<}s z;u4JTCnktbk|2Ll1f%?k3F4C^$e$EJ%uoSek_51#$%CjaQRGVg%w+kqq$@uw!kB*J z&rF&>OWN|YA`WeIQLVz*21=J>6EK>CsulQUp(lYI?AYjDNm^zG8JU@s&dj3n3{L3B z=8!p={ps+`0d!vGK)OA1FujzSP2XgyL@HA)oXlL&BU2;#;dfAG0c>)uxK7!G4s~1a z!*R)ny6l9nF2TNQ{s}{|e94Kr;RKB1@{ur9qN=I=0yWmZupvzoeO4yQhuBf!^@v{PmcjmR8D6EjEC zUYWJHPyGgQqf(R6gm&Iw989o)-E|jTKI8If$Y(-6P5DfQ0g~cJI#6MiBm*US08I^K z`GYDeOOnA7U9J`ks@G77F1OZ%)N8mzmm6my>NQfL%l$A>^%^bF4shxmb$rAp!vj>B;P zC2>9^08bnpfG5tGY8FR9AdrBS6p6JZ36^naWl4gC<6o8vzdGXKNQi_S{EK+_3nGCs zbOizt;K)D}NF0ax(Fq<4g;^FE)+$`SmHK0s#%^#YCGqFuq;7#6ApyfQ#jxg#0S^V_@XS`ECv+Y&6lZ_ zt_wba-Xc^-}V~0^o8xL`80FHAlfc9uF*L;emv|lPBV;P@gT??k7 zGL|WD>>t}uas}1Yxy(R22*yKLQ(TgO2JmS`t`~oW67W&IKo3~OhmXoJpgidqQe{e= ztTNX?FgJMdGOWQF*5C|la27E*gBqM+4fYp9W>`aJSVLvlQ&~Y$Ns7b?umDp8OI)Jx zFRa3HDsS*|BpjOasQjja;8Nymu%_LUwWvo8~D76-w8F4sje`4+^%k}zC%`H4e)!9otND7JEar4T9uhI4(PVvc24 z{Bp4>C1L3~l8wR`_~maf6=QI$qAp`SLq<6gc9IyLy`mC>V;RGZMLEO@kX%7EjKP{< zYWQUg8QZ-OTg(-ds4x^)(2&GXT(Kf0ono$_ZiS)J=K_G!P+Z|nVYpnGZjEZXHK&OT z3y{i^6h3hAo5Bb6J`{1Xa5(p3vJj7VWC=JD+Wx7s60;;#5-&0CqSt4Yqyr@;m*MGP ziOEFLp%Rnxb2@XcpCR?cC4U{cOqj}29PQvRfA;&5|b*%F# z=2)T2XaJ7043>wIvfJr5YBOljmf!$Ew^jSat>6i}zyDQYl$iJ_E7405U^Q8i9#no8 zz2Udmw4dn#Gl&7H8b}HpEr&0F|rl>OK(16UjG&plH4b5Chdt|PnshO+k zpiDC@&Rj#QGuP5dnd|71%=PGy+(3_HZb8HNR(dCM8-1O*U4$}!LF4!i(JgbQ*d}uq z8pj*Oj+wi~@XS48Oy)i@C3C-+m3ctS&O9XQGY^Y3nMcIgna9M1G4rPOQ06V|>CC^imojf_|H{0peUN!i`zrIk_EYA=fXI9lh-E$wq%)rc zI%hr&^v--1D9?NmsK|U7*dy~*U~=Z0KyBvRKttxc!0OERfzvWS1g^~dC$KT|-@pr* zp91e^eh&Pc`6Z}jehuoG--4OUreHS<7oS-oIM@mVhgrekI4cyKYK4QdtVr-+D;lh| zV!=ks46e13!85E>@Nz31ywl1ApRlap3zi-Hhvfv{wz9!btWLpitz7Uot8*x1bqOV` zuAxp=_fTJ}M`$OjG&ITT6`E)D4%J(ILMyFpLMK{%Lzi0pLe18I&^=aJ=ml$F=pWXg z(C60RaKIW8PFO?3U9IiHgRSkuBdwjov#fl0zO_rZ-WnEOVeJ||(i$E<-r6mEy0v@w z0&7J0N^4~JCTmo9qctY{kTo{^l(lF0Z`Qc*Yu5PiyViv8XV#?f57y-HCTmK>u%<`) zTa}Ta){Mw7Yi4AswO6FZ+B>q?+9z_9wQuBHYrn{))&Y^*tpg)ZTL(p6v}Q*>u&N@z zSaYHQYi_iYRTCX#&5Q16Er^b{YNH2R3#0R`#nF0eNpyu(A6;WDjUI0u5zG(?>$unu>-bpSIw3X^zvHYE zW8EZkIT@u{8FiS!KnG1U&z~L2@ zg93x(PjC=d;e$ehWRp6iGAqD>_{Sf@gSc296dA;2`k?3_SwnwAHHDHObUhAbQKP9czdSn#ye;_1*W295W)jq+)NE#Ops$j zh?$KT{v2dL2{VPUnM#3LfWu6U(G;}+aM9>cF%p-lWjtzA^8nGKq zC9*E2kcA6?EjX)n1$DKqq~6w5RAyaGL#=CQ7wcLYWnD)Ttm|pIbp!2V-9%N^&9u}z@7p=;GrL6l-tMCPW_JyQ?e2k; z-6PQ1?iuK5_X?EReFEFt+XQyC`vu0@{R7kNfhewS5x1)1D*7N9)R!py_Yg{|uKei6 zkM8{FA%{syllh+L8svLR@7<eMJ4(Q}N<(yonk{%`90?sxY>BD>yA(>@MdSC}N zvTilQaU{QRB(Uq|SIQ8wbiUKTphQ8qQqt;P($%9CsMuy;0Ea0fMxl2HI+p`^2Uv*Y zml8xWZP4V9q**S%a#+y>e?gbOa!Ih8Do{##NLeM5U_-rdBok&Pr5>2c5P#*e$7j+b zI4~$VbaA^YDCRI!(p9~bAd-2RUs)c+$?B*?^65bV<{u;P%rxo?luLuc9A3e3_~ga~ z8CFW;!OFJpphyc?6&GSyq*|aW%ez6*7O*NV%&=kRP|^(!<+_NOKp_Ek6&Hor2!lsj zfU7jojcx(1VsZ3$8p#$@SIMHY+X7q_$k?cmx3GhU9U*5)FDc>80x0K$LH3jt9E*>B zEZ7G^xCMetx+EBBiQvXUI>vx>#c8-5i6EqCk%|`&?E^`AhU5zcKJU|EzC!FAim#$r z=m`iBb`~GOl`+~9!Hq>qlCPF1ZbcP@x>}^-#+P!vSXojUgx}+bhbc;Vn4&ZSzr{}! z-i9AJR8cC2DoQa%iLMCZk(oOv2KadAUw$fpTqN>H21$VEz!GFjnawxSN3;H4@L;%$ z)ZG7TPSY%QhrXai=-byCT655vm*)!kvnbCM<$O2R%X3BGg*;ab-ZIY>ffw>zF}Uk_ zzHb-hxq@#O=Q%gl_w6Etf^QciwDs*Glw#j5MpE&G9UtO#T25r|Od&f@y1fe}?O|lw zyHaO+cj{*ELA`9;XKjzB{`OcJV~?Ym_IR3OPoTr?iFC9*iO#Sm(^d8qy4#*gkJ{7d z1-p{ovS-jc_DuTF-iv;+_ZA6zmgr>fBYN5UiS6wD#ZLACVuF33ILJOoEU*t2jdqn- zYtIqK+tuPid#S+OzhN+S~RT?LYQW+OPJ}fwa9g z(9d2M7;GOC7-JtBIM6;mP;H+OSZS{hoMN9CILkgMaIJlE;6eM8z!UbVfj8~b0zcSi z1*7)a!7lbW!6Ei}!AbVGV5NOw@L>C*;Bxzt;41sl;3@WH!43B1!Df3y@E-e$;0yMZ z!N1#A1wXW}4*qOk7b5%mkYnEv8ff1b8fxDZ8f)JiI>5dqRBhiHI?TQ;bhiDM&<*yT zp}(Dg_HLE;okNG;k^Awcz65J@J#!$@Iw3X@KXDU z@Gdti)E-xautir=t2rkTRI;EF<`@;q$&H8Snj zLFP_zmts}$9BX&Xv4;Di7|o|}v-w7>XxMn$lhp*<5E{8DdS-yPI)+vWz>=Z7Wp!*k^v$~!xpFCGI( z*?hQ24zw@8{=$6cX2Kx`xxQ@s!MSo+oE@g~{CqDqSzUg+TrbR&0~9*KyG*?#sYGAjJ^kQ!zxQ+f!t1*!Rf-E zc9NeEiBAB)r{R@OCU_b3$eBD@C;0{-2e9-IWOc&p6yacT4FM)^6#pM$e=yXR62(7N7s5)^VwiaMRibh?o3bfr#C zH|p$kr*2LUDs@V!x6_OII=yL-(}#vS+tAKVKN{xrr%}!T8t)9GNzNde?hK}x&Jfzi z*_IA)hSF?jJDTfkPYawKa39c4RPXFe%bh$O?hK=~&aQNVGn`IxcB50B-RTTx4?52o zNf$b!=?Z5IUG0pe+njN9hclk;b|%n6&P00NnN0t5rqb)qG^PI!Ph0ZFm!C5V?at;?aIBUeM&e39{vsOIh93!4^ zjuX#2>&45?N#YIX6!D&Os`%77O?>a1A%1br)I!eLTE;m~>*idj^>HrJ209mO+c}qN zdFL{1va>;(<6Na3<}_=^JJ)EZIoE3EI@f7eI@fErIyY%|IyYD-~c>D;Nk=iH@z;@qQs<=h*HJNF0D&I5r#&O?FioreR{oJRu(IFAMDoyP-* zJ5QtFy+_=u3SMmjYSbR63>#z#n8XcAW2uV;O9Bm+|$qcv}O1tSGcU9MBElU!As zFTr~W7Fi+&KS{^t;k&excI+$Yid+d&smqtFOJhj%OHSv@^Dg$&r#B7Ik<2O?{kqsGsvLl{xQG-g%!!Iv>y&=R=y} ze1!b#yJsV!G8+}M zvN3T$Ru@&-gjkR@MSV7j)k^n?``z~7L1?S-)josEa8`pHrgbZ&`bq`s<$Q8eIyi^etwOV5;kLYlz-AVcL=|+#}R*>Sgv69IxUFC@6C5~JO zy2Yy;B~~%RIBo<3)>uAvU*rx7l$9|X_zT=c-$*s3H}#Nu@~yZZ7QIro4@I)ukeTgA zeX{*&V0HlQo*hUtv*mPfb`Z_Z4xtU%?dZnr_Hk#X;HO z;^6EEF)uq(EXj@*tFmLnaoMr(fCoJf2rk6hGxRZ395`;@2Q|+Hx581>ZNupnmTK+A{iS2#?q1$I>51E4`im#9`{s)5 zzPUoXZ?4$xnWl8Zd%}C~p7{LE4(H0s8APn|RI(LvOEtRI0y=EAnPtHL7a4>N zh6@4Dm&adVz>|Yq?qH0OE6`TT=gUh0-=4BtDzsQ<5-I2+xnjAhYpHj4;d^W-zDlH! zi`3F|t?}GWyAQ3;?n~!p_oJ(_`_t{&1L)!Gf%K2;LG*U^V0tHu<+#~7BAcxiy|Z&gpX@x5 z&(0UavkSz;Y^~TgyHL!})`?}=MPhAsu{a~UL~O{`i`%kG#Ut56#B52Wqls-~zjcyrYf;uCtSCavz3O z?bIILjqXSAT2{G6)m>-G`)D-xd~bEsZt+TcKB!Kvv6o9=K?+As$v9cKqP*dFwqO9G zzZ_!doE0R z0qvH(h{k3wrpoLkbWrwETA00zmS-=gqq7_6)a(^>arR2OK6@42oxO%0%3cfgJnWt5 zM1!ClZUpe12b=gPD&Aq?PbT7)y#SKB8QyaX8QEJ=qCX>^+d+Ub668l6^pue$*ws1U$)w)X>s|jr8pW z#HX4f^xXxtJ3`}R+>R=QxPb_bmvKE+2yvYdnkeJgoCtl_!ErU&$1vyjhjQv=Rm-bZ4q03?x3+4?!tLh{nb}aaq;Xz-!{R*~>X$7Y zT)n8OvGJMT@4-SdbXI2T)RlIKkwZJ`cvR?ALOVrh=P2cM+J%Pc*u%0be;yv8-E_3g zcIU?qI_*It7-1woMn!0Jl*Z^NLU)bQSccd$LgV-oARQXdiA;#lM5d0!CNZ_ig6t8K zCQY4n@XX2)Q)Y~vS~>aP$}uBG3lif6B}UaRX>6)m(zJKgqGdH~^RytRHTr(uGuxyzO=s;vg)5lu}EwR4s=G4q|<@+0B*V@{&GRxfhJ(r45!YpAXn zTgyUNJ~ztPERliTnSBl1hS$fSDKyofX*6BXHm!vnSvA*39<#E#W@%Gx{Sqk3kCYU* zjZmdQGjMk-sP1LZ-ZV>4-`2ER;&}QpXdn%U&^`w3i~Egff0}O40d%0C0j=?UGafpn zzG+5HQ^))aZNuSq29?tQLET#uZON2D2hp|$4WVrXb?Fdv`_U0P7>?H(KT)SB9a?dOgky7Lr4F*wi+xWJP6P^z;3 zkVREX<_}Sk!;}lPhyru%0kV%Y_MOi<T z2p0T8e&v2}sJ8yv8c}AVRBhv=+T}G<8%EVHUJ9p0HcCM3g2|Cb`;Q+0Jth2nq4JR3 znlX;1o+x0tq6i3}Z0Ux<2El`1DC@C}5#I{$y|Aejc>v#{fI*hPvmf5LPT`h~fdfTF z*=?lZrY702A-=OzHf(4X8Zi4(oVXU*h6cEpv)q0A0~r$sWCrDR_Mv?<;f;j*J);l0 z)X><8Jw!Sn;swI;5F?rc!qp%=7yIfLfboSmzpxI;mig@MfJB%*yX;=lu@Be4(S=M9 zeceQXnqspNl$x;1c^NQ})m%0gyKD{ziphPOROU`fN?ud@X3~<^%!BRn-yY*~IEU8Y z43eWz-X9H}uY*>PL0xh@x)3KIQDi?i>FI9L1N@}ZMM+z3(gpq41&L(ykIqCgXCaxh zk<7U;2u?ymQ*^LPep`^|(jN!EI8aS?a(P*oJE>FoEr^33rcYxBl|v^gUp5{$m+hdwt7t zY;;vqRjWGP=1Lof3I{304;&SeiI62I-ngQ+sd~Za+J>e>QOhES#TQpK)YZ&&W45%W zY*FKMYKI->*uW*dx&bXk45%g|sMqG@5R_{T#95q0q*6%2=ZSE0A4KuwjLg5BJCGKB z;|L9LvvX2rXY^7u?y9&s+5muZiEbd*6KH*ahO5qjWEQNjC#$7#|T6(6~}$CvwareoW@a6n;$Q$25LS=SL+!W-uc&`LP#2 z_SO+Mi$Cn6i+#m@9JhZ&91s-;>f#`AuulEN?1-q+X&|RFP|V>+H9zJuRt<-0Vq%_{ zuZsnumdPz-B6S>E#G%FfSi+BbR>snpI7BqC)c9@WM-xA$@M9U1Y>J5G5&AkJRz$=~ zrgA999;S;`Vl{^jXPJ-S)Q*gbHM%%T9L>0BY^KFpeyroy!}xIwKaS;857lW51i&B=idwX zaUpYfW>j1h6&JINmvH2zjBr^@TrM{71Fhee#TCr^l`)(ma5cv@^Wz$RT+5Fc{J4(c zu4jU0^W%mXUTs0?-TrZG6tnT6%kMC zbfI`ABA(UhV(|>aKF3NuEh3)R2?z5s*k3vNZ;bUKEBYno=JoIs zsumT+q^g%SG}J69?nh**7t}7AJE^`Jfc1N?sBc(=MpBRc_uouXo!X*}Uoy95CEA_) zb5BT@-(}KZr10VbWfsWSX0ZmWRoZUs0C=8qFvj&4QI2e>S~rP zm6U7dPO5Ee;(kscN$!rK2Udp^9Em$*SySzzAtM?Zst$FbV>4>!FR5x;)&TlDwgPa-&8yAP(KDHj@C9Zi?!8WSI=Br zgY4uJL$kbXlKxj|L*IX8*RiRgYI#jVBeFoK|9(=6NVV!VwW}t#OI1))NTx3+0(G$h zF@~YEP|!9;DQc=3)JL0%WB37d=AgqmvVPeTE(E%?Wmm2_geX|ydJI?(fOD&clnEFMPNLT+-)B-iaJV^v!< zdd1B6cBSh$@=q{!)mEnd|Ca&_#i-|g!`gCQ7+K)rv90SAxn~y?ILdbI*`yRh4Q(9H z_Y_%Tbp?S@s*Y}t!p?2E^Q^i#$|ayYsj9K5J+di$Q?BpV#XKy6YMj5cs5k`m=|3K2 zTpKxBK%rvj%$SSn8*3U}(v9PnG}ScBtExu9uuZ#~P*sx;1|nV=(TX{+(6)MN$pB|o zOJ$E%$XOI2ORMJlx!o5z1i^~XTF^r+TwTBP&{lDoh8mQ0ts)`Y=9rVon7+~*Rn1bu z>9?B=1?}9?x3)QFhU|E&Vwu||>1r-3M=hwSuAAW%%m=mgqZaL%@omiOqAId&zP3PS z9k%GUckz9^MXfVfb>06%KmPHks6nsLKMeXOKVId>Yy5bf{$P1dYj%c z=v{uiNAJV_oItCx)}a50O$L2H9~$%tecH|dshgn;`iwp|=nMMPpf8!^SM;?(-_W-P zeaDaQ=?4Sj1Me7`&@@n`Ukok4k02f*LO&W>NDD`_h@nMA%+O*Y2ET9Jv+rOa+$nAW zdbRYn5luI=xMm;iy$x*}`d38jYiRwn{)RR{>tkqT+CW1q*9M`1GpcGyzoyc$wM*uf zF0R6G69%(O7pT^BY3-6yWKOT`F*u?PHnbsH!qB$Wh8o&-{MeqQ+CkgV&??{$+D_We z?Ra8QeloPYwo61CW@x)=!&-ic_HhBkxkHIsc{FMjOJk6DmbqyR;m*yj7N-1}<#8QT8*^#BbsByFY)+*XmH z9mM{9un>keTdOj(Iog4SR;|r7#1K(thyi$LHS9n0=$$Q|s6mIWwXe)rP}NW~w?$dO z8prg@;F)_4ZrP?Bq+9?~9&KGwH1c8QajYp4%1c{+G=LFO*-8F^~w>Tf7xP;O`s3ZvvsSZ z4UD0krtOGsZfkwIuIjfT;Fa1)L-ZCXwEDUo4i~1QFlZl&)E znB8bo;rkz3P(y1Yuy`3V7Wc7d)iy1_uu>hy2pZ+AF^u1aPN8kBrUpTwjZIs_fS{Vz zLprsM=n~IwSO&jor{MaZnd=NTNi{{9ym6}_To+zzsY*c2nEK*Gmn}hGSaz#>wh@1C zOph$9TC|r70_l6SHdiYU4D>8UkH1G7Qj^iPufaU$lBS0GMIhA1?kxb&H+Or|Zi@jV z+giEMpir}^b9pvLm66hoVF2XRf}w}ECE+^?ngwlmF8;`^#xTY&YZ_olHR!n%y@z(n zvf`#FH*Z@FX~GiOHgWE-W1@CRQRM>Xud6u}@SWRM-(I&0<78^6(jOa5v4z}e@k60= zjL^lZcr1}KE}8;L2Q9onHK$uf$v!~31#OH0f|+p5A#e!gUg|X@IKS5i!-~U4&TFQA5;MxP+YWYVR9oQH(3{=x4MV9)uMqNWaBgzw6IDRUW|5 z6ox8Wu>g6Ca91<&X+ASS|jkSkC>sT%X zbM|YW)iwi!-ddnqw)!8eX$aIbz$x4@@7nqy)3DfsmwePzErw!L@2F)ocwWjti!fjr zlA#XVfNPAVdT;rN?fG5t`jK{WZt;*Iv|d+JvvlU3$Ubu5aO|QgtVC%uDT^{_bj_S) z_!OF}elts!E%r+e=}B;z93t5xYOCA*G?|A+3u}%%thn-5`Ra}~@G22GMgm9X*#YpW zfY8Qk;~d4!H>fnx-EMO{yceNbOZF96+)VSY(A3(JUb_9YNDoS5))I5>Ae?|H{t(T zd!O6p-U0N@>+}0RPv)6>_CDwAes)=V?X|v(34$Y`EXQr`%jg^r)3JHugf;UvK}95( z`t8^nqq58{x}v6wVN_-oEWXZZ;L!RtTgaizez{*Joa#m?DJ4)ixnIA~%t$^MZv=Ebon_gUB)CCjqlaI+;$cnro zT@VI=`NdU~|7BfRVAh2TW?dLz)`b^lUD#pPg(GHNm}1t2FJ@g>W7dTQMjk)I@5#@( z!VR;}VS8B@&X;vzepwg(mvv!*Sr;ytbzy|z4&VnTj}-qdVpIs<@Z=UN81uAvNIM}J z6RI|9D}hTc5@x}}aJ4xgc`9j!Td)^JF?Syc?u%5WrjuTZHD(DhOBZ5kyKFDUw|T0< zYE~j^uXNM<@@j7{f@cKnu9phERO+Rwx}rNZsX#(_Jm= z7Xpt@mfGG&YgJyx#pC^|f6m=O& zlUE`Gd6o1={%$Zm^#tlWPHvQ`auaQIi_DYT5Hq}8*2^8TP41KnF+S}TWyBGA263-vQA6BMn$K|$ zw=78W)F914M9Y0ydZwqT+E}?RO`MT>mrU9f`Bjqs5=noVq*a{n4e6=OR+oI}5Zxq# zgz4qgeD{WGBm_r2oAZ*4rc*}}cLm%P`C}^W+ugE=Y$BCI{a{SZ32uk#>q@*_ zJe0>_n$W!s1x=yxhSD4wsR+M6(|Le(+~J`#eGk#c-XYy_PV~Eo<$oVfzb#>?&nV^FoccKn{q!@MN zayv=KE$(C;x=2T=eq+QRss$}nf06Td_g#4?m+!a9lveX|4gIoA(wxUV8>AojZ64O| z@(CW>yaK=G2fA*nw35!$XYJFbdR3~L`fPnpG=~Hma@CpG5RT@68JedzlN$2XncSc{ zQu#h;AnHE*q@08c7I|3j3xoUaKClhkcMt9>eb5@XuMF<16r-5?DtjMe=;l|)P@XNU zjxkequa4zw+r((8s%U78Kem#vQ~3tJ)xuWkhn}XSrc#$gCr0Oqn{_fhbPOKU{vsJE(=7bj4=T=5@n(9@5j7r*TZZsTJ%|0lM zCLVOR54tBG5SJ*G$p=;TK~?gBOEg{(`!-&ZsG4xlqEy!qjn7LbvWi^AJa0q=UY&)F z&y&M=6e#tM>1*a45(&Js7Sz1}HcCTb-3zh8{WV(ny>hC$g?nYTx=1;XQnzTYj8V7q zUTLhU-Yat+7tbH;pW-(%92@=F>M}@~Bh2aOA_(hm4hK@5Igjeanp?|h)F=+47P4Nh z=M-u?hftUC{A$+NkF&z=WQF}Shf0sLzCO*l(kmP*eVzNaIZyfl$4NhB_53ZX=U>U; zU-D0rBmZNHV4}w4km<+la2)3$qc|^^z(G@Q4j^S0D`{QMeS*0*uFf|IvFWOPGMBGYRrRz?W<{H)^FURV&TjLo+GN22 zISp%d$>qUL<7SP7&06VV*2zHAqJ#;}YDpACqCGp&SCCA}!Wr6uN?2e{Ur99lpQ*YGnSXE=5Smxlet)+{V2&tkwxGGF23OAIRc<2j#vt+T>4~4wKJ8LV;dNo{ zQc5p1?ej_d0x32ZO3YluD-INcf?r75Dx5sVraj#joO$oe19BGsGxTYjoE>T!TXm-t z*H#T}lSMoHL#>DYRAa|MsOE)OD5%;{89_oLWTbUn_EzNHTuSzrNmqloJysU0afg_z zWVE@OqHtst6lEesQ8KR&WZvSPkXjHVB}m;b0RY7M5&mDYQ*!)=LJuYCXJw+z$K)9E zap`4lB0)~Rf&@oE1E|n-R2RRcB%$_Pbmk4EE&VQu+a^~FxfQ<`?e6S8rq45>lMeN$-hUfJY|UZf8;>x0b{ zbVF#D*e6@`$rgQbheT_je7EZ5Tuszkf(?;iO(hxX0@(ruT~kG#$*Nh35BRhkvquUH zN)%wAbpdlL2K-A;^Q`nU&moHayo@j}P{kKzig`&I%|V21UqylGHEA-h%PRARY%pJ! zt>&9@zWJ71Zr+xw&9`X+4j+RicqJGmTGOouq2|@yE5}&3O|}Ph(r(pdCv<+BoY#nc z1SGC&l;FLRCR=CdjJ?%Xv8EPZtJQZs7Xyw&o3%ibJa?~LP@O~FlQp$=pUe;G?C(*_ zA4xa!Q~Kp^rN8+dHT=B{HGh!f&0pn2^EbqH|1Q(azod~4I-jHdrJVGy_QKNQ~A{b1cd9>zWwFzDRqNVKG5o35LxeQu!n_NnW#s*D( zPJ=FjqZ(A-cT7VkZJf&p1@+aylZ*VJ2dxRTN+qDUYm>|8;M;LfHmRepS36I23AF4L zt#U?CLJf9NCGQ8~8CThk-q4|68P)ZfFv&#AH7$*#Z}7N8Z3Q1zVx$sEZIbTSlyX6} z=1S|SY?G^WQJxws+E?qM9b>5;RTJx^3wDfUys;+6B0i@^2_;pchh8ngvGi&aL`;t) zmD*XKE0x;h$lG6Xe__aK;4>`BbwFJh4PT-yZTD2=+N2qqD(1UulD+6X_CVs5itm+4 zuGd-ey)GPl_K-4UC(4nUsP_8Eab8~;i7>+?+>^b5GRqqz^SoL)%Ns1qy<_P`Lu4BQ z2^V?8WrsIHuJ!8WMsK9t>W!AWyfN~CH&*s|g z*T|Yag>`%`>-Ib|jCYh-`ix~;Gp>(?_Bc(ZyWuYqjcB9{V}XRWz;xY?bgj}@0N|a zSs$IYi4XSQ!Pc9;tNr4-gL0xe&&kJj+O6Gn2jpXrT#c<3{DQmd_s9*6bqgCp&(|?> zKfWLqV%aKWZyb6dmb2e(@LSCV+9TqWd2TdUN%F8d6CuVG#y?+gN*fB)nbZJvs+75o zhH=j-$iH9T$*%{jy@ch#KHM#zR<}LrjL91a?3vNfow6lVUlI*PJMEJE9i5ol*XvDF zy`zRZfw5m4&52XQonm>(+wM`I*pj!E+!iKptGJB>x6u%!b|<}ATwhFsP(G#FZ-i>M z>(+v32~+&isKSIOwSSs*|I?+g8x6J_Y&6(zKrFM}V2rWdV2oAiByy7u$W$s?$(n+O z(%KhdrBD_j7%MB#E<}$B7KyqcufRj`$t&_o)ukKhM*FWahG&=Z_Hrroc1ULg3M#xS zrKfkb^z*J^*jy{ede=+6_i-8L-NeLui!AhRm$SW3N|U!!HhOo;dEPF$%G)hBc%NdZ z+%I=}56Eus)AAXwRUY#`BTspsmHpo5;^j0?-3bx>#Y#?rR53csFzoYixsd#)Sl`_L(J1Ug{m)@s5Rnu zG2M_7(N5{QPS`2k4??>ARu22E97|_bqpiAWdn(Df*zgq3SdcP9S!$_+4J0{FO zNU8T1iFtpOUf$oNzxO^p;2%t!|CAHF|B(sazhtKOZzjw`vJ(FW-a zZt+p7!T(vmSRVCDWWQe~U-qN&EgvSIO4bA|ej6Q~oeP=yZr>+&v9rc}?cKrc zJ(>&&Pr# zv9PXw6|+zeiTS;yr{6~g`h8`%-%m#R{iVUL#?pI@O!jLrlQCEp`$J@ff1GUbhstIC zFuBSfF4uE^vwytY<)6TJ86%JTW92FTM0v@dEU)=fj`A;!iF5(;IOsVWn*|h#9}AJ&u1I*)%jdQ0d|~J8CyAcx-!mUWn{k!X$!SfIkcfDR&-G6 zVpuZw)}`4V`qiysEw^c`P^} z_cfHnO6)@2D^|iX-B5^SsY2Sga%d&(OIA>Yt*!ELefwC0+L7+YkJoLYXkp!+kSE&Y z^RdVt*@L@4J$nygH%8q((soehX{h+EANN?MRbDjjF1H`s$L1@Vmw35bjy1^86 zEj(`VxADc#kkkAtWs!fCtn#mx zZT|HPgIk%JZj+t(5wwf>XleE+GSH&swH!~lcdR7YtuUTw^%3bMftJ(_|R*W+w|FEmS@_nO`am2cA+oqk*BrC=xxx6 z3gVpz51r`jn7XzTDIcg?{1(2cdu}@sGev4A%1yl7EmhVZe~>zBJh>x>E;Kw=WIIhU zZmf8JEMo6UaAPI53teUwzy?&!_C@N_g_vW+v z=t5ti3w@O?^fj68f1PFcO5@w&!&g}7t`N=-wgNvVH*7(nYp2mSsKbU>qFs` z38~Ulxz$h>2V98Zto2{qBhN7E_sFw%NT*sl#eP;lposN&t?a-)d9JaB-8btZ*B5w| z+yGg8i4dq}p)#omb&-Cds8ol#%CL}5e+a4uxy>Or#ZXY%rm%t|i80D_#^(>-B_)-i z%ao_3FDhr^$*&k%IrOnaQ`*Cm&@ljY_mXI+x5Pqyq<5$v86avJWYB|=p$w^9?d2~f zhkfJEBsl;U!?3kYaQgRR$&6+*+_TR$Phjhn*l*& zty+@zKBn?c7sT$73+*Y)W5L!vSvuEzBP1NEmu{gGq<6!M-<-m^H9LT)yw_wlrqwpQl~<-Tx=_>l6-USe*BvZj=lqPINP z(CP3r&fqhhC8eRWNu;0YA0#r8B=m4CN+Ja$Qpxw#WDb&yNw$YeW;w~MkiyU^=^SDc zVFs9iK{D#vFGn)rYPKFE_3{CEC7FWza_h+)q4XfuKgn7NzdMO_Q*~)i;Z&LJUoCV* z57?y23t^`0WI3j*&DDOU!x6@BdSr!gwO>v!G$!z#WcYs zbofhUApXIj9a0~+vJYW zP8y;n(Ga@l(62CrhUi~i0jYTvbzx_&)aiAUSB=I~)TdaeIHk2r(Kpgc*IS^@LibU+ z-BJ+x6yN!NO80>DrOE?BpW$rzbL5B^b3R*(A-e8>?RjIeaZG2iIJ0ki%DKuCMYj zza~9!`-a}6x!$6=zDbTl%yB`Esl&t;9P17CD||gISy%Ayk?i*=_`4MRJ(3w}hEZ>& zqPvrv)*s_xT-^wD1LJ4GS}>f)BTRje?F!;)MTgZgr%A z!i-aQj56a`4c<(4TvylMNM7i-EC;{iBmJI_^aqxNKT2Kb&oVUh7Ycd2E!GK16qJ)e zLHX0ew|@W61tR*ZAwYX+$b?{@mF{2Pf`WX@#&i%A0kNZxOv#su02I!5H`DaV$$B{@ zbnyX&aH){#z``kd9QY*_GE?KtDxkei)yr(X%+bqSeG7gG*kc9wPAh;WT&TC;m&}(l z^zE7Y;w(+zYyiCUX0cuXGO3WIdReCLnhKB-Sss=ZVL{+1*GYdF>6syNl&Geac|-Up zv}D^V#IlYA{!pmF(2#es=2?&)koa!iI)2Uil}jwn9W00`$V{yVp$`G|K+JU`f>0Z+ zzIvvxdb=Q$>}Zw$8#3k2Y&k|9sq!k7w&24??l^H|(KTg76mxQXC?RF$((Xgp7zl2~ zWAx4AQuj5S2>ien5*RvVK!@ z)0B-%);4d_JXR^{U!D3^M-cfU%QZ4GB5UVl*S+Y(PHnols#mJ0s)<9DAa(o2&v=I@+(~r2)SJ%;!uFXa;#Wy;AMa;jk|AA*R+2s}|fx`t**rU@t)PuG*?20}6&1mSgKuOD5RF`lFQ^xIjw50NC01d#S{ z{bP8Lv_cQ6;A!^4I|#eW`1Y5xC)q(`-IXThJFVoPkGYr2%Q+=Ib{3dBJK?f;LBt;z% z724r?!eHq!qn5K1IMGP`9+2Ky68r;2|1&-NuRsa@4T}DKlA1&ko=i>>&k7;vpZkLe zC(@$&t0zGFi7c@YAhN$@nIc{FO*~TgiFR~!Z9X;WQNTDqMtwc?(o1i9hox@;Hv{x$ zU>H#s>AE>iao9yBF1-JN)J6*vX$+fmWKuVG^U775`U0lgH)EAaR4P%=R62D{<`kVJ zLdS`wRq!y>Yd~OzI>LX>TM0;kd+Aia5=ws^Dcvc2OQNW0#W1KGW-cq)!_pQOb|n76 zw6Tv&S*FonNes?J3kN_Rodi^Y5~+^RUkf9Qx1tCG4vT#dS3^E%e?;*mQ3dUvPz2M~ ztwX_85yh1ZE0V)P0OQ8V2YPQK3G!{}(@dzZJ=EeNf7>TF+L^PJ?~q2hEJjR}dhkSQ@Q8QV_Q z95IKzpON=3H4YjLuH>mJgYRbPWQM;bXm=*8%%Gw6LH|fu6a(2~Chd=_V5qqeEd9hw zpOVf$ebAzwwIcc(NWdd^f%HiTfJ-?~_JjqrNl)7HS-$p#=V!?x63nnc~&p`^>RSNKc~Lu_40yVUepUE-8|&oAy;K#*CThJAPV`Ge_Xb9@q< zqe_>Z?WFJaysDbTLng~qT*#@JAu_?2GH00dW!54^7PMFxbf;a~5hP`JXl8SpJjCw$y2&TEyqME8Me!HA~Lh?n=!R$VM&*I`IaSV7ZOX%>6miUz_`=sYsDdKBCAC}2Q=Ya{ zZ>J&j+q`+>_VJrr*3Lh7SzK?nBzT?jC=S6myLkoO%mxfTp3)K-v{O3_i7r8c zE`vnG!2#Am8b(4!S}u}p!FahR#`}A_f}~}Wq92^dFHTyl`hQ^(&xno`R)EZPTh=otr<&U6nCQBRa|0>Wr8RBt zilB`5$p~6|7snO-(~A>9HRbXM+quiLAcdsWFM{&kl@Ym0gI}$eYxQ!SUT!kSMNsR* zcfH&YLCFQ*jrjBoB4UOckf!P>1>AlvCs=Iq2r4Y2!)8pxj5Q~I2(mC@#>sa+0JhZO z*?>2h@e%ZCCc=i#AWqtW5fUVGT&8PvN6aKMIUZuw-`oD?zB%*hdRikTiZGa{x@9*vlpW>&EUHaEa4wB0uaJ7U5X5DOL1q+c+MbvjF%xCRbt=-D)P>KxEB#`KJs&1Q>Uwz8xY zM9jHnTf}TP=S399JxD&aqJipl1huJ)BIaT0WZC&r|vX+E?3rX z&oMo-Kw6~En-O!FxjbxkM9dZD%80qjTpcmjm}|r4x`_FhxjtfU(8nLw3&SMKz)M?T zBMJ;3F*loABIZ_?6d(IGb9>m(#?59YTZHz#)=iKRG;2Q{F?TQ?33q42+@-zdZu#U< zZHcl}k~uuFW6JW{Ek176;G1Qx0qvJ(i#MSNqsmQYR!pwMJz0q}$63l6qJRjnU$?AH z;1;fZg7OEsIj9ruqo0^xw5MSniLjr6Yw>?iTKT2;cU$q95 zuXewn~oe{ zfLEqNg0+8rWJs!TQ%is*)s3B&+yABz9v0o}Lt4bhhUIoxV7Ua(_ei!h68MRkG8us8 ztZyDRDY3a^3)a5*+XaDHw={s-&xFzmHdyRQ6Qoc!ZoCcV;7|D|9b+dQ1>kuGfu52! z#n>EY(kKLWNBhBy=ZXDtz=!XY;ELGP*)Sy@#5cCUUb3`#~isE;~urL0_7txu{#Lk~y~>&wA+ z3@4VHQZCq$3zWc1RtYB>+HL-wlEh~zCa1hVu?{AfaUbNzy*~R;zbV91A;k{jb0jM0 zq>IrO;s~RoaOMZR`)2U|b!{G7FI9Q&y&$OUK{Fsx?LMj>;V0_e_ki?$3bB1@H9l>F zK5(o2!+Hj^${!NRm{{&Hd3tEwDvEu>+79dy^=@jsi3t-fk6@?M!VFg#K;y z2DQ?mwZaHlqY;V+P4qUYRlTZz8+x9N*d~MTv4B*^@?=OXY&9h!xUtB7O_)Ad=SM^4 zNjXjtHIDaodUw%(@AB?bmtK7fSE~$)h1OhfwIZ^F^R}g&qBV1RwVZio1>!C%5xQE9 zoWoj9)Yr*LsFt3Jh|3o4&qt{03S_FT<5b`T&<3U=3U#VnXwH(0%tpBsjE)`Ve7VA0 zBv%1sakaTht~IyGb!L}f`3&1$&&iFT7~E{$lw0T}x6zAkH{i9P^M8kzi%MxB8ra?C zZnU@W@s5>U-UR$7$^G6b((0Wq4|-?GXT4?eId8cI@(gOK2dql!=TUSM<^2RByNI)!5*p+;ZYHtnheOBGgg|Nxt`Ak+ z4f>89=T-NZDLf8=)urk*PXRVTafhi7Q0xOzsoG*-X1TF_y!uZ7j4GD1u%YmI?JErj z< z+-W`B@^Eace9Wf*Y<vqS}7XyWmzZ-iT3O{OYXQcSaJ^A}e=qtYG| z4xnD1Uv-a+uda&a??Z2AbOl1-J!2@U5K4=!0!oGan0F`dFl72eZn}Vm@&wW?Z8B9; z*14E3r?60DP_9GbEZBEv^5M@kOVka9#J^b<1cb00ma`&6O1h#wdyIUI;qXo5!oI~4 z@;1Za+lZHZhsEO^mX_}^c)rh|`2mCCT?WMuSv-Eku=p`c<4=HN`z4H_U&*8LYjhue zgYM_=@8}b)Y`x~%Df9LJ{`2GPj+y4N2_AiqU08ufVwQ^4U`T%k>(1cA5 zC@>=cZW(0?;d&OClR-9_h0TKbXxcUbK(qoiwKbgeZ3B4dVpC~$n4Yk}dcle6Yj&Cb zrWM7EM@+SO3HQsut$!W4{cm$>_kA9kDn3X|N=hL9MH0)HAKPq<1geqMO2^)=*hb?@d_2fVx;Ar`^ct$ql)VDax|<>Sl*z(gj30y9|#!rL9n zWYl0L$vB=*F(*?H7^Xo%zCxW;^x)!(`cP$kPF+Ri;+!>_^Hn2r>s%SGD$o7oT>uWK z?)C4=d75M2+h;kH;dg)#z?>r24&+U9MpF3bbd3E**Nqb)GAQD%rnbr0l3CNn>5oxA)Xw^ z=s?|O@aT$rWPtlnF@1#YbmIY;IRlBQS+@Ou?gBE5(m%s$l0HXZO;d{&FkRM5AN+$@ z4~Ce{goRt}vZM~~GyI5@igcpQc|uOzDZO*^o|f5=gmcQ~w#huz^qF6_0AHJ&_M|La z;E(pl+E%?+z3d7NQI72Z=2)Ix74mUo`TKdZ93&!~73vKFt*m9YXw=NPV?iH_zE4YYqyyAA3Z-=<8T-o2+Gl=Ha>+PMfr7hK@ig(9cw`->RsO z)&c(Szgo2-+9E>Z>;_T=Us|hJs@v9gR+jn>%&6~*EHw#oFVx%%UG9(A>E&vdF#`!q z1&;A_8+9|^PTez&F^o#k)AFr5ojLt7?l0qv12^bHw<*bQ9%0};iiy_8m;)bY4t#=X z1N9*wq|P)?$_n$8tT$hfE#?3O+H(+JFJR#HMcHj$k|%(V`hxkAykuUJuK*$SJM&fG z@7@I4YcJq4kFx%J3njp}IZ6CBM|R&a)6F}aeSOy~Hs9lz;|Hua?{eJp6LT%^ZzSw( z=I7>a^9#zyd0Nm1(H_%nn0cDo7VbgK)>0q`<+J*AHjIX7X_Ji&Va6v*!>zG!Wt^tY zWfF?z($&t3}$S+!c0GSQ8YxgngT({5NDP_nFzsJ>HdfwGxc3lWKnr zyxL#YtNj(20qw6iuD{yspS9UPK)bkZLjT;PK7?W8gErAZb5mQ$4#mOQ+KS$pwFO+= zi)e#bk*oXXZ04yQ^bB^#I*V_H1EKB&=JQYCeu^C@E+oiZOh#hvHTSCgSg z<}aZ3{S|n-zag#kKI$UCjF^A2Py;gp!q+M0-$*zek~2J!b)F{|cs`g+A-UblgYwUp z&k^=<;_dS~$qQbwyyBI}8(yh=)9WnX^Sa0{yr}%q>n8v7%1s5>iq&8&4)HpJso2|0 z^!k`Nn9w@Y>t~w0{$?GRi|2X+!D6a5S9&#o$_z2BynmRmpZA8DFL=Xkz3z7%SnBD( z6bn!u<|h>W-HfSz-LG$Ilg-JMQ02V@%!!yck{Fx`25FqjbESYzq)*q-rH9nC@5zWX z(s}8nFG~?P5BQetl@+!pe3j20Mq0f0f@DVhm5%YoNuD=eO1ufu&6^@s-c(S0P6EMa zoQz{e%c?F1V?j`(H5Th~%-C!M9%8R7M`4js*F_Z=81=8Rxlrd}pPhkr<*E<_*nnkkATOzC24z6cAcqs;_ zuHoIsy>n!zx0c#+`2V3lft5mo-H5DW>^WGg8s$~ zSzjD2j)iILEBty^lV~xodNf30k%bK<&nq|wd(8RPeYU>9uP=?3Dz@Du`y^Uw@k;D= zlda?+g(x|3r}T;zvH|1+l*U*BdoKu)aFMTD%Obwt*d3*OpQmFbc5W=g1F>`e9THm?1iOLti}!Xo+u?e_zR2#jU1aPv#PvLtAJ%-GndF_KfL(oUq|78X(dx%%AL0qcOagQWR z5cCvg9iJxywA&~)l%ho08K=*TT7?g^y{~VaPnH}xb~EMybL72D%f14t(`zL2czivE zy`$OkOGa_|e}xaG`WPO_-WTGklyN1q{ROE~#?w%I7;@GhfAC$nCi<%-VEf|_dlq0J z_Lm{t#(C0GtW|7Emo%2o7QmEUoiF|6oB}Ru^s+WA>++Emu zuxu@WmOWQ5+w`(sFXw5r^YwB;ST4+yiwYQ>7wi2c`ufs5xlG;5^JIs*SLDf+>Ry#6 zSF3wXo?NT$b$a=jUar^6>H-+t9}mlonh-brgEP8mOE?&LXhIgx6dHqm;* zHoeKzpm5H_*^?(XE}ArR=4?*x8)r67=4ixaclzYnGdUY_H}*xb^Us+*anbncvrZaM z`4Vpz&6w6WZ_c8WcR}b$bLK9ZICHwDpAkCcT}s+EwAL>-OBBr@5g?4TzbnDSnT>Pi zj&BUI(#Uy4o-zKkMee<}-J-eUxmh%4+UfRtw-FU{W)>@XJW7iGnq4S-)nL-Xy1otoq>TsaQSPywS_n1Ro?# zUej5;&75^~a*80UKPw_Lq%i{L`&PYW2w3?Fcj!G0IffNW){GDAAx_@5ta-h&A@9UM zGm@mbqno@{E50mHwL_fuD7H1kMk>d-bwQ?o$cI zPa$L2KDk7P-rm@$4u(f;U=S!_K%rF^-<=uVIODC5GBqo_d`?e)t1fhl=~6f*QeYc&;1E0_anJ)NV(VaN2T0r`lD0s zHT^Lu_nQ9LlzUD8#FTqYZ(Pc~rZ+z2UelY9a1>`l=5;j`P91!N z!8YccAZ9QCS4&pwOCF9_mS zyNa`?Dm)+&*xP!%rQW_y4PU)5x??VJ4j?*8PD2%bM)XJA$fy}V7yMRkjblL@+C5PjW?{CLBfv* zb=nfI6a3ah!ad?&(TR{$lb-%*XCIL57w@d`&Ytm|k4d%#UAH*-ovYbMiup0c{0YVU zDaHH+!2ZAI`~DFs>@S>g{8d(&zsqLWdq!9Fp!gZ>!U0C2_&wXVORsj{+6$wRn+JO# zAJ&5IWT6y-gr5r9<-((Am!aAy{OMpmw%t$P>CZlow@+d)r}Y(Dq<32Tqzqi!K3;E% z+lS)zrMUg!deniue5{=54TZZkOg4BUV2RdK0cf2M)joaNx6dRpoJ@vO$nYd;u_Q4Y z4-W>JT6v3b8rN3^wCH~{SHI+Eb$ZXI!l0WCn?dK}rLv4!<5b%sPJ0?~=KdrwV7lU+ z4yY1&y*s#bxl0eKghA5cIzpGcE-^b3PM?v)r_*nU~DU24Lpb#bENe! zEq1b=UUWU{VLYa^u{|gDwqhz^8_MD5!BM;r%=3$6kascMrb}d$cPT<*D-umm1M@}y zIswAIAgHN?5Lm=}v)Ha_7maq%O8{Nq&Fe_Fv|gvNZ7tj_|`4#!fQ|YWcmClx@ zQXoajRp~72^|C=jZ&cr=uxwU$nLgQ~K6otWDtqNzWv}Ebd!FFW*dg(i5VvP-TiK!xoZjR~WrQmzZj$HK~FsgxTuKV`C@ z7;O0{6Hgl7I8_-D*;y&DOo|*+BnYVMKKzpI$^}Sn>@8CyB}9l2%3A0+1k8c(s<;5E zvmYC57aWc3)Ru!slx_;Vf=wBl?UJU9J#|8T*6Fc!$T{eMHjgt3png;PiYwIN*aumN z`Z)ifU0N`*I^ZaDunYJgjD`+&44OpdK0@o0`LxXOAJPTu^T41A0IY^(3Mi*GRpzj= z(&m8zZzB+ETM;wPBB-x6-BDZ_1taHl%XP3#nqG`R5E16 z5omrwovIfkh9jJC-|`_?9|+_sR{+Sz+as{E;ZeXsQI5z-$`P5N@9ybH_x4`d6;5zT z4x=rmd=IMofL`Dy1Z)DJiy|BiJQS9PBg)QKl~Xc(oCEYs>Hl`BcUiRe(li+1w(p4` z9oCiwlrC*&8ebaNL_1M(0R1xL@UzB%{|0!Qv(+8npC>dNdS|4Ov7ydlBYf7X_090% z=xVA>n7pgZB77fzOED^)SbO#knH4iGZ75E2j8)W_9E+WfzFd1*fUa4cIUQtg4;_&? zOe1RDxg#`)BWraiW~6>fRp7^nw;C=VAFyqbx_4G-!0~e0J#+{{PLnEu1wk8yH?LGy zG(`&(7eAm*WuW7jO%+;IF6;~ew4$9cDDr5F@zntv4p$_PF*>)TJnAb_w_0F$8&!|%Do=) zGi7oWoi(lNkk@oW?(UgBdES+u13H_4?-a;IgL{l+c$8rm#;*>mq6F}NIchL1w_24Y z9w&%_Bcnh;Dm~B#vb2uv)DZY5$4M888j}&oFEcq4P7_XI*Ht9Yku<(#hA@-oP>2$l zk_bPHCm!!RSF=UQt40?ge_;hW8EsOS%-mAzlsQMHvyq-b0#oIrAj8yi(vaI@XnvM9 zhNDoTt3pQE`cTVc@~&))NPaQlPf3JNmJMP)Ql0a(6fNwtPo?TI%C?%w=TNpaBru&4 zy2eN?TaMc|C(E{ppsY$6Wux74+n4QflHWo2nThbpvgu~GI((RRyOqedQMTJjU{=<4 z%WdCo_Y#!FGF#bF`h;t@$4UMP!p}~GAI=l~rd{-#mQiZcFGUn$iB;V;)nG8A2CdS!tnYTTQ*u}gVw)PF}D$6#`)6xh8!e3x!D zeKAB9MYvH@;ioP*8>9B%aQ{GH0 z-F8};c-p10LXG5=*3}*m6c9DAcqmxWG1hUFGe!*T8d@5y}Xyd5;R{hq;*BlhJ zUZIT=+9kR^bKN8K4491FiTdjEX_K<-*h~)D}T93lzH0_cu*H1{vLCZeA-Nty~x%-W2Vcih_Ani`1(7D zum2eF^<#tRJcp%5fgaDnsOhKI|70@Rq=QCSR z(RWkTcamN}voBLL`!YGDKvx)rd23W3DE8B3mc9VRzD#C^6~n$vCg^3ZrU8(BnatPA z0==B37trj>6wSU&&d?yB+1p*sqOdH6xOd8^9b$QA9A!c>c3#V&-P$c{Q|W5Qspz~G zjQWf>8MyQx2`2r7O!C|zRA=l!QtOf2#M^_tN&nkKrdUY|r4VOiYqWq<(iPf1>w9=P zFo10IY%Oc!WqXl|d|#7Uhr`rZ&yO8Gmg0A~T|+9iP6tt;^#hXpC~@ZV6S5sh%b>-a z@l|v$rJXHtw3_@hFxfKeWW!tb$$u7)zAClGY2#Zb0!5i06yeCOPnHe!f&iYp9l-oR zAzFY?zcj+C+$#bp-A94#xh#{Wurx>DO~VCPq2Ti?6_9?lUd~Z4`!%wb;d->Qkb>2N zPj4A4Y(4@A{bA}Gs);9o<^gZU*l|R~;f`9cAq%@9wTbK&=*WQc|9edNOc|z+2vEK# z(LJ^QWx-$4#|aF1Yx3a#9AF-af-)w0cfLmN!l!$+KGvm=;d zd(YIQ6kIn?H=_B~P(TIAl!`JYs zJHmXoBh)r?yHz~{X8;E6l$LZ#@m$h7NcsvwGHQeHsYw^KPx@m7ascz`rH10mYhP-& zUyK9Hw=Z=dV4N)V-6ZV*<~8WOe0Od4MM{Iu;DTwvS?aKZwjl35An*N)`(3|+hxyl^ zqiF91tFK>n;|WU4=XHY|D^j?3wMIppP7dxJU$KLGFR^g%rO7foxc5iM^f3fyA7@kb zd0Kf74Y?1F$dfWozQAtrX*$HSkos7Qf?qN!XtE)6MD2?wnAo z=(cKKW25(V{BQC^xhrl+%p$ICm-^Zh!f4F_DYIblT@{W2n!B7mle*nGr%#sGF;afZ zC;vU2_)lzo|IGI7Zw$S^ldeO{*M>|3j;~~k+C2#zUxnCxTA~(-o{duun5_O|JzrQfQ8ByJGc+Ga424>@)+BZuEhXSgvrNpU*qg#rv5DC zLHsQ%x5A}Nf={^wb1-u@Y+14~5ZB_&O?jDd^rZzY8`mJmbre8X3d0$I-GGadCG+4V zd8eI7#8OxAL>09i-~k^^b5LLn<_;R%F-tB4uia!I3(cXQ?HssP^BC8fx5dq8R#dK9 zq5U$EApQ4|zDnZuM_kj61ADZPEH?yA z@^MO6LCE?jx^$Mo#duo3g~NgX5h``u1s%Y!P$5rwzdq)K5}Ybfo#*G+)YNx1v{(L>W`OXM^@(8cY8tMnH(0X-Ij5PDy3l}ctdIEdJdl9wmSrxEq9@M+0q zjSD9vNRkm%f<%>aJn5dCjdY#p(fMzm90VPxzr(XRHqYiz7%Ot?R!m#Byrtcg^k4x! z1*S${HOvR+K3{qAdO1Ze(+hYuLtkK(Z>r49he>^EKI~+BnUl}zJue?BZ$UmJ-okw4 zSLVYLJWHRQT|i*W@6D3M8jVC}DSxD|8seL#hWMtbbVy$nSLv(bD$7+;g}oC(Dw-EU zD(sx}@w$9z(Z}n;`cRp$% zdl5{}oO>oNS+{k`CIwkjVQLJ!S zpI~krDrgi8Q2RK@9Bh%TVL3Oj_jaC~A3=$2U<9qUiy~}M@Lj9{FF`>}E(@c^l4$C!)xUG^(7G*muA6Ja+o5F$MLPUYV0^N_DnyKBdpPd}6wNFRFi zDwUDhvaxx>s&#ahjL|SR@s_cWA##y?%hbLkt|e%b${bh;MicKzEPvC=CG>k6xFRE8 zTFJd6Wa(x_Gqfzz&9i5?Gx`EVAuI^0TB(Dbr^ux`z*%Rre53e)!;DY!x~;1=wyax= z49^^0%Q7dY$!Q_TKg0N6YE2-Sv7-kQa@`8ow0IKlnE~rEs+J{KTq=ajYO;T@v{d84 zsqDoF+K+gT(J}DbtiP zx@3G7(pAe6%z;^ojT@KHLVeE2C|*25yf4up z&D@sx=eo^k7F14K%jGQ_*RmRBLFG(&%`oTNA?cTy^9KfVm7dTt{UF);Lu9J3ywejI zWOwpvMY&eVJysd#Dz8falm~?#DnAw~Vyi@Ol4X>jT}SZP(XKu4IU9on1x?Y{b7`X{ z&^;_sDZoyskxNcPh-Hw{@GdQuW&(+re8G)O&M@l#_g$oqT1&OZx^Uy9S&=;Dj?_Odp zuyajF{p!hq6Vth-Bv8AQO?xU*^g?@a#cR~z7%kQ{k7gPRA=u?;Rq`_L8)U-wf zX+?vyRC`F%P(h5qYGX2qD@o!iSa{daFr#RIcsF%>A3fvm{wQg>R&(9-dhW(hVi#0l z-*lVQgP;{yY4?ZH(ad9sJ5USYow=P;GTU3(Io(DrZYS=Ew6#mCIw*OkpxVbMUT4q8 z6ZyL>+g*GyWr2=|TkPWX$JH{ZcnM|bwMTk`2b#>&mHR%zOeB;ilhQX`Cysw-(HKUy z{*)izeqx)uaTOxAYnrXZUb~$Z*37#}KfUx1%YZx?SU}&YR-5KE`mk0nbzvE-JfeQO zH9b~kxsKD@p?Vpnm*ILDp%;{lk5~5uy^Pf3;yS%FggK`_YUYfScw?1A@@<+^RV{Sh z;O_rO$2*PRSC-yt+NOay!E&Te$wJcq zzojLdv9D;qGRK=wY48uOlxvk1nzv1C0ZtnVdZII00SOKjro8F-80c!=rX+CiN^#EF zD8wT`p-*pKw_@{32>XmTda~*IcY0E4um)mU?LD~kgS1ui!9AD)4Y36B;D4zzT*m0u zKP3yC4M-KA%Cg8;*g!f*>0HGK;Hp96XAZ|yS5#u1@5<=2K6Svsu)Lw;iFA+DKkzpE5ULYaVu<^ zJ%Th(h7M6}xc)9pa4%82%{$t3Z)Cc@g%aKh33VH(9K%BE%9^TmmVgC^cwn6h3}S1I z-BNci48dJ2(>jUkX)2sE-aWwTr6p4-tU_ewrn7n$jWLZlo$5oTA*b>lNC1wqzF5#$ z136Nn7^KC~&=(6DaxBPlsh&d-z|tp`Kzqh$@2FxlQHZXwT(^d3F&wb?XUOogROoYX z`yPT>_%IcFgs=H13&&&7g-<{Qeja*a534cYnes*Ggl9Oj)ISJouAcNwu0DDI@$GxB z_-@xK1f}@t0oY+zpZH*Gw+g*kfIu*eyNNP4Ec0?N{@o$_rw``q1y0^Xl|%AXR0$Q> zuyXV!sua>hIZH2R=ksonUKZ;GX5K_u8g^P@PV-EkEDtL;ubZq4%PPHJ9ae_kL|GG- zwd$@zbU|I^>8Yz+J-~bllsQvC?avL%wmelc8=#;*6IIu2qUxGmAQu)WvV8&63}w4i zwa?~Q9G_$5a=ih`=UB_GDS*1M^+d^RgaZ1EP))NDaxLqpmVbnne}tC*ItBNcsCs83 zBff6Lzws!Go=_3kRmn_1xfogGt5P;WN0EmnQjuA)z<7ebEndc1 z3TRFf1H%pQZkR?VuE9d^-0kbx5xdDeZSn7(wq(XD6tL~=!i!E&aAJ{BG1V19VdxgU z+$x_4U{_{kSxL2xXD`{Vnn8qB18N`;I~JV6q}-!?H7@s|`JQRQ!G62u70TKPEX6&b z>^O@klEJ#tz^+ZKdQg_+>|6LQ6I!-K6jUq=ej{VUQI$ijWaw{nXsl&~BKKDf&y%?J%UarZHfkbKXGJSWfV<%I|`?=P|5yV*597UwgtTQ&}B ziU88fw|`k)iLizHQUuiADPegnqSlEcfP#ND0wVa=kCxEP5-vWrEln674>06bG`F}x zWT1y4SapRMiqj_8X9bjM$r?woOyfImg9r*9TKXt>mcal^G`|xT&|8;F3F?Ten$l<@ zJuP()oOP*+fWMV7EbXanB=PkacSdG(I5}moU9=Fy8Fj{_;8pw^#OFhuYd|u$XD8Sd z6muT6-NffiOSVo5Nc~Z~qhtDA6eChvYGg_Re2a5^+My`*K+73R=NBP)N zHK`?>wT=N2Ymd?r~?K!D(>}+<|o0C?!5|Y*Jn?|wQ^2S%P4(9cCj}s--lK4$6bio86o>|&S?0R8a1)CUA?iCx#soYlw4A=rIC!Di4 zj#qLL@7&&bAObXl*xjp;qtneKUKl$!h(SuuwA^RJZwQCJ7;ebxBB7D_okkXR8d=n7 zWHCr64W;a?b4%rti|!C>K%mtsc;(fX#lpU_DE1+)77K@x-ki9XU3I}{5zKp@T$S;m zJFq%_U*Xwa5q|@&!YXfPPuz>&t2GCtu%UBQZNfx$hi>-kyF|O>?#4P+X|zkUY-V+| zY)6>^1Gx)K;i4T~fFype8a1fSu{=Ft=(O|D%T;%%-XHMt$Cc+}z2kWGjm%f%_~Ma; z>XeKGJccukk;PRdJyDj6R@YW3pnt417Sh0IGFFw0yJ+X33o>7{9$G;OJ2y}kTSEU2 zetk3=4N4eIEn(D_Fd8pm7p&97xI|q^yY4)+|36pK&Dl!2h>~{OBjpDq)Uaetq|7_n?H`Q%l(0mau!ggfUmb-XB2;pO!ug%lbYk z{q{-!{ZGq)g=GWx$)Nq^`OJ>YD&1qDa#SV2oGLHcDVB7V$e(dY@mpg5g(Hankw)}+XPYRNKdJ#<9Rj-QNbFoqkh3{qTx1sD zKTDRF%@`2chIZ$9K%efwI>@!M(%dAgK-yc4;f8Yn$6I5b8za!u9e=Ohhe58Ed-bOg7~?Q&A|;rTP@N#M9<^%G5U>)1`U_E46Ae zXIqs+wTVT!HnAqxCYR)AS&&I*nqK&YaKgB+@KaT#6;V|QiR?CgF~H{qX6ieY~^`$VQDdlEMAS49-8g z3|s;0j3V?MI+%<;`skvk)Dz>3I}g2(I@+Bqf$7PqcP}hE^_E_ypVXNC7zrF8Cz?Sh z_|`DiYO%&shgS7qtnnO+HuZ7xAllfEo8!@_J^_vDk@5}GfX%nDSpS)bC7wy9hnbA+ zwkf9GOyxSwoMal!sb;1*%K+|)Z;P32t~PVA#IulZhgh%cE%I%?E4@Xo(caQwPpM1v zl)6MusY~>f_y?Tg8mKO%Bh;mIggV<1YV7OU8v6!EAJ*1#+)}sm&{JtmpNG0R+KHi&}c7SHR?A|+fUsWI4AvVA zhgita!yud92t7pPiiVsZ^0kMH?9!>qD*u#=b(xQ&6U&sL z9*`K^lW?bzx=lI06AN_Us;LvbFRj3XRm|^IS75ab6DCF0LpOCE-9#WdrTzAVSQukA z>SFjzF&9RvnU)4Mb2CaWqnGJ*%(5qCtV&)Tda$~-PJ^9TO*H3;g=(#b6nHUiWS*8{ zAsZ1yw~CQ|Dqd!{CCke5&RG_emA56lE#Ym6eOnT|wKd>vDQ`=8TWa5y25(Et3(E7B zjVx$A)T_Lp)9pLu_~I@yzP#X^mSm>nl9GwNOC)OV0`)%a88_%LC3+Rz7-7c%g)xAh zH3Y+ABOwtc0BU;*fVPbQ+RleuINKbcm%MHD8zK%r}_kzDY0n7Qhj2103;f<6&T|CkDpGVqokfjEl`Q?_#9$hZweekLm44 z=5hdJ6@)}lqZ#vzP58pNUT(4{=js#46^ASB$?Wvw)hWkRUUdg!TYvqD+Man5Kkb;Z zWL-A-9$*||f`(U2rN;;5sb~-KetMFMU`|ZsdSY^HSca&)&VYQ5&k^lG+)r;)q3iuCB?(RvwEKujcqy2#itYsOJa`e1k>5a}s!0zOU}q9`HlAb=6Bz2kbfJGrY%nsIv?}ps5g1~1 zCXmi`s>RRv34)G=xPxrRGF^q*l|^D`cUD;;jqhZIPGXfknRWIQvQ`q20TiS)fgH3T zJ)B&RioPH%bfok)v!&g}mUcVEKF_AtGe~a=^pjFhf$WjW3B|%zQs_u&K8QHY!_0n< zNH0WbgloKMjw~ajHFbQ>eU$7;WQ3lgJc_j7*~WdA`Bh7`niaS(E+h2Cf*CcC0G(7e zXsp2|9KZ9x3If6xL^`MrnYuXpV{uGoVJeh||Byvb@Tei->7H2*s2w~nYdk_Zt7+f;z) zurfn|N*{WCskp*-tC1xx_v&R=0zSB+J=v&dy1~i6;s-yVf;iHfqdYJuJ=2@W41~H`g!FGiC^sysK4_Q>>@@#bkix=r3@QRO;egozq z`^gvs)RAW?2okVw73Syb*E6+`O6W;?7$HM##Ed*1;cRh9jJ?tO3Oy_rmU0uvIN zfIt#DM5z)&0>Lzr&_xKz0FjVj3dQb{@-)o zdowRH6Bc#<|NZ&@h~~bz{oH=;x!-&4jWC!P-qK^oE1+fHyAem3&jQMH2TO+W_YL4h z@8AT+1o(vkOul3rzof^>z7@i0arBQpjSldxW)VlvY* z(>Lwjo|WNoK@|AxC4mu0HeM#Mffjd->q)c_NI+Iuc%*0qQig*-N>K=;2sA0;0i4xH z)C;mr&C1Y0%+N{;l#~YWj9pI8d0m$is2aPRF{qk^^$Jz9=W=$#)9+a@GAt}c=6|KU z3~d4p-S49ypg4A^^~<_0H847MsberY3F{R`XV0a!(K}iHmC`cg%qndUz@ zGIQ*5=D5q5qsp1{@5`BOm9y`Er<^-zpLuEh?x6m+(*OX+_MMkD@OBy$4IIP#&%iM} zUdX_)WH&xS^Fmh4PX~Gd6ic82NRO@egL82GbRfWDBOxK4i2tSlFxHMkvBMw)T@Rqx z>5!>hf^+q&al&;2q{nyR_kEE1KLV-$Q;_<17+ zCgS)i1E;y!GzS2c1!6QnWF-Kt%mi@kAe`r*(Mh^Dyxv9WHf%$P(yC*%KhL{s55` z06bO*@K_n0Cg%b$wuH`-E9h)_7@Z@JqjTjcbe_b$K6x2{WLMJ#@_M>Z-T^?_BLI;- z0YKSPbg6t9V6ry=CVLNHvXAKs`4s?V-_ey?0&UjP03z!T5ZN$*$i~qYt%SB|RkU53 z2Qb-k0LTsnm~1V;WGCSFX#kU*OZR9S04Tc#fU<1>l-&tH*$#lo9tN1~34qC-2bk+VT4^ z0LhL8knBYIn|>bsUB425vdsXLT}vP9x6vp1o%AU{W1s1d(C7No0GYi=U+V7zT=p6L z570c{dlKjePdA*5SCZb zNeuFK7lXa~id^q7k>@P{(q<}t&k#esGsQ6P95LM6AVzrG#7OTNG0MA6jPV{P3cM$a z{k&(1{k<26vEIvYqH?tu@4a0d;JsH&_C717dS4gC-oJ|jy^SBO6(|4PXMVsM`o8{uyQ)^K7u&4@iv} zMl=@sE(xF;6xi)t^~wuaL-C@Tki0`D=HQ1f(~BoGhAy6zo3maDo-Gn5^{QO z+Wm;_X|sR`1RC(y2?{qDx^aL;w>`kLZQi{roM+wtr93af15-@2lPx3PY~)-VdaiTm zq33=zJr>3eFeV(0#g_cpa89g-8j6GdQ?<>Az?gb|(uH(-03civ3&|@E#``;qph3Bg zvM{Ul7xgqu-~m|C29?3!8!l$pwG|;;|obr8ZGj3$$ZJs>Ktj7EicZu%#Sg;b9p+$p_)Qr(|6Z$K&sF zaNfajUNt3Pj$p;={+ywc6c`UltGePE%<`zJQgzI;1Zq^rBT}1oKWYcH=Lnn12Rx=Or@H#tARnbJqVn0-u-icbKg{gmDo zpV6n_K)x1V&~EW1#^_ffNqi%6#CKvJ@q@?{{}Lm`kKzFFlQ>Z97IPrvSSW>Plv1pg znpi76;soi(XiP+Rh@cja!{|!})jM|3XcTWunf(P!QQ2*nqL*Qcd_M|`+MFNWq_IA& zfVET=0FcN}mGRfHCuj06UXTWI!(=86ElAAdK)%eR^-0{Z5^^&W*C%38V!?y;(}SO$ zf%!vjP4C)xh0O5l%67Hq&Dcu7DmlWqUx&AU^A zz6jXS2e2bQJf`wQ7OotWEu5aR*)P?z^a@h|Sc`PLN}fR}GLwR`8}*glDOUz*l+2<6 z*@MQ)Y%0Xvhf=VvGi7gD06cyJuB^4;9>h_yAMQQ$2Map@EbG2tRR`jp!yw#Y7)&?H zJh}t-BzDN*^q?F;Psq{qoE$?h%Khj=xj%g($I;hvBK=E(jgtq6Bsp1R%0iJNr-%u% zNE{@milb#II^hg)mOM~gCdkXgUOB4Z9-_&pg`y^h22=5~mj{Zm8GFIbNfS!4YjN_iPNmleCZjxmIXrSR7>*lIIX40rc@t9lW$;Mw z0?<{O4v6IcE_fu)X(0AW2FNA@5Xme+By)hZ*#{8G0T5sf2B>BPAd>q*C(i_W5~8oC zAmDli@W__{k9>L0@W^v-+wtcbZ20*PyTH9z=bUNrcYx&Y07*Vt|6i(Lt#|C28}7Ll zd+|F&GJyH=e6jgq`dom<6I#P+jMlEz5n;6_Q}n8m;aLJ#nn-dqTT z^MR0rEal!+0QZ4dc;&yku7KYTyz=K(fE#i7L)R7X+d*9JeFeBcn3B3K z`fmq>x%WkP;W7n3_S6Nc__u@0+{>c>dZ^|kR%8mDeqO*e69Cst0bDZ+QtBM&^&1Gd z=13Y3pymX~t0w`fIT=vRDS&F?K?=Y%F9BThYMck$0J!E|_Km1Fks)prz4(YnDLI-%P+Y=K-$S0Mtwi z^!s%Hu6Z;76DI+pc>&;>8v)nc3?)6=@OuZ~nhyZ3`6!SzFXGYNPXO2a0>Fx|0N4B% zt&@@tlRm&TQvlcO4!CA7oN*5aTysA-mM-vYSiz4-kQ;F?bWuK66`nt#Q)_@{tuehJ9t*MMvONLOeYZPNUJYo^jw zT9B^Rdeb%92)a(&pRU(t(9PN`x&?avZUtO(i`E9%=Fxy_o=iKma{$-80&vai0N1<~ zaLt|g{V*V#PXe;}JahoQ3E1XmfNXvR$mTbIYyL!!>pDH5C(x6CYd)oC0lL`-(9My6 zZjJ?X^FVq9aLrfsgXuNB5xM}|0oyzVaLrQy*E|<+%}s!7UQh4qTL9U-55ITONBUEM zZN325=39Vmeh$dy*MMw(3%!85>1&UNzVQU;TTeQmn?2|sp1$-?&nWtrXB_?LDHFmo z2N2FhfN&lH2xkW%n}-9gc|72nX8^8wDd3vdh-A-=fNbu-@B0DSd=!w)rvce~9gxkB z0NMNudIG-y^5}cf13E&oy@tpET(hS)Q}puYh~D0zqMvt+=Mp0*M0`$%e@tkBsJm)J8_-8{rfw{1_U50q#d`ygmo%I=B=70{R z#n=AFK!=XDLkCicSqCsr<~ZGG&mB(o;ty(S{m*B=7iiD;q+RZiM(_V>(&7L=<7fJC zIMdc&ovD?Bjkt|qK;vh8zYB8qJmzZx+|vuVX99rjNq~B0Vb<&qsOK<1J*xoqoR1lF ziC7JA`x12>103{lz(J1$9Q0^F&5ogG#PRehl;gb(<#?ZAw*6k5EWFUi zm;k_McR)ZZ0s5Q?$mc=gTycoFP_&B;;s|jOLR~D*2lVp_KtHbm^m7ZKpAW&dOI#_Q z6IVeI+O>d#UI)T@uZ%#8%{ zbDVet0KrGG7CwfSdK_!r6Ijol1XA=VAVr@BQuG-hMV|#y^mzaTUjRVxB~?ofTJ$6v zE&9+eK#LxRlz^KGqeagGr5yi+|t+3%KA@wP<&5MiXZ3&a7J(8 z63ZvzC;F$@O+NuD>IYP`JD{RjQWyOJ6&;CDy1xvFLYXM0%Oo*NCW|_mB38;&(I(S? zEQ?7+B<;V(c+Q+inNo=MR z%MOHSf>sd7(pmM^e$bi)hy4H~)ft1jKLb+7GSqV%8{_NQj37`C%ktU~R10Z-0IS?Y zG^pHETDcCekgTx?RJ;V72rO$NKRFx&KZR!!Jd@Zn273xmrLB`aBf!(2zW9#-Pj>;- zLI91L0F9=Afe8XM+83bFT$u~tX+D6bLjXJ-3gGE508fVlcsdfm(@_APjt1~_3>fnQ zFys4y3Ev-grpAK#9!Iyx33L|#rT555bf26|kIO=ON=~6??BDQF0ytsPjdUTp$+9gT#??p}15o!F_~!EJ6+9 zZW$7f%cbHKxg3qZH$c>t=q52h)ad}Co`36`e+y!&=fA#4EEk>xRv2bl zzfLphbd%07=}dNq=UH?%8|Scbt{+;d&S&F~Y+PW_g$C9rN(eQD_#ry$g{ySy8KX{b zt>Cee`X<0ltq|64)>??`CwMu`Xl$F>*xJsoX7NKM{9>PirdqFlr7HZYm7IFF4~SL0 zO+^mBgP7UrS$iuK%fs~|KwWX5RMyxWg7U^Cq1M_u^*Bm~`{>CPeo(0rqYtu85a+Ao zXXPzoL1^*HRZJ+-^Z+o1V_+{Ll5QQIck9$n4jD*ELp60#E%5cWhE}$$ zMhzxfKPq`tF<3d(vX|AhwHI4`5OvtLym2Wg=^l@2)x4->Rjvf}EpKdXZ9yqhKz|q& zZFRl$PR-zSzJLEXP{Nwl#`cg^JVCwfs&8x=W;s=MwBt!i9C(K6R;qXD{NdLJ+YGu0 z^$MQ`Cwi~w=%vl>*aj3@cLr^zxThTpPBoTaoE}YM0ub};XM`V_97e+f5crJi^nQ?) zZvc-xj0!*w1mkilRygYbL6@S^KpRH~oGVj%|+;~dI(xo9ZqIw~$vqxhSIt#`Q z_tHKS`=~cE*?_7$>0b~46mtnz!nN!M<#u|-tTO1(mHB;OEc6?6JwJ7c>bsGj?yhGw zjW@AcI=I}zx_y_?3_Y4Lu*Q#p`)w09;0Mm_gJ@jZTvy$4ISE1*M!;2^?X##y0-Sv zN@w1yZ&`)eF4vu))j!5t?+|vH5=zzRveN2kZ)~!tL-P94#-=7tCeDOY8Ydy1TYm9d zUpbv;Ag6z*Zh)nu(?sn89pt;q=(xL<9w!~{XGli9u{td7kjB&C4WXrV9Zl_X+|z)m zCI$3wK}xw@B(iHjV@k8*R=cJEgXaUpq&`^IO)#)Sa0u(AW1z5xalyy%Fi~F&SM|kE z$Cr4tt1refzP<2=(GG5AJbslx)2YU;N-vI%1K-^IZKUPqXWv1P6MFFfHuBzz5CVc= zg7#An%tma`XX42B5U9>s0g(7gxQ&IV*h;fMQe^hp%uVschz#6_*KILCB=xJ&Hd7%cx1t;i;F6hok8oa>k%pxWQ6$vHc0~D{1&9hP66y zDJ(tA526_!qC`O3lOgOM&eQSFDN&9^a#tm?y+4zY`nF2+XO!qgWcdI#(9W%m|ap-Mm8R&J8>~RanQ!b$Y77%3- zs45J-5zlx)G$ z*bu!`*a|yr3kt@wzyaJ%x=qZvg!m;aO$%2o>-O>GG)!XGo?+K<{4kF<2RHlShBv1o znW$P7n9Rg5@{8e+WsaggVlE6kStGwWVuWn3sUCd?9eLm3{12hnjlC>C{b}fmS;ct#&@rofl5G-cENvMX26@)HroDwvb7-zL=9%PT39U zd0l4I0|}A10$p$urHL!?YRI4Pvd^_B&~?agJ`Ojnf|Ou7;)3j>QsUaN%TN}TbY7%c ztwP*}O4^FF02v*yl1_i-sTHe(&5y z@axH4Khg`Wrg;#r<2+0$5I6ULxVbOH%_AXdJ^-R-ZW?C+_!N0_FF89>g;<%UaE`n# z6}Z=>eqjRGJEq<2W$DSyG~S6mQpFhg2<=_eXDuSQzq!`78CZe{*XjLub|nc{>bv7g zeSci39|c+IMDY%ub$J()+^bYB-p2&@0Zx=Z#A)$II1&B=&o6yRN5lPi@eQ3RzD3a& zhR6Ig6rCqNwZ>kCHwm1Y-Sb596Gq!^%0M^Bl2CLlH6(g)IML~LqJ5AW=6luxre^Yt zd!1DMQDaz5Ptr?Muq@r++<&whiD>_A1$z1wM! zW@)?xM8oNW#*cab{5HyC6GPnFv_A0;X$H?U0>G%JC+J|w1=W{w4PxxAU)zs?JTNtZP}ciDkmJUgV-D9u7yK> zB^2V+cwdZIMRoPdLk)IqYEyy8`~#ENodk$b!tK0 z`3Io7C1=lKl>o%GJp$C7f*g1%Yoae;o}K1y%B+ zK{NTbdyPT00Wcl217IKEH<#vd0EjqyGI8$0b|Sr#9!Dck0L!s1{aflr^^f4nUm;)cx360jvZMhR2X2Xm zEj2*9x3@R}I!kiHA;K~s7g3N=tzr_Jn!A=#*n;mp%UXZlYvLR{sCC- zroy)`rf(~Q5}VUyt_;aOqE=lkX9vl7`t9Ul{u0iZt!-%rr)}+Or$bOsib5ZV)XLzB z@$;+GtU{VIk!B6jtVNmwuywWQEJaDUiu!63vbh?VG1anB4FT&1lmz2#zsn_`KXe)sMm!^WMAxrtz-|h>$jg>yFIb5HMw?^a;;xj?tQ9)-;GXqF%qsr z!b?EoV$>%uPJ_bqZbVZuZ`fqhyVRj~&KC0TpaifMfwV-tL$rmGS(ztv?4$riWUbFA z7@i;6M0rtRtu#PV`gY2&A}HFPRz<%kLg7B3jj%kMSSVAmP!5H>X(Ba&D_Q|Mm&05I zzrkT@OV#pCG$O^g+dofBO}Vdfo}QX=OyxXJs-Vhw-c%_o=NYNmA1ddWsp)V}@oJT~ zksirX@l(KFK~#yXCFModp5nX`Nh?hi)t$&orbzL zO2p$PEb(ohUDw2?OMAPLCa!A7kxgh>4P?Kqh_}dD(3~43U0gKzWzK_{QqB<Iti85ZOr?kbjoy-xjx$L7Db3Or!yv+6!Q;4hvvgG{T^f0cJM?5R(-IAdKGMps@k0 z4=jj}JA68=*wJ3i(8Hw#rHh(+EC z`Zl7n`1oXAF>i;idmZn;V!6~EJG2q2C_W6_+jFpFDn3Q16f`O!J(Kl zXjB6}8T3^nZX)#BAur#G`V2}$mh~%;d@?(xI*yretPggFN;yo9DYX@Q!!<@&eDf%sr1*DQ*mlIUEs@#9;? z$XpXlqJM;|LiNa0Y2kcLF7PAH=Bl1L^sITm%)QD`=N&rblE4Ju27IW6-kyxI6=D zNiU}-<<<1GyosK{!#>Z-yP>A^5qe&}LNCY<=q33Dy)1vAS2RDps%6t_+CciNHjLiX zM$%i_SbAHVK<{YN=v}Rv-qY&oZ(1Y0ueH(#S_gfo9YY^!r_#sTCG-gnBtF-+(ihrJ z`ciwEzQQ%FueFcqAGoIVPiWKsP8ak&u4(;%D_Z}8M*Sc4q4bkJRS12Wka~sC^qE4} zq2*p*CcOGuVdzH*pMIk7>$q^CpDzOXMv@FlJEl(0EBRs>Um zDHdbWBiKVRCcaY;$6`#n!MEFrU|KLkF(xVaB2u?7W8(P~d_<26FO_{P24x{Q2v})t za8 zrLb$0xmUTw?i_D{4(?a(c5=9vpG_F5H_d9NI7!5x(_QV9(W#x%B5aUDhs6eU(Lr;V z4N6k&63*iF>p#*PyR82BrHtE&{{OCd?xf)0j`)>BrOS%`xBdM8@9I^9 zcwc)ED~7+DJs&wk&$S(lUsu+A)Xf^RKWEbtJw0<0kxcPH-qc-BsC1Jdj0P$J-jdd&DLWIwqRnCwd@z5B&gBYUH+a%nwk+W zrQ)Eye%lGeG9vL4aV_BymXIg8B%8}x6HLM4TY?c})8(w2UGg@r#g_*mxPS^_dK!BbDbQ4kF{1+m*1D3a{k<(MsfQnGsA`!yDR2 z?K$&Um$er?4We0HmF7g>W2FUyK8w}0cxbDhoE@!xg6Ip8^&Ef#=K{kvAHdKBK+YY6 z%dh}QibXV5ECvpx4p74-Gz+Rj4i+JRz8Y~Ub_E>^G~^jTLtZReuqR!GedwWdt7xS= zMLX@p<@jCLqdq0p&|kz_`dF-^e~H7yP;rzPf!B`q7sudDm1D&e@dr^ZjuUgmdeJD3 z7wg1{a5)LTPR6zPQ*Z_TRB;0?$v=SiksgQ3t9T#jJzSRmR-7vn#D%y*yFq4(i)2t- zEc=N|KgqMiweoUtoxDz5FL&VL z{3GI4`7|!eza(yxuj0b|TevX)zSu5561U55#T`Jw->IdFyR^RIZY@{bqYV-FYWs_w zT9LRi-a5dA#ClPj~T+XNdUT zQy_luj1~X#OcpJUne2H`rg)x~sh(G5n&%^#?)hG3dNtY2>y_Pc&>QsTNWAbOdw7dvPw#=Umv^@8 z?G4F3-qo_N_cS@kd#)Vpy;$aYFOzxRt7X3TPjZO&HoVeyuN>xmMh^GBC`Wq#Do1(W zmZQC&$T8l3$O6NZ`x!ww&gdh@8+meqF-}f24wRFOIdY0|uq-k{a;mXh78{4k5~E#C zGme(ijZ`6J zs9a!Asug8NQwJY~LgD9N+WuT;JRB zJl|LHeBV# zk=OfI${YMg$s7Hr$Xop9$y@yw$SwZM#Zuj3OZ}&eZ@9=*lclf`O zcl&>o_ap@5y$L<#&VAj$C7dpwPB>pa zlW?JYHes`TE@6v&KH)+6Lc%lhrG!`I%L#vxuO$3UzMAlXd@bQ?`Fg@n@-Km8`9`3( zd@C?ez8x4T-w71TcLUXUnNhI(1IKH9BT#??0R>q3>4-6Y;1l={6IBcpV0Ngrt+A!K zw0UVu6hQ9~KjbS@{S4kRX_`sX`H|^THfFGKARA>Sm77$-fhtX^0(Re|YCk*}r^SE* z#807FCe7yW9Fyh(A7avclNOkCkVy+oI@qK|1}!$ASBX+)7gtQJtX?#=cy@7FWmR!C zZYZhaNB2cJoXDolF0QUAt*qdHi)w1CODm@FrPa2np(P#506G91tTX6omW+i zgq^&VBhEk_d(EtplG3>Vf+>&M(sBgOtf?w4DlI83Dy(I4?Vz|e8|}`;R%xm7S5=pm z7go;$c~0U}3Tu#D60Y^GU4=V(d>&tii)uzVMXyzLxRw>pp0k@$$?^6Uae?}&Xlb@@ z4#&NJhMMgT%w)}~P<`XlM!dv>YO}jg^kv{MgsfX^gysgm$m)kjII>S!ERU|>h$-&g zY8~$@VCWLQ?}$TeZN$(5!JN= zOY8Z-dP%4q-Ome@3NBsS$NsKMj8;)pj|kzeC$PAP*=Jv*+z4Pdd64bU;YbFL6OBdp zTZF$MNN$LoW8#odr&ja!u{{LH%8o`CxXKt8W8el5;#zYvI=t69-3L*F2IF#e__k!H zCbU7Od>#B3Us(*}1u@z5R9Lz+oL4h~jzMs!W_*J<0q=*w)*rutAA)^fmmMk?aH{O~ z?}0P&hlhdw!ICh|A95hq~+-Wkv4al7SHLehcNZ>AZ6|pVd9)jJ z3s%UH)TJ4E1!wcG;zHYB03zdOiLHDXBf$T(G#h3g&P6aDZBm?ox`lU-1k6Ri1Hu6r z{Kxx!f~9w7^z+7MgN1Aq+|1$cqdz@M4sOY=iL$#{GN_)fqV zvi5|D_yUxdFbQ8^{}T%IG<}?B3mJD%@&@X?gHizZfL0y=_0j;xOM?$g;PS?K(lW<+ z)4Hi}Wj!_!z?4>4C@o1#>u!hgZlM!>P$=72!CZVy54BeZ}H5U5G-U@d(YJ6GI5ztn$dWIB+y4^rzQQ5ex3q!&fjgGp)7|s~Jr6yHAK;Me z3y}sbTA3nQbQ5_ZOAHr1#26f!;V~BEC8;RFNHEs_k+Tkd;0mBo_-_c46a}}&wACJ3 zt5ECJA*hdNEf2LXZ)u2PDo$jkBG->0Z9)Hmzw!aP33VbvX@n0WZvpS|C+?V4)CF33Voou$jA3r*{#G6xcPKW01V4eW>|(Y!%{$H zKInV|zoJp4K~)CLG@$cwuh&PYci@rJ!Z_l~B}cpEhp@h_@tUR~EV zYHF;H6|=CtWhGxlU`}j&DbLbAE4OK(7D07gW!NcNOs0EH6r;I1Vd!$YYENs~?L&PH zstEudG)vHc=)M4wSBBbK*V(;+HIIZE3=6bBHvok2`~cr8GiV`hc`EjgwHwSeSiu1n za&iM{1qHYS zKZa|2M{8(GBN*SDn66VB_CNuR-(YcNsyA zg@zUkM7|Oe!X;(<4pBQUGcmeRX^+sGkvQ5bCYd}5>rN61FyHnlK_boQEh^_mLWs%H!p?sryDG*=$+ zXtpla*hGNl7!KK$9A-&eMByr^M`Lt(<;h8mr`5EE#x`d2r!}=KscW*wh^@QE-Nl{$ zGk-pJh*Y&TLVYjA5USx4gYU1i2UrP~khc2PPzWQbM@;E!ln-Y9INjLs!&WY|7ApsL zut~9Vz0=$Gw0Ml4Kfk0Dw1O#M)*Lm9RhqZCn5$vi2fyM#ZTrF5Vov#zN`LU{Dky}L z*7N6IWQDJP(fhDvBT>HVB4l_p|q`(zJW40 zB<`ppWG1fkZ=h@|aK63`*J!L9R17m8SL;*rIruh}K4*F^1lOSM-<4oHb-=LY_F5!*Vvll!9}_{X-@Y^-5pEgS3DIE;g{xIvZ!OaV8sQv2nH`p|P&eO6Xj6 zIggF=+4v(H7Z~zF{%&AH73E_7bqO1nvT+$3m$R{vjVsvLWI(V++sq~N%atQqM+MMh&u7T z-GrzU-#ZO?mkEg{t&m$yc{gWzk6+#^cd~IGTkrSF2iW?6yw5Kmln?pj!*Z8TJ|Z9W z!+4Av@o|kXM3|f>n2aa=@+tYWDW5^R<1&$a)=$TvVqh#{<2g2-XX6Dn{_I1lFB2)7 zYaX^DNFidv&5JbPA(Ax15I6DHG&CQ7{ic?{-vDYrOZ00=TC$%`(o&G0mdf?Dh<~NQ zO@3x->86%pYMG|ija|E=p|qf1%hG!IU}SSTIi}Xr)OxXFZ@<<@>+6FS_( zY6Cdpz9^?Mah%h5jyr*UC-SdJY+&p69m+!AX_F1DkiS!W^dr0c$Sy_v zox;gX=A#|Dw)9PoM#mqGYt)!#Xv=6 zd1*yq*`n#ig;On7Iw5YU}Wy7V_wX=||6%345)%1BakSs@B5}Y8#^N>Oy><=sFq_ObYPGnAH zbs30H3Wu>B(yEKgAgi8TjO%;hoH{wqDTRo74j68C$db}x2*@i-7R@d#hF^ELUr}Z8 z+|rub;))^=l~`6>Qo9HQ*&&mvOQ%hDJERrOD`L@qVTCJHf?YLM>gM$Fsdn`As>15R zva;f`MOD?6Gm48?%8t7;I5}VeyDEp+A7EP@#oP$(gF9Tg!(LSXW zVZZcfKjer^YO4z?YLGt)Hg8c)Wp(YMipmNk)g#tpT5)B0aV-n<&3YvU2!TzuPd1eP zIqRAi7(`zUc0YBzEfX|UagxJa0Vc%omSM(l5+a)&;q5@*n2=FB2F}acZ>UXMc1(DS z$A>3ECbhAGzZzCA0NDoQAAMqi*K`VjIKhfpS6U;r5%_ z(W(w8P}go}D{<^YTv?$uApEyTK}EK;x2&?xeo|L9Hml5w)yTgo#SzaTDW_f*og3S!tD(0|)JcksBEW^(=q6Qz;1yvrtEQ+*sj93gRmYrGb%2L+JPWH)hEATK6`lhT(^(O@TBjGQ)u5!h zvV76B>dILaQ*F9+6?|A!@XC^sn&Mi_FbM7>V-FLH1iqJ#UcOo>ZHA;{1?HDk%h$Ex z;Ie5-OT#+I(PGAGmCGN)HQfnc+`PK6wWZm*rahp`Xs%$0-JO-eU=CW+*wom*t{l2r zikmInsy*skLTe%J4M7oV5hges>NYP6dp3oZwwKp6L&8(M4%1#yBrMXj^NzX(jNGzY z8<#EbGM=BOsH&Ex#(I=HWmRhntA57ut>cuiv@z7wP`Q*RD-2O^2dPU@;P#@X##K{6 zsim?tWl3HAiq1}{mgqwXMZ$@>+%WyFfkNq)HPs>3hV2B&upG;wFPSSf${FQe)dJB@ z*m-43b4wevyf)S|fsQj)5t~HECCMSsaY$LsQZ&^7j#E~9Yh82ODrgmGu3uNv(%O!? zcl?szSHHs57~LRAZJiFiLA5Qj*R-@YH8`ylP!-x#*UloLcwI>mYWt&kl)mt~_SviI zYg>vTt&5eD)iPO}ni3XeSe>T~eE}E+yR~@vQ+=wM+uH5!WpYXz&}CHzu^BGaS>b|eyh`1 z3YlzmIEwpG=LqbKS{z}OuCseAW8?_d#xrB&x414V;ptr`VDVbv++tI8v0I#OO1)CK zWVu?Y=fqL{6OIK=${mB5p6mtoaE^0Q#9c;ZU==2Q=x{+XUZJ^uS*WeuaHLb2$6n5QP zP)s799-x%Y1Yyhn6B)1Ka<-rs=?EMdlund%gpGC0Kv=7(I!&D!2pq>b6QSqCnMN}a zJf3^^aQNsMmH|9gj2NGAoapH{5+}w7amwS)&Hkw&0Ahdk|K>T1mk$`J~i&+eH zydVGpd`~2>r(mdm@ZmjFVqLAdDv2&UQxP+Is_hdiiFZ%YOja7A#Z1Mi$S69kG`PhC z^dok7J@6w$*urO4ZdOE4-&kVY0hBtoWF+Bs1T!4xJkcEjvsgD*Rxb7hvf-|CbcItH zGseqF*5wBlZx8vq0)mVrkm2h0mKqV%a1xU4Z}rX|Z~0 zIALdI;$9i!$V0(N)d|R5I@*nCQb&}Xm@B3!)-?xVBm6-O*Oh}vd+=t8;N6KYV~V2P zvJfu1OWo=Yjqlo3G;uvqv3-yS(EFdRt5l|_P5a%sV6n8cWxbi%6g zC*ippUI07`IfWd z+;PNf1r4<+c@fq|W+mLwd-Iz)d*lmwk|>L1_9AV_tYuHi>>|qzw8`SSP1amAkU2Tc4Q5kH#C z%6VAb8a(ear&fhh{lufTYbZZrwDLZa!7@HhawsDS0^&jOkb|XDtA%y^!S0U+fI}S- z5TnJI08qpG1#r)8Y(Pv969Zxr8wZG#fS4=_1GxAGqlk^EY!tIm!p017U_czs;f@id z0bG&8#2sICUH~`cjtk)89E{^R!U=4gC{7CC@*Ip)*f^ElPUByv^RF}5IFpUD*f^Vw zbJ#eSjq}(zpR@fV8yDa;+F1OOi(LrdsoIMIxTFW;5;iUsmj&=lEmGOY30%R(CN{2Q z<0>|;X5$(*HgnM|4ZWS^Ap!9xacuz4+QPVv6Whwcw{dXS^#N;R9}wHc?E!HI8+UTp zyEyC)uF1Rk*F9|9%hsK2+{cNicY)l?O1QtG5w#k~*14f=5mZxCXc>T3t;@g?G`EMx z1n^TFYq+7+2DDk)Y>qi6pv@JJ2ef$__Hw~!*om{e1hfTAgaXBN%0rD%R|a0rVAP0! zEawiVvKt|2aCEwmO9H@Hk9}%keSN46cWml0sjCY?D$Yoow1e zi`V18V5dN4=t%UU)7;NaY5xG8Dn8QC76r7$T1`N!gMk~KM;qD_L#q#H4dQh}3k9^L z+A>319?%-mKeR)%6(B%s3TP{}=783stunMj16r$wc}7t@7CYhSQqCCFP>#aYEkkPU zT1P-zjmFm2u(4KK7tjvV4u{-7Iu_SpmAy(h_|t%P1g>gQGKaP5zoe<9uHDd%3TQ|3 zKzUGn2C-7a+m=EGv}3em1KJ<7wt#k=c*xM!2ejkGn*r?v7}6*G0qsQbjiH?s&`#D) zfg!#LXs6;vXe>gv)aq0<%j=ZfJknsQ$wv$iXs2su1Y|GSJs^9+(9Yz_Jquk~R*HuL z+SxKapq->!o5mwn;}NS}fN0u&M6d?(xEJhjzE)w7>JiNo5oo>>dtuFW2%; zHty5z58whaem$T)XlVF83|jGoDt_(K9tmiVa_v6G9rRpgql$ z#7t9`>=A-S9?{QWR}|gdJFjs8+&D&d&v7QtbJ8y`33J))&uo2>d(2DP%beOP0qs@o zwE*rXKOWHjBIg8TAK5n`Yncw!S)!*)-ZI7PV0gHxHB{X`b4S7OEgi8x&<#H33GItt zogUD07@b(&2kW1`R(Ilvz!unQ+I{xJsD&)Xb+&%i&<;y~eI0E$uE%qhxQ@Uq$ehOZ z<(44W(m!i9wiPY~WEyLIPIR?8q9NRd544;c#wvDVUX5HRX76&4l5+Vr~*!Vo9U zCNR9@sePlq8dQK+jNjAI0r`;v^n!NhX$~Eaa$p(j^j<-@WM*r~x=aGa=P@a&jncH% zx>d`q@Xm6DvU%H9El1Cd2V8N$Vm(;{Z?PQ!+^x;S(d!h5;1Y=+#9eY#c5OaLDd8>?Cs9SGljDOP?L(?MoN}sAe@z$ z2cw(C|E4{`pw|3w3isen^OBteZ&wU;Xsh-OElZbLiz0Ye)%~k@r^M%woG@fKEah=g zm2Ax}E|&nHF~A8F6;{kHtl^=FJq>T{RdIc5>KgHYX=`~AaoX2)!5-)UA`qtJHQ!9j0;nS_h4eD>BBF^a^#K#J*Nyy_>OjmkPp<4s*57X=%mr zT@34tZdlZ$PWBu`6+@ZI@!Dx4H;GkcR)wT4v5`%#4S2tpejT%qM$!64cioskU{6^> z!~0RJCarwt*l9;%oeJ`~rzJXa?42h%%M}@7I^Y{K>Hsi?LTjy8XW#zDW``6EiJIEV zDjPqTU`;#o_#A=vs|uxNp$u`p(AF90$l8CR~cdLI#a8#a1UsX>5zEDi*VoJheDF5G4Qgp=!)4Qr6!*P*go?^o9XkenN51~^zvKKs^mxRYo8B?Ey zTfKm|;g&B0jMHFGciA&w&ve+XaBw~JNxhBvUB?VTy{>szst_?2e|AUe_xlK;}3M%Is71(ox=}y+1WqW zWoQ39m!19dU3T^#;<9soLtS4#F|@g?vnXAtF;>NXgU}f-?1mtW13&E>mAf%+weAOZCNGP<r=)MZ}=`|^k#SGa;usTCeaxI-KiheX*|MC?%J6%;F7 z_GZ{yT=rG4AL_EV!rtbxx5M7yvag06@|o~BUJLs=m;ErbKjfUMy&yzVUx<#>7otz~ zh4fQ>A?Q?J$U4;*;!gF2#8Z7C^i*HSJ=GVYPxXcLQ+*)-RbR+J)fZw=^@Su#kBvgGN3{_vqL)8}|QT2sXRDB^B zRbR+P@tw@#QDujORDB^NRbR+S)fb{td?m|8!{h8a*dZbf+i!p!QW+HvA{zCD6h?g^ zMO9x2Qt_S4vQ%Y<>{NXrKE)S`&TKj%L{)akQSqJ3qEuyvG*x{eP*q>ZRFyx(s`v)Q z{fO_(+dSSLaM`=zAt?dj+CwlOMqwTz#zK?WsNOka&DUN$in5LLT)f^2mD_kKmkk5Y zkKdiJO}%x_Umw3c?9au+%n57+*hpj}iH&47QaD~}Zd%$lyda6t8T=GzX6_E^20a|z zw^10PN z3?rYz4Pj#_8^hQb&Qy#*RwI$?sBJVl@^eh&X90)WFBea|?az_MvN4X0@toHL{xy+* zP2yh%urV2t3z6iMZB!KbIhDPNIb;bN)8I25fslA<Hms-@Lx`T=5Z3!#!RABZe;LS~_50Urb8P$jJjOwF!M)g^|`1u^(-h7@$ z%NJ>^d7cf!f=mN_$Vt(%u(~wNJzf?JKbgYWg~~@5N!-PvU4@iuJljoUA8^GoZHb zTz#UrT*u4H;t@Rgt9rEX;=(fY#n3s~`sI{?N6Axm(5!iBv+tlex6|C6+4@HHO!?G# zHG)rO6)jK{)1Vbow=M`HuqvYWSpLoatwOC#>u9*XgeK|@RG}}W1+drYhtNvB zi4N6Q(rUe#j@4V}bbS?_tsjb%9utpSb>h0TjqAPYZnDZoUE0>yBG3~~^+D5x^)&3* z&egZXu0E%n*;Y9xJLNPh@*f;xmr~-wZ$7R$6aGf3uT`pja4nhilToVEP^vSihkhpY z*3Y6`{cIYopG*7e=Yf9pcXj@oZeW21e8M7X*DSOxI$YuKo^PgA`q< zbWB%-byt_Td!Q%vh$8F@5cVYq`-(F4uhE|0P(S@!K!jle|t+OpWDQgvnn(*mw{& z0fbEiVUs}E0U&I$cnP_1lfMk|tUM#C7PeAuGo7|9 z98NtwM^InSk;v?JOAwyxF!g7sIlg{gT7#PDLe`AFmBv7O!qPoa z8|-?n^PEG5=UmG0{E>p53#gChLdu2Sh0&giXnzk+U~l~_Quwv*UrfrMK+3fsvHDt`$6@hUGJ~lV2epvz?ZQ`4LMegy$Y4e=m~1 zpK?48Ah~z;KDmN8$vuVSo+e)V$ zNB_IZ%g0T$A{4s_S}pi%O}@F%EkK^Xf}A%&&O4Otd6x!x{!aOx_fdHt&?L`?G~M$t zm3clvjQ7H1#;wF=hfL5uI!>wofo%SXY<@tg|AplKhIfOkv33+%gfFlaAg0Z^jNd@r zVQay|!u$b)v5H@(Ih45$do|A6rrg1JunN8YG!Q8agdP(9TE*KJdP&IZCBth_lGmh6 zFI2L66KEfABISFNXoNSJ#&~%<@xJ)Lro}z(TX=_KC8d}NZ+F-}6d&0^udo|yW(?V_ z7TK+!xQ)qf?@V?pB8=Fj3OHgrb!?!-Ewp+ItwG4O_}fE?)H8(MJ}6ONlxQE6s2@r+ z03{lT5)DF$@@R@TpUS*LsmcreiQ;3yO~;eGyJW4=B`ZLnPsL|;P+ku_h=LWg;(^?O zyftCQ&)^wth~f+NArEHhVU8%ma^ys_9Nx*Kdke|uokHo}BI@m(O8vaW$metMMVK(j zyEJUbw$i@p$;Al&<}E{@FT;c_u?Yh`7Gb@tH9%KuKz!1i#l2Vb;_jUd(!hp#=b|3x zQD5(T8sI$$`F$0av|iDq)g$QFc=*by-g>(?fC*B(cMwBzokiW`E>|dKIk;u|sIQA7 z^0tGv4hnc7;_$9P`>v&Zz3Y(Gx8V%AE_l?SE>wnD;SAFb>uTv?-iz?pTYcU6orL^O zMt-MIckijFi_=gSrz5}r3FkKeH3)k5#3>MdF;l8R4Q~Gq>_Z+qoQcjTPF4Pk!)RSo7rzpewH1+X5L;bza zBE)xb8@O+D1HX)*-*-(JMhEYPei3D#fwIp**%zSfOHlR|DEk`O{ScS3{?U|ukD&hw zPshjGbykRm8NLCc0k!ix99z9|s5&|V6`9B1?Q|rjW%nT2%sW4D1xMLaH&3NmP$oDS z^*9(xEct8Ir`p{Z(0FC|D9!LwmXSdH4ZI9&B+@7&i6$F7js6&Bbz}Ahd9KQG&4%`D zr{g)-F7^h-VA73T@)>!QVdPUUV+bDM9*WF4ZA|l{=~{@O!l6qHht?^cakn~qmLZC+w4asics3e%!Uj5J z2OR_X%dzG8utQe#hy2`abX>l%jn?O5v$KtkN2{Np<<`J^#8x`-K00YDos8bV&iW2I zWnL$bt#s<`bXtwOe{ew04my3F=XN@yhHYN9A=*%Oz^VncWoPovKe_=M;_m!sfS)2` z9V+fHRNUdHxFb+;M?ux;F*MpZmL?c~phDv~Dlyhmxp6$z8YfVLaUvaSoJ^-1r_ja5 zsdR&J8r^1`f!dRCD|$$DMPo{mnp4rxD(1mxA!^CyQf$PV@hsRF3JWUsAbe1Sc9i;|2Tlw;h3(R45BVJBYNzK;rw`)Q)_ z08KR>qyvqIXrA#fEi-mevjI7f)Z>Tu~s>vNi33ECNIdr@+ z&70vkn_}ZHXuvl>{9h^4c$0b?Z&N?x9pvVXyG?84aEq{%UqIM5AnaQZ z_CFx(A0X_XAnZHjX2vCKcobn!1R@w@i3x-Gr86)Y8u*r=Q$Uc$(`kh*X&t9SliU&W z#(5rKEqa((&%(r-9w)oj?s>(oW_(k@o()FnH)MW7U#g_#xnI}esibBEkcm*wW& zPM0eYb(XH0!-Fp*n9PN593o&KuPdOL5%x`JJLe}iPd*gt9s=?Xf$CiTTFs;8Eb~Cr zQzi8`XHmX6n?{*)XtFsMuRF}c+YR&aT*CrdWFABf=0a*U7ttDXF&$wpq2tVYI?)W# z8Rk+t$81Dpq{vjeGWsJ&W~TyN04Tub!bEZ9CghwlO{UutlRn^*1!9;SV>?|L9eSO0 zIw~^|D>FPtM8%pH-RX}*=x&mCHr(m|ZnyXe$YbxCsJzP-Ld#thX^+UFuiC&4yNF{#vb~W>NEOw90vCl?y4)+(0AE zi!fL&##0=Zpk*$_QyZ7z6^)Iw*xW?R%q!6%SJScPW;)))iIxn8yXA){Gq1fT?{%5M zP<7EOxhGy5DYSbr{kg@ir8yvK4)j3t*IjI!FqwCu*!QB?J5lWWQ0)6@y7>U!8hMba z&4=)2$S$fkAEiUg$LMJD30iMHMJJihpxD4>+fDtPUF^nesg^+=Z(zA2y^)0w+%vDs z&F7JYMk#TZN9|d!$1JcmA4fnppuKLydWZoPVEv-1{g8l%Rrlkwoo?dROvJ=D9K{(9 z#i0DPidDkz)0(f6$9#>v=3gn%e3P=wx2doB4()5ci()6QEnrP&<`Ay^&AXrH2H`=3Jfa#Q8G2b~f#_KnQv9_VVF_>DeL*sPJt*0iP2GLH zsIRX#^v~}@1-|}JBR>GT`P(M(w_lbd+y29p@{c|HIyU zfX7u_4gY8EuC&_SD_NE;+j5n=ExGsJ3pSQJHnI)2Y{|C3wv1d7NGPF&mQVr&J3z1r zm=GXT*dN6O{V(Q;LEtXvx%FFT_Xv57xPZi`OAq$9cp!2sP#e=8-n8UUv@$=-17_>Nz* zl-N`j(LQj&gSSc4CF^$D`B50-8p zU{0G~HzEvBX=69yt{=Zc!OyUi zIGKBuM=H=i#sYssfv-~FYZTb;NCg%iV}XCBz;`H+%SNw%a-`YJXpsn(X*0(e7P>dU zQx>n%ZGU9N!|aCRsC_dgqDwxe81;I|FOH7qDcW)1$h^t}#j%?qw+@U5?~zDxY(zLT zp;Kv?MOvwgv7qC?`JmR|qw_<$NcEF%NUKhjEcn98PSN@H^}A&eOI{ZcmlZtPChtzB zL;<$BHvz;Z?0akMMgaZ@_AE=JAl6D+#9B+MSgEv$wUy4XGU*xPGCkH&2F1F_s93p7 zj&;Q&S~onCbeH3Kw;FwCK_$diC{z zJj4_Bpm5@&70B5<$u`*}Po*%coolhlk{^R79h)ZYV$%U;289kuj$|jAqg}7~@k!Q6 z&=$LHVhdOdLlekWZVxyLCu;|~X&Eby-2_?#FDdP#6o|$}^EHQ_Zez>BtK4rb<|~3l z_$RJ$v8L-(;)p~MLPv_#3hV@TIPC;E5m-)yCe+yVuf4>HEt5!WxfI7%NNH@Pbc@x< zh}deG5L-h(*2XcNa!*OSq!xmnVU$Vu(&fvc>q_sJm(5-?Ti zi>m0=Hw0Gg$(rg?D_s!VAko-HDT-}kd^bz)SR;;Uw$iP`lZX8Zx>a#sOqnhdzy2|+O&_{RPu{mx9ui*}?t^btR+YUs zO5^8I_tW~)-XaYpHCyijAO;8X%kB!U$Ofm*UHl9os04^og(S z`Sv>%5LREb9K&atxij5{Q6yr(i!iVD&@cyPuR7W;tNk2YwKbpbd-XMbP1 zqv7d50_uAfZLCuMLSy3H_k(w-iR$pjM=ZFHrF9&Qg19Gr;vs42P4XrO#a~A8I?+$e zdpJI)qT~l9KWvg8?Ld0Y@)^4k!Dmz!B(5TUe8}}CDF)!VJ<>(rA3}yO@pDm-VtqcZ zi}Z!cRO2jXKHg5kame;~2k9N}EW_jFG9%ti7Q}nWl6Y?*o04q!xk1AhR+Rjt-H$oReOBq)d*FmO1eW zz%-G8K+!hnsow*So}ez@CqGwa&iEY&2r5|t?}wNZ6C!L%v3?CX$beYYGZb|H{qkb} zTcw2xuT=)4bbcNOgP#VxpM2&0Af0Ac%^;2J{O(1HX1$bZYNC{WK`A)kK-5)Q;elcS zpe=y$ps~ZZBcL-RUPXt`qk;3KReS-BTqvXCoF7OZABR;Dua;Bd%jE3%a=A2ql6)z? zl0lfB!~`>$dpi5{s)mu)N%+D}(P`o4Lt^Ofm*;m{d|MFO17VecGvcRG=#1pZ>YUS! za9Tyl%O$^Pl3!BXEVm)0jjla3{)$!nS$<}?i}uMYdp>?&M{r#8?WP5eIwnxw1e|ne z?3!=cmGQHrAbvLU?HuV8{{nOFTp18QPlm-Wq#G`hsqu?}Y-SR&>jTK}O!VkTAxlQP$AwAXBU`mrba{4!jM z9Ck)N7tF|r&dA6SW@JYyq-vc7!OTv~NhJVUB@gb)(hlx!Lf$Ts__vslcQ7IEWJ2C0 zgX7`GxTONhkZm7@52(l-79a>!`e2cpre7?_`z>XzUxG`wR!n$IJh%pV zN@g(OjmqB4c5TXgTJkHO2#5`Z+o8=ino1A_Z{II}+$k%0MPK@i=${mUjMd(3l0WaT zxQC_j&Q7G=EfW9B4tYikI0T2ymAF&(k;>!F@~=u-&POoZ&X0F>e(b^JyY2?f7oIYR zM)Nko{8yh#_sebgQsU*%;v*d)-o!L&k`MXl-}a-ARQ-Y@ z(fnAAst52bBIijNuiy?KDxXKUNccb3#;)t^9e}@HqJF(}@K2R){s!smZ;}yygG}(Z z$b5ghEcHJlC;O-48Sy-PAD%B~_!rQP7s^Hc7il&oF{Hvvte+~V2o%Hj+CPV$}Wu$*2eaIf^@0Ke6W?ATegTA~)R`|Ed z8vk}V#s3z4d53(}zf*4Z?~;4`Z_DHU-SUhN9#tD8LBCF#xqNnYVO$H$YE7&kc2|hS{=hE+TUS$NqhRT+<3ptM@1RD;aypo2PE@sB+uZNXy zNX@Q2(lVJdzSl$+=~GJFL7y_k9T;lF9Xz~jUdsKj-VtAEW7n~k)8X%xn7@y8{GgQi zPtvJRfs3DEO+PE+{qM>Y|9jx$?}LkfEGPKS(V@@F2LA=Q*#C)K>;Fu?;lC*N`Y*{7 z{>$>L|4TX(11Z7U98Ar+g(;UU(N$KrCu8sOf6ci5MvDDc`TT_B=dj=H=eiU}J`HPK zi)k_isvM-RnheT0qf%vAe`x;epr+rmwY8e8&;U?oRt!Og3typwK4y)Cbmx9AmNd5;>=>Hu|@qu*pKa^hnM-0rzGNcfP zf`y(;D-6kTg<+Xjm?w)1^QF2F_J~&vgr2u7<^4@P{q}nO-2?ktis--k5X{u-R~2Pz zSERWMI8zXn)pAo*cFAr{-K?o^Xo_H$+@dKP+^Uba;%!X!=)2qW(FWhtM}l2)yQTnj+XGO`0OuC3`hRuuJx7ieMLPa8eJ(WR*OmkNfqJV3$0ssfS~v9*N2Uc{Cyi z_041Iarki!p3ui9G{cioc}fmx@U*@ocnY>UDT1fu8BN&$r({pbclGgmn)<$`eh`x% z3SQAx$&a-te4#xrFX#_H(G-r*R?E*c^>aGjxm8J-uhnG*v z2EW#lf1{7D;`dEni^y+vkcfY$zYxD3k>5j)ZMTLq4r|f{hYNL|!KZ7@n)M0m!D=_E zcmuYWu^v9ZVau#dYDVTrt}I$Ms&9bixm^J@jcEl0*_yp;zo`MUoz^PmadldXnqi&U zsKyI9l}^J$?EXhG{fT@+ zeddElO=dx;^<)D|Hch!wArT2aC-@M5 zOa9Pij%B!7;`JHGry{(7uN6;UF+)aN>vve#oMe|JQ zuL84ea5+{(G6@o}qNs>abQRl}m1kqtosC&_HfGJ)m=$MZ7M+b*cQ$6t+n9xIW0sDw5LU}F%Tjlp>~2JP7xq-SIBo{d3$HU|6I7(8cV5TT91g*FBq+8B&zW00ba zL5Vg7E7};uXk&1rjlp9!22I)+Olf0~rH#RtHU?YT7=&qKur{%$$jv^3aEQb7?KN^O zM?2(9Lbt)@M8?+JtVcR?zaX;{(iCSXFL(vZD=$c5S0ci%Dp5*a^-WGn4{|*D`s9*@ zYWl(@xvDM>k}V&=bGdulN-bcxWa$HN(p=Ko!EnhkH6GxS-28S7lF0pZ4w78dmj}tN z4{#IW@^)AI7%tgUwa{F$w_3<>$-ZhL!zJOhs3HWA>xIIACVRQUQ*iO4?0TM54sU4i zTayf%!&N5ts+{$QACwV#66PSROfOhc+HWK8mr)4F+az5$O6%g?Xe?-?7zw;XvUqG& zKb4=<50Qf$r(dZcQ9Rw1Z0_B&wz% z8Kte7-el#_XEw=kwgxA+AA)PlkG!3gE}6+I;F&$Qzr90KfDjElUI9|sz~lLO4lkY1%!KkNxpA1{niP2G!g6 zGidI;$MbvWcM*F9UbVM^c!gJ^F*Ei$!uRn5FY>a)R4C^=C|J{mb-0$D{&9gGxlN`+4on0I#PR z=nXQ1ys>65mvlq9L>T5RF(bTMGsID zm=`OE?n(BXy@)oGpkXFUshJ@iVPkf;W~p|L_Jz<6P%}L<fiSsN4gPtdD|CpP);glbg-Sa+_IAXWU4)c=Gk;OrJv+U-GNlB1mNL-;E5p zm_CUEOmn^uq72eOMn$C!@-PHrA~H4xsP@gc7}I}(zMiPTqzFRJG9`v6#k3gO+0!Ek zJj=|OV7N}dnN=XOHO3itSmtO@6%kxB3oytygULWBA0YshwK0xyE{ltXJPD-g0Q1x7IWSj%)8*Ex1T zO}(eD0+2q}c#Dtu;DbPN1ok^ZU)8=WljS}W`J^0n`jbO+`rL-Ci!eo-GW%Yb4$Pnk zmm;!KR`~!_bBxXinw2ove(8g#D=b(y?Lw&McC?#GXNw%W@T^MfScA6DT|v1{t~bg%W;tOme(4u%Y(9I6skm3X zCJ8yT-J4(S{Q&4V496f2!$71@^2=eteSK@Newf{bdmwwe$Q4o~vxIB-`dWyGuTm>B zGN}8aU_V>TC#VONRTLLCNz_`v}k$=#t#5jv(*3^WRzk&#f$TzWTbvq^9A*1AOww?R1HQK~Fr{%gN0;uK$?dp?+ z3PL*xRY?Fq8x z{D7W94M-Pe@KtwW!&gf6>sL)udKZtllpwTZg8Y=H!RRcyAss{mLi|SGSe--EkGZjF z*UyTi*{|HNzKdMJdkpd4$jkB$zFxw&DnLq6Ru5{BW!~RP4{YPrOt|xHg>y zJR`{C$;i|`KaCH%kJg33)F(@Nah4Ml~ zeiEaLfugrwll0bWk_Npd>Ft6SBl1#=iN;OIFXWdoDD+qKJ1#^*@*54f5DCd^TIz4L zIoyZD>}5z)M#~%e@TLZD#pDn2w&wby27l5@{;WT|qp81Wk$=_TU48eSg7-J=%J=ox z4u8#ZmhS@_l^_zJGmmBjdTSv+s? zP>HvPou(^j4^ciuv^maSIV7gx`pzDTnf%MQ<^iwd^GId|rh59bj&x(J6=xU5$D z{{1cCb5uXhI?JtR=sYbR3aD+iyFHr+A`r9bHEM{yT^3D+L1=z~swzwXX?aZa1N&Tj zyS;_MpX6pX{-fO;#kZ?h@Pw1dPvWj1z6IOXwa$A1(BetXIz&Fam-y%zb&U->NalPdOB3WVf`=EC%JUTN*o`N7Ebv+`){F&Q+^1Jc(IUf{a*bKCLA=_kvqDJ z3;Rj>@O7%&?)+ry6iOVLlDu#(AQQjOf~-DFo(b9Hmr^VVl$>qrJXt<&H}r0%jdLWI zePAecKP2<3`FCZ3YG*muDLH%rLT&4B&dR*CRj!8F8(n_Ps83I8F>_x#F}ZH>40_nr z)f%TU)~#K7HzX*?)`5QwXRUtfdc655c^OfY`qrmh4nPAcGzIA4jxS~DH72?>IL2Hq zSLn?OZX9wtSK|)mbiGSDQ?HTE){CMq=nc|&N4^2kt0l4=)xF4JT-C|trkuMb(^YS$ zF4XI&i+vcajlSuofM(sjB)pbPY4~go9=!c^ip+~vc9rAxjgclcN?=g@N`?_y@KLN!E#p=OwGhRc^=>MNm<<}6IF&2~i0 z2p>k(sEGRb8)L>M9sN!8%_KuGS%WENs`~hwj(b130wOJwWJ%6sz2r~c!s0SZaO-!R zemBd^j;K?>Ii|{&n-M}XbLA$zy(7asGv9|szt}em%tAiW{4)(s*cQ`bbAsIFnD`lgOK3@dY8j;WL8GQ!6oIyZx-Xy#M3LpGR= zzS*Ry2D8~Wr%@g!13IZuAGgR?a~yKDGkmkvZ1c@_T`IThT)JECi5OmgR(m1aDIrHD zX3a6Vqswsw*JE{JO|vQXnKo^jBCQSyq?))XOnCgZzZPr)!7jG$h>{so3=y|tENYEg zlEA&lMHd8FLG)RJs}6_jY6Bk^AXSdV%3CqgJpo#(Mtk2@SL+Vx&Pj8gW%JO*&AdYd zIcVq>>u?i}M;5J;b#^yWo(WxM9tuo&(^AeriXCOUE6a0J!M3DR(rkZInZ7z`xO4QB z<#s9~=cneU>p$?;q?eqDR>Rbo#!c>;hE2-lgJjINlx3%(~j3+N=QyfV7km z-LpNQ&*;tKtqCV#i&>L(TY1$!n_>%oV|21uc*)PynV$}28mdjnL&8l^HtZ-Aq z*7~)lJ4a4bSGdLcI7*h|yJrh4KZgKH7u>9LpEyaZ_sJY2SuF1kl(CI9ji*iy{006; zUX`d&BqBU>9L zH#XL=@%QQD2CJFB#(?B*_6~er6ZnwMnjPtMGx<)ftJ}PIrj)~k*v#3y7~?5y^_=9l z@Z=#C)DCH+)U#gLLoeIkAdbm*hE0EtywJ&{MM-5FLoM4Fg4xDU#WsejwK24(jUjM} z+bL~kpP_Z_GlYSSq27p9jRs{9blBSc>p2q;$r6kqpaE-l=geY zUipXjp`Qbv51wA-Rwk2RE>Fcs#4Omtv*95w zk>lkg!qr@V)DxaUm!FC(#0Cxy8!6>0a&^$mt#G512RJNYPSMj_^R^{wtFvvhi~Ful z`L=75baQq%x~qJDra42yZLnVtX9jN|LpPK|j_4sEfM6=6DAT3` zY~CJoDi1gUJmqz4qaw%eTTNAhE03&dWJ`Qj^u#$!;jWx@J$@FTEMSK2`mS2jO?5UrR$bRjAm3 z%2Xh$&>tg`8lhA%pt}2B8Hnk}K}aVI-eZ}~U2Gkx=3oJi+OMULuA>=fXK~5ghim3R z+^mj}uQRqcakIaRTkqZ6X5B0`@(pByZea{DULx-9TAQpUoOH5A-K-gMg=0*onyt_7 z{#vuIvjZnqO*qdfF6E)HF?6R>m>@aK+S(~dO#mJ12p1PU`MjsSd{AbbR$zI}f_Mxp z{1RCB9b_Mi{UKPw`}y@odugtfE(vF??fVv)~u7fPu z$7uWGl>T*k%8ltlMpXMkS5Wk6#Bq}AQhO&_VVVR}<0`&_6wfG)96w&$;>v%D@()q| z(~QS=XzernvMX7>8nV*zRrJ75D-E5VM3=Z5gzt;bErKv~iK*T#7$&QA5lu}4m;VJO z<4?%XsWNEF2CB;A&9KVHWb_Ux4_Y#}@}P`%zDdS#2QapuS{NM1sEt=m$!LW>PDqt* z^^g$_i69!%0@09CL_<0w8qx!?kiH0i^hYdYC?X+Ra{|&;)U0U1d4_0`iE}FNl}Sx9 zc?acJP}PLyQzOi<>-`pnuxy+@HQu8nY)vA4+6tC*8B(R)5h@j?abg)xqc**dQ5DKA z_sWzeE7{`~i@pkad0MJX_J#+66&Tmj%H&BGBu+(cO~S8tM_OVJ`{|tK9I#JM){QB5qwXHpSjA}uIq4-3vtFLPedGaoCus_F;2Qm-*B`gH!lb;*GRJ!xrEK8@>(ZiW~ln0EPFtf^RxoE zhb?uV8~eEmu_W42MmxxKa+9pIEm~z;^d^9-QN9}eY_+;;Se@#$My@->w39s3-rhB} zCT`DNQx{V%y-ZgbYI@2T(@SQW3YlvvWw{x_{q<W~^LdCdf`RNp3MyD888cnJ50B=ja9)0Gj+56(zm2@kduEP&WU3et7zM#1`ED>EXKS~w(Y7D1FR};B zHSgV2w;W@K+s-$hc7D(`wW$uVNF7d39#TW4rdrC)3h4=BWdLF`!-&V2RWjAo$Rb2& zPKJ$g3L;?J&3ZaRg)8A`1PwdV#<(iy#t08355`H6*($Ax+ruLf<+KF_ZlR}iw^Q7g z=QNnP?X|*$sw9`!Bz2F-+9p|dP}VDb1JR@Mj;J^XwyAUr(Cba%f4Gg)*17pS;#Fr- z`B@D6*-~k~AVbW#Nt@E2sh#HzehI-4sg=iAA?>PiiYl=CS0l+;jI#A>dQu(_5W;S&XbR04>i zhq%s}Q`L&*hSW#)Qr28goi~ABc5z{PZ?c|o_A?B_2bA1>G9~ngY`jl41-SV>nUqly zdQUOLcw2HuXSnHBn)m+HMe1xWQddl0_k)HwmX`U~yW~t}iW2RMHrK7GUt7P%9?6>D zqRQDZumyPRtJVoh zsRz`RN0O;($;mM-Yf_@Bg!iAeL{;i0Cx@((cC|ZKro32}B@T<}GU+xWVoc6wv_A2W ze)|)MXeona@`eqXfm0aw7nT*^ZWX6*+O|=hJacElQ8@kXaq!{tjmzSmSU@K5y&jky z97npLDxl5)7$+wd4;)n=xtrP8fRET@YyKA`#o8#C&DVmi79VP}(uXYVt2!xo zt?ql&HIz6ltHR30h*(XP&AuK@RsRJZK~@n-S*mQAv63vX21n4M=fw3H1?{ted{=fh zWWYeED%CZ}NAhF157|G`moYNdM>uo5k2#r%`U8)XK&jbm;H-*OTWOlFQjrlkBO;&E z+a;QGCfkc-NiMlT53Y$)T!nz|^Z#VYM$L8n#zhD?s%z?AjsxRZA?{_sU~Tp)gQJ_s z2#4^PWXbqkr*9UL0H5OAy{dsb(hYSRVSs{B;+ydG9y}g~nGb$0)D~hlmPlp#x>(8%FhG`Z1!fIG1Yj`st`Q_0?(^4gD;OmVX z5jIh)6S~s6^)#m>Lj@bV6HO~g69P+!rYV(zaFp7VE^^zimg`P)pMz-mJZz^kVGNv2 z>&~HkC!?k1S5dlB0)3O^W1%J~Wai}A3e)7-irpzsi+56HU!wRgQ~c!=k9|E|$w9Y$ zV$cIwxfJMMr|g?3dlzNj4Cs0;1W5$tt6{e0pdX=Y5Iif%?3w#09#e|)0L3>k^7|+l z^h2TAGsjW9l2j@2yCd`r;&-WzaWmpcN`8uxpN31Nvu!k`f!F>M;5o1b@_DJgc^=?j zpo*VR#m@l#=M)Ua42sW|9XulNrFQ_LN(d%K6~B`HyPqpazd=O^++oPZY?LYTV+GW_TJI&j>sOiPvndR}$yHPw1~`4W=pTEZyxY znU+T1+e;OF?Wp!+6(zL9{8r@WxW47ckVWw)Zgy$kW_u5+RX_?9s0^eYwKxjrl%6!? znLKTp&7*s&M+pn3SIt{8J^3okh0VA?MT7GJ6w6^1^N;Pkag3*}wt;+BIypOQ)7l0j ztNP43Y!77ppr1Q=wv5gmyWEwM`MR$v=lqW!_5PFN-KTkQ`($Eo|0QWYJu&Jv?zEb% zHC*>PfkA8X2PN>e4UHS^@mDW-vxnJ^rd3$c8`V@PF`g!G`>ZQ6hqO!j_4L?Twt!|9 zA3CScGJDoZ90miSJ*zX6TVC&Ynd8emnUmw{I#`#ga&(F>3$O$RmxbKVV!jGFb3SQl z$@&cl9}b*_Z0))_4rbqz@9QL*icHuc_GJ_D{uIdgN(dd_|2oVrw&ro4VrdD=uA5HSV5iK^+0 z6(*L0VQ|=Kh7fmVA2geW;OR|C0kU-Q3MUYBIB}u>KAEjR4J$(~L}k-kS^>6%Bodv( zMwCP1BeiE8SpXwVDC$!Z3Tu@^q5&;}%>MuXkf>N*V;!>$Q575Z4iIBA@r!_qXfa7r zcqJ*))FqJONat531^{%(j+YcE3nW0&geDiAz6II?wnvSMgsf@U3=L9|&h`lE3-;4= z5FDy)lM`SliGsQ$*CG-y9WxjuLDAMI2%OP%bt=5_zbXoqCESv}w;T5U@Xdc?9&M>Z z$cTL?U^zSTYH9=W%t!~p*6zDR%AwI`Lv5-=2)ic-sw$;DQA85mNR!X=d1lijRO`Lz z@7u{@j5r(QS@gT52=bhm_FT=g8hK9qz8oHsur-{-o0Cc5M3auS6<0H(TZXWZ^TkB;_j5WlH!~;<7f)+4ZExo*4aR~5JTYqjDgiL zmXqx`a;-vS!-C=!O`v!DIJp^z&s|BNE8&u9*&Jsk%yAf@Q^XF zGIgC(w6rW5DhHT zM?D~AW$~6J=VF_rOw}J%OsOo+AwAT8k&VM;`AE8SE{iuwm-EA1;?3A&O}$3Bd$vHM zuBbq3g8}+07U;YLtSRU%&;@0A3SOQTT9%h*fpowZghFcHvY<)I%kqF&)0JiUWjI$! zhdEjnbudQ*n6(=$%+Ua5jbR~Jm=OaB1gvyi57^`UBt~lr9KNYc-x-YXOxQHX@#c7p zY|LRIR-qF<7cs1PuqzipQY=KUX%TWsi;*xp0bbw|1e{hNHL#LP$5jZ$)F7}@hcL-n z^a|HO(yfOIn+a!W6H*b4P$OGRoI8isvJGX*?WVhY7B0)_W`LYwFlfvr`I%-C4E&jL zwplJ0!^^k?5&BEb7Nq|_k0QhQawYeoS8>s)WMTzt0ibgqALzC z{pv9D57(TPfvb#gM~0=Ah*c(QXOU<^#P~wTm zF0e7NL?Uj-)VE<_Swu%R64ogfVZsqcm_m_)vM6D3epy_7c9fLn4H;8}EX&}se4RD< zuz#2}-OHkG8We^~^X8E~QV}UD>d%ZVEQ{;-PqObeYbW#L6-n$Y#4vz*o1MZIu+^xHkIUlOxC&vi>`J|{Y% zAdyJ*kL{44b28Q=eUY!-l3!q#CfyR#ZqaE^rwj?!zw4A9sV0V4*V-qVwSTIS^vbAa zC_^Qq>=Fu4LY!4)5rDo|6c8`Nxl{@T6qXgb-YE=vM=i+O-YHDcRw$YWsq$4$OGfndrZ z(^Z~kJ$=UvlJA+(9H*wp4-h8#p;;t*kj;3()XPuIW`s>nm!BcA@N?t~UNl$BOJ=9M zj10gp%`NgP^DTJ=Gb+DEdh9pmVR_X&fl$h`*f9NtykTCGH_aRJmcd@0*Fyf}wUIx2 zo#Y*_oBYKaA@6w;asGmHO+K*Z zDZ{i8`NOrPk$HP$Wb!e@Q(vuFP4obAM#iGFj1?XF^;b@ASw7S4?y@|0g`im2x}P%z zs)7t3HzrY}v05RG)!wwgjz)!WQ*C6*yHgste6*Mq`l@g`Lo#M&v0GybQ*${y}V09u+8w;HFm$u zfo&}kQOi~qWyTY@Am-3rGhC|(R`Fk4@n5X@3ir!=x5E8kg{x%*yTbj%3fDve|6zy0 z;=hll?~!jS*h&1?49^^eG|51Ex+A!m7){&dl`f$Midib<)fccSFJuE= zBp0C2cM1A@SC}Q(uv~#Hq?K|Hmks;4Y&eKE+%sG>JZIK{Jl4x=l=(JVZvQ~5ErP|Y zLX_9qm~E)MZ#O;7XHA7U9VN&!%n0*&Gv1tuhT>T;Z_hR-VNq+Xxx{QVmy-K(-dBT*wnk@%!mShgi0D?AKsIdP9Xpui_)U4piBuYQ`WQb zY&3U((C&mFyi3kCcS8W)1L1d{>@xf0cJm-}?;&~69ALwHRDNs@vT;4e2DMB6V4lXB z+jn7XeGk*E-^V)J53tDgLzHxXjBf68sNX(shMO16IP(+KV}FK%>(9*!^BYrVUPU?c zHD>DXnUQap%gmeR8uOO9!TgzdcPauio;_Ku;LHe4t#pEgoS(Y zJ#BNNB+i#9F--^4IGW#KH*)7p&jGf7^}5SkuZL87z2s!Cx2*A0$^=fVgWQZ`{8Z5WNB>m-tt%Wboq9W- zaDaZ8c;M@{*%J;t9Gh#=pZ#UGbnRan)+C2xvZY9>dG`4FvbJ;*KTwu#D-)l#-gx3j z!0(aX{gL{1&Z;|7$^gW_$r9Hj$akrAOZ~fyURuUH7q36#Hh>v4P}+Kfq?j|C6^JlKwN0^q-}_Pe;qiVV$Mm37yLdQXU{W_D6@jvvx>f zSs2v}CC!UFM0k$b=N?N_09)Aw?{iYF#}zX>tWca#s-y^VndRf2a*s zGpH?h%EX|1f>8}K6h|A^ipmgJYT6$8Lh$W>WjIxyTSs)a4AnTtXci*fL61-$f?Lx| zW;Dr6iy)s(3}31v+PjCfJ8adf$@Uy}RTt@7t`Gd*vYS4taa!2i}8pq$(2H(K0`!BSF7rOyYnZ zHe;0F)ZJx7KJ6HJNWQF5Vk9m14NMX#jg;o^mdTnoID2&+QxF;vE#=h2$Gc%s!N@9Q zxwN`fia6$QieyoGUP>#ftN>3jiO+2Am-onkPmo(_@wSv1 z?WAohgXef0=Mble7VX4AR?j5yPI`*#O$(FDY_z_yT*;C{Qpzvs>u!&fGKsTyz4V50_`G-%LZvj(SW(5S%{4Yq2qO@r+kd`5%MYH+#+XK3)b z7^e-)ay@CziWsy9`kQm~;R`W>a}m!m=S2+SM?=gxF%CpLAmKAyA4ciJg&OlPRv*5o zF%J{;;UbNB$TJtmWS+SsVlFK(m&MGN%$H*_#aynxAe=PMAe{81xk~H&N|Ynh)iDAD zl=_=%HOp5uxGrLLXuMMcB$E!B>ovGRKf1BNAf8lUZbCi7>@F}jYy6D@bBo5e7MML6 z-&SD088f$=Z)tExfw@!TyCUY>c%(6R$ILwjNu)e;U&P$6Wqmbb9*A+&Yto1NG{7ER zf!T+Yp#uA$28bj*Y4&S?hn^=5B1umgM3Q{-Xv`cmkHxWg{DcNiM$A)D$n`@p^R)Sn z1`lfRj0O*B@T>;=HTbRu4{Pu}4Ia_vVT|rc^Mfe;^h1U4swjoytLLEku?EjY%=0n1 z%%Hz<89hJ%pqH5!;!yEF)!=6l^YgfT#k{D&OA+&O)cnHyvcUW*W?nJBj&WrDO~kxf zU|x&iI`B7|>9-N{ySRMayk1~_Utr$Q>fel*x8kr%{!n1vE--)8SAU9O!TFsirmFv{ zaJ;L*dlB=u0`q=M?lhMdm=84my9WP=nSYvpX@wu^lXj+DB zZ46hMwFhS{xg|_?QU2j<&W%qiHbY`8{Q_6-{}QDo#8qrP(e0b3ChS@1jlA`ll*s9B z40~ta4CXA3tJXvxEmED`x~+|;BkjIzjWeN_{pHNe zOnh0Av>B21X^*T*lV(DaxwO_Kyho}v32!13Ulw8DW>amlEFW@swtlGqz*}Tz96WNuw44bf%uaBS|!s|IEy*%BeIY* z?uLP~to}&9KBxJGP9DtN`}2L5?1}1rJ7IGzhNk(VxY-wT>aaE!U$d=I&B5rD#y(kA zo%)_HQPoP!0~9IhHmQ3dHC2JJYwh8>R(d=CWo;j%+lrEVVYXpi4*EL6>AVKDGGMzqbH(3INQV1w$-ZFy_t) zn8zxw+d{>9tEMIg!%C3U)Xu42-B{CTCt4H@LbrkCG`bV)Z7LM(J5|6$W^^|Jq?5!9N<79iuaH;K|LmQ7?!$GnMm?Sj(M&~f6YwrNP&A?oBW z=^t5qo%p3q+BeO9C}L&>rq^_klLAkf6q>cYq*h#;Wo{SDhpgNXKjdAQxiKUci=98s zw}wdlmg#C*H(}Ydg_Ram%wILtiOWS5tusJXQ`u0NaYw?zX*SE!)jw-CuTSEM45Y0S zvzuG*M=rRtGt70EazGJ7`z&)fK3#?|3-3)qgl)}wyJOnUotC~@0)fH*pqMsvOb)cK zCa|(V$dS*2!UmyeFUQZwzy__)-k@lC4x4jng}AbTFE`3ZMmZbA+*xf&9UYXpb3oHN zKy&{LtU2WCo9DHa9L_Xu>kPSCCt%MlXc0t;l`Bjed>=uM@A#P8`A*`;w6m7V(SP@F zR&;5`lgrosCfe4xSKHTZ|-`v^z$=mY*mCD)%*$@T9b zv~EI(s+&;6i~FAM72-Y-yY1O^Ly#q@Zr>DoMJk&AwvTJ3BHwGFeVt`KH0vN1_%=yL zQQ0T190et4>f}1lVVAi1K?*&~OtxEUMs3<&-`KE8m79|V`d+cu()UWdR>$anr8r~K z4T^ZJeXrDOqkYrX_u6@7K8~k~d~Vz)_^LJLdmX%vzSqg??0a1dnafQF-|Omi%VF=> z(Hy?lT|2jjY3Jj=s*~^a;tO;T{>^#el%cf))b<`{1K;cIl|{ThzSq}KSj_#jsTM5> zuR`CH>6i1g6f(BgY#BPu_a=K& zBHmQr^w(krYA{%Xp&AS)kau(qsRvUo%)aY;(^*K~41VxtddG2cOUW?@B)jj;@@7Z8 z<9%~4b_vU-^0#zJ$m|Mu1y?$d|(u#A$Ti|;Oy+!PK$#>-q zYwWqTR<%lwR0kck*!ND*iMvFXa+>*Tdul>k-p0pXpzkd;IC{!*;F-1uC5~b~e&~-! z0U$TnIX)PJk%Vk;a%Dty28En#8{8>ekbY`XK<0xvas!h48(`_14a;Hj`Z%@oBVM&4 z+GP=MxsUU`lYH-FZ>8_8@@fJ^;KtW2gDKnAu2ue6Xy~+Zj$zAd>$aa%?t81fHLM=f zE#lSsUY!ox2|8@$YN5ZrW<&iMte|o}X>^mMe2Z1M7z4MnsGPq5ag>jzOw}qXbT4(q z+jkxHIVZxfKX=IWbMSG*TkCu4aOLN0t`DsF%+`VGjTQFimSn&BIP(MCEHu%K=SpwT z0tY$sH)vR0E%25p01h8%LlfA?0(W$+o2+Wx%;9{tuCWHK6g7byxVN$+o0z9qKhHs9 z=a_b!!g^$rPZ=AAC21n6EwO3aX0SH2SklBsPUS0TVkP7=ic#XpY3iiovy4mtlw|}L zlss$jr*C`25rRi<2@K@m;Ha+bPe_{KE}C97e{nVLR%R`kzHrg>BvUBkgd5-7um#6s zr){g-0^=y4rQM=QoNTj+bv;rfl%4{Gq$6vIB@|iGG>TesK+8P$tC#T1cTR&Y%f-PG zw_Q7xZ$Y{$?Ee3N=gDBR1V}+oia40 zs^+KS_G}KeWfcU!(;rz1V(GtA9L%-E@fBc;YT-7YunBgpvN|b0zIDCYH><9%+W_Cl zuiv6BRP?7h9uI5Bi$z*cPo^5QZ9&BeZj&A2S;2c?D@hSNiMJ@budmrM7n?z7_N(b2 z$h$NUC)d_$#Y2LLly)|AvnYLXW**E-(#lzA55|;~PCEvQg`v7efDUfM>Kg{ar?bR< zUCl;dc3RiXUjy`J&9q??v)-n#=Dp@rjwfqa2kG!vaU7@CLaJzJoEH#SIcUnnN>bIv zYz&>7LI606sNJndQWK8(0=qwd>b$u#X3b>G(pFouJbYeMza^n|r>rtnygO{}q}#(| z*VD_d*}NG<1qquze8I}iUd)bs0jwkG_u->pZ9SO5PIF5zSW>lq&6czqFm}lLEeS$G zy2_I(DJc~gTj6L$O7vWBV~+MV<|r=)9deb>_&)!f-;>Wj;u$@7`x~n8Hb2_%Hbx=d z#xJ7Vu74caZOp0N#vI&jjEcLBIlkMN6TFQ%#3$?dJ#RSAC!gQsnWMeU$LZO|9OG@w zN#4dBFl@}B-o~8kZOqZ$#(xW94*2%@gCORZZ=X5o6Bp`kEo=za8MUkxfM_F1Fc{MNskrVe-jui{OCD6J``18zjGPtYjBS1=l!v(ezJLMCWF zT1gAAv9%CeQYWDCS1mKqB#GvaCOjg6{+mPHn2VvF=FfaCH zoHu<1d*s*QPw57^Om<_KXAf`hKqv4XtcW)8>wbPYNbOId$Mmf1lAmBy=OuEzf)>>4 zXgB>8ou>E6iBG-6pkWEZ4cd8#Y_&LKMN*OOSHI6gv~fdq95ChOeksPnFTV`eU+~mk z%r7n7FBriZ$uFby7d*4832S7$to}$7wwLzHSp8+34kHH9-7g4kkLQ;O`U@`ETUmK8 z+kws&{X-}%VGUInMzkurqUhKMtK7q|$~_j>n^S1!T(H0i;D8md_SVzn23FyA*8RCC zLl)?9!_7>U)wF+zx6^oAMZTS?EOyfhZ67;<8Kaa~cLcF+XK>YKw=&uW%%jGskatgf zvKh%}k3!W*_T-9N)FbDV>XNDZWZGVtuGZbOoEb|AW->>x+gy0B%(_=*^Kd-B4n$aP zP6{Zi`isnRff7as}$Nf2|^cJBueF!falmu2zE;u8aA}f!uu;0kBW27Il-^0A|NY76| zdVZ43_9n|hZz>Y>)1($wd=Bf~L^VSbI>`&8bWQ=OmG|@N7U{G@n7m0&Jt*~a z`ai*RKo|Lmvhbr+uO_BPi>l6#lSwvqh`@T3@HU`juo1{l?92Vy<}-~oAnX&yGzMdiU9$QT}9TaBNEsV52KOZnP_JqNNVtB z7ZiSCP`KKvkEt62^eW<-&RIiSkfORs=wxG8gH?F(zCaDRm=XuwaAMq?-hfIg{Y=9qhT< zApK_~+3%ZV<3ZV^yFRhnFB7-p0F$ z6}5|I-z!?*3c6Ilbo-#SNI*(I<}zR3C^*)}(&@-Y@Y z4{ZH!cjgGW3f>{z)EFVY5f94gWAe-L@0T-FbX(&l`P`n5U$Pn@hpedkohg8=op|p~ zMBMLUmE8@%_n9s`0oPzlK}rX!2bZ?VczEko}MrN zw0i!`qX7S7fPW6)UjX=@0Q^q@{$~LHbAW#l;9my#UjY0s0sf}|{{q1O8sNFq$PGL_ z|EU3g)=_|e4d8zZ@UH{>?*aY|fPWL<-vanQ0Q?^T{!ak^XMleL;9m#$zXCirCb@y9 z=evGdJ%9F5fd3o7zYp+#2l#&g{67KyUjY9h!2cWIKbGU!!xnKnu!P@MkZ*MegswM9 zxq+wWKQ-XbIWq8}h~$L|Bo>OHG!~b#kS{$#g*g5xl98bnGBwl^;7b6$l`P@6735nT zLibCrsd58P&v*N@dj1PX0lp02+XH+@fJap?)EVHr0DL*XcLn(F0N(@PdjfoCfbR(K zeE^>8yWGIj^Pd{<=N<+4N`UVN@B;vTAixg-_`v`_1mK4P{BVFD0q`RMeh|P90QfNg z&)r~d;OY79pH|PGcNE~q1N;Plp9Jue0e%X=PX+jC06!hzX9E0j06z=hrvUsUfLGFv zJJa02)AOGi@aG=|_;~<7AK(`P{33u~4Dcra{1Sj)3h>nczYO4)1N>ruUkLCgOR+lS z4S?^)4y!bHeg&SgE=X;H_QV!iOZn@_KiZ55@^gBybb;z(U67(m?RhZNz|m_g2QWw8 zceEKr!uQIBnK@C-(@Xv!=L&KvajZr(^tdyp@3w}xb(3h$5a%mH~f-UAsvP?== z^_`%q4T-AmmtGi&;i)ISfHdO2*DVlrMA+NiDbam$$)1nj)n`_~#g30+vv=S)rC&73 zrHO3sIMB(M1@#(P3$$xdq1M zWC6yBmWIB;T)9+sQu(xm?*XR1&Xw0?Fr&VtEFRuC zCt`geyuX}5+IL2oyB}ZolYusNu-S7v4GD9)&I>(AuRbJg;b(OY9bgb2mBFEd)IK!{ z!%BKqVd(CvcVMI{y*#7R7M9Le|8wR1CpyFp?mWp??iXcy}3SkbHkpG?<@;57vp0Jh|3C?j$yj&IP6?qYvYsT zYf>zY@VHdb{0tkr&RmG^Jqf);yI!VUzmnq6DXoHiZ5v4WW1C%+PzbKV}3I;158e{h_A;#y;r$ zoc%E=y+6wGE42e|3?E|$Je;co^aQFMFdE*Kc0gjLpPDw)XLEd%5Z2s7AJPFIOEFWW zEXRpDaU6mChAXJU8c zFf+fR+056Ynf293^vPy^xVMDEePFv(iXZMLZNmelb9j*S4iA>W;UUyMD+xpT%%^(W z`DvAYf|(zlD3S0aDF{!M7U5~qE<9bjg=a9*v(53Y!LY2+31g%`7gAnC#UWX1n`l`H zoX4(EPj?TBo%xeAWoQ1^bv=N!Z^8^Y6Fpxi`YxT;`N2fDZ*~W7ZU~Rx^YO!u)ewQz z5P1~#gj%uc=ZbLCek7**bks+}?$uFW4U1R!ueY(A_Dhsi5Uvt0JYS;W1&sPaMtu>Z zzL-&GKMb#uG2s&#`D&RKUM916o)ccd$e%1r!YgHYxQ3Bm&B(8j4dHdNIlNxZ2xGy; z;88x90gVAhA7H!wUbz|L1N+5dzWd~6p4m_c>6-9B#mzHrzk`c)pUmQa zG5oj%OC7RL|AR+p8;k|9F0$i2ipWL#BYk(wbB2wr!rg zskXV&xeSkiih4w(XOvs2UK;e)ppOQ9^|uNQDwUA7K|g)$ua5-9GC)%UA~G-{gSe>W zLbn!itp;^F-z{6)&H*tMy&2RTty{9f)E8B%4CXCI`XH%u)H8>v;mk5r)a0;U1X`$K zMFJ*ULEC2bgQqk!s2G-&$cnDsR==TkG5U>0X1Y7>bb*AR-b7(zXW7g3^c)FU<)k`` zf`%6}DsZI+{+)7t!#%oFYqg-XX{?*IX$vYt(>K&?-cq+1X-{nh#|!H;A!?N}T$#;G z&ljaeS;yaJHz`L;BllcL4uj7{L5YuD+tx{UVZ(gpczd7oLPwvO-q~kPmHW(hiYv=q z98>G?RV8|jv2{)*5cSULzsw$HHq=w5nFac6!CYh3^AD_qqTmwhiLF%H5UPLelUS*G zF6z%^qN%7n@QA?V43T)4V^KIbi|gfMs3VNmMV4jyC%fEX(kJ{%52lbI7}^_3!NY0% z2TX9>*h7wA-p&=p%dkXF;CJ;<4$-x4&QTr2rC?K@tpTGH>kw< z{V)Q&$KIyu(K8>U8cEgfT&zeRfr_=j0q$BBWTp#xZsSM`|c``;}^(?2yQf=}| zpk>L+P>i4S-wUZ281@YTi5?HJ$BWZey^7UTMXB0lj5;Gksfz7}Dod#NM0&NFgW@t8 zd?MX&5=ArqL1o9&XzgF+3}}heq4$ZQjzgdom7^c-7+P$5^|e&t_M!k9Ck}O63M%YK zx*JrF;;HhW;KdBB4sIU?E*=`ES1Ve$jXMCp8Vn3|fG_T!Z|KrjQ>8o5H_;0XOp?uv z<7rIO1}@*Zwb2QiqlUsG)lihXhBK+*ENVEL8qT5Iv#8-b%I-!jo^)@Hj6XQN{r9Fb zD*E4p42NAY^VZI5-10w$kvkj?BhPC@Q0K^~xbtCAF(3aw9K5Y@P2G%omAYz`#KCTG z(-3i%w5H2CukjON;Lb;$PyctI;UO%zp`hVmAdL~=ppl^A5nv^?iTXc*hNprJr-O!P zfNW=iv^ZIUg8OoK8_uzPGLk(1O=$Q;DqaQ}UJlw_L4%iphV``Ysi5I?pyBoOXgw`j zM~hCS;7<o0~9)+A^vOWvx9mQPM%<*ineD{N+2G+7o+ zi?nRbh7GDkk92ER_JD+Q1b$6I*SB8R{t`-Q>BkvVOR7-!saaR2E~?u4oPyg%WRb5f zHhc)orBIkY1m?1cELR6hxJfFgY%_~s2D@aL&l%k;3Hk>OE+vdq*qix5D zC-toNM@%6?JuNApL399Z%!INrbIQg{D;xI$MXOXYbByg1tijW4$~MHE?Lm!86Vz4p zq(%_dAWwsQN99+N&r$hsnBkvBAqk3bnc50gOFPgi66q>~Y|EX+SxC#(ODWD=t&l8@ zR9A#J7g46OO_-;abJb>Vp1sY3f0OXax&Tbhd}XedGgXZY$XRTDvRHU;6r1mg&94Z% zV)HYLJ&9sZrr1>!yPC?J_hIb?mD~&y&jA`li)N~@m$x6eFAhO-`xke7K>Ysru17Me zKRICe6(NY*A3vo;sc=6VeU485 zJUiW)?8|3S&Ds1iltFSslDeAJVNQLkj3YsoIZrMo9-f>UnqP-7U*)8-@?S>&FY)V$ zW6XaA`PFZ-+TQnMRO*;E3;N)mv9$*)xEs)aY-S&hKFC6W8HB=2B^2PAwN|cKYw4>2 zT(j0v8IgWC7?A!E84zU!D3eS{0^-4HQ+-H8hDMpo!y+=gKt{xXa+EUFMn_~!M8-xi z*$w|F!7XEZKHT{&$;x4$^#glVv#=$`4yz$a{>+h~s!bslyrPT+X)I2?8%n)}IfQ>XvK-gf{-QRV-?*_2H-6G#F9LIQ*i2`!;lfh0gA0VD~{0!y+$ zB#jiRqS(t>&U#kt+@0l65%5sJ2A<_Sdp$kNdEVJQPd)YY|M|Q(vpcghyBmI%^Y{B3 zc(XIR^S2S9`khO z;&QTJy;=xhTEw^ThCB)Kt?9<5qpW=9G*+}#uQDi_pouI{jnot)yrM|Qge}pr z3d6>_-J7=S{u#-(&0sPHNhk~=^r(%un-ggyqOur+(HRXtia{#I2DdcWuSt#-1`Z~; zIyv$)8%rT1ZAjeC(090-VQ{y)%S{OzkcUf9953r0NM4VBuLC0+oNCNW2Vw&i9K%=?fU@jAUlY8f(4t2cLp+>M2I`jo+l#I(qw`upGET1aN=PWBFSXK&Htwh@>i$BP+Qeu>a z--BgUp)CC}@mthOpO6qYCeZ+v3Se28i9{`x;F9+)8zfMdJJ%K42Yz^wLgtvw&5^q&Vrs>_X;G4FIZ9ubw70r$zG&>T_ltVz1 zc|&L#*$p(+Q!F%tZ`sfcjn`M@4mbv*aV$2Vap0nl$6`7WqjwSrk}0@54CK^QkW-98 zRs=ez82sNEAQ@&tF9SisL9$(nUv9(w4)8zrf(`v3Nc(aXxU9-g?6r3iI5bv+WokH7~lO7p(vgd z4chYvhw_qGqrHvTWuM{mYq;J{g*ieOxN+_yHhM0pJN0S41q$VQq~Wi}~DssPE%*TK}x7#4AIlEf8m z-y_l%XQb~I8M{QMeVFgqgm6`0&jZ-=v8r5vZ^?A%p*L#Tu036m?^L5KwL8GnaJfF-Uno07{NzSwD=ya`Sn@up(qn1&O}bPU&G zoa3Ql#er*JG6`f5NvUp12I-Y2w>%tAldxMuFc_+bG=IYO;l=hr9#U6qAtnjN>W6~U zfapr02AUqqtk&0~fyy!1!;jy;jj{5Rsl>c z+VfZ-j~OTFL6UB)3}zd^;mn1rO}@t^{N$W1+9Ke~MCL~L=vDN)Jb?w^0=1W_A=H5V>Dc5x9XK}@1mA?>@IGT zj8kxM43Mu73hmvV3@9GXd@yXn{puQ?J;@Ail&);(=VXcDFGh`v;45&qt4_ON-y8j6 zZ8QhQt{Huxx#}w$Rg+U70Yd@4a)J)d)r9F}x{8sWUCfDPar@KR_CnC>Ps%zHO(t8vmoeVq zrA2);x2?6QjSd^>!-Z4D7vz<+co7~^_~_)u%-%CRduf9;x0i}|Ho~oobG25aTM5Mz zQ^aT;XQQcJ@mpQoEN;ypjOCP5jO)w(IcS zaEFwRV6ln0m3YOSI*wp>8O}(}MGS*{PGf6DTT@eGb1TGN>#GAz%6+_YD--mj)!g8( zlg`a_Xf%NmT_hGu@eF1F%U1AI*O)HoED+2epeYxC+5-Ft=!ieP8-kKtj_2ITxqQAG z3ozt6h~>xj`8~hdgB5m8RaqI7x`yQ9=cB#i9vxmC(8PNMq(${&pI7YH#eMwdeu7jF}3k7Sa!%`a06vW3aqp zsdIB+1q03xHx>%8HrGKr4Ytg%Iegr0{$FBl$O8Lrg70 zjAqP4NK>m?=$y!9-aD3ZEQ>Cllhi_8-PnW;Gtau`7*$YviK?jiRVk-q63&9Fir~K- z%ZceEC})tZ6>P%>jbZu{lf9^ZoM>&e@b_(Q@yz#8^db5p>TV7ag}-%SfsEa7n!nJx z7$wQ23C`s}p1ZUOt1tB-hX+?H%W{J=M$i#|Xo2!_wE{$u3#zOD#AP9*B^11kf)qr9 zWP=3fSaBj38r+}AX(~UlWXMk}N%$08mEm zP5{)51S8Rthd7IIc|)>yi}?K_0skS&%IiU&JX!cTNzu!*kVP7%Avjz-NbY0^dOASR z(*r`DK0s{{lrUIKsZq=T6cUebe0ga;sgIZ(f};dJX9C7qGSA^go`FW5l)UUt!bc@W zN2ZHF?p`c2!Ky>n2Zko7kpRap&4*ms(5rOhx(b|_tI@7yP@7b_79bCE<>e)0KLj&= z2-u*>h;W)zG}Pk?b3Ai-6VDr|#`ty!eZ}#;5t!h#1YbJc#c#kiLNIFV3Tar==NM&# zPH;GWsACyhQJNOQ9Z(uhK5nme2!HinygCoZBZYZ?eDZultCCdkh2ytDpEW$oK`@}_ ziwYyl7*y4REIkoXO-CX-3_;@3XuIb{R7rOje*z2$>kSyg3>aNpVT70eDuys*{6^lj z=pvRs1w$@ITCfb0j7OPRW^YJiRmo=q2KzTOqa16m<-i8a3{Fp&%B;c*%*`g&}-Zqg3JLWx{W~d>lqA8)cSydCt%SA`4sy z9mzKM2Q;qOy&|?M@ySKIq@w|^k*t%B8 z^xEM4Xe}^V4!a(O_VvJn>)=XaB3tMhD5c}RJlI0<>#fsZh^>t*vvo41GpUmCoXXBj z?2%u=$tdGrdJ(CVYk3G!HTF(Kn{Gjyo&+RM1)KLwAbBzL%`O3#{!(z^e+7;^jAlg* zRIwGpSEK2O@G&eRyO4IuX3I=r!}O5tf`%hD@ikCM;F6iTRZwP<$Xl7mcn|GIFheTL zA2lhwvfwF|6TtoVYB#|H({|Ad%&x)O9ijk+NfWglXwbWW?=Gop(Vhmka`pn7fm*ir4>!=*;vX8kz7jD2m~(-@`r5g4=DW+v=*1Zn&2|J z-xyTuE#Mdf)#!m?j3aw=s99(QfMywHqEe`)9O7VBWI=;N=f!MUiIogCYr$G|ELxhl z#@}LD$Q-e zj1Vh>Q@0hh;SM;JXu>^H&J}80<`kB(PL?{FO@=1T(O@b8|6$K^oDyIx*|;PB={zyq_b-_3Zt{K zPgq!ou)>s|CLLaQQsJX14epatMXsk4d|E-}!jp+DQ^l<($z$D!mxk_;BRG+SmhZk8u443XNWk?GZYkAJ@k7#l0d37I(iVm z=1Xk$A}+eJ+W@kiS`6-VH4wlF)&Fuz1fD1PY!8$4=8lZ+s5)6hm`}%ux;6 zLw#^Qqa`U@x)x<|@feS?h9M1~ELXW4>jJ0jV^DGzwoDJaH3F`El<@bRP~obB%TYKC zU_D2OY)=(BcL5wbRUyFZLWuxeQUZY%pg|K4k7x_Y*Jug%w~s2b>U=^l4ZsWTC+fKk z(-u}rZ@OW;*^_->>6RoT>kO}eYEPVcn8j~Oc{$t%IcOPwpbjrT=X%9FejdTgd>`Ja z-~~}ztHc7ny^xnhd|b?7#=m%iT9OPc@1uN}8^@U6C-G@1FUxrG^RnFhG0nWmRX3PN zUQz88IQMmgi`e3&rE``}uUJ}ET2Tpd5yw1N=4-FYxs}t(@NRL*A}ADB&6zvDxMcp) zijvBum5b+R7i@4M`;|!=mOdVK%Sn-y0ZbsYmfn2UsL>G z+e?HNK~&goJHGEKQ_NJXDa%;pVAetAf@4xZi%Z4duzTNzVwo7JgDxJdQ`yifR_NFP zR_RByEY#b1Cd`U(|kk?~!Ocg8Em2uz{mpf`=a(ck;FhicEt&?WFp#cHa zg$PRc7U>fhE-q{#)#gD7xa6z`*}?63A5}=lV3ErMO;o`Wt4BP8@0-1Kh$`6a5d5kI z%oaD!86+-pfVYTY+?*lgFiDmAb0YWqcY2Cy!_>uH*0xw|P=i{Ul!pE|EP@d5#190_rg#FPl6aeCf@L-)*vV z$Wu}*oe9{q3&4&k#L;>pq{Wl){bcYo;Livpz*SPP1nvm#CG;Y25NbHHx|C3CDWL=< z%s>eTWz6HVlP>ubm5r*ill?Z>ydm>W+^A;+MQrRbn#UA)j;8Yt^@z%=x;*$GOVeJlvi z)zCt!!#C4{c?TGIeMYuU3l)jPe2S0OhK^f{C#=V+JZ&o)5#?#5Lp{jX`J&6T0^BF2 z$Gvy0WE|n{{Tn2e?S*dS3CS116ER-sDt)TbXKP}*cE0(lc0usf?qRQzX2+|aUMo&f zcVAsEHmbWXw;CmBpI@Wsc?rD7HgUD_s`cxh+r;SxtgVWJkgk2PRnpsl|L?7e36rk< zD+u+oYa|~>q1LGUqi8T zjfIZcBFNj9Lv3s=MeXpweJM22uZ8#R+o13D7w{+FhhOe5#bx03T%o0lE46HKwKfQG z&kMzM+5~vv)*vwA94@xgtB)VE`Ck`d{4)*03lZtn>ekw|Du!1zW!8^;^ZUJcy?{F7 z5YJP5-y<2LqGvLc8FG2)oeVO)FMsIAOMgrluNe44(27AaO^GujQfdEff~sqf&aZtaCJ8D?`GBV5Jz*kF%KM|WYmZCkfI96QEL98V}SaV56CcIZX%FT?M^f z5a?n9C>MJZXpIEQ5{6xljmIb;?VHV^5|WHPg+-`Mvjj!Vz&1S-8)hl6KODc%9!wRJ zg(vQ3hFTi4DWL{s6za$B_LXhxlaI`~3nx{kJiH!h#+c(}9-=#ioyK8fn?l^6S`wVh#T)!K5zGk6uk zw1j?ReJ#2}hUS8suop6A97iKAs|+AbU_7oXts9<$O@tT;MhRD4L8Eu^vZ1#Nj7>n9 zwr@kg{@ZJ~VI4EK!9m0?ODmy*5_CZ6}a!Ro;yIA6}KD=JDcmP`I{PB?K>R)uq!NQFqevMSWi>2 zRCK_T2dis0P|l&}bbO1B!&R`ytMVjZF&U*y0TzdWQ%o9K`P3n78|PRFISE3ob_l+K7w8cu z{8czl$LfeB+I$s$=s<k*8lU4=Z3<{6lrz0zCT5AH&QX^!pZ_ z@M&Kmn1lOQ0m;HRWkC*%T2qoGi@t{{c zV z=Y8S@@gnbD@`{&}#4A2{eS6i1j(;r~wEpW!;tfK3(<|Qciog2M0ta|`J4yVFpYQn4 zba=Cq_qI5joIy?csw%kfm2ulq{WDGPk@0P?!~ANPYZn`rN8H#gbc|0)vhYI1tZDN~@L4{0{yfAB?l^aTDG)0umfw#o=4(0lS!M+Ye>Dtw z{nZ=FrDBy&(I0cMR`qHIJnK#40=?O%H{kJmR*u$EL$ix`dTP}*7#ck zh?yFwnT6Pn6a`uJ7tNeMsEj9>=5TNbLcf+S!)f{~PCF<92AWqO)THe9%(f=t9o!Sm zCX9!2I&hunY&!%YZVHSn4mO_)p>Iz2@y^^cn;YAj+LM>PZSM$8OgnUVb`Y4~Yn?En zj|Rq8pB>mR(J@RAud|_LMPqaQ$YMj4)H?AT1&7%xD&oC;mVVjh2_e``igZzoq|3xr zup|wqcI@Tr@F#mYFW2(26&GzNW7-cll(4Ost0BPmphtaoCwYWeR7m15? z_!q`^m-6x}JR*KffsRlnBVB^WT3c2J1M?Rs&b=-=6dZq}iwmJYB7!_Kdv$TplIrkh ziM3vBl#VbMV{}GjFpf%UhL+aV1y=g&5Ky%>6t6xa$kASHysk~qAa%Sxd?P zSj5*+-cF~)fw6Qw9e?c0 zu~%E7Ye#BF>Dtj4quMdNo2f0;wPoTLy5`rG>sqx|Lt}y6IuvGi@NO6H?$V)7cdib7 zx*K(ErM8Oi)#}=@+G^z0>U6DMYtXeut%*OZfrL7|nK+gJ_18Ag?!f5_F0|w+Nak?Is_)=v zs5*TYCdnZ&z2#zH?I`#yD=ioYhkUHKA`Ze#J4}kfNq&S`2AD6Rk#ocQ*ksO_O#!;4 zwxI}K?Up0pH0CcP>PaT;Vj9&4O)3u6W+JxTReEj1bQHW2L_mX@0N_TpNS{1dRUJEQ zc!#1R9W@Mp2LNkZ%4*j_=_AudffY%!OAf^jXmVv#Cf7|!$(-Xk1Xi94oJ3C8k_*&G zb#g)D8O4=W3D4pLYF!TjF^V<^s*zDI4dbjUGdQa)u$Ze}Wd#KKG}l={%fc)P!S7$` zVWqLSV|<$0Bu?(2iD>X8x5?^wNhwM>7BKh-b5_*xmZY6zolUJ7Lu<3$h(Ac=a%dVW=WF z`@n$ZD8mYbGqacD4cjh>vC*L=h&EaeOIU`?qUfxkI#hZcwz#ZL*}nl`om$&~abs@!6puJ68Y~XYz|(Y*zsbM6wyu`e|5IggXZa3*TBNPIlGsEy0Zwc%O0hPuvDMhE z`5<0ufa!f=U`?C94#-5(K2xj|GG5IyYS1r8Naro0QS?C7WVViW*M*zqY+R!woFhPz z6^_1;-*P;vGh1+EyDX#Du`qZ6n5QjLN0>2qp{58{^*V6bJWy2Z29FD&=Z$#YWO+Ug z4Ey6P&ztdlg5~){yuZcrd=j2dwmhGL=Tj}ueE&4d^JY9#kHp013_PD{d0r1JajwEu z@R%k)arBd)IQ_{_9027f&S>%zXF>Ui9biC<|v!T(7`WKSOIQDK9@Q zCFp46O8i2uHWj+P;#isEDkDceWX$AHc7%GFXEDM}$K}8}BVNf@LK!zguChsHyxP5} zgzy}vp{Ubkj;%(HA<&3oQE9R$4Q0Uq!KJKAAVa!T=DfzpNhFDW$2=`91xi<5ct~@} zcny%e7O&y>ZDc%vjMP9o7UKM5x*qlMlERD5ODZoNcmZgHyw5)Xs|gg4jsW-jMW?&q zA_^k*&iNULgx!UvV~|Is=45o+EwZ*DGu&rNqp_|OQFYHt*e$X{&2TuxUP9b~@@GNn zQU=`SgR{O6BVrN64M#x&b2P;9cS0v+2UO4Qf^dEp-r5bVHiY~Ud!T@JFRWGeqR(h5 zcb&N2sMByXBCW}~0<%;^fMCDz7F`G1L73c7R>huEVy%OCxDEdIVjThh#reGdhQmzc8T15{7$L(o?-dNDKSO-@7rga4z43BVJu>S7i{_|n1@1xO%6;N`)g@p zh?Xu6*D_(|*agnuvfu=+J4_vWK<~S!Sf#=HtkwsP-TI3S+5mB!Hdy=?kf>eL4=n(W zlF(9NFY(yE{ESEf9D-yF~YQ>_)&L*sUf@jJzYZDJRHY#)H(a|nQjg8+aK zT?)Y3FaUhqFA8>uNm#SCiG^H?jM>VS3{O~gI&Xs^Zg|0H+iS!?d>ye0BlzP^!O(e_ zuv2!x;B=>$8fyEEkXZ|Ds+g)3iE^zNHhVK*V>lBQDW#%LJ6vqmW{WLaxj0vwBhJ(2 ziA%I2#En{oxK*nZ``{7qer=(6LR%#Mq%9GzYDbFK!9)5`J4Sr2EfrsacjVQUYe`y- zmaYX56KjPwP+J8~V*^-rG)4NI*}Ks7RbudgT%UbJ`hfb_DW>tO6k7$RhbkbgowRi# zL0gXjv;m^XO&CPS!LW`4VLM!Ns4WwHEr-f{c&Qw7nHZYCUyNbAxE-R1u>yC9VqQwJ z65w5W#%?jQJPXVGtU23Y3btR2;G4TeX*sWl&ly6Wl`y|g8D8MJTL@LwG258KKG8$RW4uMt+(evoP7Xcc9OUdXovR@DMxzxChJ_ z2H4?rMuX2{P!ar814>!h{sl7h*8%NK)b%aY^{*mV`x^%MJ0c$zq{Cr7Iu4ej#o9*_ z;oS;h4=p00sw3CSBMnR^#B-TT>LiZBGKXOwKOr$Iafdj1f|no1U=IRigjISeDa2){ z4XBQ#q&oa@h5UkVjl=|54#o4V1o?y|F)Q&tQGJV~kzy0~i|QRBFd;cBae^-k z{^M4}*NjQYOu0e~&PvWq*(p|nqGAmKrDOO{!`w-TZcf_cUbvpR%LWF|6NpzO; zxqiQB!2b!!2yqLv<9CWi^BYoCS>CK^jMEA|6SZ+3VCf;g;8v><0WBUi z19WsKh%+yU<>t@~mxJF^4Aa~a*aFW)&OO1^IZS&fNOgMV1LQq;)g$f=sgBaa-d98K zuPj40rhL2*&PiQp*g=J4QtNBObVs#x1YeQP^LVJ)!iST1Ihl{APoa&clb5r2Ih&VX@Ny0>aG~cB=OyFp^-Hg~fZr(Bc^8XI_;6_wz2;pkF5|=HJ`fyN z^6o0HxH^g6@~#orQhDgQWKhXBB#9fL0V8grCy`&n9~E3nQEBLAueb$juHsf+ZsRv} z4n@7zTfO3Tx^umQFz@t=9dyul7h&y8#sah3$4+8~J-oYzmZkS51IS)ppgJ{(s#6zJ zb?RcOPF+mZsf)#fR4#gmpbqeI&Yt3sI>A2R=4>v z)MHX4E6L>9{qIwj30IAAD$o3^EMu_uemcrBKb&^;_pgrf9dszVyD#8e=5??$pd1!c zg#yk?_$pk?)rezxd0ZEN#9>1Dv9mJm)fDC{n;3iu5r~!q!w)SL%XAp;;k)I$tLELG z#FJj}lrEkY&$vj*$&NGycskfH7(ziiZQFL_70>G8Iq|#>e>PB2a#6Lwo&_}uXqwUk zU#VBTq>GouD>`*e+oML|4iS#MU(>+?d7Tx0!z08+k6pAM!n7m$g>U|{Kf|;ibZ}MRa&RF$#>7yk z&=HXNQymPL&%EMuU3?+_?G<0@V8DE>L%kLw?<}y7-^V z{@bni@MEYA9+IZu&sqznvWG)!;fK>2fN%`5wx4weOkHaiq1XRS-2uY|sdXQBT|EDn zst&j*)c)6$Vcql*+OJpqedqyy7v1Fl(^?ofna{v+9O6(&1QA0P3=^8=df-rso=ro~ z<#?WBd7cZY#XQUN5qO?&d9DBy5S_RR60!0V)RX)KjVwPwCd*H{e&iqMSosN}S$=|U zmY*P<Wey6rSyXgcb13I8Amchm=3H&$j4EpmWxNDPUW$TnPBAk6w`9%4Ny(Za zri9xN@{&4W1a*Rs*=`saJun9PfPNkbF=Rdjk>eppn+b7T8DwZx5QHp&C}b(b3^m}% z*Fp}hNoRAa8QUdmCIU*V~26=P%@e&2%8zB@%fyI{0G1)~FYiGe}E=pd_L6jE%+Qu2d>(e?ls zVik-IH31lc(I5ac7=%&7c8K9Fg3%EU!Duj_A=9!5Mx9llvjqse=p_?^(UCjEC{$v! zVu!N_q+nEhEvAZZAsB_dvgUzcG!BB%1PDeGAsF>SFq#a(s1JfsSaCplexueAg3&Yx zM$;h}?F3#%X9z~SfEmygg3&ApM!Q2Wnhn8d4+utkLNJ;O!Dw#?M*C<3wSEwc=0Pw@ zc6poGyLQ2-l*4pkUOfz}Qd)lwfoe9~1B^Vu`1f%1WV01hMqZ6bc1tRQ8QZPE%5R4Wm!RQnz7(FZ~80|>GXj%vtB^WJ& zOb0G1AYtwd3G*OGmWM&ATmXskSQsWuhE%yoTL4MoVhBc;KrqTZ3ohvlJR=E43n+@4 zY6wQBnu5_0hG2BsU19_!Z}gKiVyBpH6O6Js4Z PEj09FggaWVl0}YCR8;g81+Li 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 z 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 ZkhRiV!@J`kyba7?a;y;p7BN?E7R)Lj^3qBG{3Z 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 Gq%oS)EiJIaVl?r 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 tLDtIZ?zTf Date: Mon, 23 Sep 2019 00:25:52 +0200 Subject: [PATCH 2/2] Added table blank holding system for square blocks of foam on a table Refactor commands into separate class files Fix issue with rotation, fixes rotation of ghost board Performance improvements on generating surfaces and in general Bugfix on surfaces Loads s3dx format View cross section walkthrough in machine view Improved weight calculator --- board/BezierBoard.java | 308 +- board/readers/BrdReader.java | 467 +- board/readers/BrdXmlReader.java | 5 + board/readers/S3dReader.java | 357 +- board/readers/S3dxReader.java | 364 ++ board/writers/BrdXmlWriter.java | 5 + boardcad/AbstractDraw.java | 4 +- boardcad/DefaultBrds.java | 4 +- boardcad/FileTools.java | 9 + boardcad/commands/BrdAbstractEditCommand.java | 164 + .../commands/BrdAddControlPointCommand.java | 92 + .../commands/BrdAddCrossSectionCommand.java | 60 + .../commands/BrdAddGuidePointCommand.java | 33 + boardcad/commands/BrdCommand.java | 82 + boardcad/commands/BrdCommandHistory.java | 70 + .../BrdDeleteControlPointCommand.java | 106 + boardcad/commands/BrdEditCommand.java | 849 +++ boardcad/commands/BrdFitCurveCommand.java | 112 + .../BrdImportCrossSectionCommand.java | 107 + .../commands/BrdImportOutlineCommand.java | 92 + .../commands/BrdImportProfileCommand.java | 98 + boardcad/commands/BrdInputCommand.java | 52 + boardcad/commands/BrdMacroCommand.java | 57 + .../commands/BrdMoveCrossSectionCommand.java | 55 + boardcad/commands/BrdPanCommand.java | 84 + .../commands/BrdPasteCrossSectionCommand.java | 65 + boardcad/commands/BrdPositionCommand.java | 199 + .../BrdRemoveCrossSectionCommand.java | 52 + boardcad/commands/BrdRotateViewCommand.java | 79 + boardcad/commands/BrdScaleCommand.java | 197 + boardcad/commands/BrdSpotCheckCommand.java | 42 + boardcad/commands/BrdZoomCommand.java | 153 + boardcad/commands/GhostCommand.java | 18 + boardcad/commands/NurbsEditCommand.java | 46 + boardcad/commands/PointEditCommand.java | 39 + boardcad/commands/SetImageNoseCommand.java | 29 + boardcad/commands/SetImageTailCommand.java | 30 + boardcad/export/GCodeDraw.java | 717 ++- boardcad/gui/jdk/AboutBox.java | 2 +- boardcad/gui/jdk/BezierBoardDrawUtil.java | 3260 +++++------ boardcad/gui/jdk/BoardCAD.java | 5121 +++++++++-------- boardcad/gui/jdk/BoardCommands.java | 2599 --------- boardcad/gui/jdk/BoardEdit.java | 195 +- boardcad/gui/jdk/BoardFileView.java | 256 +- boardcad/gui/jdk/BoardGuidePointsDialog.java | 21 +- boardcad/gui/jdk/BoardLoadAction.java | 53 +- boardcad/gui/jdk/BoardPreview.java | 26 +- boardcad/gui/jdk/BoardSpec.java | 7 +- boardcad/gui/jdk/Brd3DModelGenerator.java | 242 + boardcad/gui/jdk/BrdEditParentContainer.java | 8 + boardcad/gui/jdk/BrdEditSplitPane.java | 36 + boardcad/gui/jdk/BrdGuidePointsDialog.java | 10 + .../gui/jdk/CategorizedSettingsComponent.java | 2 + boardcad/gui/jdk/ComboBoxDialog.java | 2 + boardcad/gui/jdk/ControlPointInfo.java | 12 + boardcad/gui/jdk/DesignPanel.java | 2077 ++++--- .../gui/jdk/FasterBrd3DModelGenerator.java | 270 + boardcad/gui/jdk/JOGLPanel.java | 61 +- boardcad/gui/jdk/JavaDraw.java | 13 + boardcad/gui/jdk/Machine2DView.java | 418 +- boardcad/gui/jdk/Machine3DView.java | 656 ++- boardcad/gui/jdk/MachineDialog.java | 6 +- boardcad/gui/jdk/MachineView.java | 1 + boardcad/gui/jdk/QuadView.java | 40 + boardcad/gui/jdk/ScaleBoardInputDialog.java | 51 +- boardcad/gui/jdk/SettingDialog.java | 2 + boardcad/gui/jdk/SettingsComponent.java | 20 +- boardcad/gui/jdk/StatusPanel.java | 2 +- boardcad/gui/jdk/TwoValuesInputDialog.java | 6 +- boardcad/gui/jdk/WeightCalculatorDialog.java | 157 +- boardcad/i18n/LanguageResource.properties | 40 +- boardcad/i18n/LanguageResource_en.properties | 80 + .../i18n/LanguageResource_en_US.properties | 73 + boardcad/i18n/LanguageResource_es.properties | 132 + boardcad/i18n/LanguageResource_fr.properties | 71 + boardcad/i18n/LanguageResource_nl.properties | 71 + boardcad/i18n/LanguageResource_no.properties | 74 +- boardcad/i18n/LanguageResource_pt.properties | 72 + boardcad/print/PrintBrd.java | 48 +- .../print/PrintChamberedWoodTemplate.java | 28 +- boardcad/print/PrintHollowWoodTemplates.java | 3786 ++++++------ boardcad/print/PrintSandwichTemplates.java | 18 +- boardcad/print/PrintSpecSheet.java | 70 +- boardcad/settings/Settings.java | 5 + boardcam/BoardMachine.java | 116 +- boardcam/MachineConfig.java | 473 +- boardcam/Scan.java | 2 +- boardcam/cutters/AbstractCutter.java | 7 +- .../AbstractBlankHoldingSystem.java | 13 +- boardcam/holdingsystems/ChangeListener.java | 5 + .../EndClampsBlankHoldingSystem.java | 28 +- .../TableBlockHoldingSystem.java | 277 + .../SurfaceSplitsToolpathGenerator.java | 508 +- boardcam/writers/GCodeWriter.java | 33 +- cadcore/AbstractBezierBoardSurfaceModel.java | 12 +- ...ControlPointInterpolationSurfaceModel.java | 17 +- cadcore/BezierBoardCrossSection.java | 21 +- ...rBoardLinearInterpolationSurfaceModel.java | 8 +- ...BoardSLinearInterpolationSurfaceModel.java | 381 +- cadcore/BezierCurve.java | 1019 ++-- cadcore/BezierKnot.java | 10 +- cadcore/BezierSpline.java | 1215 ++-- cadcore/MathUtils.java | 76 +- cadcore/NurbsSurface.java | 9 +- cadcore/UnitUtils.java | 16 +- cadcore/VecMath.java | 6 + gluegen-rt-natives-linux-amd64.jar | Bin 5442 -> 4149 bytes gluegen-rt-natives-linux-i586.jar | Bin 5474 -> 4130 bytes gluegen-rt-natives-macosx-universal.jar | Bin 6271 -> 5076 bytes gluegen-rt-natives-windows-amd64.jar | Bin 9321 -> 8159 bytes gluegen-rt-natives-windows-i586.jar | Bin 8746 -> 7577 bytes gluegen-rt.jar | Bin 294610 -> 345605 bytes j3dcore.jar | Bin 2878081 -> 3057672 bytes j3dutils.jar | Bin 1714102 -> 1756957 bytes jogl-all-natives-linux-amd64.jar | Bin 203174 -> 224010 bytes jogl-all-natives-linux-i586.jar | Bin 202234 -> 217274 bytes jogl-all-natives-macosx-universal.jar | Bin 406156 -> 443876 bytes jogl-all-natives-windows-amd64.jar | Bin 217598 -> 240721 bytes jogl-all-natives-windows-i586.jar | Bin 188254 -> 209445 bytes jogl-all.jar | Bin 3227328 -> 3414448 bytes ujmp/ujmp-complete-0.3.0.jar | Bin 0 -> 2127662 bytes vecmath.jar | Bin 318870 -> 330827 bytes 122 files changed, 16425 insertions(+), 13329 deletions(-) create mode 100644 board/readers/BrdXmlReader.java create mode 100644 board/readers/S3dxReader.java create mode 100644 board/writers/BrdXmlWriter.java create mode 100644 boardcad/commands/BrdAbstractEditCommand.java create mode 100644 boardcad/commands/BrdAddControlPointCommand.java create mode 100644 boardcad/commands/BrdAddCrossSectionCommand.java create mode 100644 boardcad/commands/BrdAddGuidePointCommand.java create mode 100644 boardcad/commands/BrdCommand.java create mode 100644 boardcad/commands/BrdCommandHistory.java create mode 100644 boardcad/commands/BrdDeleteControlPointCommand.java create mode 100644 boardcad/commands/BrdEditCommand.java create mode 100644 boardcad/commands/BrdFitCurveCommand.java create mode 100644 boardcad/commands/BrdImportCrossSectionCommand.java create mode 100644 boardcad/commands/BrdImportOutlineCommand.java create mode 100644 boardcad/commands/BrdImportProfileCommand.java create mode 100644 boardcad/commands/BrdInputCommand.java create mode 100644 boardcad/commands/BrdMacroCommand.java create mode 100644 boardcad/commands/BrdMoveCrossSectionCommand.java create mode 100644 boardcad/commands/BrdPanCommand.java create mode 100644 boardcad/commands/BrdPasteCrossSectionCommand.java create mode 100644 boardcad/commands/BrdPositionCommand.java create mode 100644 boardcad/commands/BrdRemoveCrossSectionCommand.java create mode 100644 boardcad/commands/BrdRotateViewCommand.java create mode 100644 boardcad/commands/BrdScaleCommand.java create mode 100644 boardcad/commands/BrdSpotCheckCommand.java create mode 100644 boardcad/commands/BrdZoomCommand.java create mode 100644 boardcad/commands/GhostCommand.java create mode 100644 boardcad/commands/NurbsEditCommand.java create mode 100644 boardcad/commands/PointEditCommand.java create mode 100644 boardcad/commands/SetImageNoseCommand.java create mode 100644 boardcad/commands/SetImageTailCommand.java delete mode 100644 boardcad/gui/jdk/BoardCommands.java create mode 100644 boardcad/gui/jdk/Brd3DModelGenerator.java create mode 100644 boardcad/gui/jdk/BrdEditParentContainer.java create mode 100644 boardcad/gui/jdk/BrdEditSplitPane.java create mode 100644 boardcad/gui/jdk/FasterBrd3DModelGenerator.java create mode 100644 boardcad/gui/jdk/QuadView.java create mode 100644 boardcam/holdingsystems/ChangeListener.java create mode 100644 boardcam/holdingsystems/TableBlockHoldingSystem.java create mode 100644 ujmp/ujmp-complete-0.3.0.jar diff --git a/board/BezierBoard.java b/board/BezierBoard.java index 644dcf7..9e35826 100644 --- a/board/BezierBoard.java +++ b/board/BezierBoard.java @@ -39,6 +39,8 @@ import java.awt.geom.Point2D; import java.util.ArrayList; import java.util.Collections; +import java.util.Vector; + import javax.media.j3d.IndexedQuadArray; import javax.media.j3d.QuadArray; @@ -126,8 +128,6 @@ public class BezierBoard extends AbstractBoard implements Cloneable { private double mCenterOfMass = 0; private AbstractBezierBoardSurfaceModel.ModelType mInterpolationType = AbstractBezierBoardSurfaceModel.ModelType.ControlPointInterpolation; - - private Shape3D m3DModel = null; public BezierBoard() { @@ -979,40 +979,6 @@ public double getXFromTailByOverBottomCurveLength(double length) public double getDeckAtPos(double x, double y) { - -/* - //Calculate scales - double widthAtPos = getWidthAtPos(x); - double thicknessAtPos = getThicknessAtPos(x); - - //Get the position from function since we cheat with the crosssections at tip and tail - double pos1 = getPreviousCrossSectionPos(x); - double pos2 = getNextCrossSectionPos(x); - - //Get crosssections but use the first and last real crosssections if we're at the dummy crosssections at nose and tail - BezierBoardCrossSection c1 = getPreviousCrossSection(x); - BezierBoardCrossSection c2 = getNextCrossSection(x); - - //Get scales and values - double Scale1Y = c1.getWidth() / widthAtPos; - double Scale1Z = c1.getCenterThickness()/ thicknessAtPos; - - double Scale2Y = c2.getWidth() / widthAtPos; - double Scale2Z = c2.getCenterThickness()/ thicknessAtPos; - - double v1 = c1.getDeckAtPos(y*Scale1Y); - double v2 = c2.getDeckAtPos(y*Scale2Y); - - v1 /= Scale1Z; - v2 /= Scale2Z; - - //Get blended point - double p = (x - pos1)/(pos2 - pos1); - - double z = ((1-p)*v1) + (p*v2); - - return z; -*/ return AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(getInterpolationType()).getDeckAt(this,x, y).getZ(); } @@ -1041,12 +1007,12 @@ public Point2D.Double getSurfacePointAtPos(double x, double s) public Vector3d getDeckNormalAt(double x, double y) { - return AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(getInterpolationType()).getBottomNormalAt(this,x, y); + return AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(getInterpolationType()).getDeckNormalAt(this,x, y); } public Vector3d getBottomNormalAt(double x, double y) { - return AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(getInterpolationType()).getDeckNormalAt(this,x, y); + return AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(getInterpolationType()).getBottomNormalAt(this,x, y); } @@ -1767,7 +1733,7 @@ boolean deckCollisionTest(Point3d aabbCenter, double width, double depth, double { double y = aabbCenter.y - (width/2.0); - for(int j = 0; i <= widthSplits; i++) + for(int j = 0; j <= widthSplits; j++) { double z = getDeckAt(x, y); z += getRockerAtPos(x); @@ -1999,7 +1965,7 @@ public NurbsPoint getTuckedUnder3D(double x) BezierKnot myControlPoint=before_ControlPoints.getControlPoint(i); Point2D.Double ControlPoint_point=myControlPoint.getEndPoint(); - if(before_outline<=ControlPoint_point.getX()) + if(before_outline guidepointArray) { - try{ - if(spline != null) + try { + if (spline != null) { String strLine = cFile.readLine(); - while(strLine.startsWith("(cp")) + while (strLine.startsWith("(cp")) { spline.append(readControlPoint(strLine)); strLine = cFile.readLine(); } - if(strLine.startsWith("gps")) + if (strLine.startsWith("gps")) { - if(guidepointArray != null) + if (guidepointArray != null) { strLine = cFile.readLine(); - while(strLine.startsWith("(gp")) + while (strLine.startsWith("(gp")) { String[] splitString = strLine.split(" "); - String valuesStr = splitString[1].substring(1,splitString[1].length()-2); + String valuesStr = splitString[1].substring(1, splitString[1].length() - 2); String[] values = valuesStr.split(","); guidepointArray.add(new Point2D.Double(Double.valueOf(values[0]).doubleValue(), Double.valueOf(values[1]).doubleValue())); @@ -658,33 +656,34 @@ static void readArrayOfControlPointsAndGuidepoints(BufferedReader cFile, BezierS } } } - } - catch(Exception e) + } catch (Exception e) { String str = e.toString(); - System.out.printf("exception occured during load %s", str); -/*java 1.6 System.console().printf("exception occured during load %s", str);*/ + System.out.printf("exception occured during load %s", str); + /* + * java 1.6 + * System.console().printf("exception occured during load %s", str); + */ } } - static BezierKnot readControlPoint(String string) { BezierKnot controlPoint = new BezierKnot(); - if(string.startsWith("(cp")== false) + if (string.startsWith("(cp") == false) return null; - String[] splitString = string.substring(1,string.length()-1).split(" "); + String[] splitString = string.substring(1, string.length() - 1).split(" "); - String valuesStr = splitString[1].substring(1,splitString[1].length()-1); + String valuesStr = splitString[1].substring(1, splitString[1].length() - 1); String[] values = valuesStr.split(","); - for(int i = 0; i < 3; i++) + for (int i = 0; i < 3; i++) { - double x = Double.valueOf(values[i*2]).doubleValue(); - double y = Double.valueOf(values[(i*2)+1]).doubleValue(); + double x = Double.valueOf(values[i * 2]).doubleValue(); + double y = Double.valueOf(values[(i * 2) + 1]).doubleValue(); - controlPoint.getPoints()[i].setLocation(x,y); + controlPoint.getPoints()[i].setLocation(x, y); } @@ -697,10 +696,10 @@ static BezierKnot readControlPoint(String string) static void readDoubleArray(String input, double[] returnValues) { - String valStr = input.substring(1,input.length()-1); + String valStr = input.substring(1, input.length() - 1); String[] values = valStr.split(","); - for(int i = 0; i < values.length; i++) + for (int i = 0; i < values.length; i++) { returnValues[i] = Double.valueOf(values[i]); } @@ -710,7 +709,7 @@ static void setErrorStr(String errorStr) { mErrorStr = errorStr; } - + static public String getErrorStr() { return mErrorStr; diff --git a/board/readers/BrdXmlReader.java b/board/readers/BrdXmlReader.java new file mode 100644 index 0000000..69bad54 --- /dev/null +++ b/board/readers/BrdXmlReader.java @@ -0,0 +1,5 @@ +package board.readers; + +public class BrdXmlReader { + +} diff --git a/board/readers/S3dReader.java b/board/readers/S3dReader.java index 6e1926f..979b721 100644 --- a/board/readers/S3dReader.java +++ b/board/readers/S3dReader.java @@ -27,248 +27,237 @@ public class S3dReader { static final int XY = 0; static final int XZ = 1; static final int YZ = 2; - + static String mErrorStr; - - static public int loadFile(BezierBoard brd, String aFilename) - { - System.out.printf("Loading %s\n", aFilename); + + static public int loadFile(BezierBoard brd, String aFilename) { int ret = 0; - + brd.reset(); - + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - - try { + + try { DocumentBuilder builder = factory.newDocumentBuilder(); - Document document = builder.parse( new File(aFilename) ); - - Element shape3Dnode = (Element)document.getElementsByTagName("Shape3d_design").item(0); - Element boardNode = (Element)shape3Dnode.getElementsByTagName("Board").item(0); - - Element bottom = (Element)boardNode.getElementsByTagName("Bottom").item(0); - Element deck = (Element)boardNode.getElementsByTagName("Deck").item(0); - Element outline = (Element)boardNode.getElementsByTagName("Outline").item(0); - + Document document = builder.parse(new File(aFilename)); + + Element shape3Dnode = (Element) document.getElementsByTagName("Shape3d_design").item(0); + Element boardNode = (Element) shape3Dnode.getElementsByTagName("Board").item(0); + + Element bottom = (Element) boardNode.getElementsByTagName("Bottom").item(0); + Element deck = (Element) boardNode.getElementsByTagName("Deck").item(0); + Element outline = (Element) boardNode.getElementsByTagName("Outline").item(0); + readBezierAndGuidePoints(outline, brd.getOutline(), brd.getOutlineGuidePoints(), XY); BezierKnot controlPoint; - //Add outline controlPoints at tail and nose - if(brd.getOutline().getControlPoint(0).getPoints()[0].y > 1.0) - { + // Add outline controlPoints at tail and nose + if (brd.getOutline().getControlPoint(0).getPoints()[0].y > 1.0) { brd.getOutline().getControlPoint(0).setContinous(false); - brd.getOutline().getControlPoint(0).getPoints()[1].y = brd.getOutline().getControlPoint(0).getPoints()[0].y*2/3; - + brd.getOutline().getControlPoint(0).getPoints()[1].y = brd.getOutline().getControlPoint(0).getPoints()[0].y * 2 / 3; + controlPoint = new BezierKnot(); - controlPoint.getPoints()[2].y = brd.getOutline().getControlPoint(0).getPoints()[0].y/3; + controlPoint.getPoints()[2].y = brd.getOutline().getControlPoint(0).getPoints()[0].y / 3; brd.getOutline().insert(0, controlPoint); } - - if(brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints()-1).getPoints()[0].y > 1.0) - { - brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints()-1).setContinous(false); - brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints()-1).getPoints()[2].x = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints()-1).getPoints()[0].x; - brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints()-1).getPoints()[2].y = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints()-1).getPoints()[0].y*2/3; - + + if (brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].y > 1.0) { + brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).setContinous(false); + brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[2].x = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].x; + brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[2].y = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].y * 2 / 3; + controlPoint = new BezierKnot(); - controlPoint.getPoints()[0].x = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints()-1).getPoints()[0].x; + controlPoint.getPoints()[0].x = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].x; controlPoint.getPoints()[1].x = controlPoint.getPoints()[0].x; - controlPoint.getPoints()[1].y = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints()-1).getPoints()[0].y/3; + controlPoint.getPoints()[1].y = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].y / 3; controlPoint.getPoints()[2].x = controlPoint.getPoints()[0].x; brd.getOutline().append(controlPoint); } - + readBezierAndGuidePoints(bottom, brd.getBottom(), brd.getBottomGuidePoints(), XZ); - if(deck != null) //Thickness curve instead? + if (deck != null) // Thickness curve instead? { readBezierAndGuidePoints(deck, brd.getDeck(), brd.getDeckGuidePoints(), XZ); - } - else - { - //TODO: Add generation of deck curve from thickness curve when curve fitting is implemented - - ret = 1; //Warning code, deck curve is no good - - //Dummy deck curve - controlPoint = (BezierKnot)brd.getBottom().getControlPoint(0).clone(); + } else { + // TODO: Add generation of deck curve from thickness curve when + // curve fitting is implemented + + ret = 1; // Warning code, deck curve is no good + + // Dummy deck curve + controlPoint = (BezierKnot) brd.getBottom().getControlPoint(0).clone(); controlPoint.setContinous(false); controlPoint.getPoints()[0].y += 1.5; controlPoint.getPoints()[2].x = 20; - controlPoint.getPoints()[2].y = controlPoint.getPoints()[0].y - 0.5; + controlPoint.getPoints()[2].y = controlPoint.getPoints()[0].y - 0.5; brd.getDeck().append(controlPoint); - - double thickness = ((( brd.getLength()/(12*UnitUtils.INCH)) - 5 )/4 * 1) + 2.125*UnitUtils.INCH; + + double thickness = (((brd.getLength() / (12 * UnitUtils.INCH)) - 5) / 4 * 1) + 2.125 * UnitUtils.INCH; controlPoint = new BezierKnot(); - controlPoint.getPoints()[0].x = brd.getLength()/2; + controlPoint.getPoints()[0].x = brd.getLength() / 2; controlPoint.getPoints()[0].y = thickness; controlPoint.getPoints()[1].x = controlPoint.getPoints()[0].x - 50; controlPoint.getPoints()[1].y = thickness; controlPoint.getPoints()[2].x = controlPoint.getPoints()[0].x + 50; controlPoint.getPoints()[2].y = thickness; brd.getDeck().append(controlPoint); - - controlPoint = (BezierKnot)brd.getBottom().getControlPoint(brd.getBottom().getNrOfControlPoints()-1).clone(); + + controlPoint = (BezierKnot) brd.getBottom().getControlPoint(brd.getBottom().getNrOfControlPoints() - 1).clone(); controlPoint.setContinous(false); controlPoint.getPoints()[0].y += 1.5; - controlPoint.getPoints()[1].y += controlPoint.getPoints()[0].y/2; + controlPoint.getPoints()[1].y += controlPoint.getPoints()[0].y / 2; controlPoint.getPoints()[2].x = controlPoint.getPoints()[0].x; controlPoint.getPoints()[2].y += 0.8; brd.getDeck().append(controlPoint); } - - //Add bottom end controlPoints to deck - controlPoint = (BezierKnot)brd.getBottom().getControlPoint(0).clone(); + + // Add bottom end controlPoints to deck + controlPoint = (BezierKnot) brd.getBottom().getControlPoint(0).clone(); controlPoint.getPoints()[2].x = 0; - controlPoint.getPoints()[2].y = (brd.getDeck().getControlPoint(0).getPoints()[0].y - controlPoint.getPoints()[0].y)/2 + controlPoint.getPoints()[0].y; + controlPoint.getPoints()[2].y = (brd.getDeck().getControlPoint(0).getPoints()[0].y - controlPoint.getPoints()[0].y) / 2 + controlPoint.getPoints()[0].y; brd.getDeck().insert(0, controlPoint); - - controlPoint = (BezierKnot)brd.getBottom().getControlPoint(brd.getBottom().getNrOfControlPoints()-1).clone(); + + controlPoint = (BezierKnot) brd.getBottom().getControlPoint(brd.getBottom().getNrOfControlPoints() - 1).clone(); controlPoint.getPoints()[1].x = controlPoint.getPoints()[0].x; - controlPoint.getPoints()[1].y = (brd.getDeck().getControlPoint(brd.getDeck().getNrOfControlPoints()-1).getPoints()[0].y - controlPoint.getPoints()[0].y)/2 + controlPoint.getPoints()[0].y; + controlPoint.getPoints()[1].y = (brd.getDeck().getControlPoint(brd.getDeck().getNrOfControlPoints() - 1).getPoints()[0].y - controlPoint.getPoints()[0].y) / 2 + controlPoint.getPoints()[0].y; brd.getDeck().append(controlPoint); - + BezierBoardCrossSection crossSection; - for(int i = 0; ;i++) - { + for (int i = 0;; i++) { String ident = "Couples_".concat(Integer.toString(i)); NodeList list = boardNode.getElementsByTagName(ident); - if(list.getLength() == 0) + if (list.getLength() == 0) break; - Element slice = (Element)list.item(0); - + Element slice = (Element) list.item(0); + crossSection = new BezierBoardCrossSection(); brd.getCrossSections().add(crossSection); - - Element bezierNode = (Element)slice.getElementsByTagName("Bezier3d").item(0); - - Element controlPointsNode = (Element)bezierNode.getElementsByTagName("Control_points").item(0); - Element controlPointsPolygone3dNode = (Element)controlPointsNode.getElementsByTagName("Polygone3d").item(0); + + Element bezierNode = (Element) slice.getElementsByTagName("Bezier3d").item(0); + + Element controlPointsNode = (Element) bezierNode.getElementsByTagName("Control_points").item(0); + Element controlPointsPolygone3dNode = (Element) controlPointsNode.getElementsByTagName("Polygone3d").item(0); NodeList controlPointsList = controlPointsPolygone3dNode.getElementsByTagName("Point3d"); - String value = ((Element)controlPointsList.item(1)).getElementsByTagName("x").item(0).getTextContent(); - + String value = ((Element) controlPointsList.item(1)).getElementsByTagName("x").item(0).getTextContent(); + double pos = Double.valueOf(value); crossSection.setPosition(pos); - + BezierSpline spline = crossSection.getBezierSpline(); readBezierAndGuidePoints(slice, spline, crossSection.getGuidePoints(), YZ); - - //Subtract however high the crosssection is above zero + + // Subtract however high the crosssection is above zero double height = spline.getControlPoint(0).getPoints()[0].y; - - for(int j = 0; j < spline.getNrOfControlPoints(); j++) - { + + for (int j = 0; j < spline.getNrOfControlPoints(); j++) { spline.getControlPoint(j).getPoints()[0].y -= height; spline.getControlPoint(j).getPoints()[1].y -= height; spline.getControlPoint(j).getPoints()[2].y -= height; } - + } - - //Move first and last crossSection as these are something special for shape3D + + // Move first and last crossSection as these are something special + // for shape3D brd.getCrossSections().get(0).setPosition(0.2); - brd.getCrossSections().get(brd.getCrossSections().size()-1).setPosition(brd.getLength()-0.2); - - - //Add crossection at tail like .brd + brd.getCrossSections().get(brd.getCrossSections().size() - 1).setPosition(brd.getLength() - 0.2); + + // Add crossection at tail like .brd crossSection = new BezierBoardCrossSection(); - crossSection.getBezierSpline().append(new BezierKnot(0,0,0,0,0,0)); + crossSection.getBezierSpline().append(new BezierKnot(0, 0, 0, 0, 0, 0)); crossSection.setPosition(0.0); brd.getCrossSections().add(0, crossSection); - - //Add crossection at tip like .brd + + // Add crossection at tip like .brd crossSection = new BezierBoardCrossSection(); - crossSection.getBezierSpline().append(new BezierKnot(0,0,0,0,0,0)); + crossSection.getBezierSpline().append(new BezierKnot(0, 0, 0, 0, 0, 0)); crossSection.setPosition(brd.getLength()); brd.getCrossSections().add(crossSection); - - //Read some board info + + // Read some board info brd.setModel(boardNode.getElementsByTagName("Name").item(0).getTextContent()); brd.setDesigner(boardNode.getElementsByTagName("Author").item(0).getTextContent()); brd.setComments(boardNode.getElementsByTagName("Comment").item(0).getTextContent()); - - //TODO: add reading of fins - brd.setFilename(aFilename); + // TODO: add reading of fins - brd.checkAndFixContinousy(false, true); + brd.setFilename(aFilename); + + brd.checkAndFixContinousy(false, true); + + brd.setLocks(); + } catch (IOException ioe) { + // I/O error + ioe.printStackTrace(); + + setErrorStr(LanguageResource.getString("S3DREADERRORMSG_STR") + ioe.getMessage()); + return -1; + } catch (SAXException sxe) { + // Error generated during parsing + Exception x = sxe; + if (sxe.getException() != null) + x = sxe.getException(); + setErrorStr(LanguageResource.getString("S3DREADERRORMSG_STR") + x.getMessage()); + return -1; + + } catch (ParserConfigurationException pce) { + // Parser with specified options can't be built + pce.printStackTrace(); + + setErrorStr(LanguageResource.getString("S3DREADERRORMSG_STR") + pce.getMessage()); - brd.setLocks(); - } - catch (IOException ioe) { - // I/O error - ioe.printStackTrace(); - - setErrorStr(LanguageResource.getString("S3DREADERRORMSG_STR") + ioe.getMessage()); - return -1; - } - catch (SAXException sxe) { - // Error generated during parsing - Exception x = sxe; - if (sxe.getException() != null) - x = sxe.getException(); - setErrorStr(LanguageResource.getString("S3DREADERRORMSG_STR") + x.getMessage()); return -1; - - } catch (ParserConfigurationException pce) { - // Parser with specified options can't be built - pce.printStackTrace(); - - setErrorStr(LanguageResource.getString("S3DREADERRORMSG_STR") + pce.getMessage()); - - return -1; - } - + } + return ret; } - - static boolean readBezierAndGuidePoints(Element parent, BezierSpline bezier, ArrayList guidePoints, int whichPlane) - { - Element bezierNode = (Element)parent.getElementsByTagName("Bezier3d").item(0); - - Element controlPointsNode = (Element)bezierNode.getElementsByTagName("Control_points").item(0); - Element tangents1Node = (Element)bezierNode.getElementsByTagName("Tangents_1").item(0); - Element tangents2Node = (Element)bezierNode.getElementsByTagName("Tangents_2").item(0); - - Element controlPointsPolygone3dNode = (Element)controlPointsNode.getElementsByTagName("Polygone3d").item(0); - Element tangents1Polygone3dNode = (Element)tangents1Node.getElementsByTagName("Polygone3d").item(0); - Element tangents2Polygone3dNode = (Element)tangents2Node.getElementsByTagName("Polygone3d").item(0); - + + static boolean readBezierAndGuidePoints(Element parent, BezierSpline bezier, ArrayList guidePoints, int whichPlane) { + Element bezierNode = (Element) parent.getElementsByTagName("Bezier3d").item(0); + + Element controlPointsNode = (Element) bezierNode.getElementsByTagName("Control_points").item(0); + Element tangents1Node = (Element) bezierNode.getElementsByTagName("Tangents_1").item(0); + Element tangents2Node = (Element) bezierNode.getElementsByTagName("Tangents_2").item(0); + + Element controlPointsPolygone3dNode = (Element) controlPointsNode.getElementsByTagName("Polygone3d").item(0); + Element tangents1Polygone3dNode = (Element) tangents1Node.getElementsByTagName("Polygone3d").item(0); + Element tangents2Polygone3dNode = (Element) tangents2Node.getElementsByTagName("Polygone3d").item(0); + String numberOfPointsStr = controlPointsPolygone3dNode.getElementsByTagName("Nb_of_points").item(0).getTextContent(); - + NodeList controlPointsList = controlPointsPolygone3dNode.getElementsByTagName("Point3d"); NodeList tangents1PointsList = tangents1Polygone3dNode.getElementsByTagName("Point3d"); NodeList tangents2PointsList = tangents2Polygone3dNode.getElementsByTagName("Point3d"); int nrOfPoints = Integer.parseInt(numberOfPointsStr); - - //Disregard first as it's the symetry point and we don't care about that(whatever that is) - for(int i = 1; i < nrOfPoints+1; i++) - { - System.out.printf("loop: i=%d\n", i); + + // Disregard first as it's the symetry point and we don't care about + // that(whatever that is) + for (int i = 1; i < nrOfPoints + 1; i++) { + // System.out.printf("loop: i=%d\n", i); BezierKnot newControlPoint = new BezierKnot(); - - String cx = ((Element)controlPointsList.item(i)).getElementsByTagName("x").item(0).getTextContent(); - String cy = ((Element)controlPointsList.item(i)).getElementsByTagName("y").item(0).getTextContent(); - String cz = ((Element)controlPointsList.item(i)).getElementsByTagName("z").item(0).getTextContent(); - - String t1x = ((Element)tangents1PointsList.item(i)).getElementsByTagName("x").item(0).getTextContent(); - String t1y = ((Element)tangents1PointsList.item(i)).getElementsByTagName("y").item(0).getTextContent(); - String t1z = ((Element)tangents1PointsList.item(i)).getElementsByTagName("z").item(0).getTextContent(); - - String t2x = ((Element)tangents2PointsList.item(i)).getElementsByTagName("x").item(0).getTextContent(); - String t2y = ((Element)tangents2PointsList.item(i)).getElementsByTagName("y").item(0).getTextContent(); - String t2z = ((Element)tangents2PointsList.item(i)).getElementsByTagName("z").item(0).getTextContent(); - + + String cx = ((Element) controlPointsList.item(i)).getElementsByTagName("x").item(0).getTextContent(); + String cy = ((Element) controlPointsList.item(i)).getElementsByTagName("y").item(0).getTextContent(); + String cz = ((Element) controlPointsList.item(i)).getElementsByTagName("z").item(0).getTextContent(); + + String t1x = ((Element) tangents1PointsList.item(i)).getElementsByTagName("x").item(0).getTextContent(); + String t1y = ((Element) tangents1PointsList.item(i)).getElementsByTagName("y").item(0).getTextContent(); + String t1z = ((Element) tangents1PointsList.item(i)).getElementsByTagName("z").item(0).getTextContent(); + + String t2x = ((Element) tangents2PointsList.item(i)).getElementsByTagName("x").item(0).getTextContent(); + String t2y = ((Element) tangents2PointsList.item(i)).getElementsByTagName("y").item(0).getTextContent(); + String t2z = ((Element) tangents2PointsList.item(i)).getElementsByTagName("z").item(0).getTextContent(); + String p1x, p1y, p2x, p2y, p3x, p3y; - - switch(whichPlane) - { + + switch (whichPlane) { default: case XY: p1x = cx; @@ -287,7 +276,7 @@ static boolean readBezierAndGuidePoints(Element parent, BezierSpline bezier, Arr p3x = t2x; p3y = t2z; break; - + case YZ: p1x = cy; p1y = cz; @@ -297,17 +286,16 @@ static boolean readBezierAndGuidePoints(Element parent, BezierSpline bezier, Arr p3y = t2z; break; } - + newControlPoint.getPoints()[0].setLocation(Double.parseDouble(p1x), Double.parseDouble(p1y)); newControlPoint.getPoints()[1].setLocation(Double.parseDouble(p2x), Double.parseDouble(p2y)); newControlPoint.getPoints()[2].setLocation(Double.parseDouble(p3x), Double.parseDouble(p3y)); - - String typeIdent = "Tangent_type_point_".concat(Integer.toString(i-1)); + + String typeIdent = "Tangent_type_point_".concat(Integer.toString(i - 1)); String typeStr = bezierNode.getElementsByTagName(typeIdent).item(0).getTextContent().trim(); int type = Integer.parseInt(typeStr); - - switch(type) - { + + switch (type) { case 0: newControlPoint.setContinous(false); break; @@ -315,38 +303,33 @@ static boolean readBezierAndGuidePoints(Element parent, BezierSpline bezier, Arr newControlPoint.setContinous(true); break; } - + bezier.append(newControlPoint); } - - System.out.printf("here\n"); - - //Read guidepoints + + // Read guidepoints int nrOfGuidePoints = 0; NodeList guidePointsElements = bezierNode.getElementsByTagName("Number_of_guides"); - if(guidePointsElements.getLength() > 0) - { + if (guidePointsElements.getLength() > 0) { String numberOfGuidePointsStr = guidePointsElements.item(0).getTextContent(); nrOfGuidePoints = Integer.parseInt(numberOfGuidePointsStr); } - + NodeList guidePointsList = bezierNode.getElementsByTagName("Guide"); - for(int i = 0; i < nrOfGuidePoints; i++) - { + for (int i = 0; i < nrOfGuidePoints; i++) { Point2D.Double gp = new Point2D.Double(); - - Element guideNode = (Element)guidePointsList.item(i); - Element guidePointNode = (Element)guideNode.getElementsByTagName("Point3d").item(0); - + + Element guideNode = (Element) guidePointsList.item(i); + Element guidePointNode = (Element) guideNode.getElementsByTagName("Point3d").item(0); + String gx = guidePointNode.getElementsByTagName("x").item(0).getTextContent(); String gy = guidePointNode.getElementsByTagName("y").item(0).getTextContent(); String gz = guidePointNode.getElementsByTagName("z").item(0).getTextContent(); - + String gpx, gpy; - - switch(whichPlane) - { + + switch (whichPlane) { default: case XY: gpx = gx; @@ -357,28 +340,26 @@ static boolean readBezierAndGuidePoints(Element parent, BezierSpline bezier, Arr gpx = gx; gpy = gz; break; - + case YZ: gpx = gy; gpy = gz; break; } - + gp.setLocation(Double.parseDouble(gpx), Double.parseDouble(gpy)); - + guidePoints.add(gp); } return true; } - - static void setErrorStr(String errorStr) - { + + static void setErrorStr(String errorStr) { mErrorStr = errorStr; } - - static public String getErrorStr() - { + + static public String getErrorStr() { return mErrorStr; } } \ No newline at end of file diff --git a/board/readers/S3dxReader.java b/board/readers/S3dxReader.java new file mode 100644 index 0000000..f058591 --- /dev/null +++ b/board/readers/S3dxReader.java @@ -0,0 +1,364 @@ +package board.readers; + +import java.awt.geom.Point2D; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +import board.BezierBoard; +import cadcore.BezierKnot; +import cadcore.BezierSpline; +import cadcore.UnitUtils; +import boardcad.i18n.LanguageResource; +import cadcore.BezierBoardCrossSection; + +public class S3dxReader { + + static final int XY = 0; + static final int XZ = 1; + static final int YZ = 2; + + static String mErrorStr; + + static public int loadFile(BezierBoard brd, String aFilename) { + + int ret = 0; + + brd.reset(); + + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + + try { + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.parse(new File(aFilename)); + + Element shape3Dnode = (Element) document.getElementsByTagName("Shape3d_design").item(0); + Element boardNode = (Element) shape3Dnode.getElementsByTagName("Board").item(0); + + Element bottom = (Element) boardNode.getElementsByTagName("curveDefSide0").item(0); + Element deck = (Element) boardNode.getElementsByTagName("curveDefSide4").item(0); + Element outline = (Element) boardNode.getElementsByTagName("curveDefTop2").item(0); + + readBezierAndGuidePoints(outline, brd.getOutline(), brd.getOutlineGuidePoints(), XY); + + BezierKnot controlPoint; + // Add outline controlPoints at tail and nose + if (brd.getOutline().getControlPoint(0).getPoints()[0].y > 1.0) { + brd.getOutline().getControlPoint(0).setContinous(false); + brd.getOutline().getControlPoint(0).getPoints()[1].y = brd.getOutline().getControlPoint(0).getPoints()[0].y * 2 / 3; + + controlPoint = new BezierKnot(); + controlPoint.getPoints()[2].y = brd.getOutline().getControlPoint(0).getPoints()[0].y / 3; + brd.getOutline().insert(0, controlPoint); + } + + if (brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].y > 1.0) { + brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).setContinous(false); + brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[2].x = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].x; + brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[2].y = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].y * 2 / 3; + + controlPoint = new BezierKnot(); + controlPoint.getPoints()[0].x = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].x; + controlPoint.getPoints()[1].x = controlPoint.getPoints()[0].x; + controlPoint.getPoints()[1].y = brd.getOutline().getControlPoint(brd.getOutline().getNrOfControlPoints() - 1).getPoints()[0].y / 3; + controlPoint.getPoints()[2].x = controlPoint.getPoints()[0].x; + brd.getOutline().append(controlPoint); + } + + readBezierAndGuidePoints(bottom, brd.getBottom(), brd.getBottomGuidePoints(), XZ); + if (deck != null) // Thickness curve instead? + { + readBezierAndGuidePoints(deck, brd.getDeck(), brd.getDeckGuidePoints(), XZ); + } else { + // TODO: Add generation of deck curve from thickness curve when + // curve fitting is implemented + + ret = 1; // Warning code, deck curve is no good + + // Dummy deck curve + controlPoint = (BezierKnot) brd.getBottom().getControlPoint(0).clone(); + controlPoint.setContinous(false); + controlPoint.getPoints()[0].y += 1.5; + controlPoint.getPoints()[2].x = 20; + controlPoint.getPoints()[2].y = controlPoint.getPoints()[0].y - 0.5; + brd.getDeck().append(controlPoint); + + double thickness = (((brd.getLength() / (12 * UnitUtils.INCH)) - 5) / 4 * 1) + 2.125 * UnitUtils.INCH; + controlPoint = new BezierKnot(); + controlPoint.getPoints()[0].x = brd.getLength() / 2; + controlPoint.getPoints()[0].y = thickness; + controlPoint.getPoints()[1].x = controlPoint.getPoints()[0].x - 50; + controlPoint.getPoints()[1].y = thickness; + controlPoint.getPoints()[2].x = controlPoint.getPoints()[0].x + 50; + controlPoint.getPoints()[2].y = thickness; + brd.getDeck().append(controlPoint); + + controlPoint = (BezierKnot) brd.getBottom().getControlPoint(brd.getBottom().getNrOfControlPoints() - 1).clone(); + controlPoint.setContinous(false); + controlPoint.getPoints()[0].y += 1.5; + controlPoint.getPoints()[1].y += controlPoint.getPoints()[0].y / 2; + controlPoint.getPoints()[2].x = controlPoint.getPoints()[0].x; + controlPoint.getPoints()[2].y += 0.8; + brd.getDeck().append(controlPoint); + + } + + // Add bottom end controlPoints to deck + controlPoint = (BezierKnot) brd.getBottom().getControlPoint(0).clone(); + controlPoint.getPoints()[2].x = 0; + controlPoint.getPoints()[2].y = (brd.getDeck().getControlPoint(0).getPoints()[0].y - controlPoint.getPoints()[0].y) / 2 + controlPoint.getPoints()[0].y; + brd.getDeck().insert(0, controlPoint); + + controlPoint = (BezierKnot) brd.getBottom().getControlPoint(brd.getBottom().getNrOfControlPoints() - 1).clone(); + controlPoint.getPoints()[1].x = controlPoint.getPoints()[0].x; + controlPoint.getPoints()[1].y = (brd.getDeck().getControlPoint(brd.getDeck().getNrOfControlPoints() - 1).getPoints()[0].y - controlPoint.getPoints()[0].y) / 2 + controlPoint.getPoints()[0].y; + brd.getDeck().append(controlPoint); + + BezierBoardCrossSection crossSection; + for (int i = 0;; i++) { + String ident = "Couples_".concat(Integer.toString(i)); + NodeList list = boardNode.getElementsByTagName(ident); + if (list.getLength() == 0) + break; + + Element slice = (Element) list.item(0); + + crossSection = new BezierBoardCrossSection(); + + brd.getCrossSections().add(crossSection); + + Element bezierNode = (Element) slice.getElementsByTagName("Bezier3d").item(0); + + Element controlPointsNode = (Element) bezierNode.getElementsByTagName("Control_points").item(0); + Element controlPointsPolygone3dNode = (Element) controlPointsNode.getElementsByTagName("Polygone3d").item(0); + NodeList controlPointsList = controlPointsPolygone3dNode.getElementsByTagName("Point3d"); + String value = ((Element) controlPointsList.item(1)).getElementsByTagName("x").item(0).getTextContent(); + + double pos = Double.valueOf(value); + + crossSection.setPosition(pos); + + BezierSpline spline = crossSection.getBezierSpline(); + + readBezierAndGuidePoints(slice, spline, crossSection.getGuidePoints(), YZ); + + // Subtract however high the crosssection is above zero + double height = spline.getControlPoint(0).getPoints()[0].y; + + for (int j = 0; j < spline.getNrOfControlPoints(); j++) { + spline.getControlPoint(j).getPoints()[0].y -= height; + spline.getControlPoint(j).getPoints()[1].y -= height; + spline.getControlPoint(j).getPoints()[2].y -= height; + } + + } + + // Move first and last crossSection as these are something special + // for shape3D + brd.getCrossSections().get(0).setPosition(0.2); + brd.getCrossSections().get(brd.getCrossSections().size() - 1).setPosition(brd.getLength() - 0.2); + + // Add crossection at tail like .brd + crossSection = new BezierBoardCrossSection(); + crossSection.getBezierSpline().append(new BezierKnot(0, 0, 0, 0, 0, 0)); + crossSection.setPosition(0.0); + brd.getCrossSections().add(0, crossSection); + + // Add crossection at tip like .brd + crossSection = new BezierBoardCrossSection(); + crossSection.getBezierSpline().append(new BezierKnot(0, 0, 0, 0, 0, 0)); + crossSection.setPosition(brd.getLength()); + brd.getCrossSections().add(crossSection); + + // Read some board info + brd.setModel(boardNode.getElementsByTagName("Name").item(0).getTextContent()); + brd.setDesigner(boardNode.getElementsByTagName("Author").item(0).getTextContent()); + brd.setComments(boardNode.getElementsByTagName("Comment").item(0).getTextContent()); + + // TODO: add reading of fins + + brd.setFilename(aFilename); + + brd.checkAndFixContinousy(false, true); + + brd.setLocks(); + } catch (IOException ioe) { + // I/O error + ioe.printStackTrace(); + + setErrorStr(LanguageResource.getString("S3DREADERRORMSG_STR") + ioe.getMessage()); + return -1; + } catch (SAXException sxe) { + // Error generated during parsing + Exception x = sxe; + if (sxe.getException() != null) + x = sxe.getException(); + setErrorStr(LanguageResource.getString("S3DREADERRORMSG_STR") + x.getMessage()); + return -1; + + } catch (ParserConfigurationException pce) { + // Parser with specified options can't be built + pce.printStackTrace(); + + setErrorStr(LanguageResource.getString("S3DREADERRORMSG_STR") + pce.getMessage()); + + return -1; + } + + return ret; + } + + static boolean readBezierAndGuidePoints(Element parent, BezierSpline bezier, ArrayList guidePoints, int whichPlane) { + Element bezierNode = (Element) parent.getElementsByTagName("Bezier3d").item(0); + + Element controlPointsNode = (Element) bezierNode.getElementsByTagName("Control_points").item(0); + Element tangents1Node = (Element) bezierNode.getElementsByTagName("Tangents_1").item(0); + Element tangents2Node = (Element) bezierNode.getElementsByTagName("Tangents_2").item(0); + + Element controlPointsPolygone3dNode = (Element) controlPointsNode.getElementsByTagName("Polygone3d").item(0); + Element tangents1Polygone3dNode = (Element) tangents1Node.getElementsByTagName("Polygone3d").item(0); + Element tangents2Polygone3dNode = (Element) tangents2Node.getElementsByTagName("Polygone3d").item(0); + + String numberOfPointsStr = controlPointsPolygone3dNode.getElementsByTagName("Nb_of_points").item(0).getTextContent(); + + NodeList controlPointsList = controlPointsPolygone3dNode.getElementsByTagName("Point3d"); + NodeList tangents1PointsList = tangents1Polygone3dNode.getElementsByTagName("Point3d"); + NodeList tangents2PointsList = tangents2Polygone3dNode.getElementsByTagName("Point3d"); + + int nrOfPoints = Integer.parseInt(numberOfPointsStr); + + // Disregard first as it's the symetry point and we don't care about + // that(whatever that is) + for (int i = 1; i < nrOfPoints + 1; i++) { + // System.out.printf("loop: i=%d\n", i); + BezierKnot newControlPoint = new BezierKnot(); + + String cx = ((Element) controlPointsList.item(i)).getElementsByTagName("x").item(0).getTextContent(); + String cy = ((Element) controlPointsList.item(i)).getElementsByTagName("y").item(0).getTextContent(); + String cz = ((Element) controlPointsList.item(i)).getElementsByTagName("z").item(0).getTextContent(); + + String t1x = ((Element) tangents1PointsList.item(i)).getElementsByTagName("x").item(0).getTextContent(); + String t1y = ((Element) tangents1PointsList.item(i)).getElementsByTagName("y").item(0).getTextContent(); + String t1z = ((Element) tangents1PointsList.item(i)).getElementsByTagName("z").item(0).getTextContent(); + + String t2x = ((Element) tangents2PointsList.item(i)).getElementsByTagName("x").item(0).getTextContent(); + String t2y = ((Element) tangents2PointsList.item(i)).getElementsByTagName("y").item(0).getTextContent(); + String t2z = ((Element) tangents2PointsList.item(i)).getElementsByTagName("z").item(0).getTextContent(); + + String p1x, p1y, p2x, p2y, p3x, p3y; + + switch (whichPlane) { + default: + case XY: + p1x = cx; + p1y = cy; + p2x = t1x; + p2y = t1y; + p3x = t2x; + p3y = t2y; + break; + + case XZ: + p1x = cx; + p1y = cz; + p2x = t1x; + p2y = t1z; + p3x = t2x; + p3y = t2z; + break; + + case YZ: + p1x = cy; + p1y = cz; + p2x = t1y; + p2y = t1z; + p3x = t2y; + p3y = t2z; + break; + } + + newControlPoint.getPoints()[0].setLocation(Double.parseDouble(p1x), Double.parseDouble(p1y)); + newControlPoint.getPoints()[1].setLocation(Double.parseDouble(p2x), Double.parseDouble(p2y)); + newControlPoint.getPoints()[2].setLocation(Double.parseDouble(p3x), Double.parseDouble(p3y)); + + String typeIdent = "Tangent_type_point_".concat(Integer.toString(i - 1)); + String typeStr = bezierNode.getElementsByTagName(typeIdent).item(0).getTextContent().trim(); + int type = Integer.parseInt(typeStr); + + switch (type) { + case 0: + newControlPoint.setContinous(false); + break; + default: + newControlPoint.setContinous(true); + break; + } + + bezier.append(newControlPoint); + } + + // Read guidepoints + int nrOfGuidePoints = 0; + NodeList guidePointsElements = bezierNode.getElementsByTagName("Number_of_guides"); + if (guidePointsElements.getLength() > 0) { + String numberOfGuidePointsStr = guidePointsElements.item(0).getTextContent(); + nrOfGuidePoints = Integer.parseInt(numberOfGuidePointsStr); + } + + NodeList guidePointsList = bezierNode.getElementsByTagName("Guide"); + + for (int i = 0; i < nrOfGuidePoints; i++) { + Point2D.Double gp = new Point2D.Double(); + + Element guideNode = (Element) guidePointsList.item(i); + Element guidePointNode = (Element) guideNode.getElementsByTagName("Point3d").item(0); + + String gx = guidePointNode.getElementsByTagName("x").item(0).getTextContent(); + String gy = guidePointNode.getElementsByTagName("y").item(0).getTextContent(); + String gz = guidePointNode.getElementsByTagName("z").item(0).getTextContent(); + + String gpx, gpy; + + switch (whichPlane) { + default: + case XY: + gpx = gx; + gpy = gy; + break; + + case XZ: + gpx = gx; + gpy = gz; + break; + + case YZ: + gpx = gy; + gpy = gz; + break; + } + + gp.setLocation(Double.parseDouble(gpx), Double.parseDouble(gpy)); + + guidePoints.add(gp); + } + + return true; + } + + static void setErrorStr(String errorStr) { + mErrorStr = errorStr; + } + + static public String getErrorStr() { + return mErrorStr; + } +} \ No newline at end of file diff --git a/board/writers/BrdXmlWriter.java b/board/writers/BrdXmlWriter.java new file mode 100644 index 0000000..ef8705b --- /dev/null +++ b/board/writers/BrdXmlWriter.java @@ -0,0 +1,5 @@ +package board.writers; + +public class BrdXmlWriter { + +} diff --git a/boardcad/AbstractDraw.java b/boardcad/AbstractDraw.java index f29c455..9edd527 100644 --- a/boardcad/AbstractDraw.java +++ b/boardcad/AbstractDraw.java @@ -14,10 +14,10 @@ /* - * Abstraction of drawing rutines + * Abstraction of drawing routines * Useful for 'printing' to other formats, like g-code, dxf, pdf, etc. * This way the same base functions can be used to print to several formats, - * making it possible to reuse significan portions of code for less code to maintain + * making it possible to reuse significant portions of code for less code to maintain * This is a minimum subset of Graphics2D for drawing a board * An alternative would be to extend Graphics2D for these operations, * however Graphics2D is quite extensive. By using a small subset of diff --git a/boardcad/DefaultBrds.java b/boardcad/DefaultBrds.java index a1299f5..f626660 100644 --- a/boardcad/DefaultBrds.java +++ b/boardcad/DefaultBrds.java @@ -571,14 +571,14 @@ public class DefaultBrds { "(cp [0.0,6.413541437064628,0.0,6.413541437064628,0.0,6.413541437064628] false false)\n" + "(cp [2.0372969384043866,5.938426622370623,0.4352967075788854,6.265849376563937,31.505670695706144,-0.08442899996709828] true false)\n" + "(cp [93.84005158846932,5.911698158414175E-4,64.80302765905056,5.911698158414175E-4,123.615494712459,5.911698158414175E-4] true false)\n" + -"(cp [185.00201789368649,11.662870290026836,155.10080629850802,-0.28686695561028536,187.0,12.5] true false)\n" + +"(cp [185.00201789368649,11.662870290026836,155.10080629850802,-0.28686695561028536,187.66794122341875,12.728281409101742] true false)\n" + "(cp [187.96,13.360421410740276,187.96,13.337136739108956,187.96,37.66452933343878] false false)\n" + ")\n" + "p34 : (\n" + "(cp [0.0,6.413541437064628,1.1089640000000003,6.202558557082126,0.0,7.323388462757916] false false)\n" + "(cp [2.228131161855172,7.3389721014970135,0.116050134107899,7.410076938994328,31.875543379285887,6.319464242654043] true false)\n" + "(cp [94.07041604627575,5.929755333114977,64.08024215542102,5.929755333114977,124.37187508456834,5.929755333114977] true false)\n" + -"(cp [185.054049884115,12.832745136704508,155.16805402094025,2.0739530506750636,187.0,13.5] true false)\n" + +"(cp [185.054049884115,12.832745136704508,155.16805402094025,2.0739530506750636,188.5335210790606,14.085335390920367] true false)\n" + "(cp [187.96,13.360421410740276,187.96,13.800442166914932,187.96,13.360421410740276] false false)\n" + ")\n" + "p35 : (\n" + diff --git a/boardcad/FileTools.java b/boardcad/FileTools.java index f0bc4a9..3a25e49 100644 --- a/boardcad/FileTools.java +++ b/boardcad/FileTools.java @@ -36,6 +36,15 @@ public static String setExtension(String filename, String setExt) { return tmp; } + //Remove the extension + public static String removeExtension(String filename) { + String ext = getExtension(filename); + int i = filename.lastIndexOf('.'); + String tmp = filename.substring(0,i); + + return tmp; + } + //Append without affecting the extension public static String append(String filename, String append) { String ext = getExtension(filename); diff --git a/boardcad/commands/BrdAbstractEditCommand.java b/boardcad/commands/BrdAbstractEditCommand.java new file mode 100644 index 0000000..f725804 --- /dev/null +++ b/boardcad/commands/BrdAbstractEditCommand.java @@ -0,0 +1,164 @@ +package boardcad.commands; + +import java.util.ArrayList; + +import board.BezierBoard; +import cadcore.BezierKnot; +import cadcore.BezierSpline; + +//Class with functions for storing changes to a brd for undo/redo functionality +//This is to pick up on changes from scaling and translation for fitting rocker to zero +//and fitting cross sections to width and thickness +abstract class BrdAbstractEditCommand extends BrdInputCommand implements Cloneable +{ + class ControlPointChange implements Cloneable + { + BezierKnot mChangedPoint; + BezierKnot mBefore; + BezierKnot mAfter; + + ControlPointChange(BezierKnot point, BezierKnot before, BezierKnot after) + { + mChangedPoint = point; + mBefore = before; + mAfter = after; + } + + void undo() + { + mChangedPoint.set(mBefore); + } + + void redo() + { + mChangedPoint.set(mAfter); + } + + public Object clone() + { + ControlPointChange controlPointChange = null; + try { + controlPointChange = (ControlPointChange)super.clone(); + } catch(CloneNotSupportedException e) { + System.out.println("BrdAbstractEditCommand.clone() Exception: " + e.toString()); + throw new Error("CloneNotSupportedException in BrdAbstractEditCommand"); + } + + controlPointChange.mChangedPoint = (BezierKnot)mChangedPoint; + controlPointChange.mBefore = (BezierKnot)mBefore.clone(); + controlPointChange.mAfter = (BezierKnot)mAfter.clone(); + + return controlPointChange; + } + + + } + + static private ArrayList mPoints = new ArrayList(); + static private ArrayList mBeforeChangePoints = new ArrayList(); + + private ArrayList mChanges; + + void saveBeforeChange(BezierBoard brd) + { + mPoints.clear(); + mBeforeChangePoints.clear(); + mChanges = new ArrayList(); + + BezierSpline currentBezier = null; + BezierKnot point = null; + for(int i=0;i(); + for(int i = 0; i < this.mChanges.size(); i++) + { + abstractEditCommand.mChanges.add((ControlPointChange)this.mChanges.get(i).clone()); + } + + return abstractEditCommand; + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdAddControlPointCommand.java b/boardcad/commands/BrdAddControlPointCommand.java new file mode 100644 index 0000000..766fe47 --- /dev/null +++ b/boardcad/commands/BrdAddControlPointCommand.java @@ -0,0 +1,92 @@ +package boardcad.commands; + +import java.awt.Point; +import java.awt.event.MouseEvent; +import java.awt.geom.Point2D; + +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; +import cadcore.BezierCurve; +import cadcore.BezierKnot; +import cadcore.BezierSpline; +import cadcore.VecMath; + +public class BrdAddControlPointCommand extends BrdAbstractEditCommand +{ + static double K = 1.0f; + + private int mIndex = 0; + private BezierKnot mNewControlPoint = null; + private BezierSpline mSpline; + + + public BrdAddControlPointCommand() + { + } + + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + super.saveBeforeChange(source.getCurrentBrd()); + + Point pos = event.getPoint(); + Point2D.Double brdPos = source.screenCoordinateToBrdCoordinate(pos); + + BezierSpline[] splines = source.getActiveBezierSplines(source.getCurrentBrd()); + mNewControlPoint = new BezierKnot(); + + for(int i = 0; i < splines.length; i++) + { + mIndex = splines[i].getSplitControlPoint(brdPos, mNewControlPoint); + + if(mIndex < 0) + continue; + + mSpline = splines[i]; + + mSpline.insert(mIndex, mNewControlPoint); + + Point2D.Double tmp = new Point2D.Double(); + + BezierKnot prev = mSpline.getControlPoint(mIndex-1); + BezierKnot next = mSpline.getControlPoint(mIndex+1); + + BezierCurve tmpCurve = new BezierCurve(prev, next); + + double t = tmpCurve.getClosestT(brdPos); + + VecMath.subVector(prev.getPoints()[0],prev.getPoints()[2],tmp); + VecMath.scaleVector(tmp, t); + VecMath.addVector(prev.getPoints()[0],tmp,prev.getPoints()[2]); + + VecMath.subVector(next.getPoints()[1],next.getPoints()[0],tmp); + VecMath.scaleVector(tmp, t-1); + VecMath.addVector(next.getPoints()[0],tmp,next.getPoints()[1]); + + source.onBrdChanged(); + + execute(); + + source.repaint(); + } + + } + + public void redo() + { + mSpline.insert(mIndex, mNewControlPoint); + + super.redo(); + } + + public void undo() + { + mSpline.remove(mIndex); + + super.undo(); + } + + public String getCommandString() + { + return LanguageResource.getString("ADDCONTROLPOINTCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdAddCrossSectionCommand.java b/boardcad/commands/BrdAddCrossSectionCommand.java new file mode 100644 index 0000000..bd9a33f --- /dev/null +++ b/boardcad/commands/BrdAddCrossSectionCommand.java @@ -0,0 +1,60 @@ +package boardcad.commands; + +import board.BezierBoard; +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; +import cadcore.BezierBoardCrossSection; + +public class BrdAddCrossSectionCommand extends BrdCommand +{ + double mPos; + BezierBoardCrossSection mNewCrossSection = null; + + + public BrdAddCrossSectionCommand(BoardEdit source, double pos) + { + mSource = source; + + mPos = pos; + } + + public void execute() + { + BezierBoard brd = mSource.getCurrentBrd(); + +// mNewCrossSection = (BezierBoardCrossSection)brd.getNearestCrossSection(mPos).clone(); + mNewCrossSection = (BezierBoardCrossSection)brd.getInterpolatedCrossSection(mPos).clone(); + + mNewCrossSection.setPosition(mPos); + + mNewCrossSection.scale(brd.getThicknessAtPos(mPos), brd.getWidthAtPos(mPos)); + + brd.addCrossSection(mNewCrossSection); + + super.execute(); + } + + public void undo() + { + BezierBoard brd = mSource.getCurrentBrd(); + + brd.removeCrossSection(mNewCrossSection); + + super.undo(); + + } + + public void redo() + { + BezierBoard brd = mSource.getCurrentBrd(); + + brd.addCrossSection(mNewCrossSection); + + super.redo(); + } + + public String getCommandString() + { + return LanguageResource.getString("ADDCROSSECTIONCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdAddGuidePointCommand.java b/boardcad/commands/BrdAddGuidePointCommand.java new file mode 100644 index 0000000..bee861e --- /dev/null +++ b/boardcad/commands/BrdAddGuidePointCommand.java @@ -0,0 +1,33 @@ +package boardcad.commands; + +import java.awt.Point; +import java.awt.event.MouseEvent; +import java.awt.geom.Point2D; + +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; + +public class BrdAddGuidePointCommand extends BrdInputCommand +{ + public BrdAddGuidePointCommand() + { + mCanUndo = false; + + } + + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + Point pos = event.getPoint(); + Point2D.Double guidePoint = source.screenCoordinateToBrdCoordinate(pos); + + source.getGuidePoints().add(guidePoint); + source.repaint(); + BoardCAD.getInstance().getGuidePointsDialog().update(); + } + + public String getCommandString() + { + return LanguageResource.getString("ADDGUIDEPOINTCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdCommand.java b/boardcad/commands/BrdCommand.java new file mode 100644 index 0000000..71ab546 --- /dev/null +++ b/boardcad/commands/BrdCommand.java @@ -0,0 +1,82 @@ +package boardcad.commands; + +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; + +public abstract class BrdCommand extends Object implements Cloneable{ + boolean mCanUndo = true; + BoardEdit mSource = null; + BrdCommand mPreviousCommand = null; + + public void setPreviousCommand(BrdCommand previousCommand) + { + mPreviousCommand = previousCommand; + } + + public void doAction() + { + + } + + public void execute() + { + if(canUndo()) + { + BrdCommandHistory.getInstance().addCommand((BrdCommand)this.clone()); + } + + if(mPreviousCommand != null) + { + BoardCAD.getInstance().setCurrentCommand(mPreviousCommand); + } + + }; //Do command including user interactions + + public void setSource(BoardEdit source) + { + mSource = source; + } + + public void redo() + { + if(mSource != null) + { + BoardCAD.getInstance().setSelectedEdit(mSource); + mSource.onBrdChanged(); + BoardCAD.getInstance().onControlPointChanged(); + } + + } + + public void undo() + { + if(mSource != null) + { + BoardCAD.getInstance().setSelectedEdit(mSource); + mSource.onBrdChanged(); + BoardCAD.getInstance().onControlPointChanged(); + } + } + public boolean canUndo(){return mCanUndo;}; + + public Object clone(){ + try { + return super.clone(); + } catch(CloneNotSupportedException e) { + System.out.println("BoardComand.clone() Exception: " + e.toString()); + throw new Error("CloneNotSupportedException in BrdCommand"); + } + } + + public void onSetCurrent() + { + + } + + public void onCurrentChanged() + { + + } + + public abstract String getCommandString(); +} \ No newline at end of file diff --git a/boardcad/commands/BrdCommandHistory.java b/boardcad/commands/BrdCommandHistory.java new file mode 100644 index 0000000..7cb8d6d --- /dev/null +++ b/boardcad/commands/BrdCommandHistory.java @@ -0,0 +1,70 @@ +package boardcad.commands; + +import java.util.LinkedList; + +public class BrdCommandHistory +{ + private LinkedList mCommandHistory; + private int mCurrentCommandIndex; + + private static BrdCommandHistory mInstance = null; + + private BrdCommandHistory() + { + mCommandHistory = new LinkedList(); + } + + public static BrdCommandHistory getInstance() + { + if(mInstance == null) { + mInstance = new BrdCommandHistory(); + } + return mInstance; + } + + public void clear() + { + mCommandHistory.clear(); + mCurrentCommandIndex = -1; + } + + public void addCommand(BrdCommand command) + { + if(mCurrentCommandIndex>=0 && mCommandHistory.size() > mCurrentCommandIndex+1) + { + /* Sometimes get java.util.ConcurrentModificationException with this code + * int size = mCommandHistory.size(); + java.util.List toBeRemoved = mCommandHistory.subList(mCurrentCommand+1, size); + mCommandHistory.removeAll(toBeRemoved); + */ + while(mCommandHistory.size() > mCurrentCommandIndex+1) + { + mCommandHistory.removeLast(); + } + } + mCommandHistory.add(command); + mCurrentCommandIndex = mCommandHistory.size()-1; + } + + public void undo() + { + if(mCurrentCommandIndex >= 0) + { + BrdCommand command = mCommandHistory.get(mCurrentCommandIndex--); + if(command == null) + return; + command.undo(); + } + } + + public void redo() + { + if(mCurrentCommandIndex < mCommandHistory.size()-1 && mCommandHistory.size() > 0) + { + BrdCommand command = mCommandHistory.get(++mCurrentCommandIndex); + if(command == null) + return; + command.redo(); + } + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdDeleteControlPointCommand.java b/boardcad/commands/BrdDeleteControlPointCommand.java new file mode 100644 index 0000000..faa47cb --- /dev/null +++ b/boardcad/commands/BrdDeleteControlPointCommand.java @@ -0,0 +1,106 @@ +package boardcad.commands; + +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; + +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; +import cadcore.BezierCurve; +import cadcore.BezierFit; +import cadcore.BezierKnot; +import cadcore.BezierSpline; +import cadcore.VecMath; + +public class BrdDeleteControlPointCommand extends BrdAbstractEditCommand +{ + BezierKnot mDeletedControlPoint; + BezierSpline mControlPoints; + int mIndex; + + public BrdDeleteControlPointCommand(BoardEdit source, BezierKnot ControlPoint, BezierSpline ControlPoints) + { + mSource = source; + + mDeletedControlPoint = ControlPoint; + + mControlPoints = ControlPoints; + } + + public void doAction() + { + super.saveBeforeChange(mSource.getCurrentBrd()); + + mIndex = mControlPoints.indexOf(mDeletedControlPoint); + + ArrayList points = new ArrayList(); + + int steps = 10; + + BezierCurve prevCurve = mControlPoints.getCurve(mIndex-1); + for(int i = 0; i <= steps; i++) + { + double t = (double)i/(double)steps; + points.add(new Point2D.Double(prevCurve.getXValue(t),prevCurve.getYValue(t)) ); + } + BezierCurve nextCurve = mControlPoints.getCurve(mIndex); + for(int i = 0; i < steps; i++) + { + double t = (double)i/(double)steps; + points.add(new Point2D.Double(nextCurve.getXValue(t),nextCurve.getYValue(t)) ); + } + + BezierKnot prev = mControlPoints.getControlPoint(mIndex-1); + BezierKnot next = mControlPoints.getControlPoint(mIndex+1); + + mSource.mSelectedControlPoints.remove(mDeletedControlPoint); + + super.removePoint(mDeletedControlPoint); + + mControlPoints.remove(mDeletedControlPoint); + + //Pass to bezierFit + BezierFit fitter = new BezierFit(); + Point2D[] ctrlPoints = fitter.bestFit(points); + + //Update bezier curve + prev.setContinous(false); + prev.setEndPoint(ctrlPoints[0].getX(),ctrlPoints[0].getY()); + prev.setTangentToNext(ctrlPoints[1].getX(),ctrlPoints[1].getY()); + next.setTangentToPrev(ctrlPoints[2].getX(),ctrlPoints[2].getY()); + next.setEndPoint(ctrlPoints[3].getX(),ctrlPoints[3].getY()); + next.setContinous(false); + + super.saveChanges(); + } + + public void execute() + { + doAction(); + + mSource.onBrdChanged(); + + super.execute(); + } + + public void undo() + { + mControlPoints.insert(mIndex, mDeletedControlPoint); + + super.undo(); + } + + public void redo() + { + mControlPoints.remove(mDeletedControlPoint); + + super.redo(); + } + + public String getCommandString() + { + return LanguageResource.getString("DELETECONTROLPOINTCMD_STR"); + + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdEditCommand.java b/boardcad/commands/BrdEditCommand.java new file mode 100644 index 0000000..9a98d42 --- /dev/null +++ b/boardcad/commands/BrdEditCommand.java @@ -0,0 +1,849 @@ +package boardcad.commands; + +import java.awt.Point; +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; +import java.awt.event.MouseWheelEvent; +import java.awt.geom.Point2D; +import java.util.ArrayList; + +import boardcad.gui.jdk.BezierBoardDrawUtil; +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; +import boardcad.gui.jdk.BoardHandler; +import boardcad.i18n.LanguageResource; +import cadcore.BezierKnot; +import cadcore.BezierSpline; +import cadcore.MathUtils; +import cadcore.NurbsPoint; +import cadcore.VecMath; + +public class BrdEditCommand extends BrdAbstractEditCommand +{ + static double KEY_MOVE_AMOUNT = 1.0f; + +// ArrayList mSelectedControlPointsCopy; + ArrayList mControlPointsBeforeChange; +// ArrayList mControlPointsAfterChange; + Point2D.Double mDragStartPos; + Point2D.Double mDragOffset; + Point mBoxSelectStartPos; + private int mWhich = 0; + boolean mIsDragging = false; + boolean mIsKeyEditing = false; + boolean mIsBoxSelecting = false; + int mCurrentKeyCode = 0; + int mRepeat = 1; + + BrdPanCommand mPanCommand = new BrdPanCommand(); + BrdZoomCommand mZoomCommand = new BrdZoomCommand(); + NurbsEditCommand mNurbsCommand = new NurbsEditCommand(); + + boolean mIsPaning = false; + + final double MAX_OFF = 4.0f; + + private static int clicked_x; + private static int clicked_y; + private static int dragged_x; + private static int dragged_y; + protected static boolean is_marked=false; + + private NurbsPoint p; + + + public BrdEditCommand() + { + } + + public void execute() + { + /* mControlPointsAfterChange = new ArrayList(); + for(int i = 0; i < mSelectedControlPointsCopy.size(); i++) + { + mControlPointsAfterChange.add((ControlPoint)mSelectedControlPointsCopy.get(i).clone()); + } + */ + mSource.onBrdChanged(); //adjust rocker to zero and cross sections to width and thickness + super.execute(); + mIsDragging = false; + mIsKeyEditing = false; + mCurrentKeyCode = 0; +// mSelectedControlPointsCopy = null; + mControlPointsBeforeChange = null; +// mControlPointsAfterChange = null; + mDragStartPos = null; + mDragOffset = null; + mSource = null; + mRepeat = 1; + } + + public void onSetCurrent() + { + BoardCAD.getInstance().getControlPointInfo().setEnabled(true); + } + + public void onCurrentChanged() + { + BoardCAD.getInstance().getControlPointInfo().setEnabled(false); + } + + void saveControlPointsBeforeChange(BoardEdit source) + { + ArrayList selectedControlPoints = source.getSelectedControlPoints(); + +// Save the original points + mControlPointsBeforeChange = new ArrayList(); +// mSelectedControlPointsCopy = new ArrayList(); + for(int i = 0; i < selectedControlPoints.size(); i++) + { + mControlPointsBeforeChange.add((BezierKnot)selectedControlPoints.get(i).clone()); +// mSelectedControlPointsCopy.add(selectedControlPoints.get(i)); + } +// mControlPointsAfterChange = null; + super.saveBeforeChange(source.getCurrentBrd()); + } + + public void moveControlPoints(double x_diff, double y_diff, int which) + { + + ArrayList selectedControlPoints = mSource.getSelectedControlPoints(); + if(selectedControlPoints.size() > 1 || which == 0) + { + for(int i = 0; i < selectedControlPoints.size(); i++) + { + BezierKnot sel = selectedControlPoints.get(i); + BezierKnot org = mControlPointsBeforeChange.get(i); + + sel.setControlPointLocation(org.getEndPoint().x+x_diff, org.getEndPoint().y+y_diff); + + } + } + else{ +// We know we only have a single point, so just use it directly + selectedControlPoints.get(0).setLocation(getWhich(), mControlPointsBeforeChange.get(0).getPoints()[getWhich()].x+x_diff, mControlPointsBeforeChange.get(0).getPoints()[getWhich()].y+y_diff); + + if(selectedControlPoints.get(0).isContinous()) + { + + int other = (which ==1)?2:1; + +// Calculate the length of the other end vector + double ox = (double)mControlPointsBeforeChange.get(0).getPoints()[other].x - mControlPointsBeforeChange.get(0).getPoints()[0].x; + double oy = (double)mControlPointsBeforeChange.get(0).getPoints()[other].y - mControlPointsBeforeChange.get(0).getPoints()[0].y; + + double ol = Math.sqrt(ox*ox+oy*oy); + if(ol == 0) + return; //Avoid multiply by zero + +// Length of current + double sx = (double)selectedControlPoints.get(0).getPoints()[which].x - mControlPointsBeforeChange.get(0).getPoints()[0].x; + double sy = (double)selectedControlPoints.get(0).getPoints()[which].y - mControlPointsBeforeChange.get(0).getPoints()[0].y; + + double sl = Math.sqrt(sx*sx+sy*sy); + if(sl == 0) + return; //Avoid division by zero + +// Normalize + sx /= sl; + sy /= sl; + + selectedControlPoints.get(0).setLocation(other, (double)(-sx*ol) + selectedControlPoints.get(0).getPoints()[0].x, + (double)(-sy*ol) + selectedControlPoints.get(0).getPoints()[0].y); + } + + /*Debug + System.out.println("Tangent to Prev angle: " + mSelectedControlPointsCopy.get(0).getTangentToPrevAngle() + " Tangent to Next angle: " + mSelectedControlPointsCopy.get(0).getTangentToNextAngle()); + double a = mSelectedControlPointsCopy.get(0).getTangentToPrevAngle(); + a = Math.abs(Math.PI - a); + double b = mSelectedControlPointsCopy.get(0).getTangentToNextAngle(); + boolean cont = (Math.abs(a-b) < 0.02)?true:false; + System.out.println("a: " + a + " b: " + b + " cont:" + cont); + */ + } + BoardCAD.getInstance().onBrdChanged(); + BoardCAD.getInstance().onControlPointChanged(); + mSource.repaint(); + } + + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + + //marking nurbs points + + clicked_x=event.getX(); + clicked_y=event.getY(); + + BoardHandler board_handler=BoardCAD.getInstance().getBoardHandler(); + + if(source.mDrawControl == 0) + { + clicked_x=event.getX(); + clicked_y=event.getY(); + board_handler.set_x((clicked_x-source.mOffsetX)/(source.mScale/10)); + board_handler.set_z((clicked_y-source.mOffsetY)/(source.mScale/10)); + is_marked=board_handler.outline_mark(source.mScale/10, source.mRotationMatrix); + if(is_marked) + { + p=new NurbsPoint(board_handler.get_x(), board_handler.get_y(), board_handler.get_z()); + } + } + else if(source.mDrawControl == BezierBoardDrawUtil.MirrorY) + { + board_handler.set_x((clicked_x-source.mOffsetX)/(source.mScale/10)); + board_handler.set_z((clicked_y-source.mOffsetY)/(source.mScale/10)); + is_marked=board_handler.outline_mark(source.mScale/10); + } + else if(source.mDrawControl == BezierBoardDrawUtil.FlipY) + { + board_handler.set_x((clicked_x-source.mOffsetX)/(source.mScale/10)); + board_handler.set_y((-clicked_y+source.mOffsetY)/(source.mScale/10)); + is_marked=board_handler.rocker_mark(source.mScale/10); + } + else if(source.mDrawControl == (BezierBoardDrawUtil.MirrorX | BezierBoardDrawUtil.FlipY)) + { + board_handler.set_z((clicked_x-source.mOffsetX)/(source.mScale/10)); + board_handler.set_y((-clicked_y+source.mOffsetY)/(source.mScale/10)); + is_marked=board_handler.edge_mark(source.mScale/10); + } + + if(is_marked) + { + BoardCAD.getInstance().status_panel.set_point_name(board_handler.get_point_name()); + BoardCAD.getInstance().status_panel.set_coordinates(board_handler.get_x(), board_handler.get_y(), board_handler.get_z()); + mNurbsCommand = new NurbsEditCommand(); + } + + + //marking bezier point + + Point pos = event.getPoint(); + Point2D.Double brdPos = source.screenCoordinateToBrdCoordinate(pos); + + BezierSpline[] splines = source.getActiveBezierSplines(BoardCAD.getInstance().getCurrentBrd()); + if(splines == null) + return; + + BezierKnot bestMatch = null; + boolean hitControlPoint = false; + for(int i = 0; i < splines.length; i++) + { + bestMatch = splines[i].findBestMatch(brdPos); + if(bestMatch != null) + { + setWhich(splines[0].getBestMatchWhich(brdPos)); + hitControlPoint = (double)brdPos.distance(bestMatch.getPoints()[getWhich()]) < (MAX_OFF/source.getScale()); + if(hitControlPoint) + break; + } + } + + if(bestMatch == null) + { + mSource = source; + mIsBoxSelecting = true; + mBoxSelectStartPos = pos; + return; + } + + if(!hitControlPoint) + { + mSource = source; + mIsBoxSelecting = true; + mBoxSelectStartPos = pos; + + if(!(event.isShiftDown() || event.isControlDown())) + { + source.clearSelectedControlPoints(); //If shift is held, don't clear + } + + } + else + { + boolean alreadySelected = source.mSelectedControlPoints.contains(bestMatch); + + if(!alreadySelected && (!(event.isShiftDown() || event.isControlDown())) ) + source.clearSelectedControlPoints(); //If shift or control is held or the ControlPoint is already selected, don't clear + + if(event.isControlDown()) + source.toggleSelectedControlPoint(bestMatch); + else + source.addSelectedControlPoint(bestMatch); + } + + if(hitControlPoint && source.mSelectedControlPoints.contains(bestMatch)) + { + mDragStartPos = source.screenCoordinateToBrdCoordinate(pos); + + mDragOffset = new Point2D.Double(bestMatch.getPoints()[getWhich()].x-mDragStartPos.x,bestMatch.getPoints()[getWhich()].y-mDragStartPos.y); + + } + + BoardCAD.getInstance().onControlPointChanged(); +// source.repaint(); + BoardCAD.getInstance().redraw(); + + } + + + public void onMouseDragged(BoardEdit source, MouseEvent event) + { + + + //dragging nurbs points + +// clicked_x=event.getX(); +// clicked_y=event.getY(); + + BoardHandler board_handler=BoardCAD.getInstance().getBoardHandler(); + + if(is_marked) + { + if(source.mDrawControl == 0) + { + + double[][] m=MathUtils.invert(source.mRotationMatrix); + double myy=(source.mRotationMatrix[1][0]*p.x+source.mRotationMatrix[1][1]*p.y+source.mRotationMatrix[1][2]*p.z); + + board_handler.set_x( m[0][0]*(event.getX()-source.mOffsetX)/(source.mScale/10) + m[0][1]*myy + m[0][2]*(event.getY()-source.mOffsetY)/(source.mScale/10) );// + m[0][2]*100); + board_handler.set_y( m[1][0]*(event.getX()-source.mOffsetX)/(source.mScale/10) + m[1][1]*myy + m[1][2]*(event.getY()-source.mOffsetY)/(source.mScale/10) );// + m[1][2]*100); + board_handler.set_z( m[2][0]*(event.getX()-source.mOffsetX)/(source.mScale/10) + m[2][1]*myy + m[2][2]*(event.getY()-source.mOffsetY)/(source.mScale/10) );// + m[2][2]*100); + + board_handler.set_point(source.mRotationMatrix); + } + else if(source.mDrawControl == BezierBoardDrawUtil.MirrorY) + { + if(!BoardCAD.getInstance().mIsLockedX.getState()) + board_handler.set_x((event.getX()-source.mOffsetX)/(source.mScale/10)); + if(!BoardCAD.getInstance().mIsLockedZ.getState()) + board_handler.set_z((event.getY()-source.mOffsetY)/(source.mScale/10)); + board_handler.set_point(); + } + else if(source.mDrawControl == BezierBoardDrawUtil.FlipY) + { + + if(!BoardCAD.getInstance().mIsLockedX.getState()) + board_handler.set_x((event.getX()-source.mOffsetX)/(source.mScale/10)); + if(!BoardCAD.getInstance().mIsLockedY.getState()) + board_handler.set_y((source.mOffsetY-event.getY())/(source.mScale/10)); + board_handler.set_point(); + } + else if(source.mDrawControl == (BezierBoardDrawUtil.MirrorX | BezierBoardDrawUtil.FlipY)) + { + if(!BoardCAD.getInstance().mIsLockedY.getState()) + board_handler.set_y((-event.getY()+source.mOffsetY)/(source.mScale/10)); + if(!BoardCAD.getInstance().mIsLockedZ.getState()) + board_handler.set_z((event.getX()-source.mOffsetX)/(source.mScale/10)); + board_handler.set_point(); + } + + BoardCAD.getInstance().redraw(); + } + + + //dragging bezier points + + + if(mIsKeyEditing) + return; + + if(mIsPaning) + { + mPanCommand.onMouseDragged(source, event); + return; + } + + if(mIsBoxSelecting) + { + mSource.setDrawZoomRectangle(mBoxSelectStartPos, event.getPoint()); + + return; + } + + ArrayList selectedControlPoints = source.getSelectedControlPoints(); + if(selectedControlPoints.size() == 0) + return; + + Point pos = event.getPoint(); + Point2D.Double brdPos = source.screenCoordinateToBrdCoordinate(pos); + + if(mIsDragging == false) + { + /* BezierPatch ControlPoints = source.getBezierControlPoints(BoardCAD.getInstance().getCurrentBrd()); + ControlPoint bestMatch = ControlPoints.findBestMatch(brdPos); + mWhich = ControlPoints.getBestMatchWhich(); + + double distance = (double)brdPos.distance(bestMatch.mPoints[mWhich]); + + if(distance > (MAX_OFF/source.getScale()) || bestMatch == null) + return; //trying to drag an unselected point + + if(!selectedControlPoints.contains(bestMatch)) + return; //trying to drag an unselected point + + mDragStartPos = source.screenCoordinateToBrdCoordinate(pos); + + mDragOffset = new Point2D.Double(bestMatch.mPoints[mWhich].x-mDragStartPos.x,bestMatch.mPoints[mWhich].y-mDragStartPos.y); + */ + saveControlPointsBeforeChange(source); + + mIsDragging = true; + mSource = source; + } + + brdPos.x += mDragOffset.x; + brdPos.y += mDragOffset.y; + + double x_diff = (brdPos.x - mDragStartPos.x)*(event.isAltDown()?.1f:1f); + double y_diff = (brdPos.y - mDragStartPos.y)*(event.isAltDown()?.1f:1f); + + moveControlPoints(x_diff, y_diff, getWhich()); + + + } + + public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) + { + if(is_marked) + { + mNurbsCommand.execute(); + is_marked=false; + } + + if(mIsBoxSelecting) + { + mSource.disableDrawZoomRectangle(); + + Point pos = event.getPoint(); + Point2D.Double boxStartPos = source.screenCoordinateToBrdCoordinate(mBoxSelectStartPos); + Point2D.Double boxEndPos = source.screenCoordinateToBrdCoordinate(pos); + + if(boxStartPos.x > boxEndPos.x) + { + double x = boxStartPos.x; + boxStartPos.x = boxEndPos.x; + boxEndPos.x = x; + } + + if(boxStartPos.y > boxEndPos.y) + { + double y = boxStartPos.y; + boxStartPos.y = boxEndPos.y; + boxEndPos.y = y; + } + + BezierSpline[] splines = source.getActiveBezierSplines(BoardCAD.getInstance().getCurrentBrd()); + if(splines == null) + return; + + + for(int k = 0; k < splines.length; k++) + { + for(int i = 0; i < splines[k].getNrOfControlPoints(); i++) + { + BezierKnot point = splines[k].getControlPoint(i); + for(int j = 0; j < 3; j++) + { + Point2D.Double p = point.getPoints()[j]; + + if(p.x > boxStartPos.x && p.x < boxEndPos.x && p.y > boxStartPos.y && p.y < boxEndPos.y ) //Check within box + { + setWhich(j); + + if(event.isControlDown()) + source.toggleSelectedControlPoint(point); + else + source.addSelectedControlPoint(point); + + break; + } + } + } + } + + BoardCAD.getInstance().onControlPointChanged(); + source.repaint(); + mIsBoxSelecting = false; + } + + ArrayList selectedControlPoints = source.getSelectedControlPoints(); + if(selectedControlPoints.size() == 0) + return; + + if(mIsDragging == true) + { + execute(); + } + } + + public void onMouseWheelMoved(BoardEdit source, MouseWheelEvent event) + { + int scroll = event.getWheelRotation(); + + int steps = Math.abs(scroll); + for(int i = 0; i < steps; i++) + { + if(scroll < 0) + { + mZoomCommand.zoomInStep(source, event.isAltDown()); + } + else + { + mZoomCommand.zoomOutStep(source, event.isAltDown()); + } + + } + event.consume(); + } + + public void onMouseWheelButtonPressed(BoardEdit source, MouseEvent event) + { + mPanCommand.onLeftMouseButtonPressed(source, event); + mIsPaning = true; + } + + public void onMouseWheelButtonReleased(BoardEdit source, MouseEvent event) + { + mPanCommand.onLeftMouseButtonReleased(source, event); + mIsPaning = false; + } + + public boolean onKeyEvent(BoardEdit source, KeyEvent event) + { + if(mIsDragging) + return false; + + ArrayList selectedControlPoints = source.getSelectedControlPoints(); + if(selectedControlPoints.size() == 0) + { + return mPanCommand.onKeyEvent(source, event); + } + + double mulX = ((source.mDrawControl&(BezierBoardDrawUtil.FlipX)) != 0)?-1.0f:1.0f; + double mulY = ((source.mDrawControl&(BezierBoardDrawUtil.FlipY)) != 0)?-1.0f:1.0f; + + if(event.getID() == KeyEvent.KEY_PRESSED) + { + int key = event.getKeyCode(); + + double x_diff = 0; + double y_diff = 0; + double movement = (KEY_MOVE_AMOUNT/source.getScale())*(event.isAltDown()?.1f:1f); + +// Length of current + double sx; + double sy; + if(mControlPointsBeforeChange == null || mControlPointsBeforeChange.size() == 0) + { + sx = (double)selectedControlPoints.get(0).getPoints()[getWhich()].x - selectedControlPoints.get(0).getPoints()[0].x; + sy = (double)selectedControlPoints.get(0).getPoints()[getWhich()].y - selectedControlPoints.get(0).getPoints()[0].y; + } + else + { + sx = (double)mControlPointsBeforeChange.get(0).getPoints()[getWhich()].x - mControlPointsBeforeChange.get(0).getPoints()[0].x; + sy = (double)mControlPointsBeforeChange.get(0).getPoints()[getWhich()].y - mControlPointsBeforeChange.get(0).getPoints()[0].y; + } + + double sl = Math.sqrt(sx*sx+sy*sy); + +// Normalize + double snx = sx/sl; + double sny = sy/sl; + + switch(key) + { + case KeyEvent.VK_LESS: + if(selectedControlPoints.size() > 1 || mIsKeyEditing == true) + return false; + + setWhich(getWhich() - 1); + if(getWhich() < 0) + setWhich(2); + + source.repaint(); + break; + + case KeyEvent.VK_C: + if(selectedControlPoints.size() > 1 || mIsKeyEditing == true) + return false; + + BezierSpline[] splines = source.getActiveBezierSplines(BoardCAD.getInstance().getCurrentBrd()); + if(splines == null) + return false; + + for(int i = 0; i < splines.length; i++) + { + int currentIndex = splines[i].indexOf(selectedControlPoints.get(0)); + if(currentIndex == -1) + continue; + + int newIndex = ++currentIndex%splines[i].getNrOfControlPoints(); + + selectedControlPoints.clear(); + + selectedControlPoints.add(splines[i].getControlPoint(newIndex)); + + source.repaint(); + } + break; + + case KeyEvent.VK_LEFT: + x_diff = -movement*mulX*mRepeat; + break; + + case KeyEvent.VK_RIGHT: + x_diff = movement*mulX*mRepeat; + break; + + case KeyEvent.VK_UP: + y_diff = -movement*mulY*mRepeat; + break; + + case KeyEvent.VK_DOWN: + y_diff = movement*mulY*mRepeat; + break; + + case KeyEvent.VK_E: + case KeyEvent.VK_R: + if(getWhich() == 0 || selectedControlPoints.size() > 1) + return false; + + x_diff = (double)(snx*movement*((key==KeyEvent.VK_R)?-1.0f:1.0f))*mRepeat; + y_diff = (double)(sny*movement*((key==KeyEvent.VK_R)?-1.0f:1.0f))*mRepeat; + break; + + case KeyEvent.VK_Q: + case KeyEvent.VK_W: + if(getWhich() == 0 || selectedControlPoints.size() > 1) + return false; + + double angle = (((double)Math.PI/180.0f)*mRepeat)*((key==KeyEvent.VK_Q)?-1.0f:1.0f)*(event.isAltDown()?.1f:1f); + x_diff = (double)((Math.cos(angle)*sx - Math.sin(angle)*sy) - sx); + y_diff = (double)((Math.sin(angle)*sx + Math.cos(angle)*sy) - sy); + break; + + default: + return false; + } + + if(mIsKeyEditing == false) + { + saveControlPointsBeforeChange(source); + + mIsKeyEditing = true; + mCurrentKeyCode = key; + + mRepeat = 1; + + mSource = source; + } + + mRepeat++; + + moveControlPoints(x_diff, y_diff, getWhich()); + + BoardCAD.getInstance().onControlPointChanged(); + source.repaint(); + return true; + } + else if(event.getID() == KeyEvent.KEY_RELEASED) + { + if(mIsKeyEditing == true) + { + if(mCurrentKeyCode == event.getKeyCode()) + { + execute(); + } + + } + + } + return false; + } + + public void setContinous(BoardEdit source, boolean continous) + { + if(source.getSelectedControlPoints().size() == 0) + return; + + mSource = source; + + saveControlPointsBeforeChange(mSource); + + mSource.getSelectedControlPoints().get(0).setContinous(continous); + + moveControlPoints(0, 0, (getWhich() == 0)?1:getWhich()); //If endpoint selected, select tangent + + execute(); + + } + + public void setControlPoint(BoardEdit source, Point2D.Double pos) + { + mSource = source; + + saveControlPointsBeforeChange(mSource); + + double dx = pos.x - mControlPointsBeforeChange.get(0).getPoints()[getWhich()].x; + double dy = pos.y - mControlPointsBeforeChange.get(0).getPoints()[getWhich()].y; + + moveControlPoints(dx, dy, getWhich()); + + execute(); + + } + + public void rotateControlPoint(BoardEdit source, double targetAngle) + { + mSource = source; + + saveControlPointsBeforeChange(mSource); + + ArrayList selectedControlPoints = source.getSelectedControlPoints(); + if(getWhich() == 0 || selectedControlPoints.size() > 1) + return; + + double sx = (double)selectedControlPoints.get(0).getPoints()[getWhich()].x - selectedControlPoints.get(0).getPoints()[0].x; + double sy = (double)selectedControlPoints.get(0).getPoints()[getWhich()].y - selectedControlPoints.get(0).getPoints()[0].y; + + Point2D.Double horAxis = new Point2D.Double(1.0,0.0); + Point2D.Double pointVec = new Point2D.Double(sx,sy); + + double pointAngle = VecMath.getVecAngle(horAxis, pointVec); + + double rotAngle = targetAngle - pointAngle; + + double x_diff = (double)((Math.cos(rotAngle)*sx - Math.sin(rotAngle)*sy) - sx); + double y_diff = (double)((Math.sin(rotAngle)*sx + Math.cos(rotAngle)*sy) - sy); + + moveControlPoints(x_diff, y_diff, getWhich()); + + BoardCAD.getInstance().onControlPointChanged(); + execute(); + } + + public void rotateControlPointToHorizontal(BoardEdit source) + { + ArrayList selectedControlPoints = source.getSelectedControlPoints(); + if(selectedControlPoints.size() != 1) + return; + + mSource = source; + + saveControlPointsBeforeChange(mSource); + + BezierKnot current = selectedControlPoints.get(0); + + double nextLength = current.getTangentToNextLength(); + double prevLength = current.getTangentToPrevLength(); + double x = current.getEndPoint().x; + double y = current.getEndPoint().y; + + double tanPrevSign = (current.getTangentToPrev().x-x>0)?1:-1; + double tanNextSign = (current.getTangentToNext().x-x>=0)?1:-1; + + if(getWhich() == 0 || getWhich() == 1) + { + current.setTangentToPrev((prevLength*tanPrevSign)+x, y); + if(current.isContinous()) + { + current.setTangentToNext((-nextLength*tanPrevSign)+x, y); + } + } + else if(getWhich() == 2 || current.isContinous()) + { + current.setTangentToNext((nextLength*tanNextSign)+x, y); + if(current.isContinous()) + { + current.setTangentToPrev((-prevLength*tanNextSign)+x, y); + } + } + + BoardCAD.getInstance().onControlPointChanged(); + execute(); + } + + public void rotateControlPointToVertical(BoardEdit source) + { + ArrayList selectedControlPoints = source.getSelectedControlPoints(); + if(selectedControlPoints.size() != 1) + return; + + mSource = source; + + saveControlPointsBeforeChange(mSource); + + BezierKnot current = selectedControlPoints.get(0); + + double nextLength = current.getTangentToNextLength(); + double prevLength = current.getTangentToPrevLength(); + double x = current.getEndPoint().x; + double y = current.getEndPoint().y; + + double tanPrevSign = (current.getTangentToPrev().y-y>0)?1:-1; + double tanNextSign = (current.getTangentToNext().y-y>=0)?1:-1; + + if(getWhich() == 0 || getWhich() == 1) + { + current.setTangentToPrev(x, (prevLength*tanPrevSign)+y); + if(current.isContinous()) + { + current.setTangentToNext(x, (-nextLength*tanPrevSign)+y); + } + } + if(getWhich() == 0 || getWhich() == 2) + { + current.setTangentToNext(x, (nextLength*tanNextSign)+y); + if(current.isContinous()) + { + current.setTangentToPrev(x, (-prevLength*tanNextSign)+y); + + } + } + + BoardCAD.getInstance().onControlPointChanged(); + execute(); + } + + public void redo() + { + /* for(int i = 0; i < mSelectedControlPointsCopy.size(); i++) + { + mSelectedControlPointsCopy.get(i).set(mControlPointsAfterChange.get(i)); + } + */ super.redo(); + } + + public void undo() + { + /* for(int i = 0; i < mSelectedControlPointsCopy.size(); i++) + { + mSelectedControlPointsCopy.get(i).set(mControlPointsBeforeChange.get(i)); + } + */ super.undo(); + } + + public Object clone(){ + BrdEditCommand cmd = null; + + cmd = (BrdEditCommand)super.clone(); + +// The arrays are instantiated in this class so there is no need to copy them + + return cmd; + } + + public String getCommandString() + { + return LanguageResource.getString("EDITCMD_STR"); + } + + public int getWhich() { + return mWhich; + } + + public void setWhich(int mWhich) { + this.mWhich = mWhich; + } + +} \ No newline at end of file diff --git a/boardcad/commands/BrdFitCurveCommand.java b/boardcad/commands/BrdFitCurveCommand.java new file mode 100644 index 0000000..5d6f333 --- /dev/null +++ b/boardcad/commands/BrdFitCurveCommand.java @@ -0,0 +1,112 @@ +package boardcad.commands; + +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; + +import board.BezierBoard; +import boardcad.gui.jdk.BoardCAD; +import boardcad.i18n.LanguageResource; +import cadcore.BezierCurve; +import cadcore.BezierFit; +import cadcore.BezierSpline; + +public class BrdFitCurveCommand extends BrdAbstractEditCommand { + + public BrdFitCurveCommand() { + + } + + public void execute() { + mPreviousCommand = BoardCAD.getInstance().getCurrentCommand(); + + fitCurve(); + + super.execute(); + } + + public void fitCurve() { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + saveBeforeChange(brd); + + boolean isCrossSection = BoardCAD.getInstance().getSelectedEdit().mIsCrossSectionEdit; + + ArrayList gpArray = BoardCAD.getInstance() + .getSelectedEdit().getGuidePoints(); + BezierSpline[] bs = BoardCAD.getInstance().getSelectedEdit() + .getActiveBezierSplines(brd); + + for (int i = 0; i < bs.length; i++) { + for (int k = 0; k < bs[i].getNrOfCurves(); k++) { + BezierCurve curve = bs[i].getCurve(k); + + double xmin = 0.0; + double xmax = 0.0; + double ymin = -10000000.0; + double ymax = 10000000.0; + if(isCrossSection) + { + xmin = curve.getMinX(); + xmax = curve.getMaxX(); + ymin = curve.getMinY(); + ymax = curve.getMaxY(); + } + else + { + xmin = curve.getStartKnot().getEndPoint().getX(); + xmax = curve.getEndKnot().getEndPoint().getX(); + } + + ArrayList currentGuidePoints = new ArrayList(); + + for (int l = 0; l < gpArray.size(); l++) { + Point2D.Double p = gpArray.get(l); + + if (p.x >= xmin && p.x <= xmax && p.y >= ymin + && p.y <= ymax) { + currentGuidePoints.add(p); + } + } + if (currentGuidePoints.isEmpty()) // No points + continue; + + currentGuidePoints.add(0, curve.getStartKnot().getEndPoint()); + currentGuidePoints.add(0, curve.getStartKnot().getEndPoint()); + currentGuidePoints.add(curve.getEndKnot().getEndPoint()); + currentGuidePoints.add(curve.getEndKnot().getEndPoint()); + + Collections.sort(currentGuidePoints, new Comparator() { + public int compare(Point2D p1, Point2D p2) { + return (p1.getX() > p2.getX()) ? 1 : -1; + } + }); + + // Pass to bezierFit + BezierFit fitter = new BezierFit(); + Point2D[] ctrlPoints = fitter.bestFit(currentGuidePoints); + + // Update bezier curve + curve.getStartKnot().setEndPoint(ctrlPoints[0].getX(), + ctrlPoints[0].getY()); + curve.getStartKnot().setTangentToNext(ctrlPoints[1].getX(), + ctrlPoints[1].getY()); + curve.getStartKnot().setContinous(false); + curve.getEndKnot().setTangentToPrev(ctrlPoints[2].getX(), + ctrlPoints[2].getY()); + curve.getEndKnot().setEndPoint(ctrlPoints[3].getX(), + ctrlPoints[3].getY()); + curve.getEndKnot().setContinous(false); + + } + } + + saveChanges(); + } + + @Override + public String getCommandString() { + return LanguageResource.getString("FITCURVECMD_STR"); + } + +} diff --git a/boardcad/commands/BrdImportCrossSectionCommand.java b/boardcad/commands/BrdImportCrossSectionCommand.java new file mode 100644 index 0000000..be8bf2a --- /dev/null +++ b/boardcad/commands/BrdImportCrossSectionCommand.java @@ -0,0 +1,107 @@ +package boardcad.commands; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; + +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; + +import board.BezierBoard; +import board.readers.BrdReader; +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; +import cadcore.BezierBoardCrossSection; +import cadcore.BezierSpline; + +public class BrdImportCrossSectionCommand extends BrdCommand +{ + BezierBoardCrossSection mCrossSection = null; + BezierSpline mOldCrossSectionBezier = null; + BezierSpline mNewCrossSectionBezier = null; + + + public BrdImportCrossSectionCommand(BoardEdit source) + { + mSource = source; + + } + + public void execute() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + + mCrossSection = brd.getCurrentCrossSection(); + + mOldCrossSectionBezier = mCrossSection.getBezierSpline(); + + double pos = mCrossSection.getPosition(); + + final JFileChooser fc = new JFileChooser(); + + fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); + + int returnVal = fc.showOpenDialog(BoardCAD.getInstance().getFrame()); + if (returnVal != JFileChooser.APPROVE_OPTION) + return; + + File file = fc.getSelectedFile(); + + String filename = file.getPath(); // Load and display selection + if(filename == null) + return; + + try + { + if(BrdReader.importCrossection(brd, new BufferedReader(new FileReader(filename))) < 0) + { + throw new FileNotFoundException(); + } + } + catch(Exception e) + { + String str = e.toString(); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("IMPORTCROSSECTIONFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); + + return; + } + + + mNewCrossSectionBezier = (BezierSpline)brd.getCurrentCrossSection().clone(); + + mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); + + super.execute(); + } + + public void undo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + double pos = mCrossSection.getPosition(); + + mCrossSection.setBezierSpline(mOldCrossSectionBezier); + + mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); + + super.undo(); + } + + public void redo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + double pos = mCrossSection.getPosition(); + + mCrossSection.setBezierSpline(mNewCrossSectionBezier); + + mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); + + super.redo(); + } + + public String getCommandString() + { + return LanguageResource.getString("IMPORTCROSSECTIONCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdImportOutlineCommand.java b/boardcad/commands/BrdImportOutlineCommand.java new file mode 100644 index 0000000..ebd2db6 --- /dev/null +++ b/boardcad/commands/BrdImportOutlineCommand.java @@ -0,0 +1,92 @@ +package boardcad.commands; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; + +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; + +import board.BezierBoard; +import board.readers.BrdReader; +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; +import cadcore.BezierSpline; + +public class BrdImportOutlineCommand extends BrdCommand +{ + BezierSpline mOldOutline = null; + BezierSpline mNewOutline = null; + + + public BrdImportOutlineCommand(BoardEdit source) + { + mSource = source; + } + + public void execute() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + + final JFileChooser fc = new JFileChooser(); + + fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); + + int returnVal = fc.showOpenDialog(BoardCAD.getInstance().getFrame()); + if (returnVal != JFileChooser.APPROVE_OPTION) + return; + + File file = fc.getSelectedFile(); + + String filename = file.getPath(); // Load and display selection + if(filename == null) + return; + + mOldOutline = brd.getOutline(); + + mNewOutline = new BezierSpline(); + brd.setOutline(mNewOutline); + + try + { + if(BrdReader.importOutline(brd, new BufferedReader(new FileReader(filename))) < 0) + { + throw new FileNotFoundException(); + } + } + catch(Exception e) + { + String str = e.toString(); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("IMPORTOUTLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); + + return; + } + + super.execute(); + } + + public void undo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + + brd.setOutline(mOldOutline); + + super.undo(); + } + + public void redo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + + brd.setOutline(mNewOutline); + + super.redo(); + } + + public String getCommandString() + { + return LanguageResource.getString("PASTECROSSECTIONCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdImportProfileCommand.java b/boardcad/commands/BrdImportProfileCommand.java new file mode 100644 index 0000000..aa4b728 --- /dev/null +++ b/boardcad/commands/BrdImportProfileCommand.java @@ -0,0 +1,98 @@ +package boardcad.commands; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; + +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; + +import board.BezierBoard; +import board.readers.BrdReader; +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; +import cadcore.BezierSpline; + +public class BrdImportProfileCommand extends BrdCommand +{ + BezierSpline mOldDeck = null; + BezierSpline mOldBottom = null; + BezierSpline mNewDeck = null; + BezierSpline mNewBottom = null; + + public BrdImportProfileCommand(BoardEdit source) + { + mSource = source; + } + + public void execute() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + + final JFileChooser fc = new JFileChooser(); + + fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); + + int returnVal = fc.showOpenDialog(BoardCAD.getInstance().getFrame()); + if (returnVal != JFileChooser.APPROVE_OPTION) + return; + + File file = fc.getSelectedFile(); + + String filename = file.getPath(); // Load and display selection + if(filename == null) + return; + + mOldDeck = brd.getDeck(); + mOldBottom = brd.getBottom(); + + mNewDeck = new BezierSpline(); + brd.setDeck(mNewDeck); + mNewBottom = new BezierSpline(); + brd.setBottom(mNewBottom); + + try + { + if(BrdReader.importProfile(brd, new BufferedReader(new FileReader(filename))) < 0) + { + throw new FileNotFoundException(); + } + } + catch(Exception e) + { + String str = e.toString(); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("IMPORTPROFILEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); + + return; + } + + super.execute(); + } + + public void undo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + + brd.setDeck(mOldDeck); + brd.setBottom(mOldBottom); + + super.undo(); + } + + public void redo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + + brd.setDeck(mNewDeck); + brd.setBottom(mNewBottom); + + super.redo(); + } + + public String getCommandString() + { + return LanguageResource.getString("PASTECROSSECTIONCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdInputCommand.java b/boardcad/commands/BrdInputCommand.java new file mode 100644 index 0000000..c391a04 --- /dev/null +++ b/boardcad/commands/BrdInputCommand.java @@ -0,0 +1,52 @@ +package boardcad.commands; + +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; +import java.awt.event.MouseWheelEvent; + +import boardcad.gui.jdk.BoardEdit; + +public abstract class BrdInputCommand extends BrdCommand +{ + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + } + + public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) + { + } + + public void onRightMouseButtonPressed(BoardEdit source, MouseEvent event) + { + } + + public void onRightMouseButtonReleased(BoardEdit source, MouseEvent event) + { + } + + public void onMouseWheelButtonPressed(BoardEdit source, MouseEvent event) + { + } + + public void onMouseWheelButtonReleased(BoardEdit source, MouseEvent event) + { + } + + public void onMouseMove(BoardEdit source, MouseEvent event) + { + } + + public void onMouseDragged(BoardEdit source, MouseEvent event) + { + } + + + public boolean onKeyEvent(BoardEdit source, KeyEvent event) + { + return false; + } + + public void onMouseWheelMoved(BoardEdit source, MouseWheelEvent e) + { + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdMacroCommand.java b/boardcad/commands/BrdMacroCommand.java new file mode 100644 index 0000000..1330028 --- /dev/null +++ b/boardcad/commands/BrdMacroCommand.java @@ -0,0 +1,57 @@ +package boardcad.commands; + +import java.util.Iterator; +import java.util.LinkedList; +import java.util.ListIterator; + +import boardcad.i18n.LanguageResource; + +public class BrdMacroCommand extends BrdCommand { + + LinkedList mBrdCommand; + + public BrdMacroCommand() + { + mBrdCommand = new LinkedList(); + } + + public void add(BrdCommand cmd) + { + mBrdCommand.add(cmd); + } + + public void execute() + { + for(Iterator i = mBrdCommand.iterator(); i.hasNext();) + { + ((BrdCommand)i.next()).doAction(); + } + super.execute(); + } + public void redo() + { + for(Iterator i = mBrdCommand.iterator(); i.hasNext();) + ((BrdCommand)i.next()).redo(); + + super.redo(); + } + + public void undo() + { +// Java 6 for(Iterator i = mBrdCommand.descendingIterator(); i.hasNext();) +// ((BrdCommand)i.next()).undo(); + + for(ListIterator i = mBrdCommand.listIterator(mBrdCommand.size()); i.hasPrevious();) + { + ((BrdCommand)i.previous()).undo(); + } + + super.undo(); + } + + public String getCommandString() + { + return LanguageResource.getString("MACROCMD_STR"); + } + +} \ No newline at end of file diff --git a/boardcad/commands/BrdMoveCrossSectionCommand.java b/boardcad/commands/BrdMoveCrossSectionCommand.java new file mode 100644 index 0000000..351ed6c --- /dev/null +++ b/boardcad/commands/BrdMoveCrossSectionCommand.java @@ -0,0 +1,55 @@ +package boardcad.commands; + +import board.BezierBoard; +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; +import cadcore.BezierBoardCrossSection; + +public class BrdMoveCrossSectionCommand extends BrdCommand +{ + BezierBoardCrossSection mMovedCrossSection = null; + double mOldPos; + double mNewPos; + + + public BrdMoveCrossSectionCommand(BoardEdit source, BezierBoardCrossSection crossSection, double newPos) + { + mSource = source; + mMovedCrossSection = crossSection; + mNewPos = newPos; + } + + public void execute() + { + BezierBoard brd = mSource.getCurrentBrd(); + mMovedCrossSection.setPosition(mNewPos); + brd.sortCrossSections(); + + super.execute(); + + } + + public void undo() + { + BezierBoard brd = mSource.getCurrentBrd(); + mMovedCrossSection.setPosition(mOldPos); + brd.sortCrossSections(); + + super.undo(); + + } + + public void redo() + { + BezierBoard brd = mSource.getCurrentBrd(); + mMovedCrossSection.setPosition(mNewPos); + brd.sortCrossSections(); + + super.redo(); + } + + public String getCommandString() + { + return LanguageResource.getString("MOVECROSSECTIONCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdPanCommand.java b/boardcad/commands/BrdPanCommand.java new file mode 100644 index 0000000..5644b4b --- /dev/null +++ b/boardcad/commands/BrdPanCommand.java @@ -0,0 +1,84 @@ +package boardcad.commands; + +import java.awt.Point; +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; + +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; + +public class BrdPanCommand extends BrdInputCommand +{ + double mOriginalOffsetX; + double mOriginalOffsetY; + Point mPressedPos; + boolean mButtonPressed = true; + + public BrdPanCommand() + { + mCanUndo = false; + } + + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + Point pos = event.getPoint(); + mOriginalOffsetX = source.getOffsetX(); + mOriginalOffsetY = source.getOffsetY(); + mPressedPos = (Point)pos.clone(); + mButtonPressed = true; + } + + + public void onMouseDragged(BoardEdit source, MouseEvent event) + { + Point pos = event.getPoint(); + source.setOffsetX(mOriginalOffsetX + (pos.x - mPressedPos.x)); + source.setOffsetY(mOriginalOffsetY + (pos.y - mPressedPos.y)); + source.repaint(); + } + + public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) + { + mButtonPressed = false; + } + + public boolean onKeyEvent(BoardEdit source, KeyEvent event) + { + if(event.getID() != KeyEvent.KEY_PRESSED) + return false; + + int key = event.getKeyCode(); + + if(key == KeyEvent.VK_LEFT) + { + source.setOffsetX(source.getOffsetX()-(1.0f*source.getScale())); + source.repaint(); + return true; + } + else if(key == KeyEvent.VK_RIGHT) + { + source.setOffsetX(source.getOffsetX()+(1.0f*source.getScale())); + source.repaint(); + return true; + } + if(key == KeyEvent.VK_UP) + { + source.setOffsetY(source.getOffsetY()-(1.0f*source.getScale())); + source.repaint(); + return true; + } + else if(key == KeyEvent.VK_DOWN) + { + source.setOffsetY(source.getOffsetY()+(1.0f*source.getScale())); + source.repaint(); + return true; + } + return false; + } + + public String getCommandString() + { + return LanguageResource.getString("PANCMD_STR"); + } + +} \ No newline at end of file diff --git a/boardcad/commands/BrdPasteCrossSectionCommand.java b/boardcad/commands/BrdPasteCrossSectionCommand.java new file mode 100644 index 0000000..4292bb4 --- /dev/null +++ b/boardcad/commands/BrdPasteCrossSectionCommand.java @@ -0,0 +1,65 @@ +package boardcad.commands; + +import board.BezierBoard; +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; +import cadcore.BezierBoardCrossSection; +import cadcore.BezierSpline; + +public class BrdPasteCrossSectionCommand extends BrdCommand +{ + BezierBoardCrossSection mCrossSection = null; + BezierSpline mOldCrossSectionBezier = null; + BezierSpline mNewCrossSectionBezier = null; + + + public BrdPasteCrossSectionCommand(BoardEdit source, BezierBoardCrossSection currentCrossSection, BezierBoardCrossSection copyCrossSection) + { + mSource = source; + mCrossSection = currentCrossSection; + mOldCrossSectionBezier = currentCrossSection.getBezierSpline(); + mNewCrossSectionBezier = (BezierSpline)copyCrossSection.getBezierSpline().clone(); + } + + public void execute() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + double pos = mCrossSection.getPosition(); + + mCrossSection.setBezierSpline(mNewCrossSectionBezier); + + mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); + + super.execute(); + } + + public void undo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + double pos = mCrossSection.getPosition(); + + mCrossSection.setBezierSpline(mOldCrossSectionBezier); + + mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); + + super.undo(); + } + + public void redo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + double pos = mCrossSection.getPosition(); + + mCrossSection.setBezierSpline(mNewCrossSectionBezier); + + mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); + + super.redo(); + } + + public String getCommandString() + { + return LanguageResource.getString("PASTECROSSECTIONCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdPositionCommand.java b/boardcad/commands/BrdPositionCommand.java new file mode 100644 index 0000000..84a9ff9 --- /dev/null +++ b/boardcad/commands/BrdPositionCommand.java @@ -0,0 +1,199 @@ +package boardcad.commands; + +import java.awt.Point; +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; +import java.awt.event.MouseWheelEvent; + +import javax.vecmath.Vector3d; + +import boardcad.gui.jdk.BoardEdit; +import boardcad.gui.jdk.Machine2DView; + +public class BrdPositionCommand extends BrdInputCommand +{ + double mOriginalOffsetX; + double mOriginalOffsetY; + Point mPressedPos; + boolean mButtonPressed = true; + + BrdPanCommand mPanCommand = new BrdPanCommand(); + BrdZoomCommand mZoomCommand = new BrdZoomCommand(); + boolean mIsPaning = false; + + Machine2DView mView = null; + + public BrdPositionCommand(Machine2DView view) + { + mView = view; + mCanUndo = false; + } + + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + if(!mView.mShowDeck) + return; + + Point pos = event.getPoint(); + Vector3d deckOffset = mView.mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); + mOriginalOffsetX = deckOffset.x; + mOriginalOffsetY = deckOffset.z; + mPressedPos = (Point)pos.clone(); + mButtonPressed = true; + } + + + public void onMouseDragged(BoardEdit source, MouseEvent event) + { + if(mIsPaning) + { + mPanCommand.onMouseDragged(source, event); + return; + } + + if(!mView.mShowDeck) + return; + + if(!mButtonPressed) + return; + + Point pos = event.getPoint(); + + double offsetX = mOriginalOffsetX + (((pos.x - mPressedPos.x))*(event.isAltDown()?0.1:1.0)/mView.mScale); + double offsetY = mOriginalOffsetY - (((pos.y - mPressedPos.y))*(event.isAltDown()?0.1:1.0)/mView.mScale); +// System.out.printf("offsetX: %f, offsetY: %f\n",offsetX, offsetY); + mView.mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(offsetX, 0.0, offsetY)); + + //System.out.printf("onMouseDragged mView.mConfig:%s this:%s\n", mView.mConfig.toString(), this.toString()); + + source.repaint(); + } + + public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) + { + mButtonPressed = false; + } + + public void onMouseWheelMoved(BoardEdit source, MouseWheelEvent event) + { + int scroll = event.getWheelRotation(); + + int steps = scroll*((scroll>0)?1:-1); + for(int i = 0; i < steps; i++) + { + if(scroll < 0) + { + mZoomCommand.zoomInStep(source, event.isAltDown()); + } + else + { + mZoomCommand.zoomOutStep(source, event.isAltDown()); + } + + } + event.consume(); + } + + public void onMouseWheelButtonPressed(BoardEdit source, MouseEvent event) + { + mPanCommand.onLeftMouseButtonPressed(source, event); + mIsPaning = true; + } + + public void onMouseWheelButtonReleased(BoardEdit source, MouseEvent event) + { + mPanCommand.onLeftMouseButtonReleased(source, event); + mIsPaning = false; + } + + public boolean onKeyEvent(BoardEdit source, KeyEvent event) + { + + if(event.getID() != KeyEvent.KEY_PRESSED) + return false; + + int key = event.getKeyCode(); + +// System.out.printf("onKeyEvent mView.mConfig:%s this:%s\n", mView.mConfig.toString(), this.toString()); + + if(key == KeyEvent.VK_LEFT) + { + if(!mView.mShowDeck) + return false; + + Vector3d deckOffset = mView.mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); + double offsetX = (deckOffset.x-((event.isAltDown()?0.1:1.0f)/source.getScale())); + mView.mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(offsetX, 0.0, deckOffset.z)); + source.repaint(); + return true; + } + else if(key == KeyEvent.VK_RIGHT) + { + if(!mView.mShowDeck) + return false; + + Vector3d deckOffset = mView.mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); + double offsetX = (deckOffset.x+((event.isAltDown()?0.1:1.0f)/source.getScale())); + mView.mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(offsetX, 0.0, deckOffset.z)); + source.repaint(); + return true; + } + else if(key == KeyEvent.VK_UP) + { + if(!mView.mShowDeck) + return false; + + Vector3d deckOffset = mView.mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); + double offsetY = (deckOffset.z+((event.isAltDown()?0.1:1.0f)/source.getScale())); + mView.mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(deckOffset.x, 0.0, offsetY)); + source.repaint(); + return true; + } + else if(key == KeyEvent.VK_DOWN) + { + if(!mView.mShowDeck) + return false; + + Vector3d deckOffset = mView.mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); + double offsetY = (deckOffset.z-((event.isAltDown()?0.1:1.0f)/source.getScale())); + mView.mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(deckOffset.x, 0.0, offsetY)); + source.repaint(); + return true; + } + if(key == KeyEvent.VK_Q) + { + if(!mView.mShowDeck) + return false; + + double rot = mView.mConfig.getBlankHoldingSystem().getBoardDeckOffsetAngle(); + rot = rot-(event.isAltDown()?0.0004:0.004f); + mView.mConfig.getBlankHoldingSystem().setBoardDeckOffsetAngle(rot); + source.repaint(); + return true; + } + else if(key == KeyEvent.VK_W) + { + if(!mView.mShowDeck) + return false; + + double rot = mView.mConfig.getBlankHoldingSystem().getBoardDeckOffsetAngle(); + rot = rot+(event.isAltDown()?0.0004:0.004f); + mView.mConfig.getBlankHoldingSystem().setBoardDeckOffsetAngle(rot); + source.repaint(); + return true; + } + else if(key == KeyEvent.VK_SPACE) + { + mView.mShowDeck = !mView.mShowDeck; + source.repaint(); + return true; + } + return false; + } + + public String getCommandString() + { + return "Position"; + } + +} diff --git a/boardcad/commands/BrdRemoveCrossSectionCommand.java b/boardcad/commands/BrdRemoveCrossSectionCommand.java new file mode 100644 index 0000000..17bbbc3 --- /dev/null +++ b/boardcad/commands/BrdRemoveCrossSectionCommand.java @@ -0,0 +1,52 @@ +package boardcad.commands; + +import board.BezierBoard; +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; +import cadcore.BezierBoardCrossSection; + +public class BrdRemoveCrossSectionCommand extends BrdCommand +{ + BezierBoardCrossSection mRemovedCrossSection = null; + + + public BrdRemoveCrossSectionCommand(BoardEdit source, BezierBoardCrossSection crossSection) + { + mSource = source; + + mRemovedCrossSection = crossSection; + } + + public void execute() + { + BezierBoard brd = mSource.getCurrentBrd(); + + brd.removeCrossSection(mRemovedCrossSection); + + super.execute(); + } + + public void undo() + { + BezierBoard brd = mSource.getCurrentBrd(); + + brd.addCrossSection(mRemovedCrossSection); + + super.undo(); + + } + + public void redo() + { + BezierBoard brd = mSource.getCurrentBrd(); + + brd.removeCrossSection(mRemovedCrossSection); + + super.redo(); + } + + public String getCommandString() + { + return LanguageResource.getString("REMOVECROSSECTIONCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdRotateViewCommand.java b/boardcad/commands/BrdRotateViewCommand.java new file mode 100644 index 0000000..626203c --- /dev/null +++ b/boardcad/commands/BrdRotateViewCommand.java @@ -0,0 +1,79 @@ +package boardcad.commands; + +import java.awt.Point; +import java.awt.event.MouseEvent; + +import cadcore.MathUtils; +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; +import boardcad.gui.jdk.BoardHandler; +import boardcad.i18n.LanguageResource; + +public class BrdRotateViewCommand extends BrdInputCommand +{ + Point mClickedPos; + Point mZoomRectCorner; + double mNewScale; + boolean mButtonPressed = false; + private static int clicked_x; + private static int clicked_y; + private static int dragged_x; + private static int dragged_y; + + public BrdRotateViewCommand() + { + mCanUndo = false; + + mClickedPos = new Point(); + mZoomRectCorner = new Point(); + } + + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + clicked_x=event.getX(); + clicked_y=event.getY(); + + } + + public void onMouseDragged(BoardEdit source, MouseEvent event) + { + BoardHandler board_handler=BoardCAD.getInstance().getBoardHandler(); + + if(source.mDrawControl == 0) + { + dragged_x=event.getX(); + dragged_y=event.getY(); + double theta2=source.theta+dragged_x-clicked_x; + double[][] m1 = {{Math.cos(-theta2*Math.PI/180.0), 0.0, -Math.sin(-theta2*Math.PI/180.0)}, + {0.0, 1.0, 0.0}, + {Math.sin(-theta2*Math.PI/180.0), 0.0, Math.cos(-theta2*Math.PI/180.0)}}; + double zeta2=source.zeta+dragged_y-clicked_y; + double[][] m2 = {{1.0, 0.0, 0.0}, + {0.0, Math.cos(-zeta2*Math.PI/180.0), -Math.sin(-zeta2*Math.PI/180.0)}, + {0.0, Math.sin(-zeta2*Math.PI/180.0), Math.cos(-zeta2*Math.PI/180.0)}}; + source.mRotationMatrix=MathUtils.cross_product(m1,m2); + //design_panel.redraw(); + } + } + + public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) + { + + source.theta=source.theta+dragged_x-clicked_x; + source.zeta=source.zeta+dragged_y-clicked_y; + + source.repaint(); + + execute(); + } + + + + public String getCommandString() + { + return LanguageResource.getString("ROTATEVIEWCMD_STR"); + } + + + +} \ No newline at end of file diff --git a/boardcad/commands/BrdScaleCommand.java b/boardcad/commands/BrdScaleCommand.java new file mode 100644 index 0000000..a97ec20 --- /dev/null +++ b/boardcad/commands/BrdScaleCommand.java @@ -0,0 +1,197 @@ +package boardcad.commands; + +import javax.swing.JOptionPane; + +import board.BezierBoard; +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; +import boardcad.gui.jdk.ScaleBoardInputDialog; +import boardcad.i18n.LanguageResource; + +public class BrdScaleCommand extends BrdCommand +{ + double mOldWidth; + double mOldLength; + double mOldThickness; + double mNewWidth; + double mNewLength; + double mNewThickness; + //double[] mFinsOld; + boolean mScaleFins; + boolean mScaleFinsFactor; + boolean mScaleBottomRocker; + + public BrdScaleCommand(BoardEdit source) + { + mSource = source; + } + + public void execute() + { + + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + + ScaleBoardInputDialog dialog = new ScaleBoardInputDialog(BoardCAD.getInstance().getFrame()); + dialog.setModal(true); + //dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); + dialog.setTitle(LanguageResource.getString("SCALEBOARDTITLE_STR")); + dialog.setBoardLength(brd.getLength()); + dialog.setBoardWidth(brd.getMaxWidth()); + dialog.setBoardThick(brd.getMaxThickness()); + + dialog.setVisible(true); + + if(dialog.wasCancelled()) + { + dialog.dispose(); + return; + } + + //mFinsOld=brd.mFins; + mOldLength= brd.getLength(); + mOldWidth = brd.getMaxWidth(); + mOldThickness = brd.getMaxThickness(); + + if(!dialog.scaleThroughFactor()) + { + mNewLength = dialog.getBoardLength(); + mNewWidth = dialog.getBoardWidth(); + mNewThickness = dialog.getBoardThick(); + + mScaleFins = dialog.scaleFins(); + + mScaleBottomRocker = dialog.scaleBottomRocker(); + + boolean overCurve = dialog.useOverCurve(); + + dialog.dispose(); + + if(mNewLength <= 0 || mNewWidth <= 0 || mNewThickness <= 0) + { + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), LanguageResource.getString("SCALEBOARDINVALIDINPUTERRORMSG_STR"), LanguageResource.getString("SCALEBOARDINVALIDINPUTERRORTITLE_STR"), JOptionPane.ERROR_MESSAGE); + return; + } + + if(!overCurve) + { + if(mScaleBottomRocker) + { + brd.scaleAccordingly(mNewLength,mNewWidth,mNewThickness); + } + else { + brd.scale(mNewLength,mNewWidth,mNewThickness); + } + if(mScaleFins) + { + brd.finScaling(mNewLength/mOldLength,mNewWidth/mOldWidth); + } + } + else + { + double newLengthOverCurve = mNewLength; + double guestimatedNewLength = 0; + for(int i = 0; i < 5; i++) + { + guestimatedNewLength = brd.getLength() * (newLengthOverCurve/brd.getLengthOverCurve()) + 0.01; //cheat by adding 0.1 mm + if(mScaleBottomRocker) + { + brd.scaleAccordingly(guestimatedNewLength, mNewWidth, mNewThickness); + } + else + { + brd.scale(guestimatedNewLength, mNewWidth, mNewThickness); + } + } + if(mScaleFins) + { + brd.finScaling(guestimatedNewLength/mOldLength,mNewWidth/mOldWidth); + } + + //Get the actual new length, used for redo + mNewLength = brd.getLength(); +//...why is the actual length different from the length the user asked for, particularly when "constraint proportions is on"?? + } + + super.execute(); + + BoardCAD.getInstance().onBrdChanged(); + BoardCAD.getInstance().fitAll(); + }else + { //scaleTroughFactor: + + mNewLength = brd.getLength() * dialog.getFactor(); + mNewWidth = brd.getMaxWidth() * dialog.getFactor(); + mNewThickness = brd.getMaxThickness() * dialog.getFactor(); + + mScaleFinsFactor = dialog.scaleFinsFactor(); + + mScaleBottomRocker = true; + + dialog.dispose(); + + if(mNewLength <= 0 || mNewWidth <= 0 || mNewThickness <= 0 || dialog.getFactor()<=0) + { + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), LanguageResource.getString("SCALEBOARDINVALIDINPUTERRORMSG_STR"), LanguageResource.getString("SCALEBOARDINVALIDINPUTERRORTITLE_STR"), JOptionPane.ERROR_MESSAGE); + return; + } + + brd.scale(mNewLength,mNewWidth,mNewThickness); + if(mScaleFinsFactor) + { + brd.finScaling(dialog.getFactor(),dialog.getFactor()); + } + + super.execute(); + + BoardCAD.getInstance().onBrdChanged(); + BoardCAD.getInstance().fitAll(); + } + } + + public void undo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + if(mScaleBottomRocker) + { + brd.scaleAccordingly(mOldLength,mOldWidth,mOldThickness); + } + else + { + brd.scale(mOldLength,mOldWidth,mOldThickness); + } + if(mScaleFins || mScaleFinsFactor) + { + brd.finScaling(mOldLength/mNewLength,mOldWidth/mNewWidth); + } + + super.undo(); + + BoardCAD.getInstance().fitAll(); + } + + public void redo() + { + BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); + if(mScaleBottomRocker) + { + brd.scaleAccordingly(mNewLength, mNewWidth, mNewThickness); + } + else + { + brd.scale(mNewLength, mNewWidth, mNewThickness); + } + if(mScaleFins || mScaleFinsFactor) + { + brd.finScaling(mNewLength/mOldLength,mNewWidth/mOldWidth); + } + + super.redo(); + + BoardCAD.getInstance().fitAll(); + } + + public String getCommandString() + { + return LanguageResource.getString("SCALEBOARDCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/BrdSpotCheckCommand.java b/boardcad/commands/BrdSpotCheckCommand.java new file mode 100644 index 0000000..325e079 --- /dev/null +++ b/boardcad/commands/BrdSpotCheckCommand.java @@ -0,0 +1,42 @@ +package boardcad.commands; + +import boardcad.gui.jdk.BoardCAD; +import boardcad.i18n.LanguageResource; + +public class BrdSpotCheckCommand extends BrdCommand +{ + double mOldOffsetX; + double mOldOffsetY; + double mOldScale; + + + public BrdSpotCheckCommand() + { + } + + public void spotCheck() + { + mSource = BoardCAD.getInstance().getSelectedEdit(); + + mOldOffsetX = mSource.getOffsetX(); + mOldOffsetY = mSource.getOffsetY(); + mOldScale = mSource.getScale(); + + mSource.fitBrd(); + mSource.repaint(); + } + + public void restore() + { + mSource.setOffsetX(mOldOffsetX); + mSource.setOffsetY(mOldOffsetY); + mSource.setScale(mOldScale); + mSource.repaint(); + } + + public String getCommandString() + { + return LanguageResource.getString("SPOTCHECKCMD_STR"); + } + +} \ No newline at end of file diff --git a/boardcad/commands/BrdZoomCommand.java b/boardcad/commands/BrdZoomCommand.java new file mode 100644 index 0000000..bbf62a7 --- /dev/null +++ b/boardcad/commands/BrdZoomCommand.java @@ -0,0 +1,153 @@ +package boardcad.commands; + +import java.awt.Dimension; +import java.awt.Point; +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; + +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; + +public class BrdZoomCommand extends BrdInputCommand +{ + Point mClickedPos; + Point mZoomRectCorner; + double mNewScale; + boolean mButtonPressed = false; + + public BrdZoomCommand() + { + mCanUndo = false; + + mClickedPos = new Point(); + mZoomRectCorner = new Point(); + } + + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + Point pos = event.getPoint(); + mClickedPos.setLocation(pos); + mButtonPressed = true; + mNewScale = source.getScale(); + } + + public void onMouseDragged(BoardEdit source, MouseEvent event) + { + Point pos = event.getPoint(); + + zoomSetDims(source, pos); + } + + public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) + { + source.setScale(source.getScale()/mNewScale); + + source.setOffsetX((source.getOffsetX()-mClickedPos.x)/mNewScale); + source.setOffsetY((source.getOffsetY()-mClickedPos.y)/mNewScale); + + source.disableDrawZoomRectangle(); + source.repaint(); + + BoardCAD.getInstance().mLifeSizeButton.getModel().setSelected(false); + + execute(); + } + + public void zoomSetDims(BoardEdit source, Point pos) + { + Dimension dim = source.getSize(); + + double scaleX = (double)Math.abs(pos.x - mClickedPos.x)/(double)dim.width; + double scaleY = (double)Math.abs(pos.y - mClickedPos.y)/(double)dim.height; + double usedScale = (scaleX > scaleY)?scaleX:scaleY; + + mZoomRectCorner.setLocation(mClickedPos.x+(dim.width*usedScale), mClickedPos.y+(dim.height*usedScale)); + + mNewScale = usedScale; + + source.setDrawZoomRectangle(mClickedPos, mZoomRectCorner); + source.repaint(); + } + + public void zoom(BoardEdit source) + { + source.setScale(source.getScale()/mNewScale); + + source.setOffsetX((source.getOffsetX()-mClickedPos.x)/mNewScale); + source.setOffsetY((source.getOffsetY()-mClickedPos.y)/mNewScale); + + source.disableDrawZoomRectangle(); + source.repaint(); + +// BoardCAD.getInstance().mLifeSizeButton.getModel().setSelected(false); + + execute(); + } + + public void zoomInStep(BoardEdit source, boolean fine) + { + Dimension dim = source.getSize(); + Dimension scaledDim = source.getSize(); + scaledDim.width *= (fine?0.99:0.9); + scaledDim.height *= (fine?0.99:0.9); + + Point pos = new Point(); + mClickedPos.x = (dim.width - scaledDim.width)/2; + mClickedPos.y = (dim.height - scaledDim.height)/2; + + pos.x = mClickedPos.x + scaledDim.width; + pos.y = mClickedPos.y + scaledDim.height; + + zoomSetDims(source, pos); + + zoom(source); + } + + public void zoomOutStep(BoardEdit source, boolean fine) + { + Dimension dim = source.getSize(); + Dimension scaledDim = source.getSize(); + scaledDim.width *= (fine?1.01:1.1); + scaledDim.height *= (fine?1.01:1.1); + + Point pos = new Point(); + mClickedPos.x = (dim.width - scaledDim.width)/2; + mClickedPos.y = (dim.height - scaledDim.height)/2; + + pos.x = mClickedPos.x + scaledDim.width; + pos.y = mClickedPos.y + scaledDim.height; + + zoomSetDims(source, pos); + + zoom(source); + } + + public boolean onKeyEvent(BoardEdit source, KeyEvent event) + { + if(event.getID() != KeyEvent.KEY_PRESSED) + return false; + + int key = event.getKeyChar(); + + if(key == '+') + { + zoomInStep(source, event.isAltDown()); + + return true; + } + else if(key == '-') + { + zoomOutStep(source, event.isAltDown()); + + return true; + } + return false; + } + + public String getCommandString() + { + return LanguageResource.getString("ZOOMCMD_STR"); + } + +} \ No newline at end of file diff --git a/boardcad/commands/GhostCommand.java b/boardcad/commands/GhostCommand.java new file mode 100644 index 0000000..b3fbf59 --- /dev/null +++ b/boardcad/commands/GhostCommand.java @@ -0,0 +1,18 @@ +package boardcad.commands; + +import boardcad.i18n.LanguageResource; + +public class GhostCommand extends BrdInputCommand +{ + + public GhostCommand() + { + mCanUndo = false; + } + + public String getCommandString() + { + return LanguageResource.getString("GHOSTCMD_STR"); + } +} + diff --git a/boardcad/commands/NurbsEditCommand.java b/boardcad/commands/NurbsEditCommand.java new file mode 100644 index 0000000..028f081 --- /dev/null +++ b/boardcad/commands/NurbsEditCommand.java @@ -0,0 +1,46 @@ +package boardcad.commands; + +import board.NurbsBoard; +import boardcad.gui.jdk.BoardCAD; +import boardcad.gui.jdk.BoardHandler; +import boardcad.i18n.LanguageResource; + +public class NurbsEditCommand extends BrdCommand +{ + NurbsBoard oldBoard; + NurbsBoard newBoard; + BoardHandler board_handler; + + public NurbsEditCommand() + { + NurbsBoard board; + board_handler=BoardCAD.getInstance().getBoardHandler(); + board=board_handler.getActiveBoard(); + if(board!=null) + oldBoard = (NurbsBoard)board.clone(); + } + + public void execute() + { + NurbsBoard board; + board=board_handler.getActiveBoard(); + if(board!=null) + newBoard = (NurbsBoard)board.clone(); + super.execute(); + } + + public void redo() + { + board_handler.setActiveBoard(newBoard); + } + + public void undo() + { + board_handler.setActiveBoard(oldBoard); + } + + public String getCommandString() + { + return LanguageResource.getString("MACROCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/PointEditCommand.java b/boardcad/commands/PointEditCommand.java new file mode 100644 index 0000000..01a933b --- /dev/null +++ b/boardcad/commands/PointEditCommand.java @@ -0,0 +1,39 @@ +package boardcad.commands; + +import java.awt.geom.Point2D; + +import boardcad.i18n.LanguageResource; + +public class PointEditCommand extends BrdCommand +{ + Point2D.Double mEditedPoint; + Point2D.Double mOriginalPos; + Point2D.Double mNewPos; + + PointEditCommand(Point2D.Double point) + { + mEditedPoint = point; + mOriginalPos = (Point2D.Double)point.clone(); + } + + public void execute(Point2D.Double newPos) + { + mNewPos = (Point2D.Double)newPos.clone(); + redo(); + } + + public void redo() + { + mEditedPoint.setLocation(mNewPos); + } + + public void undo() + { + mEditedPoint.setLocation(mOriginalPos); + } + + public String getCommandString() + { + return LanguageResource.getString("MACROCMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/SetImageNoseCommand.java b/boardcad/commands/SetImageNoseCommand.java new file mode 100644 index 0000000..e1802b0 --- /dev/null +++ b/boardcad/commands/SetImageNoseCommand.java @@ -0,0 +1,29 @@ +package boardcad.commands; + +import java.awt.Point; +import java.awt.event.MouseEvent; + +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; + +public class SetImageNoseCommand extends BrdInputCommand +{ + + public SetImageNoseCommand() + { + mCanUndo = false; + } + + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + Point pos = event.getPoint(); + + source.adjustBackgroundImageNose(pos); + + } + + public String getCommandString() + { + return LanguageResource.getString("ADJUSTIMAGETONOSECMD_STR"); + } +} \ No newline at end of file diff --git a/boardcad/commands/SetImageTailCommand.java b/boardcad/commands/SetImageTailCommand.java new file mode 100644 index 0000000..7c5f359 --- /dev/null +++ b/boardcad/commands/SetImageTailCommand.java @@ -0,0 +1,30 @@ +package boardcad.commands; + +import java.awt.Point; +import java.awt.event.MouseEvent; + +import boardcad.gui.jdk.BoardEdit; +import boardcad.i18n.LanguageResource; + +public class SetImageTailCommand extends BrdInputCommand +{ + + public SetImageTailCommand() + { + mCanUndo = false; + } + + public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) + { + Point pos = event.getPoint(); + + source.adjustBackgroundImageTail(pos); + + } + + public String getCommandString() + { + return LanguageResource.getString("ADJUSTIMAGETOTAILCMD_STR"); + } + +} \ No newline at end of file diff --git a/boardcad/export/GCodeDraw.java b/boardcad/export/GCodeDraw.java index c142a48..f1b0691 100644 --- a/boardcad/export/GCodeDraw.java +++ b/boardcad/export/GCodeDraw.java @@ -1,5 +1,720 @@ package boardcad.export; -public class GCodeDraw { //TODO: implement using gcode writer +import java.awt.Color; +import java.awt.Stroke; +import java.awt.geom.AffineTransform; +import java.awt.geom.CubicCurve2D; +import java.awt.geom.Ellipse2D; +import java.awt.geom.GeneralPath; +import java.awt.geom.Line2D; +import java.awt.geom.PathIterator; +import java.awt.geom.Point2D; +import java.io.File; +import java.io.PrintStream; +import java.util.Arrays; +import java.util.Vector; +import cadcore.BezierCurve; +import cadcore.VecMath; +import boardcad.AbstractDraw; +import boardcad.FileTools; +import boardcam.writers.GCodeWriter; + +public class GCodeDraw extends AbstractDraw { + PrintStream mStream = null; + AffineTransform mTransform = new AffineTransform(); + + Vector mVerticies = new Vector(); + + GCodeWriter mGCodeWriter = new GCodeWriter(); + + double mToolDiameter; + double mCuttingDepth; + double mCuttingSpeed; + double mJogHeight; + double mJogSpeed; + double mSinkSpeed; + + boolean mFlipNormal = false; + + public GCodeDraw(String filename, double toolDiameter, double cuttingDepth, + double cuttingSpeed, double jogHeight, double jogSpeed, + double sinkSpeed) { + mTransform.setToIdentity(); + + mToolDiameter = toolDiameter; + mCuttingDepth = cuttingDepth; + mCuttingSpeed = cuttingSpeed; + mJogHeight = jogHeight; + mJogSpeed = jogSpeed; + mSinkSpeed = sinkSpeed; + + File file = new File(FileTools.setExtension(filename, "nc")); + + try { + mStream = new PrintStream(file); + } catch (Exception e) { + return; + } + + mGCodeWriter.writeComment(mStream, "G-Code Draw"); + + } + + public void writeComment(String comment) + { + mGCodeWriter.writeComment(mStream, comment); + } + + @Override + public void close() { + mGCodeWriter.writeEnd(mStream); + mStream.close(); + } + + public void setFlipNormal(boolean flip) { + mFlipNormal = flip; + } + + public void setCutterDiameter(double diam) { + mToolDiameter = diam; + } + + @Override + public void setColor(Color color) { + // Ignore color + + } + + @Override + public void setStroke(Stroke stroke) { + // Ignore stroke + + } + + @Override + public void transform(AffineTransform transform) { + mTransform.preConcatenate(transform); + } + + @Override + public void setTransform(AffineTransform transform) { + mTransform = transform; + } + + @Override + public AffineTransform getTransform() { + return mTransform; + } + + @Override + public void fill(Ellipse2D line) { + // Ignored + System.out.printf("Path fill not supported by GCodeDraw"); + + } + + @Override + public void fill(GeneralPath path) { + // Ignored + System.out.printf("Path fill not supported by GCodeDraw"); + } + + public void draw(GeneralPath path) { + Point2D.Double prevPoint = null; + Point2D.Double lastPoint = null; + Point2D.Double moveToPoint = null; + Point2D.Double afterMovePoint = null; + boolean isLastMoveTo = false; + + // System.out.printf("GCodeDraw draw Path\n"); + + double[] coords = new double[8]; + int segmentType; + + for (PathIterator it = path.getPathIterator(getTransform()); it + .isDone() == false; it.next()) { + segmentType = it.currentSegment(coords); + + switch (segmentType) { + + // The segment type constant for a point that specifies the starting + // location for a new subpath. + case PathIterator.SEG_MOVETO: { + // System.out.printf("Path SEG_MOVETO\n"); + + lastPoint = new Point2D.Double(coords[0], coords[1]); + moveToPoint = lastPoint; + isLastMoveTo = true; + + // Assuming there is only one close in path + prevPoint = getLastPointBeforeClose(path); + + } + break; + + // The segment type constant for a point that specifies the end + // point of a line to be drawn from the most recently specified + // point. + // NOTE: This will only work if the angle between lines is 90 + // degrees or more. Narrower angles will result in overshoot into + // the next line segment + case PathIterator.SEG_LINETO: { + // System.out.printf("Path SEG_LINETO\n"); + + Point2D.Double currentPoint = new Point2D.Double(coords[0], + coords[1]); + if (lastPoint.equals(currentPoint)) { + continue; + } + + // Assuming there is only one close in path + Point2D.Double nextPoint = getNextPoint(path, it); + if (currentPoint.equals(nextPoint)) { + continue; + } + + if (isLastMoveTo == true) // First cut after move + { + Point2D.Double startOffset = getCornerOffset(prevPoint, + lastPoint, currentPoint, mToolDiameter, mFlipNormal); + if (Double.isInfinite(startOffset.x) + || Double.isInfinite(startOffset.y)) + continue; + if (Double.isNaN(startOffset.x) || Double.isNaN(startOffset.y)) + continue; + + mGCodeWriter.writeSpeed(mStream, mJogSpeed); // Set jog + // speed + mGCodeWriter.writeZCoordinate(mStream, mJogHeight); // Jog + // height + + mGCodeWriter.writeCoordinate(mStream, lastPoint.getX() + + startOffset.x, lastPoint.getY() + startOffset.y, + mJogHeight); // Move to + mGCodeWriter.writeSpeed(mStream, mSinkSpeed); // Set sink + // speed + mGCodeWriter.writeCoordinate(mStream, lastPoint.getX() + + startOffset.x, lastPoint.getY() + startOffset.y, + mCuttingDepth); // Sink + + afterMovePoint = currentPoint; + } + + Point2D.Double currentOffset = getCornerOffset(lastPoint, + currentPoint, nextPoint, mToolDiameter, mFlipNormal); + if (Double.isInfinite(currentOffset.x) + || Double.isInfinite(currentOffset.y)) + continue; + if (Double.isNaN(currentOffset.x) || Double.isNaN(currentOffset.y)) + continue; + + Point2D.Double currentPointWithOffset = new Point2D.Double(); + VecMath.addVector(currentPoint, currentOffset, currentPointWithOffset); + + System.out.printf("pos x:%f y:%f final x:%f y:%f Offset x:%f y:%f\n", currentPoint.x, currentPoint.y, currentPointWithOffset.x, currentPointWithOffset.y, currentOffset.x, currentOffset.y); + + mGCodeWriter.writeSpeed(mStream, mCuttingSpeed); // Set cut + // speed + mGCodeWriter.writeCoordinate(mStream, currentPointWithOffset.x, currentPointWithOffset.y, mCuttingDepth); // Cut + + prevPoint = lastPoint; + lastPoint = currentPoint; + + isLastMoveTo = false; + } + break; + + // The segment type constant for the set of 3 points that specify a + // cubic parametric curve to be drawn from the most recently + // specified point. + case PathIterator.SEG_CUBICTO: { + // System.out.printf("Path SEG_CUBICTO\n"); + + CubicCurve2D curve = new CubicCurve2D.Double(lastPoint.getX(), + lastPoint.getY(), coords[0], coords[1], coords[2], + coords[3], coords[4], coords[5]); + BezierCurve bezier = new BezierCurve(curve.getX1(), + curve.getY1(), curve.getCtrlX1(), curve.getCtrlY1(), + curve.getCtrlX2(), curve.getCtrlY2(), curve.getX2(), + curve.getY2()); + + Point2D.Double startNormal = getCubicCurveStartNormal(curve); + + Point2D.Double startPos = bezier.getValue(0.0); + + if (isLastMoveTo == true) // First cut after move + { + Point2D.Double startOffset = getCornerOffset(prevPoint, + lastPoint, + new Point2D.Double(coords[0], coords[1]), + mToolDiameter, mFlipNormal); + + mGCodeWriter.writeSpeed(mStream, mJogSpeed); // Set jog + // speed + mGCodeWriter.writeZCoordinate(mStream, mJogHeight); // Lift + // to + // Jog + // height + + mGCodeWriter.writeCoordinate(mStream, startPos.getX() + + startOffset.x, startPos.getY() + startOffset.y, + mJogHeight); // Move to + mGCodeWriter.writeSpeed(mStream, mSinkSpeed); // Set sink + // speed + mGCodeWriter.writeCoordinate(mStream, startPos.getX() + + startOffset.x, startPos.getY() + startOffset.y, + mCuttingDepth); // Sink + + mGCodeWriter.writeSpeed(mStream, mCuttingSpeed); // Set cut + // speed + + afterMovePoint = new Point2D.Double(coords[0], coords[1]); + } + + double bezierLength = bezier.getLength() * 10.0; // convert to + // mm + + int steps = (int) bezierLength; + + for (int i = 0; i < steps; i++) { + double t = (double) i / (double) steps; + Point2D.Double pos = bezier.getValue(t); + + Point2D.Double perpendicularVec = bezier.getNormalVector(t); + + VecMath.scaleVector(perpendicularVec, mToolDiameter / 2.0); + + if (mFlipNormal) { + VecMath.scaleVector(perpendicularVec, -1.0); + } + + mGCodeWriter.writeCoordinate(mStream, pos.getX() + + perpendicularVec.x, pos.getY() + + perpendicularVec.y, mCuttingDepth); // Sink + + } + + prevPoint = new Point2D.Double(coords[2], coords[3]); + lastPoint = new Point2D.Double(coords[4], coords[5]); + + isLastMoveTo = false; + } + break; + + // The segment type constant for the pair of points that specify a + // quadratic parametric curve to be drawn from the most recently + // specified point. } + case PathIterator.SEG_QUADTO: { + // Unsupported + System.out.printf("Quad not supported by GCodeDraw\n"); + } + break; + + // The segment type constant that specifies that the preceding + // subpath should be closed by appending a line segment back to the + // point corresponding to the most recent SEG_MOVETO. + case PathIterator.SEG_CLOSE: { + // System.out.printf("Path SEG_CLOSE\n"); + + // Assuming there is only one move in the path + + Point2D.Double offset = getCornerOffset(lastPoint, moveToPoint, + afterMovePoint, mToolDiameter, mFlipNormal); + + mGCodeWriter.writeCoordinate(mStream, moveToPoint.getX() + + offset.x, moveToPoint.getY() + offset.y, + mCuttingDepth); // Cut + } + break; + } + + } + + // System.out.printf("GCodeDraw draw Path Ended\n"); + } + + @Override + public void draw(Line2D line) { + System.out.printf("GCodeDraw Draw Line\n"); + + Point2D startPoint = line.getP1(); + Point2D endPoint = line.getP2(); + + // Calculate normal vec to line + Point2D.Double perpendicularVec = getLineNormal(line); + VecMath.scaleVector(perpendicularVec, mToolDiameter / 2.0); + if (mFlipNormal) { + VecMath.scaleVector(perpendicularVec, -1.0); + } + + System.out.printf("Line start: %f, %f\n", startPoint.getX(), + startPoint.getY()); + System.out.printf("Line end: %f, %f\n", endPoint.getX(), + endPoint.getY()); + + System.out.printf("Offset: %f, %f\n", perpendicularVec.getX(), + perpendicularVec.getY()); + + mGCodeWriter.writeSpeed(mStream, mJogSpeed); // Set jog speed + mGCodeWriter.writeZCoordinate(mStream, mJogHeight); // Lift tool + // straight up for + // jog + + mGCodeWriter.writeCoordinate(mStream, startPoint.getX() + + perpendicularVec.x, startPoint.getY() + perpendicularVec.y, + mJogHeight); // Move to + mGCodeWriter.writeSpeed(mStream, mSinkSpeed); // Set sink speed + mGCodeWriter.writeCoordinate(mStream, startPoint.getX() + + perpendicularVec.x, startPoint.getY() + perpendicularVec.y, + mCuttingDepth); // Sink + mGCodeWriter.writeSpeed(mStream, mCuttingSpeed); // Set cut speed + mGCodeWriter.writeCoordinate(mStream, endPoint.getX() + + perpendicularVec.x, endPoint.getY() + perpendicularVec.y, + mCuttingDepth); // Cut + + mGCodeWriter.writeSpeed(mStream, mJogSpeed); // Set jog speed + mGCodeWriter.writeZCoordinate(mStream, mJogHeight); // Lift tool for jog + } + + @Override + public void draw(Ellipse2D elipse) { + // TODO Auto-generated method stub + + } + + @Override + public void draw(CubicCurve2D curve) { + + System.out.printf("GCodeDraw Draw Cubic Curve\n"); + + BezierCurve bezier = new BezierCurve(curve.getX1(), curve.getY1(), + curve.getCtrlX1(), curve.getCtrlY1(), curve.getCtrlX2(), + curve.getCtrlY2(), curve.getX2(), curve.getY2()); + + double bezierLength = bezier.getLength() * 10.0; // convert to mm + + int steps = (int) bezierLength; + + for (int i = 0; i < steps; i++) { + double t = (double) i / (double) steps; + Point2D.Double pos = bezier.getValue(t); + Point2D.Double perpendicularVec = bezier.getNormalVector(t); + VecMath.scaleVector(perpendicularVec, mToolDiameter / 2.0); + + if (mFlipNormal) { + VecMath.scaleVector(perpendicularVec, -1.0); + } + + if (i == 0) { + mGCodeWriter.writeSpeed(mStream, mJogSpeed); // Set jog speed + mGCodeWriter.writeZCoordinate(mStream, mJogHeight); // Lift tool + // straight + // up for + // jog + + mGCodeWriter.writeCoordinate(mStream, pos.getX() + + perpendicularVec.x, pos.getY() + perpendicularVec.y, + mJogHeight); // Move to + mGCodeWriter.writeSpeed(mStream, mSinkSpeed); // Set sink speed + } else { + mGCodeWriter.writeSpeed(mStream, mCuttingSpeed); // Set cut + // speed + } + + mGCodeWriter.writeCoordinate(mStream, pos.getX() + + perpendicularVec.x, pos.getY() + perpendicularVec.y, + mCuttingDepth); // Sink + + } + + mGCodeWriter.writeSpeed(mStream, mJogSpeed); // Set jog speed + mGCodeWriter.writeZCoordinate(mStream, mJogHeight); // Lift tool for jog + + } + + @Override + public void moveTo(Point2D point) { + System.out.printf("GCodeDraw moveTO\n"); + + mGCodeWriter.writeSpeed(mStream, mJogSpeed); // Set jog speed + mGCodeWriter.writeZCoordinate(mStream, mJogHeight); // Lift tool + // straight up for + // jog + + mGCodeWriter.writeCoordinate(mStream, point.getX(), point.getY(), + mJogHeight); // Move to + } + + Point2D.Double getLineNormal(Line2D line) { + Point2D startPoint = line.getP1(); + Point2D endPoint = line.getP2(); + + // Calculate normal vec to line + Point2D.Double perpendicularVec = new Point2D.Double(startPoint.getY() + - endPoint.getY(), endPoint.getX() - startPoint.getX()); // (-y,x) + // is + // perpendicular + VecMath.normalizeVector(perpendicularVec); + + return perpendicularVec; + } + + Point2D.Double getCubicCurveStartNormal(CubicCurve2D curve) { + Point2D startPoint = curve.getP1(); + Point2D endPoint = curve.getCtrlP1(); + + // Calculate normal vec to line + Point2D.Double perpendicularVec = new Point2D.Double(startPoint.getY() + - endPoint.getY(), endPoint.getX() - startPoint.getX()); // (-y,x) + // is + // perpendicular + VecMath.normalizeVector(perpendicularVec); + + return perpendicularVec; + } + + Point2D.Double getCubicCurveEndNormal(CubicCurve2D curve) { + Point2D startPoint = curve.getCtrlP2(); + Point2D endPoint = curve.getP2(); + + // Calculate normal vec to line + Point2D.Double perpendicularVec = new Point2D.Double(startPoint.getY() + - endPoint.getY(), endPoint.getX() - startPoint.getX()); // (-y,x) + // is + // perpendicular + VecMath.normalizeVector(perpendicularVec); + + return perpendicularVec; + } + + Point2D.Double getLastPointBeforeClose(GeneralPath path) { + Point2D.Double last = null; + + for (PathIterator it = path.getPathIterator(getTransform()); it + .isDone() == false; it.next()) { + + double[] coords = new double[8]; + int segmentType = it.currentSegment(coords); + + switch (segmentType) { + case PathIterator.SEG_MOVETO: + case PathIterator.SEG_LINETO: { + last = new Point2D.Double(coords[0], coords[1]); + } + break; + + case PathIterator.SEG_CUBICTO: { + last = new Point2D.Double(coords[4], coords[5]); + } + break; + + case PathIterator.SEG_CLOSE: + return last; + } + } + return null; + } + + Point2D.Double getNextPoint(GeneralPath path, PathIterator it) { + double[] coords = new double[8]; + int segmentType = it.currentSegment(coords); + + Point2D.Double lastMove = null; + + for (PathIterator tmp = path.getPathIterator(getTransform()); tmp + .isDone() == false; tmp.next()) { + double[] tmpCoords = new double[8]; + int tmpSegmentType = tmp.currentSegment(tmpCoords); + { + if (tmpSegmentType == PathIterator.SEG_MOVETO) { + lastMove = new Point2D.Double(tmpCoords[0], tmpCoords[1]); + } + + if (tmpSegmentType == segmentType + && Arrays.equals(coords, tmpCoords)) { + tmp.next(); + tmpSegmentType = tmp.currentSegment(coords); + + switch (tmpSegmentType) { + case PathIterator.SEG_MOVETO: + case PathIterator.SEG_LINETO: + case PathIterator.SEG_CUBICTO: { + Point2D.Double next = new Point2D.Double(coords[0], + coords[1]); + return next; + } + + case PathIterator.SEG_CLOSE: + return lastMove; + } + } + } + } + return null; + } + + Point2D.Double getCornerOffset(Point2D.Double start, Point2D.Double mid, + Point2D.Double end, double toolDiam, boolean flip) { + if (start == null) { + // Start of sequence, no previous point + Point2D.Double normal = new Point2D.Double(end.x -mid.x, mid.y - end.y); + VecMath.normalizeVector(normal); + return normal; + } + + //Point2D.Double a = new Point2D.Double(mid.x - start.x, mid.y - start.y); + //Point2D.Double b = new Point2D.Double(mid.x - end.x, mid.y - end.y); + + Point2D.Double an = new Point2D.Double(start.y - mid.y, mid.x - start.x); + Point2D.Double bn = new Point2D.Double(mid.y - end.y, end.x - mid.x ); + + Point2D.Double offsetVector = new Point2D.Double(); + //VecMath.addVector(a, b, offset); + VecMath.addVector(an, bn, offsetVector); + if (offsetVector.x == 0.0 && offsetVector.y == 0.0) + return offsetVector; + + VecMath.normalizeVector(offsetVector); + if (flip) { + VecMath.scaleVector(offsetVector, -1); + } + + //double angle = VecMath.getVecAngle(a, b); + //double offsetLength = toolDiam / Math.sin(angle / 2.0); + double angle = VecMath.getVecAngle(an, bn); + double offsetLength = toolDiam / Math.cos(angle / 2.0); + System.out.printf("angle:%f offsetLength:%f\n", angle/Math.PI*180.0, offsetLength); + + VecMath.scaleVector(offsetVector, offsetLength); + //System.out.printf("offsetVector %f,%f\n", offsetVector.x,offsetVector.y); + + return offsetVector; + } + + private boolean isPathClosed(GeneralPath path) { + + double[] coords = new double[8]; + + for (PathIterator it = path.getPathIterator(getTransform()); it + .isDone() == false; it.next()) { + int segmentType = it.currentSegment(coords); + + if (segmentType == PathIterator.SEG_CLOSE) { + return true; + } + + } + return false; + } + + private boolean isPathClosed(PathIterator it) { + double[] coords = new double[8]; + + for (; it.isDone() == false; it.next()) { + int segmentType = it.currentSegment(coords); + + if (segmentType == PathIterator.SEG_MOVETO) { + return false; + } + + if (segmentType == PathIterator.SEG_CLOSE) { + return true; + } + + } + return false; + } + + private Point2D.Double getLastPointBeforeClose(PathIterator it) { + double[] coords = new double[8]; + + Point2D.Double lastPoint = new Point2D.Double(); + + for (; it.isDone() == false; it.next()) { + int segmentType = it.currentSegment(coords); + + switch (segmentType) { + case PathIterator.SEG_LINETO: { + lastPoint.x = coords[0]; + lastPoint.y = coords[1]; + break; + } + case PathIterator.SEG_CUBICTO: { + lastPoint.x = coords[4]; + lastPoint.y = coords[5]; + break; + } + case PathIterator.SEG_CLOSE: { + return lastPoint; + } + default: { + break; // Not used + } + } + } + return null; + } + + private boolean isNextClose(PathIterator it) { + it.next(); + + if (it.isDone()) { + return false; + } + + double[] coords = new double[8]; + + int segmentType = it.currentSegment(coords); + + switch (segmentType) { + case PathIterator.SEG_CLOSE: { + return true; + } + default: { + return false; + } + } + } + + private Point2D.Double getNextPoint(PathIterator it) { + it.next(); + + if (it.isDone()) { + return null; + } + + double[] coords = new double[8]; + + Point2D.Double nextPoint = new Point2D.Double(); + + int segmentType = it.currentSegment(coords); + + switch (segmentType) { + + case PathIterator.SEG_LINETO: { + nextPoint.x = coords[0]; + nextPoint.y = coords[1]; + break; + } + case PathIterator.SEG_CUBICTO: { + nextPoint.x = coords[4]; + nextPoint.y = coords[5]; + break; + } + case PathIterator.SEG_CLOSE: { + // //Iterate backwards to find last move to + // for(; it.isDone() == false; it.previous()) + // { + // + // } + + return null; + } + default: { + return null; + } + } + return nextPoint; + } } diff --git a/boardcad/gui/jdk/AboutBox.java b/boardcad/gui/jdk/AboutBox.java index b896747..088012f 100644 --- a/boardcad/gui/jdk/AboutBox.java +++ b/boardcad/gui/jdk/AboutBox.java @@ -46,7 +46,7 @@ private void initialize() { private JTextArea getMText() { if (mText == null) { mText = new JTextArea(); - mText.setText(" BoardCAD v3.0.1 (February 23, 2015)\n \nProgramming by:\nJonas Hörnstein\nOla Helenius\nHåvard Nygård Jakobsen\nSven Wesley\n\nTranslation by:\nMocoloitam (Portugese)\nPere Antoni Comas (Spanish)\nStephen Kitchener (French)\nWouter Oosting (Dutch)\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses\n===================================================================\n Enjoy... "); + mText.setText(" BoardCAD v3.1 (Feb 1, 2011)\n \nProgramming by:\nJonas Hörnstein\nOla Helenius\nHåvard Nygård Jakobsen\nSven Wesley\n\nTranslation by:\nMocoloitam (Portugese)\nPere Antoni Comas (Spanish)\nStephen Kitchener (French)\nWouter Oosting (Dutch)\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses\n===================================================================\n Enjoy... "); mText.setEditable(false); mText.setBackground(Color.lightGray); mText.setFont(new Font("Dialog", Font.PLAIN, 14)); diff --git a/boardcad/gui/jdk/BezierBoardDrawUtil.java b/boardcad/gui/jdk/BezierBoardDrawUtil.java index 767f81c..2742c63 100644 --- a/boardcad/gui/jdk/BezierBoardDrawUtil.java +++ b/boardcad/gui/jdk/BezierBoardDrawUtil.java @@ -10,10 +10,11 @@ import cadcore.*; import cadcore.MathUtils.Function; import boardcad.*; +import boardcad.commands.BrdEditCommand; public class BezierBoardDrawUtil { - static final long serialVersionUID=1L; - + static final long serialVersionUID = 1L; + static public int FlipX = 0x01; static public int FlipY = 0x02; static public int MirrorX = 0x010; @@ -29,28 +30,25 @@ public class BezierBoardDrawUtil { static public final double SLIDING_CROSS_SECTION_MIN_LINE_LENGTH = 0.05; static public final double SLIDING_CROSS_SECTION_MAX_LINE_LENGTH = 1.0; static public final double SLIDING_CROSS_MIN_SPLIT = 0.00001; - static public final double S_BLEND_MIN_ANGLE = 2*(Math.PI/180.0) ; + static public final double S_BLEND_MIN_ANGLE = 2 * (Math.PI / 180.0); static public final double S_BLEND_MAX_LENGTH = 1.0; static public final double S_BLEND_MIN_LENGTH = 0.1; static public final double TUCK_UNDER_DEFINITION_ANGLE = 175.0; static public final double APEX_DEFINITION_ANGLE = 90; - static final Vector3d upVector = new Vector3d(0.0, 0.0, 1.0); - - //Shared variables so we don't need to pass them all the time - static double mMulX; - static double mMulY; - static BezierBoard mBrd; + static final Vector3d upVector = new Vector3d(0.0, 0.0, 1.0); + static final Vector3d downVector = new Vector3d(0.0, 0.0, 1.0); + // Shared variables so we don't need to pass them all the time + static BezierBoard mBrd; - public static GeneralPath makeBezierPathFromControlPoints(BezierSpline spline, boolean flipX, boolean flipY, boolean vertical, boolean reverse) - { - GeneralPath path = new GeneralPath(GeneralPath.WIND_EVEN_ODD); + public static GeneralPath makeBezierPathFromControlPoints(BezierSpline spline, boolean flipX, boolean flipY, boolean vertical, boolean reverse) { + GeneralPath path = new GeneralPath(Path2D.WIND_EVEN_ODD); - if(spline == null) + if (spline == null) return path; - if(spline.getNrOfControlPoints() == 0) + if (spline.getNrOfControlPoints() == 0) return path; double sx; @@ -68,321 +66,233 @@ public static GeneralPath makeBezierPathFromControlPoints(BezierSpline spline, b double ex; double ey; - + double tmp; - double mulX = flipX?-1:1; - double mulY= flipY?-1:1; + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; - if(reverse) - { + if (reverse) { - // Start + // Start sx = spline.getControlPoint(spline.getNrOfControlPoints() - 1).getEndPoint().x; sy = spline.getControlPoint(spline.getNrOfControlPoints() - 1).getEndPoint().y; - - if(vertical) - { + + if (vertical) { tmp = sx; sx = sy; - sy = tmp; + sy = tmp; } - + sx *= mulX; sy *= mulY; - - - path.moveTo((float)(sx),(float)(sy)); - - for(int i = spline.getNrOfControlPoints() - 1; i > 0; i--) { - - // Start control point + + path.moveTo((float) (sx), (float) (sy)); + + for (int i = spline.getNrOfControlPoints() - 1; i > 0; i--) { + + // Start control point scx = spline.getControlPoint(i).getTangentToPrev().x; scy = spline.getControlPoint(i).getTangentToPrev().y; - - // End control point - ecx = spline.getControlPoint(i-1).getTangentToNext().x; - ecy = spline.getControlPoint(i-1).getTangentToNext().y; - - // End point - ex = spline.getControlPoint(i-1).getEndPoint().x; - ey = spline.getControlPoint(i-1).getEndPoint().y; - - if(vertical) - { + + // End control point + ecx = spline.getControlPoint(i - 1).getTangentToNext().x; + ecy = spline.getControlPoint(i - 1).getTangentToNext().y; + + // End point + ex = spline.getControlPoint(i - 1).getEndPoint().x; + ey = spline.getControlPoint(i - 1).getEndPoint().y; + + if (vertical) { tmp = scx; scx = scy; scy = tmp; - + tmp = ecx; ecx = ecy; ecy = tmp; - + tmp = ex; ex = ey; ey = tmp; } - - path.curveTo((float)(scx*mulX), (float)(scy*mulY), (float)(ecx*mulX), (float)(ecy*mulY), (float)(ex*mulX), (float)(ey*mulY)); - - } - } - else - { - - // Start - sx = spline.getControlPoint(0).getEndPoint().x; - sy = spline.getControlPoint(0).getEndPoint().y; - - if(vertical) - { - tmp = sx; - sx = sy; - sy = tmp; - } - - sx *= mulX; - sy *= mulY; - - - path.moveTo((float)(sx),(float)(sy)); - - for(int i = 0; i < spline.getNrOfControlPoints()-1; i++) { - - // Start control point - scx = spline.getControlPoint(i).getTangentToNext().x; - scy = spline.getControlPoint(i).getTangentToNext().y; - - - - // End control point - ecx = spline.getControlPoint(i+1).getTangentToPrev().x; - ecy = spline.getControlPoint(i+1).getTangentToPrev().y; - - - - // End point - ex = spline.getControlPoint(i+1).getEndPoint().x; - ey = spline.getControlPoint(i+1).getEndPoint().y; - - if(vertical) - { - tmp = scx; - scx = scy; - scy = tmp; - - tmp = ecx; - ecx = ecy; - ecy = tmp; - - tmp = ex; - ex = ey; - ey = tmp; - } - - path.curveTo((float)(scx*mulX), (float)(scy*mulY), (float)(ecx*mulX), (float)(ecy*mulY), (float)(ex*mulX), (float)(ey*mulY)); - - } - } - return path; - } + path.curveTo((float) (scx * mulX), (float) (scy * mulY), (float) (ecx * mulX), (float) (ecy * mulY), (float) (ex * mulX), (float) (ey * mulY)); - public static void paintPath(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, GeneralPath path, boolean fill) - { - if(path == null) - return; + } + } else { - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + // Start + sx = spline.getControlPoint(0).getEndPoint().x; + sy = spline.getControlPoint(0).getEndPoint().y; - if(fill) - { - try{ - GeneralPath fillPath = (GeneralPath)path.clone(); - fillPath.closePath(); - d.setColor(Color.white); - d.fill(fillPath); - } - catch(java.awt.geom.IllegalPathStateException e) - { + if (vertical) { + tmp = sx; + sx = sy; + sy = tmp; } - } - d.setColor(color); + sx *= mulX; + sy *= mulY; - d.setStroke(stroke); + path.moveTo((float) (sx), (float) (sy)); - d.draw(path); + for (int i = 0; i < spline.getNrOfControlPoints() - 1; i++) { - d.setTransform(savedTransform); + // Start control point + scx = spline.getControlPoint(i).getTangentToNext().x; + scy = spline.getControlPoint(i).getTangentToNext().y; + + // End control point + ecx = spline.getControlPoint(i + 1).getTangentToPrev().x; + ecy = spline.getControlPoint(i + 1).getTangentToPrev().y; + + // End point + ex = spline.getControlPoint(i + 1).getEndPoint().x; + ey = spline.getControlPoint(i + 1).getEndPoint().y; + + if (vertical) { + tmp = scx; + scx = scy; + scy = tmp; + + tmp = ecx; + ecx = ecy; + ecy = tmp; + + tmp = ex; + ex = ey; + ey = tmp; + } + + path.curveTo((float) (scx * mulX), (float) (scy * mulY), (float) (ecx * mulX), (float) (ecy * mulY), (float) (ex * mulX), (float) (ey * mulY)); + + } + } + + return path; } - public static void paintPath(AbstractDraw d, double offsetX, double offsetY, double rotation, double scale, Color color, Stroke stroke, GeneralPath path, boolean fill) - { - if(path == null) + public static void paintPath(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, GeneralPath path, boolean fill) { + if (path == null) return; - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, rotation, scale); - - //Draw fill - if(fill) - { - try - { + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + + // Draw fill + if (fill) { + try { GeneralPath closedPath = new GeneralPath(path); closedPath.closePath(); d.setColor(Color.white); d.fill(closedPath); - } - catch(java.awt.geom.IllegalPathStateException e) - { - //Ignore empty path + } catch (java.awt.geom.IllegalPathStateException e) { + // Ignore empty path } } - - //Draw path + + // Draw path d.setColor(color); d.setStroke(stroke); d.draw(path); - - d.setTransform(savedTransform); + + resetTransform(d, savedTransform); } - public static void fillPath(AbstractDraw d, double offsetX, double offsetY, double rotation, double scale, Color color, Stroke stroke, GeneralPath path) - { - if(path == null) + public static void fillPath(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, GeneralPath path) { + if (path == null) return; d.setColor(color); d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, rotation, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); d.fill(path); - - d.setTransform(savedTransform); - } - public static void paintBezierSpline(AbstractDraw d, double offsetX, + resetTransform(d, savedTransform); + } - double offsetY, double scale, Color color, Stroke stroke, BezierSpline mPoints, int DrawControl, boolean fill) - { - if(mPoints == null) + public static void paintBezierSpline(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierSpline mPoints, int DrawControl, boolean fill) { + if (mPoints == null) return; - GeneralPath path = makeBezierPathFromControlPoints(mPoints, (DrawControl&BezierBoardDrawUtil.FlipX)!=0, (DrawControl&BezierBoardDrawUtil.FlipY)!=0, (DrawControl&BezierBoardDrawUtil.Vertical)!=0, false); - paintPath(d, offsetX, offsetY, scale, color, stroke, path, fill); + GeneralPath path = makeBezierPathFromControlPoints(mPoints, (DrawControl & BezierBoardDrawUtil.FlipX) != 0, (DrawControl & BezierBoardDrawUtil.FlipY) != 0, + (DrawControl & BezierBoardDrawUtil.Vertical) != 0, false); + paintPath(d, offsetX, offsetY, scale, rotation, color, stroke, path, fill); - if((DrawControl&BezierBoardDrawUtil.MirrorX)!=0) - { - path = makeBezierPathFromControlPoints(mPoints, !((DrawControl&BezierBoardDrawUtil.FlipX)!=0), (DrawControl&BezierBoardDrawUtil.FlipY)!=0, (DrawControl&BezierBoardDrawUtil.Vertical)!=0, false); - paintPath(d, offsetX, offsetY, scale, color, stroke, path, fill); + if ((DrawControl & BezierBoardDrawUtil.MirrorX) != 0) { + path = makeBezierPathFromControlPoints(mPoints, !((DrawControl & BezierBoardDrawUtil.FlipX) != 0), (DrawControl & BezierBoardDrawUtil.FlipY) != 0, + (DrawControl & BezierBoardDrawUtil.Vertical) != 0, false); + paintPath(d, offsetX, offsetY, scale, rotation, color, stroke, path, fill); } - if((DrawControl&BezierBoardDrawUtil.MirrorY)!=0) - { - path = makeBezierPathFromControlPoints(mPoints, (DrawControl&BezierBoardDrawUtil.FlipX)!=0, !((DrawControl&BezierBoardDrawUtil.FlipY)!=0), (DrawControl&BezierBoardDrawUtil.Vertical)!=0, false); - paintPath(d, offsetX, offsetY, scale, color, stroke, path, fill); + if ((DrawControl & BezierBoardDrawUtil.MirrorY) != 0) { + path = makeBezierPathFromControlPoints(mPoints, (DrawControl & BezierBoardDrawUtil.FlipX) != 0, !((DrawControl & BezierBoardDrawUtil.FlipY) != 0), + (DrawControl & BezierBoardDrawUtil.Vertical) != 0, false); + paintPath(d, offsetX, offsetY, scale, rotation, color, stroke, path, fill); } } - public static void paintBezierSplines(AbstractDraw d, double offsetX, - - double offsetY, double scale, Color color, Stroke stroke, BezierSpline[] splines, int DrawControl, boolean fill) - { - if(splines == null) + public static void paintBezierSplines(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierSpline[] splines, int DrawControl, + boolean fill) { + if (splines == null) return; - + GeneralPath path = new GeneralPath(); - for(int i = 0; i < splines.length; i++) - { - GeneralPath tmp = makeBezierPathFromControlPoints(splines[i], (DrawControl&BezierBoardDrawUtil.FlipX)!=0, (DrawControl&BezierBoardDrawUtil.FlipY)!=0, (DrawControl&BezierBoardDrawUtil.Vertical)!=0, i%2!=0); + for (int i = 0; i < splines.length; i++) { + GeneralPath tmp = makeBezierPathFromControlPoints(splines[i], (DrawControl & BezierBoardDrawUtil.FlipX) != 0, (DrawControl & BezierBoardDrawUtil.FlipY) != 0, + (DrawControl & BezierBoardDrawUtil.Vertical) != 0, i % 2 != 0); path.append(tmp.getPathIterator(null), true); } - paintPath(d, offsetX, offsetY, 0.0, scale, color, stroke, path, fill); - - if((DrawControl&BezierBoardDrawUtil.MirrorX)!=0) - { + paintPath(d, offsetX, offsetY, scale, 0.0, color, stroke, path, fill); + + if ((DrawControl & BezierBoardDrawUtil.MirrorX) != 0) { path.reset(); - - for(int i = 0; i < splines.length; i++) - { - GeneralPath tmp = makeBezierPathFromControlPoints(splines[i], !((DrawControl&BezierBoardDrawUtil.FlipX)!=0), (DrawControl&BezierBoardDrawUtil.FlipY)!=0, (DrawControl&BezierBoardDrawUtil.Vertical)!=0, i%2!=0); + + for (int i = 0; i < splines.length; i++) { + GeneralPath tmp = makeBezierPathFromControlPoints(splines[i], !((DrawControl & BezierBoardDrawUtil.FlipX) != 0), (DrawControl & BezierBoardDrawUtil.FlipY) != 0, + (DrawControl & BezierBoardDrawUtil.Vertical) != 0, i % 2 != 0); path.append(tmp.getPathIterator(null), true); } - paintPath(d, offsetX, offsetY, 0.0, scale, color, stroke, path, fill); + paintPath(d, offsetX, offsetY, scale, 0.0, color, stroke, path, fill); } - if((DrawControl&BezierBoardDrawUtil.MirrorY)!=0) - { + if ((DrawControl & BezierBoardDrawUtil.MirrorY) != 0) { path.reset(); - for(int i = 0; i < splines.length; i++) - { - GeneralPath tmp = makeBezierPathFromControlPoints(splines[i], (DrawControl&BezierBoardDrawUtil.FlipX)!=0, !((DrawControl&BezierBoardDrawUtil.FlipY)!=0), (DrawControl&BezierBoardDrawUtil.Vertical)!=0, i%2!=0); + for (int i = 0; i < splines.length; i++) { + GeneralPath tmp = makeBezierPathFromControlPoints(splines[i], (DrawControl & BezierBoardDrawUtil.FlipX) != 0, !((DrawControl & BezierBoardDrawUtil.FlipY) != 0), + (DrawControl & BezierBoardDrawUtil.Vertical) != 0, i % 2 != 0); path.append(tmp.getPathIterator(null), true); } - paintPath(d, offsetX, offsetY, 0.0, scale, color, stroke, path, fill); + paintPath(d, offsetX, offsetY, scale, 0.0, color, stroke, path, fill); } } - public static void paintBezierSpline(AbstractDraw d, double offsetX, - - double offsetY, double rotation, double scale, Color color, Stroke stroke, BezierSpline mPoints, int DrawControl, boolean fill) - { - if(mPoints == null) - return; - - d.setColor(color); - - d.setStroke(stroke); - - //DEBUG -//AffineTransform savedTransform = setTransform(d, offsetX, offsetY, rotation, scale); -//d.draw(new Line2D.Double(0,0,0,0)); -//d.setTransform(savedTransform); - - GeneralPath path = makeBezierPathFromControlPoints(mPoints, (DrawControl&BezierBoardDrawUtil.FlipX)!=0, (DrawControl&BezierBoardDrawUtil.FlipY)!=0, (DrawControl&BezierBoardDrawUtil.Vertical)!=0, false); - paintPath(d, offsetX, offsetY, rotation, scale, color, stroke, path, fill); - - if((DrawControl&BezierBoardDrawUtil.MirrorX)!=0) - { - path = makeBezierPathFromControlPoints(mPoints, !((DrawControl&BezierBoardDrawUtil.FlipX)!=0), (DrawControl&BezierBoardDrawUtil.FlipY)!=0, (DrawControl&BezierBoardDrawUtil.Vertical)!=0, false); - paintPath(d, offsetX, offsetY, rotation, scale, color, stroke, path, fill); - } - - if((DrawControl&BezierBoardDrawUtil.MirrorY)!=0) - { - path = makeBezierPathFromControlPoints(mPoints, (DrawControl&BezierBoardDrawUtil.FlipX)!=0, !((DrawControl&BezierBoardDrawUtil.FlipY)!=0), (DrawControl&BezierBoardDrawUtil.Vertical)!=0, false); - paintPath(d, offsetX, offsetY, rotation, scale, color, stroke, path, fill); - } - } - - public static void paintBezierControlPoints(AbstractDraw d, double offsetX, - - double offsetY, double scale, Stroke stroke, BezierSpline mPoints, ArrayList mSelectedControlPoints, boolean flipX, boolean flipY) - { - if(mPoints == null) + public static void paintBezierControlPoints(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Stroke stroke, BezierSpline mPoints, + ArrayList mSelectedControlPoints, boolean flipX, boolean flipY) { + if (mPoints == null) return; double selectedCircleSize = BoardCAD.getInstance().getSelectedControlPointSize(); double unselectedCircleSize = BoardCAD.getInstance().getUnselectedControlPointSize(); - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); - double cpx,cpy,kx,ky,cnx,cny; + double cpx, cpy, kx, ky, cnx, cny; Line2D line = new Line2D.Double(); Ellipse2D circle = new Ellipse2D.Double(); Color selControlPointColor = BoardCAD.getInstance().getSelectedCenterControlPointColor(); - Color selTan1Color = (mSelectedControlPoints != null && mSelectedControlPoints.size() == 1)?BoardCAD.getInstance().getSelectedTangent1ControlPointColor():selControlPointColor; - Color selTan2Color = (mSelectedControlPoints != null && mSelectedControlPoints.size() == 1)?BoardCAD.getInstance().getSelectedTangent2ControlPointColor():selControlPointColor; + Color selTan1Color = (mSelectedControlPoints != null && mSelectedControlPoints.size() == 1) ? BoardCAD.getInstance().getSelectedTangent1ControlPointColor() : selControlPointColor; + Color selTan2Color = (mSelectedControlPoints != null && mSelectedControlPoints.size() == 1) ? BoardCAD.getInstance().getSelectedTangent2ControlPointColor() : selControlPointColor; Color selOutControlPointColor = BoardCAD.getInstance().getSelectedOutlineCenterControlPointColor(); - Color selOutTan1Color = (mSelectedControlPoints != null && mSelectedControlPoints.size() == 1)?BoardCAD.getInstance().getSelectedOutlineTangent1ControlPointColor():selControlPointColor; - Color selOutTan2Color = (mSelectedControlPoints != null && mSelectedControlPoints.size() == 1)?BoardCAD.getInstance().getSelectedOutlineTangent2ControlPointColor():selControlPointColor; + Color selOutTan1Color = (mSelectedControlPoints != null && mSelectedControlPoints.size() == 1) ? BoardCAD.getInstance().getSelectedOutlineTangent1ControlPointColor() : selControlPointColor; + Color selOutTan2Color = (mSelectedControlPoints != null && mSelectedControlPoints.size() == 1) ? BoardCAD.getInstance().getSelectedOutlineTangent2ControlPointColor() : selControlPointColor; Color unselControlPointColor = BoardCAD.getInstance().getUnselectedCenterControlPointColor(); Color unselTan1Color = BoardCAD.getInstance().getUnselectedTangent1ControlPointColor(); @@ -397,429 +307,391 @@ public static void paintBezierControlPoints(AbstractDraw d, double offsetX, boolean isControlPointSelected = false; int whichControlPointSelected = -1; - for(int i = 0; i < mPoints.getNrOfControlPoints(); i++) { + for (int i = 0; i < mPoints.getNrOfControlPoints(); i++) { BezierKnot currentControlPoint = mPoints.getControlPoint(i); isControlPointSelected = mSelectedControlPoints != null && mSelectedControlPoints.contains(currentControlPoint); - if(isControlPointSelected && mSelectedControlPoints.size() == 1 && BoardCAD.getInstance().getCurrentCommand().getClass().getName().compareTo(BrdEditCommand.class.getName())==0) - { - whichControlPointSelected = ((BrdEditCommand)BoardCAD.getInstance().getCurrentCommand()).mWhich; - } - else - { + if (isControlPointSelected && mSelectedControlPoints.size() == 1 && BoardCAD.getInstance().getCurrentCommand().getClass().getName().compareTo(BrdEditCommand.class.getName()) == 0) { + whichControlPointSelected = ((BrdEditCommand) BoardCAD.getInstance().getCurrentCommand()).getWhich(); + } else { whichControlPointSelected = -1; } - -// ControlPoint + + // ControlPoint kx = currentControlPoint.getEndPoint().x; ky = currentControlPoint.getEndPoint().y; -// control to previous + // control to previous cpx = currentControlPoint.getTangentToPrev().x; cpy = currentControlPoint.getTangentToPrev().y; -// next control point + // next control point cnx = currentControlPoint.getTangentToNext().x; cny = currentControlPoint.getTangentToNext().y; -// ControlPoint + // ControlPoint d.setStroke(stroke); - if(whichControlPointSelected==0 || (mSelectedControlPoints != null && mSelectedControlPoints.size() > 1 && mSelectedControlPoints.contains(currentControlPoint))) - { - circle.setFrameFromCenter(kx*mulX, ky*mulY, (kx*mulX)+(selectedCircleSize/scale), (ky*mulY)+(selectedCircleSize/scale)); + if (whichControlPointSelected == 0 || (mSelectedControlPoints != null && mSelectedControlPoints.size() > 1 && mSelectedControlPoints.contains(currentControlPoint))) { + circle.setFrameFromCenter(kx * mulX, ky * mulY, (kx * mulX) + (selectedCircleSize / scale), (ky * mulY) + (selectedCircleSize / scale)); d.setColor(selControlPointColor); d.fill(circle); d.setColor(selOutControlPointColor); - d.draw(circle); - } - else - { - circle.setFrameFromCenter(kx*mulX, ky*mulY, (kx*mulX)+(unselectedCircleSize/scale), (ky*mulY)+(unselectedCircleSize/scale)); + d.draw(circle); + } else { + circle.setFrameFromCenter(kx * mulX, ky * mulY, (kx * mulX) + (unselectedCircleSize / scale), (ky * mulY) + (unselectedCircleSize / scale)); d.setColor(unselControlPointColor); d.fill(circle); d.setColor(unselOutControlPointColor); - d.draw(circle); + d.draw(circle); } - // Previous - if(i !=0) - { - d.setColor(isControlPointSelected?selectedTangentColor:unselectedTangentColor); + // Previous + if (i != 0) { + d.setColor(isControlPointSelected ? selectedTangentColor : unselectedTangentColor); d.setStroke(stroke); - line.setLine(cpx*mulX, cpy*mulY, kx*mulX, ky*mulY); + line.setLine(cpx * mulX, cpy * mulY, kx * mulX, ky * mulY); d.draw(line); - if(whichControlPointSelected==1) - { - circle.setFrameFromCenter(cpx*mulX, cpy*mulY, (cpx*mulX)+(selectedCircleSize/scale), (cpy*mulY)+(selectedCircleSize/scale)); + if (whichControlPointSelected == 1) { + circle.setFrameFromCenter(cpx * mulX, cpy * mulY, (cpx * mulX) + (selectedCircleSize / scale), (cpy * mulY) + (selectedCircleSize / scale)); d.setColor(selTan1Color); d.fill(circle); d.setColor(selOutTan1Color); - d.draw(circle); - } - else - { - circle.setFrameFromCenter(cpx*mulX, cpy*mulY, (cpx*mulX)+(unselectedCircleSize/scale), (cpy*mulY)+(unselectedCircleSize/scale)); + d.draw(circle); + } else { + circle.setFrameFromCenter(cpx * mulX, cpy * mulY, (cpx * mulX) + (unselectedCircleSize / scale), (cpy * mulY) + (unselectedCircleSize / scale)); d.setColor(unselTan1Color); d.fill(circle); d.setColor(unselOutTan1Color); - d.draw(circle); + d.draw(circle); } } - if(i != mPoints.getNrOfControlPoints()-1) - { - d.setColor(isControlPointSelected?selectedTangentColor:unselectedTangentColor); + if (i != mPoints.getNrOfControlPoints() - 1) { + d.setColor(isControlPointSelected ? selectedTangentColor : unselectedTangentColor); d.setStroke(stroke); - line.setLine(kx*mulX, ky*mulY, cnx*mulX, cny*mulY); + line.setLine(kx * mulX, ky * mulY, cnx * mulX, cny * mulY); d.draw(line); - if(whichControlPointSelected==2) - { - circle.setFrameFromCenter(cnx*mulX, cny*mulY, (cnx*mulX)+(selectedCircleSize/scale), (cny*mulY)+(selectedCircleSize/scale)); + if (whichControlPointSelected == 2) { + circle.setFrameFromCenter(cnx * mulX, cny * mulY, (cnx * mulX) + (selectedCircleSize / scale), (cny * mulY) + (selectedCircleSize / scale)); d.setColor(selTan2Color); d.fill(circle); d.setColor(selOutTan2Color); - d.draw(circle); - } - else - { - circle.setFrameFromCenter(cnx*mulX, cny*mulY, (cnx*mulX)+(unselectedCircleSize/scale), (cny*mulY)+(unselectedCircleSize/scale)); + d.draw(circle); + } else { + circle.setFrameFromCenter(cnx * mulX, cny * mulY, (cnx * mulX) + (unselectedCircleSize / scale), (cny * mulY) + (unselectedCircleSize / scale)); d.setColor(unselTan2Color); d.fill(circle); d.setColor(unselOutTan2Color); - d.draw(circle); + d.draw(circle); } } } - - d.setTransform(savedTransform); + resetTransform(d, savedTransform); } - public static void paintBezierControlPoints(AbstractDraw d, double offsetX, - - double offsetY, double scale, Stroke stroke, BezierSpline[] splines, ArrayList mSelectedControlPoints, boolean flipX, boolean flipY) - { - if(splines == null) + public static void paintBezierControlPoints(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Stroke stroke, BezierSpline[] splines, + ArrayList mSelectedControlPoints, boolean flipX, boolean flipY) { + if (splines == null) return; - - for(int i = 0; i < splines.length; i++) - { - paintBezierControlPoints( d, offsetX, offsetY, scale, stroke, splines[i], mSelectedControlPoints, flipX, flipY); + + for (int i = 0; i < splines.length; i++) { + paintBezierControlPoints(d, offsetX, offsetY, scale, rotation, stroke, splines[i], mSelectedControlPoints, flipX, flipY); } - - } - public static void paintGuidePoints(AbstractDraw d, double offsetX, + } - double offsetY, double scale, Color color, Stroke stroke, ArrayList guidePoints, boolean flipX, boolean flipY) - { + public static void paintGuidePoints(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, ArrayList guidePoints, + boolean flipX, boolean flipY) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, rotation); d.setColor(BoardCAD.getInstance().getGuidePointColor()); - d.setStroke(new BasicStroke((float)(BoardCAD.getInstance().getGuidePointThickness()/scale))); + d.setStroke(new BasicStroke((float) (BoardCAD.getInstance().getGuidePointThickness() / scale))); - double crossSize = 4.0f/scale; + double crossSize = 4.0f / scale; - double mulX = (flipX?-1.0:1.0); - double mulY = (flipY?-1.0:1.0); + double mulX = (flipX ? -1.0 : 1.0); + double mulY = (flipY ? -1.0 : 1.0); Line2D.Double line = new Line2D.Double(); - Point2D.Double pos = new Point2D.Double();; - for(int i = 0; i < guidePoints.size(); i++) - { + Point2D.Double pos = new Point2D.Double(); + ; + for (int i = 0; i < guidePoints.size(); i++) { pos.setLocation(guidePoints.get(i)); - line.setLine((pos.x-crossSize)*mulX, (pos.y)*mulY, (pos.x+crossSize)*mulX, (pos.y)*mulY); + line.setLine((pos.x - crossSize) * mulX, (pos.y) * mulY, (pos.x + crossSize) * mulX, (pos.y) * mulY); d.draw(line); - line.setLine((pos.x)*mulX, (pos.y-crossSize)*mulY, (pos.x)*mulX, (pos.y+crossSize)*mulY); + line.setLine((pos.x) * mulX, (pos.y - crossSize) * mulY, (pos.x) * mulX, (pos.y + crossSize) * mulY); d.draw(line); } - d.setTransform(savedTransform); + resetTransform(d, savedTransform); } - public static void paintFins(AbstractDraw d, double offsetX, + public static void paintFins(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, double[] finCoords, boolean flipX, boolean flipY) { + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, rotation); - double offsetY, double scale, Color color, Stroke stroke, double[] finCoords, boolean flipX, boolean flipY) - { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); - - double mulX = (flipX)?-1:1; - double mulY = (flipY)?-1:1; + double mulX = (flipX) ? -1 : 1; + double mulY = (flipY) ? -1 : 1; d.setColor(color); d.setStroke(stroke); -// x, y for back of fin, x,y for front of fin, bac of center, front of center, depth of center, depth of sidefin, splay angle + // x, y for back of fin, x,y for front of fin, bac of center, front of + // center, depth of center, depth of sidefin, splay angle final Line2D tmp = new Line2D.Double(); - tmp.setLine(finCoords[0]*mulX,finCoords[1]*mulY,finCoords[2]*mulX,finCoords[3]*mulY); + tmp.setLine(finCoords[0] * mulX, finCoords[1] * mulY, finCoords[2] * mulX, finCoords[3] * mulY); d.draw(tmp); - tmp.setLine(finCoords[0]*mulX,-finCoords[1]*mulY,finCoords[2]*mulX,-finCoords[3]*mulY); + tmp.setLine(finCoords[0] * mulX, -finCoords[1] * mulY, finCoords[2] * mulX, -finCoords[3] * mulY); d.draw(tmp); - tmp.setLine(finCoords[5]*mulX,0,finCoords[4]*mulX,0); + tmp.setLine(finCoords[5] * mulX, 0, finCoords[4] * mulX, 0); d.draw(tmp); - d.setTransform(savedTransform); + resetTransform(d, savedTransform); } public static void paintCircle(AbstractDraw d, double offsetX, - double offsetY, double scale, Color color, Stroke stroke, Point2D.Double pos, boolean flipX, boolean flipY) - { + double offsetY, double scale, double rotation, Color color, Stroke stroke, Point2D.Double pos, boolean flipX, boolean flipY) { double circleSize = 3.0; - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); Ellipse2D circle = new Ellipse2D.Double(); d.setColor(color); d.setStroke(stroke); - circle.setFrameFromCenter(pos.x*mulX, pos.y*mulY, (pos.x*mulX)+(circleSize/scale), (pos.y*mulY)+(circleSize/scale)); + circle.setFrameFromCenter(pos.x * mulX, pos.y * mulY, (pos.x * mulX) + (circleSize / scale), (pos.y * mulY) + (circleSize / scale)); d.draw(circle); - d.setTransform(savedTransform); + resetTransform(d, savedTransform); } - public static void paintGrid(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, double verticalToCover, double horizontalToCover, boolean flipX, boolean flipY) - { + public static void paintGrid(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, double verticalToCover, double horizontalToCover, boolean flipX, + boolean flipY) { - switch(UnitUtils.getCurrentUnit()) - { + switch (UnitUtils.getCurrentUnit()) { case UnitUtils.CENTIMETERS: case UnitUtils.MILLIMETERS: - paintGridMetric(d, offsetX, offsetY, scale, color, verticalToCover, horizontalToCover, flipX, flipY); + paintGridMetric(d, offsetX, offsetY, scale, rotation, color, verticalToCover, horizontalToCover, flipX, flipY); break; case UnitUtils.INCHES: case UnitUtils.INCHES_DECIMAL: - paintGridImperial(d, offsetX, offsetY, scale, color, verticalToCover, horizontalToCover, flipX, flipY); + paintGridImperial(d, offsetX, offsetY, scale, rotation, color, verticalToCover, horizontalToCover, flipX, flipY); break; } } - private static void paintGridMetric(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, double verticalToCover, double horizontalToCover, boolean flipX, boolean flipY) - { + private static void paintGridMetric(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, double verticalToCover, double horizontalToCover, boolean flipX, + boolean flipY) { - int verticalLines = (int)verticalToCover + 1; - verticalLines += 10 - verticalLines%10; - int horizontalLines = (int)horizontalToCover + 1; - horizontalLines += 10 - horizontalLines%10; + int verticalLines = (int) verticalToCover + 1; + verticalLines += 10 - verticalLines % 10; + int horizontalLines = (int) horizontalToCover + 1; + horizontalLines += 10 - horizontalLines % 10; - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); Line2D line = new Line2D.Double(); - for(int i = 0; i < verticalLines+1; i++) - { + for (int i = 0; i < verticalLines + 1; i++) { setMetricGridLineStrokeAndColor(d, color, i, scale); - line.setLine(i*1.0*mulX, 0*mulY, i*1.0*mulX, horizontalLines*1.0*mulY); + line.setLine(i * 1.0 * mulX, 0 * mulY, i * 1.0 * mulX, horizontalLines * 1.0 * mulY); d.draw(line); } - for(int i = 0; i < horizontalLines+1; i++) - { + for (int i = 0; i < horizontalLines + 1; i++) { setMetricGridLineStrokeAndColor(d, color, i, scale); - line.setLine(0*mulX, i*1.0*mulY, verticalLines*1.0*mulX, i*1.0*mulY); + line.setLine(0 * mulX, i * 1.0 * mulY, verticalLines * 1.0 * mulX, i * 1.0 * mulY); d.draw(line); } - d.setTransform(savedTransform); + resetTransform(d, savedTransform); } - private static void paintGridImperial(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, double verticalToCover, double horizontalToCover, boolean flipX, boolean flipY) { + private static void paintGridImperial(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, double verticalToCover, double horizontalToCover, boolean flipX, + boolean flipY) { - int verticalLines = (int)(verticalToCover/UnitUtils.INCH) + 1; - verticalLines += 6 - verticalLines%6; - int horizontalLines = (int)(horizontalToCover/UnitUtils.INCH) + 1; - horizontalLines += 6 - horizontalLines%6; + int verticalLines = (int) (verticalToCover / UnitUtils.INCH) + 1; + verticalLines += 6 - verticalLines % 6; + int horizontalLines = (int) (horizontalToCover / UnitUtils.INCH) + 1; + horizontalLines += 6 - horizontalLines % 6; - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); Line2D line = new Line2D.Double(); - for(int i = 0; i < verticalLines+1; i++) - { + for (int i = 0; i < verticalLines + 1; i++) { setImperialGridLineStrokeAndColor(d, color, i, scale); - line.setLine(i*2.54*mulX, 0*mulY, i*2.54*mulX, horizontalLines*2.54*mulY); + line.setLine(i * 2.54 * mulX, 0 * mulY, i * 2.54 * mulX, horizontalLines * 2.54 * mulY); d.draw(line); } - for(int i = 0; i < horizontalLines+1; i++) - { + for (int i = 0; i < horizontalLines + 1; i++) { setImperialGridLineStrokeAndColor(d, color, i, scale); - line.setLine(0*mulX, i*2.54*mulY, verticalLines*2.54*mulX, i*2.54*mulY); + line.setLine(0 * mulX, i * 2.54 * mulY, verticalLines * 2.54 * mulX, i * 2.54 * mulY); d.draw(line); } - d.setTransform(savedTransform); + resetTransform(d, savedTransform); } - public static void paintCurvature(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierSpline bezierSpline, boolean flipX, boolean flipY, double curvature_scale) - { - if(bezierSpline == null) + public static void paintCurvature(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierSpline bezierSpline, boolean flipX, + boolean flipY, double curvature_scale) { + if (bezierSpline == null) return; d.setColor(color); d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); - for(int i = 0; i < bezierSpline.getNrOfCurves(); i++) - { - paintCurvatureByT(d, bezierSpline.getCurve(i), 0,1, flipX, flipY, curvature_scale); + for (int i = 0; i < bezierSpline.getNrOfCurves(); i++) { + paintCurvatureByT(d, bezierSpline.getCurve(i), 0, 1, flipX, flipY, curvature_scale); } + // paintCurvatureByPos( 0,bezierPath.getMaxX(), flipX, + // flipY,curvature_scale); - -// paintCurvatureByPos( 0,bezierPath.getMaxX(), flipX, flipY,curvature_scale); - - - resetTransform(d,savedTransform); + resetTransform(d, savedTransform); } - public static void paintCurvature(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierSpline[] splines, boolean flipX, boolean flipY, double curvature_scale) - { - if(splines == null) + public static void paintCurvature(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierSpline[] splines, boolean flipX, boolean flipY, + double curvature_scale) { + if (splines == null) return; - - for(int i = 0; i < splines.length; i++) - { - paintCurvature(d, offsetX, offsetY, scale, color, stroke, splines[i], flipX, flipY, curvature_scale) ; + + for (int i = 0; i < splines.length; i++) { + paintCurvature(d, offsetX, offsetY, scale, rotation, color, stroke, splines[i], flipX, flipY, curvature_scale); } - + } - - public static void paintVolumeDistribution(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY, double graph_scale) - { - if(brd == null) + public static void paintVolumeDistribution(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipX, + boolean flipY, double graph_scale) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setColor(color); d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; int segments = 20; - double step = brd.getLength()/segments; + double step = brd.getLength() / segments; double lastVol = brd.getCrossSectionAreaAt(0, 8); - for(int i = 1; i <= segments; i++) - { - double currentVol = brd.getCrossSectionAreaAt(i*step, 8); + for (int i = 1; i <= segments; i++) { + double currentVol = brd.getCrossSectionAreaAt(i * step, 8); - ls.setLine((i-1)*step*mulX, lastVol*mulY*graph_scale, i*step*mulX, currentVol*mulY*graph_scale); + ls.setLine((i - 1) * step * mulX, lastVol * mulY * graph_scale, i * step * mulX, currentVol * mulY * graph_scale); d.draw(ls); - + lastVol = currentVol; } - - resetTransform(d,savedTransform); + resetTransform(d, savedTransform); } - - public static void paintOutlineFlowLines(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) - { - if(brd == null) + + public static void paintOutlineFlowLines(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setColor(color); d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; int segments = 10; - + GeneralPath path = new GeneralPath(); - for(int j = 0; j < 3; j++) - { + for (int j = 0; j < 3; j++) { d.setColor(color); path.reset(); double angle = 10.0; - if(j == 1) + if (j == 1) angle = 27.5; - else if(j == 2) + else if (j == 2) angle = 45.0; - - Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1,1); - if(pos == null) + + Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1, 1); + if (pos == null) continue; - - path.moveTo(pos.x*mulX, pos.y*mulY); + + path.moveTo(pos.x * mulX, pos.y * mulY); ArrayList crossSections = brd.getCrossSections(); - for(int i = 0; i < crossSections.size(); i++) - { - double previousCrsPos = (i==0)?0.0:crossSections.get(i-1).getPosition(); + for (int i = 0; i < crossSections.size(); i++) { + double previousCrsPos = (i == 0) ? 0.0 : crossSections.get(i - 1).getPosition(); double currentCrsPos = crossSections.get(i).getPosition(); - - double step = (currentCrsPos-previousCrsPos)/segments; - for(int k = 1; k <= segments; k++) - { - pos = brd.getSurfacePoint(previousCrsPos+(k*step), -45.0, angle, 1,1); - - path.lineTo(pos.x*mulX, pos.y*mulY); + + double step = (currentCrsPos - previousCrsPos) / segments; + for (int k = 1; k <= segments; k++) { + pos = brd.getSurfacePoint(previousCrsPos + (k * step), -45.0, angle, 1, 1); + + path.lineTo(pos.x * mulX, pos.y * mulY); } } d.draw(path); - + color = color.brighter(); } - - resetTransform(d,savedTransform); + + resetTransform(d, savedTransform); } - public static void paintOutlineTuckUnderLine(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) - { - if(brd == null) + public static void paintOutlineTuckUnderLine(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipX, + boolean flipY) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setColor(color); d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; int segments = 1000; - + GeneralPath path = new GeneralPath(); d.setColor(color); @@ -827,225 +699,205 @@ public static void paintOutlineTuckUnderLine(AbstractDraw d, double offsetX, dou double angle = 175.0; mulY = -mulY; - - Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1,1); - if(pos == null) - return; - - path.moveTo(pos.x*mulX, pos.y*mulY); - ArrayList crossSections = brd.getCrossSections(); - for(int i = 0; i < crossSections.size(); i++) - { - double previousCrsPos = (i==0)?0.0:crossSections.get(i-1).getPosition(); - double currentCrsPos = crossSections.get(i).getPosition(); - - double step = (currentCrsPos-previousCrsPos)/segments; - for(int k = 1; k <= segments; k++) - { - pos = brd.getSurfacePoint(previousCrsPos+(k*step), -45.0, angle, 1,1); - if(pos == null) - return; - - path.lineTo(pos.x*mulX, pos.y*mulY); + + Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1, 1); + if (pos != null) { + + path.moveTo(pos.x * mulX, pos.y * mulY); + ArrayList crossSections = brd.getCrossSections(); + for (int i = 0; i < crossSections.size(); i++) { + double previousCrsPos = (i == 0) ? 0.0 : crossSections.get(i - 1).getPosition(); + double currentCrsPos = crossSections.get(i).getPosition(); + + double step = (currentCrsPos - previousCrsPos) / segments; + for (int k = 1; k <= segments; k++) { + pos = brd.getSurfacePoint(previousCrsPos + (k * step), -45.0, angle, 1, 1); + if (pos == null) { + resetTransform(d, savedTransform); + return; + } + + path.lineTo(pos.x * mulX, pos.y * mulY); + } } + d.draw(path); } - d.draw(path); - - resetTransform(d,savedTransform); + + resetTransform(d, savedTransform); } - public static void paintProfileFlowLines(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) - { - if(brd == null) + public static void paintProfileFlowLines(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; int segments = 10; - + GeneralPath path = new GeneralPath(); - for(int j = 0; j < 3; j++) - { + for (int j = 0; j < 3; j++) { d.setColor(color); path.reset(); double angle = 10.0; - if(j == 1) + if (j == 1) angle = 27.5; - else if(j == 2) + else if (j == 2) angle = 45.0; - - Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1,1); - if(pos == null) + + Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1, 1); + if (pos == null) continue; - - path.moveTo(pos.x*mulX, pos.z*mulY); + + path.moveTo(pos.x * mulX, pos.z * mulY); ArrayList crossSections = brd.getCrossSections(); - for(int i = 0; i < crossSections.size(); i++) - { - double previousCrsPos = (i==0)?0.0:crossSections.get(i-1).getPosition(); + for (int i = 0; i < crossSections.size(); i++) { + double previousCrsPos = (i == 0) ? 0.0 : crossSections.get(i - 1).getPosition(); double currentCrsPos = crossSections.get(i).getPosition(); - - double step = (currentCrsPos-previousCrsPos)/segments; - for(int k = 1; k <= segments; k++) - { - pos = brd.getSurfacePoint(previousCrsPos+(k*step), -45.0, angle, 1,1); - - path.lineTo(pos.x*mulX, pos.z*mulY); + + double step = (currentCrsPos - previousCrsPos) / segments; + for (int k = 1; k <= segments; k++) { + pos = brd.getSurfacePoint(previousCrsPos + (k * step), -45.0, angle, 1, 1); + + path.lineTo(pos.x * mulX, pos.z * mulY); } } d.draw(path); color = color.brighter(); } - - resetTransform(d,savedTransform); + + resetTransform(d, savedTransform); } - public static void paintProfileApexline(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) - { - paintProfileApexLine(d, offsetX, offsetY, 0.0, scale, color, stroke, brd, flipX, flipY); + public static void paintProfileApexline(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) { + paintProfileApexLine(d, offsetX, offsetY, scale, rotation, color, stroke, brd, flipX, flipY); } - public static void paintProfileApexLine(AbstractDraw d, double offsetX, double offsetY, double rotation, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) - { - if(brd == null) + public static void paintProfileApexLine(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, rotation, scale); - - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; int segments = 10; - + GeneralPath path = new GeneralPath(); d.setColor(color); - double angle = APEX_DEFINITION_ANGLE; - - Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1,1); - - path.moveTo(pos.x*mulX, pos.z*mulY); + double angle = APEX_DEFINITION_ANGLE; + + Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1, 1); + + path.moveTo(pos.x * mulX, pos.z * mulY); ArrayList crossSections = brd.getCrossSections(); - for(int i = 0; i < crossSections.size(); i++) - { - double previousCrsPos = (i==0)?0.0:crossSections.get(i-1).getPosition(); + for (int i = 0; i < crossSections.size(); i++) { + double previousCrsPos = (i == 0) ? 0.0 : crossSections.get(i - 1).getPosition(); double currentCrsPos = crossSections.get(i).getPosition(); - - double step = (currentCrsPos-previousCrsPos)/segments; - for(int k = 1; k <= segments; k++) - { - pos = brd.getSurfacePoint(previousCrsPos+(k*step), -45.0, angle, 1,1); - - path.lineTo(pos.x*mulX, pos.z*mulY); + + double step = (currentCrsPos - previousCrsPos) / segments; + for (int k = 1; k <= segments; k++) { + pos = brd.getSurfacePoint(previousCrsPos + (k * step), -45.0, angle, 1, 1); + + path.lineTo(pos.x * mulX, pos.z * mulY); } } d.draw(path); - - resetTransform(d,savedTransform); - } - public static void paintProfileTuckUnderLine(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) - { - paintProfileTuckUnderLine(d, offsetX, offsetY, 0.0, scale, color, stroke, brd, flipX, flipY) ; + resetTransform(d, savedTransform); } - - public static void paintProfileTuckUnderLine(AbstractDraw d, double offsetX, double offsetY, double rotation, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipX, boolean flipY) - { - if(brd == null) + + public static void paintProfileTuckUnderLine(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipX, + boolean flipY) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, rotation, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; int segments = 10; - + GeneralPath path = new GeneralPath(); d.setColor(color); - double angle = TUCK_UNDER_DEFINITION_ANGLE; - - Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1,1); - - path.moveTo(pos.x*mulX, pos.z*mulY); + double angle = TUCK_UNDER_DEFINITION_ANGLE; + + Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1, 1); + + path.moveTo(pos.x * mulX, pos.z * mulY); ArrayList crossSections = brd.getCrossSections(); - for(int i = 0; i < crossSections.size(); i++) - { - double previousCrsPos = (i==0)?0.0:crossSections.get(i-1).getPosition(); + for (int i = 0; i < crossSections.size(); i++) { + double previousCrsPos = (i == 0) ? 0.0 : crossSections.get(i - 1).getPosition(); double currentCrsPos = crossSections.get(i).getPosition(); - - double step = (currentCrsPos-previousCrsPos)/segments; - for(int k = 1; k <= segments; k++) - { - pos = brd.getSurfacePoint(previousCrsPos+(k*step), -45.0, angle, 1,1); - - path.lineTo(pos.x*mulX, pos.z*mulY); + + double step = (currentCrsPos - previousCrsPos) / segments; + for (int k = 1; k <= segments; k++) { + pos = brd.getSurfacePoint(previousCrsPos + (k * step), -45.0, angle, 1, 1); + + path.lineTo(pos.x * mulX, pos.z * mulY); } } d.draw(path); - - resetTransform(d,savedTransform); - } + resetTransform(d, savedTransform); + } - public static void paintCrossSectionCenterline(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipY, boolean flattenRocker) - { - if(brd == null) + public static void paintCrossSectionCenterline(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipY, + boolean flattenRocker) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - - double mulY = flipY?-1:1; - int segments = 10; + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + double mulY = flipY ? -1 : 1; + int segments = 10; GeneralPath pathDeck = new GeneralPath(); GeneralPath pathBottom = new GeneralPath(); - + d.setColor(color); - + Point2D.Double deckPos = new Point2D.Double(0.01, brd.getDeck().getValueAt(0.01)); Point2D.Double bottomPos = new Point2D.Double(0.01, brd.getBottom().getValueAt(0.01)); - - if(flattenRocker) - { + + if (flattenRocker) { deckPos.y -= bottomPos.y; bottomPos.y = 0.0; } - + pathDeck.moveTo(0, deckPos.y); pathBottom.moveTo(0, bottomPos.y); ArrayList crossSections = brd.getCrossSections(); - for(int i = 0; i <= 20; i++) - { - double x = brd.getLength()/20*i; + for (int i = 0; i <= 20; i++) { + double x = brd.getLength() / 20 * i; deckPos = new Point2D.Double(x, brd.getDeck().getValueAt(0.01)); bottomPos = new Point2D.Double(x, brd.getBottom().getValueAt(0.01)); - - if(flattenRocker) - { + + if (flattenRocker) { deckPos.y -= bottomPos.y; bottomPos.y = 0.0; } @@ -1055,216 +907,200 @@ public static void paintCrossSectionCenterline(AbstractDraw d, double offsetX, d } d.draw(pathDeck); d.draw(pathBottom); - - resetTransform(d,savedTransform); + + resetTransform(d, savedTransform); } - public static void paintCrossSectionFlowLines(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipY, boolean flattenRocker) - { - if(brd == null) + public static void paintCrossSectionFlowLines(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipY, + boolean flattenRocker) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); - double mulY = flipY?-1:1; + double mulY = flipY ? -1 : 1; int segments = 10; - GeneralPath pathLeft = new GeneralPath(); GeneralPath pathRight = new GeneralPath(); - - for(int j = 0; j < 3; j++) - { + + for (int j = 0; j < 3; j++) { d.setColor(color); pathLeft.reset(); pathRight.reset(); double angle = 10.0; - if(j == 1) + if (j == 1) angle = 27.5; - else if(j == 2) + else if (j == 2) angle = 45.0; - - Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1,1); - if(pos == null) + + Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1, 1); + if (pos == null) continue; - - if(flattenRocker) - { + + if (flattenRocker) { double rocker = brd.getRockerAtPos(pos.x); pos.z -= rocker; } - - pathLeft.moveTo(pos.y*-1.0, pos.z*mulY); - pathRight.moveTo(pos.y, pos.z*mulY); + + pathLeft.moveTo(pos.y * -1.0, pos.z * mulY); + pathRight.moveTo(pos.y, pos.z * mulY); ArrayList crossSections = brd.getCrossSections(); - for(int i = 0; i < crossSections.size(); i++) - { - double previousCrsPos = (i==0)?0.0:crossSections.get(i-1).getPosition(); + for (int i = 0; i < crossSections.size(); i++) { + double previousCrsPos = (i == 0) ? 0.0 : crossSections.get(i - 1).getPosition(); double currentCrsPos = crossSections.get(i).getPosition(); - - double step = (currentCrsPos-previousCrsPos)/segments; - for(int k = 1; k <= segments; k++) - { - pos = brd.getSurfacePoint(previousCrsPos+(k*step), -45.0, angle, 1,1); - - if(flattenRocker) - { + + double step = (currentCrsPos - previousCrsPos) / segments; + for (int k = 1; k <= segments; k++) { + pos = brd.getSurfacePoint(previousCrsPos + (k * step), -45.0, angle, 1, 1); + + if (flattenRocker) { double rocker = brd.getRockerAtPos(pos.x); pos.z -= rocker; } - pathLeft.lineTo(pos.y*-1.0, pos.z*mulY); - pathRight.lineTo(pos.y, pos.z*mulY); + pathLeft.lineTo(pos.y * -1.0, pos.z * mulY); + pathRight.lineTo(pos.y, pos.z * mulY); } } d.draw(pathLeft); d.draw(pathRight); color = color.brighter(); } - - resetTransform(d,savedTransform); + + resetTransform(d, savedTransform); } - public static void paintCrossSectionApexline(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipY, boolean flattenRocker) - { - if(brd == null) + public static void paintCrossSectionApexline(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipY, + boolean flattenRocker) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); - double mulY = flipY?-1:1; + double mulY = flipY ? -1 : 1; int segments = 10; - GeneralPath pathLeft = new GeneralPath(); GeneralPath pathRight = new GeneralPath(); - + d.setColor(color); pathLeft.reset(); pathRight.reset(); double angle = 88.0; - - Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1,1); - if(pos == null) + + Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1, 1); + if (pos == null) return; - - if(flattenRocker) - { + + if (flattenRocker) { double rocker = brd.getRockerAtPos(pos.x); pos.z -= rocker; } - - pathLeft.moveTo(pos.y*-1.0, pos.z*mulY); - pathRight.moveTo(pos.y, pos.z*mulY); + + pathLeft.moveTo(pos.y * -1.0, pos.z * mulY); + pathRight.moveTo(pos.y, pos.z * mulY); ArrayList crossSections = brd.getCrossSections(); - for(int i = 0; i < crossSections.size(); i++) - { - double previousCrsPos = (i==0)?0.0:crossSections.get(i-1).getPosition(); + for (int i = 0; i < crossSections.size(); i++) { + double previousCrsPos = (i == 0) ? 0.0 : crossSections.get(i - 1).getPosition(); double currentCrsPos = crossSections.get(i).getPosition(); - - double step = (currentCrsPos-previousCrsPos)/segments; - for(int k = 1; k <= segments; k++) - { - pos = brd.getSurfacePoint(previousCrsPos+(k*step), -45.0, angle, 1,1); - - if(flattenRocker) - { + + double step = (currentCrsPos - previousCrsPos) / segments; + for (int k = 1; k <= segments; k++) { + pos = brd.getSurfacePoint(previousCrsPos + (k * step), -45.0, angle, 1, 1); + + if (flattenRocker) { double rocker = brd.getRockerAtPos(pos.x); pos.z -= rocker; } - pathLeft.lineTo(pos.y*-1.0, pos.z*mulY); - pathRight.lineTo(pos.y, pos.z*mulY); + pathLeft.lineTo(pos.y * -1.0, pos.z * mulY); + pathRight.lineTo(pos.y, pos.z * mulY); } } d.draw(pathLeft); d.draw(pathRight); color = color.brighter(); - - resetTransform(d,savedTransform); + + resetTransform(d, savedTransform); } - public static void paintCrossSectionTuckUnderLine(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierBoard brd, boolean flipY, boolean flattenRocker) - { - if(brd == null) + public static void paintCrossSectionTuckUnderLine(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierBoard brd, boolean flipY, + boolean flattenRocker) { + if (brd == null) return; - - if(brd.isEmpty()) + + if (brd.isEmpty()) return; d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - - double mulY = flipY?-1:1; + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + + double mulY = flipY ? -1 : 1; int segments = 10; - + GeneralPath pathLeft = new GeneralPath(); GeneralPath pathRight = new GeneralPath(); d.setColor(color); - double angle = TUCK_UNDER_DEFINITION_ANGLE; - - Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1,1); - - if(flattenRocker) - { + double angle = TUCK_UNDER_DEFINITION_ANGLE; + + Point3d pos = brd.getSurfacePoint(0.01, -45.0, angle, 1, 1); + + if (flattenRocker) { double rocker = brd.getRockerAtPos(pos.x); pos.z -= rocker; } - pathLeft.moveTo(pos.y*-1.0, pos.z*mulY); - pathRight.moveTo(pos.y, pos.z*mulY); + pathLeft.moveTo(pos.y * -1.0, pos.z * mulY); + pathRight.moveTo(pos.y, pos.z * mulY); ArrayList crossSections = brd.getCrossSections(); - for(int i = 0; i < crossSections.size(); i++) - { - double previousCrsPos = (i==0)?0.0:crossSections.get(i-1).getPosition(); + for (int i = 0; i < crossSections.size(); i++) { + double previousCrsPos = (i == 0) ? 0.0 : crossSections.get(i - 1).getPosition(); double currentCrsPos = crossSections.get(i).getPosition(); - - double step = (currentCrsPos-previousCrsPos)/segments; - for(int k = 1; k <= segments; k++) - { - pos = brd.getSurfacePoint(previousCrsPos+(k*step), -45.0, angle, 1,1); - - if(flattenRocker) - { + + double step = (currentCrsPos - previousCrsPos) / segments; + for (int k = 1; k <= segments; k++) { + pos = brd.getSurfacePoint(previousCrsPos + (k * step), -45.0, angle, 1, 1); + + if (flattenRocker) { double rocker = brd.getRockerAtPos(pos.x); pos.z -= rocker; } - pathLeft.lineTo(pos.y*-1.0, pos.z*mulY); - pathRight.lineTo(pos.y, pos.z*mulY); + pathLeft.lineTo(pos.y * -1.0, pos.z * mulY); + pathRight.lineTo(pos.y, pos.z * mulY); } } d.draw(pathLeft); d.draw(pathRight); - - resetTransform(d,savedTransform); + + resetTransform(d, savedTransform); } - static void paintCurvatureByT(AbstractDraw d, BezierCurve curve, double t0, double t1, boolean flipX, boolean flipY, double scale) - { + static void paintCurvatureByT(AbstractDraw d, BezierCurve curve, double t0, double t1, boolean flipX, boolean flipY, double scale) { -// Get t split point - double ts = (t1-t0)/2 + t0; + // Get t split point + double ts = (t1 - t0) / 2 + t0; - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; -// Get endpoints + // Get endpoints double x0 = curve.getXValue(t0); double y0 = curve.getCurvature(t0); double x1 = curve.getXValue(t1); @@ -1273,112 +1109,99 @@ static void paintCurvatureByT(AbstractDraw d, BezierCurve curve, double t0, doub double xs = curve.getXValue(ts); double ys = curve.getCurvature(ts); -// Distance between centerpoint and real split curvepoint - double length = VecMath.getVecLength(x0,y0,xs,ys) + VecMath.getVecLength(xs,ys,x1,y1); - double chord = VecMath.getVecLength(x0,y0,x1,y1); + // Distance between centerpoint and real split curvepoint + double length = VecMath.getVecLength(x0, y0, xs, ys) + VecMath.getVecLength(xs, ys, x1, y1); + double chord = VecMath.getVecLength(x0, y0, x1, y1); - if(Double.isInfinite(chord) || Double.isInfinite(length) || - Double.isNaN(chord) || Double.isNaN(length) ) + if (Double.isInfinite(chord) || Double.isInfinite(length) || Double.isNaN(chord) || Double.isNaN(length)) return; - if( (chord > CURVATURE_MAX_LINE_LENGTH || Math.abs(length - chord) > CURVATURE_TOLERANCE) && chord > CURVATURE_MIN_LINE_LENGTH && Math.abs(t1-t0) > CURVATURE_T_TOLERANCE) - { - paintCurvatureByT(d, curve, t0,ts, flipX, flipY, scale); - paintCurvatureByT(d, curve, ts,t1, flipX, flipY, scale); - } - else - { - ls.setLine(x0*mulX, y0*mulY*scale, xs*mulX, ys*mulY*scale); + if ((chord > CURVATURE_MAX_LINE_LENGTH || Math.abs(length - chord) > CURVATURE_TOLERANCE) && chord > CURVATURE_MIN_LINE_LENGTH && Math.abs(t1 - t0) > CURVATURE_T_TOLERANCE) { + paintCurvatureByT(d, curve, t0, ts, flipX, flipY, scale); + paintCurvatureByT(d, curve, ts, t1, flipX, flipY, scale); + } else { + ls.setLine(x0 * mulX, y0 * mulY * scale, xs * mulX, ys * mulY * scale); d.draw(ls); - ls.setLine(xs*mulX, ys*mulY*scale, x1*mulX, y1*mulY*scale); + ls.setLine(xs * mulX, ys * mulY * scale, x1 * mulX, y1 * mulY * scale); d.draw(ls); } - } - static void paintCurvatureByPos(AbstractDraw d, BezierCurve curve, double x0, double x1, boolean flipX, boolean flipY, double scale) - { + static void paintCurvatureByPos(AbstractDraw d, BezierCurve curve, double x0, double x1, boolean flipX, boolean flipY, double scale) { -// Get t split point - double xs = (x1-x0)/2 + x0; + // Get t split point + double xs = (x1 - x0) / 2 + x0; - double mulX = flipX?-1:1; - double mulY = flipY?-1:1; + double mulX = flipX ? -1 : 1; + double mulY = flipY ? -1 : 1; -// Get endpoints + // Get endpoints double y0 = curve.getCurvatureAt(x0); double y1 = curve.getCurvatureAt(x1); double ys = curve.getCurvatureAt(xs); -// Distance between centerpoint and real split curvepoint - double length = VecMath.getVecLength(x0,y0,xs,ys) + VecMath.getVecLength(xs,ys,x1,y1); - double chord = VecMath.getVecLength(x0,y0,x1,y1); + // Distance between centerpoint and real split curvepoint + double length = VecMath.getVecLength(x0, y0, xs, ys) + VecMath.getVecLength(xs, ys, x1, y1); + double chord = VecMath.getVecLength(x0, y0, x1, y1); - if(Double.isInfinite(chord) || Double.isInfinite(length) || - Double.isNaN(chord) || Double.isNaN(length) ) + if (Double.isInfinite(chord) || Double.isInfinite(length) || Double.isNaN(chord) || Double.isNaN(length)) return; - if( (chord > CURVATURE_MAX_LINE_LENGTH || Math.abs(length - chord) > CURVATURE_TOLERANCE) && chord > CURVATURE_MIN_LINE_LENGTH) - { - paintCurvatureByPos(d, curve, x0,xs, flipX, flipY, scale); - paintCurvatureByPos(d, curve, xs,x1, flipX, flipY, scale); - } - else - { - ls.setLine(x0*mulX, y0*mulY*scale, xs*mulX, ys*mulY*scale); + if ((chord > CURVATURE_MAX_LINE_LENGTH || Math.abs(length - chord) > CURVATURE_TOLERANCE) && chord > CURVATURE_MIN_LINE_LENGTH) { + paintCurvatureByPos(d, curve, x0, xs, flipX, flipY, scale); + paintCurvatureByPos(d, curve, xs, x1, flipX, flipY, scale); + } else { + ls.setLine(x0 * mulX, y0 * mulY * scale, xs * mulX, ys * mulY * scale); d.draw(ls); - ls.setLine(xs*mulX, ys*mulY*scale, x1*mulX, y1*mulY*scale); + ls.setLine(xs * mulX, ys * mulY * scale, x1 * mulX, y1 * mulY * scale); d.draw(ls); } - } - - - public static void paintSlidingCrossSection(AbstractDraw d, double offsetX, double offsetY, double rotation, double scale, Color color, Stroke stroke, boolean flipX, boolean flipY, double pos, BezierBoard brd) - { - if(brd.getCrossSections().size() <= 2) + + public static void paintSlidingCrossSection(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, boolean flipX, boolean flipY, double pos, + BezierBoard brd) { + if (brd.getCrossSections().size() <= 2) return; -//DEBUG -//paintSlidingCrossSectionNormals(d, offsetX, offsetY, scale, color, stroke, flipX, flipY, pos, brd); - - switch(BoardCAD.getInstance().getCrossSectionInterpolationType()) - { + // DEBUG + // paintSlidingCrossSectionNormals(d, offsetX, offsetY, scale, rotation, + // color, + // stroke, flipX, flipY, pos, brd); + + switch (BoardCAD.getInstance().getCrossSectionInterpolationType()) { case LinearInterpolation: - paintSlidingCrossSectionBlendInterpolation(d, offsetX, offsetY, rotation, scale, color, stroke, flipX, flipY, pos, brd); + paintSlidingCrossSectionBlendInterpolation(d, offsetX, offsetY, scale, rotation, color, stroke, flipX, flipY, pos, brd); break; case ControlPointInterpolation: - paintSlidingCrossSectionControlPointInterpolation(d, offsetX, offsetY, rotation, scale, color, stroke, flipX, flipY, pos, brd); + paintSlidingCrossSectionControlPointInterpolation(d, offsetX, offsetY, scale, rotation, color, stroke, flipX, flipY, pos, brd); break; case SLinearInterpolation: -// paintSlidingCrossSectionBlendFromSInterpolation(d, offsetX, offsetY, scale, color, stroke, flipX, flipY, pos, brd); - paintSlidingCrossSectionBlendFromSInterpolationSep(d, offsetX, offsetY, rotation, scale, color, stroke, flipX, flipY, pos, brd); + // paintSlidingCrossSectionBlendFromSInterpolation(d, offsetX, + // offsetY, scale, rotation, color, stroke, flipX, flipY, pos, brd); + paintSlidingCrossSectionBlendFromSInterpolationSep(d, offsetX, offsetY, scale, rotation, color, stroke, flipX, flipY, pos, brd); break; - default: //DEBUG - paintSlidingCrossSectionBlendInterpolation(d, offsetX, offsetY, rotation, scale, new Color(255,0,0), stroke, flipX, flipY, pos, brd); - paintSlidingCrossSectionControlPointInterpolation(d, offsetX, offsetY, rotation, scale, new Color(0,255,0), stroke, flipX, flipY, pos, brd); - paintSlidingCrossSectionBlendFromSInterpolationSep(d, offsetX, offsetY, rotation, scale, new Color(0,0,255), stroke, flipX, flipY, pos, brd); + default: // DEBUG + paintSlidingCrossSectionBlendInterpolation(d, offsetX, offsetY, scale, rotation, new Color(255, 0, 0), stroke, flipX, flipY, pos, brd); + paintSlidingCrossSectionControlPointInterpolation(d, offsetX, offsetY, scale, rotation, new Color(0, 255, 0), stroke, flipX, flipY, pos, brd); + paintSlidingCrossSectionBlendFromSInterpolationSep(d, offsetX, offsetY, scale, rotation, new Color(0, 0, 255), stroke, flipX, flipY, pos, brd); break; - + } - - } - public static void paintSlidingCrossSectionNormals(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, boolean flipX, boolean flipY, double pos, BezierBoard brd) - { - // - mMulX = flipX?-1:1; - mMulY = flipY?-1:1; + } + + public static void paintSlidingCrossSectionNormals(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, boolean flipX, boolean flipY, + double pos, BezierBoard brd) { mBrd = brd; d.setColor(color); d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation, flipX, flipY); double splitAngle = TUCK_UNDER_DEFINITION_ANGLE; @@ -1386,178 +1209,166 @@ public static void paintSlidingCrossSectionNormals(AbstractDraw d, double offset double shoulder = 25.0f; double end = 360.0; double a0, a1 = 0; - + double rocker = brd.getRockerAtPos(pos); - - for(int w = 0; w < 3; w++) - { - - if(w == 0) - { - d.setColor(new Color(0,0,255)); + + for (int w = 0; w < 3; w++) { + + if (w == 0) { + d.setColor(new Color(0, 0, 255)); a0 = start; - a1 = shoulder; - } - else if(w == 1) - { - d.setColor(new Color(255,0,255)); + a1 = shoulder; + } else if (w == 1) { + d.setColor(new Color(255, 0, 255)); a0 = shoulder; - a1 = splitAngle; - } - else - { - d.setColor(new Color(0,250,0)); - a0 = splitAngle; + a1 = splitAngle; + } else { + d.setColor(new Color(0, 250, 0)); + a0 = splitAngle; a1 = end; } - Line2D line = new Line2D.Double(); Point3d point; Vector3d normal; - double steps = 20; - for(int i = 1; i <= steps; i++) - { - point = AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(BoardCAD.getInstance().getCrossSectionInterpolationType()).getPointAt(mBrd, pos, (double)i/steps, a0, a1, true); - if(point == null) + double steps = 20; + for (int i = 1; i <= steps; i++) { + point = AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(BoardCAD.getInstance().getCrossSectionInterpolationType()).getPointAt(mBrd, pos, i / steps, a0, a1, true); + if (point == null) continue; point.z -= rocker; - normal = AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(BoardCAD.getInstance().getCrossSectionInterpolationType()).getNormalAt(mBrd, pos, (double)i/steps, a0, a1, true); - normal.scale(0.1f*scale); - + normal = AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(BoardCAD.getInstance().getCrossSectionInterpolationType()).getNormalAt(mBrd, pos, i / steps, a0, a1, true); + normal.scale(0.1f * scale); + Point3d otherEnd = new Point3d(point); otherEnd.add(normal); - - line.setLine(new Point2D.Double(point.y*mMulX, point.z*mMulY), new Point2D.Double(otherEnd.y*mMulX, otherEnd.z*mMulY)); + + line.setLine(new Point2D.Double(point.y, point.z), new Point2D.Double(otherEnd.y, otherEnd.z)); d.draw(line); } } - - resetTransform(d,savedTransform); - - } - - /* public static void paintSlidingCrossSectionBlendFromSInterpolation(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, boolean flipX, boolean flipY, double pos, BezierBoard brd) - { - // - mMulX = flipX?-1:1; - mMulY = flipY?-1:1; - - mBrd = brd; - - d.setColor(color); - d.setStroke(stroke); - - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - - ds = d; - - paintSlidingCrossSectionBlendFromSInterpolation(pos, 0.00001,0.99999); - - resetTransform(d,savedTransform); + resetTransform(d, savedTransform); } - */ - public static void paintSlidingCrossSectionBlendFromSInterpolationSep(AbstractDraw d, double offsetX, double offsetY, double rotation, double scale, Color color, Stroke stroke, boolean flipX, boolean flipY, double pos, BezierBoard brd) - { - // - mMulX = flipX?-1:1; - mMulY = flipY?-1:1; + /* + * public static void + * paintSlidingCrossSectionBlendFromSInterpolation(AbstractDraw d, double + * offsetX, double offsetY, double scale, double rotation, Color color, + * Stroke stroke, boolean flipX, boolean flipY, double pos, BezierBoard brd) + * { // mMulX = flipX?-1:1; mMulY = flipY?-1:1; + * + * mBrd = brd; + * + * d.setColor(color); d.setStroke(stroke); + * + * AffineTransform savedTransform = setTransform(d, offsetX, offsetY, + * scale); + * + * ds = d; + * + * paintSlidingCrossSectionBlendFromSInterpolation(pos, 0.00001,0.99999); + * + * resetTransform(d,savedTransform); + * + * + * } + */ + + public static void paintSlidingCrossSectionBlendFromSInterpolationSep(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, boolean flipX, + boolean flipY, double pos, BezierBoard brd) { mBrd = brd; d.setColor(color); d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, rotation, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation, flipX, flipY); double splitAngle = TUCK_UNDER_DEFINITION_ANGLE; -/* - BezierBoardCrossSection c1 = brd.getPreviousCrossSection(pos); - BezierBoardCrossSection c2 = brd.getNextCrossSection(pos); - - //Scaling - double targetWidth = mBrd.getWidthAt(pos); - double targetThickness = mBrd.getThicknessAtPos(pos); - - double c1Width = c1.getWidth(); - double c1Thickness = c1.getThicknessAtPos(BezierSpline.ZERO); - - double c2Width = c2.getWidth(); - double c2Thickness = c2.getThicknessAtPos(BezierSpline.ZERO); - - double c1ThicknessScale = targetThickness/c1Thickness; - double c1WidthScale = targetWidth/c1Width; - - double c2ThicknessScale = targetThickness/c2Thickness; - double c2WidthScale = targetWidth/c2Width; - -/* - System.out.printf("getSurfacePoint()\n"); - System.out.printf("Target width: %f thickness: %f\n", targetWidth, targetThickness); - System.out.printf("C1 width: %f thickness: %f\n", c1Width, c1Thickness); - System.out.printf("C2 width: %f thickness: %f\n", c2Width, c2Thickness); - System.out.printf("C1 width scale: %f thickness scale: %f\n", c1WidthScale, c1ThicknessScale); - System.out.printf("C2 width scale: %f thickness scale: %f\n", c2WidthScale, c2ThicknessScale); -*/ - -/* - double s1 = c1.getBezierSpline().getSByNormalReverseScaled(splitAngle, true, c1WidthScale, c1ThicknessScale); - double s2 = c2.getBezierSpline().getSByNormalReverseScaled(splitAngle, true, c2WidthScale, c2ThicknessScale); - -// d.setColor(new Color(0,0,255)); - paintSlidingCrossSectionBlendFromSInterpolation(pos, BezierSpline.ZERO, s1, BezierSpline.ZERO, s2); -// d.setColor(new Color(0,250,0)); - paintSlidingCrossSectionBlendFromSInterpolation(pos, s1, BezierSpline.ONE, s2, BezierSpline.ONE); -*/ + /* + * BezierBoardCrossSection c1 = brd.getPreviousCrossSection(pos); + * BezierBoardCrossSection c2 = brd.getNextCrossSection(pos); + * + * //Scaling double targetWidth = mBrd.getWidthAt(pos); double + * targetThickness = mBrd.getThicknessAtPos(pos); + * + * double c1Width = c1.getWidth(); double c1Thickness = + * c1.getThicknessAtPos(BezierSpline.ZERO); + * + * double c2Width = c2.getWidth(); double c2Thickness = + * c2.getThicknessAtPos(BezierSpline.ZERO); + * + * double c1ThicknessScale = targetThickness/c1Thickness; double + * c1WidthScale = targetWidth/c1Width; + * + * double c2ThicknessScale = targetThickness/c2Thickness; double + * c2WidthScale = targetWidth/c2Width; + * + * /* System.out.printf("getSurfacePoint()\n"); + * System.out.printf("Target width: %f thickness: %f\n", targetWidth, + * targetThickness); System.out.printf("C1 width: %f thickness: %f\n", + * c1Width, c1Thickness); + * System.out.printf("C2 width: %f thickness: %f\n", c2Width, + * c2Thickness); + * System.out.printf("C1 width scale: %f thickness scale: %f\n", + * c1WidthScale, c1ThicknessScale); + * System.out.printf("C2 width scale: %f thickness scale: %f\n", + * c2WidthScale, c2ThicknessScale); + */ + + /* + * double s1 = + * c1.getBezierSpline().getSByNormalReverseScaled(splitAngle, true, + * c1WidthScale, c1ThicknessScale); double s2 = + * c2.getBezierSpline().getSByNormalReverseScaled(splitAngle, true, + * c2WidthScale, c2ThicknessScale); + * + * // d.setColor(new Color(0,0,255)); + * paintSlidingCrossSectionBlendFromSInterpolation(pos, + * BezierSpline.ZERO, s1, BezierSpline.ZERO, s2); // d.setColor(new + * Color(0,250,0)); paintSlidingCrossSectionBlendFromSInterpolation(pos, + * s1, BezierSpline.ONE, s2, BezierSpline.ONE); + */ double start = -90.0; double shoulder = 25.0f; double end = 360.0; double a0, a1 = 0; - + double rocker = brd.getRockerAtPos(pos); - - for(int w = 0; w < 3; w++) - { - - if(w == 0) - { -// d.setColor(new Color(0,0,255)); + + for (int w = 0; w < 3; w++) { + + if (w == 0) { + // d.setColor(new Color(0,0,255)); a0 = start; - a1 = shoulder; - } - else if(w == 1) - { -// d.setColor(new Color(255,0,255)); + a1 = shoulder; + } else if (w == 1) { + // d.setColor(new Color(255,0,255)); a0 = shoulder; - a1 = splitAngle; - } - else - { -// d.setColor(new Color(0,250,0)); - a0 = splitAngle; + a1 = splitAngle; + } else { + // d.setColor(new Color(0,250,0)); + a0 = splitAngle; a1 = end; } - - + GeneralPath path = new GeneralPath(); Point3d point = AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(AbstractBezierBoardSurfaceModel.ModelType.SLinearInterpolation).getPointAt(mBrd, pos, 0.0, a0, a1, true); - + point.z -= rocker; - - path.moveTo(point.y*mMulX,point.z*mMulY); - double steps = 20; - for(int i = 1; i <= steps; i++) - { - point = AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(AbstractBezierBoardSurfaceModel.ModelType.SLinearInterpolation).getPointAt(mBrd, pos, (double)i/steps, a0, a1, true); + + path.moveTo(point.y, point.z); + double steps = 20; + for (int i = 1; i <= steps; i++) { + point = AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(AbstractBezierBoardSurfaceModel.ModelType.SLinearInterpolation).getPointAt(mBrd, pos, i / steps, a0, a1, true); point.z -= rocker; - path.lineTo(point.y*mMulX,point.z*mMulY); - + path.lineTo(point.y, point.z); + } d.draw(path); AffineTransform trans = new AffineTransform(); @@ -1565,311 +1376,246 @@ else if(w == 1) path.transform(trans); d.draw(path); } - - - resetTransform(d,savedTransform); + resetTransform(d, savedTransform); } - public static void paintSlidingCrossSectionBlendFromSInterpolation(double pos, double a0, double a1) - { - } - -/* - public static void paintSlidingCrossSectionBlendFromSInterpolation(double pos, double s0, double s1 ) - { -// Get endpoints - Point2D.Double p0 = mBrd.getPointAtPos(pos, s0); - Point2D.Double p1 = mBrd.getPointAtPos(pos, s1); - -// Get x split point - double ss = (s1-s0)/2 + s0; - Point2D.Double ps = mBrd.getPointAtPos(pos, ss); - -// Angle between vectors formed by - Point2D.Double v0 = new Point2D.Double(); - Point2D.Double v1 = new Point2D.Double(); - - BezierSpline.subVector(p0, ps, v0); - BezierSpline.subVector(ps, p1, v1); - - double length = BezierSpline.getVecLength(v0) + BezierSpline.getVecLength(v1); - - double angle = BezierSpline.getVecAngle(v0,v1); - - if( length > S_BLEND_MAX_LENGTH || (Math.abs(angle) > S_BLEND_MIN_ANGLE && length > S_BLEND_MIN_LENGTH) ) - { - paintSlidingCrossSectionBlendFromSInterpolation(pos, s0, ss); - paintSlidingCrossSectionBlendFromSInterpolation(pos, ss, s1); - } - else - { -/*Draw Normal for debug - Vector3d vec = mBrd.getNormalAtPos(pos, ss); - ls.setLine(ps.x*mMulX, ps.y*mMulY,(ps.x+vec.y)*mMulX, (ps.y+vec.z)*mMulY); - ds.draw(ls); -*/ - /* - ls.setLine(p0.x*mMulX, p0.y*mMulY, ps.x*mMulX, ps.y*mMulY); - ds.draw(ls); - ls.setLine(ps.x*mMulX, ps.y*mMulY, p1.x*mMulX, p1.y*mMulY); - ds.draw(ls); - ls.setLine(-p0.x*mMulX, p0.y*mMulY, -ps.x*mMulX, ps.y*mMulY); - ds.draw(ls); - ls.setLine(-ps.x*mMulX, ps.y*mMulY, -p1.x*mMulX, p1.y*mMulY); - ds.draw(ls); - } + public static void paintSlidingCrossSectionBlendFromSInterpolation(double pos, double a0, double a1) { } - */ -/* - public static void paintSlidingCrossSectionBlendFromSInterpolation(double pos, double a0, double a1, double b0, double b1 ) - { -// Get endpoints - Point2D.Double p0 = mBrd.getPointAtPos(pos, a0, b0); - Point2D.Double p1 = mBrd.getPointAtPos(pos, a1, b1); - -// Get x split point - double as = (a1-a0)/2 + a0; - double bs = (b1-b0)/2 + b0; - Point2D.Double ps = mBrd.getPointAtPos(pos, as, bs); - -// Angle between vectors formed by - Point2D.Double v0 = new Point2D.Double(); - Point2D.Double v1 = new Point2D.Double(); - - BezierSpline.subVector(p0, ps, v0); - BezierSpline.subVector(ps, p1, v1); - - double length = BezierSpline.getVecLength(v0) + BezierSpline.getVecLength(v1); - - double angle = BezierSpline.getVecAngle(v0,v1); - - if( length > S_BLEND_MAX_LENGTH || (Math.abs(angle) > S_BLEND_MIN_ANGLE && length > S_BLEND_MIN_LENGTH) ) - { - paintSlidingCrossSectionBlendFromSInterpolation(pos, a0, as, b0, bs); - paintSlidingCrossSectionBlendFromSInterpolation(pos, as, a1, bs, b1); - } - else - { -/* Draw normal for debug - * Vector3d vec = mBrd.getNormalAtPos(pos, as, bs); - ls.setLine(ps.x*mMulX, ps.y*mMulY,(ps.x+vec.y)*mMulX, (ps.y+vec.z)*mMulY); - ds.draw(ls); - - Draw tangent for debug - vec = mBrd.getTangentAtPos(pos, as, bs); - ls.setLine(ps.x*mMulX, ps.y*mMulY,(ps.x+vec.y)*mMulX, (ps.y+vec.z)*mMulY); - ds.setColor(new Color(0,0,250)); - ds.draw(ls); - ds.setColor(new Color(255,255,0)); -*/ -/* - ls.setLine(p0.x*mMulX, p0.y*mMulY, ps.x*mMulX, ps.y*mMulY); - ds.draw(ls); - ls.setLine(ps.x*mMulX, ps.y*mMulY, p1.x*mMulX, p1.y*mMulY); - ds.draw(ls); - ls.setLine(-p0.x*mMulX, p0.y*mMulY, -ps.x*mMulX, ps.y*mMulY); - ds.draw(ls); - ls.setLine(-ps.x*mMulX, ps.y*mMulY, -p1.x*mMulX, p1.y*mMulY); - ds.draw(ls); - } - } -*/ - public static void paintSlidingCrossSectionControlPointInterpolation(AbstractDraw d, double offsetX, double offsetY, double rotation, double scale, Color color, Stroke stroke, boolean flipX, boolean flipY, double pos, BezierBoard brd) - { + /* + * public static void paintSlidingCrossSectionBlendFromSInterpolation(double + * pos, double s0, double s1 ) { // Get endpoints Point2D.Double p0 = + * mBrd.getPointAtPos(pos, s0); Point2D.Double p1 = mBrd.getPointAtPos(pos, + * s1); + * + * // Get x split point double ss = (s1-s0)/2 + s0; Point2D.Double ps = + * mBrd.getPointAtPos(pos, ss); + * + * // Angle between vectors formed by Point2D.Double v0 = new + * Point2D.Double(); Point2D.Double v1 = new Point2D.Double(); + * + * BezierSpline.subVector(p0, ps, v0); BezierSpline.subVector(ps, p1, v1); + * + * double length = BezierSpline.getVecLength(v0) + + * BezierSpline.getVecLength(v1); + * + * double angle = BezierSpline.getVecAngle(v0,v1); + * + * if( length > S_BLEND_MAX_LENGTH || (Math.abs(angle) > S_BLEND_MIN_ANGLE + * && length > S_BLEND_MIN_LENGTH) ) { + * paintSlidingCrossSectionBlendFromSInterpolation(pos, s0, ss); + * paintSlidingCrossSectionBlendFromSInterpolation(pos, ss, s1); } else { + * /*Draw Normal for debug Vector3d vec = mBrd.getNormalAtPos(pos, ss); + * ls.setLine(ps.x*mMulX, ps.y*mMulY,(ps.x+vec.y)*mMulX, + * (ps.y+vec.z)*mMulY); ds.draw(ls); + */ + /* + * ls.setLine(p0.x*mMulX, p0.y*mMulY, ps.x*mMulX, ps.y*mMulY); ds.draw(ls); + * ls.setLine(ps.x*mMulX, ps.y*mMulY, p1.x*mMulX, p1.y*mMulY); ds.draw(ls); + * ls.setLine(-p0.x*mMulX, p0.y*mMulY, -ps.x*mMulX, ps.y*mMulY); + * ds.draw(ls); ls.setLine(-ps.x*mMulX, ps.y*mMulY, -p1.x*mMulX, + * p1.y*mMulY); ds.draw(ls); } + * + * } + */ + /* + * public static void paintSlidingCrossSectionBlendFromSInterpolation(double + * pos, double a0, double a1, double b0, double b1 ) { // Get endpoints + * Point2D.Double p0 = mBrd.getPointAtPos(pos, a0, b0); Point2D.Double p1 = + * mBrd.getPointAtPos(pos, a1, b1); + * + * // Get x split point double as = (a1-a0)/2 + a0; double bs = (b1-b0)/2 + + * b0; Point2D.Double ps = mBrd.getPointAtPos(pos, as, bs); + * + * // Angle between vectors formed by Point2D.Double v0 = new + * Point2D.Double(); Point2D.Double v1 = new Point2D.Double(); + * + * BezierSpline.subVector(p0, ps, v0); BezierSpline.subVector(ps, p1, v1); + * + * double length = BezierSpline.getVecLength(v0) + + * BezierSpline.getVecLength(v1); + * + * double angle = BezierSpline.getVecAngle(v0,v1); + * + * if( length > S_BLEND_MAX_LENGTH || (Math.abs(angle) > S_BLEND_MIN_ANGLE + * && length > S_BLEND_MIN_LENGTH) ) { + * paintSlidingCrossSectionBlendFromSInterpolation(pos, a0, as, b0, bs); + * paintSlidingCrossSectionBlendFromSInterpolation(pos, as, a1, bs, b1); } + * else { /* Draw normal for debug Vector3d vec = mBrd.getNormalAtPos(pos, + * as, bs); ls.setLine(ps.x*mMulX, ps.y*mMulY,(ps.x+vec.y)*mMulX, + * (ps.y+vec.z)*mMulY); ds.draw(ls); + * + * Draw tangent for debug vec = mBrd.getTangentAtPos(pos, as, bs); + * ls.setLine(ps.x*mMulX, ps.y*mMulY,(ps.x+vec.y)*mMulX, + * (ps.y+vec.z)*mMulY); ds.setColor(new Color(0,0,250)); ds.draw(ls); + * ds.setColor(new Color(255,255,0)); + */ + /* + * ls.setLine(p0.x*mMulX, p0.y*mMulY, ps.x*mMulX, ps.y*mMulY); ds.draw(ls); + * ls.setLine(ps.x*mMulX, ps.y*mMulY, p1.x*mMulX, p1.y*mMulY); ds.draw(ls); + * ls.setLine(-p0.x*mMulX, p0.y*mMulY, -ps.x*mMulX, ps.y*mMulY); + * ds.draw(ls); ls.setLine(-ps.x*mMulX, ps.y*mMulY, -p1.x*mMulX, + * p1.y*mMulY); ds.draw(ls); } + * + * } + */ + public static void paintSlidingCrossSectionControlPointInterpolation(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, boolean flipX, + boolean flipY, double pos, BezierBoard brd) { BezierBoardCrossSection interpol = brd.getInterpolatedCrossSection(pos); - if(interpol != null) - { - BezierBoardDrawUtil.paintBezierSpline(d,offsetX, offsetY, rotation, scale, color, stroke, interpol.getBezierSpline(), ((flipX==true)?BezierBoardDrawUtil.FlipX:0)|((flipY==true)?BezierBoardDrawUtil.FlipY:0), true); - BezierBoardDrawUtil.paintBezierSpline(d,offsetX, offsetY, rotation, scale, color, stroke, interpol.getBezierSpline(), ((flipX==true)?0:BezierBoardDrawUtil.FlipX)|((flipY==true)?BezierBoardDrawUtil.FlipY:0), true); -//DEBUG BrdDrawUtil.paintBezierControlPoints(d,offsetX, offsetY, scale, stroke, interpol.mCrossSectionControlPoints, new ArrayList(), flipX, flipY); //DEBUG! + if (interpol != null) { + BezierBoardDrawUtil.paintBezierSpline(d, offsetX, offsetY, scale, rotation, color, stroke, interpol.getBezierSpline(), ((flipX == true) ? BezierBoardDrawUtil.FlipX : 0) + | ((flipY == true) ? BezierBoardDrawUtil.FlipY : 0), true); + BezierBoardDrawUtil.paintBezierSpline(d, offsetX, offsetY, scale, rotation, color, stroke, interpol.getBezierSpline(), ((flipX == true) ? 0 : BezierBoardDrawUtil.FlipX) + | ((flipY == true) ? BezierBoardDrawUtil.FlipY : 0), true); + // DEBUG BrdDrawUtil.paintBezierControlPoints(d,offsetX, offsetY, + // scale, stroke, interpol.mCrossSectionControlPoints, new + // ArrayList(), flipX, flipY); //DEBUG! } } - public static void paintSlidingCrossSectionBlendInterpolation(AbstractDraw d, double offsetX, double offsetY, double rotation, double scale, Color color, Stroke stroke, boolean flipX, boolean flipY, double pos, BezierBoard brd) - { - - - // - mMulX = flipX?-1:1; - mMulY = flipY?-1:1; + public static void paintSlidingCrossSectionBlendInterpolation(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, boolean flipX, + boolean flipY, double pos, BezierBoard brd) { mBrd = brd; d.setColor(color); d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, rotation, scale); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation, flipX, flipY); - //Calculate scales - double halfWidth = mBrd.getWidthAtPos(pos)/2; + // Calculate scales + double halfWidth = mBrd.getWidthAtPos(pos) / 2; halfWidth -= .00001; - paintSlidingCrossSectionBlendInterpolation(d, pos,0, halfWidth/2); - paintSlidingCrossSectionBlendInterpolation(d, pos,halfWidth/2, halfWidth); - paintSlidingCrossSectionBlendInterpolationReverse(d, pos, 0, halfWidth/2); - paintSlidingCrossSectionBlendInterpolationReverse(d, pos, halfWidth/2, halfWidth); - + paintSlidingCrossSectionBlendInterpolation(d, pos, 0, halfWidth / 2); + paintSlidingCrossSectionBlendInterpolation(d, pos, halfWidth / 2, halfWidth); + paintSlidingCrossSectionBlendInterpolationReverse(d, pos, 0, halfWidth / 2); + paintSlidingCrossSectionBlendInterpolationReverse(d, pos, halfWidth / 2, halfWidth); double z0 = mBrd.getDeckAtPos(pos, halfWidth); double z1 = mBrd.getBottomAtPos(pos, halfWidth); - ls.setLine(halfWidth*mMulX, z0*mMulY, halfWidth*mMulX, z1*mMulY); + ls.setLine(halfWidth, z0, halfWidth, z1); d.draw(ls); - ls.setLine(-halfWidth*mMulX, z0*mMulY, -halfWidth*mMulX, z1*mMulY); + ls.setLine(-halfWidth, z0, -halfWidth, z1); d.draw(ls); - resetTransform(d,savedTransform); + resetTransform(d, savedTransform); } - /* - public static void paintSlidingCrossSectionS(double x, double s0, double s1 ) - { - -// Get endpoints - double z0 = mBrd.getDeckAtPos(x, y0); - double z1 = mBrd.getDeckAtPos(x, y1); - -// Get x split point - double ys = (y1-y0)/2 + y0; - double zs = mBrd.getDeckAtPos(x, ys); - -// Distance between centerpoint and real split curvepoint - double length = BezierPatch.getVecLength(y0,z0,ys,zs) + BezierPatch.getVecLength(ys,zs,y1,z1); - double chord = BezierPatch.getVecLength(y0,z0,y1,z1); - - if(Double.isInfinite(chord) || Double.isInfinite(length) || - Double.isNaN(chord) || Double.isNaN(length) ) - return; - - if(Math.abs(length - chord) > SLIDING_CROSS_SECTION_TOLERANCE && chord > SLIDING_CROSS_SECTION_MIN_LINE_LENGTH ) - { - paintSlidingCrossSection(x, y0, ys); - paintSlidingCrossSection(x, ys, y1); - } - else - { - ls.setLine(y0*mMulX, z0*mMulY, ys*mMulX, zs*mMulY); - ds.draw(ls); - ls.setLine(ys*mMulX, zs*mMulY, y1*mMulX, z1*mMulY); - ds.draw(ls); - } - } + /* + * public static void paintSlidingCrossSectionS(double x, double s0, double + * s1 ) { + * + * // Get endpoints double z0 = mBrd.getDeckAtPos(x, y0); double z1 = + * mBrd.getDeckAtPos(x, y1); + * + * // Get x split point double ys = (y1-y0)/2 + y0; double zs = + * mBrd.getDeckAtPos(x, ys); + * + * // Distance between centerpoint and real split curvepoint double length = + * BezierPatch.getVecLength(y0,z0,ys,zs) + + * BezierPatch.getVecLength(ys,zs,y1,z1); double chord = + * BezierPatch.getVecLength(y0,z0,y1,z1); + * + * if(Double.isInfinite(chord) || Double.isInfinite(length) || + * Double.isNaN(chord) || Double.isNaN(length) ) return; + * + * if(Math.abs(length - chord) > SLIDING_CROSS_SECTION_TOLERANCE && chord > + * SLIDING_CROSS_SECTION_MIN_LINE_LENGTH ) { paintSlidingCrossSection(x, y0, + * ys); paintSlidingCrossSection(x, ys, y1); } else { ls.setLine(y0*mMulX, + * z0*mMulY, ys*mMulX, zs*mMulY); ds.draw(ls); ls.setLine(ys*mMulX, + * zs*mMulY, y1*mMulX, z1*mMulY); ds.draw(ls); } + * + * } */ - public static void paintSlidingCrossSectionBlendInterpolation(AbstractDraw d, double x, double y0, double y1 ) - { -// Get endpoints + public static void paintSlidingCrossSectionBlendInterpolation(AbstractDraw d, double x, double y0, double y1) { + // Get endpoints double z0 = mBrd.getDeckAtPos(x, y0); double z1 = mBrd.getDeckAtPos(x, y1); -// Get x split point - double ys = (y1-y0)/2 + y0; + // Get x split point + double ys = (y1 - y0) / 2 + y0; double zs = mBrd.getDeckAtPos(x, ys); -// Distance between centerpoint and real split curvepoint - double length = VecMath.getVecLength(y0,z0,ys,zs) + VecMath.getVecLength(ys,zs,y1,z1); - double chord = VecMath.getVecLength(y0,z0,y1,z1); + // Distance between centerpoint and real split curvepoint + double length = VecMath.getVecLength(y0, z0, ys, zs) + VecMath.getVecLength(ys, zs, y1, z1); + double chord = VecMath.getVecLength(y0, z0, y1, z1); - if(Double.isInfinite(chord) || Double.isInfinite(length) || - Double.isNaN(chord) || Double.isNaN(length) ) + if (Double.isInfinite(chord) || Double.isInfinite(length) || Double.isNaN(chord) || Double.isNaN(length)) return; - if(Math.abs(y1 - y0) > SLIDING_CROSS_MIN_SPLIT && (chord > SLIDING_CROSS_SECTION_MAX_LINE_LENGTH || (Math.abs(length - chord) > SLIDING_CROSS_SECTION_TOLERANCE && chord > SLIDING_CROSS_SECTION_MIN_LINE_LENGTH ))) - { + if (Math.abs(y1 - y0) > SLIDING_CROSS_MIN_SPLIT + && (chord > SLIDING_CROSS_SECTION_MAX_LINE_LENGTH || (Math.abs(length - chord) > SLIDING_CROSS_SECTION_TOLERANCE && chord > SLIDING_CROSS_SECTION_MIN_LINE_LENGTH))) { paintSlidingCrossSectionBlendInterpolation(d, x, y0, ys); paintSlidingCrossSectionBlendInterpolation(d, x, ys, y1); - } - else - { - ls.setLine(y0*mMulX, z0*mMulY, ys*mMulX, zs*mMulY); + } else { + ls.setLine(y0, z0, ys, zs); d.draw(ls); - ls.setLine(ys*mMulX, zs*mMulY, y1*mMulX, z1*mMulY); + ls.setLine(ys, zs, y1, z1); d.draw(ls); - ls.setLine(-y0*mMulX, z0*mMulY, -ys*mMulX, zs*mMulY); + ls.setLine(-y0, z0, -ys, zs); d.draw(ls); - ls.setLine(-ys*mMulX, zs*mMulY, -y1*mMulX, z1*mMulY); + ls.setLine(-ys, zs, -y1, z1); d.draw(ls); } } - public static void paintSlidingCrossSectionBlendInterpolationReverse(AbstractDraw d, double x, double y0, double y1 ) - { -// Get endpoints + public static void paintSlidingCrossSectionBlendInterpolationReverse(AbstractDraw d, double x, double y0, double y1) { + // Get endpoints double z0 = mBrd.getBottomAtPos(x, y0); double z1 = mBrd.getBottomAtPos(x, y1); -// Get x split point - double ys = (y1-y0)/2 + y0; + // Get x split point + double ys = (y1 - y0) / 2 + y0; double zs = mBrd.getBottomAtPos(x, ys); -// Distance between centerpoint and real split curvepoint - double length = VecMath.getVecLength(y0,z0,ys,zs) + VecMath.getVecLength(ys,zs,y1,z1); - double chord = VecMath.getVecLength(y0,z0,y1,z1); + // Distance between centerpoint and real split curvepoint + double length = VecMath.getVecLength(y0, z0, ys, zs) + VecMath.getVecLength(ys, zs, y1, z1); + double chord = VecMath.getVecLength(y0, z0, y1, z1); - if(Double.isInfinite(chord) || Double.isInfinite(length) || - Double.isNaN(chord) || Double.isNaN(length) ) + if (Double.isInfinite(chord) || Double.isInfinite(length) || Double.isNaN(chord) || Double.isNaN(length)) return; - if(Math.abs(y1 - y0) > SLIDING_CROSS_MIN_SPLIT && (chord > SLIDING_CROSS_SECTION_MAX_LINE_LENGTH || (Math.abs(length - chord) > SLIDING_CROSS_SECTION_TOLERANCE && chord > SLIDING_CROSS_SECTION_MIN_LINE_LENGTH )) ) - { + if (Math.abs(y1 - y0) > SLIDING_CROSS_MIN_SPLIT + && (chord > SLIDING_CROSS_SECTION_MAX_LINE_LENGTH || (Math.abs(length - chord) > SLIDING_CROSS_SECTION_TOLERANCE && chord > SLIDING_CROSS_SECTION_MIN_LINE_LENGTH))) { paintSlidingCrossSectionBlendInterpolationReverse(d, x, y0, ys); paintSlidingCrossSectionBlendInterpolationReverse(d, x, ys, y1); - } - else - { - ls.setLine(y0*mMulX, z0*mMulY, ys*mMulX, zs*mMulY); + } else { + ls.setLine(y0, z0, ys, zs); d.draw(ls); - ls.setLine(ys*mMulX, zs*mMulY, y1*mMulX, z1*mMulY); + ls.setLine(ys, zs, y1, z1); d.draw(ls); - ls.setLine(-y0*mMulX, z0*mMulY, -ys*mMulX, zs*mMulY); + ls.setLine(-y0, z0, -ys, zs); d.draw(ls); - ls.setLine(-ys*mMulX, zs*mMulY, -y1*mMulX, z1*mMulY); - d.draw(ls); - } - } - - public static void paintDetails(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierSpline[] beziers, boolean flipX, boolean flipY, boolean mirrorX, boolean mirrorY, double posOffsetX, double posOffsetY, double measurementOffsetX, double measurementOffsetY) - { - for(int i = 0; i < beziers.length; i++ ) - { - paintBezierSpline(d,offsetX, offsetY, scale, color, stroke, beziers[i],((flipX==true)?BezierBoardDrawUtil.FlipX:0)|((flipY==true)?BezierBoardDrawUtil.FlipY:0)|((mirrorX==true)?BezierBoardDrawUtil.MirrorX:0)|((mirrorY==true)?BezierBoardDrawUtil.MirrorY:0), true); - } + ls.setLine(-ys, zs, -y1, z1); + d.draw(ls); + } } - public static void paintDetailsVertical(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, BezierSpline[] beziers, boolean flipX, boolean flipY, boolean mirrorX, boolean mirrorY, double posOffsetX, double posOffsetY, double measurementOffsetX, double measurementOffsetY) - { - for(int i = 0; i < beziers.length; i++ ) - { - paintBezierSpline(d,offsetX, offsetY, Math.PI/4.0, scale, color, stroke, beziers[i],((flipX==true)?BezierBoardDrawUtil.FlipX:0)|((flipY==true)?BezierBoardDrawUtil.FlipY:0)|((mirrorX==true)?BezierBoardDrawUtil.MirrorX:0)|((mirrorY==true)?BezierBoardDrawUtil.MirrorY:0), true); + public static void paintDetails(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierSpline[] beziers, boolean flipX, boolean flipY, + boolean mirrorX, boolean mirrorY, double posOffsetX, double posOffsetY, double measurementOffsetX, double measurementOffsetY) { + for (int i = 0; i < beziers.length; i++) { + paintBezierSpline(d, offsetX, offsetY, scale, rotation, color, stroke, beziers[i], ((flipX == true) ? BezierBoardDrawUtil.FlipX : 0) | ((flipY == true) ? BezierBoardDrawUtil.FlipY : 0) + | ((mirrorX == true) ? BezierBoardDrawUtil.MirrorX : 0) | ((mirrorY == true) ? BezierBoardDrawUtil.MirrorY : 0), true); } } - public static AffineTransform setTransform(AbstractDraw d, double offsetX, double offsetY, double scale) - { - - AffineTransform savedTransform = d.getTransform(); - - final AffineTransform at = new AffineTransform(); - - at.setToTranslation(offsetX, offsetY); - - d.transform(at); - - at.setToScale(scale, scale); - - d.transform(at); - - return savedTransform; + public static void paintDetailsVertical(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, BezierSpline[] beziers, boolean flipX, + boolean flipY, boolean mirrorX, boolean mirrorY, double posOffsetX, double posOffsetY, double measurementOffsetX, double measurementOffsetY) { + for (int i = 0; i < beziers.length; i++) { + paintBezierSpline(d, offsetX, offsetY, scale, Math.PI / 4.0, color, stroke, beziers[i], ((flipX == true) ? BezierBoardDrawUtil.FlipX : 0) + | ((flipY == true) ? BezierBoardDrawUtil.FlipY : 0) | ((mirrorX == true) ? BezierBoardDrawUtil.MirrorX : 0) | ((mirrorY == true) ? BezierBoardDrawUtil.MirrorY : 0), true); + } } - public static AffineTransform setTransform(AbstractDraw d, double offsetX, double offsetY, double scale, boolean mirrorX, boolean mirrorY) - { + static public AffineTransform setTransform(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation) { AffineTransform savedTransform = d.getTransform(); @@ -1877,155 +1623,133 @@ public static AffineTransform setTransform(AbstractDraw d, double offsetX, doubl at.setToTranslation(offsetX, offsetY); - d.transform(at); + at.scale(scale, scale); - at.setToScale(scale*(mirrorX?-1.0:1.0), scale*(mirrorY?-1.0:1.0)); + at.rotate(rotation); d.transform(at); return savedTransform; } - static AffineTransform setTransform(AbstractDraw d, double offsetX, double offsetY, double rotation, double scale) - { + public static AffineTransform setTransform(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, boolean mirrorX, boolean mirrorY) { AffineTransform savedTransform = d.getTransform(); final AffineTransform at = new AffineTransform(); - at.setToTranslation(offsetX, offsetY); - d.transform(at); + if (scale == 0.0) { + System.out.println("Error, scale is 0.0"); + } - at.setToScale(scale, scale); + at.scale(scale * (mirrorX ? -1.0 : 1.0), scale * (mirrorY ? -1.0 : 1.0)); - d.transform(at); - - at.setToRotation(rotation); + if (rotation != 0.0) { + at.rotate(rotation); + } d.transform(at); return savedTransform; } - - static void resetTransform(AbstractDraw d, AffineTransform savedTransform) - { + static void resetTransform(AbstractDraw d, AffineTransform savedTransform) { d.setTransform(savedTransform); } + // Old functions originating from printing + private static void setImperialGridLineStrokeAndColor(AbstractDraw d, Color color, int i, double scale) { -// Old functions orginating from printing - private static void setImperialGridLineStrokeAndColor(AbstractDraw d, Color color, int i, double scale) - { - - if (i%12 == 0) - { + if (i % 12 == 0) { d.setColor(color.darker().darker()); - d.setStroke(new BasicStroke((float)(1.5/scale))); - } - else if (i%6 == 0) - { + d.setStroke(new BasicStroke((float) (1.5 / scale))); + } else if (i % 6 == 0) { d.setColor(color.darker()); - d.setStroke(new BasicStroke((float)(1.2/scale))); - } - else - { + d.setStroke(new BasicStroke((float) (1.2 / scale))); + } else { d.setColor(color); - d.setStroke(new BasicStroke((float)(1.0/scale))); + d.setStroke(new BasicStroke((float) (1.0 / scale))); } } - -// Old functions orginating from printing - private static void setMetricGridLineStrokeAndColor(AbstractDraw d, Color color, int i, double scale) - { + // Old functions orginating from printing + private static void setMetricGridLineStrokeAndColor(AbstractDraw d, Color color, int i, double scale) { - if (i%100 == 0) - { + if (i % 100 == 0) { d.setColor(color.darker().darker().darker()); - d.setStroke(new BasicStroke((float)(1.5/scale))); - } - else - if (i%50 == 0) - { + d.setStroke(new BasicStroke((float) (1.5 / scale))); + } else if (i % 50 == 0) { d.setColor(color.darker().darker()); - d.setStroke(new BasicStroke((float)(1.3/scale))); - } - else if (i%10 == 0) - { + d.setStroke(new BasicStroke((float) (1.3 / scale))); + } else if (i % 10 == 0) { d.setColor(color.darker()); - d.setStroke(new BasicStroke((float)(1.1/scale))); - } - else - { + d.setStroke(new BasicStroke((float) (1.1 / scale))); + } else { d.setColor(color); - d.setStroke(new BasicStroke((float)(1.0/scale))); + d.setStroke(new BasicStroke((float) (1.0 / scale))); } } - public static void printOutline(AbstractDraw d, double offsetX, - double offsetY, double rotation, double scale, boolean paintGrid, BezierBoard brd, boolean printGuidePoints, boolean printFins) { + double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, boolean printGuidePoints, boolean printFins) { + + if (brd.isEmpty()) { - if(brd.isEmpty()) { - return; - + } - if(brd.getOutline().getNrOfControlPoints() < 2) { + if (brd.getOutline().getNrOfControlPoints() < 2) { return; } - paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), brd.getLength(), brd.getCenterWidth()/2.0, false, false); + paintGrid(d, offsetX, offsetY, scale, rotation, new Color(128, 128, 128), brd.getLength(), brd.getCenterWidth() / 2.0, false, false); + + GeneralPath outlineLower = makeBezierPathFromControlPoints(brd.getOutline(), false, false, false, false); - GeneralPath outlineLower = makeBezierPathFromControlPoints(brd.getOutline(),false,false, false, false); + GeneralPath outlineUpper = makeBezierPathFromControlPoints(brd.getOutline(), false, true, false, false); - GeneralPath outlineUpper = makeBezierPathFromControlPoints(brd.getOutline(),false,true, false, false); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mOutlineControlPoints, null, false, false); -// paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mOutlineControlPoints, null, false, false); + paintPath(d, offsetX, offsetY, scale, rotation, BoardCAD.getInstance().getBrdColor(), stroke, outlineLower, false); - - paintPath(d,offsetX, offsetY, rotation, scale, BoardCAD.getInstance().getBrdColor(), stroke, outlineLower, false); - - paintPath(d,offsetX, offsetY, rotation, scale, BoardCAD.getInstance().getBrdColor(), stroke, outlineUpper, false); + paintPath(d, offsetX, offsetY, scale, rotation, BoardCAD.getInstance().getBrdColor(), stroke, outlineUpper, false); - if(printGuidePoints == true) - { - BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, Color.GRAY, stroke, brd.getOutlineGuidePoints(), false, false); + if (printGuidePoints == true) { + BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, rotation, Color.GRAY, stroke, brd.getOutlineGuidePoints(), false, false); } - - if(printFins == true) - { - BezierBoardDrawUtil.paintFins(d, offsetX, offsetY, scale, Color.GRAY, stroke, brd.getFins(), false, false); + + if (printFins == true) { + BezierBoardDrawUtil.paintFins(d, offsetX, offsetY, scale, rotation, Color.GRAY, stroke, brd.getFins(), false, false); } } - public static void printOutlineOverCurve(AbstractDraw d, double offsetX, + public static void printOutlineOverCurve(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, boolean printGuidePoints, + boolean printFins, boolean mirrorX, boolean mirrorY) { - double offsetY, double rotation, double scale, boolean paintGrid, BezierBoard brd, boolean printGuidePoints, boolean printFins, boolean mirrorX, boolean mirrorY) { + if (brd.isEmpty()) { - if(brd.isEmpty()) { - return; - + } - if(brd.getOutline().getNrOfControlPoints() < 2) { + if (brd.getOutline().getNrOfControlPoints() < 2) { return; @@ -2033,299 +1757,308 @@ public static void printOutlineOverCurve(AbstractDraw d, double offsetX, System.out.printf("\nOUTLINE OVER CURVE\n"); - if(paintGrid) - { - paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), brd.getLength(), brd.getMaxWidth()/2.0, false, false); + if (paintGrid) { + paintGrid(d, offsetX, offsetY, scale, rotation, new Color(128, 128, 128), brd.getLength(), brd.getMaxWidth() / 2.0, false, false); } - - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(0,0,0)); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, false, false); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mBottomControlPoints, false, false); - - // paintBezierSpline(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, deck); - - // paintBezierSpline(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, bottom); - + d.setColor(new Color(0, 0, 0)); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, + // false, false); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mBottomControlPoints, false, false); + + // paintBezierSpline(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, deck); + + // paintBezierSpline(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, bottom); + double step = 0.3; BezierSpline outline = brd.getOutline(); BezierSpline bottom = brd.getBottom(); - + GeneralPath path = new GeneralPath(); - path.moveTo(0.0,0.0); - for(double ox = 0; ox <= brd.getLength(); ox += step) - { - //Get the outline point and the angle - double oy = outline.getValueAt(ox)*(mirrorY?-1.0:1.0); - - //Find the length over deck curve - double length = bottom.getLengthByX(ox)*(mirrorX?-1.0:1.0); - -// System.out.printf("OC: %f, width %f\n", length, oy*2.0); - - //Draw lines + path.moveTo(0.0, 0.0); + for (double ox = 0; ox <= brd.getLength(); ox += step) { + // Get the outline point and the angle + double oy = outline.getValueAt(ox) * (mirrorY ? -1.0 : 1.0); + + // Find the length over deck curve + double length = bottom.getLengthByX(ox) * (mirrorX ? -1.0 : 1.0); + + // System.out.printf("OC: %f, width %f\n", length, oy*2.0); + + // Draw lines path.lineTo(length, oy); } d.draw(path); - - d.setTransform(savedTransform); - - if(printGuidePoints == true) - { - BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, Color.GRAY, stroke, brd.getOutlineGuidePoints(), false, false); + + resetTransform(d, savedTransform); + + if (printGuidePoints == true) { + BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, rotation, Color.GRAY, stroke, brd.getOutlineGuidePoints(), false, false); } - - if(printFins == true) - { - BezierBoardDrawUtil.paintFins(d, offsetX, offsetY, scale, Color.GRAY, stroke, brd.getFins(), false, false); + + if (printFins == true) { + BezierBoardDrawUtil.paintFins(d, offsetX, offsetY, scale, rotation, Color.GRAY, stroke, brd.getFins(), false, false); } } public static void printSpinTemplate(AbstractDraw d, double offsetX, - double offsetY, double rotation, double scale, boolean paintGrid, BezierBoard brd, boolean printGuidePoints, boolean printFins) { + double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, boolean printGuidePoints, boolean printFins) { + + if (brd.isEmpty()) { - if(brd.isEmpty()) { - return; - + } - if(brd.getOutline().getNrOfControlPoints() < 2) { + if (brd.getOutline().getNrOfControlPoints() < 2) { return; } + paintGrid(d, offsetX, offsetY, scale, rotation, new Color(128, 128, 128), brd.getLength(), brd.getMaxWidth() / 2, false, false); - paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), brd.getLength(), brd.getMaxWidth()/2, false, false); + GeneralPath outlineLower = makeBezierPathFromControlPoints(brd.getOutline(), false, false, false, false); - GeneralPath outlineLower = makeBezierPathFromControlPoints(brd.getOutline(),false,false, false,false); + GeneralPath outlineUpper = makeBezierPathFromControlPoints(brd.getOutline(), false, true, false, false); - GeneralPath outlineUpper = makeBezierPathFromControlPoints(brd.getOutline(),false,true, false,false); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mOutlineControlPoints, null, false, false); -// paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mOutlineControlPoints, null, false, false); + paintPath(d, offsetX, offsetY, scale, rotation, BoardCAD.getInstance().getBrdColor(), stroke, outlineLower, false); - paintPath(d,offsetX, offsetY, rotation, scale, BoardCAD.getInstance().getBrdColor(), stroke, outlineLower, false); + // Calculate offset + double xOffset = brd.getLength() / 2.0; + double yOffset = brd.getWidthAt(xOffset) / 2.0; - //Calculate offset - double xOffset = brd.getLength()/2.0; - double yOffset = brd.getWidthAt(xOffset)/2.0; - xOffset *= scale; yOffset *= scale; - + double rotationOffset = 0.0; - paintPath(d,offsetX-xOffset, offsetY+yOffset, rotation+rotationOffset, scale, BoardCAD.getInstance().getBrdColor(), stroke, outlineUpper, false); + paintPath(d, offsetX - xOffset, offsetY + yOffset, rotation + rotationOffset, scale, BoardCAD.getInstance().getBrdColor(), stroke, outlineUpper, false); } public static void printSpinTemplateOverCurve(AbstractDraw d, double offsetX, - double offsetY, double rotation, double scale, boolean paintGrid, BezierBoard brd, boolean printGuidePoints, boolean printFins) { + double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, boolean printGuidePoints, boolean printFins) { - if(brd.getOutline().getNrOfControlPoints() < 2) { + if (brd.getOutline().getNrOfControlPoints() < 2) { return; } - paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), brd.getLength(), brd.getMaxWidth()/2.0, false, false); + paintGrid(d, offsetX, offsetY, scale, rotation, new Color(128, 128, 128), brd.getLength(), brd.getMaxWidth() / 2.0, false, false); + + printOutlineOverCurve(d, offsetX, offsetY, scale, rotation, false, brd, printGuidePoints, printFins, false, false); + + // Calculate offset + double xOffset = brd.getBottom().getLengthByX(brd.getLength() / 2.0); + double yOffset = brd.getWidthAt(xOffset) / 2.0; - printOutlineOverCurve(d,offsetX, offsetY, rotation, scale, false, brd, printGuidePoints, printFins, false, false); - - //Calculate offset - double xOffset = brd.getBottom().getLengthByX(brd.getLength()/2.0); - double yOffset = brd.getWidthAt(xOffset)/2.0; - xOffset *= scale; yOffset *= scale; - + double rotationOffset = 0.0; - printOutlineOverCurve(d,offsetX-xOffset, offsetY+yOffset, rotation+rotationOffset, scale, false, brd, printGuidePoints, printFins, false, true); + printOutlineOverCurve(d, offsetX - xOffset, offsetY + yOffset, scale, rotation + rotationOffset, false, brd, printGuidePoints, printFins, false, true); } - -// Old functions orginating from printing + // Old functions orginating from printing public static void printProfile(AbstractDraw d, double offsetX, - double offsetY, double scale, boolean paintGrid, BezierBoard brd, Boolean printGuidePoints) { + double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, Boolean printGuidePoints) { - if(brd.getDeck().getNrOfControlPoints() < 2) { + if (brd.getDeck().getNrOfControlPoints() < 2) { return; } - if(paintGrid) - paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), brd.getLength(), brd.getMaxRocker()/2.0, false, false); + if (paintGrid) + paintGrid(d, offsetX, offsetY, scale, rotation, new Color(128, 128, 128), brd.getLength(), brd.getMaxRocker() / 2.0, false, false); GeneralPath deck = makeBezierPathFromControlPoints(brd.getDeck(), false, false, false, false); GeneralPath bottom = makeBezierPathFromControlPoints(brd.getBottom(), false, false, false, false); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); -// paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, false, false); + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, + // false, false); -// paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mBottomControlPoints, false, false); + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mBottomControlPoints, false, false); - paintPath(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, deck, false); + paintPath(d, offsetX, offsetY, scale, rotation, BoardCAD.getInstance().getBrdColor(), stroke, deck, false); - paintPath(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, bottom, false); + paintPath(d, offsetX, offsetY, scale, rotation, BoardCAD.getInstance().getBrdColor(), stroke, bottom, false); - if(printGuidePoints == true) - { - BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, Color.GRAY, stroke, brd.getDeckGuidePoints(), false, false); - BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, Color.GRAY, stroke, brd.getBottomGuidePoints(), false, false); + if (printGuidePoints == true) { + BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, rotation, Color.GRAY, stroke, brd.getDeckGuidePoints(), false, false); + BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, rotation, Color.GRAY, stroke, brd.getBottomGuidePoints(), false, false); } } - - - -// Old functions orginating from printing - public static void printSlice(AbstractDraw d, double offsetX, double offsetY, double scale, boolean paintGrid, BezierBoard brd, int i, boolean printGuidePoints) { + // Old functions orginating from printing + public static void printSlice(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, int i, boolean printGuidePoints) { BezierBoardCrossSection crs = brd.getCrossSections().get(i); - if(crs.getBezierSpline().getNrOfControlPoints() < 2) { + if (crs.getBezierSpline().getNrOfControlPoints() < 2) { return; } - if(paintGrid) - paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), crs.getWidth(), crs.getCenterThickness(), false, false); + if (paintGrid) + paintGrid(d, offsetX, offsetY, scale, rotation, new Color(128, 128, 128), crs.getWidth(), crs.getCenterThickness(), false, false); GeneralPath crsPath = makeBezierPathFromControlPoints(crs.getBezierSpline(), false, false, false, false); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); -// paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, false, false); + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, + // false, false); -// paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mBottomControlPoints, false, false); + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mBottomControlPoints, false, false); - paintPath(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, crsPath, false); + paintPath(d, offsetX, offsetY, scale, rotation, BoardCAD.getInstance().getBrdColor(), stroke, crsPath, false); - if(printGuidePoints == true) - { - BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, Color.GRAY, stroke, crs.getGuidePoints(), false, false); + if (printGuidePoints == true) { + BezierBoardDrawUtil.paintGuidePoints(d, offsetX, offsetY, scale, rotation, Color.GRAY, stroke, crs.getGuidePoints(), false, false); } } - - //Old functions orginating from printing - public static void printRailTemplate(AbstractDraw d, double offsetX, double offsetY, double scale, boolean paintGrid, BezierBoard brd, double distanceFromRail, double skinThickness, double tailOffset, double noseOffset, boolean flatten) - { - - if(brd.isEmpty()) { + // Old functions orginating from printing + public static void printRailTemplate(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, double distanceFromRail, + double skinThickness, double tailOffset, double noseOffset, boolean flatten) { + + if (brd.isEmpty()) { return; } - - int verticalLines = 0; - int horizontalLines = 0; - while(brd.getLength()/2.54 > verticalLines)verticalLines+=6; - while((brd.getMaxRocker()/2)/2.54 > horizontalLines)horizontalLines+=6; - - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + int verticalLines = 0; + int horizontalLines = 0; + while (brd.getLength() / 2.54 > verticalLines) + verticalLines += 6; + while ((brd.getMaxRocker() / 2) / 2.54 > horizontalLines) + horizontalLines += 6; + + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(0,0,0)); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, false, false); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mBottomControlPoints, false, false); - - // paintBezierSpline(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, deck); - - // paintBezierSpline(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, bottom); - + d.setColor(new Color(0, 0, 255)); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, + // false, false); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mBottomControlPoints, false, false); + + // paintBezierSpline(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, deck); + + // paintBezierSpline(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, bottom); + BezierSpline outline = brd.getOutline(); - + System.out.printf("\nRAIL\n"); boolean first = true; - double lastPos = 0; + double lastPos = tailOffset; double lastX = 0; double lastY = 0; double lastDeck = 0; double lastBottom = 0; - Line2D line = new Line2D.Double(); - - double length = brd.getLength()-tailOffset-noseOffset; - int steps = (int)(length/0.5); - - double step = length/steps; + // Line2D line = new Line2D.Double(); + + double length = brd.getLength() - tailOffset - noseOffset; + int steps = (int) (length / 0.5); + + double step = length / steps; GeneralPath path = new GeneralPath(); int i = 0; double x = 0.0; double y = 0.0; double ox = 0; - for(; i <= steps; i++) - { + for (; i <= steps; i++) { + + ox = tailOffset + i * step; - ox = tailOffset + i*step; - - //Get the outline point and the angle + // Get the outline point and the angle double oy = outline.getValueAt(ox); double normalAngle = outline.getNormalAngle(ox); - - //Find the target point at distance from outline - x = ox - (distanceFromRail*Math.sin(normalAngle)); - y = oy - (distanceFromRail*Math.cos(normalAngle)); - if(first && y < 0) + // Find the target point at distance from outline + x = ox - (distanceFromRail * Math.sin(normalAngle)); + y = oy - (distanceFromRail * Math.cos(normalAngle)); + + if (first && y < 0) continue; - if(!first && y < 0) + if (!first && y < 0) break; - //Find thickness and rocker at pos - double deck = getDeck(brd, x, y, skinThickness); - double bottom = getBottom(brd, x, y, skinThickness); - - if(first && deck < bottom) + // Find thickness and rocker at pos + double deck = getDeckWithSkinCompensation(brd, x, y, skinThickness); + double bottom = getBottomWithSkinCompensation(brd, x, y, skinThickness); + + // System.out.printf("printRailTemplate ox: %f oy: %f Normal: %f x: %f y: %f Deck: %f Bottom: %f\n", + // ox,oy,normalAngle/MathUtils.DEG_TO_RAD, x,y, deck, bottom); + + if (first && deck < bottom) continue; - if(!first && deck < bottom) + if (!first && deck < bottom) break; - - if(flatten) - { - double deckRockerCompensation = brd.getDeck().getValueAt(x) - brd.getThickness(); + + if (flatten) { + double deckRockerCompensation = brd.getDeck().getValueAt(x) - brd.getThickness(); deck -= deckRockerCompensation; bottom -= deckRockerCompensation; } -// System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); + if (!first) { + // Find the 2D length from the last point on deck and bottom + double xd = x - lastX; + double yd = y - lastY; + double span = Math.sqrt((xd * xd) + (yd * yd)); - if(!first) - { - //Find the 2D length from the last point on deck and bottom - double xd = x-lastX; - double yd = y-lastY; - double span = Math.sqrt((xd*xd)+(yd*yd)); - double newPos = lastPos + span; - - //Draw lines - path.lineTo(newPos,deck); - - //Update last pos + + // Draw lines + path.lineTo(newPos, deck); + + // Update last pos lastPos = newPos; - } - else - { + } else { first = false; path.moveTo(lastPos, deck); } @@ -2334,176 +2067,185 @@ public static void printRailTemplate(AbstractDraw d, double offsetX, double offs lastY = y; lastDeck = deck; lastBottom = bottom; - + } + // d.draw(path); + // path.reset(); - System.out.printf("Rail tip of nose pos at %f, deck:%f bottom:%f", ox, lastDeck, lastBottom ); + System.out.printf("Rail tip of nose pos at %f, deck:%f bottom:%f\n", ox, lastDeck, lastBottom); first = true; - for(; i > 0; i--) - { + for (; i >= 0; i--) { + + ox = tailOffset + i * step; - ox = tailOffset + i*step; - - //Get the outline point and the angle + // Get the outline point and the angle double oy = outline.getValueAt(ox); double normalAngle = outline.getNormalAngle(ox); - - //Find the target point at distance from outline - x = ox - (distanceFromRail*Math.sin(normalAngle)); - y = oy - (distanceFromRail*Math.cos(normalAngle)); - if(first && y < 0) + // Find the target point at distance from outline + x = ox - (distanceFromRail * Math.sin(normalAngle)); + y = oy - (distanceFromRail * Math.cos(normalAngle)); + + if (first && y < 0) continue; - if(!first && y < 0) + if (!first && y < 0) break; - //Find thickness and rocker at pos - double deck = getDeck(brd, x, y, skinThickness); - double bottom = getBottom(brd, x, y, skinThickness); - - if(first && deck < bottom) + // Find thickness and rocker at pos + double deck = getDeckWithSkinCompensation(brd, x, y, skinThickness); + double bottom = getBottomWithSkinCompensation(brd, x, y, skinThickness); + + if (first && deck < bottom) continue; - if(!first && deck < bottom) + if (!first && deck < bottom) break; - - if(flatten) - { - double deckRockerCompensation = brd.getDeck().getValueAt(x) - brd.getThickness(); + + if (flatten) { + double deckRockerCompensation = brd.getDeck().getValueAt(x) - brd.getThickness(); deck -= deckRockerCompensation; bottom -= deckRockerCompensation; } -// System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); + // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", + // ox,oy,normalAngle/MathUtils.DEG_TO_RAD, x,y, deck, bottom); + + if (!first) { + // Find the 2D length from the last point on deck and bottom + double xd = x - lastX; + double yd = y - lastY; + double span = Math.sqrt((xd * xd) + (yd * yd)); - if(!first) - { - //Find the 2D length from the last point on deck and bottom - double xd = x-lastX; - double yd = y-lastY; - double span = Math.sqrt((xd*xd)+(yd*yd)); - double newPos = lastPos - span; - - //Draw lines + + // Draw lines path.lineTo(newPos, bottom); - - //Update last pos + + // Update last pos lastPos = newPos; - } - else - { + } else { first = false; + // Draw lines + path.lineTo(lastPos, bottom); } lastX = x; lastY = y; lastDeck = deck; lastBottom = bottom; - + + } + + if (hasMoveTo(path)) { + path.closePath(); } - path.closePath(); d.draw(path); - d.setTransform(savedTransform); - + resetTransform(d, savedTransform); + } - - //Old functions orginating from printing - public static void printDeckSkinTemplate(AbstractDraw d, double offsetX, double offsetY, double scale, boolean paintGrid, BezierBoard brd, double distanceFromRail) { - - if(brd.isEmpty()) { - + + // Old functions orginating from printing + public static void printDeckSkinTemplate(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, double distanceFromRail) { + + if (brd.isEmpty()) { + return; - + } - + System.out.printf("\nDECK\n"); - int verticalLines = 0; - int horizontalLines = 0; - while(brd.getLength()/2.54 > verticalLines)verticalLines+=6; - while((brd.getMaxWidth()/2)/2.54 > horizontalLines)horizontalLines+=6; - -// paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), verticalLines, horizontalLines, false, false); - - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + int verticalLines = 0; + int horizontalLines = 0; + while (brd.getLength() / 2.54 > verticalLines) + verticalLines += 6; + while ((brd.getMaxWidth() / 2) / 2.54 > horizontalLines) + horizontalLines += 6; + + // paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), + // verticalLines, horizontalLines, false, false); + + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(0,0,0)); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, false, false); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mBottomControlPoints, false, false); - - // paintBezierSpline(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, deck); - - // paintBezierSpline(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, bottom); - + d.setColor(new Color(0, 0, 0)); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, + // false, false); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mBottomControlPoints, false, false); + + // paintBezierSpline(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, deck); + + // paintBezierSpline(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, bottom); + double step = 1.0; BezierSpline outline = brd.getOutline(); BezierSpline deck = brd.getDeck(); - + boolean first = true; double lastPos = 0; double lastLength = 0; double lastWidth = 0; Line2D line = new Line2D.Double(); - for(double ox = 0; ox < brd.getLength(); ox += step) - { - //Get the outline point and the angle + for (double ox = 0; ox < brd.getLength(); ox += step) { + // Get the outline point and the angle double oy = outline.getValueAt(ox); double normalAngle = outline.getNormalAngle(ox); - - //Find the target point at distance from outline - double x = ox - (distanceFromRail*Math.sin(normalAngle)); - double y = oy - (distanceFromRail*Math.cos(normalAngle)); - if(first && y < 0) + // Find the target point at distance from outline + double x = ox - (distanceFromRail * Math.sin(normalAngle)); + double y = oy - (distanceFromRail * Math.cos(normalAngle)); + + if (first && y < 0) continue; - if(!first && y < 0) + if (!first && y < 0) break; - -// System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y); - //Find the length over deck curve + // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f\n", + // ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y); + + // Find the length over deck curve double length = deck.getLengthByX(x); - - //Find the width of the template at this point accounting for over curve + + // Find the width of the template at this point accounting for over + // curve double width = 0; double lastz = brd.getDeckAt(x, 0.0); double splits = 10; - double step_y = y/splits; - for(int i = 0; i < splits; i++) - { - double z = brd.getDeckAt(x, i*step_y); - + double step_y = y / splits; + for (int i = 0; i < splits; i++) { + double z = brd.getDeckAt(x, i * step_y); + double dz = z - lastz; - double span = Math.sqrt((step_y*step_y)+(dz*dz)); + double span = Math.sqrt((step_y * step_y) + (dz * dz)); -// System.out.printf("z %f\n", z); + // System.out.printf("z %f\n", z); lastz = z; width += span; } - -// System.out.printf("width %f\n", width); - - if(!first) - { - double newPos = lastPos + (length - lastLength); - - //Draw lines + + // System.out.printf("width %f\n", width); + + if (!first) { + double newPos = lastPos + (length - lastLength); + + // Draw lines line.setLine(lastPos, lastWidth, newPos, width); d.draw(line); - + lastPos = newPos; - } - else - { + } else { first = false; } @@ -2511,101 +2253,106 @@ public static void printDeckSkinTemplate(AbstractDraw d, double offsetX, double lastWidth = width; } - d.setTransform(savedTransform); - + resetTransform(d, savedTransform); + } - //Old functions orginating from printing - public static void printBottomSkinTemplate(AbstractDraw d, double offsetX, double offsetY, double scale, boolean paintGrid, BezierBoard brd, double distanceFromRail) - { - if(brd.isEmpty()) { - + // Old functions orginating from printing + public static void printBottomSkinTemplate(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, double distanceFromRail) { + if (brd.isEmpty()) { + return; - + } - + System.out.printf("\nBOTTOM\n"); - int verticalLines = 0; - int horizontalLines = 0; - while(brd.getLength()/2.54 > verticalLines)verticalLines+=6; - while((brd.getMaxWidth()/2)/2.54 > horizontalLines)horizontalLines+=6; - -// paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), verticalLines, horizontalLines, false, false); - - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + int verticalLines = 0; + int horizontalLines = 0; + while (brd.getLength() / 2.54 > verticalLines) + verticalLines += 6; + while ((brd.getMaxWidth() / 2) / 2.54 > horizontalLines) + horizontalLines += 6; + + // paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), + // verticalLines, horizontalLines, false, false); + + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(0,0,0)); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, false, false); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mBottomControlPoints, false, false); - - // paintBezierSpline(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, deck); - - // paintBezierSpline(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, bottom); - + d.setColor(new Color(0, 0, 0)); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, + // false, false); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mBottomControlPoints, false, false); + + // paintBezierSpline(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, deck); + + // paintBezierSpline(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, bottom); + double step = 1.0; BezierSpline outline = brd.getOutline(); BezierSpline bottom = brd.getBottom(); - + boolean first = true; double lastPos = 0; double lastLength = 0; double lastWidth = 0; Line2D line = new Line2D.Double(); - for(double ox = 0; ox < brd.getLength(); ox += step) - { - //Get the outline point and the angle + for (double ox = 0; ox < brd.getLength(); ox += step) { + // Get the outline point and the angle double oy = outline.getValueAt(ox); double normalAngle = outline.getNormalAngle(ox); - - //Find the target point at distance from outline - double x = ox - (distanceFromRail*Math.sin(normalAngle)); - double y = oy - (distanceFromRail*Math.cos(normalAngle)); - if(first && y < 0) + // Find the target point at distance from outline + double x = ox - (distanceFromRail * Math.sin(normalAngle)); + double y = oy - (distanceFromRail * Math.cos(normalAngle)); + + if (first && y < 0) continue; - if(!first && y < 0) + if (!first && y < 0) break; - -// System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y); - //Find the length over deck curve + // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f\n", + // ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y); + + // Find the length over deck curve double length = bottom.getLengthByX(x); - - //Find the width of the template at this point accounting for over curve + + // Find the width of the template at this point accounting for over + // curve double width = 0; double lastz = brd.getBottomAt(x, 0.0); double splits = 10; - double step_y = y/splits; - for(int i = 0; i < splits; i++) - { - double z = brd.getBottomAt(x, i*step_y); - + double step_y = y / splits; + for (int i = 0; i < splits; i++) { + double z = brd.getBottomAt(x, i * step_y); + double dz = z - lastz; - double span = Math.sqrt((step_y*step_y)+(dz*dz)); + double span = Math.sqrt((step_y * step_y) + (dz * dz)); lastz = z; width += span; } - -// System.out.printf("width %f\n", width); - - if(!first) - { - double newPos = lastPos + (length - lastLength); - - //Draw lines + + // System.out.printf("width %f\n", width); + + if (!first) { + double newPos = lastPos + (length - lastLength); + + // Draw lines line.setLine(lastPos, lastWidth, newPos, width); d.draw(line); - + lastPos = newPos; - } - else - { + } else { first = false; } @@ -2613,392 +2360,393 @@ public static void printBottomSkinTemplate(AbstractDraw d, double offsetX, doubl lastWidth = width; } - d.setTransform(savedTransform); - + resetTransform(d, savedTransform); + } - public static void printCrossSection(AbstractDraw d, double offsetX, double offsetY, double scale, boolean paintGrid, BezierBoard brd, double position) - { - if(brd.isEmpty()) { - + public static void printCrossSection(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, double position) { + if (brd.isEmpty()) { + return; - + } - - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(0,0,0)); - + d.setColor(new Color(0, 0, 0)); + System.out.printf("\nCROSSSECTION\n"); int steps = 300; - + double x = position; - + GeneralPath path = new GeneralPath(); - + double s = 0.0; - //Find thickness and rocker at pos + // Find thickness and rocker at pos Point2D.Double current = brd.getSurfacePointAtPos(x, s); path.moveTo(current.x, current.y); - for(int i = 1; i <= steps; i++) - { - s = (double)i/steps; - - //Find thickness and rocker at pos + for (int i = 1; i <= steps; i++) { + s = (double) i / steps; + + // Find thickness and rocker at pos current = brd.getSurfacePointAtPos(x, s); - - //System.out.printf("Outline x: %f s: %f current: %f %f \n", x, s, current.x, current.y); + + // System.out.printf("Outline x: %f s: %f current: %f %f \n", x, s, + // current.x, current.y); path.lineTo(current.x, current.y); - + } - path.closePath(); + + if (hasMoveTo(path)) { + path.closePath(); + } + d.draw(path); - d.setTransform(savedTransform); - + resetTransform(d, savedTransform); + } - //Old functions orginating from printing - public static void printCrossSection(AbstractDraw d, double offsetX, double offsetY, double scale, boolean paintGrid, BezierBoard brd, double position, double railOffset, double skinThickness) - { - if(brd.isEmpty()) { - + // Old functions orginating from printing + public static void printCrossSection(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, double position, double railOffset, + double skinThickness) { + if (brd.isEmpty()) { + return; - + } - - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(0,0,0)); - + d.setColor(new Color(0, 0, 0)); + System.out.printf("\nCROSSSECTION\n"); GeneralPath path = new GeneralPath(); + double halfWidth = brd.getWidthAt(position) / 2.0f; - double halfWidth = brd.getWidthAt(position)/2.0f; - double outlineAngle = Math.abs(brd.getOutline().getTangentAt(position)); - + double sinOutline = Math.sin(outlineAngle); - - halfWidth -= railOffset/sinOutline; - Vector3d upVector = new Vector3d(0.0, 0.0, 1.0); + halfWidth -= railOffset / sinOutline; int steps = 150; - + double x = position; - + boolean first = true; - //Deck - for(int i = 0; i <= steps; i++) - { - double y = i* halfWidth / steps; - - //Find thickness and rocker at pos + // Deck + for (int i = 0; i <= steps; i++) { + double y = i * halfWidth / steps; + + // Find thickness and rocker at pos double deck = brd.getDeckAt(x, y); - - if(skinThickness != 0.0) - { + + if (skinThickness != 0.0) { Vector3d deckNormal = brd.getDeckNormalAt(x, y); - + double upAngle = upVector.angle(deckNormal); - double deckSkinCompensation = skinThickness/Math.cos(upAngle); - + double deckSkinCompensation = skinThickness / Math.cos(upAngle); + deck += deckSkinCompensation; } - // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); + // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", + // ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); - if(!first) - { - //Draw lines + if (!first) { + // Draw lines path.lineTo(y, deck); - } - else - { + } else { path.moveTo(y, deck); first = false; } - } - - //Bottom - for(int i = 0; i <= steps; i++) - { - double y = halfWidth - (i* halfWidth / steps); - - //Find thickness and rocker at pos + + // Bottom + for (int i = 0; i <= steps; i++) { + double y = halfWidth - (i * halfWidth / steps); + + // Find thickness and rocker at pos double bottom = brd.getBottomAt(x, y); - - if(skinThickness != 0.0) - { + + if (skinThickness != 0.0) { Vector3d bottomNormal = brd.getBottomNormalAt(x, y); - - double downAngle = upVector.angle(bottomNormal); - double bottomSkinCompensation = skinThickness/Math.cos(downAngle); - + double downAngle = downVector.angle(bottomNormal); + + double bottomSkinCompensation = skinThickness / Math.cos(downAngle); + bottom -= bottomSkinCompensation; } - // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); + // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", + // ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); - //Draw lines + // Draw lines path.lineTo(y, bottom); - } - path.closePath(); + if (hasMoveTo(path)) { + path.closePath(); + } + d.draw(path); - if(railOffset > 0.0) - { - //Find thickness and rocker at pos + if (railOffset > 0.0) { + // Find thickness and rocker at pos double deck = brd.getDeckAt(x, halfWidth); - double bottom = brd.getBottomAt(x, halfWidth); + double bottom = brd.getBottomAt(x, halfWidth); d.draw(new Line2D.Double(halfWidth, deck, halfWidth, bottom)); } - - d.setTransform(savedTransform); - + + resetTransform(d, savedTransform); + } - - //Old functions orginating from printing - public static void printProfile(AbstractDraw d, double offsetX, double offsetY, double scale, boolean paintGrid, BezierBoard brd, double offset, double skinThickness, boolean flatten, double tailOffset, double noseOffset) - { - printProfile(d, new Color(0,0,0), 2.0, offsetX, offsetY, scale, paintGrid, brd, offset, skinThickness, flatten, tailOffset, noseOffset); + + // Old functions orginating from printing + public static void printProfile(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, double offset, double skinThickness, + boolean flatten, double tailOffset, double noseOffset) { + printProfile(d, new Color(0, 0, 0), 2.0, offsetX, offsetY, scale, rotation, paintGrid, brd, offset, skinThickness, flatten, tailOffset, noseOffset); } - - //Old functions orginating from printing - public static void printProfile(AbstractDraw d, Color color, double lineWidth, double offsetX, double offsetY, double scale, boolean paintGrid, BezierBoard brd, double offset, double skinThickness, boolean flatten, double tailOffset, double noseOffset) - { - if(brd.isEmpty()){ + + // Old functions orginating from printing + public static void printProfile(AbstractDraw d, Color color, double lineWidth, double offsetX, double offsetY, double scale, double rotation, boolean paintGrid, BezierBoard brd, double offset, + double skinThickness, boolean flatten, double tailOffset, double noseOffset) { + if (brd.isEmpty()) { return; } - + System.out.printf("\nPROFILE\n"); - if(paintGrid){ - paintGrid(d, offsetX, offsetY, scale, new Color(128,128,128), brd.getLength(), brd.getMaxRocker(), false, false); + if (paintGrid) { + paintGrid(d, offsetX, offsetY, scale, rotation, new Color(128, 128, 128), brd.getLength(), brd.getMaxRocker(), false, false); } - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(lineWidth/scale)); + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (lineWidth / scale)); d.setStroke(stroke); d.setColor(color); boolean first = true; - + double length = brd.getLength() - (tailOffset + noseOffset); - int steps = (int)(length/0.3); - double step = length/steps; + int steps = (int) (length / 0.3); + double step = length / steps; GeneralPath path = new GeneralPath(); - + double y = offset; - //Deck + // Deck double x = tailOffset; - for(int i = 0; i <= steps; i++) - { - x = i*step + tailOffset; - - //Find thickness and rocker at pos - double deck = (skinThickness!=0.0)?getDeck(brd, x, y, skinThickness):brd.getDeckAt(x, y); - - double bottom = (skinThickness!=0.0)?getBottom(brd, x, y, skinThickness):brd.getBottomAt(x, y); - if(flatten) - { - double deckRockerCompensation = brd.getDeck().getValueAt(x) - brd.getThickness(); + for (int i = 0; i <= steps; i++) { + x = i * step + tailOffset; + + // Find thickness and rocker at pos + double deck = (skinThickness != 0.0) ? getDeckWithSkinCompensation(brd, x, y, skinThickness) : brd.getDeckAt(x, y); + + double bottom = (skinThickness != 0.0) ? getBottomWithSkinCompensation(brd, x, y, skinThickness) : brd.getBottomAt(x, y); + if (flatten) { + double deckRockerCompensation = brd.getDeck().getValueAt(x) - brd.getThickness(); deck -= deckRockerCompensation; bottom -= deckRockerCompensation; } -// System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); - if(bottom >= deck) - { - if(first) - { - path.moveTo(x,deck); - } - else - { + // System.out.printf("Profile x: %f y: %f Deck: %f Bottom: %f\n", + // x,y, deck, bottom); + if (bottom >= deck) { + // System.out.printf("Profile bottom >= deck, skinThickness:%f x: %f y: %f Deck: %f Bottom: %f\n", + // skinThickness, x,y, deck, bottom); + bottom = (skinThickness != 0.0) ? getBottomWithSkinCompensation(brd, x, y, skinThickness) : brd.getBottomAt(x, y); + deck = (skinThickness != 0.0) ? getDeckWithSkinCompensation(brd, x, y, skinThickness) : brd.getDeckAt(x, y); + if (first) { + path.moveTo(x, deck); + } else { break; } - } - else{ - if(first) - { - path.moveTo(x,deck); + } else { + if (first) { + path.moveTo(x, deck); first = false; continue; } path.lineTo(x, deck); } } - - System.out.printf("At end of profile x:%f\n", x); - //Bottom + System.out.printf("At end of deck x:%f\n", x); + + // Bottom first = true; - for(int i = 0; i <= steps; i++) - { - x = length + tailOffset - (i*step); - - //Find thickness and rocker at pos - double bottom = (skinThickness!=0.0)? getBottom(brd, x, y, skinThickness):brd.getBottomAt(x, y); - - double deck = (skinThickness!=0.0)?getDeck(brd, x, y, skinThickness):brd.getDeckAt(x,y); - if(flatten) - { - double bottomRockerCompensation = brd.getDeck().getValueAt(x) - brd.getThickness(); + for (int i = 0; i <= steps; i++) { + x = length + tailOffset - (i * step); + + // Find thickness and rocker at pos + double bottom = (skinThickness != 0.0) ? getBottomWithSkinCompensation(brd, x, y, skinThickness) : brd.getBottomAt(x, y); + + double deck = (skinThickness != 0.0) ? getDeckWithSkinCompensation(brd, x, y, skinThickness) : brd.getDeckAt(x, y); + if (flatten) { + double bottomRockerCompensation = brd.getDeck().getValueAt(x) - brd.getThickness(); bottom -= bottomRockerCompensation; deck -= bottomRockerCompensation; } + // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f bottom: %f Bottom: %f\n", + // ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, bottom, bottom); -// System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f bottom: %f Bottom: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, bottom, bottom); - - - if(bottom >= deck) - { + if (bottom >= deck) { continue; -// path.moveTo(x,bottom); - } - else{ - if(first) - { -// path.moveTo(x,bottom); + // path.moveTo(x,bottom); + } else { + if (first) { + // path.moveTo(x,bottom); first = false; -// continue; + // continue; } path.lineTo(x, bottom); } } - - path.closePath(); + + if (hasMoveTo(path)) { + path.closePath(); + } + d.draw(path); - d.setTransform(savedTransform); - + resetTransform(d, savedTransform); + } - public static void paintFunction(AbstractDraw d, double offsetX, double offsetY, double scale, Color color, Stroke stroke, Function func, double minLimit, double maxLimit, double horizontalScale, double verticalScale) - { + public static void paintFunction(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, Color color, Stroke stroke, Function func, double minLimit, double maxLimit, + double horizontalScale, double verticalScale) { d.setColor(color); d.setStroke(stroke); - AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale); - + AffineTransform savedTransform = setTransform(d, offsetX, offsetY, scale, rotation); int splits = 100; - double step = (maxLimit-minLimit)/splits; - + double step = (maxLimit - minLimit) / splits; + double x = minLimit; double lastValue = func.f(x); - + Line2D.Double l = new Line2D.Double(); - for(int i = 1; i < splits; i++) - { - double currentValue = func.f(x+step); - - l.setLine(x*horizontalScale, lastValue*verticalScale, (x+step)*horizontalScale, currentValue*verticalScale); + for (int i = 1; i < splits; i++) { + double currentValue = func.f(x + step); + + l.setLine(x * horizontalScale, lastValue * verticalScale, (x + step) * horizontalScale, currentValue * verticalScale); d.draw(l); - + x += step; lastValue = currentValue; } - - resetTransform(d,savedTransform); + resetTransform(d, savedTransform); } - public static double getDeck(AbstractBoard board, double x, double y, double skinThickness) - { - //Find thickness and rocker at pos + public static double getDeckWithSkinCompensation(AbstractBoard board, double x, double y, double skinThickness) { + // Find thickness and rocker at pos double deck = board.getDeckAt(x, y); - + Vector3d deckNormal = board.getDeckNormalAt(x, y); - + double upAngle = upVector.angle(deckNormal); - - double deckSkinCompensation = skinThickness/Math.cos(upAngle); - + + double deckSkinCompensation = skinThickness / Math.cos(upAngle); + deck += deckSkinCompensation; return deck; } - - public static double getBottom(AbstractBoard board, double x, double y, double skinThickness) - { - //Find thickness and rocker at pos + public static double getBottomWithSkinCompensation(AbstractBoard board, double x, double y, double skinThickness) { + + // Find thickness and rocker at pos double bottom = board.getBottomAt(x, y); Vector3d bottomNormal = board.getBottomNormalAt(x, y); - - double upAngle = upVector.angle(bottomNormal); - double bottomSkinCompensation = skinThickness/Math.cos(upAngle); - + double normalAngle = downVector.angle(bottomNormal); + + double bottomSkinCompensation = skinThickness / Math.cos(normalAngle); + + // System.out.printf("getBottomWithSkinCompensation() bottom: %f, skinThickness:%f normal: %f, %f, %f normalAngle: %f\n", + // bottom, skinThickness, bottomNormal.x,bottomNormal.y,bottomNormal.z, + // normalAngle); + bottom -= bottomSkinCompensation; - + return bottom; } - public static Point2D.Double getOutline(AbstractBoard board, double x, double distanceFromRail) - { - BezierSpline outline = ((BezierBoard)board).getOutline(); - + public static Point2D.Double getOutline(AbstractBoard board, double x, double distanceFromRail) { + BezierSpline outline = ((BezierBoard) board).getOutline(); + double oy = outline.getValueAt(x); double normalAngle = outline.getNormalAngle(x); - + Point2D.Double point = new Point2D.Double(); - - //Find the point at distance from outline - point.x = x - ( (distanceFromRail )*Math.sin(normalAngle)); - point.y = oy - ( (distanceFromRail )*Math.cos(normalAngle)); - + + // Find the point at distance from outline + point.x = x - ((distanceFromRail) * Math.sin(normalAngle)); + point.y = oy - ((distanceFromRail) * Math.cos(normalAngle)); + return point; } - public static double getRailDeck(AbstractBoard board, double pos, double distanceFromRail, double skinThickness) - { - BezierSpline outline = ((BezierBoard)board).getOutline(); + public static double getRailDeck(AbstractBoard board, double pos, double distanceFromRail, double skinThickness) { + BezierSpline outline = ((BezierBoard) board).getOutline(); double oy = outline.getValueAt(pos); double normalAngle = outline.getNormalAngle(pos); - - //Find the target point at distance from outline - double x = pos - (distanceFromRail*Math.sin(normalAngle)); - double y = oy - (distanceFromRail*Math.cos(normalAngle)); - - return getDeck(board, x, y, skinThickness); + + // Find the target point at distance from outline + double x = pos - (distanceFromRail * Math.sin(normalAngle)); + double y = oy - (distanceFromRail * Math.cos(normalAngle)); + + System.out.printf("getRailDeck() pos:%f distanceFromRail:%f normalAngle:%f x:%f y:%f\n", pos, distanceFromRail, Math.toDegrees(normalAngle), x, y); + + return getDeckWithSkinCompensation(board, x, y, skinThickness); } - - public static double getRailBottom(AbstractBoard board, double pos, double distanceFromRail, double skinThickness) - { - BezierSpline outline = ((BezierBoard)board).getOutline(); + + public static double getRailBottom(AbstractBoard board, double pos, double distanceFromRail, double skinThickness) { + BezierSpline outline = ((BezierBoard) board).getOutline(); double oy = outline.getValueAt(pos); double normalAngle = outline.getNormalAngle(pos); - - //Find the target point at distance from outline - double x = pos - (distanceFromRail*Math.sin(normalAngle)); - double y = oy - (distanceFromRail*Math.cos(normalAngle)); - - return getBottom(board, x, y, skinThickness); + + // Find the target point at distance from outline + double x = pos - (distanceFromRail * Math.sin(normalAngle)); + double y = oy - (distanceFromRail * Math.cos(normalAngle)); + + System.out.printf("getRailBottom() pos:%f distanceFromRail:%f normalAngle:%f x:%f y:%f\n", pos, distanceFromRail, Math.toDegrees(normalAngle), x, y); + + return getBottomWithSkinCompensation(board, x, y, skinThickness); + } + + public static boolean hasMoveTo(GeneralPath path) { + PathIterator it = path.getPathIterator(null); + while (!it.isDone()) { + double[] coords = new double[6]; + if (it.currentSegment(coords) == PathIterator.SEG_MOVETO) { + return true; + } + it.next(); + } + return false; } } diff --git a/boardcad/gui/jdk/BoardCAD.java b/boardcad/gui/jdk/BoardCAD.java index 65446e9..ac46bbd 100644 --- a/boardcad/gui/jdk/BoardCAD.java +++ b/boardcad/gui/jdk/BoardCAD.java @@ -12,7 +12,17 @@ */ +/** + * @author Håvard + + * + + * To change the template for this generated type comment go to + + * Window>Preferences>Java>Code Generation>Code and Comments + + */ import java.awt.*; import java.awt.event.*; @@ -28,6 +38,7 @@ import java.io.PrintStream; import java.util.*; import java.util.Locale; +import java.util.Timer; import java.util.prefs.*; import javax.imageio.ImageIO; @@ -40,7 +51,6 @@ import cadcore.*; import board.*; - import boardcad.settings.*; import boardcad.gui.jdk.plugin.*; import boardcad.DefaultBrds; @@ -49,9 +59,10 @@ import boardcad.settings.Settings.Enumeration; import boardcad.settings.Settings.SettingChangedCallback; import boardcad.settings.Settings; +import boardcad.commands.*; import boardcad.export.DxfExport; +import boardcad.export.GCodeDraw; import boardcad.i18n.LanguageResource; - import boardcam.cutters.AbstractCutter; import boardcam.MachineConfig; import boardcam.Scan; @@ -62,12 +73,13 @@ import boardcam.writers.GCodeWriter; import board.readers.*; import board.writers.*; - import boardcad.ScriptLoader; public class BoardCAD implements Runnable, ActionListener, ItemListener, KeyEventDispatcher { - enum DeckOrBottom{DECK, BOTTOM, BOTH}; + enum DeckOrBottom { + DECK, BOTTOM, BOTH + }; protected BezierBoard mCurrentBrd; @@ -75,7 +87,7 @@ enum DeckOrBottom{DECK, BOTTOM, BOTH}; private BezierBoard mGhostBrd; - static protected Locale[] mSupportedLanguages = {new Locale("en",""), new Locale("fr",""), new Locale("pt",""), new Locale("es",""), new Locale("no",""), new Locale("nl","")}; + static protected Locale[] mSupportedLanguages = { new Locale("en", ""), new Locale("fr", ""), new Locale("pt", ""), new Locale("es", ""), new Locale("no", ""), new Locale("nl", "") }; private BrdCommand mCurrentCommand; @@ -86,18 +98,20 @@ enum DeckOrBottom{DECK, BOTTOM, BOTH}; private PrintSandwichTemplates mPrintSandwichTemplates; private PrintChamberedWoodTemplate mPrintChamberedWoodTemplate; private PrintHollowWoodTemplates mPrintHollowWoodTemplates; - + private boolean mBlockGUI = true; private QuadView fourView; + public QuadView getFourView() { - return fourView; + https: // www.facebook.com/nikolai.schirmer/videos/840922619608069/?t=330 + return fourView; } - public String getFourViewName() - { + + public String getFourViewName() { return getFourView().getActive().getName(); } - + private BoardEdit view1; private BoardEdit view2; private BoardEdit view3; @@ -127,7 +141,6 @@ public String getFourViewName() JPanel mNurbspanel; JPanel mRenderedpanel; - public JPanel mJOGLpanel; boolean mAlwaysApproximateNurbs = false; @@ -172,7 +185,7 @@ public String getFourViewName() private JCheckBoxMenuItem mIsPaintingCenterLineMenuItem; private JCheckBoxMenuItem mIsPaintingOverCurveMesurementsMenuItem; - + private JCheckBoxMenuItem mIsPaintingMomentOfInertiaMenuItem; private JCheckBoxMenuItem mIsPaintingCrossectionsPositionsMenuItem; @@ -184,7 +197,7 @@ public String getFourViewName() private JCheckBoxMenuItem mIsPaintingTuckUnderLineMenuItem; private JCheckBoxMenuItem mIsPaintingFootMarksMenuItem; - + private JCheckBoxMenuItem mIsAntialiasingMenuItem; private JCheckBoxMenuItem mUseFillMenuItem; @@ -201,20 +214,17 @@ public String getFourViewName() private JCheckBoxMenuItem mShowRenderInwireframe; - - JToggleButton mLifeSizeButton; + public JToggleButton mLifeSizeButton; private boolean mBoardChanged = false; - private boolean mBoardChangedFor3D = false; - protected boolean mGhostMode = false; protected boolean mOrgFocus = false; protected static BoardCAD mInstance = null; - private static final String appname = "BoardCAD v3.0"; + private static final String appname = "BoardCAD v3.1"; public static String defaultDirectory = ""; @@ -228,7 +238,7 @@ public String getFourViewName() protected DesignPanel design_panel; protected DesignPanel design_panel2; - public JOGLPanel joglpanel; + protected DesignPanel design_panel3; public StatusPanel status_panel; @@ -251,74 +261,39 @@ public String getFourViewName() private Settings mSizeSettings; private Settings mMiscSettings; - Switch mBezier3DOnSwitch; - Shape3D mBezier3DModel; - TransformGroup mScale; - - public JMenu scriptMenu; - BezierBoardCrossSection mCrossSectionCopy; + static private final String TEXTCOLOR = "textcolor"; static private final String BACKGROUNDCOLOR = "backgroundcolor"; - static private final String STRINGERCOLOR = "stringercolor"; - static private final String FLOWLINESCOLOR = "flowlinescolor"; - static private final String APEXLINECOLOR = "apexlinecolor"; - static private final String TUCKUNDERLINECOLOR = "tuckunderlinecolor"; - static private final String CENTERLINECOLOR = "centerlinecolor"; - static private final String BRDCOLOR = "brdcolor"; - static private final String ORIGINALCOLOR = "originalcolor"; - static private final String GHOSTCOLOR = "ghostcolor"; - static private final String BLANKCOLOR = "blankcolor"; - static private final String GRIDCOLOR = "gridcolor"; - static private final String FINSCOLOR = "finscolor"; - static private final String CURVATURECOLOR = "curvaturecolor"; - static private final String VOLUMEDISTRIBUTIONCOLOR = "volumedistributioncolor"; - static private final String CENTEROFMASSCOLOR = "centerofmasscolor"; - static private final String SELECTEDTANGENTCOLOR = "selectedtangentcolor"; - static private final String SELECTEDCONTROLPOINTCENTERCOLOR = "selectedcontrolpointcentercolor"; - static private final String SELECTEDCONTROLPOINTTANGENT1COLOR = "selectedcontrolpointtangent1color"; - static private final String SELECTEDCONTROLPOINTTANGENT2COLOR = "selectedcontrolpointtangent2color"; - static private final String SELECTEDCONTROLPOINTCENTEROUTLINECOLOR = "selectedcontrolpointcenteroutlinecolor"; - static private final String SELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR = "selectedcontrolpointtangent1outlinecolor"; - static private final String SELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR = "selectedcontrolpointtangent2outlinecolor"; - static private final String UNSELECTEDTANGENTCOLOR = "unselectedtangentcolor"; - static private final String UNSELECTEDCONTROLPOINTCENTERCOLOR = "unselectedcontrolpointcentercolor"; - static private final String UNSELECTEDCONTROLPOINTTANGENT1COLOR = "unselectedcontrolpointtangent1color"; - static private final String UNSELECTEDCONTROLPOINTTANGENT2COLOR = "unselectedcontrolpointtangent2color"; - static private final String UNSELECTEDCONTROLPOINTCENTEROUTLINECOLOR = "unselectedcontrolpointcenteroutlinecolor"; - static private final String UNSELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR = "unselectedcontrolpointtangent1outlinecolor"; - static private final String UNSELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR = "unselectedcontrolpointtangent2outlinecolor"; - static private final String UNSELECTEDBACKGROUNDCOLOR = "unselectedbackgroundcolor"; - static private final String GUIDEPOINTCOLOR = "guidepointcolor"; static private final String SELECTEDCONTROLPOINTSIZE = "selectedcontrolpointsize"; @@ -337,9 +312,9 @@ public String getFourViewName() static private final String BASELINETHICKNESS = "baselinethickness"; static private final String BASELINECOLOR = "baselinecolor"; - + static private final String LOOK_AND_FEEL = "lookandfeel"; - + static private final String PRINTGUIDEPOINTS = "printguidepoints"; static private final String PRINTFINS = "printfins"; @@ -350,6 +325,8 @@ public String getFourViewName() static private final String OFFSETINTERPLOATION = "offsetinterpolation"; + Timer mBezier3DModelUpdateTimer; + public static BoardCAD getInstance() { if (mInstance == null) { mInstance = new BoardCAD(); @@ -358,24 +335,39 @@ public static BoardCAD getInstance() { } protected BoardCAD() { - - - /* - * + /* + * // Test gcodedraw GeneralPath squarePath = new GeneralPath(); + * squarePath.moveTo(1.0, -1.0); squarePath.lineTo(1.0, 1.0); + * squarePath.lineTo(-1.0, 1.0); squarePath.lineTo(-1.0, -1.0); + * squarePath.closePath(); + * + * GeneralPath linePath = new GeneralPath(); linePath.moveTo(-1.0, 0.0); + * int steps = 100; for (int i = 0; i < steps; i++) { + * linePath.moveTo(-1.0 + ((2.0 * i) / steps), 0.0); } + * + * GCodeDraw gdrawSquare = new GCodeDraw( + * "C:/Users/Haavard/Desktop/G-Code/SquareTest.nc", 0.05, -0.05, 0.05, + * 0.01, 0.2, 0.03); GCodeDraw gdrawSquareNoOffset = new GCodeDraw( + * "C:/Users/Haavard/Desktop/G-Code/SquareTestNoOffset.nc", 0.0, -0.05, + * 0.05, 0.01, 0.2, 0.03); + * + * gdrawSquare.draw(squarePath); gdrawSquareNoOffset.draw(squarePath); + */ + /* + * * Tells the event-dispatching thread (used to - * + * * display and handle events of a Swing GUI) to - * + * * call the run method of "this" (the ClickMeApp - * + * * object this constructor created). The - * + * * argument to invokeLater must implement the - * + * * Runnable interface, which guarantees that - * + * * it defines the run method. - * */ LanguageResource.init(this); @@ -387,54 +379,53 @@ protected BoardCAD() { mColorSettings = mSettings.addCategory(LanguageResource.getString("COLORS_STR")); - mColorSettings.addColor(BACKGROUNDCOLOR, new Color(200, 200, 240),LanguageResource.getString("BACKGROUNDCOLOR_STR"), new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { - if(design_panel != null) + mColorSettings.addColor(TEXTCOLOR, new Color(0, 0, 0), LanguageResource.getString("TEXTCOLOR_STR")); + mColorSettings.addColor(BACKGROUNDCOLOR, new Color(200, 200, 240), LanguageResource.getString("BACKGROUNDCOLOR_STR"), new Settings.SettingChangedCallback() { + @Override + public void onSettingChanged(Object obj) { + if (design_panel != null) design_panel.get3DView().setBackgroundColor(mColorSettings.getColor(BACKGROUNDCOLOR)); - if(design_panel2 != null) + if (design_panel2 != null) design_panel2.get3DView().setBackgroundColor(mColorSettings.getColor(BACKGROUNDCOLOR)); -// if(mMachineView != null) -// mMachineView.get3DView().setBackgroundColor(mColorSettings.getColor(BACKGROUNDCOLOR)); - + if (design_panel3 != null) + design_panel3.get3DView().setBackgroundColor(mColorSettings.getColor(BACKGROUNDCOLOR)); } }); - mColorSettings.addColor(UNSELECTEDBACKGROUNDCOLOR, new Color(220, 220, 245),LanguageResource.getString("UNSELECTEDBACKGROUNDCOLOR_STR")); - mColorSettings.addColor(STRINGERCOLOR, new Color(100, 100, 100),LanguageResource.getString("STRINGERCOLOR_STR")); - mColorSettings.addColor(FLOWLINESCOLOR, new Color(100, 150, 100),LanguageResource.getString("FLOWLINESCOLOR_STR")); - mColorSettings.addColor(APEXLINECOLOR, new Color(80, 80, 200),LanguageResource.getString("APEXLINECOLOR_STR")); - mColorSettings.addColor(TUCKUNDERLINECOLOR, new Color(150, 50, 50),LanguageResource.getString("TUCKUNDERCOLOR_STR")); - mColorSettings.addColor(CENTERLINECOLOR, new Color(180, 180, 220),LanguageResource.getString("CENTERLINECOLOR_STR")); - - mColorSettings.addColor(BRDCOLOR, new Color(0, 0, 0),LanguageResource.getString("BRDCOLOR_STR")); - mColorSettings.addColor(ORIGINALCOLOR, new Color(240, 240, 240),LanguageResource.getString("ORIGINALCOLOR_STR")); - mColorSettings.addColor(GHOSTCOLOR, new Color(128, 128, 128),LanguageResource.getString("GHOSTCOLOR_STR")); + mColorSettings.addColor(UNSELECTEDBACKGROUNDCOLOR, new Color(220, 220, 245), LanguageResource.getString("UNSELECTEDBACKGROUNDCOLOR_STR")); + mColorSettings.addColor(STRINGERCOLOR, new Color(100, 100, 100), LanguageResource.getString("STRINGERCOLOR_STR")); + mColorSettings.addColor(FLOWLINESCOLOR, new Color(100, 150, 100), LanguageResource.getString("FLOWLINESCOLOR_STR")); + mColorSettings.addColor(APEXLINECOLOR, new Color(80, 80, 200), LanguageResource.getString("APEXLINECOLOR_STR")); + mColorSettings.addColor(TUCKUNDERLINECOLOR, new Color(150, 50, 50), LanguageResource.getString("TUCKUNDERCOLOR_STR")); + mColorSettings.addColor(CENTERLINECOLOR, new Color(180, 180, 220), LanguageResource.getString("CENTERLINECOLOR_STR")); + + mColorSettings.addColor(BRDCOLOR, new Color(0, 0, 0), LanguageResource.getString("BRDCOLOR_STR")); + mColorSettings.addColor(ORIGINALCOLOR, new Color(240, 240, 240), LanguageResource.getString("ORIGINALCOLOR_STR")); + mColorSettings.addColor(GHOSTCOLOR, new Color(128, 128, 128), LanguageResource.getString("GHOSTCOLOR_STR")); mColorSettings.addColor(BLANKCOLOR, new Color(128, 128, 128), LanguageResource.getString("BLANKCOLOR_STR")); mColorSettings.addColor(GRIDCOLOR, new Color(128, 128, 128), LanguageResource.getString("GRIDCOLOR_STR")); mColorSettings.addColor(FINSCOLOR, new Color(205, 128, 128), LanguageResource.getString("FINSCOLOR_STR")); - mColorSettings.addColor(CURVATURECOLOR, new Color(130, 130, 180),LanguageResource.getString("CURVATURECOLOR_STR")); - mColorSettings.addColor(VOLUMEDISTRIBUTIONCOLOR, new Color(80, 80, 80),LanguageResource.getString("VOLUMEDISTRIBUTIONCOLOR_STR")); - mColorSettings.addColor(CENTEROFMASSCOLOR, new Color(205, 10, 10),LanguageResource.getString("CENTEROFMASSCOLOR_STR")); + mColorSettings.addColor(CURVATURECOLOR, new Color(130, 130, 180), LanguageResource.getString("CURVATURECOLOR_STR")); + mColorSettings.addColor(VOLUMEDISTRIBUTIONCOLOR, new Color(80, 80, 80), LanguageResource.getString("VOLUMEDISTRIBUTIONCOLOR_STR")); + mColorSettings.addColor(CENTEROFMASSCOLOR, new Color(205, 10, 10), LanguageResource.getString("CENTEROFMASSCOLOR_STR")); mColorSettings.addColor(SELECTEDTANGENTCOLOR, new Color(0, 0, 0), LanguageResource.getString("SELECTEDTANGENTCOLOR_STR")); - mColorSettings.addColor(SELECTEDCONTROLPOINTCENTERCOLOR, new Color(30, 30, 200),LanguageResource.getString("SELECTEDCONTROLPOINTCENTERCOLOR_STR")); - mColorSettings.addColor(SELECTEDCONTROLPOINTTANGENT1COLOR, new Color(200, 200, 0),LanguageResource.getString("SELECTEDCONTROLPOINTTANGENT1COLOR_STR")); - mColorSettings.addColor(SELECTEDCONTROLPOINTTANGENT2COLOR, new Color(200, 0, 0),LanguageResource.getString("SELECTEDCONTROLPOINTTANGENT2COLOR_STR")); + mColorSettings.addColor(SELECTEDCONTROLPOINTCENTERCOLOR, new Color(30, 30, 200), LanguageResource.getString("SELECTEDCONTROLPOINTCENTERCOLOR_STR")); + mColorSettings.addColor(SELECTEDCONTROLPOINTTANGENT1COLOR, new Color(200, 200, 0), LanguageResource.getString("SELECTEDCONTROLPOINTTANGENT1COLOR_STR")); + mColorSettings.addColor(SELECTEDCONTROLPOINTTANGENT2COLOR, new Color(200, 0, 0), LanguageResource.getString("SELECTEDCONTROLPOINTTANGENT2COLOR_STR")); - mColorSettings.addColor(SELECTEDCONTROLPOINTCENTEROUTLINECOLOR, new Color(0, 0,0), LanguageResource.getString("SELECTEDCONTROLPOINTCENTEROUTLINECOLOR_STR")); - mColorSettings.addColor(SELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR, new Color(0,0, 0), LanguageResource.getString("SELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR_STR")); + mColorSettings.addColor(SELECTEDCONTROLPOINTCENTEROUTLINECOLOR, new Color(0, 0, 0), LanguageResource.getString("SELECTEDCONTROLPOINTCENTEROUTLINECOLOR_STR")); + mColorSettings.addColor(SELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR, new Color(0, 0, 0), LanguageResource.getString("SELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR_STR")); mColorSettings.addColor(SELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR, new Color(0, 0, 0), LanguageResource.getString("SELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR_STR")); mColorSettings.addColor(UNSELECTEDTANGENTCOLOR, new Color(100, 100, 100), LanguageResource.getString("UNSELECTEDTANGENTCOLOR_STR")); - mColorSettings.addColor(UNSELECTEDCONTROLPOINTCENTERCOLOR, new Color(200, 200, 240),LanguageResource.getString("UNSELECTEDCONTROLPOINTCENTERCOLOR_STR")); - mColorSettings.addColor(UNSELECTEDCONTROLPOINTTANGENT1COLOR, new Color(200,200,240),LanguageResource.getString("UNSELECTEDCONTROLPOINTTANGENT1COLOR_STR")); - mColorSettings.addColor(UNSELECTEDCONTROLPOINTTANGENT2COLOR, new Color(200,200,240),LanguageResource.getString("UNSELECTEDCONTROLPOINTTANGENT2COLOR_STR")); + mColorSettings.addColor(UNSELECTEDCONTROLPOINTCENTERCOLOR, new Color(200, 200, 240), LanguageResource.getString("UNSELECTEDCONTROLPOINTCENTERCOLOR_STR")); + mColorSettings.addColor(UNSELECTEDCONTROLPOINTTANGENT1COLOR, new Color(200, 200, 240), LanguageResource.getString("UNSELECTEDCONTROLPOINTTANGENT1COLOR_STR")); + mColorSettings.addColor(UNSELECTEDCONTROLPOINTTANGENT2COLOR, new Color(200, 200, 240), LanguageResource.getString("UNSELECTEDCONTROLPOINTTANGENT2COLOR_STR")); mColorSettings.addColor(UNSELECTEDCONTROLPOINTCENTEROUTLINECOLOR, new Color(80, 80, 150), LanguageResource.getString("UNSELECTEDCONTROLPOINTCENTEROUTLINECOLOR_STR")); mColorSettings.addColor(UNSELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR, new Color(150, 150, 80), LanguageResource.getString("UNSELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR_STR")); mColorSettings.addColor(UNSELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR, new Color(150, 80, 80), LanguageResource.getString("UNSELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR_STR")); - mColorSettings.addColor(GUIDEPOINTCOLOR, new Color(255, 0, 0),LanguageResource.getString("GUIDEPOINTCOLOR_STR")); + mColorSettings.addColor(GUIDEPOINTCOLOR, new Color(255, 0, 0), LanguageResource.getString("GUIDEPOINTCOLOR_STR")); mColorSettings.addColor(BASELINECOLOR, new Color(0, 0, 0), LanguageResource.getString("GUIDEPOINTCOLOR_STR")); mSizeSettings = mSettings.addCategory(LanguageResource.getString("SIZE_AND_THICKNESS_STR")); @@ -449,64 +440,57 @@ public void onSettingChanged(Object obj) mSizeSettings.addDouble(VOLUMEDISTRIBUTIONTHICKNESS, 1.2, LanguageResource.getString("VOLUMEDISTRIBUTIONTHICKNESS_STR")); mSizeSettings.addDouble(GUIDEPNTTHICKNESS, 1.2, LanguageResource.getString("GUIDEPNTTHICKNESS_STR")); mSizeSettings.addDouble(BASELINETHICKNESS, 1, LanguageResource.getString("BASELINETHICKNESS_STR")); - + HashMap looks = new HashMap(); - + mMiscSettings = mSettings.addCategory(LanguageResource.getString("MISC_STR")); String systemLookAndFeelName = UIManager.getSystemLookAndFeelClassName(); int systemLookAndFeelIndex = 0; - for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels() ){ + for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { looks.put(looks.size(), info.getName()); - if(systemLookAndFeelName == info.getClassName()) - { - systemLookAndFeelIndex = looks.size()-1; + if (systemLookAndFeelName == info.getClassName()) { + systemLookAndFeelIndex = looks.size() - 1; } } - mMiscSettings.addObject(LOOK_AND_FEEL, mMiscSettings.new Enumeration(systemLookAndFeelIndex, looks), LanguageResource.getString("LOOKANDFEEL_STR"), new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { - Enumeration e = (Enumeration)mMiscSettings.getObject(LOOK_AND_FEEL); - + mMiscSettings.addObject(LOOK_AND_FEEL, mMiscSettings.new Enumeration(systemLookAndFeelIndex, looks), LanguageResource.getString("LOOKANDFEEL_STR"), new Settings.SettingChangedCallback() { + @Override + public void onSettingChanged(Object obj) { + Enumeration e = (Enumeration) mMiscSettings.getObject(LOOK_AND_FEEL); + String selectedLookAndFeelName = e.getAlternatives().get(e.getValue()); - if(mBlockGUI==false) - { - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), String.format(LanguageResource.getString("LOOKANDFEELCHANGEDMSG_STR"), selectedLookAndFeelName), - LanguageResource.getString("LOOKANDFEELCHANGEDTITLE_STR"), JOptionPane.INFORMATION_MESSAGE); + if (mBlockGUI == false) { + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), String.format(LanguageResource.getString("LOOKANDFEELCHANGEDMSG_STR"), selectedLookAndFeelName), LanguageResource.getString("LOOKANDFEELCHANGEDTITLE_STR"), JOptionPane.INFORMATION_MESSAGE); } } }); mMiscSettings.getPreferences(); try { - Enumeration e = (Enumeration)mMiscSettings.getObject(LOOK_AND_FEEL); - + Enumeration e = (Enumeration) mMiscSettings.getObject(LOOK_AND_FEEL); + String selectedLookAndFeelName = e.getAlternatives().get(e.getValue()); - for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels() ){ - if (selectedLookAndFeelName.equals(info.getName())) { - UIManager.setLookAndFeel(info.getClassName()); - break; - } + for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { + if (selectedLookAndFeelName.equals(info.getName())) { + UIManager.setLookAndFeel(info.getClassName()); + break; + } } - } - catch (Exception e) { - System.err.println("Couldn't find class for specified look and feel:" - + UIManager.getSystemLookAndFeelClassName()); - System.err.println("Using the default look and feel."); - } + } catch (Exception e) { + System.err.println("Couldn't find class for specified look and feel:" + UIManager.getSystemLookAndFeelClassName()); + System.err.println("Using the default look and feel."); + } mMiscSettings.addBoolean(PRINTGUIDEPOINTS, false, LanguageResource.getString("PRINTGUIDEPOINTS_STR")); mMiscSettings.addBoolean(PRINTFINS, false, LanguageResource.getString("PRINTFINS_STR")); mMiscSettings.addInteger(FRACTIONACCURACY, 16, LanguageResource.getString("FRACTIONACCURACY_STR"), new Settings.SettingChangedCallback() { - + @Override public void onSettingChanged(Object obj) { - UnitUtils.setFractionAccuracy(((Integer)obj).intValue()); + UnitUtils.setFractionAccuracy(((Integer) obj).intValue()); } }); @@ -516,8 +500,89 @@ public void onSettingChanged(Object obj) { mRecentBrdFilesMenu.setText(LanguageResource.getString("RECENTFILES_STR")); - SwingUtilities.invokeLater(this); - + SwingUtilities.invokeLater(this); + } + + public void setDefaultTheme(){ + mColorSettings.setColor(TEXTCOLOR, new Color(0, 0, 0)); + mColorSettings.setColor(BACKGROUNDCOLOR, new Color(200, 200, 240)); + mColorSettings.setColor(UNSELECTEDBACKGROUNDCOLOR, new Color(220, 220, 245)); + mColorSettings.setColor(STRINGERCOLOR, new Color(100, 100, 100)); + mColorSettings.setColor(FLOWLINESCOLOR, new Color(100, 150, 100)); + mColorSettings.setColor(APEXLINECOLOR, new Color(80, 80, 200)); + mColorSettings.setColor(TUCKUNDERLINECOLOR, new Color(150, 50, 50)); + mColorSettings.setColor(CENTERLINECOLOR, new Color(180, 180, 220)); + + mColorSettings.setColor(BRDCOLOR, new Color(0, 0, 0)); + mColorSettings.setColor(ORIGINALCOLOR, new Color(240, 240, 240)); + mColorSettings.setColor(GHOSTCOLOR, new Color(128, 128, 128)); + mColorSettings.setColor(BLANKCOLOR, new Color(128, 128, 128)); + mColorSettings.setColor(GRIDCOLOR, new Color(128, 128, 128)); + mColorSettings.setColor(FINSCOLOR, new Color(205, 128, 128)); + mColorSettings.setColor(CURVATURECOLOR, new Color(130, 130, 180)); + mColorSettings.setColor(VOLUMEDISTRIBUTIONCOLOR, new Color(80, 80, 80)); + mColorSettings.setColor(CENTEROFMASSCOLOR, new Color(205, 10, 10)); + mColorSettings.setColor(SELECTEDTANGENTCOLOR, new Color(0, 0, 0)); + mColorSettings.setColor(SELECTEDCONTROLPOINTCENTERCOLOR, new Color(30, 30, 200)); + mColorSettings.setColor(SELECTEDCONTROLPOINTTANGENT1COLOR, new Color(200, 200, 0)); + mColorSettings.setColor(SELECTEDCONTROLPOINTTANGENT2COLOR, new Color(200, 0, 0)); + + mColorSettings.setColor(SELECTEDCONTROLPOINTCENTEROUTLINECOLOR, new Color(0, 0, 0)); + mColorSettings.setColor(SELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR, new Color(0, 0, 0)); + mColorSettings.setColor(SELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR, new Color(0, 0, 0)); + + mColorSettings.setColor(UNSELECTEDTANGENTCOLOR, new Color(100, 100, 100)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTCENTERCOLOR, new Color(200, 200, 240)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTTANGENT1COLOR, new Color(200, 200, 240)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTTANGENT2COLOR, new Color(200, 200, 240)); + + mColorSettings.setColor(UNSELECTEDCONTROLPOINTCENTEROUTLINECOLOR, new Color(80, 80, 150)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR, new Color(150, 150, 80)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR, new Color(150, 80, 80)); + + mColorSettings.setColor(GUIDEPOINTCOLOR, new Color(255, 0, 0)); + mColorSettings.setColor(BASELINECOLOR, new Color(0, 0, 0)); + } + + public void setDarkTheme(){ + mColorSettings.setColor(TEXTCOLOR, new Color(200, 200, 200)); + mColorSettings.setColor(BACKGROUNDCOLOR, new Color(200, 200, 240)); + mColorSettings.setColor(UNSELECTEDBACKGROUNDCOLOR, new Color(220, 220, 245)); + mColorSettings.setColor(STRINGERCOLOR, new Color(100, 100, 100)); + mColorSettings.setColor(FLOWLINESCOLOR, new Color(100, 150, 100)); + mColorSettings.setColor(APEXLINECOLOR, new Color(80, 80, 200)); + mColorSettings.setColor(TUCKUNDERLINECOLOR, new Color(150, 50, 50)); + mColorSettings.setColor(CENTERLINECOLOR, new Color(180, 180, 220)); + + mColorSettings.setColor(BRDCOLOR, new Color(0, 0, 0)); + mColorSettings.setColor(ORIGINALCOLOR, new Color(240, 240, 240)); + mColorSettings.setColor(GHOSTCOLOR, new Color(128, 128, 128)); + mColorSettings.setColor(BLANKCOLOR, new Color(128, 128, 128)); + mColorSettings.setColor(GRIDCOLOR, new Color(128, 128, 128)); + mColorSettings.setColor(FINSCOLOR, new Color(205, 128, 128)); + mColorSettings.setColor(CURVATURECOLOR, new Color(130, 130, 180)); + mColorSettings.setColor(VOLUMEDISTRIBUTIONCOLOR, new Color(80, 80, 80)); + mColorSettings.setColor(CENTEROFMASSCOLOR, new Color(205, 10, 10)); + mColorSettings.setColor(SELECTEDTANGENTCOLOR, new Color(0, 0, 0)); + mColorSettings.setColor(SELECTEDCONTROLPOINTCENTERCOLOR, new Color(30, 30, 200)); + mColorSettings.setColor(SELECTEDCONTROLPOINTTANGENT1COLOR, new Color(200, 200, 0)); + mColorSettings.setColor(SELECTEDCONTROLPOINTTANGENT2COLOR, new Color(200, 0, 0)); + + mColorSettings.setColor(SELECTEDCONTROLPOINTCENTEROUTLINECOLOR, new Color(0, 0, 0)); + mColorSettings.setColor(SELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR, new Color(0, 0, 0)); + mColorSettings.setColor(SELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR, new Color(0, 0, 0)); + + mColorSettings.setColor(UNSELECTEDTANGENTCOLOR, new Color(100, 100, 100)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTCENTERCOLOR, new Color(200, 200, 240)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTTANGENT1COLOR, new Color(200, 200, 240)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTTANGENT2COLOR, new Color(200, 200, 240)); + + mColorSettings.setColor(UNSELECTEDCONTROLPOINTCENTEROUTLINECOLOR, new Color(80, 80, 150)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR, new Color(150, 150, 80)); + mColorSettings.setColor(UNSELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR, new Color(150, 80, 80)); + + mColorSettings.setColor(GUIDEPOINTCOLOR, new Color(255, 0, 0)); + mColorSettings.setColor(BASELINECOLOR, new Color(0, 0, 0)); } public static void print(Object object) throws IntrospectionException { @@ -537,105 +602,53 @@ public static void print(Object object) throws IntrospectionException { System.out.println("--- Object " + objectName + " End ----"); } - public void getPreferences() { + public void getPreferences() { // Preference keys for this package final Preferences prefs = Preferences.userNodeForPackage(BoardCAD.class); defaultDirectory = prefs.get("defaultDirectory", ""); - mIsPaintingGridMenuItem.setSelected(prefs - .getBoolean("mIsPaintingGridMenuItem", mIsPaintingGridMenuItem - .isSelected())); - mIsPaintingOriginalBrdMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingOriginalBrdMenuItem", - mIsPaintingOriginalBrdMenuItem.isSelected())); - mIsPaintingGhostBrdMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingGhostBrdMenuItem", mIsPaintingGhostBrdMenuItem - .isSelected())); - mIsPaintingControlPointsMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingControlPointsMenuItem", - mIsPaintingControlPointsMenuItem.isSelected())); - mIsPaintingNonActiveCrossSectionsMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingNonActiveCrossSectionsMenuItem", - mIsPaintingNonActiveCrossSectionsMenuItem.isSelected())); - mIsPaintingGuidePointsMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingGuidePointsMenuItem", - mIsPaintingGuidePointsMenuItem.isSelected())); - mIsPaintingCurvatureMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingCurvatureMenuItem", mIsPaintingCurvatureMenuItem - .isSelected())); - mIsPaintingVolumeDistributionMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingVolumeDistributionMenuItem", mIsPaintingVolumeDistributionMenuItem - .isSelected())); - mIsPaintingCenterOfMassMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingCenterOfMassMenuItem", - mIsPaintingCenterOfMassMenuItem.isSelected())); - mIsPaintingSlidingInfoMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingSlidingInfoMenuItem", - mIsPaintingSlidingInfoMenuItem.isSelected())); - mIsPaintingSlidingCrossSectionMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingSlidingCrossSectionMenuItem", - mIsPaintingSlidingCrossSectionMenuItem.isSelected())); - mIsPaintingFinsMenuItem.setSelected(prefs - .getBoolean("mIsPaintingFinsMenuItem", mIsPaintingFinsMenuItem - .isSelected())); - mIsPaintingBackgroundImageMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingBackgroundImageMenuItem", - mIsPaintingBackgroundImageMenuItem.isSelected())); - mIsAntialiasingMenuItem.setSelected(prefs - .getBoolean("mIsAntialiasingMenuItem", mIsAntialiasingMenuItem - .isSelected())); - mUseFillMenuItem.setSelected(prefs - .getBoolean("mUseFillMenuItem", mUseFillMenuItem - .isSelected())); - mIsPaintingBaseLineMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingBaseLineMenuItem", mIsPaintingBaseLineMenuItem - .isSelected())); - mIsPaintingCenterLineMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingCenterLineMenuItem", mIsPaintingCenterLineMenuItem - .isSelected())); - mIsPaintingOverCurveMesurementsMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingoverCurveMesurementsMenuItem", mIsPaintingOverCurveMesurementsMenuItem - .isSelected())); - mIsPaintingMomentOfInertiaMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingMomentOfInertiaMenuItem", mIsPaintingMomentOfInertiaMenuItem - .isSelected())); - - mIsPaintingCrossectionsPositionsMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingCrossectionsPositionsMenuItem", mIsPaintingCrossectionsPositionsMenuItem - .isSelected())); - - mIsPaintingFlowlinesMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingFlowlinesMenuItem", mIsPaintingFlowlinesMenuItem - .isSelected())); - - mIsPaintingApexlineMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingApexlineMenuItem", mIsPaintingApexlineMenuItem - .isSelected())); - - mIsPaintingTuckUnderLineMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingTuckUnderLineMenuItem", mIsPaintingTuckUnderLineMenuItem - .isSelected())); - mIsPaintingFootMarksMenuItem.setSelected(prefs.getBoolean( - "mIsPaintingFootMarksMenuItem", mIsPaintingFootMarksMenuItem - .isSelected())); - - mPrintMarginLeft = prefs - .getDouble("mPrintMarginLeft", mPrintMarginLeft); - mPrintMarginRight = prefs.getDouble("mPrintMarginRight", - mPrintMarginRight); + mIsPaintingGridMenuItem.setSelected(prefs.getBoolean("mIsPaintingGridMenuItem", mIsPaintingGridMenuItem.isSelected())); + mIsPaintingOriginalBrdMenuItem.setSelected(prefs.getBoolean("mIsPaintingOriginalBrdMenuItem", mIsPaintingOriginalBrdMenuItem.isSelected())); + mIsPaintingGhostBrdMenuItem.setSelected(prefs.getBoolean("mIsPaintingGhostBrdMenuItem", mIsPaintingGhostBrdMenuItem.isSelected())); + mIsPaintingControlPointsMenuItem.setSelected(prefs.getBoolean("mIsPaintingControlPointsMenuItem", mIsPaintingControlPointsMenuItem.isSelected())); + mIsPaintingNonActiveCrossSectionsMenuItem.setSelected(prefs.getBoolean("mIsPaintingNonActiveCrossSectionsMenuItem", mIsPaintingNonActiveCrossSectionsMenuItem.isSelected())); + mIsPaintingGuidePointsMenuItem.setSelected(prefs.getBoolean("mIsPaintingGuidePointsMenuItem", mIsPaintingGuidePointsMenuItem.isSelected())); + mIsPaintingCurvatureMenuItem.setSelected(prefs.getBoolean("mIsPaintingCurvatureMenuItem", mIsPaintingCurvatureMenuItem.isSelected())); + mIsPaintingVolumeDistributionMenuItem.setSelected(prefs.getBoolean("mIsPaintingVolumeDistributionMenuItem", mIsPaintingVolumeDistributionMenuItem.isSelected())); + mIsPaintingCenterOfMassMenuItem.setSelected(prefs.getBoolean("mIsPaintingCenterOfMassMenuItem", mIsPaintingCenterOfMassMenuItem.isSelected())); + mIsPaintingSlidingInfoMenuItem.setSelected(prefs.getBoolean("mIsPaintingSlidingInfoMenuItem", mIsPaintingSlidingInfoMenuItem.isSelected())); + mIsPaintingSlidingCrossSectionMenuItem.setSelected(prefs.getBoolean("mIsPaintingSlidingCrossSectionMenuItem", mIsPaintingSlidingCrossSectionMenuItem.isSelected())); + mIsPaintingFinsMenuItem.setSelected(prefs.getBoolean("mIsPaintingFinsMenuItem", mIsPaintingFinsMenuItem.isSelected())); + mIsPaintingBackgroundImageMenuItem.setSelected(prefs.getBoolean("mIsPaintingBackgroundImageMenuItem", mIsPaintingBackgroundImageMenuItem.isSelected())); + mIsAntialiasingMenuItem.setSelected(prefs.getBoolean("mIsAntialiasingMenuItem", mIsAntialiasingMenuItem.isSelected())); + mUseFillMenuItem.setSelected(prefs.getBoolean("mUseFillMenuItem", mUseFillMenuItem.isSelected())); + mIsPaintingBaseLineMenuItem.setSelected(prefs.getBoolean("mIsPaintingBaseLineMenuItem", mIsPaintingBaseLineMenuItem.isSelected())); + mIsPaintingCenterLineMenuItem.setSelected(prefs.getBoolean("mIsPaintingCenterLineMenuItem", mIsPaintingCenterLineMenuItem.isSelected())); + mIsPaintingOverCurveMesurementsMenuItem.setSelected(prefs.getBoolean("mIsPaintingoverCurveMesurementsMenuItem", mIsPaintingOverCurveMesurementsMenuItem.isSelected())); + mIsPaintingMomentOfInertiaMenuItem.setSelected(prefs.getBoolean("mIsPaintingMomentOfInertiaMenuItem", mIsPaintingMomentOfInertiaMenuItem.isSelected())); + + mIsPaintingCrossectionsPositionsMenuItem.setSelected(prefs.getBoolean("mIsPaintingCrossectionsPositionsMenuItem", mIsPaintingCrossectionsPositionsMenuItem.isSelected())); + + mIsPaintingFlowlinesMenuItem.setSelected(prefs.getBoolean("mIsPaintingFlowlinesMenuItem", mIsPaintingFlowlinesMenuItem.isSelected())); + + mIsPaintingApexlineMenuItem.setSelected(prefs.getBoolean("mIsPaintingApexlineMenuItem", mIsPaintingApexlineMenuItem.isSelected())); + + mIsPaintingTuckUnderLineMenuItem.setSelected(prefs.getBoolean("mIsPaintingTuckUnderLineMenuItem", mIsPaintingTuckUnderLineMenuItem.isSelected())); + mIsPaintingFootMarksMenuItem.setSelected(prefs.getBoolean("mIsPaintingFootMarksMenuItem", mIsPaintingFootMarksMenuItem.isSelected())); + + mPrintMarginLeft = prefs.getDouble("mPrintMarginLeft", mPrintMarginLeft); + mPrintMarginRight = prefs.getDouble("mPrintMarginRight", mPrintMarginRight); mPrintMarginTop = prefs.getDouble("mPrintMarginTop", mPrintMarginTop); - mPrintMarginBottom = prefs.getDouble("mPrintMarginBottom", - mPrintMarginBottom); + mPrintMarginBottom = prefs.getDouble("mPrintMarginBottom", mPrintMarginBottom); final int type = prefs.getInt("CrossSectionInterpolationType", getCrossSectionInterpolationTypeAsInt()); setCrossSectionInterpolationTypeFromInt(type); - for(int i = 8; i >= 0; i--) - { - String id = "mRecentBrdFiles"+i; - String string = prefs.get(id,""); - if(string == null || string.compareTo("") == 0) + for (int i = 8; i >= 0; i--) { + String id = "mRecentBrdFiles" + i; + String string = prefs.get(id, ""); + if (string == null || string.compareTo("") == 0) continue; addRecentBoardFile(string); @@ -649,102 +662,73 @@ public void putPreferences() { final Preferences prefs = Preferences.userNodeForPackage(BoardCAD.class); prefs.put("defaultDirectory", defaultDirectory); - prefs.putBoolean("mIsPaintingGridMenuItem", mIsPaintingGridMenuItem - .isSelected()); - prefs.putBoolean("mIsPaintingOriginalBrdMenuItem", - mIsPaintingOriginalBrdMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingGhostBrdMenuItem", - mIsPaintingGhostBrdMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingControlPointsMenuItem", - mIsPaintingControlPointsMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingNonActiveCrossSectionsMenuItem", - mIsPaintingNonActiveCrossSectionsMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingGuidePointsMenuItem", - mIsPaintingGuidePointsMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingCurvatureMenuItem", - mIsPaintingCurvatureMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingVolumeDistributionMenuItem", - mIsPaintingVolumeDistributionMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingCenterOfMassMenuItem", - mIsPaintingCenterOfMassMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingSlidingInfoMenuItem", - mIsPaintingSlidingInfoMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingSlidingCrossSectionMenuItem", - mIsPaintingSlidingCrossSectionMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingFinsMenuItem", mIsPaintingFinsMenuItem - .isSelected()); - prefs.putBoolean("mIsPaintingBackgroundImageMenuItem", - mIsPaintingCrossectionsPositionsMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingBaseLineMenuItem", - mIsPaintingBaseLineMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingCenterLineMenuItem", - mIsPaintingCenterLineMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingOverCurveMesurementsMenuItem", - mIsPaintingOverCurveMesurementsMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingMomentOfInertiaMenuItem", - mIsPaintingMomentOfInertiaMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingCrossectionsPositionsMenuItem", - mIsPaintingCrossectionsPositionsMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingFlowlinesMenuItem", - mIsPaintingFlowlinesMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingApexlineMenuItem", - mIsPaintingApexlineMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingTuckUnderLineMenuItem", - mIsPaintingTuckUnderLineMenuItem.isSelected()); - prefs.putBoolean("mIsPaintingFootMarksMenuItem", - mIsPaintingFootMarksMenuItem.isSelected()); - prefs.putBoolean("mIsAntialiasingMenuItem", - mIsAntialiasingMenuItem.isSelected()); - prefs.putBoolean("mUseFillMenuItem", - mUseFillMenuItem.isSelected()); - prefs.putInt("CrossSectionInterpolationType", - getCrossSectionInterpolationTypeAsInt()); + prefs.putBoolean("mIsPaintingGridMenuItem", mIsPaintingGridMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingOriginalBrdMenuItem", mIsPaintingOriginalBrdMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingGhostBrdMenuItem", mIsPaintingGhostBrdMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingControlPointsMenuItem", mIsPaintingControlPointsMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingNonActiveCrossSectionsMenuItem", mIsPaintingNonActiveCrossSectionsMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingGuidePointsMenuItem", mIsPaintingGuidePointsMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingCurvatureMenuItem", mIsPaintingCurvatureMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingVolumeDistributionMenuItem", mIsPaintingVolumeDistributionMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingCenterOfMassMenuItem", mIsPaintingCenterOfMassMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingSlidingInfoMenuItem", mIsPaintingSlidingInfoMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingSlidingCrossSectionMenuItem", mIsPaintingSlidingCrossSectionMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingFinsMenuItem", mIsPaintingFinsMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingBackgroundImageMenuItem", mIsPaintingCrossectionsPositionsMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingBaseLineMenuItem", mIsPaintingBaseLineMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingCenterLineMenuItem", mIsPaintingCenterLineMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingOverCurveMesurementsMenuItem", mIsPaintingOverCurveMesurementsMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingMomentOfInertiaMenuItem", mIsPaintingMomentOfInertiaMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingCrossectionsPositionsMenuItem", mIsPaintingCrossectionsPositionsMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingFlowlinesMenuItem", mIsPaintingFlowlinesMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingApexlineMenuItem", mIsPaintingApexlineMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingTuckUnderLineMenuItem", mIsPaintingTuckUnderLineMenuItem.isSelected()); + prefs.putBoolean("mIsPaintingFootMarksMenuItem", mIsPaintingFootMarksMenuItem.isSelected()); + prefs.putBoolean("mIsAntialiasingMenuItem", mIsAntialiasingMenuItem.isSelected()); + prefs.putBoolean("mUseFillMenuItem", mUseFillMenuItem.isSelected()); + prefs.putInt("CrossSectionInterpolationType", getCrossSectionInterpolationTypeAsInt()); prefs.putDouble("mPrintMarginLeft", mPrintMarginLeft); prefs.putDouble("mPrintMarginRight", mPrintMarginRight); prefs.putDouble("mPrintMarginTop", mPrintMarginTop); prefs.putDouble("mPrintMarginBottom", mPrintMarginBottom); - for(int i = 0; i 8) - { - mRecentBrdFilesMenu.remove(mRecentBrdFilesMenu.getMenuComponentCount()-1); + while (mRecentBrdFilesMenu.getMenuComponentCount() > 8) { + mRecentBrdFilesMenu.remove(mRecentBrdFilesMenu.getMenuComponentCount() - 1); + } + } + + public void updateBezier3DModel() { + if (mTabbedPane.getSelectedComponent() == mRenderedpanel) { + design_panel2.updateBezier3DModel(getCurrentBrd()); + } else if (mTabbedPane.getSelectedComponent() == fourView) { + design_panel3.updateBezier3DModel(getCurrentBrd()); } } @@ -786,14 +776,14 @@ public void setSelectedEdit(final Component edit) { mTabbedPane.setSelectedComponent(mOutlineAndProfileSplitPane); } else if (edit == mBottomAndDeckEdit) { mTabbedPane.setSelectedComponent(mBottomAndDeckEdit); - } else if (edit == view1 || edit==view2 || edit == view3) { + } else if (edit == view1 || edit == view2 || edit == view3) { mTabbedPane.setSelectedComponent(fourView); } else { mTabbedPane.setSelectedComponent(edit); } } - public JTabbedPane getmTabbedPane() { + public JTabbedPane getTabbedPane() { return mTabbedPane; } @@ -803,20 +793,13 @@ public BoardEdit getSelectedEdit() { if (component == mCrossSectionSplitPane) { return mCrossSectionEdit; - } - else if (component == mOutlineAndProfileSplitPane) { + } else if (component == mOutlineAndProfileSplitPane) { return mOutlineAndProfileSplitPane.getActive(); - } - else if (component == fourView) - { + } else if (component == fourView) { return fourView.getActive(); - } - else if(component instanceof BoardEdit) - { + } else if (component instanceof BoardEdit) { return (BoardEdit) component; - } - else - { + } else { return null; } } catch (final Exception e) { @@ -825,8 +808,7 @@ else if(component instanceof BoardEdit) } } - public BoardGuidePointsDialog getGuidePointsDialog() - { + public BoardGuidePointsDialog getGuidePointsDialog() { return mGuidePointsDialog; } @@ -834,9 +816,9 @@ public JFrame getFrame() { return mFrame; } -// public MachineView getMachineView() { -// return mMachineView; -// } + // public MachineView getMachineView() { + // return mMachineView; + // } public ControlPointInfo getControlPointInfo() { return mControlPointInfo; @@ -862,6 +844,11 @@ public Color getBlankColor() { return mColorSettings.getColor(BLANKCOLOR); } + public Color getTextColor() { + + return mColorSettings.getColor(TEXTCOLOR); + } + public Color getBackgroundColor() { return mColorSettings.getColor(BACKGROUNDCOLOR); @@ -1079,11 +1066,11 @@ public boolean isPaintingCenterLine() { public boolean isPaintingOverCurveMeasurements() { return mIsPaintingOverCurveMesurementsMenuItem.isSelected(); } - + public boolean isPaintingMomentOfInertia() { return mIsPaintingMomentOfInertiaMenuItem.isSelected(); } - + public boolean isPaintingCrossectionsPositions() { return mIsPaintingCrossectionsPositionsMenuItem.isSelected(); } @@ -1103,7 +1090,7 @@ public boolean isPaintingTuckUnderLine() { public boolean isPaintingFootMarks() { return mIsPaintingFootMarksMenuItem.isSelected(); } - + public boolean useFill() { return mUseFillMenuItem.isSelected(); } @@ -1127,15 +1114,13 @@ public boolean isUsingOffsetInterpolation() { public boolean isGhostMode() { return mGhostMode; } + public boolean isOrgFocus() { return mOrgFocus; } - - - public AbstractBezierBoardSurfaceModel.ModelType getCrossSectionInterpolationType() - { - if(mControlPointInterpolationButton == null) + public AbstractBezierBoardSurfaceModel.ModelType getCrossSectionInterpolationType() { + if (mControlPointInterpolationButton == null) return AbstractBezierBoardSurfaceModel.ModelType.SLinearInterpolation; if (mSBlendInterpolationButton.isSelected()) @@ -1143,16 +1128,15 @@ public AbstractBezierBoardSurfaceModel.ModelType getCrossSectionInterpolationTyp else return AbstractBezierBoardSurfaceModel.ModelType.ControlPointInterpolation; } - public int getCrossSectionInterpolationTypeAsInt() - { + + public int getCrossSectionInterpolationTypeAsInt() { AbstractBezierBoardSurfaceModel.ModelType type = getCrossSectionInterpolationType(); - switch(type) - { - default: - case ControlPointInterpolation: - return 2; - case SLinearInterpolation: - return 3; + switch (type) { + default: + case ControlPointInterpolation: + return 2; + case SLinearInterpolation: + return 3; } } @@ -1178,8 +1162,7 @@ public void setCrossSectionInterpolationTypeFromInt(int type) { mSBlendInterpolationButton.doClick(); break; } - if(mCurrentBrd != null) - { + if (mCurrentBrd != null) { mCurrentBrd.setInterpolationType(getCrossSectionInterpolationType()); } } @@ -1220,38 +1203,31 @@ public BezierBoard getGhostBrd() { return mGhostBrd; } - public BoardHandler getBoardHandler(){ + public BoardHandler getBoardHandler() { return board_handler; } - public void redraw() - { + public void redraw() { mOutlineEdit.repaint(); mBottomAndDeckEdit.repaint(); -// mOutlineEdit2.repaint(); -// mOutlineAndProfileSplitPane.getTopComponent().repaint(); -// mOutlineAndProfileSplitPane.getBottomComponent().repaint(); + // mOutlineEdit2.repaint(); + // mOutlineAndProfileSplitPane.getTopComponent().repaint(); + // mOutlineAndProfileSplitPane.getBottomComponent().repaint(); view1.repaint(); view2.repaint(); view3.repaint(); view4.repaint(); design_panel.redraw(); -// fourView.repaint(); -// mFrame.repaint(); + // fourView.repaint(); + // mFrame.repaint(); } - BezierBoard getFocusedBoard() - { - if(isGhostMode()) - { + BezierBoard getFocusedBoard() { + if (isGhostMode()) { return BoardCAD.getInstance().getGhostBrd(); - } - else if(mOrgFocus) - { + } else if (mOrgFocus) { return BoardCAD.getInstance().getOriginalBrd(); - } - else - { + } else { return BoardCAD.getInstance().getCurrentBrd(); } @@ -1259,7 +1235,7 @@ else if(mOrgFocus) public void fitAll() { mOutlineEdit.fit_all(); - //mOutlineEdit2.fit_all(); + // mOutlineEdit2.fit_all(); mBottomAndDeckEdit.fit_all(); mCrossSectionEdit.fit_all(); @@ -1269,54 +1245,69 @@ public void fitAll() { view4.fit_all(); design_panel.fit_all(); -// mMachineView.fit_all(); + // mMachineView.fit_all(); } public void onBrdChanged() { updateScreenValues(); - + mBoardChanged = true; - mBoardChangedFor3D = true; + setBoardChangedFor3D(); + + if (mBezier3DModelUpdateTimer != null) { + mBezier3DModelUpdateTimer.cancel(); + mBezier3DModelUpdateTimer = null; + } + + mBezier3DModelUpdateTimer = new Timer("Bezier3DModelUpdateTimer"); + TimerTask task = new TimerTask() { + @Override + public void run() { + mBezier3DModelUpdateTimer = null; + updateBezier3DModel(); + } + }; + mBezier3DModelUpdateTimer.schedule(task, 300); } public void updateScreenValues() { - if(getCurrentBrd().isEmpty()) - { + if (getCurrentBrd().isEmpty()) { return; } - + final double length = getCurrentBrd().getLength(); final double maxWidth = getCurrentBrd().getMaxWidth(); - mFrame.setTitle(appname + " - " + getCurrentBrd().getFilename() + " " - + UnitUtils.convertLengthToCurrentUnit(length, true) + " x " - + UnitUtils.convertLengthToCurrentUnit(maxWidth, false)); + mFrame.setTitle(appname + " - " + getCurrentBrd().getFilename() + " " + UnitUtils.convertLengthToCurrentUnit(length, true) + " x " + UnitUtils.convertLengthToCurrentUnit(maxWidth, false)); mBoardSpec.updateInfo(); - if(mWeightCalculatorDialog.isVisible()) + if (mWeightCalculatorDialog.isVisible()) mWeightCalculatorDialog.updateAll(); - if(mGuidePointsDialog.isVisible()) + if (mGuidePointsDialog.isVisible()) mGuidePointsDialog.update(); } - protected void setCurrentUnit(int unitType) - { + void setBoardChangedFor3D() { + design_panel2.setBoardChangedFor3D(); + design_panel3.setBoardChangedFor3D(); + } + + protected void setCurrentUnit(int unitType) { UnitUtils.setCurrentUnit(unitType); - if(mWeightCalculatorDialog != null) + if (mWeightCalculatorDialog != null) mWeightCalculatorDialog.updateAll(); - if(mGuidePointsDialog != null) + if (mGuidePointsDialog != null) mGuidePointsDialog.update(); updateScreenValues(); onControlPointChanged(); redraw(); } - public void onControlPointChanged() { final String className = getCurrentCommand().getClass().getSimpleName(); @@ -1327,11 +1318,10 @@ public void onControlPointChanged() { final BrdEditCommand cmd = (BrdEditCommand) getCurrentCommand(); mControlPointInfo.mCmd = cmd; mControlPointInfo.setEnabled(true); - final ArrayList controlPoints = edit - .getSelectedControlPoints(); + final ArrayList controlPoints = edit.getSelectedControlPoints(); final BezierKnot controlPoint = controlPoints.get(0); mControlPointInfo.setControlPoint(controlPoint); - mControlPointInfo.setWhich(cmd.mWhich); + mControlPointInfo.setWhich(cmd.getWhich()); } else { mControlPointInfo.setEnabled(false); } @@ -1343,32 +1333,23 @@ public void onSettingsChanged() { mFrame.repaint(); } - private void saveAs(String filename) - { + private void saveAs(String filename) { final String ext = FileTools.getExtension(filename); - if (ext != null && ext.compareTo("cad") == 0) - { + if (ext != null && ext.compareTo("cad") == 0) { board_handler.save_board_as(filename); - } - else if (ext != null && (ext.compareTo("stp") == 0 || ext.compareTo("step") == 0) ) - { + } else if (ext != null && (ext.compareTo("stp") == 0 || ext.compareTo("step") == 0)) { - try - { + try { board_handler.export_board(new PrintStream(new File(filename)), filename); - } - catch(IOException excep2) - { + } catch (IOException excep2) { System.out.println("Problem creating file"); } addRecentBoardFile(getCurrentBrd().getFilename()); onBrdChanged(); - mBoardChanged = false; - } - else - { + mBoardChanged = false; + } else { BrdWriter.saveFile(getCurrentBrd(), filename); addRecentBoardFile(getCurrentBrd().getFilename()); @@ -1379,18 +1360,10 @@ else if (ext != null && (ext.compareTo("stp") == 0 || ext.compareTo("step") == 0 } } - private int saveChangedBoard() - { + private int saveChangedBoard() { if (mBoardChanged == true) { final Object[] options = { LanguageResource.getString("YESBUTTON_STR"), LanguageResource.getString("NOBUTTON_STR"), LanguageResource.getString("CANCELBUTTON_STR") }; - final int n = JOptionPane - .showOptionDialog( - mFrame, - LanguageResource.getString("SAVECURRENTBOARDMSG_STR"), - LanguageResource.getString("SAVECURRENTBOARDTITLE_STR"), - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE, null, - options, options[0]); + final int n = JOptionPane.showOptionDialog(mFrame, LanguageResource.getString("SAVECURRENTBOARDMSG_STR"), LanguageResource.getString("SAVECURRENTBOARDTITLE_STR"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); switch (n) { case 0: @@ -1409,6 +1382,7 @@ private int saveChangedBoard() } return 0; } + /** * * Creates and shows the GUI. This method should be @@ -1417,6 +1391,7 @@ private int saveChangedBoard() * */ + @Override public void run() { createAndShowGUI(); } @@ -1438,13 +1413,14 @@ private void createAndShowGUI() { // Create and set up the window. mFrame = new JFrame(" " + appname); - mFrame.setMinimumSize(new Dimension(1000,700)); + mFrame.setMinimumSize(new Dimension(1000, 700)); - mFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); + mFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); mFrame.addWindowListener(new java.awt.event.WindowAdapter() { + @Override public void windowClosing(final WindowEvent e) { int r = saveChangedBoard(); - if(r == -1 || r==2) //closed dialog or cancel button pressed + if (r == -1 || r == 2) // closed dialog or cancel button pressed return; putPreferences(); System.exit(1); @@ -1455,12 +1431,12 @@ public void windowClosing(final WindowEvent e) { mFrame.getContentPane().setLayout(new BorderLayout()); // Insert 16x16 Icon on JFrame - try{ + try { ImageIcon icon = new ImageIcon(getClass().getResource("../../icons/BoardCAD png 16x16 upright.png")); mFrame.setIconImage(icon.getImage()); - }catch(Exception e) { + } catch (Exception e) { System.out.println("Jframe Icon error:\n" + e.getMessage()); - } + } JMenuBar menuBar; JPopupMenu popupMenu; @@ -1472,30 +1448,24 @@ public void windowClosing(final WindowEvent e) { fileMenu.setMnemonic(KeyEvent.VK_F); JPopupMenu.setDefaultLightWeightPopupEnabled(false); final AbstractAction newBrd = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("NEWBOARD_STR")); this.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("NEWBOARD_STR")); - this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_N, KeyEvent.CTRL_DOWN_MASK)); + this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK)); }; - + @Override public void actionPerformed(ActionEvent arg0) { - String str = (String) JOptionPane.showInputDialog(mFrame, - LanguageResource.getString("NEWBOARDMSG_STR"), - LanguageResource.getString("NEWBOARDTITLE_STR"), - JOptionPane.PLAIN_MESSAGE, null, DefaultBrds - .getInstance().getDefaultBoardsList(), - DefaultBrds.getInstance().getDefaultBoardsList()[0]); + String str = (String) JOptionPane.showInputDialog(mFrame, LanguageResource.getString("NEWBOARDMSG_STR"), LanguageResource.getString("NEWBOARDTITLE_STR"), JOptionPane.PLAIN_MESSAGE, null, DefaultBrds.getInstance().getDefaultBoardsList(), DefaultBrds.getInstance() + .getDefaultBoardsList()[0]); if (str == null) return; - BrdReader.loadFile(getCurrentBrd(), DefaultBrds.getInstance() - .getBoardArray(str), str); + BrdReader.loadFile(getCurrentBrd(), DefaultBrds.getInstance().getBoardArray(str), str); mOriginalBrd.set(getCurrentBrd()); fitAll(); onBrdChanged(); @@ -1504,27 +1474,27 @@ public void actionPerformed(ActionEvent arg0) { BrdCommandHistory.getInstance().clear(); mFrame.repaint(); mBoardChanged = false; - boolean selected = mShowBezier3DModelMenuItem.getModel().isSelected(); - if(selected && mTabbedPane.getSelectedComponent() == mRenderedpanel) - { - updateBezier3DModel(); - } + boolean selected = mShowBezier3DModelMenuItem.getModel().isSelected(); + if (selected) { + updateBezier3DModel(); + } } }; fileMenu.add(newBrd); final BoardLoadAction loadBrd = new BoardLoadAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { mBrd = mCurrentBrd; mCloneBrd = mOriginalBrd; }; + @Override public void actionPerformed(ActionEvent event) { int r = saveChangedBoard(); - if(r == -1 || r==2) //closed dialog or cancel button pressed + if (r == -1 || r == 2) // closed dialog or cancel button pressed return; super.actionPerformed(event); @@ -1535,38 +1505,36 @@ public void actionPerformed(ActionEvent event) { onBrdChanged(); onControlPointChanged(); mBoardChanged = false; - boolean selected = mShowBezier3DModelMenuItem.getModel().isSelected(); - if(selected && mTabbedPane.getSelectedComponent() == mRenderedpanel) - { - updateBezier3DModel(); - } - redraw(); - - + boolean selected = mShowBezier3DModelMenuItem.getModel().isSelected(); + if (selected) { + updateBezier3DModel(); + } + redraw(); + } }; - loadBrd.putValue(AbstractAction.NAME, LanguageResource.getString("BOARDOPEN_STR")); - loadBrd.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("BOARDOPEN_STR")); - loadBrd.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK)); + loadBrd.putValue(Action.NAME, LanguageResource.getString("BOARDOPEN_STR")); + loadBrd.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("BOARDOPEN_STR")); + loadBrd.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK)); fileMenu.add(loadBrd); fileMenu.add(mRecentBrdFilesMenu); fileMenu.addSeparator(); final AbstractAction saveBrd = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("BOARDSAVE_STR")); this.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("BOARDSAVE_STR")); - this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_S, KeyEvent.CTRL_DOWN_MASK)); + this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK)); }; + @Override public void actionPerformed(ActionEvent arg0) { saveAs(getCurrentBrd().getFilename()); -// BrdWriter.saveFile(getCurrentBrd(), getCurrentBrd().getFilename()); + // BrdWriter.saveFile(getCurrentBrd(), + // getCurrentBrd().getFilename()); mBoardChanged = false; } @@ -1575,12 +1543,13 @@ public void actionPerformed(ActionEvent arg0) { fileMenu.add(saveBrd); mSaveBrdAs = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("BOARDSAVEAS_STR")); - this.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/save-as.png"))); + this.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/save-as.png"))); }; + @Override public void actionPerformed(final ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); @@ -1588,8 +1557,7 @@ public void actionPerformed(final ActionEvent arg0) { fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); fc.setSelectedFile(new File(getCurrentBrd().getFilename())); - final int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + final int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -1610,20 +1578,19 @@ public void actionPerformed(final ActionEvent arg0) { fileMenu.add(mSaveBrdAs); final AbstractAction SaveBrd = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("BOARDSAVEANDREFRESH_STR")); this.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("BOARDSAVEANDREFRESH_STR")); - this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_R, KeyEvent.CTRL_DOWN_MASK)); + this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_DOWN_MASK)); }; + @Override public void actionPerformed(ActionEvent arg0) { - BrdWriter.saveFile(getCurrentBrd(), getCurrentBrd() - .getFilename()); + BrdWriter.saveFile(getCurrentBrd(), getCurrentBrd().getFilename()); - mOriginalBrd = (BezierBoard)getCurrentBrd().clone(); + mOriginalBrd = (BezierBoard) getCurrentBrd().clone(); mBoardChanged = false; } @@ -1632,34 +1599,32 @@ public void actionPerformed(ActionEvent arg0) { fileMenu.add(SaveBrd); fileMenu.addSeparator(); - final BoardLoadAction loadGhost = new BoardLoadAction(mGhostBrd){ - public void actionPerformed(ActionEvent event) - { + final BoardLoadAction loadGhost = new BoardLoadAction(mGhostBrd) { + @Override + public void actionPerformed(ActionEvent event) { super.actionPerformed(event); mIsPaintingGhostBrdMenuItem.setSelected(true); getSelectedEdit().repaint(); } }; - loadGhost.putValue(AbstractAction.NAME, LanguageResource.getString("OPENGHOSTBOARD_STR")); - loadGhost.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_G, KeyEvent.CTRL_DOWN_MASK)); + loadGhost.putValue(Action.NAME, LanguageResource.getString("OPENGHOSTBOARD_STR")); + loadGhost.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_DOWN_MASK)); fileMenu.add(loadGhost); final AbstractAction loadImage = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("LOADBACKGROUNDIMAGE_STR")); - this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_I, KeyEvent.CTRL_DOWN_MASK)); + this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_DOWN_MASK)); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showOpenDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showOpenDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -1687,25 +1652,23 @@ public void actionPerformed(ActionEvent arg0) { final JMenu printMenu = new JMenu(LanguageResource.getString("PRINTMENU_STR")); final JMenuItem printOutline = new JMenuItem(LanguageResource.getString("PRINTOUTLINE_STR"), KeyEvent.VK_O); - printOutline.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, - ActionEvent.ALT_MASK)); + printOutline.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK)); printOutline.addActionListener(this); printMenu.add(printOutline); final JMenuItem printSpinTemplate = new JMenuItem(LanguageResource.getString("PRINTSPINTEMPLATE_STR"), KeyEvent.VK_T); -// printOutline.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, -// ActionEvent.ALT_MASK)); + // printOutline.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, + // ActionEvent.ALT_MASK)); printSpinTemplate.addActionListener(this); printMenu.add(printSpinTemplate); final JMenuItem printProfile = new JMenuItem(LanguageResource.getString("PRINTPROFILE_STR"), KeyEvent.VK_P); - printProfile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, - ActionEvent.ALT_MASK)); + printProfile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, ActionEvent.ALT_MASK)); printProfile.addActionListener(this); printMenu.add(printProfile); - final JMenuItem printSlices = new JMenuItem(LanguageResource.getString("PRINTCROSSECTION_STR"),KeyEvent.VK_S); - printSlices.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4,ActionEvent.ALT_MASK)); + final JMenuItem printSlices = new JMenuItem(LanguageResource.getString("PRINTCROSSECTION_STR"), KeyEvent.VK_S); + printSlices.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4, ActionEvent.ALT_MASK)); printSlices.addActionListener(this); printMenu.add(printSlices); @@ -1714,11 +1677,12 @@ public void actionPerformed(ActionEvent arg0) { final JMenu printSandwichMenu = new JMenu(LanguageResource.getString("PRINTSANDWICHTEMPLATESMENU_STR")); final AbstractAction printProfileTemplate = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTSANDWICHPROFILETEMPLATE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); @@ -1735,7 +1699,7 @@ public void actionPerformed(ActionEvent arg0) { return; } - mPrintSandwichTemplates.printProfileTemplate(sandwichSettings.getMeasurement("SkinThickness"),sandwichSettings.getBoolean("Flatten"), 0.0); + mPrintSandwichTemplates.printProfileTemplate(sandwichSettings.getMeasurement("SkinThickness"), sandwichSettings.getBoolean("Flatten"), 0.0); settingsDialog.dispose(); } @@ -1743,21 +1707,22 @@ public void actionPerformed(ActionEvent arg0) { printSandwichMenu.add(printProfileTemplate); final AbstractAction printRailTemplate = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTSANDWICHRAILTEMPLATE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); String categoryName = LanguageResource.getString("SANDWICHPARAMETERSCATEGORY_STR"); Settings sandwichSettings = settings.addCategory(categoryName); sandwichSettings.addMeasurement("SkinThickness", 0.3, LanguageResource.getString("SANDWICHSKINTHICKNESS_STR")); - sandwichSettings.addMeasurement("ToRail", 2.54/2, LanguageResource.getString("SANDWICHDISTANCETORAIL_STR")); - sandwichSettings.addMeasurement("TailOffset", 2.0,LanguageResource.getString("SANDWICHTAILOFFSET")); + sandwichSettings.addMeasurement("ToRail", 2.54 / 2, LanguageResource.getString("SANDWICHDISTANCETORAIL_STR")); + sandwichSettings.addMeasurement("TailOffset", 2.0, LanguageResource.getString("SANDWICHTAILOFFSET")); sandwichSettings.addMeasurement("NoseOffset", 6.0, LanguageResource.getString("SANDWICHNOSEOFFSET")); - sandwichSettings.addBoolean("Flatten", false, LanguageResource.getString("SANDWICHFLATTEN_STR")); + sandwichSettings.addBoolean("Flatten", false, LanguageResource.getString("SANDWICHFLATTEN_STR")); SettingDialog settingsDialog = new SettingDialog(settings); settingsDialog.setTitle(LanguageResource.getString("PRINTSANDWICHRAILTEMPLATETITLE_STR")); settingsDialog.setModal(true); @@ -1767,7 +1732,7 @@ public void actionPerformed(ActionEvent arg0) { return; } - mPrintSandwichTemplates.printRailTemplate(sandwichSettings.getMeasurement("ToRail"), sandwichSettings.getMeasurement("SkinThickness"),sandwichSettings.getMeasurement("TailOffset"),sandwichSettings.getMeasurement("NoseOffset"), sandwichSettings.getBoolean("Flatten")); + mPrintSandwichTemplates.printRailTemplate(sandwichSettings.getMeasurement("ToRail"), sandwichSettings.getMeasurement("SkinThickness"), sandwichSettings.getMeasurement("TailOffset"), sandwichSettings.getMeasurement("NoseOffset"), sandwichSettings.getBoolean("Flatten")); settingsDialog.dispose(); } @@ -1775,17 +1740,18 @@ public void actionPerformed(ActionEvent arg0) { printSandwichMenu.add(printRailTemplate); final AbstractAction printDeckSkin = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTSANDWICHDECKSKINTEMPLATE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); String categoryName = LanguageResource.getString("SANDWICHPARAMETERSCATEGORY_STR"); Settings sandwichSettings = settings.addCategory(categoryName); - sandwichSettings.addMeasurement("ToRail", 2.54/2, LanguageResource.getString("SANDWICHDISTANCETORAIL_STR")); + sandwichSettings.addMeasurement("ToRail", 2.54 / 2, LanguageResource.getString("SANDWICHDISTANCETORAIL_STR")); SettingDialog settingsDialog = new SettingDialog(settings); settingsDialog.setTitle(LanguageResource.getString("PRINTSANDWICHDECKSKINTEMPLATETITLE_STR")); settingsDialog.setModal(true); @@ -1803,17 +1769,18 @@ public void actionPerformed(ActionEvent arg0) { printSandwichMenu.add(printDeckSkin); final AbstractAction printBottomSkin = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTSANDWICHBOTTOMSKINTEMPLATE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); String categoryName = LanguageResource.getString("SANDWICHPARAMETERSCATEGORY_STR"); Settings sandwichSettings = settings.addCategory(categoryName); - sandwichSettings.addMeasurement("ToRail", 2.54/2, LanguageResource.getString("SANDWICHDISTANCETORAIL_STR")); + sandwichSettings.addMeasurement("ToRail", 2.54 / 2, LanguageResource.getString("SANDWICHDISTANCETORAIL_STR")); SettingDialog settingsDialog = new SettingDialog(settings); settingsDialog.setTitle(LanguageResource.getString("PRINTSANDWICHBOTTOMSKINTEMPLATETITLE_STR")); settingsDialog.setModal(true); @@ -1837,11 +1804,12 @@ public void actionPerformed(ActionEvent arg0) { final JMenu printHWSMenu = new JMenu(LanguageResource.getString("PRINTHWSMENU_STR")); final AbstractAction printHWSSTringer = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTHWSSTRINGER_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); @@ -1863,7 +1831,7 @@ public void actionPerformed(ActionEvent arg0) { } settings.putPreferences(); - mPrintHollowWoodTemplates.printStringerTemplate(HWSSettings.getMeasurement("SkinThickness"),HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing"), HWSSettings.getMeasurement("TailOffset"), HWSSettings.getMeasurement("NoseOffset")); + mPrintHollowWoodTemplates.printStringerTemplate(HWSSettings.getMeasurement("SkinThickness"), HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing"), HWSSettings.getMeasurement("TailOffset"), HWSSettings.getMeasurement("NoseOffset")); settingsDialog.dispose(); } @@ -1871,11 +1839,12 @@ public void actionPerformed(ActionEvent arg0) { printHWSMenu.add(printHWSSTringer); final AbstractAction printHWSRibs = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTHWSRIBS_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); @@ -1896,7 +1865,7 @@ public void actionPerformed(ActionEvent arg0) { } settings.putPreferences(); - mPrintHollowWoodTemplates.printCrosssectionTemplates(HWSSettings.getMeasurement("DistanceFromRail"),HWSSettings.getMeasurement("SkinThickness"),HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing")); + mPrintHollowWoodTemplates.printCrosssectionTemplates(HWSSettings.getMeasurement("DistanceFromRail"), HWSSettings.getMeasurement("SkinThickness"), HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing")); settingsDialog.dispose(); } @@ -1904,11 +1873,12 @@ public void actionPerformed(ActionEvent arg0) { printHWSMenu.add(printHWSRibs); final AbstractAction printHWSRail = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTHWSRAIL_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); @@ -1931,7 +1901,8 @@ public void actionPerformed(ActionEvent arg0) { } settings.putPreferences(); - mPrintHollowWoodTemplates.printRailTemplate(HWSSettings.getMeasurement("DistanceFromRail"),HWSSettings.getMeasurement("SkinThickness"),HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing"), HWSSettings.getMeasurement("TailOffset"), HWSSettings.getMeasurement("NoseOffset")); + mPrintHollowWoodTemplates.printRailTemplate(HWSSettings.getMeasurement("DistanceFromRail"), HWSSettings.getMeasurement("SkinThickness"), HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing"), HWSSettings.getMeasurement("TailOffset"), + HWSSettings.getMeasurement("NoseOffset")); settingsDialog.dispose(); } @@ -1939,11 +1910,12 @@ public void actionPerformed(ActionEvent arg0) { printHWSMenu.add(printHWSRail); final AbstractAction printHWSNosePiece = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { - this.putValue(Action.NAME, LanguageResource.getString("PRINTHWSTAILPIECE_STR")); + this.putValue(Action.NAME, LanguageResource.getString("PRINTHWSNOSEPIECE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); @@ -1966,7 +1938,8 @@ public void actionPerformed(ActionEvent arg0) { } settings.putPreferences(); - mPrintHollowWoodTemplates.printNoseTemplate(HWSSettings.getMeasurement("DistanceFromRail"),HWSSettings.getMeasurement("SkinThickness"),HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing"), HWSSettings.getMeasurement("TailOffset"), HWSSettings.getMeasurement("NoseOffset")); + mPrintHollowWoodTemplates.printNoseTemplate(HWSSettings.getMeasurement("DistanceFromRail"), HWSSettings.getMeasurement("SkinThickness"), HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing"), HWSSettings.getMeasurement("TailOffset"), + HWSSettings.getMeasurement("NoseOffset")); settingsDialog.dispose(); } @@ -1974,11 +1947,12 @@ public void actionPerformed(ActionEvent arg0) { printHWSMenu.add(printHWSNosePiece); final AbstractAction printHWSTailPiece = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { - this.putValue(Action.NAME, LanguageResource.getString("PRINTHWSNOSEPIECE_STR")); + this.putValue(Action.NAME, LanguageResource.getString("PRINTHWSTAILPIECE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); @@ -2001,7 +1975,8 @@ public void actionPerformed(ActionEvent arg0) { } settings.putPreferences(); - mPrintHollowWoodTemplates.printTailTemplate(HWSSettings.getMeasurement("DistanceFromRail"),HWSSettings.getMeasurement("SkinThickness"),HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing"), HWSSettings.getMeasurement("TailOffset"), HWSSettings.getMeasurement("NoseOffset")); + mPrintHollowWoodTemplates.printTailTemplate(HWSSettings.getMeasurement("DistanceFromRail"), HWSSettings.getMeasurement("SkinThickness"), HWSSettings.getMeasurement("FrameThickness"), HWSSettings.getMeasurement("Webbing"), HWSSettings.getMeasurement("TailOffset"), + HWSSettings.getMeasurement("NoseOffset")); settingsDialog.dispose(); } @@ -2009,11 +1984,12 @@ public void actionPerformed(ActionEvent arg0) { printHWSMenu.add(printHWSTailPiece); final AbstractAction printHWSDeckTemplate = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTHWSDECKTEMPLATE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); @@ -2041,11 +2017,12 @@ public void actionPerformed(ActionEvent arg0) { printHWSMenu.add(printHWSDeckTemplate); final AbstractAction printHWSBottomTemplate = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTHWSBOTTOMTEMPLATE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); @@ -2073,15 +2050,16 @@ public void actionPerformed(ActionEvent arg0) { printHWSMenu.add(printHWSBottomTemplate); printMenu.add(printHWSMenu); - + final JMenu printChamberedWoodMenu = new JMenu(LanguageResource.getString("PRINTCHAMBEREDWOODTEMPLATESMENU_STR")); final AbstractAction printChamberedWoodTemplate = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTCHAMBEREDWOODPROFILETEMPLATE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final CategorizedSettings settings = new CategorizedSettings(); @@ -2089,19 +2067,18 @@ public void actionPerformed(ActionEvent arg0) { final Settings chamberedWoodSettings = settings.addCategory(categoryName); chamberedWoodSettings.addBoolean("Draw grid", true, LanguageResource.getString("DRAWGRID_STR")); chamberedWoodSettings.addMeasurement("Start Offset from center", 0.0, LanguageResource.getString("CHAMBEREDWOODOFFSETFROMCENTER_STR")); - chamberedWoodSettings.addMeasurement("End Offset from center", mCurrentBrd.getMaxWidth()/2.0, LanguageResource.getString("CHAMBEREDWOODENDOFFSET_STR")); + chamberedWoodSettings.addMeasurement("End Offset from center", mCurrentBrd.getMaxWidth() / 2.0, LanguageResource.getString("CHAMBEREDWOODENDOFFSET_STR")); chamberedWoodSettings.addMeasurement("Plank thickness", 2.54, LanguageResource.getString("CHAMBEREDWOODPLANKTHICKNESS_STR")); chamberedWoodSettings.addMeasurement("Deck/Bottom thickness", 0.8, LanguageResource.getString("CHAMBEREDWOODDECKANDBOTTOMTHICKNESS_STR")); chamberedWoodSettings.addBoolean("Draw chambering", true, LanguageResource.getString("CHAMBEREDDRAWCHAMBERING_STR")); chamberedWoodSettings.addBoolean("Draw alignment marks", true, LanguageResource.getString("CHAMBEREDDRAWALIGNEMNETMARKS_STR")); chamberedWoodSettings.addBoolean("Print multiple", false, LanguageResource.getString("CHAMBEREDPRINTMULTIPLETEMPLATES_STR")); - + settings.getPreferences(); - - if(chamberedWoodSettings.getMeasurement("End Offset from center") > mCurrentBrd.getMaxWidth()/2.0) - { - chamberedWoodSettings.setMeasurement("End Offset from center", mCurrentBrd.getMaxWidth()/2.0); + + if (chamberedWoodSettings.getMeasurement("End Offset from center") > mCurrentBrd.getMaxWidth() / 2.0) { + chamberedWoodSettings.setMeasurement("End Offset from center", mCurrentBrd.getMaxWidth() / 2.0); } SettingDialog settingsDialog = new SettingDialog(settings); @@ -2112,22 +2089,18 @@ public void actionPerformed(ActionEvent arg0) { settingsDialog.dispose(); return; } - + double start = chamberedWoodSettings.getMeasurement("Start Offset from center"); double end = chamberedWoodSettings.getMeasurement("End Offset from center"); double plankThickness = chamberedWoodSettings.getMeasurement("Plank thickness"); boolean printMultiple = chamberedWoodSettings.getBoolean("Print multiple"); - if(printMultiple) - { - - int numberOfTemplates = (int)((end-start)/plankThickness); - - int selection = JOptionPane.showConfirmDialog( - BoardCAD.getInstance().getFrame(), - String.valueOf(numberOfTemplates) + " " + LanguageResource.getString("PRINTCHAMBEREDWOODMULTIPLETEMPLATESMSG_STR"), - LanguageResource.getString("PRINTCHAMBEREDWOODMULTIPLETEMPLATESTITLE_STR"), JOptionPane.WARNING_MESSAGE, - JOptionPane.YES_NO_OPTION); + if (printMultiple) { + + int numberOfTemplates = (int) ((end - start) / plankThickness); + + int selection = JOptionPane.showConfirmDialog(BoardCAD.getInstance().getFrame(), String.valueOf(numberOfTemplates) + " " + LanguageResource.getString("PRINTCHAMBEREDWOODMULTIPLETEMPLATESMSG_STR"), LanguageResource.getString("PRINTCHAMBEREDWOODMULTIPLETEMPLATESTITLE_STR"), + JOptionPane.WARNING_MESSAGE, JOptionPane.YES_NO_OPTION); if (selection != JOptionPane.YES_OPTION) { return; @@ -2135,10 +2108,11 @@ public void actionPerformed(ActionEvent arg0) { } } - mPrintChamberedWoodTemplate.printTemplate(chamberedWoodSettings.getBoolean("Draw grid"), start, end, plankThickness, chamberedWoodSettings.getMeasurement("Deck/Bottom thickness"), chamberedWoodSettings.getBoolean("Draw chambering"), chamberedWoodSettings.getBoolean("Draw alignment marks"), printMultiple); - + mPrintChamberedWoodTemplate.printTemplate(chamberedWoodSettings.getBoolean("Draw grid"), start, end, plankThickness, chamberedWoodSettings.getMeasurement("Deck/Bottom thickness"), chamberedWoodSettings.getBoolean("Draw chambering"), + chamberedWoodSettings.getBoolean("Draw alignment marks"), printMultiple); + settingsDialog.dispose(); - + settings.putPreferences(); } @@ -2149,21 +2123,25 @@ public void actionPerformed(ActionEvent arg0) { printMenu.addSeparator(); - /* final JMenuItem printSpecSheet = new JMenuItem(LanguageResource.getString("PRINTSPECSHEET_STR"),KeyEvent.VK_H); - printSpecSheet.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_5,ActionEvent.ALT_MASK)); - printSpecSheet.addActionListener(this); - printMenu.add(printSpecSheet); -*/ - + /* + * final JMenuItem printSpecSheet = new + * JMenuItem(LanguageResource.getString + * ("PRINTSPECSHEET_STR"),KeyEvent.VK_H); + * printSpecSheet.setAccelerator(KeyStroke + * .getKeyStroke(KeyEvent.VK_5,ActionEvent.ALT_MASK)); + * printSpecSheet.addActionListener(this); + * printMenu.add(printSpecSheet); + */ final AbstractAction printSpecSheet = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTSPECSHEET_STR")); this.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("PRINTSPECSHEET_STR")); this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_5, ActionEvent.ALT_MASK)); }; + @Override public void actionPerformed(ActionEvent arg0) { mPrintSpecSheet.printSpecSheet(); } @@ -2172,11 +2150,6 @@ public void actionPerformed(ActionEvent arg0) { printMenu.add(printSpecSheet); - - - - - mPrintBrd = new PrintBrd(); mPrintSpecSheet = new PrintSpecSheet(); mPrintChamberedWoodTemplate = new PrintChamberedWoodTemplate(); @@ -2184,15 +2157,15 @@ public void actionPerformed(ActionEvent arg0) { mPrintHollowWoodTemplates = new PrintHollowWoodTemplates(); final AbstractAction printSpecSheetToFile = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PRINTSPECSHEETTOFILE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { - TwoValuesInputDialog resDialog = new TwoValuesInputDialog( - mFrame); + TwoValuesInputDialog resDialog = new TwoValuesInputDialog(mFrame); resDialog.setMessageText(LanguageResource.getString("PRINTSPECSHEETTOFILERESOLUTIONMSG_STR")); resDialog.setValue1(1200); resDialog.setValue2(1600); @@ -2210,14 +2183,11 @@ public void actionPerformed(ActionEvent arg0) { width = (int) resDialog.getValue1(); height = (int) resDialog.getValue2(); } catch (Exception e) { - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), LanguageResource.getString("PRINTSPECSHEETTOFILEINVALIDPARAMETERSMSG_STR"), - LanguageResource.getString("PRINTSPECSHEETTOFILEINVALIDPARAMETERSTITLE_STR"), JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), LanguageResource.getString("PRINTSPECSHEETTOFILEINVALIDPARAMETERSMSG_STR"), LanguageResource.getString("PRINTSPECSHEETTOFILEINVALIDPARAMETERSTITLE_STR"), JOptionPane.ERROR_MESSAGE); return; } - BufferedImage img = new BufferedImage(height, width, - BufferedImage.TYPE_INT_RGB); + BufferedImage img = new BufferedImage(height, width, BufferedImage.TYPE_INT_RGB); Graphics2D g = img.createGraphics(); Graphics2D g2d = (Graphics2D) g.create(); @@ -2226,9 +2196,9 @@ public void actionPerformed(ActionEvent arg0) { g2d.setRenderingHint( - RenderingHints.KEY_ANTIALIASING, + RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); + RenderingHints.VALUE_ANTIALIAS_ON); Paper paper = new Paper(); paper.setImageableArea(0, 0, width, height); @@ -2250,17 +2220,14 @@ public void actionPerformed(ActionEvent arg0) { FileFilter filter = new FileFilter() { // Accept all directories and graphics files. + @Override public boolean accept(File f) { if (f.isDirectory()) { return true; } String extension = FileTools.getExtension(f); - if (extension != null - && (extension.equals("png") - || extension.equals("gif") - || extension.equals("bmp") || extension - .equals("jpg"))) { + if (extension != null && (extension.equals("png") || extension.equals("gif") || extension.equals("bmp") || extension.equals("jpg"))) { return true; } @@ -2268,6 +2235,7 @@ public boolean accept(File f) { } // The description of this filter + @Override public String getDescription() { return LanguageResource.getString("PRINTSPECSHEETTOFILEIMAGEFILES_STR"); } @@ -2275,8 +2243,7 @@ public String getDescription() { fc.setFileFilter(filter); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2287,8 +2254,7 @@ public String getDescription() { if (filename == null) return; - if(FileTools.getExtension(filename) == "") - { + if (FileTools.getExtension(filename) == "") { filename = FileTools.setExtension(filename, "jpg"); } @@ -2296,10 +2262,10 @@ public String getDescription() { try { File outputfile = new File(filename); - ImageIO.write(img, FileTools.getExtension(filename),outputfile); + ImageIO.write(img, FileTools.getExtension(filename), outputfile); } catch (Exception e) { String str = LanguageResource.getString("PRINTSPECSHEETTOFILEERRORMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("PRINTSPECSHEETTOFILEERRORTITLE_STR"), JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("PRINTSPECSHEETTOFILEERRORTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -2310,16 +2276,16 @@ public String getDescription() { fileMenu.add(printMenu); final JMenu importMenu = new JMenu(LanguageResource.getString("IMPORTMENU_STR")); - final JMenu importBezierMenu = new JMenu(LanguageResource.getString("IMPORTBEZIERMENU_STR")); importMenu.add(importBezierMenu); final AbstractAction importOutlineAction = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("IMPORTBEZIEROUTLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { BrdImportOutlineCommand cmd = new BrdImportOutlineCommand(mOutlineEdit); cmd.execute(); @@ -2328,11 +2294,12 @@ public void actionPerformed(ActionEvent arg0) { }; importBezierMenu.add(importOutlineAction); final AbstractAction importProfileAction = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("IMPORTBEZIERPROFILE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { BrdImportProfileCommand cmd = new BrdImportProfileCommand(mBottomAndDeckEdit); cmd.execute(); @@ -2341,11 +2308,12 @@ public void actionPerformed(ActionEvent arg0) { }; importBezierMenu.add(importProfileAction); final AbstractAction importCrossSectionAction = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("IMPORTBEZIERCROSSSECTION_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { BrdImportCrossSectionCommand cmd = new BrdImportCrossSectionCommand(mCrossSectionEdit); cmd.execute(); @@ -2359,17 +2327,17 @@ public void actionPerformed(ActionEvent arg0) { final JMenu exportMenu = new JMenu(LanguageResource.getString("EXPORTMENU_STR")); final AbstractAction exportStep = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTNURBSTOSTEP_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2383,13 +2351,10 @@ public void actionPerformed(ActionEvent arg0) { BoardCAD.defaultDirectory = file.getPath(); try { - board_handler.export_board(new PrintStream(new File( - filename)), filename); + board_handler.export_board(new PrintStream(new File(filename)), filename); } catch (Exception e) { String str = LanguageResource.getString("EXPORTNURBSTOSTEPFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTNURBSTOSTEPFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTNURBSTOSTEPFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -2398,20 +2363,19 @@ public void actionPerformed(ActionEvent arg0) { exportMenu.add(exportStep); - final AbstractAction exportDxf3D = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTNURBSTODXF_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2425,13 +2389,10 @@ public void actionPerformed(ActionEvent arg0) { BoardCAD.defaultDirectory = file.getPath(); try { - board_handler.export_board_dxf(new PrintStream(new File( - filename)), filename); + board_handler.export_board_dxf(new PrintStream(new File(filename)), filename); } catch (Exception e) { String str = LanguageResource.getString("EXPORTNURBSTODXFFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTNURBSTODXFFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTNURBSTODXFFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -2440,18 +2401,18 @@ public void actionPerformed(ActionEvent arg0) { exportMenu.add(exportDxf3D); final AbstractAction exportStl3D = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTNURBSTOSTL_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2465,13 +2426,10 @@ public void actionPerformed(ActionEvent arg0) { BoardCAD.defaultDirectory = file.getPath(); try { - board_handler.export_board_stl(new PrintStream(new File( - filename)), filename); + board_handler.export_board_stl(new PrintStream(new File(filename)), filename); } catch (Exception e) { String str = LanguageResource.getString("EXPORTNURBSTOSTLFAILEDTITLE_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTNURBSTOSTLFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTNURBSTOSTLFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -2483,11 +2441,12 @@ public void actionPerformed(ActionEvent arg0) { JMenu beziersExportMenu = new JMenu(LanguageResource.getString("EXPORTBEZIERS_STR")); final AbstractAction exportBezierOutline = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIEROUTLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); @@ -2495,14 +2454,14 @@ public void actionPerformed(ActionEvent arg0) { fc.setFileFilter(new FileFilter() { // Accept all directories and brd and s3d files. + @Override public boolean accept(File f) { if (f.isDirectory()) { return true; } String extension = FileTools.getExtension(f); - if (extension != null && extension.equals("otl") ) - { + if (extension != null && extension.equals("otl")) { return true; } @@ -2510,13 +2469,13 @@ public boolean accept(File f) { } // The description of this filter + @Override public String getDescription() { return LanguageResource.getString("OUTLINEFILES_STR"); } }); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2528,15 +2487,12 @@ public String getDescription() { return; try { - if(BrdWriter.exportOutline(getCurrentBrd(), filename) == false) - { + if (BrdWriter.exportOutline(getCurrentBrd(), filename) == false) { throw new Exception(); } } catch (Exception e) { String str = LanguageResource.getString("EXPORTBEZIEROUTLINEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTBEZIEROUTLINEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTBEZIEROUTLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } @@ -2548,11 +2504,12 @@ public String getDescription() { beziersExportMenu.add(exportBezierOutline); final AbstractAction exportBezierProfile = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIERPROFILE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); @@ -2560,14 +2517,14 @@ public void actionPerformed(ActionEvent arg0) { fc.setFileFilter(new FileFilter() { // Accept all directories and pfl files. + @Override public boolean accept(File f) { if (f.isDirectory()) { return true; } String extension = FileTools.getExtension(f); - if (extension != null && extension.equals("pfl") ) - { + if (extension != null && extension.equals("pfl")) { return true; } @@ -2575,13 +2532,13 @@ public boolean accept(File f) { } // The description of this filter + @Override public String getDescription() { return LanguageResource.getString("PROFILEFILES_STR"); } }); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2593,15 +2550,12 @@ public String getDescription() { return; try { - if(BrdWriter.exportProfile(getCurrentBrd(), filename) == false) - { + if (BrdWriter.exportProfile(getCurrentBrd(), filename) == false) { throw new Exception(); } } catch (Exception e) { String str = LanguageResource.getString("EXPORTBEZIERFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTBEZIERFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTBEZIERFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } @@ -2613,11 +2567,12 @@ public String getDescription() { beziersExportMenu.add(exportBezierProfile); final AbstractAction exportBezierCrossection = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIERCROSSECTION_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); @@ -2625,14 +2580,14 @@ public void actionPerformed(ActionEvent arg0) { fc.setFileFilter(new FileFilter() { // Accept all directories and brd and s3d files. + @Override public boolean accept(File f) { if (f.isDirectory()) { return true; } String extension = FileTools.getExtension(f); - if (extension != null && extension.equals("crs") ) - { + if (extension != null && extension.equals("crs")) { return true; } @@ -2640,13 +2595,13 @@ public boolean accept(File f) { } // The description of this filter + @Override public String getDescription() { return LanguageResource.getString("CROSSECTIONFILES_STR"); } }); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2658,15 +2613,12 @@ public String getDescription() { return; try { - if(BrdWriter.exportCrossection(getCurrentBrd(), getCurrentBrd().getCurrentCrossSectionIndex(), filename) == false) - { + if (BrdWriter.exportCrossection(getCurrentBrd(), getCurrentBrd().getCurrentCrossSectionIndex(), filename) == false) { throw new Exception(); } } catch (Exception e) { String str = LanguageResource.getString("EXPORTBEZIERFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTBEZIERFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTBEZIERFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } @@ -2681,18 +2633,18 @@ public String getDescription() { exportMenu.addSeparator(); final AbstractAction exportProfileAsDxfSpline = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIERPROFILEASDXFSPLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2707,15 +2659,12 @@ public void actionPerformed(ActionEvent arg0) { try { BezierSpline[] patches = new BezierSpline[2]; - patches[0] = BoardCAD.getInstance().getCurrentBrd() - .getBottom(); + patches[0] = BoardCAD.getInstance().getCurrentBrd().getBottom(); patches[1] = new BezierSpline(); - BezierSpline org = BoardCAD.getInstance().getCurrentBrd() - .getDeck(); + BezierSpline org = BoardCAD.getInstance().getCurrentBrd().getDeck(); for (int i = 0; i < org.getNrOfControlPoints(); i++) { - BezierKnot controlPoint = (BezierKnot) org.getControlPoint( - (org.getNrOfControlPoints() - 1) - i).clone(); + BezierKnot controlPoint = (BezierKnot) org.getControlPoint((org.getNrOfControlPoints() - 1) - i).clone(); controlPoint.switch_tangents(); patches[1].append(controlPoint); } @@ -2723,9 +2672,7 @@ public void actionPerformed(ActionEvent arg0) { DxfExport.exportBezierSplines(filename, patches); } catch (Exception e) { String str = LanguageResource.getString("EXPORTBEZIERPROFILEASDXFSPLINEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTBEZIERPROFILEASDXFSPLINEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTBEZIERPROFILEASDXFSPLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -2734,18 +2681,18 @@ public void actionPerformed(ActionEvent arg0) { exportMenu.add(exportProfileAsDxfSpline); final AbstractAction exportOutlineAsDxfSpline = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { - this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIEROUTLINEASDXFSPLINE_STR")); + this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIEROUTLINEASDXFSPLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2760,51 +2707,42 @@ public void actionPerformed(ActionEvent arg0) { try { BezierSpline[] patches = new BezierSpline[2]; - patches[0] = BoardCAD.getInstance().getCurrentBrd() - .getOutline(); + patches[0] = BoardCAD.getInstance().getCurrentBrd().getOutline(); patches[1] = new BezierSpline(); - BezierSpline org = BoardCAD.getInstance().getCurrentBrd() - .getOutline(); + BezierSpline org = BoardCAD.getInstance().getCurrentBrd().getOutline(); for (int i = 0; i < org.getNrOfControlPoints(); i++) { - BezierKnot controlPoint = (BezierKnot) org.getControlPoint( - (org.getNrOfControlPoints() - 1) - i).clone(); + BezierKnot controlPoint = (BezierKnot) org.getControlPoint((org.getNrOfControlPoints() - 1) - i).clone(); controlPoint.switch_tangents(); - controlPoint.getEndPoint().y = -controlPoint - .getEndPoint().y; - controlPoint.getTangentToPrev().y = -controlPoint - .getTangentToPrev().y; - controlPoint.getTangentToNext().y = -controlPoint - .getTangentToNext().y; + controlPoint.getEndPoint().y = -controlPoint.getEndPoint().y; + controlPoint.getTangentToPrev().y = -controlPoint.getTangentToPrev().y; + controlPoint.getTangentToNext().y = -controlPoint.getTangentToNext().y; patches[1].append(controlPoint); } DxfExport.exportBezierSplines(filename, patches); } catch (Exception e) { String str = LanguageResource.getString("EXPORTBEZIEROUTLINEASDXFSPLINEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTBEZIEROUTLINEASDXFSPLINEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTBEZIEROUTLINEASDXFSPLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } }; exportMenu.add(exportOutlineAsDxfSpline); - final AbstractAction exportCurrentCrossSectionAsDxfSpline = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { - this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIERCROSSSECTIONASDXFSPLINE_STR")); + this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIERCROSSSECTIONASDXFSPLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2817,53 +2755,46 @@ public void actionPerformed(ActionEvent arg0) { BoardCAD.defaultDirectory = file.getPath(); - try - { + try { BezierSpline[] patches = new BezierSpline[2]; patches[0] = BoardCAD.getInstance().getCurrentBrd().getCurrentCrossSection().getBezierSpline(); patches[1] = new BezierSpline(); BezierSpline org = BoardCAD.getInstance().getCurrentBrd().getCurrentCrossSection().getBezierSpline(); - for (int i = 0; i < org.getNrOfControlPoints(); i++) - { - BezierKnot controlPoint = (BezierKnot)org.getControlPoint((org.getNrOfControlPoints() - 1) - i).clone(); + for (int i = 0; i < org.getNrOfControlPoints(); i++) { + BezierKnot controlPoint = (BezierKnot) org.getControlPoint((org.getNrOfControlPoints() - 1) - i).clone(); controlPoint.switch_tangents(); controlPoint.getEndPoint().x = -controlPoint.getEndPoint().x; - controlPoint.getTangentToPrev().x = -controlPoint .getTangentToPrev().x; - controlPoint.getTangentToNext().x = -controlPoint .getTangentToNext().x; + controlPoint.getTangentToPrev().x = -controlPoint.getTangentToPrev().x; + controlPoint.getTangentToNext().x = -controlPoint.getTangentToNext().x; patches[1].append(controlPoint); } DxfExport.exportBezierSplines(filename, patches); - } - catch (Exception e) - { + } catch (Exception e) { String str = LanguageResource.getString("EXPORTBEZIERCROSSSECTIONASDXFSPLINEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTBEZIERCROSSSECTIONASDXFSPLINEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTBEZIERCROSSSECTIONASDXFSPLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } }; exportMenu.add(exportCurrentCrossSectionAsDxfSpline); - - exportMenu.addSeparator(); + exportMenu.addSeparator(); final AbstractAction exportProfileAsDxfPolyline = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIERPROFILEASDXFPOLYLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2878,15 +2809,12 @@ public void actionPerformed(ActionEvent arg0) { try { BezierSpline[] patches = new BezierSpline[2]; - patches[0] = BoardCAD.getInstance().getCurrentBrd() - .getBottom(); + patches[0] = BoardCAD.getInstance().getCurrentBrd().getBottom(); patches[1] = new BezierSpline(); - BezierSpline org = BoardCAD.getInstance().getCurrentBrd() - .getDeck(); + BezierSpline org = BoardCAD.getInstance().getCurrentBrd().getDeck(); for (int i = 0; i < org.getNrOfControlPoints(); i++) { - BezierKnot controlPoint = (BezierKnot) org.getControlPoint( - (org.getNrOfControlPoints() - 1) - i).clone(); + BezierKnot controlPoint = (BezierKnot) org.getControlPoint((org.getNrOfControlPoints() - 1) - i).clone(); controlPoint.switch_tangents(); patches[1].append(controlPoint); } @@ -2894,9 +2822,7 @@ public void actionPerformed(ActionEvent arg0) { DxfExport.exportPolylineFromSplines(filename, patches, 100); } catch (Exception e) { String str = LanguageResource.getString("EXPORTBEZIERPROFILEASDXFPOLYLINEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTBEZIERPROFILEASDXFPOLYLINEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTBEZIERPROFILEASDXFPOLYLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -2905,18 +2831,18 @@ public void actionPerformed(ActionEvent arg0) { exportMenu.add(exportProfileAsDxfPolyline); final AbstractAction exportOutlineAsDxfPolyline = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIEROUTLINEASDXFPOLYLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2931,30 +2857,22 @@ public void actionPerformed(ActionEvent arg0) { try { BezierSpline[] patches = new BezierSpline[2]; - patches[0] = BoardCAD.getInstance().getCurrentBrd() - .getOutline(); + patches[0] = BoardCAD.getInstance().getCurrentBrd().getOutline(); patches[1] = new BezierSpline(); - BezierSpline org = BoardCAD.getInstance().getCurrentBrd() - .getOutline(); + BezierSpline org = BoardCAD.getInstance().getCurrentBrd().getOutline(); for (int i = 0; i < org.getNrOfControlPoints(); i++) { - BezierKnot controlPoint = (BezierKnot) org.getControlPoint( - (org.getNrOfControlPoints() - 1) - i).clone(); + BezierKnot controlPoint = (BezierKnot) org.getControlPoint((org.getNrOfControlPoints() - 1) - i).clone(); controlPoint.switch_tangents(); - controlPoint.getEndPoint().y = -controlPoint - .getEndPoint().y; - controlPoint.getTangentToPrev().y = -controlPoint - .getTangentToPrev().y; - controlPoint.getTangentToNext().y = -controlPoint - .getTangentToNext().y; + controlPoint.getEndPoint().y = -controlPoint.getEndPoint().y; + controlPoint.getTangentToPrev().y = -controlPoint.getTangentToPrev().y; + controlPoint.getTangentToNext().y = -controlPoint.getTangentToNext().y; patches[1].append(controlPoint); } DxfExport.exportPolylineFromSplines(filename, patches, 100); } catch (Exception e) { String str = LanguageResource.getString("EXPORTBEZIEROUTLINEASDXFPOLYLINEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTBEZIEROUTLINEASDXFPOLYLINEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTBEZIEROUTLINEASDXFPOLYLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -2963,18 +2881,18 @@ public void actionPerformed(ActionEvent arg0) { exportMenu.add(exportOutlineAsDxfPolyline); final AbstractAction exportCrossSectionAsDxfPolyline = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXPORTBEZIERCROSSSECTIONASDXFPOLYLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -2987,16 +2905,14 @@ public void actionPerformed(ActionEvent arg0) { BoardCAD.defaultDirectory = file.getPath(); - try - { + try { BezierSpline[] patches = new BezierSpline[2]; patches[0] = BoardCAD.getInstance().getCurrentBrd().getCurrentCrossSection().getBezierSpline(); patches[1] = new BezierSpline(); BezierSpline org = BoardCAD.getInstance().getCurrentBrd().getCurrentCrossSection().getBezierSpline(); - for (int i = 0; i < org.getNrOfControlPoints(); i++) - { - BezierKnot controlPoint = (BezierKnot)org.getControlPoint((org.getNrOfControlPoints() - 1) - i).clone(); + for (int i = 0; i < org.getNrOfControlPoints(); i++) { + BezierKnot controlPoint = (BezierKnot) org.getControlPoint((org.getNrOfControlPoints() - 1) - i).clone(); controlPoint.switch_tangents(); controlPoint.getEndPoint().x = -controlPoint.getEndPoint().x; controlPoint.getTangentToPrev().x = -controlPoint.getTangentToPrev().x; @@ -3004,31 +2920,26 @@ public void actionPerformed(ActionEvent arg0) { patches[1].append(controlPoint); } DxfExport.exportPolylineFromSplines(filename, patches, 100); - } - catch (Exception e) - { + } catch (Exception e) { String str = LanguageResource.getString("EXPORTBEZIERCROSSSECTIONASDXFPOLYLINEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("EXPORTBEZIERCROSSECTIONASDXFPOLYLINEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("EXPORTBEZIERCROSSECTIONASDXFPOLYLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } }; exportMenu.add(exportCrossSectionAsDxfPolyline); - + fileMenu.add(exportMenu); final JMenu gcodeMenu = new JMenu(LanguageResource.getString("GCODEMENU_STR")); - - AbstractAction exportGcode = new AbstractAction() - { + AbstractAction exportGcode = new AbstractAction() { { this.putValue(Action.NAME, "Nurbs to Gcode deck"); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); @@ -3040,13 +2951,13 @@ public void actionPerformed(ActionEvent arg0) { File file = fc.getSelectedFile(); - String filename = file.getPath(); // Load and display selection - if(filename == null) + String filename = file.getPath(); // Load and display selection + if (filename == null) return; BoardCAD.defaultDirectory = file.getPath(); - if(board_handler.is_empty()) { + if (board_handler.is_empty()) { board_handler.approximate_bezier(getCurrentBrd(), false); } board_handler.generateGCodeDeck(filename); @@ -3055,13 +2966,12 @@ public void actionPerformed(ActionEvent arg0) { }; gcodeMenu.add(exportGcode); - - AbstractAction exportGcodeBottom = new AbstractAction() - { + AbstractAction exportGcodeBottom = new AbstractAction() { { this.putValue(Action.NAME, "Nurbs to Gcode bottom"); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); @@ -3073,13 +2983,13 @@ public void actionPerformed(ActionEvent arg0) { File file = fc.getSelectedFile(); - String filename = file.getPath(); // Load and display selection - if(filename == null) + String filename = file.getPath(); // Load and display selection + if (filename == null) return; BoardCAD.defaultDirectory = file.getPath(); - if(board_handler.is_empty()) { + if (board_handler.is_empty()) { board_handler.approximate_bezier(getCurrentBrd(), false); } board_handler.generateGCodeBottom(filename); @@ -3091,47 +3001,48 @@ public void actionPerformed(ActionEvent arg0) { gcodeMenu.addSeparator(); final AbstractAction gcodeBezier = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("GCODEBEZIER_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { BezierBoard brd = getCurrentBrd(); MachineConfig machineConfig = new MachineConfig(); - machineConfig.setBoard((BezierBoard)brd.clone()); + machineConfig.setBoard((BezierBoard) brd.clone()); MachineDialog dialog = new MachineDialog(machineConfig); - //dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL); - //dialog.setModal(false); - + // dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL); + // dialog.setModal(false); + machineConfig.setMachineView(dialog.getMachineView()); machineConfig.initialize(); machineConfig.getPreferences(); - - //Turn of sandwich compensation so we don't use sandwich compensation by accident (lesson learned the hard way) + + // Turn of sandwich compensation so we don't use sandwich + // compensation by accident (lesson learned the hard way) Settings sandwichCompensationSettings = machineConfig.getCategory(LanguageResource.getString("SANDWICHCOMPENSATIONCATEGORY_STR")); sandwichCompensationSettings.setBoolean(SandwichCompensation.SANDWICH_DECK_COMPENSATION_ON, false); sandwichCompensationSettings.setBoolean(SandwichCompensation.SANDWICH_BOTTOM_COMPENSATION_ON, false); sandwichCompensationSettings.setBoolean(SandwichCompensation.SANDWICH_OUTLINE_COMPENSATION_ON, false); Settings generalSettings = machineConfig.getCategory(LanguageResource.getString("GENERALCATEGORY_STR")); - - if(generalSettings.getBoolean(MachineConfig.USE_BRD_SETTINGS) == true) - { + + if (generalSettings.getBoolean(MachineConfig.USE_BRD_SETTINGS) == true) { System.out.printf("Using board settings"); - if(generalSettings.getEnumeration(MachineConfig.BLANKHOLDINGSYSTEM_TYPE) == 0) - { - //generalSettings.getDouble(MachineConfig.TAILSTOP_POS, ); + if (generalSettings.getEnumeration(MachineConfig.BLANKHOLDINGSYSTEM_TYPE) == 0) { + // generalSettings.getDouble(MachineConfig.TAILSTOP_POS, + // ); Settings supportsSettings = machineConfig.getCategory(LanguageResource.getString("BLANKHOLDINGSYSTEMCATEGORY_STR")); supportsSettings.setObject(SupportsBlankHoldingSystem.SUPPORT_1_POS, new Double(brd.getStrut1()[0])); supportsSettings.setObject(SupportsBlankHoldingSystem.SUPPORT_2_POS, new Double(brd.getStrut2()[0])); - + supportsSettings.setObject(SupportsBlankHoldingSystem.SUPPORT_1_HEIGHT, new Double(brd.getStrut1()[1])); supportsSettings.setObject(SupportsBlankHoldingSystem.SUPPORT_2_HEIGHT, new Double(brd.getStrut2()[1])); } - + generalSettings.setObject(MachineConfig.BLANK, generalSettings.new FileName(brd.getBlankFile())); Settings cutsSettings = machineConfig.getCategory(LanguageResource.getString("CUTSCATEGORY_STR")); @@ -3140,37 +3051,36 @@ public void actionPerformed(ActionEvent arg0) { cutsSettings.setObject(MachineConfig.DECK_RAIL_CUTS, new Integer(brd.getTopShoulderCuts())); cutsSettings.setObject(MachineConfig.BOTTOM_CUTS, new Integer(brd.getBottomCuts())); cutsSettings.setObject(MachineConfig.BOTTOM_RAIL_CUTS, new Integer(brd.getBottomRailCuts())); - + cutsSettings.setObject(MachineConfig.DECK_ANGLE, new Double(brd.getTopShoulderAngle())); cutsSettings.setObject(MachineConfig.DECK_RAIL_ANGLE, new Double(brd.getMaxAngle())); - + Settings speedSettings = machineConfig.getCategory(LanguageResource.getString("SPEEDCATEGORY_STR")); - speedSettings.setObject(MachineConfig.CUTTING_SPEED, new Double(brd.getRegularSpeed())); - speedSettings.setObject(MachineConfig.CUTTING_SPEED_STRINGER, new Double(brd.getStringerSpeed())); - speedSettings.setObject(MachineConfig.CUTTING_SPEED_RAIL, new Double(brd.getRegularSpeed())); - speedSettings.setObject(MachineConfig.CUTTING_SPEED_OUTLINE, new Double(brd.getRegularSpeed())); - + speedSettings.setObject(MachineConfig.CUTTING_SPEED, new Double(brd.getRegularSpeed())); + speedSettings.setObject(MachineConfig.CUTTING_SPEED_STRINGER, new Double(brd.getStringerSpeed())); + speedSettings.setObject(MachineConfig.CUTTING_SPEED_RAIL, new Double(brd.getRegularSpeed())); + speedSettings.setObject(MachineConfig.CUTTING_SPEED_OUTLINE, new Double(brd.getRegularSpeed())); + } - - + dialog.setVisible(true); - - if(generalSettings.getBoolean(MachineConfig.USE_BRD_SETTINGS)) - { - if(generalSettings.getEnumeration(MachineConfig.BLANKHOLDINGSYSTEM_TYPE) == 0) - { - //generalSettings.getDouble(MachineConfig.TAILSTOP_POS, ); + + if (generalSettings.getBoolean(MachineConfig.USE_BRD_SETTINGS)) { + if (generalSettings.getEnumeration(MachineConfig.BLANKHOLDINGSYSTEM_TYPE) == 0) { + // generalSettings.getDouble(MachineConfig.TAILSTOP_POS, + // ); Settings supportsSettings = machineConfig.addCategory(LanguageResource.getString("BLANKHOLDINGSYSTEMCATEGORY_STR")); - //generalSettings.getDouble(MachineConfig.TAILSTOP_POS, ); + // generalSettings.getDouble(MachineConfig.TAILSTOP_POS, + // ); brd.getStrut1()[0] = supportsSettings.getDouble(SupportsBlankHoldingSystem.SUPPORT_1_POS); brd.getStrut2()[0] = supportsSettings.getDouble(SupportsBlankHoldingSystem.SUPPORT_2_POS); - + brd.getStrut1()[1] = supportsSettings.getDouble(SupportsBlankHoldingSystem.SUPPORT_1_HEIGHT); brd.getStrut2()[1] = supportsSettings.getDouble(SupportsBlankHoldingSystem.SUPPORT_2_HEIGHT); } - + brd.setBlankFile(generalSettings.getFileName(MachineConfig.BLANK)); Settings cutsSettings = machineConfig.getCategory(LanguageResource.getString("CUTSCATEGORY_STR")); @@ -3179,20 +3089,24 @@ public void actionPerformed(ActionEvent arg0) { brd.setTopShoulderCuts(cutsSettings.getInt(MachineConfig.DECK_RAIL_CUTS)); brd.setBottomCuts(cutsSettings.getInt(MachineConfig.BOTTOM_CUTS)); brd.setBottomRailCuts(cutsSettings.getInt(MachineConfig.BOTTOM_RAIL_CUTS)); - + brd.setTopShoulderAngle(cutsSettings.getDouble(MachineConfig.DECK_ANGLE)); brd.setMaxAngle(cutsSettings.getDouble(MachineConfig.DECK_RAIL_ANGLE)); -// cutsSettings.getDouble(MachineConfig.BOTTOM_ANGLE, new Double(90)); -// cutsSettings.getDouble(MachineConfig.BOTTOM_RAIL_ANGLE, new Double(90)); - + // cutsSettings.getDouble(MachineConfig.BOTTOM_ANGLE, new + // Double(90)); + // cutsSettings.getDouble(MachineConfig.BOTTOM_RAIL_ANGLE, + // new Double(90)); + Settings speedSettings = machineConfig.getCategory(LanguageResource.getString("SPEEDCATEGORY_STR")); - brd.setRegularSpeed((int)speedSettings.getDouble(MachineConfig.CUTTING_SPEED)); - brd.setStringerSpeed((int)speedSettings.getDouble(MachineConfig.CUTTING_SPEED_STRINGER)); - brd.setRegularSpeed((int)speedSettings.getDouble(MachineConfig.CUTTING_SPEED_RAIL)); -// speedSettings.getDouble(MachineConfig.CUTTING_SPEED_NOSE_REDUCTION, new Double(0.5)); -// speedSettings.getDouble(MachineConfig.CUTTING_SPEED_TAIL_REDUCTION, new Double(0.5)); -// brd.setNoseLength(speedSettings.getDouble(MachineConfig.CUTTING_SPEED_NOSE_REDUCTION_DIST)); -// brd.setTailLength(speedSettings.getDouble(MachineConfig.CUTTING_SPEED_TAIL_REDUCTION_DIST)); + brd.setRegularSpeed((int) speedSettings.getDouble(MachineConfig.CUTTING_SPEED)); + brd.setStringerSpeed((int) speedSettings.getDouble(MachineConfig.CUTTING_SPEED_STRINGER)); + brd.setRegularSpeed((int) speedSettings.getDouble(MachineConfig.CUTTING_SPEED_RAIL)); + // speedSettings.getDouble(MachineConfig.CUTTING_SPEED_NOSE_REDUCTION, + // new Double(0.5)); + // speedSettings.getDouble(MachineConfig.CUTTING_SPEED_TAIL_REDUCTION, + // new Double(0.5)); + // brd.setNoseLength(speedSettings.getDouble(MachineConfig.CUTTING_SPEED_NOSE_REDUCTION_DIST)); + // brd.setTailLength(speedSettings.getDouble(MachineConfig.CUTTING_SPEED_TAIL_REDUCTION_DIST)); } } }; @@ -3202,11 +3116,12 @@ public void actionPerformed(ActionEvent arg0) { gcodeMenu.addSeparator(); final AbstractAction gcodeOutline = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("GCODEOUTLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); @@ -3226,8 +3141,7 @@ public void actionPerformed(ActionEvent arg0) { fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -3242,22 +3156,18 @@ public void actionPerformed(ActionEvent arg0) { BoardCAD.defaultDirectory = file.getPath(); - HotwireToolpathGenerator2 toolpathGenerator = new HotwireToolpathGenerator2( - new AbstractCutter() { - public double[] calcOffset(Point3d point, Vector3d normal, - AbstractBoard board) { - return new double[] { point.x, point.y, point.z }; - } + HotwireToolpathGenerator2 toolpathGenerator = new HotwireToolpathGenerator2(new AbstractCutter() { + public double[] calcOffset(Point3d point, Vector3d normal, AbstractBoard board) { + return new double[] { point.x, point.y, point.z }; + } - }, new GCodeWriter(), hotwireSettings.getMeasurement("CuttingSpeed")*UnitUtils.MILLIMETER_PR_CENTIMETER); + }, new GCodeWriter(), hotwireSettings.getMeasurement("CuttingSpeed") * UnitUtils.MILLIMETER_PR_CENTIMETER); try { toolpathGenerator.writeOutline(filename, getCurrentBrd()); } catch (Exception e) { String str = LanguageResource.getString("GCODEOUTLINEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("GCODEOUTLINEFAILEDTITLE_STR") , - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("GCODEOUTLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -3266,11 +3176,12 @@ public double[] calcOffset(Point3d point, Vector3d normal, gcodeMenu.add(gcodeOutline); final AbstractAction gcodeProfile = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("GCODEPROFILE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { CategorizedSettings settings = new CategorizedSettings(); String categoryName = LanguageResource.getString("HOTWIRECATEGORY_STR"); @@ -3290,8 +3201,7 @@ public void actionPerformed(ActionEvent arg0) { fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -3305,31 +3215,28 @@ public void actionPerformed(ActionEvent arg0) { filename = FileTools.setExtension(filename, "nc"); BoardCAD.defaultDirectory = file.getPath(); - - HotwireToolpathGenerator2 toolpathGenerator = new HotwireToolpathGenerator2( - new AbstractCutter() { - public double[] calcOffset(Point3d point, Vector3d normal, - AbstractBoard board) { - -// double additionalThickness = hotwireSettings.getMeasurement("AdditionalThickness")*UnitUtils.MILLIMETER_PR_CENTIMETER; - - Point3d offsetPoint = new Point3d(point); -// Vector3d normalScaled = new Vector3d(normal); -// normalScaled.scale(additionalThickness); -// offsetPoint.add(normalScaled); - - return new double[] { offsetPoint.x, offsetPoint.y, offsetPoint.z }; - } - }, new GCodeWriter(), hotwireSettings.getMeasurement("CuttingSpeed")*UnitUtils.MILLIMETER_PR_CENTIMETER, hotwireSettings.getMeasurement("AdditionalThickness")*UnitUtils.MILLIMETER_PR_CENTIMETER); + HotwireToolpathGenerator2 toolpathGenerator = new HotwireToolpathGenerator2(new AbstractCutter() { + public double[] calcOffset(Point3d point, Vector3d normal, AbstractBoard board) { + + // double additionalThickness = + // hotwireSettings.getMeasurement("AdditionalThickness")*UnitUtils.MILLIMETER_PR_CENTIMETER; + + Point3d offsetPoint = new Point3d(point); + // Vector3d normalScaled = new Vector3d(normal); + // normalScaled.scale(additionalThickness); + // offsetPoint.add(normalScaled); + + return new double[] { offsetPoint.x, offsetPoint.y, offsetPoint.z }; + } + + }, new GCodeWriter(), hotwireSettings.getMeasurement("CuttingSpeed") * UnitUtils.MILLIMETER_PR_CENTIMETER, hotwireSettings.getMeasurement("AdditionalThickness") * UnitUtils.MILLIMETER_PR_CENTIMETER); try { toolpathGenerator.writeProfile(filename, getCurrentBrd()); } catch (Exception e) { String str = LanguageResource.getString("GCODEPROFILEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("GCODEPROFILEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("GCODEPROFILEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -3338,11 +3245,12 @@ public double[] calcOffset(Point3d point, Vector3d normal, gcodeMenu.add(gcodeProfile); final AbstractAction gcodeDeck = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("GCODEDECK_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); @@ -3363,28 +3271,23 @@ public void actionPerformed(ActionEvent arg0) { MachineConfig config = new MachineConfig(); config.getPreferences(); - - AbstractToolpathGenerator toolpathGenerator = new WidthSplitsToolpathGenerator( - new AbstractCutter() { - public double[] calcOffset(Point3d point, Vector3d normal, - AbstractBoard board) { - return new double[] { point.x, point.y, point.z }; - } - public double calcSpeed(Point3d point, Vector3d normal, - AbstractBoard board, boolean isCuttingStringer) { - return 10; - } - - }, null, new GCodeWriter(), config); + AbstractToolpathGenerator toolpathGenerator = new WidthSplitsToolpathGenerator(new AbstractCutter() { + public double[] calcOffset(Point3d point, Vector3d normal, AbstractBoard board) { + return new double[] { point.x, point.y, point.z }; + } + + public double calcSpeed(Point3d point, Vector3d normal, AbstractBoard board, boolean isCuttingStringer) { + return 10; + } + + }, null, new GCodeWriter(), config); try { toolpathGenerator.writeToolpath(filename, getCurrentBrd(), null); } catch (Exception e) { String str = LanguageResource.getString("GCODEDECKFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("GCODEDECKFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("GCODEDECKFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -3393,18 +3296,18 @@ public double calcSpeed(Point3d point, Vector3d normal, gcodeMenu.add(gcodeDeck); final AbstractAction gcodeBottom = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("GCODEBOTTOM_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -3416,31 +3319,26 @@ public void actionPerformed(ActionEvent arg0) { return; BoardCAD.defaultDirectory = file.getPath(); - + MachineConfig config = new MachineConfig(); config.getPreferences(); - AbstractToolpathGenerator toolpathGenerator = new WidthSplitsToolpathGenerator( - new AbstractCutter() { - public double[] calcOffset(Point3d point, Vector3d normal, - AbstractBoard board) { - return new double[] { point.x, point.y, point.z }; - } + AbstractToolpathGenerator toolpathGenerator = new WidthSplitsToolpathGenerator(new AbstractCutter() { + public double[] calcOffset(Point3d point, Vector3d normal, AbstractBoard board) { + return new double[] { point.x, point.y, point.z }; + } - public double calcSpeed(Point3d point, Vector3d normal, - AbstractBoard board, boolean isCuttingStringer) { - return 10; - } + public double calcSpeed(Point3d point, Vector3d normal, AbstractBoard board, boolean isCuttingStringer) { + return 10; + } - }, null, new GCodeWriter(), config); + }, null, new GCodeWriter(), config); try { toolpathGenerator.writeToolpath(filename, getCurrentBrd(), null); } catch (Exception e) { String str = LanguageResource.getString("GCODEBOTTOMFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("GCODEBOTTOMFAILEDMSG_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("GCODEBOTTOMFAILEDMSG_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -3448,18 +3346,692 @@ public double calcSpeed(Point3d point, Vector3d normal, }; gcodeMenu.add(gcodeBottom); + final JMenu gcodeHWSMenu = new JMenu(LanguageResource.getString("GCODEHWSMENU_STR")); + + final AbstractAction gcodeHWSSTringer = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("GCODEHWSSTRINGER_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + + CategorizedSettings settings = new CategorizedSettings(); + String categoryName = LanguageResource.getString("HWSPARAMETERSCATEGORY_STR"); + Settings HWSSettings = settings.addCategory(categoryName); + HWSSettings.addMeasurement("SkinThickness", 0.4, LanguageResource.getString("HWSSKINTHICKNESS_STR")); + HWSSettings.addMeasurement("FrameThickness", 0.5, LanguageResource.getString("HWSFRAMETHICKNESS_STR")); + HWSSettings.addMeasurement("Webbing", 1.5, LanguageResource.getString("HWSWEBBING_STR")); + HWSSettings.addMeasurement("NoseOffset", 3.5, LanguageResource.getString("HWSNOSEOFFSET_STR")); + HWSSettings.addMeasurement("TailOffset", 3.5, LanguageResource.getString("HWSTAILOFFSET_STR")); + HWSSettings.addMeasurement("DistanceFromRail", 3.0, LanguageResource.getString("HWSDISTANCEFROMRAIL_STR")); + HWSSettings.addMeasurement("CutterDiam", 5.0, LanguageResource.getString("CUTTERDIAMETER_STR")); + HWSSettings.addMeasurement("JogHeight", 5.0, LanguageResource.getString("JOGHEIGHT_STR")); + HWSSettings.addMeasurement("JogSpeed", 20.0, LanguageResource.getString("JOGSPEED_STR")); + HWSSettings.addMeasurement("SinkSpeed", 2.0, LanguageResource.getString("SINKSPEED_STR")); + HWSSettings.addMeasurement("CutDepth", 0.0, LanguageResource.getString("CUTDEPTH_STR")); + HWSSettings.addMeasurement("CutSpeed", 2.0, LanguageResource.getString("CUTSPEED_STR")); + settings.getPreferences(); + String filename = FileTools.removeExtension(getCurrentBrd().getFilename()); + filename.concat("HWSStringer.nc"); + HWSSettings.addFileName("StringerFilename", filename, LanguageResource.getString("FILENAME_STR")); + + SettingDialog settingsDialog = new SettingDialog(settings); + settingsDialog.setTitle(LanguageResource.getString("HWSSTRINGERTITLE_STR")); + settingsDialog.setModal(true); + settingsDialog.setVisible(true); + if (settingsDialog.wasCancelled()) { + settingsDialog.dispose(); + return; + } + settings.putPreferences(); + + GCodeDraw gdraw = new GCodeDraw(HWSSettings.getFileName("StringerFilename"), HWSSettings.getMeasurement("CutterDiam"), HWSSettings.getMeasurement("CutDepth"), HWSSettings.getMeasurement("CutSpeed"), HWSSettings.getMeasurement("JogHeight"), HWSSettings.getMeasurement("JogSpeed"), + HWSSettings.getMeasurement("SinkSpeed")); + + double skinThickness = HWSSettings.getMeasurement("SkinThickness"); + double frameThickness = HWSSettings.getMeasurement("FrameThickness"); + double webbing = HWSSettings.getMeasurement("Webbing"); + double tailOffset = HWSSettings.getMeasurement("TailOffset"); + double noseOffset = HWSSettings.getMeasurement("NoseOffset"); + double distanceToRail = HWSSettings.getMeasurement("DistanceFromRail"); + + gdraw.setFlipNormal(true); + + BezierBoardDrawUtil.printProfile(gdraw, 0.0, 0.0, 1.0, 0.0, false, BoardCAD.getInstance().getCurrentBrd(), 0.0, skinThickness, false, tailOffset, noseOffset); + + gdraw.setFlipNormal(false); + + PrintHollowWoodTemplates.printStringerWebbing(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), skinThickness, frameThickness, webbing); + + PrintHollowWoodTemplates.printStringerTailPieceCutOut(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + + PrintHollowWoodTemplates.printStringerNosePieceCutOut(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + + settingsDialog.dispose(); + gdraw.close(); + } + + }; + gcodeHWSMenu.add(gcodeHWSSTringer); + + final AbstractAction gcodeHWSRibs = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("GCODEHWSRIBS_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + + CategorizedSettings settings = new CategorizedSettings(); + String categoryName = LanguageResource.getString("HWSPARAMETERSCATEGORY_STR"); + Settings HWSSettings = settings.addCategory(categoryName); + LanguageResource.getString("HWSSKINTHICKNESS_STR"); + HWSSettings.addMeasurement("FrameThickness", 0.5, LanguageResource.getString("HWSFRAMETHICKNESS_STR")); + HWSSettings.addMeasurement("Webbing", 1.5, LanguageResource.getString("HWSWEBBING_STR")); + HWSSettings.addMeasurement("NoseOffset", 3.5, LanguageResource.getString("HWSNOSEOFFSET_STR")); + HWSSettings.addMeasurement("TailOffset", 3.5, LanguageResource.getString("HWSTAILOFFSET_STR")); + HWSSettings.addMeasurement("DistanceFromRail", 3.0, LanguageResource.getString("HWSDISTANCEFROMRAIL_STR")); + HWSSettings.addMeasurement("CutterDiam", 5.0, LanguageResource.getString("CUTTERDIAMETER_STR")); + HWSSettings.addMeasurement("JogHeight", 5.0, LanguageResource.getString("JOGHEIGHT_STR")); + HWSSettings.addMeasurement("JogSpeed", 20.0, LanguageResource.getString("JOGSPEED_STR")); + HWSSettings.addMeasurement("SinkSpeed", 2.0, LanguageResource.getString("SINKSPEED_STR")); + HWSSettings.addMeasurement("CutDepth", 0.0, LanguageResource.getString("CUTDEPTH_STR")); + HWSSettings.addMeasurement("CutSpeed", 2.0, LanguageResource.getString("CUTSPEED_STR")); + settings.getPreferences(); + String filename = FileTools.removeExtension(getCurrentBrd().getFilename()); + filename.concat("HWSRibs.nc"); + HWSSettings.addFileName("Filename", filename, LanguageResource.getString("FILENAME_STR")); + + SettingDialog settingsDialog = new SettingDialog(settings); + settingsDialog.setTitle(LanguageResource.getString("GCODEHWSRAILSTITLE_STR")); + settingsDialog.setModal(true); + settingsDialog.setVisible(true); + if (settingsDialog.wasCancelled()) { + settingsDialog.dispose(); + return; + } + settings.putPreferences(); + + GCodeDraw gdraw = new GCodeDraw(HWSSettings.getFileName("Filename"), HWSSettings.getMeasurement("CutterDiam"), HWSSettings.getMeasurement("CutDepth"), HWSSettings.getMeasurement("CutSpeed"), HWSSettings.getMeasurement("JogHeight"), HWSSettings.getMeasurement("JogSpeed"), + HWSSettings.getMeasurement("SinkSpeed")); + + double skinThickness = HWSSettings.getMeasurement("SkinThickness"); + double frameThickness = HWSSettings.getMeasurement("FrameThickness"); + double webbing = HWSSettings.getMeasurement("Webbing"); + double tailOffset = HWSSettings.getMeasurement("TailOffset"); + double noseOffset = HWSSettings.getMeasurement("NoseOffset"); + double distanceToRail = HWSSettings.getMeasurement("DistanceFromRail"); + double cutterDiam = HWSSettings.getMeasurement("CutterDiam"); + + // + int nrOfCrossSections = (int) ((BoardCAD.getInstance().getCurrentBrd().getLength() - 9.0 * UnitUtils.INCH) / UnitUtils.FOOT); + double crosssectionPos = 0.0; + double verticalPos = 0.0; + for (int i = 0; i < nrOfCrossSections; i++) { + crosssectionPos = (i + 1) * UnitUtils.FOOT; + + PrintHollowWoodTemplates.printCrossSection(gdraw, 0.0, verticalPos, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), crosssectionPos, distanceToRail, skinThickness, frameThickness, webbing, false); + + PrintHollowWoodTemplates.printCrossSectionWebbing(gdraw, verticalPos, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), crosssectionPos, distanceToRail, skinThickness, frameThickness, webbing, false); + + double verticalStep = BoardCAD.getInstance().getCurrentBrd().getThicknessAtPos(crosssectionPos) - skinThickness + (cutterDiam * 2.0); + + verticalPos += verticalStep; + } + + settingsDialog.dispose(); + } + + }; + gcodeHWSMenu.add(gcodeHWSRibs); + + final AbstractAction gcodeHWSRail = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("GCODEHWSRAIL_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + + CategorizedSettings settings = new CategorizedSettings(); + String categoryName = LanguageResource.getString("HWSPARAMETERSCATEGORY_STR"); + Settings HWSSettings = settings.addCategory(categoryName); + LanguageResource.getString("HWSSKINTHICKNESS_STR"); + HWSSettings.addMeasurement("FrameThickness", 0.5, LanguageResource.getString("HWSFRAMETHICKNESS_STR")); + HWSSettings.addMeasurement("Webbing", 1.5, LanguageResource.getString("HWSWEBBING_STR")); + HWSSettings.addMeasurement("NoseOffset", 3.5, LanguageResource.getString("HWSNOSEOFFSET_STR")); + HWSSettings.addMeasurement("TailOffset", 3.5, LanguageResource.getString("HWSTAILOFFSET_STR")); + HWSSettings.addMeasurement("DistanceFromRail", 3.0, LanguageResource.getString("HWSDISTANCEFROMRAIL_STR")); + HWSSettings.addMeasurement("CutterDiam", 5.0, LanguageResource.getString("CUTTERDIAMETER_STR")); + HWSSettings.addMeasurement("JogHeight", 5.0, LanguageResource.getString("JOGHEIGHT_STR")); + HWSSettings.addMeasurement("JogSpeed", 20.0, LanguageResource.getString("JOGSPEED_STR")); + HWSSettings.addMeasurement("SinkSpeed", 2.0, LanguageResource.getString("SINKSPEED_STR")); + HWSSettings.addMeasurement("CutDepth", 0.0, LanguageResource.getString("CUTDEPTH_STR")); + HWSSettings.addMeasurement("CutSpeed", 2.0, LanguageResource.getString("CUTSPEED_STR")); + settings.getPreferences(); + String filename = FileTools.removeExtension(getCurrentBrd().getFilename()); + filename.concat("HWSRibs.nc"); + HWSSettings.addFileName("StringerFilename", filename, LanguageResource.getString("FILENAME_STR")); + + SettingDialog settingsDialog = new SettingDialog(settings); + settingsDialog.setTitle(LanguageResource.getString("GCODEHWSRAILSTITLE_STR")); + settingsDialog.setModal(true); + settingsDialog.setVisible(true); + if (settingsDialog.wasCancelled()) { + settingsDialog.dispose(); + return; + } + settings.putPreferences(); + + GCodeDraw gdraw = new GCodeDraw(HWSSettings.getFileName("StringerFilename"), HWSSettings.getMeasurement("CutterDiam"), HWSSettings.getMeasurement("CutDepth"), HWSSettings.getMeasurement("CutSpeed"), HWSSettings.getMeasurement("JogHeight"), HWSSettings.getMeasurement("JogSpeed"), + HWSSettings.getMeasurement("SinkSpeed")); + + double skinThickness = HWSSettings.getMeasurement("SkinThickness"); + double frameThickness = HWSSettings.getMeasurement("FrameThickness"); + double webbing = HWSSettings.getMeasurement("Webbing"); + double tailOffset = HWSSettings.getMeasurement("TailOffset"); + double noseOffset = HWSSettings.getMeasurement("NoseOffset"); + double distanceToRail = HWSSettings.getMeasurement("DistanceFromRail"); + + PrintHollowWoodTemplates.printRailWebbing(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + + PrintHollowWoodTemplates.printRailNotching(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + + PrintHollowWoodTemplates.printRailNosePieceNotches(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + + PrintHollowWoodTemplates.printRailTailPieceNotches(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + + settingsDialog.dispose(); + } + + }; + gcodeHWSMenu.add(gcodeHWSRail); + + final AbstractAction gcodeHWSNosePiece = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("GCODEHWSTAILPIECE_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + + CategorizedSettings settings = new CategorizedSettings(); + String categoryName = LanguageResource.getString("HWSPARAMETERSCATEGORY_STR"); + Settings HWSSettings = settings.addCategory(categoryName); + HWSSettings.addMeasurement("SkinThickness", 0.4, LanguageResource.getString("HWSSKINTHICKNESS_STR")); + HWSSettings.addMeasurement("FrameThickness", 0.5, LanguageResource.getString("HWSFRAMETHICKNESS_STR")); + HWSSettings.addMeasurement("Webbing", 1.5, LanguageResource.getString("HWSWEBBING_STR")); + HWSSettings.addMeasurement("NoseOffset", 3.5, LanguageResource.getString("HWSNOSEOFFSET_STR")); + HWSSettings.addMeasurement("TailOffset", 3.5, LanguageResource.getString("HWSTAILOFFSET_STR")); + HWSSettings.addMeasurement("DistanceFromRail", 3.0, LanguageResource.getString("HWSDISTANCEFROMRAIL_STR")); + HWSSettings.addMeasurement("CutterDiam", 5.0, LanguageResource.getString("CUTTERDIAMETER_STR")); + HWSSettings.addMeasurement("JogHeight", 5.0, LanguageResource.getString("JOGHEIGHT_STR")); + HWSSettings.addMeasurement("JogSpeed", 20.0, LanguageResource.getString("JOGSPEED_STR")); + HWSSettings.addMeasurement("SinkSpeed", 2.0, LanguageResource.getString("SINKSPEED_STR")); + HWSSettings.addMeasurement("CutDepth", 0.0, LanguageResource.getString("CUTDEPTH_STR")); + HWSSettings.addMeasurement("CutSpeed", 2.0, LanguageResource.getString("CUTSPEED_STR")); + settings.getPreferences(); + String filename = FileTools.removeExtension(getCurrentBrd().getFilename()); + filename.concat("HWSTail.nc"); + HWSSettings.addFileName("StringerFilename", filename, LanguageResource.getString("FILENAME_STR")); + + SettingDialog settingsDialog = new SettingDialog(settings); + settingsDialog.setTitle(LanguageResource.getString("GCODEHWSTAILPIECETITLE_STR")); + settingsDialog.setModal(true); + settingsDialog.setVisible(true); + if (settingsDialog.wasCancelled()) { + settingsDialog.dispose(); + return; + } + settings.putPreferences(); + + GCodeDraw gdraw = new GCodeDraw(HWSSettings.getFileName("StringerFilename"), HWSSettings.getMeasurement("CutterDiam"), HWSSettings.getMeasurement("CutDepth"), HWSSettings.getMeasurement("CutSpeed"), HWSSettings.getMeasurement("JogHeight"), HWSSettings.getMeasurement("JogSpeed"), + HWSSettings.getMeasurement("SinkSpeed")); + + double skinThickness = HWSSettings.getMeasurement("SkinThickness"); + double frameThickness = HWSSettings.getMeasurement("FrameThickness"); + double webbing = HWSSettings.getMeasurement("Webbing"); + double tailOffset = HWSSettings.getMeasurement("TailOffset"); + double noseOffset = HWSSettings.getMeasurement("NoseOffset"); + double distanceToRail = HWSSettings.getMeasurement("DistanceFromRail"); + + PrintHollowWoodTemplates.printNosePiece(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset, false); + + PrintHollowWoodTemplates.printNosePiece(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset, true); + + PrintHollowWoodTemplates.printNosePieceWebbing(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset, false); + + PrintHollowWoodTemplates.printNosePieceWebbing(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset, true); + + settingsDialog.dispose(); + } + + }; + gcodeHWSMenu.add(gcodeHWSNosePiece); + + final AbstractAction gcodeHWSTailPiece = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("GCODEHWSNOSEPIECE_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + + CategorizedSettings settings = new CategorizedSettings(); + String categoryName = LanguageResource.getString("HWSPARAMETERSCATEGORY_STR"); + Settings HWSSettings = settings.addCategory(categoryName); + HWSSettings.addMeasurement("SkinThickness", 0.4, LanguageResource.getString("HWSSKINTHICKNESS_STR")); + HWSSettings.addMeasurement("FrameThickness", 0.5, LanguageResource.getString("HWSFRAMETHICKNESS_STR")); + HWSSettings.addMeasurement("Webbing", 1.5, LanguageResource.getString("HWSWEBBING_STR")); + HWSSettings.addMeasurement("NoseOffset", 3.5, LanguageResource.getString("HWSNOSEOFFSET_STR")); + HWSSettings.addMeasurement("TailOffset", 3.5, LanguageResource.getString("HWSTAILOFFSET_STR")); + HWSSettings.addMeasurement("DistanceFromRail", 3.0, LanguageResource.getString("HWSDISTANCEFROMRAIL_STR")); + HWSSettings.addMeasurement("CutterDiam", 5.0, LanguageResource.getString("CUTTERDIAMETER_STR")); + HWSSettings.addMeasurement("JogHeight", 5.0, LanguageResource.getString("JOGHEIGHT_STR")); + HWSSettings.addMeasurement("JogSpeed", 20.0, LanguageResource.getString("JOGSPEED_STR")); + HWSSettings.addMeasurement("SinkSpeed", 2.0, LanguageResource.getString("SINKSPEED_STR")); + HWSSettings.addMeasurement("CutDepth", 0.0, LanguageResource.getString("CUTDEPTH_STR")); + HWSSettings.addMeasurement("CutSpeed", 2.0, LanguageResource.getString("CUTSPEED_STR")); + settings.getPreferences(); + String filename = FileTools.removeExtension(getCurrentBrd().getFilename()); + filename.concat("HWSNose.nc"); + HWSSettings.addFileName("StringerFilename", filename, LanguageResource.getString("FILENAME_STR")); + + SettingDialog settingsDialog = new SettingDialog(settings); + settingsDialog.setTitle(LanguageResource.getString("GCODEHWSNOSEPIECETITLE_STR")); + settingsDialog.setModal(true); + settingsDialog.setVisible(true); + if (settingsDialog.wasCancelled()) { + settingsDialog.dispose(); + return; + } + settings.putPreferences(); + + GCodeDraw gdraw = new GCodeDraw(HWSSettings.getFileName("StringerFilename"), HWSSettings.getMeasurement("CutterDiam"), HWSSettings.getMeasurement("CutDepth"), HWSSettings.getMeasurement("CutSpeed"), HWSSettings.getMeasurement("JogHeight"), HWSSettings.getMeasurement("JogSpeed"), + HWSSettings.getMeasurement("SinkSpeed")); + + double skinThickness = HWSSettings.getMeasurement("SkinThickness"); + double frameThickness = HWSSettings.getMeasurement("FrameThickness"); + double webbing = HWSSettings.getMeasurement("Webbing"); + double tailOffset = HWSSettings.getMeasurement("TailOffset"); + double noseOffset = HWSSettings.getMeasurement("NoseOffset"); + double distanceToRail = HWSSettings.getMeasurement("DistanceFromRail"); + + PrintHollowWoodTemplates.printTailPiece(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset, false); + + PrintHollowWoodTemplates.printTailPiece(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset, true); + + PrintHollowWoodTemplates.printTailPieceWebbing(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset, false); + + PrintHollowWoodTemplates.printTailPieceWebbing(gdraw, 0.0, 0.0, 1.0, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset, true); + + settingsDialog.dispose(); + } + + }; + gcodeHWSMenu.add(gcodeHWSTailPiece); + + final AbstractAction gcodeHWSDeckTemplate = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("GCODEHWSDECKTEMPLATE_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + + CategorizedSettings settings = new CategorizedSettings(); + String categoryName = LanguageResource.getString("HWSPARAMETERSCATEGORY_STR"); + Settings HWSSettings = settings.addCategory(categoryName); + HWSSettings.addMeasurement("SkinThickness", 0.4, LanguageResource.getString("HWSSKINTHICKNESS_STR")); + HWSSettings.addMeasurement("FrameThickness", 0.5, LanguageResource.getString("HWSFRAMETHICKNESS_STR")); + HWSSettings.addMeasurement("Webbing", 1.5, LanguageResource.getString("HWSWEBBING_STR")); + HWSSettings.addMeasurement("NoseOffset", 3.5, LanguageResource.getString("HWSNOSEOFFSET_STR")); + HWSSettings.addMeasurement("TailOffset", 3.5, LanguageResource.getString("HWSTAILOFFSET_STR")); + HWSSettings.addMeasurement("DistanceFromRail", 3.0, LanguageResource.getString("HWSDISTANCEFROMRAIL_STR")); + HWSSettings.addMeasurement("CutterDiam", 5.0, LanguageResource.getString("CUTTERDIAMETER_STR")); + HWSSettings.addMeasurement("JogHeight", 5.0, LanguageResource.getString("JOGHEIGHT_STR")); + HWSSettings.addMeasurement("JogSpeed", 20.0, LanguageResource.getString("JOGSPEED_STR")); + HWSSettings.addMeasurement("SinkSpeed", 2.0, LanguageResource.getString("SINKSPEED_STR")); + HWSSettings.addMeasurement("CutDepth", 0.0, LanguageResource.getString("CUTDEPTH_STR")); + HWSSettings.addMeasurement("CutSpeed", 2.0, LanguageResource.getString("CUTSPEED_STR")); + settings.getPreferences(); + String filename = FileTools.removeExtension(getCurrentBrd().getFilename()); + filename.concat("HWSRibs.nc"); + HWSSettings.addFileName("StringerFilename", filename, LanguageResource.getString("FILENAME_STR")); + + SettingDialog settingsDialog = new SettingDialog(settings); + settingsDialog.setTitle(LanguageResource.getString("HWSSTRINGERTITLE_STR")); + settingsDialog.setModal(true); + settingsDialog.setVisible(true); + if (settingsDialog.wasCancelled()) { + settingsDialog.dispose(); + return; + } + settings.putPreferences(); + + GCodeDraw gdraw = new GCodeDraw(HWSSettings.getFileName("StringerFilename"), HWSSettings.getMeasurement("CutterDiam"), HWSSettings.getMeasurement("CutDepth"), HWSSettings.getMeasurement("CutSpeed"), HWSSettings.getMeasurement("JogHeight"), HWSSettings.getMeasurement("JogSpeed"), + HWSSettings.getMeasurement("SinkSpeed")); + + double skinThickness = HWSSettings.getMeasurement("SkinThickness"); + double frameThickness = HWSSettings.getMeasurement("FrameThickness"); + double webbing = HWSSettings.getMeasurement("Webbing"); + double tailOffset = HWSSettings.getMeasurement("TailOffset"); + double noseOffset = HWSSettings.getMeasurement("NoseOffset"); + double distanceToRail = HWSSettings.getMeasurement("DistanceFromRail"); + + BezierBoardDrawUtil.printDeckSkinTemplate(gdraw, 0.0, 0.0, 1.0, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), distanceToRail); + + settingsDialog.dispose(); + } + + }; + gcodeHWSMenu.add(gcodeHWSDeckTemplate); + + final AbstractAction gcodeHWSBottomTemplate = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("GCODEHWSBOTTOMTEMPLATE_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + + CategorizedSettings settings = new CategorizedSettings(); + String categoryName = LanguageResource.getString("HWSPARAMETERSCATEGORY_STR"); + Settings HWSSettings = settings.addCategory(categoryName); + HWSSettings.addMeasurement("SkinThickness", 0.4, LanguageResource.getString("HWSSKINTHICKNESS_STR")); + HWSSettings.addMeasurement("FrameThickness", 0.5, LanguageResource.getString("HWSFRAMETHICKNESS_STR")); + HWSSettings.addMeasurement("Webbing", 1.5, LanguageResource.getString("HWSWEBBING_STR")); + HWSSettings.addMeasurement("NoseOffset", 3.5, LanguageResource.getString("HWSNOSEOFFSET_STR")); + HWSSettings.addMeasurement("TailOffset", 3.5, LanguageResource.getString("HWSTAILOFFSET_STR")); + HWSSettings.addMeasurement("DistanceFromRail", 3.0, LanguageResource.getString("HWSDISTANCEFROMRAIL_STR")); + HWSSettings.addMeasurement("CutterDiam", 5.0, LanguageResource.getString("CUTTERDIAMETER_STR")); + HWSSettings.addMeasurement("JogHeight", 5.0, LanguageResource.getString("JOGHEIGHT_STR")); + HWSSettings.addMeasurement("JogSpeed", 20.0, LanguageResource.getString("JOGSPEED_STR")); + HWSSettings.addMeasurement("SinkSpeed", 2.0, LanguageResource.getString("SINKSPEED_STR")); + HWSSettings.addMeasurement("CutDepth", 0.0, LanguageResource.getString("CUTDEPTH_STR")); + HWSSettings.addMeasurement("CutSpeed", 2.0, LanguageResource.getString("CUTSPEED_STR")); + settings.getPreferences(); + String filename = FileTools.removeExtension(getCurrentBrd().getFilename()); + filename.concat("HWSRibs.nc"); + HWSSettings.addFileName("StringerFilename", filename, LanguageResource.getString("FILENAME_STR")); + + SettingDialog settingsDialog = new SettingDialog(settings); + settingsDialog.setTitle(LanguageResource.getString("HWSSTRINGERTITLE_STR")); + settingsDialog.setModal(true); + settingsDialog.setVisible(true); + if (settingsDialog.wasCancelled()) { + settingsDialog.dispose(); + return; + } + settings.putPreferences(); + + GCodeDraw gdraw = new GCodeDraw(HWSSettings.getFileName("StringerFilename"), HWSSettings.getMeasurement("CutterDiam"), HWSSettings.getMeasurement("CutDepth"), HWSSettings.getMeasurement("CutSpeed"), HWSSettings.getMeasurement("JogHeight"), HWSSettings.getMeasurement("JogSpeed"), + HWSSettings.getMeasurement("SinkSpeed")); + + double skinThickness = HWSSettings.getMeasurement("SkinThickness"); + double frameThickness = HWSSettings.getMeasurement("FrameThickness"); + double webbing = HWSSettings.getMeasurement("Webbing"); + double tailOffset = HWSSettings.getMeasurement("TailOffset"); + double noseOffset = HWSSettings.getMeasurement("NoseOffset"); + double distanceToRail = HWSSettings.getMeasurement("DistanceFromRail"); + + BezierBoardDrawUtil.printDeckSkinTemplate(gdraw, 0.0, 0.0, 1.0, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), distanceToRail); + + settingsDialog.dispose(); + } + + }; + + gcodeHWSMenu.add(gcodeHWSBottomTemplate); + + final AbstractAction gcodeHWSAllInternalTemplates = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("GCODEHWSALLINTERNALTEMPLATES_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + + CategorizedSettings settings = new CategorizedSettings(); + String categoryName = LanguageResource.getString("HWSPARAMETERSCATEGORY_STR"); + Settings HWSSettings = settings.addCategory(categoryName); + HWSSettings.addMeasurement("FrameThickness", 0.5, LanguageResource.getString("HWSFRAMETHICKNESS_STR")); + HWSSettings.addMeasurement("SkinThickness", 0.4, LanguageResource.getString("HWSSKINTHICKNESS_STR")); + HWSSettings.addMeasurement("FrameThickness", 0.5, LanguageResource.getString("HWSFRAMETHICKNESS_STR")); + HWSSettings.addMeasurement("Webbing", 1.5, LanguageResource.getString("HWSWEBBING_STR")); + HWSSettings.addMeasurement("NoseOffset", 3.5, LanguageResource.getString("HWSNOSEOFFSET_STR")); + HWSSettings.addMeasurement("TailOffset", 3.5, LanguageResource.getString("HWSTAILOFFSET_STR")); + HWSSettings.addMeasurement("DistanceFromRail", 3.0, LanguageResource.getString("HWSDISTANCEFROMRAIL_STR")); + HWSSettings.addMeasurement("CutterDiam", 5.0, LanguageResource.getString("CUTTERDIAMETER_STR")); + HWSSettings.addMeasurement("JogHeight", 5.0, LanguageResource.getString("JOGHEIGHT_STR")); + HWSSettings.addMeasurement("JogSpeed", 20.0, LanguageResource.getString("JOGSPEED_STR")); + HWSSettings.addMeasurement("SinkSpeed", 2.0, LanguageResource.getString("SINKSPEED_STR")); + HWSSettings.addMeasurement("CutDepth", 0.0, LanguageResource.getString("CUTDEPTH_STR")); + HWSSettings.addMeasurement("CutSpeed", 2.0, LanguageResource.getString("CUTSPEED_STR")); + settings.getPreferences(); + String filename = FileTools.removeExtension(getCurrentBrd().getFilename()); + filename = filename.concat(" HWSFrame.nc"); + HWSSettings.addFileName("Filename", filename, LanguageResource.getString("FILENAME_STR")); + HWSSettings.addMeasurement("OffsetX", 0.0, LanguageResource.getString("OFFSET_X_STR")); + HWSSettings.addMeasurement("OffsetY", 0.0, LanguageResource.getString("OFFSET_Y_STR")); + + SettingDialog settingsDialog = new SettingDialog(settings); + settingsDialog.setTitle(LanguageResource.getString("GCODEHWSALLINTERNALTEMPLATESTITLE_STR")); + settingsDialog.setModal(true); + settingsDialog.setVisible(true); + if (settingsDialog.wasCancelled()) { + settingsDialog.dispose(); + return; + } + settings.putPreferences(); + + GCodeDraw gdraw = new GCodeDraw(HWSSettings.getFileName("Filename"), HWSSettings.getMeasurement("CutterDiam"), HWSSettings.getMeasurement("CutDepth"), HWSSettings.getMeasurement("CutSpeed"), HWSSettings.getMeasurement("JogHeight"), HWSSettings.getMeasurement("JogSpeed"), + HWSSettings.getMeasurement("SinkSpeed")); + + gdraw.writeComment("HWS Frame"); + gdraw.writeComment(BoardCAD.getInstance().getCurrentBrd().getName() + " - " + BoardCAD.getInstance().getCurrentBrd().getAuthor()); + + double skinThickness = HWSSettings.getMeasurement("SkinThickness"); + double frameThickness = HWSSettings.getMeasurement("FrameThickness"); + double webbing = HWSSettings.getMeasurement("Webbing"); + double tailOffset = HWSSettings.getMeasurement("TailOffset"); + double noseOffset = HWSSettings.getMeasurement("NoseOffset"); + double distanceToRail = HWSSettings.getMeasurement("DistanceFromRail"); + double cutterDiam = HWSSettings.getMeasurement("CutterDiam"); + double offsetX = HWSSettings.getMeasurement("OffsetX"); + double offsetY = HWSSettings.getMeasurement("OffsetY"); + + // Cut Stringer + gdraw.writeComment("Stringer"); + gdraw.setFlipNormal(true); + + double x = offsetX; + double y = offsetY; + double scale = 1.0; + + /* + * PrintHollowWoodTemplates.printStringerWebbing(gdraw, x, y, + * scale, BoardCAD.getInstance().getCurrentBrd(), skinThickness, + * frameThickness, webbing); + * + * gdraw.setFlipNormal(false); + * + * + * BezierBoardDrawUtil.printProfile(gdraw, x, y, scale, false, + * BoardCAD.getInstance().getCurrentBrd(), 0.0, skinThickness, + * false, tailOffset, noseOffset); + * + * //Debug without offset gdraw.setCutterDiameter(0.0); + * BezierBoardDrawUtil.printProfile(gdraw, x, y, scale, false, + * BoardCAD.getInstance().getCurrentBrd(), 0.0, skinThickness, + * false, tailOffset, noseOffset); + * + * + * PrintHollowWoodTemplates.printStringerTailPieceCutOut(gdraw, + * x, y, scale, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, frameThickness, webbing, + * tailOffset, noseOffset); + * + * PrintHollowWoodTemplates.printStringerNosePieceCutOut(gdraw, + * x, y, scale, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, frameThickness, webbing, + * tailOffset, noseOffset); + * + * y+= + * BoardCAD.getInstance().getCurrentBrd().getThickness()*10.0; + * y+= cutterDiam*2.0; + */ + // Print rails twice + gdraw.writeComment("Rails"); + + BezierBoardDrawUtil.printRailTemplate(gdraw, x, y, scale, 0.0, false, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, tailOffset, noseOffset, false); + + PrintHollowWoodTemplates.printRailWebbing(gdraw, x, y, scale, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + + PrintHollowWoodTemplates.printRailNotching(gdraw, x, y, scale, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + + PrintHollowWoodTemplates.printRailNosePieceNotches(gdraw, x, y, scale, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + + PrintHollowWoodTemplates.printRailTailPieceNotches(gdraw, x, y, scale, 0.0, BoardCAD.getInstance().getCurrentBrd(), distanceToRail, skinThickness, frameThickness, webbing, tailOffset, noseOffset); + settingsDialog.dispose(); + gdraw.close(); + return; + /* + * x+= BoardCAD.getInstance().getCurrentBrd().getThickness(); + * x+= cutterDiam*2.0; + * + * BezierBoardDrawUtil.printRailTemplate(gdraw, x, y, scale, + * false, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, tailOffset, noseOffset, + * false); + * + * PrintHollowWoodTemplates.printRailWebbing(gdraw, x, y, scale, + * BoardCAD.getInstance().getCurrentBrd(), distanceToRail, + * skinThickness, frameThickness, webbing, tailOffset, + * noseOffset); + * + * PrintHollowWoodTemplates.printRailNotching(gdraw, x, y, + * scale, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, frameThickness, webbing, + * tailOffset, noseOffset); + * + * PrintHollowWoodTemplates.printRailNosePieceNotches(gdraw, x, + * y, scale, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, frameThickness, webbing, + * tailOffset, noseOffset); + * + * PrintHollowWoodTemplates.printRailTailPieceNotches(gdraw, x, + * y, scale, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, frameThickness, webbing, + * tailOffset, noseOffset); + * + * //Print cross sections gdraw.writeComment("Ribs"); x+= + * BoardCAD.getInstance().getCurrentBrd().getThickness(); x+= + * cutterDiam*2.0; y=offsetY; + * + * int nrOfCrossSections = + * (int)((BoardCAD.getInstance().getCurrentBrd().getLength() - + * 9.0*UnitUtils.INCH)/UnitUtils.FOOT); double crosssectionPos = + * 0.0; for(int i = 0; i < nrOfCrossSections; i++) { + * crosssectionPos = (i+1)* UnitUtils.FOOT; + * + * gdraw.writeComment("Rib at " + + * UnitUtils.convertLengthToCurrentUnit(crosssectionPos, true)); + * + * PrintHollowWoodTemplates.printCrossSection(gdraw, x, y, + * scale, BoardCAD.getInstance().getCurrentBrd(), + * crosssectionPos, distanceToRail, skinThickness, + * frameThickness, webbing, false); + * + * PrintHollowWoodTemplates.printCrossSectionWebbing(gdraw, x, + * y, scale, BoardCAD.getInstance().getCurrentBrd(), + * crosssectionPos, distanceToRail, skinThickness, + * frameThickness, webbing, false); + * + * double verticalStep = + * BoardCAD.getInstance().getCurrentBrd().getThicknessAtPos + * (crosssectionPos) - skinThickness + (cutterDiam*2.0); + * + * y += verticalStep; } + * + * + * //Nose piece gdraw.writeComment("Nose"); + * PrintHollowWoodTemplates.printNosePiece(gdraw, x, y, scale, + * BoardCAD.getInstance().getCurrentBrd(), distanceToRail, + * skinThickness, frameThickness, webbing, tailOffset, + * noseOffset, false); + * + * PrintHollowWoodTemplates.printNosePiece(gdraw, x, y, scale, + * BoardCAD.getInstance().getCurrentBrd(), distanceToRail, + * skinThickness, frameThickness, webbing, tailOffset, + * noseOffset, true); + * + * PrintHollowWoodTemplates.printNosePieceWebbing(gdraw, x, y, + * scale, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, frameThickness, webbing, + * tailOffset, noseOffset, false); + * + * PrintHollowWoodTemplates.printNosePieceWebbing(gdraw, x, y, + * scale, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, frameThickness, webbing, + * tailOffset, noseOffset, true); + * + * //Tail piece gdraw.writeComment("Tail"); y += UnitUtils.FOOT; + * PrintHollowWoodTemplates.printTailPiece(gdraw, x, y, scale, + * BoardCAD.getInstance().getCurrentBrd(), distanceToRail, + * skinThickness, frameThickness, webbing, tailOffset, + * noseOffset, false); + * + * PrintHollowWoodTemplates.printTailPiece(gdraw, x, y, scale, + * BoardCAD.getInstance().getCurrentBrd(), distanceToRail, + * skinThickness, frameThickness, webbing, tailOffset, + * noseOffset, true); + * + * PrintHollowWoodTemplates.printTailPieceWebbing(gdraw, x, y, + * scale, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, frameThickness, webbing, + * tailOffset, noseOffset, false); + * + * PrintHollowWoodTemplates.printTailPieceWebbing(gdraw, x, y, + * scale, BoardCAD.getInstance().getCurrentBrd(), + * distanceToRail, skinThickness, frameThickness, webbing, + * tailOffset, noseOffset, true); + * + * + * settingsDialog.dispose(); + * + * gdraw.close(); + */ + } + + }; + + gcodeHWSMenu.add(gcodeHWSAllInternalTemplates); + + gcodeMenu.add(gcodeHWSMenu); + fileMenu.add(gcodeMenu); final JMenu extensionsMenu = new JMenu(LanguageResource.getString("EXTENSIONSMENU_STR")); final JMenu atuaCoresMenu = new JMenu(LanguageResource.getString("ATUACORESMENU_STR")); final AbstractAction atuaCoresProfile = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("ATUACORESPROFILE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { - + CategorizedSettings settings = new CategorizedSettings(); String categoryName = LanguageResource.getString("ATUAPARAMETERSCATEGORY_STR"); Settings atuaSettings = settings.addCategory(categoryName); @@ -3472,13 +4044,12 @@ public void actionPerformed(ActionEvent arg0) { if (settingsDialog.wasCancelled()) { return; } - + final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -3498,9 +4069,7 @@ public void actionPerformed(ActionEvent arg0) { toolpathGenerator.writeProfile(filename, getCurrentBrd(), atuaSettings.getBoolean("NoRotation")); } catch (Exception e) { String str = LanguageResource.getString("ATUACORESPROFILEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("ATUACORESPROFILEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("ATUACORESPROFILEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -3509,18 +4078,18 @@ public void actionPerformed(ActionEvent arg0) { atuaCoresMenu.add(atuaCoresProfile); final AbstractAction atuaCoresOutline = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("ATUACORESOUTLINE_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showSaveDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -3540,9 +4109,7 @@ public void actionPerformed(ActionEvent arg0) { toolpathGenerator.writeOutline(filename, getCurrentBrd()); } catch (Exception e) { String str = LanguageResource.getString("ATUACORESOUTLINEFAILEDMSG_STR") + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, LanguageResource.getString("ATUACORESOUTLINEFAILEDTITLE_STR"), - JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("ATUACORESOUTLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); } } @@ -3556,21 +4123,22 @@ public void actionPerformed(ActionEvent arg0) { fileMenu.addSeparator(); - final AbstractAction loadscript = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, "Load script"); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_I, KeyEvent.CTRL_DOWN_MASK)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_I, + // KeyEvent.CTRL_DOWN_MASK)); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showOpenDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showOpenDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -3580,10 +4148,10 @@ public void actionPerformed(ActionEvent arg0) { // selection if (filename == null) return; - -// ScriptLoader sl=new ScriptLoader(); -// sl.loadScript(filename); - + + // ScriptLoader sl=new ScriptLoader(); + // sl.loadScript(filename); + BoardCAD.defaultDirectory = file.getPath(); } @@ -3593,84 +4161,88 @@ public void actionPerformed(ActionEvent arg0) { fileMenu.addSeparator(); - - - final AbstractAction test = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, "Test"); }; - public void actionPerformed(ActionEvent arg0) - { -/* CategorizedSettings settings = new CategorizedSettings(); - settings.addCategory("test"); - settings.getSettings("test").addBoolean("Test1", true, "Test 1"); - - SettingDialog dialog = new SettingDialog(settings); - dialog.setModal(true); - dialog.setVisible(true); - if(!dialog.wasCancelled()) - { - boolean test1 = settings.getSettings("test").getBoolean("Test1"); - System.out.printf("Test1: %s", test1?"true":"false"); - } - - BezierSpline b = getCurrentBrd().getNearestCrossSection(getCurrentBrd().getLength()/2.0f).getBezierSpline(); - double startAngle = b.getNormalByS(BezierSpline.ZERO); - double endAngle = b.getNormalByS(BezierSpline.ONE); - - System.out.printf("startAngle: %f endAngle: %f\n", startAngle/BezierBoard.DEG_TO_RAD, endAngle/BezierBoard.DEG_TO_RAD); - - int steps = 20; - - System.out.printf("----------------------------------------\n"); - System.out.printf("----------------------------------------\n"); - System.out.printf("---------------TEST BEGIN---------------\n"); - System.out.printf("----------------------------------------\n"); - - for(int i = 0; i < steps; i++) - { - double currentAngle = b.getNormalByS((double)i/(double)steps); - System.out.printf("Angle:%f\n", currentAngle/BezierBoard.DEG_TO_RAD); - } - - System.out.printf("----------------------------------------\n"); - System.out.printf("----------------------------------------\n"); - - double angleStep = (endAngle-startAngle) / steps; - - for(int i = 0; i < steps; i++) - { - System.out.printf("----------------------------------------\n"); - double currentAngle = startAngle + (angleStep*i); - double s = b.getSByNormalReverse(currentAngle); - double checkAngle = b.getNormalByS(s); - System.out.printf("Target Angle:%f Result s:%f Angle for s:%f\n", currentAngle/BezierBoard.DEG_TO_RAD, s, checkAngle/BezierBoard.DEG_TO_RAD); - } -*/ + @Override + public void actionPerformed(ActionEvent arg0) { + /* + * CategorizedSettings settings = new CategorizedSettings(); + * settings.addCategory("test"); + * settings.getSettings("test").addBoolean("Test1", true, + * "Test 1"); + * + * SettingDialog dialog = new SettingDialog(settings); + * dialog.setModal(true); dialog.setVisible(true); + * if(!dialog.wasCancelled()) { boolean test1 = + * settings.getSettings("test").getBoolean("Test1"); + * System.out.printf("Test1: %s", test1?"true":"false"); } + * + * BezierSpline b = + * getCurrentBrd().getNearestCrossSection(getCurrentBrd + * ().getLength()/2.0f).getBezierSpline(); double startAngle = + * b.getNormalByS(BezierSpline.ZERO); double endAngle = + * b.getNormalByS(BezierSpline.ONE); + * + * System.out.printf("startAngle: %f endAngle: %f\n", + * startAngle/BezierBoard.DEG_TO_RAD, + * endAngle/BezierBoard.DEG_TO_RAD); + * + * int steps = 20; + * + * System.out.printf("----------------------------------------\n" + * ); + * System.out.printf("----------------------------------------\n" + * ); + * System.out.printf("---------------TEST BEGIN---------------\n" + * ); + * System.out.printf("----------------------------------------\n" + * ); + * + * for(int i = 0; i < steps; i++) { double currentAngle = + * b.getNormalByS((double)i/(double)steps); + * System.out.printf("Angle:%f\n", + * currentAngle/BezierBoard.DEG_TO_RAD); } + * + * System.out.printf("----------------------------------------\n" + * ); + * System.out.printf("----------------------------------------\n" + * ); + * + * double angleStep = (endAngle-startAngle) / steps; + * + * for(int i = 0; i < steps; i++) { + * System.out.printf("----------------------------------------\n" + * ); double currentAngle = startAngle + (angleStep*i); double s + * = b.getSByNormalReverse(currentAngle); double checkAngle = + * b.getNormalByS(s); + * System.out.printf("Target Angle:%f Result s:%f Angle for s:%f\n" + * , currentAngle/BezierBoard.DEG_TO_RAD, s, + * checkAngle/BezierBoard.DEG_TO_RAD); } + */ System.out.printf("__________________________________\n"); - //Test SimpleBullnoseCutter + // Test SimpleBullnoseCutter SimpleBullnoseCutter cutter = new SimpleBullnoseCutter(50, 10, 100); System.out.printf("TEST!!! Cutter diam: 50 corner: 10 height: 100\n"); - Point3d point = new Point3d(0.0,0.0,0.0); + Point3d point = new Point3d(0.0, 0.0, 0.0); Vector testVectors = new Vector(); - testVectors.add(new Vector3d(1.0,1.0,1.0)); -// testVectors.add(new Vector3d(1.0,0.0,1.0)); -// testVectors.add(new Vector3d(-1.0,0.0,1.0)); -// testVectors.add(new Vector3d(0.0,1.0,1.0)); -// testVectors.add(new Vector3d(0.0,-1.0,1.0)); -// testVectors.add(new Vector3d(0.0,-1.0,0.0)); -// testVectors.add(new Vector3d(1.0,0.0,1.0)); + testVectors.add(new Vector3d(1.0, 1.0, 1.0)); + // testVectors.add(new Vector3d(1.0,0.0,1.0)); + // testVectors.add(new Vector3d(-1.0,0.0,1.0)); + // testVectors.add(new Vector3d(0.0,1.0,1.0)); + // testVectors.add(new Vector3d(0.0,-1.0,1.0)); + // testVectors.add(new Vector3d(0.0,-1.0,0.0)); + // testVectors.add(new Vector3d(1.0,0.0,1.0)); System.out.printf("\n__________________________________\n"); - for(int i = 0; i < testVectors.size(); i++) - { + for (int i = 0; i < testVectors.size(); i++) { Vector3d vector = testVectors.elementAt(i); vector.normalize(); System.out.printf("\nTEST!!! Vector%d: %f,%f,%f\n", i, vector.x, vector.y, vector.z); @@ -3681,18 +4253,18 @@ public void actionPerformed(ActionEvent arg0) } }; -// fileMenu.add(test); + fileMenu.add(test); final AbstractAction exit = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("EXIT_STR")); }; - public void actionPerformed(ActionEvent arg0) - { + @Override + public void actionPerformed(ActionEvent arg0) { mFrame.dispose(); -// mFrame.setVisible(false); + // mFrame.setVisible(false); } }; @@ -3703,15 +4275,15 @@ public void actionPerformed(ActionEvent arg0) final JMenu editMenu = new JMenu(LanguageResource.getString("EDITMENU_STR")); editMenu.setMnemonic(KeyEvent.VK_E); final AbstractAction undo = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("UNDO_STR")); this.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("UNDO_STR")); - this.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/edit-undo.png"))); - this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_Z, KeyEvent.CTRL_DOWN_MASK)); + this.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/edit-undo.png"))); + this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_DOWN_MASK)); }; + @Override public void actionPerformed(ActionEvent arg0) { BrdCommandHistory.getInstance().undo(); mFrame.repaint(); @@ -3721,16 +4293,16 @@ public void actionPerformed(ActionEvent arg0) { editMenu.add(undo); final AbstractAction redo = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("REDO_STR")); this.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("REDO_STR")); - this.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/edit-redo.png"))); + this.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/edit-redo.png"))); - this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_Y, KeyEvent.CTRL_DOWN_MASK)); + this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Y, InputEvent.CTRL_DOWN_MASK)); }; + @Override public void actionPerformed(ActionEvent arg0) { BrdCommandHistory.getInstance().redo(); mFrame.repaint(); @@ -3741,178 +4313,187 @@ public void actionPerformed(ActionEvent arg0) { menuBar.add(editMenu); - final JMenu viewMenu = new JMenu( LanguageResource.getString("VIEWMENU_STR")); + final JMenu viewMenu = new JMenu(LanguageResource.getString("VIEWMENU_STR")); viewMenu.setMnemonic(KeyEvent.VK_V); - mIsPaintingGridMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWGRID_STR")); + mIsPaintingGridMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWGRID_STR")); mIsPaintingGridMenuItem.setMnemonic(KeyEvent.VK_R); mIsPaintingGridMenuItem.setSelected(true); mIsPaintingGridMenuItem.addItemListener(this); viewMenu.add(mIsPaintingGridMenuItem); - mIsPaintingGhostBrdMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWGHOSTBOARD_STR")); + mIsPaintingGhostBrdMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWGHOSTBOARD_STR")); mIsPaintingGhostBrdMenuItem.setMnemonic(KeyEvent.VK_G); mIsPaintingGhostBrdMenuItem.setSelected(true); mIsPaintingGhostBrdMenuItem.addItemListener(this); viewMenu.add(mIsPaintingGhostBrdMenuItem); - mIsPaintingOriginalBrdMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWORIGINALBOARD_STR")); + mIsPaintingOriginalBrdMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWORIGINALBOARD_STR")); mIsPaintingOriginalBrdMenuItem.setMnemonic(KeyEvent.VK_O); mIsPaintingOriginalBrdMenuItem.setSelected(true); mIsPaintingOriginalBrdMenuItem.addItemListener(this); viewMenu.add(mIsPaintingOriginalBrdMenuItem); - mIsPaintingControlPointsMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWCONTROLPOINTS_STR")); + mIsPaintingControlPointsMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWCONTROLPOINTS_STR")); mIsPaintingControlPointsMenuItem.setMnemonic(KeyEvent.VK_C); - mIsPaintingControlPointsMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, 0));// , KeyEvent.CTRL_DOWN_MASK)); + mIsPaintingControlPointsMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, 0));// , + // KeyEvent.CTRL_DOWN_MASK)); mIsPaintingControlPointsMenuItem.setSelected(true); mIsPaintingControlPointsMenuItem.addItemListener(this); viewMenu.add(mIsPaintingControlPointsMenuItem); - mIsPaintingNonActiveCrossSectionsMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWNONEACTIVECROSSECTIONS_STR")); + mIsPaintingNonActiveCrossSectionsMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWNONEACTIVECROSSECTIONS_STR")); mIsPaintingNonActiveCrossSectionsMenuItem.setMnemonic(KeyEvent.VK_N); mIsPaintingNonActiveCrossSectionsMenuItem.setSelected(true); mIsPaintingNonActiveCrossSectionsMenuItem.addItemListener(this); viewMenu.add(mIsPaintingNonActiveCrossSectionsMenuItem); - mIsPaintingGuidePointsMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWGUIDEPOINTS_STR")); + mIsPaintingGuidePointsMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWGUIDEPOINTS_STR")); mIsPaintingGuidePointsMenuItem.setMnemonic(KeyEvent.VK_P); mIsPaintingGuidePointsMenuItem.setSelected(true); mIsPaintingGuidePointsMenuItem.addItemListener(this); viewMenu.add(mIsPaintingGuidePointsMenuItem); - mIsPaintingCurvatureMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWCURVATURE_STR")); + mIsPaintingCurvatureMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWCURVATURE_STR")); mIsPaintingCurvatureMenuItem.setMnemonic(KeyEvent.VK_V); - mIsPaintingCurvatureMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0));// , KeyEvent.CTRL_DOWN_MASK)); + mIsPaintingCurvatureMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0));// , + // KeyEvent.CTRL_DOWN_MASK)); mIsPaintingCurvatureMenuItem.setSelected(true); mIsPaintingCurvatureMenuItem.addItemListener(this); viewMenu.add(mIsPaintingCurvatureMenuItem); mIsPaintingVolumeDistributionMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWVOLUMEDISTRIBUTION_STR")); mIsPaintingVolumeDistributionMenuItem.setMnemonic(KeyEvent.VK_V); - mIsPaintingVolumeDistributionMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, 0));// , KeyEvent.CTRL_DOWN_MASK)); + mIsPaintingVolumeDistributionMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, 0));// , + // KeyEvent.CTRL_DOWN_MASK)); mIsPaintingVolumeDistributionMenuItem.setSelected(true); mIsPaintingVolumeDistributionMenuItem.addItemListener(this); viewMenu.add(mIsPaintingVolumeDistributionMenuItem); - mIsPaintingCenterOfMassMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWCENTEROFMASS_STR")); + mIsPaintingCenterOfMassMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWCENTEROFMASS_STR")); mIsPaintingCenterOfMassMenuItem.setMnemonic(KeyEvent.VK_M); mIsPaintingCenterOfMassMenuItem.setSelected(true); mIsPaintingCenterOfMassMenuItem.addItemListener(this); viewMenu.add(mIsPaintingCenterOfMassMenuItem); - mIsPaintingSlidingInfoMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWSLIDINGINFO_STR")); + mIsPaintingSlidingInfoMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWSLIDINGINFO_STR")); mIsPaintingSlidingInfoMenuItem.setMnemonic(KeyEvent.VK_S); mIsPaintingSlidingInfoMenuItem.setSelected(true); mIsPaintingSlidingInfoMenuItem.addItemListener(this); viewMenu.add(mIsPaintingSlidingInfoMenuItem); - mIsPaintingSlidingCrossSectionMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWSLIDINGCROSSECTION_STR")); + mIsPaintingSlidingCrossSectionMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWSLIDINGCROSSECTION_STR")); mIsPaintingSlidingCrossSectionMenuItem.setMnemonic(KeyEvent.VK_X); - mIsPaintingSlidingCrossSectionMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, 0));// , KeyEvent.CTRL_DOWN_MASK)); + mIsPaintingSlidingCrossSectionMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, 0));// , + // KeyEvent.CTRL_DOWN_MASK)); mIsPaintingSlidingCrossSectionMenuItem.setSelected(true); mIsPaintingSlidingCrossSectionMenuItem.addItemListener(this); viewMenu.add(mIsPaintingSlidingCrossSectionMenuItem); - mIsPaintingFinsMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWFINS_STR")); + mIsPaintingFinsMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWFINS_STR")); mIsPaintingFinsMenuItem.setMnemonic(KeyEvent.VK_F); mIsPaintingFinsMenuItem.setSelected(true); mIsPaintingFinsMenuItem.addItemListener(this); viewMenu.add(mIsPaintingFinsMenuItem); - mIsPaintingBackgroundImageMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWBACKGROUNDIMAGE_STR")); + mIsPaintingBackgroundImageMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWBACKGROUNDIMAGE_STR")); mIsPaintingBackgroundImageMenuItem.setMnemonic(KeyEvent.VK_B); mIsPaintingBackgroundImageMenuItem.setSelected(true); mIsPaintingBackgroundImageMenuItem.addItemListener(this); viewMenu.add(mIsPaintingBackgroundImageMenuItem); - mIsAntialiasingMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("USEANTIALIASING_STR")); + mIsAntialiasingMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("USEANTIALIASING_STR")); mIsAntialiasingMenuItem.setMnemonic(KeyEvent.VK_A); mIsAntialiasingMenuItem.setSelected(true); mIsAntialiasingMenuItem.addItemListener(this); viewMenu.add(mIsAntialiasingMenuItem); - mIsPaintingBaseLineMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWBASELINE_STR")); + mIsPaintingBaseLineMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWBASELINE_STR")); mIsPaintingBaseLineMenuItem.setMnemonic(KeyEvent.VK_L); mIsPaintingBaseLineMenuItem.setSelected(true); mIsPaintingBaseLineMenuItem.addItemListener(this); viewMenu.add(mIsPaintingBaseLineMenuItem); - mIsPaintingCenterLineMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWCENTERLINE_STR")); + mIsPaintingCenterLineMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWCENTERLINE_STR")); mIsPaintingCenterLineMenuItem.setMnemonic(KeyEvent.VK_J); mIsPaintingCenterLineMenuItem.setSelected(true); mIsPaintingCenterLineMenuItem.addItemListener(this); viewMenu.add(mIsPaintingCenterLineMenuItem); - mIsPaintingOverCurveMesurementsMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWOVERBOTTOMCURVEMEASUREMENTS_STR")); + mIsPaintingOverCurveMesurementsMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWOVERBOTTOMCURVEMEASUREMENTS_STR")); mIsPaintingOverCurveMesurementsMenuItem.setMnemonic(KeyEvent.VK_D); - mIsPaintingOverCurveMesurementsMenuItem.setAccelerator( KeyStroke.getKeyStroke("shift V") ); + mIsPaintingOverCurveMesurementsMenuItem.setAccelerator(KeyStroke.getKeyStroke("shift V")); mIsPaintingOverCurveMesurementsMenuItem.setSelected(true); mIsPaintingOverCurveMesurementsMenuItem.addItemListener(this); viewMenu.add(mIsPaintingOverCurveMesurementsMenuItem); - mIsPaintingMomentOfInertiaMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWMOMENTOFINERTIA_STR")); + mIsPaintingMomentOfInertiaMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWMOMENTOFINERTIA_STR")); mIsPaintingMomentOfInertiaMenuItem.setMnemonic(KeyEvent.VK_D); -// mIsPaintingMomentOfInertiaMenuItem.setAccelerator( KeyStroke.getKeyStroke("shift V") ); + // mIsPaintingMomentOfInertiaMenuItem.setAccelerator( + // KeyStroke.getKeyStroke("shift V") ); mIsPaintingMomentOfInertiaMenuItem.setSelected(true); mIsPaintingMomentOfInertiaMenuItem.addItemListener(this); viewMenu.add(mIsPaintingMomentOfInertiaMenuItem); - - mIsPaintingCrossectionsPositionsMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWCROSSECTIONSPOSITIONS_STR")); + + mIsPaintingCrossectionsPositionsMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWCROSSECTIONSPOSITIONS_STR")); mIsPaintingCrossectionsPositionsMenuItem.setMnemonic(KeyEvent.VK_D); -// mIsPaintingCrossectionsPositionsMenuItem.setAccelerator( KeyStroke.getKeyStroke("shift V") ); + // mIsPaintingCrossectionsPositionsMenuItem.setAccelerator( + // KeyStroke.getKeyStroke("shift V") ); mIsPaintingCrossectionsPositionsMenuItem.setSelected(true); mIsPaintingCrossectionsPositionsMenuItem.addItemListener(this); viewMenu.add(mIsPaintingCrossectionsPositionsMenuItem); - mIsPaintingFlowlinesMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWFLOWLINES_STR")); + mIsPaintingFlowlinesMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWFLOWLINES_STR")); mIsPaintingFlowlinesMenuItem.setMnemonic(KeyEvent.VK_D); -// mIsPaintingFlowlinesMenuItem.setAccelerator( KeyStroke.getKeyStroke("shift V") ); + // mIsPaintingFlowlinesMenuItem.setAccelerator( + // KeyStroke.getKeyStroke("shift V") ); mIsPaintingFlowlinesMenuItem.setSelected(true); mIsPaintingFlowlinesMenuItem.addItemListener(this); viewMenu.add(mIsPaintingFlowlinesMenuItem); - mIsPaintingApexlineMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWAPEXLINE_STR")); + mIsPaintingApexlineMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWAPEXLINE_STR")); mIsPaintingApexlineMenuItem.setMnemonic(KeyEvent.VK_D); -// mIsPaintingApexlineMenuItem.setAccelerator( KeyStroke.getKeyStroke("shift V") ); + // mIsPaintingApexlineMenuItem.setAccelerator( + // KeyStroke.getKeyStroke("shift V") ); mIsPaintingApexlineMenuItem.setSelected(true); mIsPaintingApexlineMenuItem.addItemListener(this); viewMenu.add(mIsPaintingApexlineMenuItem); - mIsPaintingTuckUnderLineMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWTUCKUNDERLINE_STR")); + mIsPaintingTuckUnderLineMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWTUCKUNDERLINE_STR")); mIsPaintingTuckUnderLineMenuItem.setMnemonic(KeyEvent.VK_D); -// mIsPaintingTuckUnderLineMenuItem.setAccelerator( KeyStroke.getKeyStroke("shift V") ); + // mIsPaintingTuckUnderLineMenuItem.setAccelerator( + // KeyStroke.getKeyStroke("shift V") ); mIsPaintingTuckUnderLineMenuItem.setSelected(true); mIsPaintingTuckUnderLineMenuItem.addItemListener(this); viewMenu.add(mIsPaintingTuckUnderLineMenuItem); - mIsPaintingFootMarksMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWFOOTMARKS_STR")); + mIsPaintingFootMarksMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWFOOTMARKS_STR")); mIsPaintingFootMarksMenuItem.setMnemonic(KeyEvent.VK_D); - mIsPaintingFootMarksMenuItem.setAccelerator(KeyStroke.getKeyStroke("shift F") ); + mIsPaintingFootMarksMenuItem.setAccelerator(KeyStroke.getKeyStroke("shift F")); mIsPaintingFootMarksMenuItem.setSelected(false); mIsPaintingFootMarksMenuItem.addItemListener(this); viewMenu.add(mIsPaintingFootMarksMenuItem); - mUseFillMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("USEFILL_STR")); - //mUseFillMenuItem.setMnemonic(KeyEvent.VK_D); - //mUseFillMenuItem.setAccelerator(KeyStroke.getKeyStroke("shift F") ); + mUseFillMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("USEFILL_STR")); + // mUseFillMenuItem.setMnemonic(KeyEvent.VK_D); + // mUseFillMenuItem.setAccelerator(KeyStroke.getKeyStroke("shift F") ); mUseFillMenuItem.setSelected(true); mUseFillMenuItem.addItemListener(this); viewMenu.add(mUseFillMenuItem); - + menuBar.add(viewMenu); final JMenu crossSectionsMenu = new JMenu(LanguageResource.getString("CROSSECTIONSMENU_STR")); crossSectionsMenu.setMnemonic(KeyEvent.VK_C); mNextCrossSection = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("NEXTCROSSECTION_STR")); - this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_PLUS, 0)); + this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { if (isGhostMode()) { BoardCAD.getInstance().getGhostBrd().nextCrossSection(); @@ -3928,22 +4509,20 @@ public void actionPerformed(ActionEvent arg0) { crossSectionsMenu.add(mNextCrossSection); mPreviousCrossSection = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PREVIOUSCROSSECTION_STR")); - this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_MINUS, 0)); + this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { if (isGhostMode()) { BoardCAD.getInstance().getGhostBrd().previousCrossSection(); } else if (mOrgFocus) { - BoardCAD.getInstance().getOriginalBrd() - .previousCrossSection(); + BoardCAD.getInstance().getOriginalBrd().previousCrossSection(); } else { - BoardCAD.getInstance().getCurrentBrd() - .previousCrossSection(); + BoardCAD.getInstance().getCurrentBrd().previousCrossSection(); } mFrame.repaint(); } @@ -3953,36 +4532,30 @@ public void actionPerformed(ActionEvent arg0) { crossSectionsMenu.addSeparator(); final AbstractAction addCrossSection = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("ADDCROSSECTION_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { setSelectedEdit(mCrossSectionEdit); double pos = 0.0f; - String posStr = JOptionPane.showInputDialog(mFrame, - LanguageResource.getString("ADDCROSSECTIONMSG_STR"), - LanguageResource.getString("ADDCROSSECTIONTITLE_STR"), JOptionPane.PLAIN_MESSAGE); + String posStr = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("ADDCROSSECTIONMSG_STR"), LanguageResource.getString("ADDCROSSECTIONTITLE_STR"), JOptionPane.PLAIN_MESSAGE); if (posStr == null) return; pos = UnitUtils.convertInputStringToInternalLengthUnit(posStr); if (pos <= 0 || pos > getCurrentBrd().getLength()) { - JOptionPane - .showMessageDialog( - getFrame(), - LanguageResource.getString("ADDCROSSECTIONPOSITIONINVALIDMSG_STR"), - LanguageResource.getString("ADDCROSSECTIONPOSITIONINVALIDTITLE_STR"), JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(getFrame(), LanguageResource.getString("ADDCROSSECTIONPOSITIONINVALIDMSG_STR"), LanguageResource.getString("ADDCROSSECTIONPOSITIONINVALIDTITLE_STR"), JOptionPane.WARNING_MESSAGE); return; } - BrdAddCrossSectionCommand cmd = new BrdAddCrossSectionCommand( - mCrossSectionEdit, pos); + BrdAddCrossSectionCommand cmd = new BrdAddCrossSectionCommand(mCrossSectionEdit, pos); cmd.execute(); mFrame.repaint(); @@ -3992,37 +4565,30 @@ public void actionPerformed(ActionEvent arg0) { crossSectionsMenu.add(addCrossSection); final AbstractAction moveCrossSection = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("MOVECROSSECTION_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { setSelectedEdit(mCrossSectionEdit); double pos = 0.0f; - String posStr = JOptionPane.showInputDialog(mFrame, - LanguageResource.getString("MOVECROSSECTIONMSG_STR"), - LanguageResource.getString("MOVECROSSECTIONTITLE_STR"), JOptionPane.PLAIN_MESSAGE); + String posStr = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("MOVECROSSECTIONMSG_STR"), LanguageResource.getString("MOVECROSSECTIONTITLE_STR"), JOptionPane.PLAIN_MESSAGE); if (posStr == null) return; pos = UnitUtils.convertInputStringToInternalLengthUnit(posStr); if (pos <= 0 || pos > getCurrentBrd().getLength()) { - JOptionPane - .showMessageDialog( - getFrame(), - LanguageResource.getString("MOVECROSSECTIONPOSITIONINVALIDMSG_STR"), - LanguageResource.getString("MOVECROSSECTIONPOSITIONINVALIDTITLE_STR"), JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(getFrame(), LanguageResource.getString("MOVECROSSECTIONPOSITIONINVALIDMSG_STR"), LanguageResource.getString("MOVECROSSECTIONPOSITIONINVALIDTITLE_STR"), JOptionPane.WARNING_MESSAGE); return; } - BrdMoveCrossSectionCommand cmd = new BrdMoveCrossSectionCommand( - mCrossSectionEdit, mCrossSectionEdit.getCurrentBrd() - .getCurrentCrossSection(), pos); + BrdMoveCrossSectionCommand cmd = new BrdMoveCrossSectionCommand(mCrossSectionEdit, mCrossSectionEdit.getCurrentBrd().getCurrentCrossSection(), pos); cmd.execute(); mFrame.repaint(); @@ -4032,27 +4598,24 @@ public void actionPerformed(ActionEvent arg0) { crossSectionsMenu.add(moveCrossSection); final AbstractAction deleteCrossSection = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("REMOVECROSSECTION_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { setSelectedEdit(mCrossSectionEdit); if (mCrossSectionEdit.getCurrentBrd().getCrossSections().size() <= 3) { - JOptionPane.showMessageDialog(getFrame(), - LanguageResource.getString("REMOVECROSSECTIONDELETELASTERRORMSG_STR"), - LanguageResource.getString("REMOVECROSSECTIONDELETELASTERRORTITLE_STR"), JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(getFrame(), LanguageResource.getString("REMOVECROSSECTIONDELETELASTERRORMSG_STR"), LanguageResource.getString("REMOVECROSSECTIONDELETELASTERRORTITLE_STR"), JOptionPane.WARNING_MESSAGE); return; } - BrdRemoveCrossSectionCommand cmd = new BrdRemoveCrossSectionCommand( - mCrossSectionEdit, mCrossSectionEdit.getCurrentBrd() - .getCurrentCrossSection()); + BrdRemoveCrossSectionCommand cmd = new BrdRemoveCrossSectionCommand(mCrossSectionEdit, mCrossSectionEdit.getCurrentBrd().getCurrentCrossSection()); cmd.execute(); mFrame.repaint(); @@ -4063,16 +4626,16 @@ public void actionPerformed(ActionEvent arg0) { crossSectionsMenu.addSeparator(); final AbstractAction copyCrossSection = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("COPYCROSSECTION_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - mCrossSectionCopy = (BezierBoardCrossSection) getCurrentBrd() - .getCurrentCrossSection().clone(); + mCrossSectionCopy = (BezierBoardCrossSection) getCurrentBrd().getCurrentCrossSection().clone(); mFrame.repaint(); } @@ -4081,22 +4644,21 @@ public void actionPerformed(ActionEvent arg0) { crossSectionsMenu.add(copyCrossSection); final AbstractAction pasteCrossSection = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("PASTECROSSECTION_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { if (mCrossSectionCopy == null) return; setSelectedEdit(mCrossSectionEdit); - BrdPasteCrossSectionCommand cmd = new BrdPasteCrossSectionCommand( - mCrossSectionEdit, getCurrentBrd() - .getCurrentCrossSection(), mCrossSectionCopy); + BrdPasteCrossSectionCommand cmd = new BrdPasteCrossSectionCommand(mCrossSectionEdit, getCurrentBrd().getCurrentCrossSection(), mCrossSectionCopy); cmd.execute(); mFrame.repaint(); @@ -4111,13 +4673,14 @@ mCrossSectionEdit, getCurrentBrd() boardMenu.setMnemonic(KeyEvent.VK_B); final AbstractAction scale = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("SCALECURRENT_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { BrdScaleCommand cmd = new BrdScaleCommand(getSelectedEdit()); @@ -4130,16 +4693,16 @@ public void actionPerformed(ActionEvent arg0) { boardMenu.add(scale); final AbstractAction scaleGhost = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("SCALEGHOST_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - getGhostBrd().scale(getCurrentBrd().getLength(), - getCurrentBrd().getCenterWidth(), getCurrentBrd().getThickness()); + getGhostBrd().scale(getCurrentBrd().getLength(), getCurrentBrd().getCenterWidth(), getCurrentBrd().getThickness()); mFrame.repaint(); } @@ -4147,20 +4710,20 @@ public void actionPerformed(ActionEvent arg0) { }; boardMenu.add(scaleGhost); - final AbstractAction info = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("INFO_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { BoardInfo dialog = new BoardInfo(getCurrentBrd()); dialog.setModal(true); - //dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); + // dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); dialog.setVisible(true); dialog.dispose(); mFrame.repaint(); @@ -4171,16 +4734,17 @@ public void actionPerformed(ActionEvent arg0) { boardMenu.add(info); final AbstractAction fins = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { - this.putValue(Action.NAME, LanguageResource.getString("FINS_STR")); + this.putValue(Action.NAME, LanguageResource.getString("FINS_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { BoardFinsDialog dialog = new BoardFinsDialog(getCurrentBrd()); dialog.setModal(true); - //dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); + // dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); dialog.setVisible(true); dialog.dispose(); mFrame.repaint(); @@ -4190,13 +4754,13 @@ public void actionPerformed(ActionEvent arg0) { boardMenu.add(fins); final AbstractAction guidePoints = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("GUIDEPOINTS_STR")); }; - public void actionPerformed(ActionEvent arg0) - { + @Override + public void actionPerformed(ActionEvent arg0) { mGuidePointsDialog.setVisible(true); mFrame.repaint(); } @@ -4206,13 +4770,13 @@ public void actionPerformed(ActionEvent arg0) boardMenu.add(guidePoints); final AbstractAction weightCalc = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("WEIGHTCALC_STR")); }; - public void actionPerformed(ActionEvent arg0) - { + @Override + public void actionPerformed(ActionEvent arg0) { mWeightCalculatorDialog.setDefaults(); mWeightCalculatorDialog.updateAll(); mWeightCalculatorDialog.setVisible(true); @@ -4223,17 +4787,18 @@ public void actionPerformed(ActionEvent arg0) boardMenu.add(weightCalc); final AbstractAction flip = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("FLIP_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { mOutlineEdit.setFlipped(!mOutlineEdit.isFlipped()); - if(mOutlineEdit2 != null) + if (mOutlineEdit2 != null) mOutlineEdit2.setFlipped(!mOutlineEdit2.isFlipped()); mBottomAndDeckEdit.setFlipped(!mBottomAndDeckEdit.isFlipped()); mCrossSectionOutlineEdit.setFlipped(!mCrossSectionOutlineEdit.isFlipped()); @@ -4256,16 +4821,16 @@ public void actionPerformed(ActionEvent arg0) { miscMenu.setMnemonic(KeyEvent.VK_M); final AbstractAction settings = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("SETTINGS_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - BoardCADSettingsDialog dlg = new BoardCADSettingsDialog( - mSettings); + BoardCADSettingsDialog dlg = new BoardCADSettingsDialog(mSettings); dlg.setModal(true); dlg.setVisible(true); @@ -4277,21 +4842,21 @@ public void actionPerformed(ActionEvent arg0) { miscMenu.add(settings); final AbstractAction language = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("LANGUAGE_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { ComboBoxDialog languageDlg = new ComboBoxDialog(mFrame); languageDlg.setTitle(LanguageResource.getString("LANGUAGE_STR")); languageDlg.setMessageText(LanguageResource.getString("SELECTLANGUAGE_STR")); String[] languages = new String[mSupportedLanguages.length]; - for(int i = 0; i < mSupportedLanguages.length; i++) - { + for (int i = 0; i < mSupportedLanguages.length; i++) { languages[i] = mSupportedLanguages[i].getDisplayName(); } @@ -4301,10 +4866,8 @@ public void actionPerformed(ActionEvent arg0) { String languageStr = prefs.get("Language", "en"); String selectedLanguage = "English"; int i; - for(i = 0; i < mSupportedLanguages.length; i++) - { - if(mSupportedLanguages[i].getLanguage().equals(languageStr)) - { + for (i = 0; i < mSupportedLanguages.length; i++) { + if (mSupportedLanguages[i].getLanguage().equals(languageStr)) { selectedLanguage = mSupportedLanguages[i].getDisplayName(); break; } @@ -4317,21 +4880,16 @@ public void actionPerformed(ActionEvent arg0) { if (!languageDlg.wasCancelled()) { selectedLanguage = languageDlg.getSelectedItem(); - for(i = 0; i < mSupportedLanguages.length; i++) - { - if(mSupportedLanguages[i].getDisplayName().equals(selectedLanguage)) - { + for (i = 0; i < mSupportedLanguages.length; i++) { + if (mSupportedLanguages[i].getDisplayName().equals(selectedLanguage)) { languageStr = mSupportedLanguages[i].getLanguage(); break; } } + prefs.put("Language", languageStr); - prefs.put("Language", languageStr ); - - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), LanguageResource.getString("LANGUAGECHANGEDMSG_STR"), - LanguageResource.getString("LANGUAGECHANGEDTITLE_STR"), JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), LanguageResource.getString("LANGUAGECHANGEDMSG_STR"), LanguageResource.getString("LANGUAGECHANGEDTITLE_STR"), JOptionPane.INFORMATION_MESSAGE); } languageDlg.dispose(); @@ -4343,28 +4901,19 @@ public void actionPerformed(ActionEvent arg0) { miscMenu.addSeparator(); + final JMenu crossSectionInterpolationMenu = new JMenu(LanguageResource.getString("CROSSECTIONINTERPOLATIONMENU_STR")); + mControlPointInterpolationButton = new JRadioButtonMenuItem(LanguageResource.getString("CROSSECTIONINTERPOLATIONTYPECONTROLPOINT_STR")); + mSBlendInterpolationButton = new JRadioButtonMenuItem(LanguageResource.getString("CROSSECTIONINTERPOLATIONTYPESBLEND_STR")); - final JMenu crossSectionInterpolationMenu = new JMenu( - LanguageResource.getString("CROSSECTIONINTERPOLATIONMENU_STR")); - mControlPointInterpolationButton = new JRadioButtonMenuItem( - LanguageResource.getString("CROSSECTIONINTERPOLATIONTYPECONTROLPOINT_STR")); - mSBlendInterpolationButton = new JRadioButtonMenuItem( - LanguageResource.getString("CROSSECTIONINTERPOLATIONTYPESBLEND_STR")); - - ActionListener interpolationTypeListener = new ActionListener() - { + ActionListener interpolationTypeListener = new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { + setBoardChangedFor3D(); boolean selected = mShowBezier3DModelMenuItem.getModel().isSelected(); - if(selected && mTabbedPane.getSelectedComponent() == mRenderedpanel) - { + if (selected) { updateBezier3DModel(); - } - else - { - mBoardChangedFor3D = true; - } - if(mCurrentBrd != null) - { + } + if (mCurrentBrd != null) { mCurrentBrd.setInterpolationType(getCrossSectionInterpolationType()); } } @@ -4373,7 +4922,6 @@ public void actionPerformed(ActionEvent e) { mControlPointInterpolationButton.addActionListener(interpolationTypeListener); mSBlendInterpolationButton.addActionListener(interpolationTypeListener); - final ButtonGroup interpolationButtonGroup = new ButtonGroup(); interpolationButtonGroup.add(mControlPointInterpolationButton); interpolationButtonGroup.add(mSBlendInterpolationButton); @@ -4383,24 +4931,20 @@ public void actionPerformed(ActionEvent e) { miscMenu.add(crossSectionInterpolationMenu); - menuBar.add(miscMenu); - - final JMenu scanMenu = new JMenu("Scan"); scanMenu.setMnemonic(KeyEvent.VK_S); - final AbstractAction scanBoard = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, "Read scanned board"); }; - public void actionPerformed(ActionEvent arg0) - { - Scan myScan=new Scan(); + @Override + public void actionPerformed(ActionEvent arg0) { + Scan myScan = new Scan(); myScan.readScan(); mFrame.repaint(); } @@ -4411,15 +4955,16 @@ public void actionPerformed(ActionEvent arg0) scanMenu.addSeparator(); final AbstractAction manual_scan = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, "Fit curve to guide points"); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - Scan myScan=new Scan(); + Scan myScan = new Scan(); myScan.approximateCurrentView(); mFrame.repaint(); } @@ -4429,15 +4974,15 @@ public void actionPerformed(ActionEvent arg0) { scanMenu.addSeparator(); - final AbstractAction read_scanned_points = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, "Open scanned blank position"); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { board_handler.read_guide_points(); design_panel.fit_all(); @@ -4448,13 +4993,14 @@ public void actionPerformed(ActionEvent arg0) { scanMenu.add(read_scanned_points); final AbstractAction close_scanned_points = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, "Hide scanned blank position"); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { board_handler.close_guide_points(); design_panel.fit_all(); @@ -4466,114 +5012,112 @@ public void actionPerformed(ActionEvent arg0) { menuBar.add(scanMenu); - - final JMenu menu3D = new JMenu(LanguageResource.getString("3DMODELMENU_STR")); menu3D.setMnemonic(KeyEvent.VK_D); final AbstractAction approximate = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("3DAPPROXFROMBEZIER_STR") + " (closed model)"); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { board_handler.approximate_bezier(getCurrentBrd(), true); -// design_panel.update_3d(); -// design_panel.fit_all(); + // design_panel.update_3d(); + // design_panel.fit_all(); mBoardSpec.updateInfoInstantly(); panel.remove(mControlPointInfo); panel.repaint(); -// redraw(); -// design_panel.redraw(); + // redraw(); + // design_panel.redraw(); } }; - + menu3D.add(approximate); + final AbstractAction approximate_open = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("3DAPPROXFROMBEZIER_STR") + " (open model)"); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { board_handler.approximate_bezier(getCurrentBrd(), false); -// design_panel.update_3d(); -// design_panel.fit_all(); + // design_panel.update_3d(); + // design_panel.fit_all(); mBoardSpec.updateInfoInstantly(); panel.remove(mControlPointInfo); panel.repaint(); -// redraw(); -// design_panel.redraw(); + // redraw(); + // design_panel.redraw(); } }; - + menu3D.add(approximate_open); final AbstractAction approximate2 = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, "Approximate outline and rocker"); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { board_handler.approximate_bezier2(getCurrentBrd(), false); -// design_panel.update_3d(); -// design_panel.fit_all(); + // design_panel.update_3d(); + // design_panel.fit_all(); mBoardSpec.updateInfoInstantly(); panel.remove(mControlPointInfo); panel.repaint(); -// redraw(); -// design_panel.redraw(); + // redraw(); + // design_panel.redraw(); } }; + menu3D.add(approximate2); final AbstractAction bezier_patch = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { - this.putValue(Action.NAME, "Create 3D model using Bezier patches"); + this.putValue(Action.NAME, "Create Bezier patch"); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - - if(board_handler.approximate_bezier_patch(getCurrentBrd(), false)<0) + if (board_handler.approximate_bezier_patch(getCurrentBrd(), false) < 0) JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), "All cross sections must have 4 or 5 control points", "Couldn't create bezier patch", JOptionPane.ERROR_MESSAGE); - -// design_panel.update_3d(); -// design_panel.fit_all(); + // design_panel.update_3d(); + // design_panel.fit_all(); mBoardSpec.updateInfoInstantly(); panel.remove(mControlPointInfo); panel.repaint(); -// redraw(); -// design_panel.redraw(); + // redraw(); + // design_panel.redraw(); } }; menu3D.add(bezier_patch); - menu3D.add(approximate); - menu3D.add(approximate_open); - menu3D.add(approximate2); - - - //3D object clear function + // 3D object clear function final AbstractAction clearApproximate = new AbstractAction() { static final long serialVersionUID = 12345L; { this.putValue(Action.NAME, LanguageResource.getString("CLEARAPPROXIMATION_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { board_handler.clearBezier(); mBoardSpec.updateInfoInstantly(); @@ -4586,46 +5130,43 @@ public void actionPerformed(ActionEvent arg0) { menu3D.addSeparator(); JRadioButtonMenuItem rbMenuItem; -/* final ButtonGroup burbsViewGroup = new ButtonGroup(); - rbMenuItem = new JRadioButtonMenuItem(LanguageResource.getString("VIEW3D_STR")); - rbMenuItem.setSelected(true); - rbMenuItem.addActionListener(this); - menu3D.add(rbMenuItem); - burbsViewGroup.add(rbMenuItem); - rbMenuItem = new JRadioButtonMenuItem(LanguageResource.getString("EDITNURBS_STR")); - rbMenuItem.addActionListener(this); - burbsViewGroup.add(rbMenuItem); - menu3D.add(rbMenuItem); - - menu3D.addSeparator(); -*/ + /* + * final ButtonGroup burbsViewGroup = new ButtonGroup(); rbMenuItem = + * new JRadioButtonMenuItem(LanguageResource.getString("VIEW3D_STR")); + * rbMenuItem.setSelected(true); rbMenuItem.addActionListener(this); + * menu3D.add(rbMenuItem); burbsViewGroup.add(rbMenuItem); rbMenuItem = + * new + * JRadioButtonMenuItem(LanguageResource.getString("EDITNURBS_STR")); + * rbMenuItem.addActionListener(this); burbsViewGroup.add(rbMenuItem); + * menu3D.add(rbMenuItem); + * + * menu3D.addSeparator(); + */ - ButtonGroup bnurbsEditGroup=new ButtonGroup(); - rbMenuItem=new JRadioButtonMenuItem(LanguageResource.getString("SIMPLEEDITING_STR")); + ButtonGroup bnurbsEditGroup = new ButtonGroup(); + rbMenuItem = new JRadioButtonMenuItem(LanguageResource.getString("SIMPLEEDITING_STR")); rbMenuItem.setSelected(true); rbMenuItem.addActionListener(this); menu3D.add(rbMenuItem); bnurbsEditGroup.add(rbMenuItem); - rbMenuItem=new JRadioButtonMenuItem(LanguageResource.getString("ADVANCEDEDITING_STR")); + rbMenuItem = new JRadioButtonMenuItem(LanguageResource.getString("ADVANCEDEDITING_STR")); rbMenuItem.addActionListener(this); bnurbsEditGroup.add(rbMenuItem); menu3D.add(rbMenuItem); - - menu3D.addSeparator(); final AbstractAction addsegment = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("ADDSEGMENT_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - String s = (String) JOptionPane.showInputDialog(mFrame, - LanguageResource.getString("DISTANCEFROMTAIL_STR")); + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("DISTANCEFROMTAIL_STR")); board_handler.add_segment(Double.parseDouble(s)); design_panel.redraw(); @@ -4635,19 +5176,19 @@ public void actionPerformed(ActionEvent arg0) { menu3D.add(addsegment); final AbstractAction taildesigner = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("TAILDESIGNER_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - String s = (String) JOptionPane.showInputDialog(mFrame, - LanguageResource.getString("SWALLOWTAIL_STR")); + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("SWALLOWTAIL_STR")); board_handler.set_tail(Double.parseDouble(s)); -// board_handler.set_tail(2); + // board_handler.set_tail(2); design_panel.redraw(); } @@ -4655,19 +5196,17 @@ public void actionPerformed(ActionEvent arg0) { }; menu3D.add(taildesigner); - - final AbstractAction setnrofsegments = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("SETNROFSEGMENT_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - String s = (String) JOptionPane.showInputDialog(mFrame, - LanguageResource.getString("NROFSEGMENT_STR")); + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("NROFSEGMENT_STR")); board_handler.set_nr_of_segments(Integer.parseInt(s)); board_handler.approximate_bezier(getCurrentBrd(), true); @@ -4680,16 +5219,16 @@ public void actionPerformed(ActionEvent arg0) { menu3D.add(setnrofsegments); final AbstractAction setnrofpoints = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("SETNROFPOINTS_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - String s = (String) JOptionPane.showInputDialog(mFrame, - LanguageResource.getString("NROFPOINTS_STR")); + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("NROFPOINTS_STR")); board_handler.set_nr_of_points(Integer.parseInt(s)); board_handler.approximate_bezier(getCurrentBrd(), true); @@ -4701,41 +5240,36 @@ public void actionPerformed(ActionEvent arg0) { }; menu3D.add(setnrofpoints); - menu3D.addSeparator(); - - AbstractAction setasblank = new AbstractAction() - { + AbstractAction setasblank = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("SETASBLANK_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { + @Override + public void actionPerformed(ActionEvent arg0) { board_handler.set_as_blank(); } }; menu3D.add(setasblank); - - final JMenu transform3DMenu = new JMenu("Transform"); - - AbstractAction rotate = new AbstractAction() - { + AbstractAction rotate = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("ROTATE_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { - String s=(String)JOptionPane.showInputDialog(mFrame, LanguageResource.getString("ROTATIONANGLE_STR")); - NurbsEditCommand mnurbsCommand=new NurbsEditCommand(); + @Override + public void actionPerformed(ActionEvent arg0) { + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("ROTATIONANGLE_STR")); + NurbsEditCommand mnurbsCommand = new NurbsEditCommand(); board_handler.rotate(Double.parseDouble(s)); mnurbsCommand.execute(); design_panel.redraw(); @@ -4744,19 +5278,18 @@ public void actionPerformed(ActionEvent arg0) }; transform3DMenu.add(rotate); - - AbstractAction translatex = new AbstractAction() - { + AbstractAction translatex = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("TRANSLATEX_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { - String s=(String)JOptionPane.showInputDialog(mFrame, LanguageResource.getString("TRANLATIONINMM_STR")); + @Override + public void actionPerformed(ActionEvent arg0) { + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("TRANLATIONINMM_STR")); - NurbsEditCommand mnurbsCommand=new NurbsEditCommand(); + NurbsEditCommand mnurbsCommand = new NurbsEditCommand(); board_handler.translate(Double.parseDouble(s), 0.0, 0.0); mnurbsCommand.execute(); design_panel.redraw(); @@ -4765,18 +5298,18 @@ public void actionPerformed(ActionEvent arg0) }; transform3DMenu.add(translatex); - AbstractAction translatey = new AbstractAction() - { + AbstractAction translatey = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("TRANSLATEY_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { - String s=(String)JOptionPane.showInputDialog(mFrame, LanguageResource.getString("TRANLATIONINMM_STR")); + @Override + public void actionPerformed(ActionEvent arg0) { + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("TRANLATIONINMM_STR")); - NurbsEditCommand mnurbsCommand=new NurbsEditCommand(); + NurbsEditCommand mnurbsCommand = new NurbsEditCommand(); board_handler.translate(0.0, Double.parseDouble(s), 0.0); mnurbsCommand.execute(); design_panel.redraw(); @@ -4785,16 +5318,16 @@ public void actionPerformed(ActionEvent arg0) }; transform3DMenu.add(translatey); - AbstractAction scale_length = new AbstractAction() - { + AbstractAction scale_length = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("SCALELENGTH_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { - String s=(String)JOptionPane.showInputDialog(mFrame, LanguageResource.getString("SCALELENGTHFACTOR_STR")); + @Override + public void actionPerformed(ActionEvent arg0) { + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("SCALELENGTHFACTOR_STR")); board_handler.scale_length(Double.parseDouble(s)); design_panel.redraw(); @@ -4803,16 +5336,16 @@ public void actionPerformed(ActionEvent arg0) }; transform3DMenu.add(scale_length); - AbstractAction scale_width = new AbstractAction() - { + AbstractAction scale_width = new AbstractAction() { { - this.putValue(Action.NAME, LanguageResource.getString("SCALEWIDTH_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + this.putValue(Action.NAME, LanguageResource.getString("SCALEWIDTH_STR")); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { - String s=(String)JOptionPane.showInputDialog(mFrame, LanguageResource.getString("SCALEWIDTHFACTOR_STR")); + @Override + public void actionPerformed(ActionEvent arg0) { + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("SCALEWIDTHFACTOR_STR")); board_handler.scale_width(Double.parseDouble(s)); design_panel.redraw(); @@ -4821,16 +5354,16 @@ public void actionPerformed(ActionEvent arg0) }; transform3DMenu.add(scale_width); - AbstractAction scale_thickness = new AbstractAction() - { + AbstractAction scale_thickness = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("SCALETHICKNESS_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { - String s=(String)JOptionPane.showInputDialog(mFrame, LanguageResource.getString("SCALETHICKNESSFACTOR_STR")); + @Override + public void actionPerformed(ActionEvent arg0) { + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("SCALETHICKNESSFACTOR_STR")); board_handler.scale_thickness(Double.parseDouble(s)); design_panel.redraw(); @@ -4839,16 +5372,16 @@ public void actionPerformed(ActionEvent arg0) }; transform3DMenu.add(scale_thickness); - AbstractAction scale_rocker = new AbstractAction() - { + AbstractAction scale_rocker = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("SCALEROCKER_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { - String s=(String)JOptionPane.showInputDialog(mFrame, LanguageResource.getString("SCALEROCKERFACTOR_STR")); + @Override + public void actionPerformed(ActionEvent arg0) { + String s = JOptionPane.showInputDialog(mFrame, LanguageResource.getString("SCALEROCKERFACTOR_STR")); board_handler.scale_rocker(Double.parseDouble(s)); design_panel.redraw(); @@ -4857,16 +5390,15 @@ public void actionPerformed(ActionEvent arg0) }; transform3DMenu.add(scale_rocker); - - AbstractAction flipnurbs = new AbstractAction() - { + AbstractAction flipnurbs = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("FLIPBOARD_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { + @Override + public void actionPerformed(ActionEvent arg0) { board_handler.flip(); design_panel.redraw(); @@ -4875,15 +5407,15 @@ public void actionPerformed(ActionEvent arg0) }; transform3DMenu.add(flipnurbs); - AbstractAction placeboard = new AbstractAction() - { + AbstractAction placeboard = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("PLACEBOARD_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { + @Override + public void actionPerformed(ActionEvent arg0) { board_handler.place_board(); design_panel.redraw(); @@ -4892,15 +5424,15 @@ public void actionPerformed(ActionEvent arg0) }; transform3DMenu.add(placeboard); - AbstractAction placeblank = new AbstractAction() - { + AbstractAction placeblank = new AbstractAction() { { this.putValue(Action.NAME, LanguageResource.getString("PLACEBLANK_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - public void actionPerformed(ActionEvent arg0) - { + @Override + public void actionPerformed(ActionEvent arg0) { board_handler.place_blank(); design_panel.redraw(); @@ -4911,112 +5443,90 @@ public void actionPerformed(ActionEvent arg0) menu3D.add(transform3DMenu); -/* - - AbstractAction repair = new AbstractAction() - { - { - this.putValue(Action.NAME, LanguageResource.getString("REPAIR_STR")); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); - }; - - public void actionPerformed(ActionEvent arg0) - { - - board_handler.repair(); - design_panel.redraw(); - } - - }; - menu3D.add(repair); -*/ -/* - AbstractAction loadairbrush = new AbstractAction() - { - { - this.putValue(Action.NAME, "Load airbrush"); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); - }; - - public void actionPerformed(ActionEvent arg0) - { - - design_panel2.set_airbrush("airbrush.jpg"); - design_panel2.redraw(); - } - - }; - menu3D.add(loadairbrush); -*/ - - - - - - + /* + * + * AbstractAction repair = new AbstractAction() { { + * this.putValue(Action.NAME, LanguageResource.getString("REPAIR_STR")); + * // this.putValue(Action.ACCELERATOR_KEY, + * KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + * + * public void actionPerformed(ActionEvent arg0) { + * + * board_handler.repair(); design_panel.redraw(); } + * + * }; menu3D.add(repair); + */ + /* + * AbstractAction loadairbrush = new AbstractAction() { { + * this.putValue(Action.NAME, "Load airbrush"); // + * this.putValue(Action.ACCELERATOR_KEY, + * KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + * + * public void actionPerformed(ActionEvent arg0) { + * + * design_panel2.set_airbrush("airbrush.jpg"); design_panel2.redraw(); } + * + * }; menu3D.add(loadairbrush); + */ /* * AbstractAction settolerance = new AbstractAction() { { * this.putValue(Action.NAME, "Set tolerance"); // * this.putValue(Action.ACCELERATOR_KEY, * KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - * + * * public void actionPerformed(ActionEvent arg0) { String * s=(String)JOptionPane.showInputDialog(mFrame, "Set tolerance (mm)"); - * - * board_handler.set_tolerance(Double.parseDouble(s)); } - * }; menu3D.add(settolerance); - * + * + * board_handler.set_tolerance(Double.parseDouble(s)); } }; + * menu3D.add(settolerance); + * * AbstractAction setmaxiterations = new AbstractAction() { { * this.putValue(Action.NAME, "Set max iterations"); // * this.putValue(Action.ACCELERATOR_KEY, * KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; - * + * * public void actionPerformed(ActionEvent arg0) { String * s=(String)JOptionPane.showInputDialog(mFrame, "Max iterations"); - * - * board_handler.set_iterations(Integer.parseInt(s)); } - * }; menu3D.add(setmaxiterations); + * + * board_handler.set_iterations(Integer.parseInt(s)); } }; + * menu3D.add(setmaxiterations); */ - menuBar.add(menu3D); - - final JMenu menuRender = new JMenu(LanguageResource.getString("RENDERMENU_STR")); menuRender.setMnemonic(KeyEvent.VK_R); - final AbstractAction update3d = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("RENDER_STR")); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - if(board_handler.is_empty()) { + if (board_handler.is_empty()) { board_handler.approximate_bezier(getCurrentBrd(), false); } design_panel2.update_3d(); + design_panel3.update_3d(); } }; menuRender.add(update3d); - mShowRenderInwireframe = new JCheckBoxMenuItem( LanguageResource.getString("SHOWWIREFRAME_STR")); + mShowRenderInwireframe = new JCheckBoxMenuItem(LanguageResource.getString("SHOWWIREFRAME_STR")); mShowRenderInwireframe.setMnemonic(KeyEvent.VK_S); mShowRenderInwireframe.setSelected(false); - mShowRenderInwireframe.addItemListener(new ItemListener() - { - public void itemStateChanged(final ItemEvent e) - { + mShowRenderInwireframe.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(final ItemEvent e) { Appearance a = new Appearance(); PolygonAttributes pa = new PolygonAttributes(); - if(mShowRenderInwireframe.isSelected()) - { + if (mShowRenderInwireframe.isSelected()) { Color3f ambient = new Color3f(0.1f, 0.5f, 0.1f); Color3f emissive = new Color3f(0.0f, 0.0f, 0.0f); Color3f diffuse = new Color3f(0.1f, 1.0f, 0.1f); @@ -5026,11 +5536,10 @@ public void itemStateChanged(final ItemEvent e) a.setMaterial(new Material(ambient, emissive, diffuse, specular, 115.0f)); pa.setPolygonMode(PolygonAttributes.POLYGON_LINE); - pa.setCullFace(PolygonAttributes.CULL_BACK); // experiment with it + pa.setCullFace(PolygonAttributes.CULL_BACK); // experiment + // with it a.setPolygonAttributes(pa); - } - else - { + } else { Color3f ambient = new Color3f(0.4f, 0.4f, 0.45f); Color3f emissive = new Color3f(0.0f, 0.0f, 0.0f); Color3f diffuse = new Color3f(0.8f, 0.8f, 0.8f); @@ -5040,40 +5549,48 @@ public void itemStateChanged(final ItemEvent e) a.setMaterial(new Material(ambient, emissive, diffuse, specular, 115.0f)); pa.setPolygonMode(PolygonAttributes.POLYGON_FILL); - pa.setCullFace(PolygonAttributes.CULL_BACK); // experiment with it + pa.setCullFace(PolygonAttributes.CULL_BACK); // experiment + // with it a.setPolygonAttributes(pa); } - if(mBezier3DModel != null) - { - mBezier3DModel.setAppearance(a); + if (design_panel2.getBezier3DModel() != null) { + design_panel2.getBezier3DModel().setAppearance(a); + } + + if (design_panel3.getBezier3DModel() != null) { + design_panel3.getBezier3DModel().setAppearance(a); } - if(design_panel2.getShape() != null) - { + if (design_panel2.getShape() != null) { design_panel2.getShape().setAppearance(a); } + if (design_panel3.getShape() != null) { + design_panel3.getShape().setAppearance(a); + } + } }); menuRender.add(mShowRenderInwireframe); - final AbstractAction loadairbrush = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, "Load airbrush"); -// this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_I, KeyEvent.CTRL_DOWN_MASK)); + // this.putValue(Action.ACCELERATOR_KEY, + // KeyStroke.getKeyStroke(KeyEvent.VK_I, + // KeyEvent.CTRL_DOWN_MASK)); }; + @Override public void actionPerformed(ActionEvent arg0) { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - int returnVal = fc.showOpenDialog(BoardCAD.getInstance() - .getFrame()); + int returnVal = fc.showOpenDialog(BoardCAD.getInstance().getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; @@ -5089,74 +5606,68 @@ public void actionPerformed(ActionEvent arg0) { design_panel2.set_airbrush(filename); design_panel2.redraw(); -/* - BoardEdit edit = getSelectedEdit(); - if (edit == null) - return; + design_panel3.set_airbrush(filename); + design_panel3.redraw(); - edit.loadBackgroundImage(filename); - edit.repaint(); -*/ + /* + * BoardEdit edit = getSelectedEdit(); if (edit == null) return; + * + * edit.loadBackgroundImage(filename); edit.repaint(); + */ } }; menuRender.add(loadairbrush); - mShowBezier3DModelMenuItem = new JCheckBoxMenuItem( LanguageResource.getString("SHOWBEZIER3DMODEL_STR")); + mShowBezier3DModelMenuItem = new JCheckBoxMenuItem(LanguageResource.getString("SHOWBEZIER3DMODEL_STR")); mShowBezier3DModelMenuItem.setMnemonic(KeyEvent.VK_B); - mShowBezier3DModelMenuItem.setSelected(false); + mShowBezier3DModelMenuItem.setSelected(true); ActionListener showBezier3DListener = new ActionListener() { - public void actionPerformed(ActionEvent event) { - AbstractButton aButton = (AbstractButton) event.getSource(); - boolean selected = mShowBezier3DModelMenuItem.getModel().isSelected(); - if(mBezier3DOnSwitch != null) - { - mBezier3DOnSwitch.setWhichChild(selected?Switch.CHILD_ALL:Switch.CHILD_NONE); - if(selected && mBoardChangedFor3D && mTabbedPane.getSelectedComponent() == mRenderedpanel) - { - updateBezier3DModel(); - } - } - } + @Override + public void actionPerformed(ActionEvent event) { + boolean selected = mShowBezier3DModelMenuItem.getModel().isSelected(); + design_panel2.setShowBezierModel(selected); + design_panel3.setShowBezierModel(selected); + if (selected) { + updateBezier3DModel(); + } + } }; mShowBezier3DModelMenuItem.addActionListener(showBezier3DListener); menuRender.add(mShowBezier3DModelMenuItem); menuBar.add(menuRender); - scriptMenu = new JMenu("Script"); - scriptMenu.setMnemonic(KeyEvent.VK_P); - menuBar.add(scriptMenu); - final JMenu helpMenu = new JMenu(LanguageResource.getString("HELPMENU_STR")); helpMenu.setMnemonic(KeyEvent.VK_H); final AbstractAction onlineHelp = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("ONLINEHELP_STR")); - this.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/Help16.gif"))); + this.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/Help16.gif"))); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { - BrowserControl - .displayURL("http://boardcad.org/index.php/Help:Contents"); + BrowserControl.displayURL("http://boardcad.org/index.php/Help:Contents"); } }; helpMenu.add(onlineHelp); final AbstractAction about = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("ABOUT_STR")); - this.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/Information16.gif"))); + this.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/Information16.gif"))); // this.putValue(Action.ACCELERATOR_KEY, // KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { AboutBox box = new AboutBox(); box.setModal(true); @@ -5173,34 +5684,34 @@ public void actionPerformed(ActionEvent arg0) { mToolBar = new JToolBar(); - newBrd.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/new.png"))); + newBrd.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/new.png"))); mToolBar.add(newBrd); - loadBrd.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/open.png"))); + loadBrd.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/open.png"))); mToolBar.add(loadBrd); - saveBrd.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/save.png"))); + saveBrd.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/save.png"))); mToolBar.add(saveBrd); - SaveBrd.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/save-refresh.png"))); + SaveBrd.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/save-refresh.png"))); mToolBar.add(SaveBrd); - printSpecSheet.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/print.png"))); + printSpecSheet.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/print.png"))); mToolBar.add(printSpecSheet); mToolBar.addSeparator(); mToolBar.addSeparator(); - final SetCurrentOneShotCommandAction zoom = new SetCurrentOneShotCommandAction( - new BrdZoomCommand()); - zoom.putValue(AbstractAction.NAME, LanguageResource.getString("ZOOMBUTTON_STR")); - zoom.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("ZOOMBUTTON_STR")); - zoom.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/zoom-in.png"))); + final SetCurrentOneShotCommandAction zoom = new SetCurrentOneShotCommandAction(new BrdZoomCommand()); + zoom.putValue(Action.NAME, LanguageResource.getString("ZOOMBUTTON_STR")); + zoom.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("ZOOMBUTTON_STR")); + zoom.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/zoom-in.png"))); mToolBar.add(zoom); - final AbstractAction fit = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; + + @Override public void actionPerformed(ActionEvent event) { fitAll(); mLifeSizeButton.getModel().setPressed(false); @@ -5208,41 +5719,40 @@ public void actionPerformed(ActionEvent event) { } }; - fit.putValue(AbstractAction.NAME, LanguageResource.getString("FITBUTTON_STR")); - fit.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("FITBUTTON_STR")); - fit.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/zoom-fit-best.png"))); + fit.putValue(Action.NAME, LanguageResource.getString("FITBUTTON_STR")); + fit.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("FITBUTTON_STR")); + fit.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/zoom-fit-best.png"))); mToolBar.add(fit); popupMenu.add(fit); mLifeSizeButton = new JToggleButton(); mLifeSizeButton.setIcon(new ImageIcon(getClass().getResource("../../icons/zoom-1to1.png"))); - mLifeSizeButton.addMouseListener(new MouseAdapter(){ - public void mouseClicked(MouseEvent e){ - if(e.getID() == MouseEvent.MOUSE_CLICKED && e.getButton() == MouseEvent.BUTTON3) - { - BoardEdit edit = getSelectedEdit(); - if(edit != null) - { - edit.setCurrentAsLifeSizeScale(); - } - } - } + mLifeSizeButton.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if (e.getID() == MouseEvent.MOUSE_CLICKED && e.getButton() == MouseEvent.BUTTON3) { + BoardEdit edit = getSelectedEdit(); + if (edit != null) { + edit.setCurrentAsLifeSizeScale(); + } + } + } }); final ChangeListener lifeSizeChangeListner = new ChangeListener() { + @Override public void stateChanged(ChangeEvent e) { boolean isLifeSize = mLifeSizeButton.isSelected(); BoardEdit edit = getSelectedEdit(); - if(edit != null) - { - if(edit.isLifeSize() == isLifeSize) + if (edit != null) { + if (edit.isLifeSize() == isLifeSize) return; edit.setLifeSize(isLifeSize); - if(!isLifeSize) + if (!isLifeSize) edit.resetToPreviousScale(); edit.repaint(); @@ -5252,8 +5762,10 @@ public void stateChanged(ChangeEvent e) { }; mLifeSizeButton.addChangeListener(lifeSizeChangeListner); -// lifeSize.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("LIFESIZEBUTTON_STR")); -// lifeSize.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/zoom-fit-best.png"))); + // lifeSize.putValue(AbstractAction.SHORT_DESCRIPTION, + // LanguageResource.getString("LIFESIZEBUTTON_STR")); + // lifeSize.putValue(AbstractAction.SMALL_ICON, new + // ImageIcon(getClass().getResource("../../icons/zoom-fit-best.png"))); mToolBar.add(mLifeSizeButton); mToolBar.addSeparator(); @@ -5261,32 +5773,27 @@ public void stateChanged(ChangeEvent e) { board_handler = new BoardHandler(); - final SetCurrentCommandAction edit = new SetCurrentCommandAction( - new BrdEditCommand()); - edit.putValue(AbstractAction.NAME, LanguageResource.getString("EDITBUTTON_STR")); - edit.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("EDITBUTTON_STR")); - edit.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/BoardCADedit24.gif"))); + final SetCurrentCommandAction edit = new SetCurrentCommandAction(new BrdEditCommand()); + edit.putValue(Action.NAME, LanguageResource.getString("EDITBUTTON_STR")); + edit.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("EDITBUTTON_STR")); + edit.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/BoardCADedit24.gif"))); mToolBar.add(edit); -// popupMenu.add(edit); + // popupMenu.add(edit); + // JButton bt = new JButton(new ImageIcon("../../icons/Zoom24.gif")); + // mToolBar.add(bt); -// JButton bt = new JButton(new ImageIcon("../../icons/Zoom24.gif")); -// mToolBar.add(bt); - - final SetCurrentCommandAction pan = new SetCurrentCommandAction( - new BrdPanCommand()); - pan.putValue(AbstractAction.NAME, LanguageResource.getString("PANBUTTON_STR")); - pan.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("PANBUTTON_STR")); - pan.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/BoardCADpan24.gif"))); + final SetCurrentCommandAction pan = new SetCurrentCommandAction(new BrdPanCommand()); + pan.putValue(Action.NAME, LanguageResource.getString("PANBUTTON_STR")); + pan.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("PANBUTTON_STR")); + pan.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/BoardCADpan24.gif"))); mToolBar.add(pan); - - final SetCurrentCommandAction rotate_view = new SetCurrentCommandAction( - new BrdRotateViewCommand()); - rotate_view.putValue(AbstractAction.NAME, LanguageResource.getString("ROTATEVIEWBUTTON_STR")); - rotate_view.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("ROTATEVIEWBUTTON_STR")); - rotate_view.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/BoardCADrotateview24.gif"))); + final SetCurrentCommandAction rotate_view = new SetCurrentCommandAction(new BrdRotateViewCommand()); + rotate_view.putValue(Action.NAME, LanguageResource.getString("ROTATEVIEWBUTTON_STR")); + rotate_view.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("ROTATEVIEWBUTTON_STR")); + rotate_view.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/BoardCADrotateview24.gif"))); mToolBar.add(rotate_view); @@ -5326,10 +5833,8 @@ public void stateChanged(ChangeEvent e) { mViewBottomCut.addItemListener(this); popupMenu.add(mViewBottomCut); - popupMenu.addSeparator(); - final JButton spotCheck = new JButton(); final JButton spotCheck2 = new JButton(); @@ -5341,6 +5846,7 @@ public void stateChanged(ChangeEvent e) { boolean mIsSpotChecking = false; + @Override public void stateChanged(ChangeEvent e) { ButtonModel model = ((JButton) e.getSource()).getModel(); if (model.isPressed()) { @@ -5357,7 +5863,7 @@ public void stateChanged(ChangeEvent e) { spotCheck.addChangeListener(spotCheckChangeListner); spotCheck2.addChangeListener(spotCheckChangeListner); -// mToolBar.add(spotCheck); + // mToolBar.add(spotCheck); popupMenu.add(spotCheck2); mToolBar.add(undo); @@ -5365,63 +5871,55 @@ public void stateChanged(ChangeEvent e) { mToolBar.addSeparator(); - final SetCurrentCommandAction toggleDeckAndBottom = new SetCurrentCommandAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; + + @Override public void actionPerformed(ActionEvent event) { toggleBottomAndDeck(); } }; - toggleDeckAndBottom.putValue(AbstractAction.NAME, LanguageResource.getString("TOGGLEDECKBOTTOMBUTTON_STR")); - toggleDeckAndBottom.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("TOGGLEDECKBOTTOMBUTTON_STR")); - toggleDeckAndBottom.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/BoardCADtoggle24x35.png"))); + toggleDeckAndBottom.putValue(Action.NAME, LanguageResource.getString("TOGGLEDECKBOTTOMBUTTON_STR")); + toggleDeckAndBottom.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("TOGGLEDECKBOTTOMBUTTON_STR")); + toggleDeckAndBottom.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/BoardCADtoggle24x35.png"))); mToolBar.add(toggleDeckAndBottom); popupMenu.add(toggleDeckAndBottom); - - mToolBar.addSeparator(); - final SetCurrentCommandAction addGuidePoint = new SetCurrentCommandAction( - new BrdAddGuidePointCommand()); - addGuidePoint.putValue(AbstractAction.NAME, LanguageResource.getString("ADDGUIDEPOINTBUTTON_STR")); - addGuidePoint.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("ADDGUIDEPOINTBUTTON_STR")); - addGuidePoint.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/add-guidepoint.png"))); + final SetCurrentCommandAction addGuidePoint = new SetCurrentCommandAction(new BrdAddGuidePointCommand()); + addGuidePoint.putValue(Action.NAME, LanguageResource.getString("ADDGUIDEPOINTBUTTON_STR")); + addGuidePoint.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("ADDGUIDEPOINTBUTTON_STR")); + addGuidePoint.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/add-guidepoint.png"))); mToolBar.add(addGuidePoint); popupMenu.add(addGuidePoint); popupMenu.add(guidePoints); - final SetCurrentCommandAction addControlPoint = new SetCurrentOneShotCommandAction( - new BrdAddControlPointCommand()); - addControlPoint.putValue(AbstractAction.NAME, LanguageResource.getString("ADDCONTROLPOINTBUTTON_STR")); - addControlPoint.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("ADDCONTROLPOINTBUTTON_STR")); - addControlPoint.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/add-controlpoint.png"))); + final SetCurrentCommandAction addControlPoint = new SetCurrentOneShotCommandAction(new BrdAddControlPointCommand()); + addControlPoint.putValue(Action.NAME, LanguageResource.getString("ADDCONTROLPOINTBUTTON_STR")); + addControlPoint.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("ADDCONTROLPOINTBUTTON_STR")); + addControlPoint.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/add-controlpoint.png"))); mToolBar.add(addControlPoint); popupMenu.add(addControlPoint); final SetCurrentCommandAction deleteControlPoint = new SetCurrentCommandAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; + + @Override public void actionPerformed(ActionEvent event) { BoardEdit edit = getSelectedEdit(); - if(edit == null) + if (edit == null) return; - ArrayList selectedControlPoints = edit - .getSelectedControlPoints(); + ArrayList selectedControlPoints = edit.getSelectedControlPoints(); if (selectedControlPoints.size() == 0) { - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), LanguageResource.getString("NOCONTROLPOINTSELECTEDMSG_STR"), - LanguageResource.getString("NOCONTROLPOINTSELECTEDTITLE_STR"), JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), LanguageResource.getString("NOCONTROLPOINTSELECTEDMSG_STR"), LanguageResource.getString("NOCONTROLPOINTSELECTEDTITLE_STR"), JOptionPane.WARNING_MESSAGE); return; } - int selection = JOptionPane.showConfirmDialog( - BoardCAD.getInstance().getFrame(), - LanguageResource.getString("DELETECONTROLPOINTSMSG_STR"), - LanguageResource.getString("DELETECONTROLPOINTSTITLE_STR"), JOptionPane.WARNING_MESSAGE, - JOptionPane.YES_NO_OPTION); + int selection = JOptionPane.showConfirmDialog(BoardCAD.getInstance().getFrame(), LanguageResource.getString("DELETECONTROLPOINTSMSG_STR"), LanguageResource.getString("DELETECONTROLPOINTSTITLE_STR"), JOptionPane.WARNING_MESSAGE, JOptionPane.YES_NO_OPTION); if (selection == JOptionPane.NO_OPTION) { @@ -5431,22 +5929,17 @@ public void actionPerformed(ActionEvent event) { BrdMacroCommand macroCmd = new BrdMacroCommand(); macroCmd.setSource(edit); - BezierSpline[] splines = edit.getActiveBezierSplines(edit - .getCurrentBrd()); + BezierSpline[] splines = edit.getActiveBezierSplines(edit.getCurrentBrd()); - for(int j=0; j < splines.length; j++) - { + for (int j = 0; j < splines.length; j++) { for (int i = 0; i < selectedControlPoints.size(); i++) { BezierKnot ControlPoint = selectedControlPoints.get(i); - if (ControlPoint == splines[j].getControlPoint(0) - || ControlPoint == splines[j].getControlPoint(splines[j] - .getNrOfControlPoints() - 1)) { + if (ControlPoint == splines[j].getControlPoint(0) || ControlPoint == splines[j].getControlPoint(splines[j].getNrOfControlPoints() - 1)) { continue; } - BrdDeleteControlPointCommand deleteControlPointCommand = new BrdDeleteControlPointCommand( - edit, ControlPoint, splines[j]); + BrdDeleteControlPointCommand deleteControlPointCommand = new BrdDeleteControlPointCommand(edit, ControlPoint, splines[j]); macroCmd.add(deleteControlPointCommand); @@ -5459,95 +5952,112 @@ public void actionPerformed(ActionEvent event) { } }; - deleteControlPoint.putValue(AbstractAction.NAME, LanguageResource.getString("DELETECONTROLPOINTSBUTTON_STR")); - deleteControlPoint.putValue(AbstractAction.SHORT_DESCRIPTION, LanguageResource.getString("DELETECONTROLPOINTSBUTTON_STR")); - deleteControlPoint.putValue(AbstractAction.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/remove-controlpoint.png"))); + deleteControlPoint.putValue(Action.NAME, LanguageResource.getString("DELETECONTROLPOINTSBUTTON_STR")); + deleteControlPoint.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("DELETECONTROLPOINTSBUTTON_STR")); + deleteControlPoint.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("../../icons/remove-controlpoint.png"))); mToolBar.add(deleteControlPoint); popupMenu.add(deleteControlPoint); - mToolBar.addSeparator(); -/* - final JRadioButton millimeterButton = new JRadioButton(LanguageResource.getString("MILLIMETERSRADIOBUTTON_STR")); - millimeterButton.addActionListener(new ActionListener() { - public void actionPerformed(final ActionEvent e) { - setCurrentUnit(UnitUtils.MILLIMETERS); - } - }); - final JRadioButton imperialButton = new JRadioButton(LanguageResource.getString("FEETINCHESRADIOBUTTON_STR")); - imperialButton.setSelected(true); - imperialButton.addActionListener(new ActionListener() { - public void actionPerformed(final ActionEvent e) { - setCurrentUnit(UnitUtils.INCHES); - } - }); - final JRadioButton imperialDecimalButton = new JRadioButton(LanguageResource.getString("DECIMALFEETINCHESRADIOBUTTON_STR")); - imperialDecimalButton.addActionListener(new ActionListener() { - public void actionPerformed(final ActionEvent e) { - setCurrentUnit(UnitUtils.INCHES_DECIMAL); - } - }); - final JRadioButton centimeterButton = new JRadioButton(LanguageResource.getString("CENTIMETERSRADIOBUTTON_STR")); - centimeterButton.addActionListener(new ActionListener() { - public void actionPerformed(final ActionEvent e) { - setCurrentUnit(UnitUtils.CENTIMETERS); - } - }); + popupMenu.addSeparator(); + final SetCurrentCommandAction fitCurveCmd = new SetCurrentCommandAction() { + static final long serialVersionUID = 1L; + + @Override + public void actionPerformed(ActionEvent event) { + + BoardEdit edit = getSelectedEdit(); + if (edit == null) + return; + + BrdFitCurveCommand cmd = new BrdFitCurveCommand(); + cmd.execute(); + }; + + }; + fitCurveCmd.putValue(Action.NAME, LanguageResource.getString("FITCONTROLPOINTS_STR")); + fitCurveCmd.putValue(Action.SHORT_DESCRIPTION, LanguageResource.getString("FITCONTROLPOINTS_STR")); + // addControlPoint.putValue(AbstractAction.SMALL_ICON, new ImageIcon( + // getClass().getResource("../../icons/add-controlpoint.png"))); + // mToolBar.add(fitCurveCmd); + popupMenu.add(fitCurveCmd); - final ButtonGroup unitButtonGroup = new ButtonGroup(); - unitButtonGroup.add(imperialButton); - unitButtonGroup.add(millimeterButton); - unitButtonGroup.add(centimeterButton); - unitButtonGroup.add(imperialDecimalButton); - mToolBar.add(imperialButton); - //mToolBar.addSeparator(); - mToolBar.add(millimeterButton); - //mToolBar.addSeparator(); - mToolBar.add(centimeterButton); - //mToolBar.addSeparator(); - mToolBar.add(imperialDecimalButton); -*/ + popupMenu.addSeparator(); + + mToolBar.addSeparator(); + /* + * final JRadioButton millimeterButton = new + * JRadioButton(LanguageResource + * .getString("MILLIMETERSRADIOBUTTON_STR")); + * millimeterButton.addActionListener(new ActionListener() { public void + * actionPerformed(final ActionEvent e) { + * setCurrentUnit(UnitUtils.MILLIMETERS); } }); final JRadioButton + * imperialButton = new + * JRadioButton(LanguageResource.getString("FEETINCHESRADIOBUTTON_STR" + * )); imperialButton.setSelected(true); + * imperialButton.addActionListener(new ActionListener() { public void + * actionPerformed(final ActionEvent e) { + * setCurrentUnit(UnitUtils.INCHES); } }); final JRadioButton + * imperialDecimalButton = new JRadioButton(LanguageResource.getString( + * "DECIMALFEETINCHESRADIOBUTTON_STR")); + * imperialDecimalButton.addActionListener(new ActionListener() { public + * void actionPerformed(final ActionEvent e) { + * setCurrentUnit(UnitUtils.INCHES_DECIMAL); } }); final JRadioButton + * centimeterButton = new + * JRadioButton(LanguageResource.getString("CENTIMETERSRADIOBUTTON_STR" + * )); centimeterButton.addActionListener(new ActionListener() { public + * void actionPerformed(final ActionEvent e) { + * setCurrentUnit(UnitUtils.CENTIMETERS); } }); + * + * final ButtonGroup unitButtonGroup = new ButtonGroup(); + * unitButtonGroup.add(imperialButton); + * unitButtonGroup.add(millimeterButton); + * unitButtonGroup.add(centimeterButton); + * unitButtonGroup.add(imperialDecimalButton); + * mToolBar.add(imperialButton); //mToolBar.addSeparator(); + * mToolBar.add(millimeterButton); //mToolBar.addSeparator(); + * mToolBar.add(centimeterButton); //mToolBar.addSeparator(); + * mToolBar.add(imperialDecimalButton); + */ JLabel unitLabel = new JLabel(LanguageResource.getString("UNIT_STR")); + unitLabel.setForeground(getTextColor()); mToolBar.add(unitLabel); - - String[] unitsStrList = new String[]{LanguageResource.getString("FEETINCHESRADIOBUTTON_STR"), - LanguageResource.getString("DECIMALFEETINCHESRADIOBUTTON_STR"), - LanguageResource.getString("MILLIMETERSRADIOBUTTON_STR"), - LanguageResource.getString("CENTIMETERSRADIOBUTTON_STR"), - LanguageResource.getString("METERSRADIOBUTTON_STR") - }; + + String[] unitsStrList = new String[] { LanguageResource.getString("FEETINCHESRADIOBUTTON_STR"), LanguageResource.getString("DECIMALFEETINCHESRADIOBUTTON_STR"), LanguageResource.getString("MILLIMETERSRADIOBUTTON_STR"), LanguageResource.getString("CENTIMETERSRADIOBUTTON_STR"), + LanguageResource.getString("METERSRADIOBUTTON_STR") }; JComboBox unitComboBox = new JComboBox(unitsStrList); + unitComboBox.setForeground(getTextColor()); unitComboBox.setEditable(false); unitComboBox.addActionListener(new ActionListener() { + @Override public void actionPerformed(final ActionEvent e) { - JComboBox cb = (JComboBox)e.getSource(); - switch(cb.getSelectedIndex()) - { - default: - case 0: - setCurrentUnit(UnitUtils.INCHES); - break; - case 1: - setCurrentUnit(UnitUtils.INCHES_DECIMAL); - break; - case 2: - setCurrentUnit(UnitUtils.MILLIMETERS); - break; - case 3: - setCurrentUnit(UnitUtils.CENTIMETERS); - break; - case 4: - setCurrentUnit(UnitUtils.METERS); - break; - } + JComboBox cb = (JComboBox) e.getSource(); + unitComboBox.setForeground(getTextColor()); + switch (cb.getSelectedIndex()) { + default: + case 0: + setCurrentUnit(UnitUtils.INCHES); + break; + case 1: + setCurrentUnit(UnitUtils.INCHES_DECIMAL); + break; + case 2: + setCurrentUnit(UnitUtils.MILLIMETERS); + break; + case 3: + setCurrentUnit(UnitUtils.CENTIMETERS); + break; + case 4: + setCurrentUnit(UnitUtils.METERS); + break; + } } }); - mToolBar.addSeparator(new Dimension(5,0)); + mToolBar.addSeparator(new Dimension(5, 0)); mToolBar.add(unitComboBox); unitComboBox.setMaximumSize(new Dimension(140, 30)); mFrame.getContentPane().add(mToolBar, BorderLayout.NORTH); - final JMenu crossSectionsForPopupMenu = new JMenu(LanguageResource.getString("CROSSECTIONSMENU_STR")); crossSectionsForPopupMenu.add(mNextCrossSection); crossSectionsForPopupMenu.add(mPreviousCrossSection); @@ -5558,57 +6068,53 @@ public void actionPerformed(final ActionEvent e) { crossSectionsForPopupMenu.add(pasteCrossSection); popupMenu.add(crossSectionsForPopupMenu); - - - mTabbedPane = new JTabbedPane(); - - fourView=new QuadView(); - view1 = new BoardEdit() - { - static final long serialVersionUID=1L; + fourView = new QuadView(); + + view1 = new BoardEdit() { + static final long serialVersionUID = 1L; { setPreferredSize(new Dimension(300, 200)); mDrawControl = BezierBoardDrawUtil.MirrorY; } + @Override public BezierSpline[] getActiveBezierSplines(final BezierBoard brd) { - return new BezierSpline[]{brd.getOutline()}; + return new BezierSpline[] { brd.getOutline() }; } + @Override public ArrayList getGuidePoints() { - return BoardCAD.getInstance().getCurrentBrd() - .getOutlineGuidePoints(); + return BoardCAD.getInstance().getCurrentBrd().getOutlineGuidePoints(); } - public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, - final BezierBoard brd, boolean fill) { + @Override + public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd, boolean fill) { super.drawPart(g, color, stroke, brd, fill); - if(isPaintingCenterLine()) - { - drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength()/2.0, brd.getCenterWidth()*1.1); + if (isPaintingCenterLine()) { + drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength() / 2.0, brd.getCenterWidth() * 1.1); } - if(isPaintingCrossectionsPositions()) - drawOutlineCrossections(this,g,color,stroke,brd); - if(isPaintingFlowlines()) - drawOutlineFlowlines(this,g,getFlowLinesColor(),stroke,brd); - if(isPaintingTuckUnderLine()) - drawOutlineTuckUnderLine(this,g,getTuckUnderLineColor(),stroke,brd); - if(isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) - drawOutlineFootMarks(this,g,new BasicStroke(2.0f/(float)this.mScale),brd); - drawStringer(g, getStringerColor(), - stroke, brd); + if (isPaintingCrossectionsPositions()) + drawOutlineCrossections(this, g, color, stroke, brd); + if (isPaintingFlowlines()) + drawOutlineFlowlines(this, g, getFlowLinesColor(), stroke, brd); + if (isPaintingTuckUnderLine()) + drawOutlineTuckUnderLine(this, g, getTuckUnderLineColor(), stroke, brd); + if (isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) + drawOutlineFootMarks(this, g, new BasicStroke(2.0f / (float) this.mScale), brd); + drawStringer(g, getStringerColor(), stroke, brd); if (isPaintingFins()) { drawFins(g, getFinsColor(), stroke, brd); } } - public void drawSlidingInfo(final Graphics2D g, final Color color, - final Stroke stroke, final BezierBoard brd) { + @Override + public void drawSlidingInfo(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { drawOutlineSlidingInfo(this, g, color, stroke, brd); } + @Override public void onBrdChanged() { getCurrentBrd().onOutlineChanged(); @@ -5616,28 +6122,25 @@ public void onBrdChanged() { view2.repaint(); } + @Override public void mousePressed(final MouseEvent e) { super.mousePressed(e); - if(mSelectedControlPoints.size() == 0) - { + if (mSelectedControlPoints.size() == 0) { final Point pos = e.getPoint(); final Point2D.Double brdPos = screenCoordinateToBrdCoordinate(pos); final int index = getCurrentBrd().getNearestCrossSectionIndex(brdPos.x); double tolerance = 5.0; - if (index != -1 && Math.abs(getCurrentBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) - { + if (index != -1 && Math.abs(getCurrentBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) { getCurrentBrd().setCurrentCrossSection(index); } - if(getOriginalBrd() != null) - { + if (getOriginalBrd() != null) { final int indexOriginal = getOriginalBrd().getNearestCrossSectionIndex(brdPos.x); if (indexOriginal != -1 && Math.abs(getOriginalBrd().getCrossSections().get(indexOriginal).getPosition() - brdPos.x) < tolerance) { getOriginalBrd().setCurrentCrossSection(indexOriginal); } } - if(getGhostBrd() != null) - { + if (getGhostBrd() != null) { final int indexGhost = getGhostBrd().getNearestCrossSectionIndex(brdPos.x); if (indexGhost != -1 && Math.abs(getGhostBrd().getCrossSections().get(indexGhost).getPosition() - brdPos.x) < tolerance) { getGhostBrd().setCurrentCrossSection(indexGhost); @@ -5648,6 +6151,7 @@ public void mousePressed(final MouseEvent e) { } + @Override public void mouseMoved(final MouseEvent e) { super.mouseMoved(e); @@ -5657,43 +6161,44 @@ public void mouseMoved(final MouseEvent e) { }; view1.add(popupMenu); - view2 = new BoardEdit() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { + mIsCrossSectionEdit = true; setPreferredSize(new Dimension(300, 200)); mDrawControl = BezierBoardDrawUtil.MirrorX | BezierBoardDrawUtil.FlipY; mCurvatureScale = 25; } + @Override public BezierSpline[] getActiveBezierSplines(final BezierBoard brd) { final BezierBoardCrossSection currentCrossSection = brd.getCurrentCrossSection(); if (currentCrossSection == null) return null; - return new BezierSpline[]{brd.getCurrentCrossSection().getBezierSpline()}; + return new BezierSpline[] { brd.getCurrentCrossSection().getBezierSpline() }; } + @Override public ArrayList getGuidePoints() { - final BezierBoardCrossSection currentCrossSection = BoardCAD.getInstance() - .getCurrentBrd().getCurrentCrossSection(); + final BezierBoardCrossSection currentCrossSection = BoardCAD.getInstance().getCurrentBrd().getCurrentCrossSection(); if (currentCrossSection == null) return null; return currentCrossSection.getGuidePoints(); } - protected boolean isPaintingVolumeDistribution() - { + @Override + protected boolean isPaintingVolumeDistribution() { return false; } - public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, - final BezierBoard brd, boolean fill) { + @Override + public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd, boolean fill) { - if(brd.isEmpty()) + if (brd.isEmpty()) return; if (isPaintingNonActiveCrossSections()) { @@ -5702,141 +6207,124 @@ public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, final BasicStroke bs = (BasicStroke) stroke; final float[] dashPattern = new float[] { 0.8f, 0.2f }; - final BasicStroke stapled = new BasicStroke((float) (bs - .getLineWidth() / 2.0), bs.getEndCap(), bs - .getLineJoin(), bs.getMiterLimit(), dashPattern, 0f); + final BasicStroke stapled = new BasicStroke((float) (bs.getLineWidth() / 2.0), bs.getEndCap(), bs.getLineJoin(), bs.getMiterLimit(), dashPattern, 0f); final Color noneActiveColor = color.brighter(); double currentCrossSectionRocker = brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition()); JavaDraw d = new JavaDraw(g); for (int i = 0; i < crossSections.size(); i++) { - if (crossSections.get(i) != brd - .getCurrentCrossSection()) { + if (crossSections.get(i) != brd.getCurrentCrossSection()) { double rockerOffset = 0; - if(BoardCAD.getInstance().isUsingOffsetInterpolation()) - { + if (BoardCAD.getInstance().isUsingOffsetInterpolation()) { rockerOffset = brd.getRockerAtPos(crossSections.get(i).getPosition()) - currentCrossSectionRocker; rockerOffset *= this.mScale; } - BezierBoardDrawUtil.paintBezierSpline(d, mOffsetX, mOffsetY-rockerOffset, - mScale, noneActiveColor, stapled, - crossSections.get(i).getBezierSpline(), - mDrawControl, fill); + BezierBoardDrawUtil.paintBezierSpline(d, mOffsetX, mOffsetY - rockerOffset, mScale, 0.0, noneActiveColor, stapled, crossSections.get(i).getBezierSpline(), mDrawControl, fill); } } } - + if (isPaintingSlidingCrossSection()) { final Color col = (isGhostMode()) ? color : Color.GRAY; - double pos = view3.hasMouse()?view3.mBrdCoord.x:view1.mBrdCoord.x; + double pos = view3.hasMouse() ? view3.mBrdCoord.x : view1.mBrdCoord.x; double rockerOffset = 0; - if(BoardCAD.getInstance().isUsingOffsetInterpolation()) - { + if (BoardCAD.getInstance().isUsingOffsetInterpolation()) { double currentCrossSectionRocker = brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition()); rockerOffset = brd.getRockerAtPos(pos) - currentCrossSectionRocker; rockerOffset *= this.mScale; } + // DEBUG System.out.printf("rockerOffset: %f\n", + // rockerOffset); -//DEBUG System.out.printf("rockerOffset: %f\n", rockerOffset); - - BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g), mOffsetX, mOffsetY-rockerOffset, - 0.0, mScale, col, stroke, - (mDrawControl & BezierBoardDrawUtil.FlipX) != 0, - (mDrawControl & BezierBoardDrawUtil.FlipY) != 0, - pos, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g), mOffsetX, mOffsetY - rockerOffset, mScale, 0.0, col, stroke, (mDrawControl & BezierBoardDrawUtil.FlipX) != 0, (mDrawControl & BezierBoardDrawUtil.FlipY) != 0, pos, brd); if (isGhostMode()) { - if(BoardCAD.getInstance().isUsingOffsetInterpolation()) - { + if (BoardCAD.getInstance().isUsingOffsetInterpolation()) { double currentCrossSectionRocker = getCurrentBrd().getRockerAtPos(getCurrentBrd().getCurrentCrossSection().getPosition()); rockerOffset = getCurrentBrd().getRockerAtPos(pos) - currentCrossSectionRocker; rockerOffset *= this.mScale; } - BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g), mOffsetX, - mOffsetY-rockerOffset, 0.0, mScale, getGhostBrdColor(), stroke, - (mDrawControl & BezierBoardDrawUtil.FlipX) != 0, - (mDrawControl & BezierBoardDrawUtil.FlipY) != 0, - pos, - getCurrentBrd()); + BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g), mOffsetX, mOffsetY - rockerOffset, mScale, 0.0, getGhostBrdColor(), stroke, (mDrawControl & BezierBoardDrawUtil.FlipX) != 0, (mDrawControl & BezierBoardDrawUtil.FlipY) != 0, pos, getCurrentBrd()); } } super.drawPart(g, color, stroke, brd, fill); - if(isPaintingCenterLine()) + if (isPaintingCenterLine()) drawCrossSectionCenterline(this, g, getCenterLineColor(), stroke, brd); - if(isPaintingTuckUnderLine()) + if (isPaintingTuckUnderLine()) drawCrossSectionTuckUnderLine(this, g, getTuckUnderLineColor(), stroke, brd); - if(isPaintingFlowlines()) + if (isPaintingFlowlines()) drawCrossSectionFlowlines(this, g, getFlowLinesColor(), stroke, brd); - if(isPaintingApexline()) + if (isPaintingApexline()) drawCrossSectionApexline(this, g, getApexLineColor(), stroke, brd); } - - public void drawBrdCoordinate(Graphics2D g) - { + + @Override + public void drawBrdCoordinate(Graphics2D g) { super.drawBrdCoordinate(g); BezierBoard brd = getCurrentBrd(); - if(brd.isEmpty()) + if (brd.isEmpty()) return; - + BezierBoardCrossSection crs = brd.getCurrentCrossSection(); - if(crs == null) + if (crs == null) return; - + g.setColor(Color.BLACK); - // get metrics from the graphics + // get metrics from the graphics FontMetrics metrics = g.getFontMetrics(mBrdCoordFont); - - // get the height of a line of text in this font and render context + + // get the height of a line of text in this font and render + // context int hgt = metrics.getHeight(); - String posStr = LanguageResource.getString("CROSSECTIONPOS_STR") + UnitUtils.convertLengthToCurrentUnit(mBoardSpec.isOverCurveSelected()?brd.getBottom().getLengthByX(crs.getPosition()):crs.getPosition(), false) + (mBoardSpec.isOverCurveSelected()?" O.C":""); + String posStr = LanguageResource.getString("CROSSECTIONPOS_STR") + UnitUtils.convertLengthToCurrentUnit(mBoardSpec.isOverCurveSelected() ? brd.getBottom().getLengthByX(crs.getPosition()) : crs.getPosition(), false) + (mBoardSpec.isOverCurveSelected() ? " O.C" : ""); - g.drawString(posStr, 10, hgt*3); + g.drawString(posStr, 10, hgt * 3); - // get the height of a line of text in this font and render context + // get the height of a line of text in this font and render + // context - String widthStr = LanguageResource.getString("CROSSECTIONWIDTH_STR") + UnitUtils.convertLengthToCurrentUnit(crs.getWidth(), false) ; + String widthStr = LanguageResource.getString("CROSSECTIONWIDTH_STR") + UnitUtils.convertLengthToCurrentUnit(crs.getWidth(), false); + + g.drawString(widthStr, 10, hgt * 4); - g.drawString(widthStr, 10, hgt*4); - final Dimension dim = getSize(); - - String releaseAngleStr = LanguageResource.getString("RELEASEANGLE_STR") + String.format("%1$.1f degrees", crs.getReleaseAngle()/MathUtils.DEG_TO_RAD); + + String releaseAngleStr = LanguageResource.getString("RELEASEANGLE_STR") + String.format("%1$.1f degrees", crs.getReleaseAngle() / MathUtils.DEG_TO_RAD); final int releaseAngleStrLength = metrics.stringWidth(releaseAngleStr); - g.drawString(releaseAngleStr, dim.width - releaseAngleStrLength - 10, hgt*1); + g.drawString(releaseAngleStr, dim.width - releaseAngleStrLength - 10, hgt * 1); - String tuckUnderRadiusStr = LanguageResource.getString("TUCKRADIUS_STR") + UnitUtils.convertLengthToCurrentUnit(crs.getTuckRadius(),false); + String tuckUnderRadiusStr = LanguageResource.getString("TUCKRADIUS_STR") + UnitUtils.convertLengthToCurrentUnit(crs.getTuckRadius(), false); final int tuckUnderRadiusStrLength = metrics.stringWidth(tuckUnderRadiusStr); - g.drawString(tuckUnderRadiusStr, dim.width - tuckUnderRadiusStrLength - 10, hgt*2); + g.drawString(tuckUnderRadiusStr, dim.width - tuckUnderRadiusStrLength - 10, hgt * 2); } - - public void drawSlidingInfo(final Graphics2D g, final Color color, - final Stroke stroke, final BezierBoard brd) { - + + @Override + public void drawSlidingInfo(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { + if (brd.getCrossSections().size() == 0) return; - this.setName("QuadViewCrossSection"); if (brd.getCurrentCrossSection() == null) @@ -5863,8 +6351,7 @@ public void drawSlidingInfo(final Graphics2D g, final Color color, final Dimension dim = getSize(); String thicknessStr = LanguageResource.getString("CROSSECTIONSLIDINGINFOTHICKNESS_STR"); - mSlidingInfoString = thicknessStr - + UnitUtils.convertLengthToCurrentUnit(thickness, false) + String.format("(%02d%%)", (int)((thickness*100)/centerThickness)); + mSlidingInfoString = thicknessStr + UnitUtils.convertLengthToCurrentUnit(thickness, false) + String.format("(%02d%%)", (int) ((thickness * 100) / centerThickness)); g.setColor(Color.BLUE); @@ -5889,87 +6376,70 @@ public void drawSlidingInfo(final Graphics2D g, final Color color, if (textX + size.width + 10 > dim.width) textX = dim.width - size.width - 10; - g.setStroke(new BasicStroke((float) (1.0 / mScale))); - g.drawString(mSlidingInfoString, textX, dim.height - - (size.height * 2 + 5)); + g.drawString(mSlidingInfoString, textX, dim.height - (size.height * 2 + 5)); + mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOBOTTOM_STR") + UnitUtils.convertLengthToCurrentUnit(bottom, false); - mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOBOTTOM_STR") - + UnitUtils.convertLengthToCurrentUnit(bottom, false); - g.setColor(Color.RED); - g.drawString(mSlidingInfoString, textX, dim.height - - size.height); + g.drawString(mSlidingInfoString, textX, dim.height - size.height); g.setColor(Color.BLACK); final double fromCenter = Math.abs(mBrdCoord.x); - final double fromRail = crs.getWidth()/2 - Math.abs(mBrdCoord.x); - - - mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOFROMRAIL_STR") - + UnitUtils.convertLengthToCurrentUnit(fromRail, false); - + final double fromRail = crs.getWidth() / 2 - Math.abs(mBrdCoord.x); - g.drawString(mSlidingInfoString, textX, dim.height - - (size.height + 2) * 4); + mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOFROMRAIL_STR") + UnitUtils.convertLengthToCurrentUnit(fromRail, false); - mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOFROMCENTER_STR") - + UnitUtils.convertLengthToCurrentUnit(fromCenter, false); + g.drawString(mSlidingInfoString, textX, dim.height - (size.height + 2) * 4); + mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOFROMCENTER_STR") + UnitUtils.convertLengthToCurrentUnit(fromCenter, false); - g.drawString(mSlidingInfoString, textX, dim.height - - (size.height + 2) * 3); + g.drawString(mSlidingInfoString, textX, dim.height - (size.height + 2) * 3); - - //sets the color of the +ve sliding info (above Y base line) + // sets the color of the +ve sliding info (above Y base line) g.setColor(Color.BLUE); + final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0); - final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), - mOffsetX, mOffsetY, mScale); - - - mSlidingInfoLine.setLine(mBrdCoord.x * mulX, bottom * mulY, - mBrdCoord.x * mulX, (bottom + thickness) * mulY); + mSlidingInfoLine.setLine(mBrdCoord.x * mulX, bottom * mulY, mBrdCoord.x * mulX, (bottom + thickness) * mulY); g.draw(mSlidingInfoLine); - //sets the color of the Bottom sliding info (-ve# when concaved +ve# when Vee) + // sets the color of the Bottom sliding info (-ve# when concaved + // +ve# when Vee) g.setColor(Color.RED); - mSlidingInfoLine.setLine(mBrdCoord.x * mulX, 0 * mulY, - mBrdCoord.x * mulX, bottom * mulY); + mSlidingInfoLine.setLine(mBrdCoord.x * mulX, 0 * mulY, mBrdCoord.x * mulX, bottom * mulY); g.draw(mSlidingInfoLine); - g.setTransform(savedTransform); } + @Override public void fitBrd() { final BezierBoard brd = getCurrentBrd(); final Dimension dim = getSize(); - double width=board_handler.get_segment_width()/10; - if (width<10) - width=10; - - if (width getGuidePoints() - { - switch(mEditDeckorBottom) - { - case DECK: - return BoardCAD.getInstance().getCurrentBrd() - .getDeckGuidePoints(); - case BOTTOM: - return BoardCAD.getInstance().getCurrentBrd() - .getBottomGuidePoints(); - case BOTH: - default: - { - ArrayList list = new ArrayList(); - list.addAll(BoardCAD.getInstance().getCurrentBrd() - .getDeckGuidePoints()); - list.addAll(BoardCAD.getInstance().getCurrentBrd() - .getBottomGuidePoints()); - return list; - } + @Override + public ArrayList getGuidePoints() { + switch (mEditDeckorBottom) { + case DECK: + return BoardCAD.getInstance().getCurrentBrd().getDeckGuidePoints(); + case BOTTOM: + return BoardCAD.getInstance().getCurrentBrd().getBottomGuidePoints(); + case BOTH: + default: { + ArrayList list = new ArrayList(); + list.addAll(BoardCAD.getInstance().getCurrentBrd().getDeckGuidePoints()); + list.addAll(BoardCAD.getInstance().getCurrentBrd().getBottomGuidePoints()); + return list; + } } } - public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, - final BezierBoard brd, boolean fill) { - + @Override + public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd, boolean fill) { + if (isPaintingBaseLine()) { - drawStringer(g, mColorSettings.getColor(BASELINECOLOR), - new BasicStroke((float) (mSizeSettings.getDouble(BASELINETHICKNESS) / mScale)), - brd); + drawStringer(g, mColorSettings.getColor(BASELINECOLOR), new BasicStroke((float) (mSizeSettings.getDouble(BASELINETHICKNESS) / mScale)), brd); } - if(isPaintingFlowlines()) - drawProfileFlowlines(this,g,getFlowLinesColor(),stroke,brd); - if(isPaintingApexline()) - drawProfileApexline(this,g,getApexLineColor(),stroke,brd); - if(isPaintingTuckUnderLine()) - drawProfileTuckUnderLine(this,g,getTuckUnderLineColor(),stroke,brd); - if(isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) - drawProfileFootMarks(this,g,new BasicStroke(2.0f/(float)this.mScale),brd); + if (isPaintingFlowlines()) + drawProfileFlowlines(this, g, getFlowLinesColor(), stroke, brd); + if (isPaintingApexline()) + drawProfileApexline(this, g, getApexLineColor(), stroke, brd); + if (isPaintingTuckUnderLine()) + drawProfileTuckUnderLine(this, g, getTuckUnderLineColor(), stroke, brd); + if (isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) + drawProfileFootMarks(this, g, new BasicStroke(2.0f / (float) this.mScale), brd); if (isPaintingBaseLine()) { - drawStringer(g, mColorSettings.getColor(BASELINECOLOR), - new BasicStroke((float) (mSizeSettings.getDouble(BASELINETHICKNESS) / mScale)), - brd); + drawStringer(g, mColorSettings.getColor(BASELINECOLOR), new BasicStroke((float) (mSizeSettings.getDouble(BASELINETHICKNESS) / mScale)), brd); } - if(isPaintingCenterLine()) - { - drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength()/2.0, brd.getThickness()*2.2); + if (isPaintingCenterLine()) { + drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength() / 2.0, brd.getThickness() * 2.2); } - BezierBoardDrawUtil.paintBezierSplines(new JavaDraw(g), mOffsetX, mOffsetY, mScale, - color, stroke, new BezierSpline[]{brd.getBottom(), brd.getDeck()}, mDrawControl, fill); + BezierBoardDrawUtil.paintBezierSplines(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0, color, stroke, new BezierSpline[] { brd.getBottom(), brd.getDeck() }, mDrawControl, fill); super.drawPart(g, color, stroke, brd, false); } - public void drawSlidingInfo(final Graphics2D g, final Color color, - final Stroke stroke, final BezierBoard brd) { + @Override + public void drawSlidingInfo(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { drawProfileSlidingInfo(this, g, color, stroke, brd); } + @Override public void onBrdChanged() { getCurrentBrd().onRockerChanged(); @@ -6096,39 +6555,36 @@ public void onBrdChanged() { view2.repaint(); } + @Override public void mousePressed(final MouseEvent e) { super.mousePressed(e); - if(mSelectedControlPoints.size() == 0) - { + if (mSelectedControlPoints.size() == 0) { final Point pos = e.getPoint(); final Point2D.Double brdPos = screenCoordinateToBrdCoordinate(pos); final int index = getCurrentBrd().getNearestCrossSectionIndex(brdPos.x); double tolerance = 5.0; - if (index != -1 && Math.abs(getCurrentBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) - { + if (index != -1 && Math.abs(getCurrentBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) { getCurrentBrd().setCurrentCrossSection(index); } - if(getOriginalBrd() != null) - { + if (getOriginalBrd() != null) { final int indexOriginal = getOriginalBrd().getNearestCrossSectionIndex(brdPos.x); if (indexOriginal != -1 && Math.abs(getOriginalBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) { getOriginalBrd().setCurrentCrossSection(indexOriginal); } } - if(getGhostBrd() != null) - { + if (getGhostBrd() != null) { final int indexOriginal = getGhostBrd().getNearestCrossSectionIndex(brdPos.x); if (indexOriginal != -1 && Math.abs(getGhostBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) { getGhostBrd().setCurrentCrossSection(indexOriginal); } } - view2.repaint(); } } + @Override public void mouseMoved(final MouseEvent e) { super.mouseMoved(e); @@ -6138,54 +6594,51 @@ public void mouseMoved(final MouseEvent e) { }; view3.add(popupMenu); - - - view4 = new BoardEdit() - { - static final long serialVersionUID=1L; + view4 = new BoardEdit() { + static final long serialVersionUID = 1L; { setPreferredSize(new Dimension(300, 200)); - //mDrawControl = BezierBoardDrawUtil.MirrorY; - mDrawControl=0; + // mDrawControl = BezierBoardDrawUtil.MirrorY; + mDrawControl = 0; } + @Override public BezierSpline[] getActiveBezierSplines(final BezierBoard brd) { - return new BezierSpline[]{brd.getOutline()}; + return new BezierSpline[] { brd.getOutline() }; } + @Override public ArrayList getGuidePoints() { - return BoardCAD.getInstance().getCurrentBrd() - .getOutlineGuidePoints(); + return BoardCAD.getInstance().getCurrentBrd().getOutlineGuidePoints(); } - public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, - final BezierBoard brd, boolean fill) { + @Override + public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd, boolean fill) { super.drawPart(g, color, stroke, brd, fill); - if(isPaintingCenterLine()) - { - drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength()/2.0, brd.getCenterWidth()*1.1); + if (isPaintingCenterLine()) { + drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength() / 2.0, brd.getCenterWidth() * 1.1); } - if(isPaintingCrossectionsPositions()) - drawOutlineCrossections(this,g,color,stroke,brd); - if(isPaintingFlowlines()) - drawOutlineFlowlines(this,g,getFlowLinesColor(),stroke,brd); - if(isPaintingTuckUnderLine()) - drawOutlineTuckUnderLine(this,g,getTuckUnderLineColor(),stroke,brd); - if(isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) - drawOutlineFootMarks(this,g,new BasicStroke(2.0f/(float)this.mScale),brd); - drawStringer(g, getStringerColor(), - stroke, brd); + if (isPaintingCrossectionsPositions()) + drawOutlineCrossections(this, g, color, stroke, brd); + if (isPaintingFlowlines()) + drawOutlineFlowlines(this, g, getFlowLinesColor(), stroke, brd); + if (isPaintingTuckUnderLine()) + drawOutlineTuckUnderLine(this, g, getTuckUnderLineColor(), stroke, brd); + if (isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) + drawOutlineFootMarks(this, g, new BasicStroke(2.0f / (float) this.mScale), brd); + drawStringer(g, getStringerColor(), stroke, brd); if (isPaintingFins()) { drawFins(g, getFinsColor(), stroke, brd); } } - public void drawSlidingInfo(final Graphics2D g, final Color color, - final Stroke stroke, final BezierBoard brd) { + @Override + public void drawSlidingInfo(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { drawOutlineSlidingInfo(this, g, color, stroke, brd); } + @Override public void onBrdChanged() { getCurrentBrd().onOutlineChanged(); @@ -6193,28 +6646,25 @@ public void onBrdChanged() { view2.repaint(); } + @Override public void mousePressed(final MouseEvent e) { super.mousePressed(e); - if(mSelectedControlPoints.size() == 0) - { + if (mSelectedControlPoints.size() == 0) { final Point pos = e.getPoint(); final Point2D.Double brdPos = screenCoordinateToBrdCoordinate(pos); final int index = getCurrentBrd().getNearestCrossSectionIndex(brdPos.x); double tolerance = 5.0; - if (index != -1 && Math.abs(getCurrentBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) - { + if (index != -1 && Math.abs(getCurrentBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) { getCurrentBrd().setCurrentCrossSection(index); } - if(getOriginalBrd() != null) - { + if (getOriginalBrd() != null) { final int indexOriginal = getOriginalBrd().getNearestCrossSectionIndex(brdPos.x); if (indexOriginal != -1 && Math.abs(getOriginalBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) { getOriginalBrd().setCurrentCrossSection(indexOriginal); } } - if(getGhostBrd() != null) - { + if (getGhostBrd() != null) { final int indexOriginal = getGhostBrd().getNearestCrossSectionIndex(brdPos.x); if (indexOriginal != -1 && Math.abs(getGhostBrd().getCrossSections().get(index).getPosition() - brdPos.x) < tolerance) { getGhostBrd().setCurrentCrossSection(indexOriginal); @@ -6225,6 +6675,7 @@ public void mousePressed(final MouseEvent e) { } + @Override public void mouseMoved(final MouseEvent e) { super.mouseMoved(e); @@ -6234,12 +6685,10 @@ public void mouseMoved(final MouseEvent e) { }; view4.add(popupMenu); - - mNurbspanel = new JPanel(); mNurbspanel.setLayout(new BorderLayout()); -// board_handler = new BoardHandler(); + // board_handler = new BoardHandler(); // window.setMenuBar(menu); // window.setBackground(Color.lightGray); @@ -6253,63 +6702,68 @@ public void mouseMoved(final MouseEvent e) { // window.add("Center", design_panel); -// mTabbedPane.addTab(LanguageResource.getString("3DMODELEDIT_STR"), mNurbspanel); + // mTabbedPane.addTab(LanguageResource.getString("3DMODELEDIT_STR"), + // mNurbspanel); // board_handler.new_board(); // design_panel.update_3d(); + design_panel3 = new DesignPanel(board_handler, status_panel); + design_panel3.view_rendered(); view1.setParentContainer(fourView); view2.setParentContainer(fourView); view3.setParentContainer(fourView); + // view4.setParentContainer(fourView); + + view1.setParentContainer(fourView); fourView.add(view1); fourView.add(view2); fourView.add(view3); - fourView.add(view4); -// fourView.add(mNurbspanel); + // fourView.add(view4); + // fourView.add(mNurbspanel); + fourView.add(design_panel3); mTabbedPane.add(LanguageResource.getString("QUADVIEW_STR"), fourView); - - mOutlineEdit = new BoardEdit() - { - static final long serialVersionUID=1L; + mOutlineEdit = new BoardEdit() { + static final long serialVersionUID = 1L; { mDrawControl = BezierBoardDrawUtil.MirrorY; } + @Override public BezierSpline[] getActiveBezierSplines(final BezierBoard brd) { - return new BezierSpline[]{brd.getOutline()}; + return new BezierSpline[] { brd.getOutline() }; } + @Override public ArrayList getGuidePoints() { - return BoardCAD.getInstance().getCurrentBrd() - .getOutlineGuidePoints(); + return BoardCAD.getInstance().getCurrentBrd().getOutlineGuidePoints(); } - public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, - final BezierBoard brd, boolean fill) { + @Override + public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd, boolean fill) { super.drawPart(g, color, stroke, brd, fill); - if(isPaintingFlowlines()) - drawOutlineFlowlines(this,g,getFlowLinesColor(),stroke,brd); - if(isPaintingTuckUnderLine()) - drawOutlineTuckUnderLine(this,g,getTuckUnderLineColor(),stroke,brd); - if(isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) - drawOutlineFootMarks(this,g,new BasicStroke(2.0f/(float)this.mScale),brd); - if(isPaintingCenterLine()) - { - drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength()/2.0, brd.getCenterWidth()*1.1); + if (isPaintingFlowlines()) + drawOutlineFlowlines(this, g, getFlowLinesColor(), stroke, brd); + if (isPaintingTuckUnderLine()) + drawOutlineTuckUnderLine(this, g, getTuckUnderLineColor(), stroke, brd); + if (isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) + drawOutlineFootMarks(this, g, new BasicStroke(2.0f / (float) this.mScale), brd); + if (isPaintingCenterLine()) { + drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength() / 2.0, brd.getCenterWidth() * 1.1); } - drawStringer(g, getStringerColor(), - stroke, brd); + drawStringer(g, getStringerColor(), stroke, brd); if (isPaintingFins()) { drawFins(g, getFinsColor(), stroke, brd); } } - public void drawSlidingInfo(final Graphics2D g, final Color color, - final Stroke stroke, final BezierBoard brd) { + @Override + public void drawSlidingInfo(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { drawOutlineSlidingInfo(this, g, color, stroke, brd); } + @Override public void onBrdChanged() { getCurrentBrd().onOutlineChanged(); @@ -6321,7 +6775,7 @@ public void onBrdChanged() { mTabbedPane.add(LanguageResource.getString("OUTLINEEDIT_STR"), mOutlineEdit); mBottomAndDeckEdit = new BoardEdit() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { setPreferredSize(new Dimension(400, 150)); @@ -6329,76 +6783,65 @@ public void onBrdChanged() { mCurvatureScale = 1000; } - public BezierSpline[] getActiveBezierSplines(final BezierBoard brd) - { - switch(mEditDeckorBottom) - { - case DECK: - return new BezierSpline[]{brd.getDeck()}; - case BOTTOM: - return new BezierSpline[]{brd.getBottom()}; - case BOTH: - default: - return new BezierSpline[]{brd.getDeck(),brd.getBottom()}; + @Override + public BezierSpline[] getActiveBezierSplines(final BezierBoard brd) { + switch (mEditDeckorBottom) { + case DECK: + return new BezierSpline[] { brd.getDeck() }; + case BOTTOM: + return new BezierSpline[] { brd.getBottom() }; + case BOTH: + default: + return new BezierSpline[] { brd.getDeck(), brd.getBottom() }; } } - public ArrayList getGuidePoints() - { - switch(mEditDeckorBottom) - { - case DECK: - return BoardCAD.getInstance().getCurrentBrd() - .getDeckGuidePoints(); - case BOTTOM: - return BoardCAD.getInstance().getCurrentBrd() - .getBottomGuidePoints(); - case BOTH: - default: - { - ArrayList list = new ArrayList(); - list.addAll(BoardCAD.getInstance().getCurrentBrd() - .getDeckGuidePoints()); - list.addAll(BoardCAD.getInstance().getCurrentBrd() - .getBottomGuidePoints()); - return list; - } + @Override + public ArrayList getGuidePoints() { + switch (mEditDeckorBottom) { + case DECK: + return BoardCAD.getInstance().getCurrentBrd().getDeckGuidePoints(); + case BOTTOM: + return BoardCAD.getInstance().getCurrentBrd().getBottomGuidePoints(); + case BOTH: + default: { + ArrayList list = new ArrayList(); + list.addAll(BoardCAD.getInstance().getCurrentBrd().getDeckGuidePoints()); + list.addAll(BoardCAD.getInstance().getCurrentBrd().getBottomGuidePoints()); + return list; + } } } - public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, - final BezierBoard brd, boolean fill) { - if(isPaintingFlowlines()) - drawProfileFlowlines(this,g,getFlowLinesColor(),stroke,brd); - if(isPaintingApexline()) - drawProfileApexline(this,g,getApexLineColor(),stroke,brd); - if(isPaintingTuckUnderLine()) - drawProfileTuckUnderLine(this,g,getTuckUnderLineColor(),stroke,brd); - if(isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) - drawProfileFootMarks(this,g,new BasicStroke(2.0f/(float)this.mScale),brd); + @Override + public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd, boolean fill) { + if (isPaintingFlowlines()) + drawProfileFlowlines(this, g, getFlowLinesColor(), stroke, brd); + if (isPaintingApexline()) + drawProfileApexline(this, g, getApexLineColor(), stroke, brd); + if (isPaintingTuckUnderLine()) + drawProfileTuckUnderLine(this, g, getTuckUnderLineColor(), stroke, brd); + if (isPaintingFootMarks() && (brd == getCurrentBrd() || (brd == getGhostBrd() && isGhostMode()) || (brd == getOriginalBrd() && isOrgFocus()))) + drawProfileFootMarks(this, g, new BasicStroke(2.0f / (float) this.mScale), brd); if (isPaintingBaseLine()) { - drawStringer(g, mColorSettings.getColor(BASELINECOLOR), - new BasicStroke((float) (mSizeSettings.getDouble(BASELINETHICKNESS) / mScale)), - brd); + drawStringer(g, mColorSettings.getColor(BASELINECOLOR), new BasicStroke((float) (mSizeSettings.getDouble(BASELINETHICKNESS) / mScale)), brd); } - if(isPaintingCenterLine()) - { - drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength()/2.0, brd.getThickness()*2.2); + if (isPaintingCenterLine()) { + drawCenterLine(g, getCenterLineColor(), stroke, brd.getLength() / 2.0, brd.getThickness() * 2.2); } - BezierBoardDrawUtil.paintBezierSplines(new JavaDraw(g), mOffsetX, mOffsetY, mScale, - color, stroke, new BezierSpline[]{brd.getBottom(), brd.getDeck()}, mDrawControl, fill); + BezierBoardDrawUtil.paintBezierSplines(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0, color, stroke, new BezierSpline[] { brd.getBottom(), brd.getDeck() }, mDrawControl, fill); - super.drawPart(g, color, stroke, brd, false); } - public void drawSlidingInfo(final Graphics2D g, final Color color, - final Stroke stroke, final BezierBoard brd) { + @Override + public void drawSlidingInfo(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { drawProfileSlidingInfo(this, g, color, stroke, brd); } + @Override public void onBrdChanged() { getCurrentBrd().onRockerChanged(); @@ -6410,50 +6853,52 @@ public void onBrdChanged() { mTabbedPane.add(LanguageResource.getString("BOTTOMANDDECKEDIT_STR"), mBottomAndDeckEdit); - - -/* mOutlineAndProfileSplitPane = new BrdEditSplitPane( - JSplitPane.VERTICAL_SPLIT, mOutlineEdit2, mBottomAndDeckEdit); - mOutlineAndProfileSplitPane.setOneTouchExpandable(true); - mOutlineAndProfileSplitPane.setResizeWeight(0.7); - - mTabbedPane.add(LanguageResource.getString("OUTLINEPROFILEEDIT_STR"), mOutlineAndProfileSplitPane); -*/ + /* + * mOutlineAndProfileSplitPane = new BrdEditSplitPane( + * JSplitPane.VERTICAL_SPLIT, mOutlineEdit2, mBottomAndDeckEdit); + * mOutlineAndProfileSplitPane.setOneTouchExpandable(true); + * mOutlineAndProfileSplitPane.setResizeWeight(0.7); + * + * mTabbedPane.add(LanguageResource.getString("OUTLINEPROFILEEDIT_STR"), + * mOutlineAndProfileSplitPane); + */ mCrossSectionEdit = new BoardEdit() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { + mIsCrossSectionEdit = true; setPreferredSize(new Dimension(400, 200)); mDrawControl = BezierBoardDrawUtil.MirrorX | BezierBoardDrawUtil.FlipY; mCurvatureScale = 25; } + @Override public BezierSpline[] getActiveBezierSplines(final BezierBoard brd) { final BezierBoardCrossSection currentCrossSection = brd.getCurrentCrossSection(); if (currentCrossSection == null) return null; - return new BezierSpline[]{brd.getCurrentCrossSection().getBezierSpline()}; + return new BezierSpline[] { brd.getCurrentCrossSection().getBezierSpline() }; } + @Override public ArrayList getGuidePoints() { - final BezierBoardCrossSection currentCrossSection = BoardCAD.getInstance() - .getCurrentBrd().getCurrentCrossSection(); + final BezierBoardCrossSection currentCrossSection = BoardCAD.getInstance().getCurrentBrd().getCurrentCrossSection(); if (currentCrossSection == null) return null; return currentCrossSection.getGuidePoints(); } - protected boolean isPaintingVolumeDistribution() - { + @Override + protected boolean isPaintingVolumeDistribution() { return false; } - public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, - final BezierBoard brd, boolean fill) { - if(brd.isEmpty()) + @Override + public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd, boolean fill) { + if (brd.isEmpty()) return; if (isPaintingNonActiveCrossSections()) { @@ -6462,131 +6907,112 @@ public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, final BasicStroke bs = (BasicStroke) stroke; final float[] dashPattern = new float[] { 0.8f, 0.2f }; - final BasicStroke stapled = new BasicStroke((float) (bs - .getLineWidth() / 2.0), bs.getEndCap(), bs - .getLineJoin(), bs.getMiterLimit(), dashPattern, 0f); + final BasicStroke stapled = new BasicStroke((float) (bs.getLineWidth() / 2.0), bs.getEndCap(), bs.getLineJoin(), bs.getMiterLimit(), dashPattern, 0f); final Color noneActiveColor = color.brighter(); double currentCrossSectionRocker = brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition()); for (int i = 0; i < crossSections.size(); i++) { - if (crossSections.get(i) != brd - .getCurrentCrossSection()) { + if (crossSections.get(i) != brd.getCurrentCrossSection()) { double rockerOffset = 0; - if(BoardCAD.getInstance().isUsingOffsetInterpolation()) - { + if (BoardCAD.getInstance().isUsingOffsetInterpolation()) { rockerOffset = brd.getRockerAtPos(crossSections.get(i).getPosition()) - currentCrossSectionRocker; rockerOffset *= this.mScale; } - BezierBoardDrawUtil.paintBezierSpline(new JavaDraw(g), mOffsetX, mOffsetY-rockerOffset, - mScale, noneActiveColor, stapled, - crossSections.get(i).getBezierSpline(), - mDrawControl, fill); + BezierBoardDrawUtil.paintBezierSpline(new JavaDraw(g), mOffsetX, mOffsetY - rockerOffset, mScale, 0.0, noneActiveColor, stapled, crossSections.get(i).getBezierSpline(), mDrawControl, fill); } } } - if (isPaintingSlidingCrossSection()) { final Color col = (isGhostMode()) ? color : Color.GRAY; - double rockerOffset = 0; - if(BoardCAD.getInstance().isUsingOffsetInterpolation()) - { + if (BoardCAD.getInstance().isUsingOffsetInterpolation()) { double currentCrossSectionRocker = brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition()); rockerOffset = brd.getRockerAtPos(mCrossSectionOutlineEdit.mBrdCoord.x) - currentCrossSectionRocker; rockerOffset *= this.mScale; } - BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g), mOffsetX, mOffsetY-rockerOffset, - 0.0, mScale, col, stroke, - (mDrawControl & BezierBoardDrawUtil.FlipX) != 0, - (mDrawControl & BezierBoardDrawUtil.FlipY) != 0, - mCrossSectionOutlineEdit.mBrdCoord.x, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g), mOffsetX, mOffsetY - rockerOffset, mScale, 0.0, col, stroke, (mDrawControl & BezierBoardDrawUtil.FlipX) != 0, (mDrawControl & BezierBoardDrawUtil.FlipY) != 0, mCrossSectionOutlineEdit.mBrdCoord.x, brd); if (isGhostMode()) { - if(BoardCAD.getInstance().isUsingOffsetInterpolation()) - { + if (BoardCAD.getInstance().isUsingOffsetInterpolation()) { double currentCrossSectionRocker = getCurrentBrd().getRockerAtPos(getCurrentBrd().getCurrentCrossSection().getPosition()); rockerOffset = getCurrentBrd().getRockerAtPos(mCrossSectionOutlineEdit.mBrdCoord.x) - currentCrossSectionRocker; rockerOffset *= this.mScale; } - BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g), mOffsetX, - mOffsetY-rockerOffset, 0.0, mScale, getGhostBrdColor(), stroke, - (mDrawControl & BezierBoardDrawUtil.FlipX) != 0, - (mDrawControl & BezierBoardDrawUtil.FlipY) != 0, - mCrossSectionOutlineEdit.mBrdCoord.x, + BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g), mOffsetX, mOffsetY - rockerOffset, 0.0, mScale, getGhostBrdColor(), stroke, (mDrawControl & BezierBoardDrawUtil.FlipX) != 0, (mDrawControl & BezierBoardDrawUtil.FlipY) != 0, mCrossSectionOutlineEdit.mBrdCoord.x, getCurrentBrd()); } } super.drawPart(g, color, stroke, brd, fill); - - if(isPaintingTuckUnderLine()) + if (isPaintingTuckUnderLine()) drawCrossSectionTuckUnderLine(this, g, getTuckUnderLineColor(), stroke, brd); - if(isPaintingApexline()) + if (isPaintingApexline()) drawCrossSectionApexline(this, g, getApexLineColor(), stroke, brd); - if(isPaintingFlowlines()) + if (isPaintingFlowlines()) drawCrossSectionFlowlines(this, g, getFlowLinesColor(), stroke, brd); } - public void drawBrdCoordinate(Graphics2D g) - { + @Override + public void drawBrdCoordinate(Graphics2D g) { super.drawBrdCoordinate(g); BezierBoard brd = getCurrentBrd(); - if(brd.isEmpty()) + if (brd.isEmpty()) return; - + BezierBoardCrossSection crs = brd.getCurrentCrossSection(); - if(crs == null) + if (crs == null) return; - + g.setColor(Color.BLACK); - // get metrics from the graphics + // get metrics from the graphics FontMetrics metrics = g.getFontMetrics(mBrdCoordFont); - - // get the height of a line of text in this font and render context + + // get the height of a line of text in this font and render + // context int hgt = metrics.getHeight(); - String posStr = LanguageResource.getString("CROSSECTIONPOS_STR") + UnitUtils.convertLengthToCurrentUnit(mBoardSpec.isOverCurveSelected()?brd.getBottom().getLengthByX(crs.getPosition()):crs.getPosition(), false) + (mBoardSpec.isOverCurveSelected()?" O.C":""); + String posStr = LanguageResource.getString("CROSSECTIONPOS_STR") + UnitUtils.convertLengthToCurrentUnit(mBoardSpec.isOverCurveSelected() ? brd.getBottom().getLengthByX(crs.getPosition()) : crs.getPosition(), false) + (mBoardSpec.isOverCurveSelected() ? " O.C" : ""); + + g.drawString(posStr, 10, hgt * 3); - g.drawString(posStr, 10, hgt*3); + // get the height of a line of text in this font and render + // context - // get the height of a line of text in this font and render context + String widthStr = LanguageResource.getString("CROSSECTIONWIDTH_STR") + UnitUtils.convertLengthToCurrentUnit(crs.getWidth(), false); - String widthStr = LanguageResource.getString("CROSSECTIONWIDTH_STR") + UnitUtils.convertLengthToCurrentUnit(crs.getWidth(), false) ; + g.drawString(widthStr, 10, hgt * 4); - g.drawString(widthStr, 10, hgt*4); - final Dimension dim = getSize(); - - String releaseAngleStr = LanguageResource.getString("RELEASEANGLE_STR") + String.format("%1$.1f degrees", crs.getReleaseAngle()/MathUtils.DEG_TO_RAD); + + String releaseAngleStr = LanguageResource.getString("RELEASEANGLE_STR") + String.format("%1$.1f degrees", crs.getReleaseAngle() / MathUtils.DEG_TO_RAD); final int releaseAngleStrLength = metrics.stringWidth(releaseAngleStr); - g.drawString(releaseAngleStr, dim.width - releaseAngleStrLength - 10, hgt*1); + g.drawString(releaseAngleStr, dim.width - releaseAngleStrLength - 10, hgt * 1); - String tuckUnderRadiusStr = LanguageResource.getString("TUCKRADIUS_STR") + UnitUtils.convertLengthToCurrentUnit(crs.getTuckRadius(),false); + String tuckUnderRadiusStr = LanguageResource.getString("TUCKRADIUS_STR") + UnitUtils.convertLengthToCurrentUnit(crs.getTuckRadius(), false); final int tuckUnderRadiusStrLength = metrics.stringWidth(tuckUnderRadiusStr); - g.drawString(tuckUnderRadiusStr, dim.width - tuckUnderRadiusStrLength - 10, hgt*2); + g.drawString(tuckUnderRadiusStr, dim.width - tuckUnderRadiusStrLength - 10, hgt * 2); } - public void drawSlidingInfo(final Graphics2D g, final Color color, - final Stroke stroke, final BezierBoard brd) { + @Override + public void drawSlidingInfo(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { if (brd.getCrossSections().size() == 0) return; - if (brd.getCurrentCrossSection() == null) return; @@ -6611,12 +7037,10 @@ public void drawSlidingInfo(final Graphics2D g, final Color color, final Dimension dim = getSize(); String thicknessStr = LanguageResource.getString("CROSSECTIONSLIDINGINFOTHICKNESS_STR"); - mSlidingInfoString = thicknessStr - + UnitUtils.convertLengthToCurrentUnit(thickness, false) + String.format("(%02d%%)", (int)((thickness*100)/centerThickness)); + mSlidingInfoString = thicknessStr + UnitUtils.convertLengthToCurrentUnit(thickness, false) + String.format("(%02d%%)", (int) ((thickness * 100) / centerThickness)); g.setColor(Color.BLUE); - // get the advance of my text in this font and render context final int adv = metrics.stringWidth(mSlidingInfoString); @@ -6638,91 +7062,76 @@ public void drawSlidingInfo(final Graphics2D g, final Color color, if (textX + size.width + 10 > dim.width) textX = dim.width - size.width - 10; - g.setStroke(new BasicStroke((float) (1.0 / mScale))); - g.drawString(mSlidingInfoString, textX, dim.height - - (size.height * 2 + 5)); - + g.drawString(mSlidingInfoString, textX, dim.height - (size.height * 2 + 5)); - mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOBOTTOM_STR") - + UnitUtils.convertLengthToCurrentUnit(bottom, false); + mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOBOTTOM_STR") + UnitUtils.convertLengthToCurrentUnit(bottom, false); g.setColor(Color.RED); - g.drawString(mSlidingInfoString, textX, dim.height - - size.height); + g.drawString(mSlidingInfoString, textX, dim.height - size.height); g.setColor(Color.BLACK); final double fromCenter = Math.abs(mBrdCoord.x); - final double fromRail = crs.getWidth()/2.0 - Math.abs(mBrdCoord.x); - - - mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOFROMRAIL_STR") - + UnitUtils.convertLengthToCurrentUnit(fromRail, false); + final double fromRail = crs.getWidth() / 2.0 - Math.abs(mBrdCoord.x); + mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOFROMRAIL_STR") + UnitUtils.convertLengthToCurrentUnit(fromRail, false); - g.drawString(mSlidingInfoString, textX, dim.height - - (size.height + 2) * 4); + g.drawString(mSlidingInfoString, textX, dim.height - (size.height + 2) * 4); - mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOFROMCENTER_STR") - + UnitUtils.convertLengthToCurrentUnit(fromCenter, false); + mSlidingInfoString = LanguageResource.getString("CROSSECTIONSLIDINGINFOFROMCENTER_STR") + UnitUtils.convertLengthToCurrentUnit(fromCenter, false); + g.drawString(mSlidingInfoString, textX, dim.height - (size.height + 2) * 3); - g.drawString(mSlidingInfoString, textX, dim.height - - (size.height + 2) * 3); - - //sets the color of the +ve sliding info (above Y base line) + // sets the color of the +ve sliding info (above Y base line) g.setColor(Color.BLUE); + final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0); - final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), - mOffsetX, mOffsetY, mScale); - - - mSlidingInfoLine.setLine(mBrdCoord.x * mulX, bottom * mulY, - mBrdCoord.x * mulX, (bottom + thickness) * mulY); + mSlidingInfoLine.setLine(mBrdCoord.x * mulX, bottom * mulY, mBrdCoord.x * mulX, (bottom + thickness) * mulY); g.draw(mSlidingInfoLine); - //sets the color of the Bottom sliding info (-ve# when concaved +ve# when Vee) + // sets the color of the Bottom sliding info (-ve# when concaved + // +ve# when Vee) g.setColor(Color.RED); - mSlidingInfoLine.setLine(mBrdCoord.x * mulX, 0 * mulY, - mBrdCoord.x * mulX, bottom * mulY); + mSlidingInfoLine.setLine(mBrdCoord.x * mulX, 0 * mulY, mBrdCoord.x * mulX, bottom * mulY); g.draw(mSlidingInfoLine); - g.setTransform(savedTransform); } + @Override public void fitBrd() { final BezierBoard brd = getCurrentBrd(); final Dimension dim = getSize(); - double width=board_handler.get_segment_width()/10; - if (width<10) - width=10; - - if (width ghostCrossSections = ghost.getCrossSections(); for (int i = 1; i < ghostCrossSections.size() - 1; i++) { final double pos = ghostCrossSections.get(i).getPosition(); @@ -6914,15 +7286,13 @@ public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, } else { g.setColor(color); } - line.setLine(pos * mulX, (-width / 2) * mulY, pos * mulX, - (width / 2) * mulY); + line.setLine(pos * mulX, (-width / 2) * mulY, pos * mulX, (width / 2) * mulY); g.draw(line); } } - if(BoardCAD.getInstance().isOrgFocus() && org != null && !org.isEmpty()) - { + if (BoardCAD.getInstance().isOrgFocus() && org != null && !org.isEmpty()) { final ArrayList orgCrossSections = org.getCrossSections(); for (int i = 1; i < orgCrossSections.size() - 1; i++) { final double pos = orgCrossSections.get(i).getPosition(); @@ -6933,8 +7303,7 @@ public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, } else { g.setColor(color); } - line.setLine(pos * mulX, (-width / 2) * mulY, pos * mulX, - (width / 2) * mulY); + line.setLine(pos * mulX, (-width / 2) * mulY, pos * mulX, (width / 2) * mulY); g.draw(line); } @@ -6944,28 +7313,26 @@ public void drawPart(final Graphics2D g, final Color color, final Stroke stroke, } - public void drawSlidingInfo(final Graphics2D g, final Color color, - final Stroke stroke, final BezierBoard brd) { + @Override + public void drawSlidingInfo(final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { drawOutlineSlidingInfo(this, g, color, stroke, brd); } + @Override public void mousePressed(final MouseEvent e) { final Point pos = e.getPoint(); final Point2D.Double brdPos = screenCoordinateToBrdCoordinate(pos); final int index = getCurrentBrd().getNearestCrossSectionIndex(brdPos.x); - if (index != -1) - { + if (index != -1) { getCurrentBrd().setCurrentCrossSection(index); } - if(getOriginalBrd() != null) - { + if (getOriginalBrd() != null) { final int indexOriginal = getOriginalBrd().getNearestCrossSectionIndex(brdPos.x); if (indexOriginal != -1) { getOriginalBrd().setCurrentCrossSection(indexOriginal); } } - if(getGhostBrd() != null) - { + if (getGhostBrd() != null) { final int indexOriginal = getGhostBrd().getNearestCrossSectionIndex(brdPos.x); if (indexOriginal != -1) { getGhostBrd().setCurrentCrossSection(indexOriginal); @@ -6975,6 +7342,7 @@ public void mousePressed(final MouseEvent e) { } + @Override public void mouseMoved(final MouseEvent e) { super.mouseMoved(e); @@ -6983,14 +7351,12 @@ public void mouseMoved(final MouseEvent e) { }; - mCrossSectionSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, - mCrossSectionEdit, mCrossSectionOutlineEdit); + mCrossSectionSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, mCrossSectionEdit, mCrossSectionOutlineEdit); mCrossSectionSplitPane.setOneTouchExpandable(true); mCrossSectionSplitPane.setResizeWeight(0.7); mTabbedPane.add(LanguageResource.getString("CROSSECTIONEDIT_STR"), mCrossSectionSplitPane); - mRenderedpanel = new JPanel(); mRenderedpanel.setLayout(new BorderLayout()); @@ -7006,135 +7372,88 @@ public void mouseMoved(final MouseEvent e) { // board_handler.new_board(); // design_panel.update_3d(); - //DEBUG! - - mJOGLpanel = new JPanel(); - mJOGLpanel.setLayout(new BorderLayout()); - joglpanel = new JOGLPanel(board_handler); - mJOGLpanel.add(joglpanel, BorderLayout.CENTER); - mJOGLpanel.add(status_panel, BorderLayout.SOUTH); -// mTabbedPane.addTab("JOGL view", mJOGLpanel); - joglpanel.redraw(); - - - -// mTabbedPane.add("PrintBrd",mPrintBrd); //Only for debugging -// mTabbedPane.add("PrintSpecSheet",mPrintSpecSheet); //Only for debugging -// mTabbedPane.add("PrintChamberedWood",mPrintChamberedWoodTemplate); //Only for debugging -// mTabbedPane.add("PrintSandwich",mPrintSandwichTemplates); //Only for debugging -// mTabbedPane.add("PrintHWS",mPrintHollowWoodTemplates); //Only for debugging + // DEBUG! + mTabbedPane.add("PrintBrd", mPrintBrd); // Only for debugging + mTabbedPane.add("PrintSpecSheet", mPrintSpecSheet); // Only for + // debugging + mTabbedPane.add("PrintChamberedWood", mPrintChamberedWoodTemplate); // Only + // for + // debugging + mTabbedPane.add("PrintSandwich", mPrintSandwichTemplates); // Only for + // debugging + mTabbedPane.add("PrintHWS", mPrintHollowWoodTemplates); // Only for + // debugging mTabbedPane.addChangeListener(new ChangeListener() { - boolean setModel = false; - public void stateChanged(final ChangeEvent e) - { + + @Override + public void stateChanged(final ChangeEvent e) { mGuidePointsDialog.update(); - if (mTabbedPane.getSelectedComponent() == mRenderedpanel) - { - if(!setModel) - { - BranchGroup root = new BranchGroup(); - mBezier3DOnSwitch = new Switch(); - mBezier3DOnSwitch.setCapability(Switch.ALLOW_SWITCH_READ); - mBezier3DOnSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); - boolean selected = mShowBezier3DModelMenuItem.getModel().isSelected(); - mBezier3DOnSwitch.setWhichChild(selected?Switch.CHILD_ALL:Switch.CHILD_NONE); - root.addChild(mBezier3DOnSwitch); - mScale = new TransformGroup(); - mScale.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); - mBezier3DOnSwitch.addChild(mScale); - mBezier3DModel = new Shape3D(); - mBezier3DModel.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); - mBezier3DModel.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); - // Create an Appearance. - Appearance a = new Appearance(); - Color3f ambient = new Color3f(0.4f, 0.4f, 0.45f); - Color3f emissive = new Color3f(0.0f, 0.0f, 0.0f); - Color3f diffuse = new Color3f(0.8f, 0.8f, 0.8f); - Color3f specular = new Color3f(1.0f, 1.0f, 1.0f); - - // Set up the material properties - a.setMaterial(new Material(ambient, emissive, diffuse, specular, 115.0f)); - mBezier3DModel.setAppearance(a); - mScale.addChild(mBezier3DModel); - - design_panel2.addModel(root); - - setModel = true; - } + if (mTabbedPane.getSelectedComponent() == mRenderedpanel || mTabbedPane.getSelectedComponent() == fourView) { boolean selected = mShowBezier3DModelMenuItem.getModel().isSelected(); - if(selected && mBoardChangedFor3D) - { + if (selected) { updateBezier3DModel(); - } + } -// design_panel2.update_3d(); + // design_panel2.update_3d(); design_panel2.fit_all(); design_panel2.redraw(); + design_panel3.redraw(); } -/* - if (mTabbedPane.getSelectedComponent() == mNurbspanel) { - if (mNeverApproximateNurbs == true) - return; - - if (mAlwaysApproximateNurbs == false) { - - final Object[] options = { "Always", "Yes", "No", "Never" }; - final int n = JOptionPane.showOptionDialog(mFrame, - "Approximate Nurbs/3D from beziers?", - "Nurbs/3D", JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE, null, options, - options[1]); - - switch (n) { - case 0: - mAlwaysApproximateNurbs = true; - break; - case 1: - break; - case 3: - mNeverApproximateNurbs = true; - case 2: - return; // break out - - } - } - board_handler.approximate_bezier(getCurrentBrd(), false); - design_panel.update_3d(); - // design_panel.fit_all(); - design_panel.redraw(); - - } -*/ + /* + * if (mTabbedPane.getSelectedComponent() == mNurbspanel) { if + * (mNeverApproximateNurbs == true) return; + * + * if (mAlwaysApproximateNurbs == false) { + * + * final Object[] options = { "Always", "Yes", "No", "Never" }; + * final int n = JOptionPane.showOptionDialog(mFrame, + * "Approximate Nurbs/3D from beziers?", "Nurbs/3D", + * JOptionPane.YES_NO_CANCEL_OPTION, + * JOptionPane.QUESTION_MESSAGE, null, options, options[1]); + * + * switch (n) { case 0: mAlwaysApproximateNurbs = true; break; + * case 1: break; case 3: mNeverApproximateNurbs = true; case 2: + * return; // break out + * + * } } board_handler.approximate_bezier(getCurrentBrd(), false); + * design_panel.update_3d(); // design_panel.fit_all(); + * design_panel.redraw(); + * + * } + */ } }); final JMenu pluginMenu = new JMenu(LanguageResource.getString("PLUGINSMENU_STR")); final AbstractPluginHandler pluginLoader = new AbstractPluginHandler() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; + + @Override public void onNewPluginMenu(JMenu menu) { pluginMenu.add(menu); } + @Override public void onNewPluginComponent(JComponent component) { mTabbedPane.add(component); } }; - //pluginLoader.loadPlugins("plugins"); + // pluginLoader.loadPlugins("plugins"); if (pluginMenu.getItemCount() > 0) { menuBar.add(pluginMenu); } - //mFrame.getContentPane().add(mTabbedPane, BorderLayout.CENTER); + // mFrame.getContentPane().add(mTabbedPane, BorderLayout.CENTER); getPreferences(); - mTabbedPane2 = new JTabbedPane(JTabbedPane.BOTTOM); + mTabbedPane2 = new JTabbedPane(SwingConstants.BOTTOM); - panel=new JPanel(); + panel = new JPanel(); panel.setLayout(new BorderLayout()); @@ -7146,41 +7465,37 @@ public void onNewPluginComponent(JComponent component) { mBoardSpec = new BoardSpec(); panel.add(mBoardSpec, BorderLayout.WEST); - - mTabbedPane2 = new JTabbedPane(JTabbedPane.BOTTOM); + mTabbedPane2 = new JTabbedPane(SwingConstants.BOTTOM); mTabbedPane2.addTab("Board specification", panel); -// mFrame.getContentPane().add(panel, BorderLayout.SOUTH); -// mFrame.getContentPane().add(mTabbedPane2, BorderLayout.SOUTH); - //mFrame.getContentPane().add(mTabbedPane, BorderLayout.CENTER); - mSplitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT, mTabbedPane, mTabbedPane2); + // mFrame.getContentPane().add(panel, BorderLayout.SOUTH); + // mFrame.getContentPane().add(mTabbedPane2, BorderLayout.SOUTH); + // mFrame.getContentPane().add(mTabbedPane, BorderLayout.CENTER); + mSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, mTabbedPane, mTabbedPane2); mSplitPane.setResizeWeight(1.0); mSplitPane.setOneTouchExpandable(true); mFrame.getContentPane().add(mSplitPane, BorderLayout.CENTER); - Dimension mindim=new Dimension(0,0); + Dimension mindim = new Dimension(0, 0); mTabbedPane.setMinimumSize(mindim); mTabbedPane2.setMinimumSize(mindim); - mTabbedPane.setPreferredSize(new Dimension(600,230)); - mTabbedPane2.setPreferredSize(new Dimension(600,230)); - - //load jython script - String scriptname="boardcad_init.py"; - File file=new File(scriptname); - if (file.exists()) - { + mTabbedPane.setPreferredSize(new Dimension(600, 230)); + mTabbedPane2.setPreferredSize(new Dimension(600, 230)); + + // load jython script + String scriptname = "boardcad_init.py"; + File file = new File(scriptname); + if (file.exists()) { ScriptLoader.loadScript(scriptname); - } - - KeyboardFocusManager.getCurrentKeyboardFocusManager() - .addKeyEventDispatcher(this); + } + KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(this); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int width = screenSize.width * 9 / 10; int height = screenSize.height * 9 / 10; - mFrame.setLocation((screenSize.width - width) / 2, (screenSize.height - height) / 2); + mFrame.setLocation((screenSize.width - width) / 2, (screenSize.height - height) / 2); - mFrame.setSize(width, height); + mFrame.setSize(width, height); mFrame.setVisible(true); @@ -7195,8 +7510,8 @@ public void onNewPluginComponent(JComponent component) { mGuidePointsDialog.setModal(false); mGuidePointsDialog.setAlwaysOnTop(true); mGuidePointsDialog.setVisible(false); - - //Set current unit after all and everything is initialized + + // Set current unit after all and everything is initialized unitComboBox.setSelectedIndex(1); // DEBUG @@ -7216,19 +7531,19 @@ public void onNewPluginComponent(JComponent component) { * BrdReader.loadFile(getCurrentBrd(), * DefaultBrds.getInstance().getBoardArray("Funboard"), "funboard"); * mOriginalBrd.set(getCurrentBrd()); fitAll(); onBrdChanged(); - * + * * getSelectedEdit().loadBackgroundImage("F:\\Gfx\\Misc\\Surfboards\\horan * 6'8 keelboard outline.jpg"); */ - + mBlockGUI = false; } + @Override public void actionPerformed(final ActionEvent e) { final String cmdStr = e.getActionCommand(); - if (cmdStr == LanguageResource.getString("PRINTOUTLINE_STR")) - { + if (cmdStr == LanguageResource.getString("PRINTOUTLINE_STR")) { CategorizedSettings settings = new CategorizedSettings(); String categoryName = LanguageResource.getString("PRINTOUTLINEPARAMETERSCATEGORY_STR"); Settings printOutlineSettings = settings.addCategory(categoryName); @@ -7243,11 +7558,9 @@ public void actionPerformed(final ActionEvent e) { return; } - mPrintBrd.printOutline(printOutlineSettings.getBoolean("PrintGrid"),printOutlineSettings.getBoolean("OverCurve")); + mPrintBrd.printOutline(printOutlineSettings.getBoolean("PrintGrid"), printOutlineSettings.getBoolean("OverCurve")); - } - else if (cmdStr == LanguageResource.getString("PRINTSPINTEMPLATE_STR")) - { + } else if (cmdStr == LanguageResource.getString("PRINTSPINTEMPLATE_STR")) { CategorizedSettings settings = new CategorizedSettings(); String categoryName = LanguageResource.getString("PRINTSPINTEMPLATEPARAMETERSCATEGORY_STR"); Settings printOutlineSettings = settings.addCategory(categoryName); @@ -7262,37 +7575,40 @@ else if (cmdStr == LanguageResource.getString("PRINTSPINTEMPLATE_STR")) return; } - mPrintBrd.printSpinTemplate(printOutlineSettings.getBoolean("PrintGrid"),printOutlineSettings.getBoolean("OverCurve")); - } - else if (cmdStr == LanguageResource.getString("PRINTPROFILE_STR")) { + mPrintBrd.printSpinTemplate(printOutlineSettings.getBoolean("PrintGrid"), printOutlineSettings.getBoolean("OverCurve")); + } else if (cmdStr == LanguageResource.getString("PRINTPROFILE_STR")) { mPrintBrd.printProfile(); } else if (cmdStr == LanguageResource.getString("PRINTCROSSECTION_STR")) { mPrintBrd.printSlices(); -// } else if (cmdStr == LanguageResource.getString("PRINTSPECSHEET_STR")) { -// mPrintBrd.printSpecSheet(); -// } else if (cmdStr == LanguageResource.getString("VIEW3D_STR")) { -// design_panel.view_3d(); -// } else if (cmdStr == LanguageResource.getString("EDITNURBS_STR")) { -// design_panel.view_all(); -// design_panel.fit_all(); + // } else if (cmdStr == + // LanguageResource.getString("PRINTSPECSHEET_STR")) { + // mPrintBrd.printSpecSheet(); + // } else if (cmdStr == LanguageResource.getString("VIEW3D_STR")) { + // design_panel.view_3d(); + // } else if (cmdStr == LanguageResource.getString("EDITNURBS_STR")) + // { + // design_panel.view_all(); + // design_panel.fit_all(); } else if (cmdStr == LanguageResource.getString("SIMPLEEDITING_STR")) { board_handler.set_single_point_editing(false); - //design_panel.fit_all(); + // design_panel.fit_all(); redraw(); } else if (cmdStr == LanguageResource.getString("ADVANCEDEDITING_STR")) { board_handler.set_single_point_editing(true); - //design_panel.fit_all(); + // design_panel.fit_all(); redraw(); } } + @Override public void itemStateChanged(final ItemEvent e) { mFrame.repaint(); } + @Override public boolean dispatchKeyEvent(final KeyEvent e) { if (mControlPointInfo != null && mControlPointInfo.isEditing()) return false; @@ -7304,25 +7620,23 @@ public boolean dispatchKeyEvent(final KeyEvent e) { return false; BoardEdit edit = getSelectedEdit(); - if(edit == null) + if (edit == null) return false; - - if(this.getFrame().getFocusOwner() == null) + + if (this.getFrame().getFocusOwner() == null) return false; - -// System.out.printf("dispatchKeyEvent() event %s\n",e.toString()); + + // System.out.printf("dispatchKeyEvent() event %s\n",e.toString()); switch (e.getKeyCode()) { case KeyEvent.VK_ADD: - if (e.getID() == KeyEvent.KEY_PRESSED) - { + if (e.getID() == KeyEvent.KEY_PRESSED) { mNextCrossSection.actionPerformed(null); } break; case KeyEvent.VK_SUBTRACT: - if (e.getID() == KeyEvent.KEY_PRESSED) - { + if (e.getID() == KeyEvent.KEY_PRESSED) { mPreviousCrossSection.actionPerformed(null); } break; @@ -7332,26 +7646,24 @@ public boolean dispatchKeyEvent(final KeyEvent e) { if (e.isControlDown()) break; - if(mGhostMode == false) - { + if (mGhostMode == false) { mGhostMode = true; if (mPreviousCommand == null) { mPreviousCommand = getCurrentCommand(); setCurrentCommand(new GhostCommand()); } - if(edit != null) + if (edit != null) edit.repaint(); mBoardSpec.updateInfoInstantly(); } } else if (e.getID() == KeyEvent.KEY_RELEASED) { - if(mGhostMode == true) - { + if (mGhostMode == true) { mGhostMode = false; if (mPreviousCommand != null) { setCurrentCommand(mPreviousCommand); mPreviousCommand = null; } - if(edit != null) + if (edit != null) edit.repaint(); mBoardSpec.updateInfoInstantly(); } @@ -7364,18 +7676,16 @@ public boolean dispatchKeyEvent(final KeyEvent e) { if (e.isControlDown()) break; - if(mOrgFocus != true) - { + if (mOrgFocus != true) { mOrgFocus = true; - if(edit != null) + if (edit != null) edit.repaint(); mBoardSpec.updateInfoInstantly(); } } else if (e.getID() == KeyEvent.KEY_RELEASED) { - if(mOrgFocus != false) - { + if (mOrgFocus != false) { mOrgFocus = false; - if(edit != null) + if (edit != null) edit.repaint(); mBoardSpec.updateInfoInstantly(); } @@ -7383,7 +7693,7 @@ public boolean dispatchKeyEvent(final KeyEvent e) { return true; case KeyEvent.VK_ESCAPE: setCurrentCommand(new BrdEditCommand()); - if(edit != null) + if (edit != null) edit.repaint(); break; } @@ -7392,33 +7702,33 @@ public boolean dispatchKeyEvent(final KeyEvent e) { if (e.getID() == KeyEvent.KEY_PRESSED) { switch (e.getKeyCode()) { case KeyEvent.VK_UP: - if(edit != null) - edit.mGhostOffsetY -= (e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mGhostOffsetY -= (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; case KeyEvent.VK_DOWN: - if(edit != null) - edit.mGhostOffsetY += (e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mGhostOffsetY += (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; case KeyEvent.VK_LEFT: - if(edit != null) - edit.mGhostOffsetX -= (e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mGhostOffsetX -= (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; case KeyEvent.VK_RIGHT: - if(edit != null) - edit.mGhostOffsetX += (e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mGhostOffsetX += (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; case KeyEvent.VK_Q: - if(edit != null) - edit.mGhostRot -= ((double)Math.PI/180.0f)*(e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mGhostRot -= (Math.PI / 180.0f) * (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; case KeyEvent.VK_W: - if(edit != null) - edit.mGhostRot += ((double)Math.PI/180.0f)*(e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mGhostRot += (Math.PI / 180.0f) * (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; default: @@ -7427,29 +7737,28 @@ public boolean dispatchKeyEvent(final KeyEvent e) { } } - if (mOrgFocus) - { + if (mOrgFocus) { if (e.getID() == KeyEvent.KEY_PRESSED) { switch (e.getKeyCode()) { case KeyEvent.VK_UP: - if(edit != null) - edit.mOriginalOffsetY -= (e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mOriginalOffsetY -= (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; case KeyEvent.VK_DOWN: - if(edit != null) - edit.mOriginalOffsetY += (e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mOriginalOffsetY += (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; case KeyEvent.VK_LEFT: - if(edit != null) - edit.mOriginalOffsetX -= (e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mOriginalOffsetX -= (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; case KeyEvent.VK_RIGHT: - if(edit != null) - edit.mOriginalOffsetX += (e.isAltDown() ? .1f : 1f)/edit.getScale(); + if (edit != null) + edit.mOriginalOffsetX += (e.isAltDown() ? .1f : 1f) / edit.getScale(); mFrame.repaint(); return true; default: @@ -7501,8 +7810,7 @@ public boolean dispatchKeyEvent(final KeyEvent e) { } public void toggleBottomAndDeck() { - switch(mEditDeckorBottom) - { + switch (mEditDeckorBottom) { case DECK: mEditDeckorBottom = DeckOrBottom.BOTTOM; break; @@ -7524,78 +7832,66 @@ public static void main(final String[] args) { BoardCAD.getInstance(); } - public void drawOutlineFootMarks(final BoardEdit source, final Graphics2D g, - final Stroke stroke, final BezierBoard brd) { - - if(brd.isEmpty()) + public void drawOutlineFootMarks(final BoardEdit source, final Graphics2D g, final Stroke stroke, final BezierBoard brd) { + + if (brd.isEmpty()) return; g.setStroke(stroke); - Point centerPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(brd.getLength()/2.0, 0.0)); - Point widthPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(0,brd.getMaxWidth()/2)); + Point centerPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(brd.getLength() / 2.0, 0.0)); + Point widthPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(0, brd.getMaxWidth() / 2)); // get metrics from the graphics final FontMetrics metrics = g.getFontMetrics(source.mSlidingInfoFont); // get the height of a line of text in this font and render context final int hgt = metrics.getHeight(); - for(int i = 0; i < 7; i++) - { + for (int i = 0; i < 7; i++) { double pos = 0.0; String label; - if(i < 3) - { - pos = (i==0)?UnitUtils.INCH:i*UnitUtils.INCH*UnitUtils.INCHES_PR_FOOT; + if (i < 3) { + pos = (i == 0) ? UnitUtils.INCH : i * UnitUtils.INCH * UnitUtils.INCHES_PR_FOOT; label = UnitUtils.convertLengthToCurrentUnit(pos, false); - } - else if( i == 3) - { + } else if (i == 3) { pos = brd.getMaxWidthPos(); - label = "W.P:" + UnitUtils.convertLengthToCurrentUnit(mBoardSpec.isOverCurveSelected()? brd.getBottom().getPointByCurveLength(pos).x - brd.getBottom().getPointByCurveLength(brd.getLength()/2.0).x : - pos - brd.getLength()/2.0, - false); - } - else - { - pos = (mBoardSpec.isOverCurveSelected()?brd.getBottom().getLength():brd.getLength()) - ((i==6)?UnitUtils.INCH:(6-i)*UnitUtils.INCH*UnitUtils.INCHES_PR_FOOT); - label = UnitUtils.convertLengthToCurrentUnit(-((i==6)?UnitUtils.INCH:(6-i)*UnitUtils.INCH*UnitUtils.INCHES_PR_FOOT), false); + label = "W.P:" + UnitUtils.convertLengthToCurrentUnit(mBoardSpec.isOverCurveSelected() ? brd.getBottom().getPointByCurveLength(pos).x - brd.getBottom().getPointByCurveLength(brd.getLength() / 2.0).x : pos - brd.getLength() / 2.0, false); + } else { + pos = (mBoardSpec.isOverCurveSelected() ? brd.getBottom().getLength() : brd.getLength()) - ((i == 6) ? UnitUtils.INCH : (6 - i) * UnitUtils.INCH * UnitUtils.INCHES_PR_FOOT); + label = UnitUtils.convertLengthToCurrentUnit(-((i == 6) ? UnitUtils.INCH : (6 - i) * UnitUtils.INCH * UnitUtils.INCHES_PR_FOOT), false); } - if(mBoardSpec.isOverCurveSelected()) - { + if (mBoardSpec.isOverCurveSelected()) { pos = brd.getBottom().getPointByCurveLength(pos).x; label = label.concat(" O.C"); } - double width = brd.getWidthAt(pos); String widthStr = UnitUtils.convertLengthToCurrentUnit(width, false); g.setColor(Color.BLUE); - // get the advance of my text in this font and render context final int labelWidth = metrics.stringWidth(label); // get the advance of my text in this font and render context final int widthOfWidthString = metrics.stringWidth(widthStr); - Point outlinePoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(pos,width/2.0)); - Point upperOutlinePoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(pos,-width/2.0)); + Point outlinePoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(pos, width / 2.0)); + Point upperOutlinePoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(pos, -width / 2.0)); g.setColor(Color.BLACK); - g.drawString(label, outlinePoint.x - (labelWidth/2), centerPoint.y); + g.drawString(label, outlinePoint.x - (labelWidth / 2), centerPoint.y); g.setColor(Color.BLUE); g.drawLine(outlinePoint.x, upperOutlinePoint.y, outlinePoint.x, outlinePoint.y); - g.drawString(widthStr, outlinePoint.x - (widthOfWidthString/2), widthPoint.y + hgt); + g.drawString(widthStr, outlinePoint.x - (widthOfWidthString / 2), widthPoint.y + hgt); g.setColor(Color.DARK_GRAY); @@ -7604,51 +7900,42 @@ else if( i == 3) } - public void drawProfileFootMarks(final BoardEdit source, final Graphics2D g, - final Stroke stroke, final BezierBoard brd) { + public void drawProfileFootMarks(final BoardEdit source, final Graphics2D g, final Stroke stroke, final BezierBoard brd) { g.setStroke(stroke); - Point centerPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(brd.getLength()/2.0, 0.0)); - Point maxThicknessPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(0,brd.getMaxThickness())); - Point maxRockerPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(0,brd.getMaxRocker())); - Point bottomPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(0,0)); + Point centerPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(brd.getLength() / 2.0, 0.0)); + Point maxThicknessPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(0, brd.getMaxThickness())); + Point maxRockerPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(0, brd.getMaxRocker())); + Point bottomPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(0, 0)); // get metrics from the graphics final FontMetrics metrics = g.getFontMetrics(source.mSlidingInfoFont); // get the height of a line of text in this font and render context final int hgt = metrics.getHeight(); - for(int i = 0; i < 7; i++) - { + for (int i = 0; i < 7; i++) { double pos = 0.0; String label; - if(i < 3) - { - pos = (i==0)?0.001:i*UnitUtils.INCH*UnitUtils.INCHES_PR_FOOT; - label = (i==0)?"":UnitUtils.convertLengthToCurrentUnit(pos, false); - } - else if( i == 3) - { - pos = brd.getLength()/2.0; - label = "Center: " + UnitUtils.convertLengthToCurrentUnit(mBoardSpec.isOverCurveSelected()? brd.getBottom().getPointByCurveLength(pos).x: pos, false); - } - else - { - pos = (mBoardSpec.isOverCurveSelected()?brd.getBottom().getLength():brd.getLength()) - ((i==6)?0.005:(6-i)*UnitUtils.INCH*UnitUtils.INCHES_PR_FOOT); - label = (i==6)?"":UnitUtils.convertLengthToCurrentUnit(-(6-i)*UnitUtils.INCH*UnitUtils.INCHES_PR_FOOT, false); + if (i < 3) { + pos = (i == 0) ? 0.001 : i * UnitUtils.INCH * UnitUtils.INCHES_PR_FOOT; + label = (i == 0) ? "" : UnitUtils.convertLengthToCurrentUnit(pos, false); + } else if (i == 3) { + pos = brd.getLength() / 2.0; + label = "Center: " + UnitUtils.convertLengthToCurrentUnit(mBoardSpec.isOverCurveSelected() ? brd.getBottom().getPointByCurveLength(pos).x : pos, false); + } else { + pos = (mBoardSpec.isOverCurveSelected() ? brd.getBottom().getLength() : brd.getLength()) - ((i == 6) ? 0.005 : (6 - i) * UnitUtils.INCH * UnitUtils.INCHES_PR_FOOT); + label = (i == 6) ? "" : UnitUtils.convertLengthToCurrentUnit(-(6 - i) * UnitUtils.INCH * UnitUtils.INCHES_PR_FOOT, false); } - if(mBoardSpec.isOverCurveSelected()) - { + if (mBoardSpec.isOverCurveSelected()) { pos = brd.getBottom().getPointByCurveLength(pos).x; - if(label != "") + if (label != "") label = label.concat(" O.C"); } - double thickness = brd.getThicknessAtPos(pos); double rocker = brd.getRockerAtPos(pos); @@ -7664,30 +7951,29 @@ else if( i == 3) final int widthOfThicknessString = metrics.stringWidth(thicknessStr); final int widthOfRockerString = metrics.stringWidth(rockerStr); - Point deckPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(pos,rocker+thickness)); - Point rockerPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(pos,rocker)); + Point deckPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(pos, rocker + thickness)); + Point rockerPoint = source.brdCoordinateToScreenCoordinateTo(new Point2D.Double(pos, rocker)); g.setColor(Color.BLACK); - g.drawString(label, deckPoint.x - (labelWidth/2), (maxThicknessPoint.y + maxRockerPoint.y)/2); + g.drawString(label, deckPoint.x - (labelWidth / 2), (maxThicknessPoint.y + maxRockerPoint.y) / 2); g.setColor(Color.RED); - g.drawString(thicknessStr, deckPoint.x - (widthOfThicknessString/2), bottomPoint.y + hgt); + g.drawString(thicknessStr, deckPoint.x - (widthOfThicknessString / 2), bottomPoint.y + hgt); g.drawLine(deckPoint.x, deckPoint.y, rockerPoint.x, rockerPoint.y); g.setColor(Color.BLUE); - g.drawString(rockerStr, deckPoint.x - (widthOfRockerString/2), bottomPoint.y + hgt*2); + g.drawString(rockerStr, deckPoint.x - (widthOfRockerString / 2), bottomPoint.y + hgt * 2); g.drawLine(rockerPoint.x, rockerPoint.y, rockerPoint.x, bottomPoint.y); } } - public void drawOutlineSlidingInfo(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) { + public void drawOutlineSlidingInfo(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { final double width = brd.getWidthAtPos(source.mBrdCoord.x); if (width <= 0.0) @@ -7697,8 +7983,7 @@ public void drawOutlineSlidingInfo(final BoardEdit source, final Graphics2D g, final double mulY = (source.mDrawControl & BezierBoardDrawUtil.FlipY) != 0 ? -1 : 1; String widthStr = LanguageResource.getString("OUTLINESLIDINGINFOWIDTH_STR"); - source.mSlidingInfoString = widthStr - + UnitUtils.convertLengthToCurrentUnit(width, false); + source.mSlidingInfoString = widthStr + UnitUtils.convertLengthToCurrentUnit(width, false); g.setColor(Color.BLUE); @@ -7720,7 +8005,6 @@ public void drawOutlineSlidingInfo(final BoardEdit source, final Graphics2D g, // calculate the size of a box to hold the text with some padding. final Dimension sizeOfWidthStr = new Dimension(advOfWidthStr, hgt + 1); - int textX = source.mScreenCoord.x - (sizeOfWidthStr.width); if (textX < 10) textX = 10; @@ -7728,103 +8012,70 @@ public void drawOutlineSlidingInfo(final BoardEdit source, final Graphics2D g, if (textX + size.width + 10 > dim.width) textX = dim.width - size.width - 10; - if(BoardCAD.getInstance().isPaintingOverCurveMeasurements()) - { + if (BoardCAD.getInstance().isPaintingOverCurveMeasurements()) { source.mSlidingInfoString = LanguageResource.getString("OUTLINESLIDINGINFOOVERCURVE_STR"); g.setColor(Color.BLACK); - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 4); - - + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 4); final double fromNose = brd.getFromNoseOverBottomCurveAtPos(source.mBrdCoord.x); final double fromTail = brd.getFromTailOverBottomCurveAtPos(source.mBrdCoord.x); + source.mSlidingInfoString = LanguageResource.getString("OUTLINESLIDINGINFOFROMTAIL_STR") + UnitUtils.convertLengthToCurrentUnit(fromTail, false); - source.mSlidingInfoString = LanguageResource.getString("OUTLINESLIDINGINFOFROMTAIL_STR") - + UnitUtils.convertLengthToCurrentUnit(fromTail, false); - + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 3); - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 3); - - source.mSlidingInfoString = LanguageResource.getString("OUTLINESLIDINGINFOFROMNOSE_STR") - +(" ")+ UnitUtils.convertLengthToCurrentUnit(fromNose, false); - - - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 2); + source.mSlidingInfoString = LanguageResource.getString("OUTLINESLIDINGINFOFROMNOSE_STR") + (" ") + UnitUtils.convertLengthToCurrentUnit(fromNose, false); + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 2); } - - if(BoardCAD.getInstance().isPaintingMomentOfInertia()) - { + + if (BoardCAD.getInstance().isPaintingMomentOfInertia()) { final double momentOfInertia = brd.getMomentOfInertia(source.mBrdCoord.x, source.mBrdCoord.y); - source.mSlidingInfoString = LanguageResource.getString("SLIDINGINFOMOMENTOFINERTIA_STR") - + UnitUtils.convertMomentOfInertiaToCurrentUnit(momentOfInertia); + source.mSlidingInfoString = LanguageResource.getString("SLIDINGINFOMOMENTOFINERTIA_STR") + UnitUtils.convertMomentOfInertiaToCurrentUnit(momentOfInertia); - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * (BoardCAD.getInstance().isPaintingOverCurveMeasurements()?5:2)); + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * (BoardCAD.getInstance().isPaintingOverCurveMeasurements() ? 5 : 2)); } - source.mSlidingInfoString = LanguageResource.getString("OUTLINESLIDINGINFOWIDTH_STR") - + UnitUtils.convertLengthToCurrentUnit(width, false); + source.mSlidingInfoString = LanguageResource.getString("OUTLINESLIDINGINFOWIDTH_STR") + UnitUtils.convertLengthToCurrentUnit(width, false); g.setColor(Color.BLUE); - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 1); + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 1); + final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, 0.0); - final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), - source.mOffsetX, source.mOffsetY, source.mScale); - - source.mSlidingInfoLine.setLine(source.mBrdCoord.x * mulX, -(width / 2) - * mulY, source.mBrdCoord.x * mulX, (width / 2) * mulY); - + source.mSlidingInfoLine.setLine(source.mBrdCoord.x * mulX, -(width / 2) * mulY, source.mBrdCoord.x * mulX, (width / 2) * mulY); g.draw(source.mSlidingInfoLine); g.setTransform(savedTransform); } - public void drawOutlineCrossections(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) { - - final double mulX = (source.mDrawControl & BezierBoardDrawUtil.FlipX) != 0 ? -1 : 1; - final double mulY = (source.mDrawControl & BezierBoardDrawUtil.FlipY) != 0 ? -1 : 1; - + public void drawOutlineCrossections(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { - final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), - source.mOffsetX, source.mOffsetY, source.mScale); + final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, 0.0, (source.mDrawControl & BezierBoardDrawUtil.FlipX) != 0, (source.mDrawControl & BezierBoardDrawUtil.FlipY) != 0); - Line2D.Double crossSectionLine = new Line2D.Double(); // @jve:decl-index=0: + Line2D.Double crossSectionLine = new Line2D.Double(); // @jve:decl-index=0: - BezierBoardCrossSection currentCrossSection = brd.getCurrentCrossSection(); + BezierBoardCrossSection currentCrossSection = brd.getCurrentCrossSection(); final float[] dashPattern = new float[] { 5.0f, 1.0f }; - final BasicStroke bs = (BasicStroke)stroke; - final BasicStroke stapled = new BasicStroke((float) (bs - .getLineWidth() / 2.0), bs.getEndCap(), bs - .getLineJoin(), bs.getMiterLimit(), dashPattern, 0f); + final BasicStroke bs = (BasicStroke) stroke; + final BasicStroke stapled = new BasicStroke((float) (bs.getLineWidth() / 2.0), bs.getEndCap(), bs.getLineJoin(), bs.getMiterLimit(), dashPattern, 0f); final Color noneActiveColor = color.brighter(); - for(int i = 0; i < brd.getCrossSections().size(); i++) - { - BezierBoardCrossSection tmp = brd.getCrossSections().get(i); + for (int i = 0; i < brd.getCrossSections().size(); i++) { + BezierBoardCrossSection tmp = brd.getCrossSections().get(i); - if(tmp == currentCrossSection) - { + if (tmp == currentCrossSection) { g.setColor(color); g.setStroke(stroke); - } - else - { + } else { g.setColor(noneActiveColor); g.setStroke(stapled); } @@ -7835,7 +8086,7 @@ public void drawOutlineCrossections(final BoardEdit source, final Graphics2D g, if (width <= 0.0) continue; - crossSectionLine.setLine(pos * mulX, -(width / 2) * mulY, pos * mulX, (width / 2) * mulY); + crossSectionLine.setLine(pos, -(width / 2), pos, (width / 2)); g.draw(crossSectionLine); } @@ -7843,8 +8094,7 @@ public void drawOutlineCrossections(final BoardEdit source, final Graphics2D g, g.setTransform(savedTransform); } - public void drawProfileSlidingInfo(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) { + public void drawProfileSlidingInfo(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { final double thickness = brd.getThicknessAtPos(source.mBrdCoord.x); if (thickness <= 0.0) @@ -7865,21 +8115,17 @@ public void drawProfileSlidingInfo(final BoardEdit source, final Graphics2D g, final Dimension dim = source.getSize(); String thicknessStr = LanguageResource.getString("PROFILESLIDINGINFOTHICKNESS_STR"); - source.mSlidingInfoString = thicknessStr - + UnitUtils.convertLengthToCurrentUnit(thickness, false); - + source.mSlidingInfoString = thicknessStr + UnitUtils.convertLengthToCurrentUnit(thickness, false); // get the advance of my text in this font and render context final int adv = metrics.stringWidth(source.mSlidingInfoString); - // calculate the size of a box to hold the text with some padding. final Dimension size = new Dimension(adv, hgt + 1); // get the advance of my text in this font and render context final int advOfThicknessStr = metrics.stringWidth(thicknessStr); - // calculate the size of a box to hold the text with some padding. final Dimension sizeOfThicknessStr = new Dimension(advOfThicknessStr, hgt + 1); @@ -7890,117 +8136,86 @@ public void drawProfileSlidingInfo(final BoardEdit source, final Graphics2D g, if (textX + size.width + 10 > dim.width) textX = dim.width - size.width - 10; - g.setColor(Color.BLUE); - - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 3); + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 3); g.setColor(Color.RED); - source.mSlidingInfoString = LanguageResource.getString("PROFILESLIDINGINFOROCKER_STR") - + UnitUtils.convertLengthToCurrentUnit(rocker, false); - - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 2); + source.mSlidingInfoString = LanguageResource.getString("PROFILESLIDINGINFOROCKER_STR") + UnitUtils.convertLengthToCurrentUnit(rocker, false); + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 2); - source.mSlidingInfoString = LanguageResource.getString("PROFILESLIDINGINFORADIUS_STR") - + UnitUtils.convertLengthToCurrentUnit(radius, true); + source.mSlidingInfoString = LanguageResource.getString("PROFILESLIDINGINFORADIUS_STR") + UnitUtils.convertLengthToCurrentUnit(radius, true); - g.setColor(new Color(102,102,102)); + g.setColor(new Color(102, 102, 102)); - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 1); + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 1); - - - if(BoardCAD.getInstance().isPaintingOverCurveMeasurements()) - { + if (BoardCAD.getInstance().isPaintingOverCurveMeasurements()) { source.mSlidingInfoString = LanguageResource.getString("PROFILESLIDINGINFOOVERCURVE_STR"); g.setColor(Color.BLACK); - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 6); - + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 6); final double fromNose = brd.getFromNoseOverBottomCurveAtPos(source.mBrdCoord.x); final double fromTail = brd.getFromTailOverBottomCurveAtPos(source.mBrdCoord.x); - source.mSlidingInfoString = LanguageResource.getString("PROFILESLIDINGINFOFROMTAIL_STR") - + UnitUtils.convertLengthToCurrentUnit(fromTail, false); - - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 5); + source.mSlidingInfoString = LanguageResource.getString("PROFILESLIDINGINFOFROMTAIL_STR") + UnitUtils.convertLengthToCurrentUnit(fromTail, false); + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 5); - source.mSlidingInfoString = LanguageResource.getString("PROFILESLIDINGINFOFROMNOSE_STR") - + UnitUtils.convertLengthToCurrentUnit(fromNose, false); + source.mSlidingInfoString = LanguageResource.getString("PROFILESLIDINGINFOFROMNOSE_STR") + UnitUtils.convertLengthToCurrentUnit(fromNose, false); - g.drawString(source.mSlidingInfoString, textX, dim.height - - (size.height + 2) * 4); + g.drawString(source.mSlidingInfoString, textX, dim.height - (size.height + 2) * 4); } - final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), - source.mOffsetX, source.mOffsetY, source.mScale); + final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, 0.0); // sets the color of the thickness sliding info bar (inside board) g.setColor(Color.BLUE); - source.mSlidingInfoLine.setLine(source.mBrdCoord.x * mulX, rocker - * mulY, source.mBrdCoord.x * mulX, (rocker + thickness) * mulY); + source.mSlidingInfoLine.setLine(source.mBrdCoord.x * mulX, rocker * mulY, source.mBrdCoord.x * mulX, (rocker + thickness) * mulY); g.draw(source.mSlidingInfoLine); // sets the color of the rocker sliding info bar (outside board) g.setColor(Color.RED); - source.mSlidingInfoLine.setLine(source.mBrdCoord.x * mulX, 0 * mulY, - source.mBrdCoord.x * mulX, rocker * mulY); + source.mSlidingInfoLine.setLine(source.mBrdCoord.x * mulX, 0 * mulY, source.mBrdCoord.x * mulX, rocker * mulY); g.draw(source.mSlidingInfoLine); g.setTransform(savedTransform); - } - public void drawProfileCrossections(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) { + public void drawProfileCrossections(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { final double mulX = (source.mDrawControl & BezierBoardDrawUtil.FlipX) != 0 ? -1 : 1; final double mulY = (source.mDrawControl & BezierBoardDrawUtil.FlipY) != 0 ? -1 : 1; + final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, 0.0); - final AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), - source.mOffsetX, source.mOffsetY, source.mScale); - - Line2D.Double crossSectionLine = new Line2D.Double(); // @jve:decl-index=0: + Line2D.Double crossSectionLine = new Line2D.Double(); // @jve:decl-index=0: - BezierBoardCrossSection currentCrossSection = brd.getCurrentCrossSection(); + BezierBoardCrossSection currentCrossSection = brd.getCurrentCrossSection(); final float[] dashPattern = new float[] { 5.0f, 1.0f }; - final BasicStroke bs = (BasicStroke)stroke; - final BasicStroke stapled = new BasicStroke((float) (bs - .getLineWidth() / 2.0), bs.getEndCap(), bs - .getLineJoin(), bs.getMiterLimit(), dashPattern, 0f); + final BasicStroke bs = (BasicStroke) stroke; + final BasicStroke stapled = new BasicStroke((float) (bs.getLineWidth() / 2.0), bs.getEndCap(), bs.getLineJoin(), bs.getMiterLimit(), dashPattern, 0f); final Color noneActiveColor = color.brighter(); - for(int i = 0; i < brd.getCrossSections().size(); i++) - { - BezierBoardCrossSection tmp = brd.getCrossSections().get(i); + for (int i = 0; i < brd.getCrossSections().size(); i++) { + BezierBoardCrossSection tmp = brd.getCrossSections().get(i); - if(tmp == currentCrossSection) - { + if (tmp == currentCrossSection) { g.setColor(color); g.setStroke(stroke); - } - else - { + } else { g.setColor(noneActiveColor); g.setStroke(stapled); } @@ -8012,8 +8227,7 @@ public void drawProfileCrossections(final BoardEdit source, final Graphics2D g, if (deck <= 0.0) continue; - crossSectionLine.setLine(pos * mulX, deck * mulY, - pos * mulX, rocker * mulY); + crossSectionLine.setLine(pos * mulX, deck * mulY, pos * mulX, rocker * mulY); g.draw(crossSectionLine); } @@ -8021,78 +8235,44 @@ public void drawProfileCrossections(final BoardEdit source, final Graphics2D g, g.setTransform(savedTransform); } - public void drawOutlineFlowlines(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) - { - BezierBoardDrawUtil.paintOutlineFlowLines(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, color, stroke, brd, (source.mDrawControl&BezierBoardDrawUtil.FlipX)!=0, true); + public void drawOutlineFlowlines(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { + BezierBoardDrawUtil.paintOutlineFlowLines(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, 0.0, color, stroke, brd, (source.mDrawControl & BezierBoardDrawUtil.FlipX) != 0, true); } - public void drawOutlineTuckUnderLine(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) - { - BezierBoardDrawUtil.paintOutlineTuckUnderLine(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, color, stroke, brd, (source.mDrawControl&BezierBoardDrawUtil.FlipX)!=0, true); + public void drawOutlineTuckUnderLine(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { + BezierBoardDrawUtil.paintOutlineTuckUnderLine(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, 0.0, color, stroke, brd, (source.mDrawControl & BezierBoardDrawUtil.FlipX) != 0, true); } - public void drawProfileFlowlines(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) - { - BezierBoardDrawUtil.paintProfileFlowLines(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, color, stroke, brd, (source.mDrawControl&BezierBoardDrawUtil.FlipX)!=0, true); + public void drawProfileFlowlines(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { + BezierBoardDrawUtil.paintProfileFlowLines(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, 0.0, color, stroke, brd, (source.mDrawControl & BezierBoardDrawUtil.FlipX) != 0, true); } - public void drawProfileApexline(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) - { - BezierBoardDrawUtil.paintProfileApexline(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, color, stroke, brd, (source.mDrawControl&BezierBoardDrawUtil.FlipX)!=0, true); + public void drawProfileApexline(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { + BezierBoardDrawUtil.paintProfileApexline(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, 0.0, color, stroke, brd, (source.mDrawControl & BezierBoardDrawUtil.FlipX) != 0, true); } - public void drawProfileTuckUnderLine(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) - { - BezierBoardDrawUtil.paintProfileTuckUnderLine(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, color, stroke, brd, (source.mDrawControl&BezierBoardDrawUtil.FlipX)!=0, true); + public void drawProfileTuckUnderLine(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { + BezierBoardDrawUtil.paintProfileTuckUnderLine(new JavaDraw(g), source.mOffsetX, source.mOffsetY, source.mScale, 0.0, color, stroke, brd, (source.mDrawControl & BezierBoardDrawUtil.FlipX) != 0, true); } - public void drawCrossSectionCenterline(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) - { + public void drawCrossSectionCenterline(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { boolean isCompensatedForRocker = BoardCAD.getInstance().isUsingOffsetInterpolation(); - BezierBoardDrawUtil.paintCrossSectionCenterline(new JavaDraw(g), source.mOffsetX, source.mOffsetY + (isCompensatedForRocker?brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition())*source.mScale:0), source.mScale, color, stroke, brd, true, !isCompensatedForRocker); + BezierBoardDrawUtil.paintCrossSectionCenterline(new JavaDraw(g), source.mOffsetX, source.mOffsetY + (isCompensatedForRocker ? brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition()) * source.mScale : 0), source.mScale, 0.0, color, stroke, brd, true, !isCompensatedForRocker); } - public void drawCrossSectionFlowlines(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) - { + public void drawCrossSectionFlowlines(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { boolean isCompensatedForRocker = BoardCAD.getInstance().isUsingOffsetInterpolation(); - BezierBoardDrawUtil.paintCrossSectionFlowLines(new JavaDraw(g), source.mOffsetX, source.mOffsetY + (isCompensatedForRocker?brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition())*source.mScale:0), source.mScale, color, stroke, brd, true, !isCompensatedForRocker); + BezierBoardDrawUtil.paintCrossSectionFlowLines(new JavaDraw(g), source.mOffsetX, source.mOffsetY + (isCompensatedForRocker ? brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition()) * source.mScale : 0), source.mScale, 0.0, color, stroke, brd, true, !isCompensatedForRocker); } - public void drawCrossSectionApexline(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) - { + public void drawCrossSectionApexline(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { boolean isCompensatedForRocker = BoardCAD.getInstance().isUsingOffsetInterpolation(); - BezierBoardDrawUtil.paintCrossSectionApexline(new JavaDraw(g), source.mOffsetX, source.mOffsetY + (isCompensatedForRocker?brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition())*source.mScale:0), source.mScale, color, stroke, brd, true, !isCompensatedForRocker); + BezierBoardDrawUtil.paintCrossSectionApexline(new JavaDraw(g), source.mOffsetX, source.mOffsetY + (isCompensatedForRocker ? brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition()) * source.mScale : 0), source.mScale, 0.0, color, stroke, brd, true, !isCompensatedForRocker); } - public void drawCrossSectionTuckUnderLine(final BoardEdit source, final Graphics2D g, - final Color color, final Stroke stroke, final BezierBoard brd) - { + public void drawCrossSectionTuckUnderLine(final BoardEdit source, final Graphics2D g, final Color color, final Stroke stroke, final BezierBoard brd) { boolean isCompensatedForRocker = BoardCAD.getInstance().isUsingOffsetInterpolation(); - BezierBoardDrawUtil.paintCrossSectionTuckUnderLine(new JavaDraw(g), source.mOffsetX, source.mOffsetY + (isCompensatedForRocker?brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition())*source.mScale:0), source.mScale, color, stroke, brd, true, !isCompensatedForRocker); - } - - protected void updateBezier3DModel() - { - if(getCurrentBrd().isEmpty()) - return; - - double scale = 0.0075; - Transform3D transform = new Transform3D(); - transform.setScale(scale); - transform.setTranslation(new Vector3d(-getCurrentBrd().getLength()*scale/2.0,0.0,0.0)); - transform.setRotation(new AxisAngle4d(1.0, 0.0, 0.0, -Math.PI/2.0)); - mScale.setTransform(transform); - - getCurrentBrd().update3DModel(mBezier3DModel); - mBoardChangedFor3D = false; + BezierBoardDrawUtil.paintCrossSectionTuckUnderLine(new JavaDraw(g), source.mOffsetX, source.mOffsetY + (isCompensatedForRocker ? brd.getRockerAtPos(brd.getCurrentCrossSection().getPosition()) * source.mScale : 0), source.mScale, 0.0, color, stroke, brd, true, !isCompensatedForRocker); } static public Frame findParentFrame(Container container) { @@ -8103,7 +8283,7 @@ static public Frame findParentFrame(Container container) { container = container.getParent(); } - return (Frame) null; + return null; } } @@ -8158,8 +8338,7 @@ public static void displayURL(final String url) { p = Runtime.getRuntime().exec(cmd); } } catch (final InterruptedException x) { - System.err.println("Error bringing up browser, cmd='" + cmd - + "'"); + System.err.println("Error bringing up browser, cmd='" + cmd + "'"); System.err.println("Caught: " + x); } } @@ -8186,7 +8365,7 @@ public static boolean isWindowsPlatform() { } class SetCurrentCommandAction extends AbstractAction { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; BrdCommand mCommand; SetCurrentCommandAction() { @@ -8197,6 +8376,7 @@ class SetCurrentCommandAction extends AbstractAction { mCommand = command; } + @Override public void actionPerformed(final ActionEvent event) { if (BoardCAD.getInstance().getCurrentCommand() != null) { BoardCAD.getInstance().getCurrentCommand().onCurrentChanged(); @@ -8212,16 +8392,17 @@ public void actionPerformed(final ActionEvent event) { } class SetCurrentOneShotCommandAction extends SetCurrentCommandAction { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; + SetCurrentOneShotCommandAction(final BrdCommand command) { super(command); } + @Override public void actionPerformed(final ActionEvent event) { mCommand.setPreviousCommand(BoardCAD.getInstance().getCurrentCommand()); super.actionPerformed(event); } - } diff --git a/boardcad/gui/jdk/BoardCommands.java b/boardcad/gui/jdk/BoardCommands.java deleted file mode 100644 index 84e4e6e..0000000 --- a/boardcad/gui/jdk/BoardCommands.java +++ /dev/null @@ -1,2599 +0,0 @@ -package boardcad.gui.jdk; - -import java.awt.Dimension; -import java.awt.Point; -import java.awt.event.KeyEvent; -import java.awt.event.MouseEvent; -import java.awt.event.MouseWheelEvent; -import java.awt.geom.Point2D; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.ListIterator; - -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; - -import board.*; - -import cadcore.*; -import boardcad.i18n.LanguageResource; -import board.readers.*; - -class BrdCommandHistory -{ - LinkedList mCommandHistory = new LinkedList(); - int mCurrentCommand = -1; - private static BrdCommandHistory mInstance = null; - - public static BrdCommandHistory getInstance() - { - if(mInstance == null) { - mInstance = new BrdCommandHistory(); - } - return mInstance; - } - - public void clear() - { - mCommandHistory.clear(); - mCurrentCommand = -1; - } - - public void addCommand(BrdCommand command) - { - if(mCurrentCommand>=0 && mCommandHistory.size() > mCurrentCommand+1) - { - /* Sometimes get java.util.ConcurrentModificationException with this code - * int size = mCommandHistory.size(); - java.util.List toBeRemoved = mCommandHistory.subList(mCurrentCommand+1, size); - mCommandHistory.removeAll(toBeRemoved); - */ - while(mCommandHistory.size() > mCurrentCommand+1) - { - mCommandHistory.removeLast(); - } - } - mCommandHistory.add(command); - mCurrentCommand = mCommandHistory.size()-1; - } - - public void undo() - { - if(mCurrentCommand >= 0) - { - BrdCommand command = mCommandHistory.get(mCurrentCommand--); - if(command == null) - return; - command.undo(); - } - } - - public void redo() - { - if(mCurrentCommand < mCommandHistory.size()-1 && mCommandHistory.size() > 0) - { - BrdCommand command = mCommandHistory.get(++mCurrentCommand); - if(command == null) - return; - command.redo(); - } - } -} - -abstract class BrdCommand extends Object implements Cloneable{ - boolean mCanUndo = true; - BoardEdit mSource = null; - BrdCommand mPreviousCommand = null; - - void setPreviousCommand(BrdCommand previousCommand) - { - mPreviousCommand = previousCommand; - } - - public void doAction() - { - - } - - public void execute() - { - if(canUndo()) - { - BrdCommandHistory.getInstance().addCommand((BrdCommand)this.clone()); - } - - if(mPreviousCommand != null) - { - BoardCAD.getInstance().setCurrentCommand(mPreviousCommand); - } - - }; //Do command including user interactions - - public void setSource(BoardEdit source) - { - mSource = source; - } - - public void redo() - { - if(mSource != null) - { - BoardCAD.getInstance().setSelectedEdit(mSource); - mSource.onBrdChanged(); - BoardCAD.getInstance().onControlPointChanged(); - } - - } - - public void undo() - { - if(mSource != null) - { - BoardCAD.getInstance().setSelectedEdit(mSource); - mSource.onBrdChanged(); - BoardCAD.getInstance().onControlPointChanged(); - } - } - public boolean canUndo(){return mCanUndo;}; - - public Object clone(){ - try { - return super.clone(); - } catch(CloneNotSupportedException e) { - System.out.println("BoardComand.clone() Exception: " + e.toString()); - throw new Error("CloneNotSupportedException in BrdCommand"); - } - } - - public void onSetCurrent() - { - - } - - public void onCurrentChanged() - { - - } - - public abstract String getCommandString(); -} - -class BrdMacroCommand extends BrdCommand { - - LinkedList mBrdCommand; - - BrdMacroCommand() - { - mBrdCommand = new LinkedList(); - } - - public void add(BrdCommand cmd) - { - mBrdCommand.add(cmd); - } - - public void execute() - { - for(Iterator i = mBrdCommand.iterator(); i.hasNext();) - { - ((BrdCommand)i.next()).doAction(); - } - super.execute(); - } - public void redo() - { - for(Iterator i = mBrdCommand.iterator(); i.hasNext();) - ((BrdCommand)i.next()).redo(); - - super.redo(); - } - - public void undo() - { -// Java 6 for(Iterator i = mBrdCommand.descendingIterator(); i.hasNext();) -// ((BrdCommand)i.next()).undo(); - - for(ListIterator i = mBrdCommand.listIterator(mBrdCommand.size()); i.hasPrevious();) - { - ((BrdCommand)i.previous()).undo(); - } - - super.undo(); - } - - public String getCommandString() - { - return LanguageResource.getString("MACROCMD_STR"); - } - -} - - - -class PointEditCommand extends BrdCommand -{ - Point2D.Double mEditedPoint; - Point2D.Double mOriginalPos; - Point2D.Double mNewPos; - - PointEditCommand(Point2D.Double point) - { - mEditedPoint = point; - mOriginalPos = (Point2D.Double)point.clone(); - } - - public void execute(Point2D.Double newPos) - { - mNewPos = (Point2D.Double)newPos.clone(); - redo(); - } - - public void redo() - { - mEditedPoint.setLocation(mNewPos); - } - - public void undo() - { - mEditedPoint.setLocation(mOriginalPos); - } - - public String getCommandString() - { - return LanguageResource.getString("MACROCMD_STR"); - } -} - - -class NurbsEditCommand extends BrdCommand -{ - NurbsBoard oldBoard; - NurbsBoard newBoard; - BoardHandler board_handler; - - NurbsEditCommand() - { - NurbsBoard board; - board_handler=BoardCAD.getInstance().getBoardHandler(); - board=board_handler.getActiveBoard(); - if(board!=null) - oldBoard = (NurbsBoard)board.clone(); - } - - public void execute() - { - NurbsBoard board; - board=board_handler.getActiveBoard(); - if(board!=null) - newBoard = (NurbsBoard)board.clone(); - super.execute(); - } - - public void redo() - { - board_handler.setActiveBoard(newBoard); - } - - public void undo() - { - board_handler.setActiveBoard(oldBoard); - } - - public String getCommandString() - { - return LanguageResource.getString("MACROCMD_STR"); - } -} - - - -abstract class BrdInputCommand extends BrdCommand -{ - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - } - - public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) - { - } - - public void onRightMouseButtonPressed(BoardEdit source, MouseEvent event) - { - } - - public void onRightMouseButtonReleased(BoardEdit source, MouseEvent event) - { - } - - public void onMouseWheelButtonPressed(BoardEdit source, MouseEvent event) - { - } - - public void onMouseWheelButtonReleased(BoardEdit source, MouseEvent event) - { - } - - public void onMouseMove(BoardEdit source, MouseEvent event) - { - } - - public void onMouseDragged(BoardEdit source, MouseEvent event) - { - } - - - public boolean onKeyEvent(BoardEdit source, KeyEvent event) - { - return false; - } - - public void onMouseWheelMoved(BoardEdit source, MouseWheelEvent e) - { - } -} - - -class BrdPanCommand extends BrdInputCommand -{ - double mOriginalOffsetX; - double mOriginalOffsetY; - Point mPressedPos; - boolean mButtonPressed = true; - - BrdPanCommand() - { - mCanUndo = false; - } - - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - Point pos = event.getPoint(); - mOriginalOffsetX = source.getOffsetX(); - mOriginalOffsetY = source.getOffsetY(); - mPressedPos = (Point)pos.clone(); - mButtonPressed = true; - } - - - public void onMouseDragged(BoardEdit source, MouseEvent event) - { - Point pos = event.getPoint(); - source.setOffsetX(mOriginalOffsetX + (pos.x - mPressedPos.x)); - source.setOffsetY(mOriginalOffsetY + (pos.y - mPressedPos.y)); - source.repaint(); - } - - public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) - { - mButtonPressed = false; - } - - public boolean onKeyEvent(BoardEdit source, KeyEvent event) - { - if(event.getID() != KeyEvent.KEY_PRESSED) - return false; - - int key = event.getKeyCode(); - - if(key == KeyEvent.VK_LEFT) - { - source.setOffsetX(source.getOffsetX()-(1.0f*source.getScale())); - source.repaint(); - return true; - } - else if(key == KeyEvent.VK_RIGHT) - { - source.setOffsetX(source.getOffsetX()+(1.0f*source.getScale())); - source.repaint(); - return true; - } - if(key == KeyEvent.VK_UP) - { - source.setOffsetY(source.getOffsetY()-(1.0f*source.getScale())); - source.repaint(); - return true; - } - else if(key == KeyEvent.VK_DOWN) - { - source.setOffsetY(source.getOffsetY()+(1.0f*source.getScale())); - source.repaint(); - return true; - } - return false; - } - - public String getCommandString() - { - return LanguageResource.getString("PANCMD_STR"); - } - -} - - - - -class BrdZoomCommand extends BrdInputCommand -{ - Point mClickedPos; - Point mZoomRectCorner; - double mNewScale; - boolean mButtonPressed = false; - - BrdZoomCommand() - { - mCanUndo = false; - - mClickedPos = new Point(); - mZoomRectCorner = new Point(); - } - - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - Point pos = event.getPoint(); - mClickedPos.setLocation(pos); - mButtonPressed = true; - mNewScale = source.getScale(); - } - - public void onMouseDragged(BoardEdit source, MouseEvent event) - { - Point pos = event.getPoint(); - - zoomSetDims(source, pos); - } - - public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) - { - source.setScale(source.getScale()/mNewScale); - - source.setOffsetX((source.getOffsetX()-mClickedPos.x)/mNewScale); - source.setOffsetY((source.getOffsetY()-mClickedPos.y)/mNewScale); - - source.disableDrawZoomRectangle(); - source.repaint(); - - BoardCAD.getInstance().mLifeSizeButton.getModel().setSelected(false); - - execute(); - } - - public void zoomSetDims(BoardEdit source, Point pos) - { - Dimension dim = source.getSize(); - - double scaleX = (double)Math.abs(pos.x - mClickedPos.x)/(double)dim.width; - double scaleY = (double)Math.abs(pos.y - mClickedPos.y)/(double)dim.height; - double usedScale = (scaleX > scaleY)?scaleX:scaleY; - - mZoomRectCorner.setLocation(mClickedPos.x+(dim.width*usedScale), mClickedPos.y+(dim.height*usedScale)); - - mNewScale = usedScale; - - source.setDrawZoomRectangle(mClickedPos, mZoomRectCorner); - source.repaint(); - } - - public void zoom(BoardEdit source) - { - source.setScale(source.getScale()/mNewScale); - - source.setOffsetX((source.getOffsetX()-mClickedPos.x)/mNewScale); - source.setOffsetY((source.getOffsetY()-mClickedPos.y)/mNewScale); - - source.disableDrawZoomRectangle(); - source.repaint(); - -// BoardCAD.getInstance().mLifeSizeButton.getModel().setSelected(false); - - execute(); - } - - public void zoomInStep(BoardEdit source, boolean fine) - { - Dimension dim = source.getSize(); - Dimension scaledDim = source.getSize(); - scaledDim.width *= (fine?0.99:0.9); - scaledDim.height *= (fine?0.99:0.9); - - Point pos = new Point(); - mClickedPos.x = (dim.width - scaledDim.width)/2; - mClickedPos.y = (dim.height - scaledDim.height)/2; - - pos.x = mClickedPos.x + scaledDim.width; - pos.y = mClickedPos.y + scaledDim.height; - - zoomSetDims(source, pos); - - zoom(source); - } - - public void zoomOutStep(BoardEdit source, boolean fine) - { - Dimension dim = source.getSize(); - Dimension scaledDim = source.getSize(); - scaledDim.width *= (fine?1.01:1.1); - scaledDim.height *= (fine?1.01:1.1); - - Point pos = new Point(); - mClickedPos.x = (dim.width - scaledDim.width)/2; - mClickedPos.y = (dim.height - scaledDim.height)/2; - - pos.x = mClickedPos.x + scaledDim.width; - pos.y = mClickedPos.y + scaledDim.height; - - zoomSetDims(source, pos); - - zoom(source); - } - - public boolean onKeyEvent(BoardEdit source, KeyEvent event) - { - if(event.getID() != KeyEvent.KEY_PRESSED) - return false; - - int key = event.getKeyChar(); - - if(key == '+') - { - zoomInStep(source, event.isAltDown()); - - return true; - } - else if(key == '-') - { - zoomOutStep(source, event.isAltDown()); - - return true; - } - return false; - } - - public String getCommandString() - { - return LanguageResource.getString("ZOOMCMD_STR"); - } - -} - - -class BrdRotateViewCommand extends BrdInputCommand -{ - Point mClickedPos; - Point mZoomRectCorner; - double mNewScale; - boolean mButtonPressed = false; - private static int clicked_x; - private static int clicked_y; - private static int dragged_x; - private static int dragged_y; - - BrdRotateViewCommand() - { - mCanUndo = false; - - mClickedPos = new Point(); - mZoomRectCorner = new Point(); - } - - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - clicked_x=event.getX(); - clicked_y=event.getY(); - - } - - public void onMouseDragged(BoardEdit source, MouseEvent event) - { - BoardHandler board_handler=BoardCAD.getInstance().getBoardHandler(); - - if(source.mDrawControl == 0) - { - dragged_x=event.getX(); - dragged_y=event.getY(); - double theta2=source.theta+dragged_x-clicked_x; - double[][] m1 = {{Math.cos(-theta2*3.1415/180.0), 0.0, -Math.sin(-theta2*3.1415/180.0)}, - {0.0, 1.0, 0.0}, - {Math.sin(-theta2*3.1415/180.0), 0.0, Math.cos(-theta2*3.1415/180.0)}}; - double zeta2=source.zeta+dragged_y-clicked_y; - double[][] m2 = {{1.0, 0.0, 0.0}, - {0.0, Math.cos(-zeta2*3.1415/180.0), -Math.sin(-zeta2*3.1415/180.0)}, - {0.0, Math.sin(-zeta2*3.1415/180.0), Math.cos(-zeta2*3.1415/180.0)}}; - source.mRotationMatrix=cross_product(m1,m2); - //design_panel.redraw(); - } - } - - public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) - { - - source.theta=source.theta+dragged_x-clicked_x; - source.zeta=source.zeta+dragged_y-clicked_y; - - source.repaint(); - - execute(); - } - - - - public String getCommandString() - { - return LanguageResource.getString("ROTATEVIEWCMD_STR"); - } - - private double[][] cross_product(double[][] m1, double[][] m2) - { - double[][] m=new double[3][3]; - - m[0][0]=m1[0][0]*m2[0][0]+m1[1][0]*m2[0][1]+m1[2][0]*m2[0][2]; - m[1][0]=m1[0][0]*m2[1][0]+m1[1][0]*m2[1][1]+m1[2][0]*m2[1][2]; - m[2][0]=m1[0][0]*m2[2][0]+m1[1][0]*m2[2][1]+m1[2][0]*m2[2][2]; - - m[0][1]=m1[0][1]*m2[0][0]+m1[1][1]*m2[0][1]+m1[2][1]*m2[0][2]; - m[1][1]=m1[0][1]*m2[1][0]+m1[1][1]*m2[1][1]+m1[2][1]*m2[1][2]; - m[2][1]=m1[0][1]*m2[2][0]+m1[1][1]*m2[2][1]+m1[2][1]*m2[2][2]; - - m[0][2]=m1[0][2]*m2[0][0]+m1[1][2]*m2[0][1]+m1[2][2]*m2[0][2]; - m[1][2]=m1[0][2]*m2[1][0]+m1[1][2]*m2[1][1]+m1[2][2]*m2[1][2]; - m[2][2]=m1[0][2]*m2[2][0]+m1[1][2]*m2[2][1]+m1[2][2]*m2[2][2]; - - return m; - - } - - -} - - -class BrdAddGuidePointCommand extends BrdInputCommand -{ - BrdAddGuidePointCommand() - { - mCanUndo = false; - - } - - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - Point pos = event.getPoint(); - Point2D.Double guidePoint = source.screenCoordinateToBrdCoordinate(pos); - - source.getGuidePoints().add(guidePoint); - source.repaint(); - BoardCAD.getInstance().getGuidePointsDialog().update(); - } - - public String getCommandString() - { - return LanguageResource.getString("ADDGUIDEPOINTCMD_STR"); - } -} - -//Class with functions for storing changes to a brd for undo/redo functionality -//This is to pick up on changes from scaling and translation for fitting rocker to zero -//and fitting cross sections to width and thickness -abstract class BrdAbstractEditCommand extends BrdInputCommand implements Cloneable -{ - class ControlPointChange implements Cloneable - { - BezierKnot mChangedPoint; - BezierKnot mBefore; - BezierKnot mAfter; - - ControlPointChange(BezierKnot point, BezierKnot before, BezierKnot after) - { - mChangedPoint = point; - mBefore = before; - mAfter = after; - } - - void undo() - { - mChangedPoint.set(mBefore); - } - - void redo() - { - mChangedPoint.set(mAfter); - } - - public Object clone() - { - ControlPointChange controlPointChange = null; - try { - controlPointChange = (ControlPointChange)super.clone(); - } catch(CloneNotSupportedException e) { - System.out.println("BrdAbstractEditCommand.clone() Exception: " + e.toString()); - throw new Error("CloneNotSupportedException in BrdAbstractEditCommand"); - } - - controlPointChange.mChangedPoint = (BezierKnot)mChangedPoint; - controlPointChange.mBefore = (BezierKnot)mBefore.clone(); - controlPointChange.mAfter = (BezierKnot)mAfter.clone(); - - return controlPointChange; - } - - - } - - static private ArrayList mPoints = new ArrayList(); - static private ArrayList mBeforeChangePoints = new ArrayList(); - - private ArrayList mChanges; - - void saveBeforeChange(BezierBoard brd) - { - mPoints.clear(); - mBeforeChangePoints.clear(); - mChanges = new ArrayList(); - - BezierSpline currentBezier = null; - BezierKnot point = null; - for(int i=0;i(); - for(int i = 0; i < this.mChanges.size(); i++) - { - abstractEditCommand.mChanges.add((ControlPointChange)this.mChanges.get(i).clone()); - } - - return abstractEditCommand; - } -} - -class BrdEditCommand extends BrdAbstractEditCommand -{ - static double KEY_MOVE_AMOUNT = 1.0f; - -// ArrayList mSelectedControlPointsCopy; - ArrayList mControlPointsBeforeChange; -// ArrayList mControlPointsAfterChange; - Point2D.Double mDragStartPos; - Point2D.Double mDragOffset; - Point mBoxSelectStartPos; - int mWhich = 0; - boolean mIsDragging = false; - boolean mIsKeyEditing = false; - boolean mIsBoxSelecting = false; - int mCurrentKeyCode = 0; - int mRepeat = 1; - - BrdPanCommand mPanCommand = new BrdPanCommand(); - BrdZoomCommand mZoomCommand = new BrdZoomCommand(); - NurbsEditCommand mNurbsCommand = new NurbsEditCommand(); - - boolean mIsPaning = false; - - final double MAX_OFF = 4.0f; - - private static int clicked_x; - private static int clicked_y; - private static int dragged_x; - private static int dragged_y; - protected static boolean is_marked; - - private NurbsPoint p; - - - BrdEditCommand() - { - } - - public void execute() - { - /* mControlPointsAfterChange = new ArrayList(); - for(int i = 0; i < mSelectedControlPointsCopy.size(); i++) - { - mControlPointsAfterChange.add((ControlPoint)mSelectedControlPointsCopy.get(i).clone()); - } - */ - mSource.onBrdChanged(); //adjust rocker to zero and cross sections to width and thickness - super.execute(); - mIsDragging = false; - mIsKeyEditing = false; - mCurrentKeyCode = 0; -// mSelectedControlPointsCopy = null; - mControlPointsBeforeChange = null; -// mControlPointsAfterChange = null; - mDragStartPos = null; - mDragOffset = null; - mSource = null; - mRepeat = 1; - } - - public void onSetCurrent() - { - BoardCAD.getInstance().getControlPointInfo().setEnabled(true); - } - - public void onCurrentChanged() - { - BoardCAD.getInstance().getControlPointInfo().setEnabled(false); - } - - void saveControlPointsBeforeChange(BoardEdit source) - { - ArrayList selectedControlPoints = source.getSelectedControlPoints(); - -// Save the original points - mControlPointsBeforeChange = new ArrayList(); -// mSelectedControlPointsCopy = new ArrayList(); - for(int i = 0; i < selectedControlPoints.size(); i++) - { - mControlPointsBeforeChange.add((BezierKnot)selectedControlPoints.get(i).clone()); -// mSelectedControlPointsCopy.add(selectedControlPoints.get(i)); - } -// mControlPointsAfterChange = null; - super.saveBeforeChange(source.getCurrentBrd()); - } - - public void moveControlPoints(double x_diff, double y_diff, int which) - { - - ArrayList selectedControlPoints = mSource.getSelectedControlPoints(); - if(selectedControlPoints.size() > 1 || which == 0) - { - for(int i = 0; i < selectedControlPoints.size(); i++) - { - BezierKnot sel = selectedControlPoints.get(i); - BezierKnot org = mControlPointsBeforeChange.get(i); - - sel.setControlPointLocation(org.getEndPoint().x+x_diff, org.getEndPoint().y+y_diff); - - } - } - else{ -// We know we only have a single point, so just use it directly - selectedControlPoints.get(0).setLocation(mWhich, mControlPointsBeforeChange.get(0).getPoints()[mWhich].x+x_diff, mControlPointsBeforeChange.get(0).getPoints()[mWhich].y+y_diff); - - if(selectedControlPoints.get(0).isContinous()) - { - - int other = (which ==1)?2:1; - -// Calculate the length of the other end vector - double ox = (double)mControlPointsBeforeChange.get(0).getPoints()[other].x - mControlPointsBeforeChange.get(0).getPoints()[0].x; - double oy = (double)mControlPointsBeforeChange.get(0).getPoints()[other].y - mControlPointsBeforeChange.get(0).getPoints()[0].y; - - double ol = Math.sqrt(ox*ox+oy*oy); - if(ol == 0) - return; //Avoid multiply by zero - -// Length of current - double sx = (double)selectedControlPoints.get(0).getPoints()[which].x - mControlPointsBeforeChange.get(0).getPoints()[0].x; - double sy = (double)selectedControlPoints.get(0).getPoints()[which].y - mControlPointsBeforeChange.get(0).getPoints()[0].y; - - double sl = Math.sqrt(sx*sx+sy*sy); - if(sl == 0) - return; //Avoid division by zero - -// Normalize - sx /= sl; - sy /= sl; - - selectedControlPoints.get(0).setLocation(other, (double)(-sx*ol) + selectedControlPoints.get(0).getPoints()[0].x, - (double)(-sy*ol) + selectedControlPoints.get(0).getPoints()[0].y); - } - - /*Debug - System.out.println("Tangent to Prev angle: " + mSelectedControlPointsCopy.get(0).getTangentToPrevAngle() + " Tangent to Next angle: " + mSelectedControlPointsCopy.get(0).getTangentToNextAngle()); - double a = mSelectedControlPointsCopy.get(0).getTangentToPrevAngle(); - a = Math.abs(Math.PI - a); - double b = mSelectedControlPointsCopy.get(0).getTangentToNextAngle(); - boolean cont = (Math.abs(a-b) < 0.02)?true:false; - System.out.println("a: " + a + " b: " + b + " cont:" + cont); - */ - } - BoardCAD.getInstance().onBrdChanged(); - BoardCAD.getInstance().onControlPointChanged(); - mSource.repaint(); - } - - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - - //marking nurbs points - - clicked_x=event.getX(); - clicked_y=event.getY(); - - BoardHandler board_handler=BoardCAD.getInstance().getBoardHandler(); - - if(source.mDrawControl == 0) - { - clicked_x=event.getX(); - clicked_y=event.getY(); - board_handler.set_x((clicked_x-source.mOffsetX)/(source.mScale/10)); - board_handler.set_z((clicked_y-source.mOffsetY)/(source.mScale/10)); - is_marked=board_handler.outline_mark(source.mScale/10, source.mRotationMatrix); - if(is_marked) - { - p=new NurbsPoint(board_handler.get_x(), board_handler.get_y(), board_handler.get_z()); - } - } - else if(source.mDrawControl == BezierBoardDrawUtil.MirrorY) - { - board_handler.set_x((clicked_x-source.mOffsetX)/(source.mScale/10)); - board_handler.set_z((clicked_y-source.mOffsetY)/(source.mScale/10)); - is_marked=board_handler.outline_mark(source.mScale/10); - } - else if(source.mDrawControl == BezierBoardDrawUtil.FlipY) - { - board_handler.set_x((clicked_x-source.mOffsetX)/(source.mScale/10)); - board_handler.set_y((-clicked_y+source.mOffsetY)/(source.mScale/10)); - is_marked=board_handler.rocker_mark(source.mScale/10); - } - else if(source.mDrawControl == (BezierBoardDrawUtil.MirrorX | BezierBoardDrawUtil.FlipY)) - { - board_handler.set_z((clicked_x-source.mOffsetX)/(source.mScale/10)); - board_handler.set_y((-clicked_y+source.mOffsetY)/(source.mScale/10)); - is_marked=board_handler.edge_mark(source.mScale/10); - } - - if(is_marked) - { - BoardCAD.getInstance().status_panel.set_point_name(board_handler.get_point_name()); - BoardCAD.getInstance().status_panel.set_coordinates(board_handler.get_x(), board_handler.get_y(), board_handler.get_z()); - mNurbsCommand = new NurbsEditCommand(); - } - - - //marking bezier point - - Point pos = event.getPoint(); - Point2D.Double brdPos = source.screenCoordinateToBrdCoordinate(pos); - - BezierSpline[] splines = source.getActiveBezierSplines(BoardCAD.getInstance().getCurrentBrd()); - if(splines == null) - return; - - BezierKnot bestMatch = null; - boolean hitControlPoint = false; - for(int i = 0; i < splines.length; i++) - { - bestMatch = splines[i].findBestMatch(brdPos); - if(bestMatch != null) - { - mWhich = splines[0].getBestMatchWhich(); - hitControlPoint = (double)brdPos.distance(bestMatch.getPoints()[mWhich]) < (MAX_OFF/source.getScale()); - if(hitControlPoint) - break; - } - } - - if(bestMatch == null) - { - mSource = source; - mIsBoxSelecting = true; - mBoxSelectStartPos = pos; - return; - } - - if(!hitControlPoint) - { - mSource = source; - mIsBoxSelecting = true; - mBoxSelectStartPos = pos; - - if(!(event.isShiftDown() || event.isControlDown())) - { - source.clearSelectedControlPoints(); //If shift is held, don't clear - } - - } - else - { - boolean alreadySelected = source.mSelectedControlPoints.contains(bestMatch); - - if(!alreadySelected && (!(event.isShiftDown() || event.isControlDown())) ) - source.clearSelectedControlPoints(); //If shift or control is held or the ControlPoint is already selected, don't clear - - if(event.isControlDown()) - source.toggleSelectedControlPoint(bestMatch); - else - source.addSelectedControlPoint(bestMatch); - } - - if(hitControlPoint && source.mSelectedControlPoints.contains(bestMatch)) - { - mDragStartPos = source.screenCoordinateToBrdCoordinate(pos); - - mDragOffset = new Point2D.Double(bestMatch.getPoints()[mWhich].x-mDragStartPos.x,bestMatch.getPoints()[mWhich].y-mDragStartPos.y); - - } - - BoardCAD.getInstance().onControlPointChanged(); - source.repaint(); - BoardCAD.getInstance().redraw(); - - } - - - public void onMouseDragged(BoardEdit source, MouseEvent event) - { - - - //dragging nurbs points - -// clicked_x=event.getX(); -// clicked_y=event.getY(); - - BoardHandler board_handler=BoardCAD.getInstance().getBoardHandler(); - - if(is_marked) - { - if(source.mDrawControl == 0) - { - - double[][] m=invert(source.mRotationMatrix); - double myy=(source.mRotationMatrix[1][0]*p.x+source.mRotationMatrix[1][1]*p.y+source.mRotationMatrix[1][2]*p.z); - - board_handler.set_x( m[0][0]*(event.getX()-source.mOffsetX)/(source.mScale/10) + m[0][1]*myy + m[0][2]*(event.getY()-source.mOffsetY)/(source.mScale/10) );// + m[0][2]*100); - board_handler.set_y( m[1][0]*(event.getX()-source.mOffsetX)/(source.mScale/10) + m[1][1]*myy + m[1][2]*(event.getY()-source.mOffsetY)/(source.mScale/10) );// + m[1][2]*100); - board_handler.set_z( m[2][0]*(event.getX()-source.mOffsetX)/(source.mScale/10) + m[2][1]*myy + m[2][2]*(event.getY()-source.mOffsetY)/(source.mScale/10) );// + m[2][2]*100); - - board_handler.set_point(source.mRotationMatrix); - } - else if(source.mDrawControl == BezierBoardDrawUtil.MirrorY) - { - if(!BoardCAD.getInstance().mIsLockedX.getState()) - board_handler.set_x((event.getX()-source.mOffsetX)/(source.mScale/10)); - if(!BoardCAD.getInstance().mIsLockedZ.getState()) - board_handler.set_z((event.getY()-source.mOffsetY)/(source.mScale/10)); - board_handler.set_point(); - } - else if(source.mDrawControl == BezierBoardDrawUtil.FlipY) - { - - if(!BoardCAD.getInstance().mIsLockedX.getState()) - board_handler.set_x((event.getX()-source.mOffsetX)/(source.mScale/10)); - if(!BoardCAD.getInstance().mIsLockedY.getState()) - board_handler.set_y((source.mOffsetY-event.getY())/(source.mScale/10)); - board_handler.set_point(); - } - else if(source.mDrawControl == (BezierBoardDrawUtil.MirrorX | BezierBoardDrawUtil.FlipY)) - { - if(!BoardCAD.getInstance().mIsLockedY.getState()) - board_handler.set_y((-event.getY()+source.mOffsetY)/(source.mScale/10)); - if(!BoardCAD.getInstance().mIsLockedZ.getState()) - board_handler.set_z((event.getX()-source.mOffsetX)/(source.mScale/10)); - board_handler.set_point(); - } - - BoardCAD.getInstance().redraw(); - } - - - //dragging bezier points - - - if(mIsKeyEditing) - return; - - if(mIsPaning) - { - mPanCommand.onMouseDragged(source, event); - return; - } - - if(mIsBoxSelecting) - { - mSource.setDrawZoomRectangle(mBoxSelectStartPos, event.getPoint()); - - return; - } - - ArrayList selectedControlPoints = source.getSelectedControlPoints(); - if(selectedControlPoints.size() == 0) - return; - - Point pos = event.getPoint(); - Point2D.Double brdPos = source.screenCoordinateToBrdCoordinate(pos); - - if(mIsDragging == false) - { - /* BezierPatch ControlPoints = source.getBezierControlPoints(BoardCAD.getInstance().getCurrentBrd()); - ControlPoint bestMatch = ControlPoints.findBestMatch(brdPos); - mWhich = ControlPoints.getBestMatchWhich(); - - double distance = (double)brdPos.distance(bestMatch.mPoints[mWhich]); - - if(distance > (MAX_OFF/source.getScale()) || bestMatch == null) - return; //trying to drag an unselected point - - if(!selectedControlPoints.contains(bestMatch)) - return; //trying to drag an unselected point - - mDragStartPos = source.screenCoordinateToBrdCoordinate(pos); - - mDragOffset = new Point2D.Double(bestMatch.mPoints[mWhich].x-mDragStartPos.x,bestMatch.mPoints[mWhich].y-mDragStartPos.y); - */ - saveControlPointsBeforeChange(source); - - mIsDragging = true; - mSource = source; - } - - brdPos.x += mDragOffset.x; - brdPos.y += mDragOffset.y; - - double x_diff = (brdPos.x - mDragStartPos.x)*(event.isAltDown()?.1f:1f); - double y_diff = (brdPos.y - mDragStartPos.y)*(event.isAltDown()?.1f:1f); - - moveControlPoints(x_diff, y_diff, mWhich); - - - } - - public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) - { - if(is_marked) - { - mNurbsCommand.execute(); - is_marked=false; - } - - if(mIsBoxSelecting) - { - mSource.disableDrawZoomRectangle(); - - Point pos = event.getPoint(); - Point2D.Double boxStartPos = source.screenCoordinateToBrdCoordinate(mBoxSelectStartPos); - Point2D.Double boxEndPos = source.screenCoordinateToBrdCoordinate(pos); - - if(boxStartPos.x > boxEndPos.x) - { - double x = boxStartPos.x; - boxStartPos.x = boxEndPos.x; - boxEndPos.x = x; - } - - if(boxStartPos.y > boxEndPos.y) - { - double y = boxStartPos.y; - boxStartPos.y = boxEndPos.y; - boxEndPos.y = y; - } - - BezierSpline[] splines = source.getActiveBezierSplines(BoardCAD.getInstance().getCurrentBrd()); - if(splines == null) - return; - - - for(int k = 0; k < splines.length; k++) - { - for(int i = 0; i < splines[k].getNrOfControlPoints(); i++) - { - BezierKnot point = splines[k].getControlPoint(i); - for(int j = 0; j < 3; j++) - { - Point2D.Double p = point.getPoints()[j]; - - if(p.x > boxStartPos.x && p.x < boxEndPos.x && p.y > boxStartPos.y && p.y < boxEndPos.y ) //Check within box - { - mWhich = j; - - if(event.isControlDown()) - source.toggleSelectedControlPoint(point); - else - source.addSelectedControlPoint(point); - - break; - } - } - } - } - - BoardCAD.getInstance().onControlPointChanged(); - source.repaint(); - mIsBoxSelecting = false; - } - - ArrayList selectedControlPoints = source.getSelectedControlPoints(); - if(selectedControlPoints.size() == 0) - return; - - if(mIsDragging == true) - { - execute(); - } - } - - public void onMouseWheelMoved(BoardEdit source, MouseWheelEvent event) - { - int scroll = event.getWheelRotation(); - - int steps = Math.abs(scroll); - for(int i = 0; i < steps; i++) - { - if(scroll < 0) - { - mZoomCommand.zoomInStep(source, event.isAltDown()); - } - else - { - mZoomCommand.zoomOutStep(source, event.isAltDown()); - } - - } - event.consume(); - } - - public void onMouseWheelButtonPressed(BoardEdit source, MouseEvent event) - { - mPanCommand.onLeftMouseButtonPressed(source, event); - mIsPaning = true; - } - - public void onMouseWheelButtonReleased(BoardEdit source, MouseEvent event) - { - mPanCommand.onLeftMouseButtonReleased(source, event); - mIsPaning = false; - } - - public boolean onKeyEvent(BoardEdit source, KeyEvent event) - { - if(mIsDragging) - return false; - - ArrayList selectedControlPoints = source.getSelectedControlPoints(); - if(selectedControlPoints.size() == 0) - return false; - - double mulX = ((source.mDrawControl&(BezierBoardDrawUtil.FlipX)) != 0)?-1.0f:1.0f; - double mulY = ((source.mDrawControl&(BezierBoardDrawUtil.FlipY)) != 0)?-1.0f:1.0f; - - if(event.getID() == KeyEvent.KEY_PRESSED) - { - int key = event.getKeyCode(); - - double x_diff = 0; - double y_diff = 0; - double movement = (KEY_MOVE_AMOUNT/source.getScale())*(event.isAltDown()?.1f:1f); - -// Length of current - double sx; - double sy; - if(mControlPointsBeforeChange == null || mControlPointsBeforeChange.size() == 0) - { - sx = (double)selectedControlPoints.get(0).getPoints()[mWhich].x - selectedControlPoints.get(0).getPoints()[0].x; - sy = (double)selectedControlPoints.get(0).getPoints()[mWhich].y - selectedControlPoints.get(0).getPoints()[0].y; - } - else - { - sx = (double)mControlPointsBeforeChange.get(0).getPoints()[mWhich].x - mControlPointsBeforeChange.get(0).getPoints()[0].x; - sy = (double)mControlPointsBeforeChange.get(0).getPoints()[mWhich].y - mControlPointsBeforeChange.get(0).getPoints()[0].y; - } - - double sl = Math.sqrt(sx*sx+sy*sy); - -// Normalize - double snx = sx/sl; - double sny = sy/sl; - - switch(key) - { - case KeyEvent.VK_LESS: - if(selectedControlPoints.size() > 1 || mIsKeyEditing == true) - return false; - - --mWhich; - if(mWhich < 0) - mWhich = 2; - - source.repaint(); - break; - - case KeyEvent.VK_C: - if(selectedControlPoints.size() > 1 || mIsKeyEditing == true) - return false; - - BezierSpline[] splines = source.getActiveBezierSplines(BoardCAD.getInstance().getCurrentBrd()); - if(splines == null) - return false; - - for(int i = 0; i < splines.length; i++) - { - int currentIndex = splines[i].indexOf(selectedControlPoints.get(0)); - if(currentIndex == -1) - continue; - - int newIndex = ++currentIndex%splines[i].getNrOfControlPoints(); - - selectedControlPoints.clear(); - - selectedControlPoints.add(splines[i].getControlPoint(newIndex)); - - source.repaint(); - } - break; - - case KeyEvent.VK_LEFT: - x_diff = -movement*mulX*mRepeat; - break; - - case KeyEvent.VK_RIGHT: - x_diff = movement*mulX*mRepeat; - break; - - case KeyEvent.VK_UP: - y_diff = -movement*mulY*mRepeat; - break; - - case KeyEvent.VK_DOWN: - y_diff = movement*mulY*mRepeat; - break; - - case KeyEvent.VK_E: - case KeyEvent.VK_R: - if(mWhich == 0 || selectedControlPoints.size() > 1) - return false; - - x_diff = (double)(snx*movement*((key==KeyEvent.VK_R)?-1.0f:1.0f))*mRepeat; - y_diff = (double)(sny*movement*((key==KeyEvent.VK_R)?-1.0f:1.0f))*mRepeat; - break; - - case KeyEvent.VK_Q: - case KeyEvent.VK_W: - if(mWhich == 0 || selectedControlPoints.size() > 1) - return false; - - double angle = (((double)Math.PI/180.0f)*mRepeat)*((key==KeyEvent.VK_Q)?-1.0f:1.0f)*(event.isAltDown()?.1f:1f); - x_diff = (double)((Math.cos(angle)*sx - Math.sin(angle)*sy) - sx); - y_diff = (double)((Math.sin(angle)*sx + Math.cos(angle)*sy) - sy); - break; - - default: - return false; - } - - if(mIsKeyEditing == false) - { - saveControlPointsBeforeChange(source); - - mIsKeyEditing = true; - mCurrentKeyCode = key; - - mRepeat = 1; - - mSource = source; - } - - mRepeat++; - - moveControlPoints(x_diff, y_diff, mWhich); - - BoardCAD.getInstance().onControlPointChanged(); - source.repaint(); - return true; - } - else if(event.getID() == KeyEvent.KEY_RELEASED) - { - if(mIsKeyEditing == true) - { - if(mCurrentKeyCode == event.getKeyCode()) - { - execute(); - } - - } - - } - return false; - } - - public void setContinous(BoardEdit source, boolean continous) - { - if(source.getSelectedControlPoints().size() == 0) - return; - - mSource = source; - - saveControlPointsBeforeChange(mSource); - - mSource.getSelectedControlPoints().get(0).setContinous(continous); - - moveControlPoints(0, 0, (mWhich == 0)?1:mWhich); //If endpoint selected, select tangent - - execute(); - - } - - public void setControlPoint(BoardEdit source, Point2D.Double pos) - { - mSource = source; - - saveControlPointsBeforeChange(mSource); - - double dx = pos.x - mControlPointsBeforeChange.get(0).getPoints()[mWhich].x; - double dy = pos.y - mControlPointsBeforeChange.get(0).getPoints()[mWhich].y; - - moveControlPoints(dx, dy, mWhich); - - execute(); - - } - - public void rotateControlPoint(BoardEdit source, double targetAngle) - { - mSource = source; - - saveControlPointsBeforeChange(mSource); - - ArrayList selectedControlPoints = source.getSelectedControlPoints(); - if(mWhich == 0 || selectedControlPoints.size() > 1) - return; - - double sx = (double)selectedControlPoints.get(0).getPoints()[mWhich].x - selectedControlPoints.get(0).getPoints()[0].x; - double sy = (double)selectedControlPoints.get(0).getPoints()[mWhich].y - selectedControlPoints.get(0).getPoints()[0].y; - - Point2D.Double horAxis = new Point2D.Double(1.0,0.0); - Point2D.Double pointVec = new Point2D.Double(sx,sy); - - double pointAngle = VecMath.getVecAngle(horAxis, pointVec); - - double rotAngle = targetAngle - pointAngle; - - double x_diff = (double)((Math.cos(rotAngle)*sx - Math.sin(rotAngle)*sy) - sx); - double y_diff = (double)((Math.sin(rotAngle)*sx + Math.cos(rotAngle)*sy) - sy); - - moveControlPoints(x_diff, y_diff, mWhich); - - BoardCAD.getInstance().onControlPointChanged(); - execute(); - } - - public void rotateControlPointToHorizontal(BoardEdit source) - { - ArrayList selectedControlPoints = source.getSelectedControlPoints(); - if(selectedControlPoints.size() != 1) - return; - - mSource = source; - - saveControlPointsBeforeChange(mSource); - - BezierKnot current = selectedControlPoints.get(0); - - double nextLength = current.getTangentToNextLength(); - double prevLength = current.getTangentToPrevLength(); - double x = current.getEndPoint().x; - double y = current.getEndPoint().y; - - double tanPrevSign = (current.getTangentToPrev().x-x>0)?1:-1; - double tanNextSign = (current.getTangentToNext().x-x>=0)?1:-1; - - if(mWhich == 0 || mWhich == 1) - { - current.setTangentToPrev((prevLength*tanPrevSign)+x, y); - if(current.isContinous()) - { - current.setTangentToNext((-nextLength*tanPrevSign)+x, y); - } - } - else if(mWhich == 2 || current.isContinous()) - { - current.setTangentToNext((nextLength*tanNextSign)+x, y); - if(current.isContinous()) - { - current.setTangentToPrev((-prevLength*tanNextSign)+x, y); - } - } - - BoardCAD.getInstance().onControlPointChanged(); - execute(); - } - - public void rotateControlPointToVertical(BoardEdit source) - { - ArrayList selectedControlPoints = source.getSelectedControlPoints(); - if(selectedControlPoints.size() != 1) - return; - - mSource = source; - - saveControlPointsBeforeChange(mSource); - - BezierKnot current = selectedControlPoints.get(0); - - double nextLength = current.getTangentToNextLength(); - double prevLength = current.getTangentToPrevLength(); - double x = current.getEndPoint().x; - double y = current.getEndPoint().y; - - double tanPrevSign = (current.getTangentToPrev().y-y>0)?1:-1; - double tanNextSign = (current.getTangentToNext().y-y>=0)?1:-1; - - if(mWhich == 0 || mWhich == 1) - { - current.setTangentToPrev(x, (prevLength*tanPrevSign)+y); - if(current.isContinous()) - { - current.setTangentToNext(x, (-nextLength*tanPrevSign)+y); - } - } - if(mWhich == 0 || mWhich == 2) - { - current.setTangentToNext(x, (nextLength*tanNextSign)+y); - if(current.isContinous()) - { - current.setTangentToPrev(x, (-prevLength*tanNextSign)+y); - - } - } - - BoardCAD.getInstance().onControlPointChanged(); - execute(); - } - - public void redo() - { - /* for(int i = 0; i < mSelectedControlPointsCopy.size(); i++) - { - mSelectedControlPointsCopy.get(i).set(mControlPointsAfterChange.get(i)); - } - */ super.redo(); - } - - public void undo() - { - /* for(int i = 0; i < mSelectedControlPointsCopy.size(); i++) - { - mSelectedControlPointsCopy.get(i).set(mControlPointsBeforeChange.get(i)); - } - */ super.undo(); - } - - public Object clone(){ - BrdEditCommand cmd = null; - - cmd = (BrdEditCommand)super.clone(); - -// The arrays are instansiated in this class so there is no need to copy them - - return cmd; - } - - public String getCommandString() - { - return LanguageResource.getString("EDITCMD_STR"); - } - - - private double[][] invert(double[][] a) - { - /* - - | a11 a12 a13 |-1 | a33a22-a32a23 -(a33a12-a32a13) a23a12-a22a13 | - | a21 a22 a23 | = 1/DET(A) * | -(a33a21-a31a23) a33a11-a31a13 -(a23a11-a21a13) | - | a31 a32 a33 | | a32a21-a31a22 -(a32a11-a31a12) a22a11-a21a12 | - - DET(A) = a11(a33a22-a32a23)-a21(a33a12-a32a13)+a31(a23a12-a22a13) - - */ - - double det=a[0][0]*(a[2][2]*a[1][1]-a[2][1]*a[1][2])-a[1][0]*(a[2][2]*a[0][1]-a[2][1]*a[0][2])+a[2][0]*(a[1][2]*a[0][1]-a[1][1]*a[0][2]); - - double[][] b={ {(a[2][2]*a[1][1]-a[2][1]*a[1][2])/det, -(a[2][2]*a[0][1]-a[2][1]*a[0][2])/det, (a[1][2]*a[0][1]-a[1][1]*a[0][2])/det }, - {-(a[2][2]*a[1][0]-a[2][0]*a[1][2])/det, (a[2][2]*a[0][0]-a[2][0]*a[0][2])/det, -(a[1][2]*a[0][0]-a[1][0]*a[0][2])/det }, - {(a[2][1]*a[1][0]-a[2][0]*a[1][1])/det, -(a[2][1]*a[0][0]-a[2][0]*a[0][1])/det, (a[1][1]*a[0][0]-a[1][0]*a[0][1])/det }}; - - - return b; - - - } - - private double[][] cross_product(double[][] m1, double[][] m2) - { - double[][] m=new double[3][3]; - - m[0][0]=m1[0][0]*m2[0][0]+m1[1][0]*m2[0][1]+m1[2][0]*m2[0][2]; - m[1][0]=m1[0][0]*m2[1][0]+m1[1][0]*m2[1][1]+m1[2][0]*m2[1][2]; - m[2][0]=m1[0][0]*m2[2][0]+m1[1][0]*m2[2][1]+m1[2][0]*m2[2][2]; - - m[0][1]=m1[0][1]*m2[0][0]+m1[1][1]*m2[0][1]+m1[2][1]*m2[0][2]; - m[1][1]=m1[0][1]*m2[1][0]+m1[1][1]*m2[1][1]+m1[2][1]*m2[1][2]; - m[2][1]=m1[0][1]*m2[2][0]+m1[1][1]*m2[2][1]+m1[2][1]*m2[2][2]; - - m[0][2]=m1[0][2]*m2[0][0]+m1[1][2]*m2[0][1]+m1[2][2]*m2[0][2]; - m[1][2]=m1[0][2]*m2[1][0]+m1[1][2]*m2[1][1]+m1[2][2]*m2[1][2]; - m[2][2]=m1[0][2]*m2[2][0]+m1[1][2]*m2[2][1]+m1[2][2]*m2[2][2]; - - return m; - - } - -} - -class BrdAddControlPointCommand extends BrdAbstractEditCommand -{ - static double K = 1.0f; - - private int mIndex = 0; - private BezierKnot mNewControlPoint = null; - private BezierSpline mSpline; - - - BrdAddControlPointCommand() - { - } - - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - super.saveBeforeChange(source.getCurrentBrd()); - - Point pos = event.getPoint(); - Point2D.Double brdPos = source.screenCoordinateToBrdCoordinate(pos); - - BezierSpline[] splines = source.getActiveBezierSplines(source.getCurrentBrd()); - mNewControlPoint = new BezierKnot(); - - for(int i = 0; i < splines.length; i++) - { - mIndex = splines[i].getSplitControlPoint(brdPos, mNewControlPoint); - - if(mIndex < 0) - continue; - - mSpline = splines[i]; - - mSpline.insert(mIndex, mNewControlPoint); - - Point2D.Double tmp = new Point2D.Double(); - - BezierKnot prev = mSpline.getControlPoint(mIndex-1); - BezierKnot next = mSpline.getControlPoint(mIndex+1); - - BezierCurve tmpCurve = new BezierCurve(prev, next); - - double t = tmpCurve.getClosestT(brdPos); - - VecMath.subVector(prev.getPoints()[0],prev.getPoints()[2],tmp); - VecMath.scaleVector(tmp, t); - VecMath.addVector(prev.getPoints()[0],tmp,prev.getPoints()[2]); - - VecMath.subVector(next.getPoints()[1],next.getPoints()[0],tmp); - VecMath.scaleVector(tmp, t-1); - VecMath.addVector(next.getPoints()[0],tmp,next.getPoints()[1]); - - source.onBrdChanged(); - - execute(); - - source.repaint(); - } - - } - - public void redo() - { - mSpline.insert(mIndex, mNewControlPoint); - - super.redo(); - } - - public void undo() - { - mSpline.remove(mIndex); - - super.undo(); - } - - public String getCommandString() - { - return LanguageResource.getString("ADDCONTROLPOINTCMD_STR"); - } -} - -class BrdDeleteControlPointCommand extends BrdAbstractEditCommand -{ - BezierKnot mDeletedControlPoint; - BezierSpline mControlPoints; - int mIndex; - - BrdDeleteControlPointCommand(BoardEdit source, BezierKnot ControlPoint, BezierSpline ControlPoints) - { - mSource = source; - - mDeletedControlPoint = ControlPoint; - - mControlPoints = ControlPoints; - } - - public void doAction() - { - super.saveBeforeChange(mSource.getCurrentBrd()); - - mSource.mSelectedControlPoints.remove(mDeletedControlPoint); - - super.removePoint(mDeletedControlPoint); - - mIndex = mControlPoints.indexOf(mDeletedControlPoint); - BezierKnot prev = mControlPoints.getControlPoint(mIndex-1); - BezierKnot next = mControlPoints.getControlPoint(mIndex+1); - - BezierCurve tmpCurve = new BezierCurve(prev, next); - - double t = tmpCurve.getClosestT(mDeletedControlPoint.getEndPoint()); - if(t != 0 && t != 1) //To prevent divide by zero - { - Point2D.Double tmp = new Point2D.Double(); - - VecMath.subVector(prev.getPoints()[0],prev.getPoints()[2],tmp); - VecMath.scaleVector(tmp, 1/(t)); - VecMath.addVector(prev.getPoints()[0],tmp,prev.getPoints()[2]); - - VecMath.subVector(next.getPoints()[0],next.getPoints()[1],tmp); - VecMath.scaleVector(tmp, 1/(1-t)); - VecMath.addVector(next.getPoints()[0],tmp,next.getPoints()[1]); - } - - - mControlPoints.remove(mDeletedControlPoint); - - super.saveChanges(); - } - - public void execute() - { - doAction(); - - mSource.onBrdChanged(); - - super.execute(); - } - - public void undo() - { - mControlPoints.insert(mIndex, mDeletedControlPoint); - - super.undo(); - } - - public void redo() - { - mControlPoints.remove(mDeletedControlPoint); - - super.redo(); - } - - public String getCommandString() - { - return LanguageResource.getString("DELETECONTROLPOINTCMD_STR"); - - } -} - - -class BrdAddCrossSectionCommand extends BrdCommand -{ - double mPos; - BezierBoardCrossSection mNewCrossSection = null; - - - BrdAddCrossSectionCommand(BoardEdit source, double pos) - { - mSource = source; - - mPos = pos; - } - - public void execute() - { - BezierBoard brd = mSource.getCurrentBrd(); - -// mNewCrossSection = (BezierBoardCrossSection)brd.getNearestCrossSection(mPos).clone(); - mNewCrossSection = (BezierBoardCrossSection)brd.getInterpolatedCrossSection(mPos).clone(); - - mNewCrossSection.setPosition(mPos); - - mNewCrossSection.scale(brd.getThicknessAtPos(mPos), brd.getWidthAtPos(mPos)); - - brd.addCrossSection(mNewCrossSection); - - super.execute(); - } - - public void undo() - { - BezierBoard brd = mSource.getCurrentBrd(); - - brd.removeCrossSection(mNewCrossSection); - - super.undo(); - - } - - public void redo() - { - BezierBoard brd = mSource.getCurrentBrd(); - - brd.addCrossSection(mNewCrossSection); - - super.redo(); - } - - public String getCommandString() - { - return LanguageResource.getString("ADDCROSSECTIONCMD_STR"); - } -} - -class BrdRemoveCrossSectionCommand extends BrdCommand -{ - BezierBoardCrossSection mRemovedCrossSection = null; - - - BrdRemoveCrossSectionCommand(BoardEdit source, BezierBoardCrossSection crossSection) - { - mSource = source; - - mRemovedCrossSection = crossSection; - } - - public void execute() - { - BezierBoard brd = mSource.getCurrentBrd(); - - brd.removeCrossSection(mRemovedCrossSection); - - super.execute(); - } - - public void undo() - { - BezierBoard brd = mSource.getCurrentBrd(); - - brd.addCrossSection(mRemovedCrossSection); - - super.undo(); - - } - - public void redo() - { - BezierBoard brd = mSource.getCurrentBrd(); - - brd.removeCrossSection(mRemovedCrossSection); - - super.redo(); - } - - public String getCommandString() - { - return LanguageResource.getString("REMOVECROSSECTIONCMD_STR"); - } -} - -class BrdMoveCrossSectionCommand extends BrdCommand -{ - BezierBoardCrossSection mMovedCrossSection = null; - double mOldPos; - double mNewPos; - - - BrdMoveCrossSectionCommand(BoardEdit source, BezierBoardCrossSection crossSection, double newPos) - { - mSource = source; - mMovedCrossSection = crossSection; - mNewPos = newPos; - } - - public void execute() - { - BezierBoard brd = mSource.getCurrentBrd(); - mMovedCrossSection.setPosition(mNewPos); - brd.sortCrossSections(); - - super.execute(); - - } - - public void undo() - { - BezierBoard brd = mSource.getCurrentBrd(); - mMovedCrossSection.setPosition(mOldPos); - brd.sortCrossSections(); - - super.undo(); - - } - - public void redo() - { - BezierBoard brd = mSource.getCurrentBrd(); - mMovedCrossSection.setPosition(mNewPos); - brd.sortCrossSections(); - - super.redo(); - } - - public String getCommandString() - { - return LanguageResource.getString("MOVECROSSECTIONCMD_STR"); - } -} - -class BrdPasteCrossSectionCommand extends BrdCommand -{ - BezierBoardCrossSection mCrossSection = null; - BezierSpline mOldCrossSectionBezier = null; - BezierSpline mNewCrossSectionBezier = null; - - - BrdPasteCrossSectionCommand(BoardEdit source, BezierBoardCrossSection currentCrossSection, BezierBoardCrossSection copyCrossSection) - { - mSource = source; - mCrossSection = currentCrossSection; - mOldCrossSectionBezier = currentCrossSection.getBezierSpline(); - mNewCrossSectionBezier = (BezierSpline)copyCrossSection.getBezierSpline().clone(); - } - - public void execute() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - double pos = mCrossSection.getPosition(); - - mCrossSection.setBezierSpline(mNewCrossSectionBezier); - - mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); - - super.execute(); - } - - public void undo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - double pos = mCrossSection.getPosition(); - - mCrossSection.setBezierSpline(mOldCrossSectionBezier); - - mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); - - super.undo(); - } - - public void redo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - double pos = mCrossSection.getPosition(); - - mCrossSection.setBezierSpline(mNewCrossSectionBezier); - - mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); - - super.redo(); - } - - public String getCommandString() - { - return LanguageResource.getString("PASTECROSSECTIONCMD_STR"); - } -} - -class BrdImportCrossSectionCommand extends BrdCommand -{ - BezierBoardCrossSection mCrossSection = null; - BezierSpline mOldCrossSectionBezier = null; - BezierSpline mNewCrossSectionBezier = null; - - - BrdImportCrossSectionCommand(BoardEdit source) - { - mSource = source; - - } - - public void execute() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - - mCrossSection = brd.getCurrentCrossSection(); - - mOldCrossSectionBezier = mCrossSection.getBezierSpline(); - - double pos = mCrossSection.getPosition(); - - final JFileChooser fc = new JFileChooser(); - - fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - - int returnVal = fc.showOpenDialog(BoardCAD.getInstance().getFrame()); - if (returnVal != JFileChooser.APPROVE_OPTION) - return; - - File file = fc.getSelectedFile(); - - String filename = file.getPath(); // Load and display selection - if(filename == null) - return; - - try - { - if(BrdReader.importCrossection(brd, new BufferedReader(new FileReader(filename))) < 0) - { - throw new FileNotFoundException(); - } - } - catch(Exception e) - { - String str = e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("IMPORTCROSSECTIONFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); - - return; - } - - - mNewCrossSectionBezier = (BezierSpline)brd.getCurrentCrossSection().clone(); - - mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); - - super.execute(); - } - - public void undo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - double pos = mCrossSection.getPosition(); - - mCrossSection.setBezierSpline(mOldCrossSectionBezier); - - mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); - - super.undo(); - } - - public void redo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - double pos = mCrossSection.getPosition(); - - mCrossSection.setBezierSpline(mNewCrossSectionBezier); - - mCrossSection.scale(brd.getThicknessAtPos(pos), brd.getWidthAtPos(pos)); - - super.redo(); - } - - public String getCommandString() - { - return LanguageResource.getString("IMPORTCROSSECTIONCMD_STR"); - } -} - -class BrdImportOutlineCommand extends BrdCommand -{ - BezierSpline mOldOutline = null; - BezierSpline mNewOutline = null; - - - BrdImportOutlineCommand(BoardEdit source) - { - mSource = source; - } - - public void execute() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - - final JFileChooser fc = new JFileChooser(); - - fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - - int returnVal = fc.showOpenDialog(BoardCAD.getInstance().getFrame()); - if (returnVal != JFileChooser.APPROVE_OPTION) - return; - - File file = fc.getSelectedFile(); - - String filename = file.getPath(); // Load and display selection - if(filename == null) - return; - - mOldOutline = brd.getOutline(); - - mNewOutline = new BezierSpline(); - brd.setOutline(mNewOutline); - - try - { - if(BrdReader.importOutline(brd, new BufferedReader(new FileReader(filename))) < 0) - { - throw new FileNotFoundException(); - } - } - catch(Exception e) - { - String str = e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("IMPORTOUTLINEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); - - return; - } - - super.execute(); - } - - public void undo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - - brd.setOutline(mOldOutline); - - super.undo(); - } - - public void redo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - - brd.setOutline(mNewOutline); - - super.redo(); - } - - public String getCommandString() - { - return LanguageResource.getString("PASTECROSSECTIONCMD_STR"); - } -} - -class BrdImportProfileCommand extends BrdCommand -{ - BezierSpline mOldDeck = null; - BezierSpline mOldBottom = null; - BezierSpline mNewDeck = null; - BezierSpline mNewBottom = null; - - BrdImportProfileCommand(BoardEdit source) - { - mSource = source; - } - - public void execute() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - - final JFileChooser fc = new JFileChooser(); - - fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - - int returnVal = fc.showOpenDialog(BoardCAD.getInstance().getFrame()); - if (returnVal != JFileChooser.APPROVE_OPTION) - return; - - File file = fc.getSelectedFile(); - - String filename = file.getPath(); // Load and display selection - if(filename == null) - return; - - mOldDeck = brd.getDeck(); - mOldBottom = brd.getBottom(); - - mNewDeck = new BezierSpline(); - brd.setDeck(mNewDeck); - mNewBottom = new BezierSpline(); - brd.setBottom(mNewBottom); - - try - { - if(BrdReader.importProfile(brd, new BufferedReader(new FileReader(filename))) < 0) - { - throw new FileNotFoundException(); - } - } - catch(Exception e) - { - String str = e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), str, LanguageResource.getString("IMPORTPROFILEFAILEDTITLE_STR"), JOptionPane.ERROR_MESSAGE); - - return; - } - - super.execute(); - } - - public void undo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - - brd.setDeck(mOldDeck); - brd.setBottom(mOldBottom); - - super.undo(); - } - - public void redo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - - brd.setDeck(mNewDeck); - brd.setBottom(mNewBottom); - - super.redo(); - } - - public String getCommandString() - { - return LanguageResource.getString("PASTECROSSECTIONCMD_STR"); - } -} - -class BrdScaleCommand extends BrdCommand -{ - double mOldWidth; - double mOldLength; - double mOldThickness; - double mNewWidth; - double mNewLength; - double mNewThickness; - //double[] mFinsOld; - boolean mScaleFins; - boolean mScaleFinsFactor; - boolean mScaleBottomRocker; - - BrdScaleCommand(BoardEdit source) - { - mSource = source; - } - - public void execute() - { - - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - - ScaleBoardInputDialog dialog = new ScaleBoardInputDialog(BoardCAD.getInstance().getFrame()); - dialog.setModal(true); - //dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); - dialog.setTitle(LanguageResource.getString("SCALEBOARDTITLE_STR")); - dialog.setBoardLength(brd.getLength()); - dialog.setBoardWidth(brd.getMaxWidth()); - dialog.setBoardThick(brd.getMaxThickness()); - - dialog.setVisible(true); - - if(dialog.wasCancelled()) - { - dialog.dispose(); - return; - } - - //mFinsOld=brd.mFins; - mOldLength= brd.getLength(); - mOldWidth = brd.getMaxWidth(); - mOldThickness = brd.getMaxThickness(); - - if(!dialog.scaleThroughFactor()) - { - mNewLength = dialog.getBoardLength(); - mNewWidth = dialog.getBoardWidth(); - mNewThickness = dialog.getBoardThick(); - - mScaleFins = dialog.scaleFins(); - - mScaleBottomRocker = dialog.scaleBottomRocker(); - - boolean overCurve = dialog.useOverCurve(); - - dialog.dispose(); - - if(mNewLength <= 0 || mNewWidth <= 0 || mNewThickness <= 0) - { - JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), LanguageResource.getString("SCALEBOARDINVALIDINPUTERRORMSG_STR"), LanguageResource.getString("SCALEBOARDINVALIDINPUTERRORTITLE_STR"), JOptionPane.ERROR_MESSAGE); - return; - } - - if(!overCurve) - { - if(mScaleBottomRocker) - { - brd.scaleAccordingly(mNewLength,mNewWidth,mNewThickness); - } - else { - brd.scale(mNewLength,mNewWidth,mNewThickness); - } - if(mScaleFins) - { - brd.finScaling(mNewLength/mOldLength,mNewWidth/mOldWidth); - } - } - else - { - double newLengthOverCurve = mNewLength; - double guestimatedNewLength = 0; - for(int i = 0; i < 5; i++) - { - guestimatedNewLength = brd.getLength() * (newLengthOverCurve/brd.getLengthOverCurve()) + 0.01; //cheat by adding 0.1 mm - if(mScaleBottomRocker) - { - brd.scaleAccordingly(guestimatedNewLength, mNewWidth, mNewThickness); - } - else - { - brd.scale(guestimatedNewLength, mNewWidth, mNewThickness); - } - } - if(mScaleFins) - { - brd.finScaling(guestimatedNewLength/mOldLength,mNewWidth/mOldWidth); - } - - //Get the actual new length, used for redo - mNewLength = brd.getLength(); -//...why is the actual length different from the length the user asked for, particularly when "constraint proportions is on"?? - } - - super.execute(); - - BoardCAD.getInstance().onBrdChanged(); - BoardCAD.getInstance().fitAll(); - }else - { //scaleTroughFactor: - - mNewLength = brd.getLength() * dialog.getFactor(); - mNewWidth = brd.getMaxWidth() * dialog.getFactor(); - mNewThickness = brd.getMaxThickness() * dialog.getFactor(); - - mScaleFinsFactor = dialog.scaleFinsFactor(); - - mScaleBottomRocker = true; - - dialog.dispose(); - - if(mNewLength <= 0 || mNewWidth <= 0 || mNewThickness <= 0 || dialog.getFactor()<=0) - { - JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), LanguageResource.getString("SCALEBOARDINVALIDINPUTERRORMSG_STR"), LanguageResource.getString("SCALEBOARDINVALIDINPUTERRORTITLE_STR"), JOptionPane.ERROR_MESSAGE); - return; - } - - brd.scale(mNewLength,mNewWidth,mNewThickness); - if(mScaleFinsFactor) - { - brd.finScaling(dialog.getFactor(),dialog.getFactor()); - } - - super.execute(); - - BoardCAD.getInstance().onBrdChanged(); - BoardCAD.getInstance().fitAll(); - } - } - - public void undo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - if(mScaleBottomRocker) - { - brd.scaleAccordingly(mOldLength,mOldWidth,mOldThickness); - } - else - { - brd.scale(mOldLength,mOldWidth,mOldThickness); - } - if(mScaleFins || mScaleFinsFactor) - { - brd.finScaling(mOldLength/mNewLength,mOldWidth/mNewWidth); - } - - super.undo(); - - BoardCAD.getInstance().fitAll(); - } - - public void redo() - { - BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); - if(mScaleBottomRocker) - { - brd.scaleAccordingly(mNewLength, mNewWidth, mNewThickness); - } - else - { - brd.scale(mNewLength, mNewWidth, mNewThickness); - } - if(mScaleFins || mScaleFinsFactor) - { - brd.finScaling(mNewLength/mOldLength,mNewWidth/mOldWidth); - } - - super.redo(); - - BoardCAD.getInstance().fitAll(); - } - - public String getCommandString() - { - return LanguageResource.getString("SCALEBOARDCMD_STR"); - } -} - -class BrdSpotCheckCommand extends BrdCommand -{ - double mOldOffsetX; - double mOldOffsetY; - double mOldScale; - - - BrdSpotCheckCommand() - { - } - - public void spotCheck() - { - mSource = BoardCAD.getInstance().getSelectedEdit(); - - mOldOffsetX = mSource.getOffsetX(); - mOldOffsetY = mSource.getOffsetY(); - mOldScale = mSource.getScale(); - - mSource.fitBrd(); - mSource.repaint(); - } - - public void restore() - { - mSource.setOffsetX(mOldOffsetX); - mSource.setOffsetY(mOldOffsetY); - mSource.setScale(mOldScale); - mSource.repaint(); - } - - public String getCommandString() - { - return LanguageResource.getString("SPOTCHECKCMD_STR"); - } - -} - -class SetImageTailCommand extends BrdInputCommand -{ - - SetImageTailCommand() - { - mCanUndo = false; - } - - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - Point pos = event.getPoint(); - - source.adjustBackgroundImageTail(pos); - - } - - public String getCommandString() - { - return LanguageResource.getString("ADJUSTIMAGETOTAILCMD_STR"); - } - -} - - -class SetImageNoseCommand extends BrdInputCommand -{ - - SetImageNoseCommand() - { - mCanUndo = false; - } - - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - Point pos = event.getPoint(); - - source.adjustBackgroundImageNose(pos); - - } - - public String getCommandString() - { - return LanguageResource.getString("ADJUSTIMAGETONOSECMD_STR"); - } -} - - -class GhostCommand extends BrdInputCommand -{ - - GhostCommand() - { - mCanUndo = false; - } - - public String getCommandString() - { - return LanguageResource.getString("GHOSTCMD_STR"); - } -} - diff --git a/boardcad/gui/jdk/BoardEdit.java b/boardcad/gui/jdk/BoardEdit.java index 56d6878..24d91af 100644 --- a/boardcad/gui/jdk/BoardEdit.java +++ b/boardcad/gui/jdk/BoardEdit.java @@ -7,7 +7,6 @@ import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; -import java.awt.GridLayout; import java.awt.Image; import java.awt.Point; import java.awt.Rectangle; @@ -24,36 +23,36 @@ import javax.swing.BorderFactory; import javax.swing.JComponent; -import javax.swing.JPanel; import javax.swing.JPopupMenu; -import javax.swing.JSplitPane; import javax.swing.event.MouseInputListener; import board.BezierBoard; - import cadcore.BezierKnot; import cadcore.BezierSpline; +import cadcore.MathUtils; import cadcore.UnitUtils; import cadcore.VecMath; +import boardcad.commands.BrdCommand; +import boardcad.commands.BrdInputCommand; import boardcad.i18n.LanguageResource; public class BoardEdit extends JComponent implements AbstractEditor, MouseInputListener, MouseWheelListener { static final long serialVersionUID=1L; - protected double mOffsetX; - protected double mOffsetY; - protected double mScale = 1.0f; - ArrayList mSelectedControlPoints = new ArrayList(); - protected double mGhostOffsetX = 0; - protected double mGhostOffsetY = 0; - protected double mGhostRot = 0; - protected double mOriginalOffsetX = 0; - protected double mOriginalOffsetY = 0; - - protected int mDrawControl = 0; - protected double theta=30; - protected double zeta=45; - - protected double[][] mRotationMatrix; + public double mOffsetX; + public double mOffsetY; + public double mScale = 1.0f; + public ArrayList mSelectedControlPoints = new ArrayList(); + public double mGhostOffsetX = 0; + public double mGhostOffsetY = 0; + public double mGhostRot = 0; + public double mOriginalOffsetX = 0; + public double mOriginalOffsetY = 0; + + public int mDrawControl = 0; + public double theta=30; + public double zeta=45; + + public double[][] mRotationMatrix; double BORDER = 2; //% of width @@ -97,18 +96,20 @@ public class BoardEdit extends JComponent implements AbstractEditor, MouseInputL protected double mPreviousOffsetX=0.0; protected double mPreviousOffsetY=0.0; + public boolean mIsCrossSectionEdit=false; + public BoardEdit() { super(); - double[][] m1 = {{Math.cos(-theta*3.1415/180.0), 0.0, -Math.sin(-theta*3.1415/180.0)}, + double[][] m1 = {{Math.cos(-theta*Math.PI/180.0), 0.0, -Math.sin(-theta*Math.PI/180.0)}, {0.0, 1.0, 0.0}, - {Math.sin(-theta*3.1415/180.0), 0.0, Math.cos(-theta*3.1415/180.0)}}; + {Math.sin(-theta*Math.PI/180.0), 0.0, Math.cos(-theta*Math.PI/180.0)}}; double[][] m2 = {{1.0, 0.0, 0.0}, - {0.0, Math.cos(-zeta*3.1415/180.0), -Math.sin(-zeta*3.1415/180.0)}, - {0.0, Math.sin(-zeta*3.1415/180.0), Math.cos(-zeta*3.1415/180.0)}}; + {0.0, Math.cos(-zeta*Math.PI/180.0), -Math.sin(-zeta*Math.PI/180.0)}, + {0.0, Math.sin(-zeta*Math.PI/180.0), Math.cos(-zeta*Math.PI/180.0)}}; - mRotationMatrix=cross_product(m1,m2); + mRotationMatrix=MathUtils.cross_product(m1,m2); // Hint at good sizes for this component. @@ -243,7 +244,7 @@ protected boolean isPaintingVolumeDistribution() return BoardCAD.getInstance().isPaintingVolumeDistribution(); } - protected BezierBoard getCurrentBrd() + public BezierBoard getCurrentBrd() { return BoardCAD.getInstance().getCurrentBrd(); } @@ -365,8 +366,8 @@ public Point2D.Double screenCoordinateToBrdCoordinate(Point scrPoint) { Point2D.Double brdPoint = new Point2D.Double(); - brdPoint.x = ((double)scrPoint.x - mOffsetX)/ mScale*((mDrawControl&BezierBoardDrawUtil.FlipX)!=0?-1.0f:1.0f); - brdPoint.y = ((double)scrPoint.y - mOffsetY)/ mScale*((mDrawControl&BezierBoardDrawUtil.FlipY)!=0?-1.0f:1.0f); + brdPoint.x = (scrPoint.x - mOffsetX)/ mScale*((mDrawControl&BezierBoardDrawUtil.FlipX)!=0?-1.0f:1.0f); + brdPoint.y = (scrPoint.y - mOffsetY)/ mScale*((mDrawControl&BezierBoardDrawUtil.FlipY)!=0?-1.0f:1.0f); return brdPoint; } @@ -511,25 +512,9 @@ Point2D.Double getNose() return (Point2D.Double)getActiveBezierSplines(getCurrentBrd())[0].getControlPoint(getActiveBezierSplines(getCurrentBrd())[0].getNrOfControlPoints()-1).getEndPoint().clone(); } - private double[][] cross_product(double[][] m1, double[][] m2) - { - double[][] m=new double[3][3]; - - m[0][0]=m1[0][0]*m2[0][0]+m1[1][0]*m2[0][1]+m1[2][0]*m2[0][2]; - m[1][0]=m1[0][0]*m2[1][0]+m1[1][0]*m2[1][1]+m1[2][0]*m2[1][2]; - m[2][0]=m1[0][0]*m2[2][0]+m1[1][0]*m2[2][1]+m1[2][0]*m2[2][2]; - m[0][1]=m1[0][1]*m2[0][0]+m1[1][1]*m2[0][1]+m1[2][1]*m2[0][2]; - m[1][1]=m1[0][1]*m2[1][0]+m1[1][1]*m2[1][1]+m1[2][1]*m2[1][2]; - m[2][1]=m1[0][1]*m2[2][0]+m1[1][1]*m2[2][1]+m1[2][1]*m2[2][2]; - - m[0][2]=m1[0][2]*m2[0][0]+m1[1][2]*m2[0][1]+m1[2][2]*m2[0][2]; - m[1][2]=m1[0][2]*m2[1][0]+m1[1][2]*m2[1][1]+m1[2][2]*m2[1][2]; - m[2][2]=m1[0][2]*m2[2][0]+m1[1][2]*m2[2][1]+m1[2][2]*m2[2][2]; - - return m; - } + @Override public void paintComponent(Graphics g) { adjustScaleAndOffset(); @@ -543,9 +528,7 @@ public void paintComponent(Graphics g) { */ Graphics2D g2d = (Graphics2D)g.create(); - - - + // Turn on antialiasing, so painting is smooth. if(BoardCAD.getInstance().isAntialiasing()) { @@ -559,8 +542,6 @@ public void paintComponent(Graphics g) { RenderingHints.VALUE_TEXT_ANTIALIAS_ON); } - - // Paint the background. Color bkgColor = BoardCAD.getInstance().getBackgroundColor(); if(mParentContainer != null && !mParentContainer.isActive(this)) @@ -572,10 +553,6 @@ public void paintComponent(Graphics g) { g2d.fillRect(0, 0, getWidth() - 1, getHeight() - 1); - - - - if(mDrawControl == 0) { //draw nurbs board @@ -616,7 +593,7 @@ public void paintComponent(Graphics g) { if(BoardCAD.getInstance().isPaintingGrid()) { - BezierBoardDrawUtil.paintGrid(new JavaDraw(g2d), (double)mOffsetX, (double)mOffsetY, (double)mScale, BoardCAD.getInstance().getGridColor(), currentBrd.getLength(), currentBrd.getMaxWidth()/2.0, (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0); + BezierBoardDrawUtil.paintGrid(new JavaDraw(g2d), mOffsetX, mOffsetY, mScale, 0.0, BoardCAD.getInstance().getGridColor(), currentBrd.getLength(), currentBrd.getMaxWidth()/2.0, (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0); } @@ -628,7 +605,7 @@ public void paintComponent(Graphics g) { { if(orgBrd != null && getActiveBezierSplines(orgBrd) != null) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mOriginalOffsetX*mScale, mOriginalOffsetY*mScale, 1.0); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mOriginalOffsetX*mScale, mOriginalOffsetY*mScale, 1.0, 0.0); drawPart(g2d, BoardCAD.getInstance().getOriginalBrdColor(), stroke, orgBrd, BoardCAD.getInstance().useFill()); g2d.setTransform(savedTransform); } @@ -652,7 +629,7 @@ public void paintComponent(Graphics g) { } if(ghostBrd != null && getActiveBezierSplines(ghostBrd) != null) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mGhostOffsetX*mScale, mGhostOffsetY*mScale, mGhostRot, 1.0); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mGhostOffsetX*mScale, mGhostOffsetY*mScale, 1.0, mGhostRot); drawPart(g2d, BoardCAD.getInstance().getBrdColor(), stroke, ghostBrd, BoardCAD.getInstance().useFill()); @@ -686,7 +663,7 @@ else if(BoardCAD.getInstance().mOrgFocus && orgBrd.isEmpty() == false) { if(ghostBrd != null && getActiveBezierSplines(ghostBrd) != null) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mGhostOffsetX*mScale, mGhostOffsetY*mScale, mGhostRot, 1.0); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mGhostOffsetX*mScale, mGhostOffsetY*mScale, 1.0, mGhostRot); drawPart(g2d, BoardCAD.getInstance().getGhostBrdColor(), stroke, ghostBrd, BoardCAD.getInstance().useFill()); g2d.setTransform(savedTransform); } @@ -711,7 +688,7 @@ else if(BoardCAD.getInstance().mOrgFocus && orgBrd.isEmpty() == false) if(orgBrd != null && getActiveBezierSplines(orgBrd) != null) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mOriginalOffsetX*mScale, mOriginalOffsetY*mScale, 1.0); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mOriginalOffsetX*mScale, mOriginalOffsetY*mScale, 1.0, 0.0); drawPart(g2d, BoardCAD.getInstance().getBrdColor(), stroke, orgBrd, BoardCAD.getInstance().useFill()); @@ -744,7 +721,7 @@ else if(BoardCAD.getInstance().mOrgFocus && orgBrd.isEmpty() == false) { if(orgBrd != null && getActiveBezierSplines(orgBrd) != null) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mOriginalOffsetX*mScale, mOriginalOffsetY*mScale, 1.0); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mOriginalOffsetX*mScale, mOriginalOffsetY*mScale, 1.0, 0.0); drawPart(g2d, BoardCAD.getInstance().getOriginalBrdColor(), stroke, orgBrd, BoardCAD.getInstance().useFill()); g2d.setTransform(savedTransform); } @@ -754,7 +731,7 @@ else if(BoardCAD.getInstance().mOrgFocus && orgBrd.isEmpty() == false) { if(ghostBrd != null && getActiveBezierSplines(ghostBrd) != null) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mGhostOffsetX*mScale, mGhostOffsetY*mScale, mGhostRot, 1.0); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g2d), mGhostOffsetX*mScale, mGhostOffsetY*mScale, 1.0, mGhostRot); drawPart(g2d, BoardCAD.getInstance().getGhostBrdColor(), stroke, ghostBrd, BoardCAD.getInstance().useFill()); g2d.setTransform(savedTransform); } @@ -825,27 +802,27 @@ else if(mDrawControl == (BezierBoardDrawUtil.MirrorX | BezierBoardDrawUtil.FlipY public void drawCircle(Graphics2D g, Color color, Stroke stroke, Point2D.Double pos) { - BezierBoardDrawUtil.paintCircle(new JavaDraw(g),mOffsetX, mOffsetY, mScale, color, stroke, pos, (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0); + BezierBoardDrawUtil.paintCircle(new JavaDraw(g),mOffsetX, mOffsetY, mScale, 0.0, color, stroke, pos, (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0); } public void drawPart(Graphics2D g, Color color, Stroke stroke, BezierBoard brd, boolean fill) { - BezierBoardDrawUtil.paintBezierSplines(new JavaDraw(g),mOffsetX, mOffsetY, mScale, color, stroke, getActiveBezierSplines(brd), mDrawControl, fill); + BezierBoardDrawUtil.paintBezierSplines(new JavaDraw(g),mOffsetX, mOffsetY, mScale, 0.0, color, stroke, getActiveBezierSplines(brd), mDrawControl, fill); } public void drawControlPoints(Graphics2D g, Stroke stroke, BezierBoard brd) { - BezierBoardDrawUtil.paintBezierControlPoints(new JavaDraw(g),mOffsetX, mOffsetY, mScale, stroke, getActiveBezierSplines(brd), (mParentContainer==null || mParentContainer.isActive(this))? mSelectedControlPoints:null, (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0); + BezierBoardDrawUtil.paintBezierControlPoints(new JavaDraw(g),mOffsetX, mOffsetY, mScale, 0.0, stroke, getActiveBezierSplines(brd), (mParentContainer==null || mParentContainer.isActive(this))? mSelectedControlPoints:null, (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0); } public void drawCurvature(Graphics2D g, Color color, Stroke stroke, BezierBoard brd) { - BezierBoardDrawUtil.paintCurvature(new JavaDraw(g), mOffsetX, mOffsetY, mScale, color, stroke, getActiveBezierSplines(brd), (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0, mCurvatureScale ); + BezierBoardDrawUtil.paintCurvature(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0, color, stroke, getActiveBezierSplines(brd), (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0, mCurvatureScale ); } public void drawVolumeDistribution(Graphics2D g, Color color, Stroke stroke, BezierBoard brd) { - BezierBoardDrawUtil.paintVolumeDistribution(new JavaDraw(g), mOffsetX, mOffsetY, mScale, color, stroke, brd, (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, true, mVolumeDistributionScale ); + BezierBoardDrawUtil.paintVolumeDistribution(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0, color, stroke, brd, (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, true, mVolumeDistributionScale ); } public void drawSlidingInfo(Graphics2D g, Color color, Stroke stroke, BezierBoard brd) @@ -854,12 +831,12 @@ public void drawSlidingInfo(Graphics2D g, Color color, Stroke stroke, BezierBoar public void drawFins(Graphics2D g, Color color, Stroke stroke, BezierBoard brd) { - BezierBoardDrawUtil.paintFins(new JavaDraw(g), mOffsetX, mOffsetY, mScale, color, stroke, brd.getFins(), (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0 ); + BezierBoardDrawUtil.paintFins(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0, color, stroke, brd.getFins(), (mDrawControl&BezierBoardDrawUtil.FlipX)!=0, (mDrawControl&BezierBoardDrawUtil.FlipY)!=0 ); } public void drawStringer(Graphics2D g, Color color, Stroke stroke, BezierBoard brd) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0); double mulX = ((mDrawControl&BezierBoardDrawUtil.FlipX)!=0)?-1:1; // double mulY = ((mDrawControl&Brd.FlipY)!=0)?-1:1; @@ -876,7 +853,7 @@ public void drawStringer(Graphics2D g, Color color, Stroke stroke, BezierBoard b public void drawCenterLine(Graphics2D g, Color color, Stroke stroke, double pos, double length) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0 ); double mulX = ((mDrawControl&BezierBoardDrawUtil.FlipX)!=0)?-1:1; // double mulY = ((mDrawControl&Brd.FlipY)!=0)?-1:1; @@ -895,7 +872,7 @@ public void drawBackgroundImage(Graphics2D g) { if(mBackgroundImage != null) { - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0); final AffineTransform tmp = new AffineTransform(); @@ -956,7 +933,7 @@ public void drawGuidePoints(Graphics2D g) g.setStroke(new BasicStroke((float)(BoardCAD.getInstance().getGuidePointThickness()/mScale))); - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(new JavaDraw(g), mOffsetX, mOffsetY, mScale, 0.0); double crossSize = 4.0f/mScale; @@ -986,6 +963,7 @@ public void onBrdChanged() } + @Override public void mousePressed(MouseEvent e) { if(mParentContainer != null) @@ -1019,6 +997,7 @@ public void mousePressed(MouseEvent e) { } } + @Override public void mouseReleased(MouseEvent e) { if (mPopupMenu != null && e.isPopupTrigger()) { @@ -1047,10 +1026,12 @@ public void mouseReleased(MouseEvent e) { } } + @Override public void mouseEntered(MouseEvent e) { mHasMouse = true; } + @Override public void mouseExited(MouseEvent e) { mHasMouse = false; } @@ -1060,9 +1041,11 @@ public boolean hasMouse() return mHasMouse; } + @Override public void mouseClicked(MouseEvent e) { } + @Override public void mouseMoved(MouseEvent e) { mScreenCoord = e.getPoint(); @@ -1104,6 +1087,7 @@ else if(mDrawControl == (BezierBoardDrawUtil.MirrorX | BezierBoardDrawUtil.FlipY cmd.onMouseMove(this, e); } + @Override public void mouseDragged(MouseEvent e) { mScreenCoord = e.getPoint(); mBrdCoord.setLocation(screenCoordinateToBrdCoordinate(mScreenCoord)); @@ -1118,6 +1102,7 @@ public void mouseDragged(MouseEvent e) { } + @Override public void mouseWheelMoved(MouseWheelEvent e) { BrdInputCommand cmd = (BrdInputCommand)getCurrentCommand(); @@ -1128,77 +1113,9 @@ public void mouseWheelMoved(MouseWheelEvent e) } + @Override public void fit_all() { fitBrd(); } } - -interface BrdEditParentContainer -{ - public void setActive(BoardEdit edit); - public boolean isActive(BoardEdit edit); - public BoardEdit getActive(); -} - -class BrdEditSplitPane extends JSplitPane implements BrdEditParentContainer -{ - static final long serialVersionUID=1L; - BoardEdit mActive = null; - - BrdEditSplitPane(int arg1, BoardEdit first, BoardEdit second) - { - super(arg1, first, second); - mActive = first; - first.mParentContainer = this; - second.mParentContainer = this; - } - - public void setActive(BoardEdit edit) - { - mActive = edit; - this.repaint(); - } - - public boolean isActive(BoardEdit edit) - { - return (edit == mActive); - } - - public BoardEdit getActive() - { - return mActive; - } -} - -class QuadView extends JPanel implements BrdEditParentContainer -{ - static final long serialVersionUID=1L; - BoardEdit mActive = null; - - QuadView() - { - this.setLayout(new GridLayout(2,2,3,3)); - } - - public void setActive(BoardEdit edit) - { - mActive = edit; - this.repaint(); - BoardCAD.getInstance().getGuidePointsDialog().update(); - } - - public boolean isActive(BoardEdit edit) - { - return (edit == mActive); - } - - public BoardEdit getActive() - { - if(mActive == null) - return (BoardEdit)getComponent(0); - - return mActive; - } - -} diff --git a/boardcad/gui/jdk/BoardFileView.java b/boardcad/gui/jdk/BoardFileView.java index ed46785..55e856b 100644 --- a/boardcad/gui/jdk/BoardFileView.java +++ b/boardcad/gui/jdk/BoardFileView.java @@ -6,7 +6,6 @@ import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.RenderingHints; -import java.awt.geom.Line2D; import java.awt.image.BufferedImage; import java.io.File; @@ -21,132 +20,163 @@ import boardcad.FileTools; public class BoardFileView extends FileView { - + private Font mSpecsFont = new Font("Dialog", Font.PLAIN, 10); private Font mTypeFont = new Font("Ariel", Font.PLAIN, 8); - - public String getTypeDescription(File f) { - String extension = FileTools.getExtension(f); - String type = null; - - if (extension != null) { - if (extension.equals("srf")) { - type = "SurfCAD file"; - } else if (extension.equals("brd")){ - type = "APS3000 file"; - } else if (extension.equals("s3d")) { - type = "Shape3D file"; - } else if (extension.equals("cad")){ - type = "BoardCAD file"; - } - } - return type; - } - //Returns an icon representing the file or its type. Here is ImageFileView's implementation of this method: - public Icon getIcon(File f) { - - BufferedImage image = new BufferedImage(64, 64, BufferedImage.TYPE_INT_RGB); - Icon icon = null; - - String extension = FileTools.getExtension(f); - if (extension != null) { - if (extension.equals("srf")) { - BezierBoard brd = new BezierBoard(); - SrfReader.loadFile(brd, f.getAbsolutePath()); - - icon = paintBoard(image, brd, "srf"); - } - else if (extension.equals("brd")){ - BezierBoard brd = new BezierBoard(); - BrdReader.loadFile(brd, f.getAbsolutePath()); - - icon = paintBoard(image, brd, "brd"); - } - else if (extension.equals("s3d")) { - BezierBoard brd = new BezierBoard(); - S3dReader.loadFile(brd, f.getAbsolutePath()); - - icon = paintBoard(image, brd, "s3d"); - } - else if (extension.equals("stp") || extension.equals("step")) { - BezierBoard brd = new BezierBoard(); - StepReader.loadPreview(brd, f.getAbsolutePath()); - - icon = paintBoard(image, brd, "step"); - } - else if (extension.equals("cad")){ - //TODO: implement - } - } - - return icon; - } - - Icon paintBoard(BufferedImage image, BezierBoard brd, String type) - { - Graphics2D g = image.createGraphics(); - g.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - - g.setBackground(new Color(1.0f,1.0f,1.0f,1.0f)); - g.clearRect(0,0,image.getHeight(), image.getWidth()); + + @Override + public String getTypeDescription(File f) { + String extension = FileTools.getExtension(f); + String type = null; + + if (extension != null) { + if (extension.equals("srf")) { + type = "SurfCAD file"; + } else if (extension.equals("brd")) { + type = "APS3000 file"; + } else if (extension.equals("s3d")) { + type = "Shape3D file"; + } else if (extension.equals("s3dx")) { + type = "Shape3D X file"; + } else if (extension.equals("cad")) { + type = "BoardCAD file"; + } + } + return type; + } + + // Returns an icon representing the file or its type. Here is + // ImageFileView's implementation of this method: + @Override + public Icon getIcon(File f) { + + BufferedImage image = new BufferedImage(64, 64, + BufferedImage.TYPE_INT_RGB); + Icon icon = null; + + String extension = FileTools.getExtension(f); + if (extension != null) { + if (extension.equals("srf")) { + BezierBoard brd = new BezierBoard(); + SrfReader.loadFile(brd, f.getAbsolutePath()); + + icon = paintBoard(image, brd, "srf"); + } else if (extension.equals("brd")) { + BezierBoard brd = new BezierBoard(); + BrdReader.loadFile(brd, f.getAbsolutePath()); + + icon = paintBoard(image, brd, "brd"); + } else if (extension.equals("s3d")) { + BezierBoard brd = new BezierBoard(); + S3dReader.loadFile(brd, f.getAbsolutePath()); + + icon = paintBoard(image, brd, "s3d"); + } else if (extension.equals("s3dx")) { + BezierBoard brd = new BezierBoard(); + S3dxReader.loadFile(brd, f.getAbsolutePath()); + + icon = paintBoard(image, brd, "s3dx"); + } else if (extension.equals("cad")) { + // TODO: implement + } + } + + return icon; + } + + Icon paintBoard(BufferedImage image, BezierBoard brd, String type) { + Graphics2D g = image.createGraphics(); + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, + RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + + g.setBackground(new Color(1.0f, 1.0f, 1.0f, 1.0f)); + g.clearRect(0, 0, image.getHeight(), image.getWidth()); double leftMargin = 2.0; double topMargin = 3.0; double bottomMargin = 3.0; - + double height = image.getHeight(); double width = image.getWidth(); - + JavaDraw jd = new JavaDraw(g); - - //Draw type text + + // Draw type text FontMetrics sf = g.getFontMetrics(mSpecsFont); FontMetrics tf = g.getFontMetrics(mTypeFont); double typeStringLength = tf.stringWidth(type); - - g.setColor(new Color(0.6f,0.6f,0.6f)); + + g.setColor(new Color(0.6f, 0.6f, 0.6f)); g.setFont(mTypeFont); - g.drawString(type, (int)(width-typeStringLength - leftMargin), (int)(tf.getHeight())); - - //Vertical -// double scale = (height-topMargin*2.0)/brd.getLength(); -// BezierBoardDrawUtil.paintBezierPaths(new JavaDraw(g), leftMargin, height-topMargin, scale , Color.BLACK, new BasicStroke(1.0f/(float)scale), new BezierSpline[]{brd.getDeck(), brd.getBottom()}, BezierBoardDrawUtil.Vertical | BezierBoardDrawUtil.FlipY); -// BezierBoardDrawUtil.paintBezierPaths(new JavaDraw(g), image.getWidth()/2.0, height-topMargin, scale, Color.BLACK, new BasicStroke(1.0f/(float)scale), new BezierSpline[]{brd.getOutline()}, BezierBoardDrawUtil.Vertical | BezierBoardDrawUtil.FlipY | BezierBoardDrawUtil.MirrorX); - - //Horizontal - double scale = (width-leftMargin*2.0)/brd.getLength(); - BasicStroke stroke = new BasicStroke(1.0f/(float)scale); - double outlinePos = height/2 - (brd.getThickness() + 10.0)*scale/2; - BezierBoardDrawUtil.paintBezierSplines(jd, leftMargin, outlinePos, scale, Color.BLACK, stroke, new BezierSpline[]{brd.getOutline()}, BezierBoardDrawUtil.FlipY | BezierBoardDrawUtil.MirrorY, true); -// g.setStroke(new BasicStroke(1.0f)); -// jd.draw(new Line2D.Double(leftMargin, topMargin + brd.getMaxWidth()*scale, width-leftMargin, topMargin + brd.getMaxWidth()*scale)); -// jd.draw(new Line2D.Double(leftMargin + brd.getMaxWidthPos()*scale, topMargin + brd.getMaxWidth()*0.5*scale, leftMargin + brd.getMaxWidthPos()*scale, topMargin + brd.getMaxWidth()*1.5*scale)); - BezierBoardDrawUtil.paintBezierSplines(jd, leftMargin, outlinePos + (brd.getMaxWidth()/2.0 + brd.getThickness() + 10.0)*scale, scale , Color.BLACK, stroke, new BezierSpline[]{brd.getDeck(), brd.getBottom()}, BezierBoardDrawUtil.FlipY, true); -// BezierBoardDrawUtil.paintFins(jd, leftMargin, topMargin + brd.getMaxWidth()*scale, scale, Color.BLACK, stroke, brd.mFins, false, false); - -// g.setFont(mSpecsFont); -// String lengthStr = UnitUtils.convertLengthToCurrentUnit(brd.getLength(), true); -// double lengthStrLength = sf.stringWidth(lengthStr); -// g.drawString(lengthStr, (int)(width-lengthStrLength)/2, (int)((topMargin + brd.getMaxWidth()*scale))); - + g.drawString(type, (int) (width - typeStringLength - leftMargin), + (tf.getHeight())); + + // Vertical + // double scale = (height-topMargin*2.0)/brd.getLength(); + // BezierBoardDrawUtil.paintBezierPaths(new JavaDraw(g), leftMargin, + // height-topMargin, scale , Color.BLACK, new + // BasicStroke(1.0f/(float)scale), new BezierSpline[]{brd.getDeck(), + // brd.getBottom()}, BezierBoardDrawUtil.Vertical | + // BezierBoardDrawUtil.FlipY); + // BezierBoardDrawUtil.paintBezierPaths(new JavaDraw(g), + // image.getWidth()/2.0, height-topMargin, scale, Color.BLACK, new + // BasicStroke(1.0f/(float)scale), new BezierSpline[]{brd.getOutline()}, + // BezierBoardDrawUtil.Vertical | BezierBoardDrawUtil.FlipY | + // BezierBoardDrawUtil.MirrorX); + + // Horizontal + double scale = (width - leftMargin * 2.0) / brd.getLength(); + BasicStroke stroke = new BasicStroke(1.0f / (float) scale); + double outlinePos = height / 2 - (brd.getThickness() + 10.0) * scale + / 2; + BezierBoardDrawUtil.paintBezierSplines(jd, leftMargin, outlinePos, + scale, 0.0, Color.BLACK, stroke, + new BezierSpline[] { brd.getOutline() }, + BezierBoardDrawUtil.FlipY | BezierBoardDrawUtil.MirrorY, true); + // g.setStroke(new BasicStroke(1.0f)); + // jd.draw(new Line2D.Double(leftMargin, topMargin + + // brd.getMaxWidth()*scale, width-leftMargin, topMargin + + // brd.getMaxWidth()*scale)); + // jd.draw(new Line2D.Double(leftMargin + brd.getMaxWidthPos()*scale, + // topMargin + brd.getMaxWidth()*0.5*scale, leftMargin + + // brd.getMaxWidthPos()*scale, topMargin + + // brd.getMaxWidth()*1.5*scale)); + BezierBoardDrawUtil.paintBezierSplines(jd, leftMargin, + outlinePos + + (brd.getMaxWidth() / 2.0 + brd.getThickness() + 10.0) + * scale, scale, 0.0, Color.BLACK, stroke, + new BezierSpline[] { brd.getDeck(), brd.getBottom() }, + BezierBoardDrawUtil.FlipY, true); + // BezierBoardDrawUtil.paintFins(jd, leftMargin, topMargin + + // brd.getMaxWidth()*scale, scale, Color.BLACK, stroke, brd.mFins, + // false, false); + + // g.setFont(mSpecsFont); + // String lengthStr = + // UnitUtils.convertLengthToCurrentUnit(brd.getLength(), true); + // double lengthStrLength = sf.stringWidth(lengthStr); + // g.drawString(lengthStr, (int)(width-lengthStrLength)/2, + // (int)((topMargin + brd.getMaxWidth()*scale))); + return new ImageIcon(image); - } - - public String getName(File f) - { - return null; - } - - public String getDescription(File f) - { - return null; - } - - public Boolean isTraversable(File f) - { - return null; - } + } + + @Override + public String getName(File f) { + return null; + } + + @Override + public String getDescription(File f) { + return null; + } + + @Override + public Boolean isTraversable(File f) { + return null; + } } diff --git a/boardcad/gui/jdk/BoardGuidePointsDialog.java b/boardcad/gui/jdk/BoardGuidePointsDialog.java index f475931..cbfc6a1 100644 --- a/boardcad/gui/jdk/BoardGuidePointsDialog.java +++ b/boardcad/gui/jdk/BoardGuidePointsDialog.java @@ -74,13 +74,19 @@ public void update() * @return javax.swing.JTable */ private JTable getGuidePointsTable() { - final JTabbedPane mTabbedPane = BoardCAD.getInstance().getmTabbedPane(); + final JTabbedPane mTabbedPane = BoardCAD.getInstance().getTabbedPane(); if (mGuidePointsTable == null) { mGuidePointsTable = new JTable() { + /** + * + */ + private static final long serialVersionUID = 1L; + /* * Override to provide Select All editing functionality */ + @Override public boolean editCellAt(int row, int column, EventObject e) { boolean result = super.editCellAt(row, column, e); @@ -131,6 +137,7 @@ private void selectAll(EventObject e) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { ((JTextComponent)editor).selectAll(); @@ -144,6 +151,7 @@ public void run() // JAVA 6 GuidePointsTable.setFillsViewportHeight(true); mGuidePointsTable.setModel(new AbstractTableModel() { static final long serialVersionUID=1L; + @Override public String getColumnName(int col) { switch(col) { @@ -165,6 +173,7 @@ public String getColumnName(int col) { return ""; } } + @Override public int getRowCount() { BoardEdit edit = BoardCAD.getInstance().getSelectedEdit(); @@ -173,6 +182,7 @@ public int getRowCount() return edit.getGuidePoints().size(); } + @Override public int getColumnCount() { @@ -184,6 +194,7 @@ public int getColumnCount() return 4; } } + @Override public Object getValueAt(int row, int col) { Point2D.Double pnt = BoardCAD.getInstance().getSelectedEdit().getGuidePoints().get(row); @@ -212,6 +223,7 @@ public Object getValueAt(int row, int col) { } } + @Override public boolean isCellEditable(int row, int col) { switch(col) @@ -225,6 +237,7 @@ public boolean isCellEditable(int row, int col) return true; } } + @Override public void setValueAt(Object value, int row, int col) { BoardEdit edit = BoardCAD.getInstance().getSelectedEdit(); if(edit == null) @@ -265,6 +278,7 @@ public void setValueAt(Object value, int row, int col) { // this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { addGuidePoint(); @@ -280,6 +294,7 @@ public void actionPerformed(ActionEvent arg0) { // this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { int[] ai = mGuidePointsTable.getSelectedRows(); @@ -302,9 +317,11 @@ public void actionPerformed(ActionEvent arg0) { mGuidePointsTable.add(menu); mGuidePointsTable.addMouseListener(new MouseAdapter() { + @Override public void mousePressed(MouseEvent e) { showPopup(e); } + @Override public void mouseReleased(MouseEvent e) { showPopup(e); } @@ -317,6 +334,7 @@ private void showPopup(MouseEvent e) { mScrollPane.add(menu); mScrollPane.addMouseListener(new MouseAdapter() { + @Override public void mousePressed(MouseEvent e) { if (e.isPopupTrigger()) { showPopup(e); @@ -325,6 +343,7 @@ public void mousePressed(MouseEvent e) { addGuidePoint(); } } + @Override public void mouseReleased(MouseEvent e) { showPopup(e); } diff --git a/boardcad/gui/jdk/BoardLoadAction.java b/boardcad/gui/jdk/BoardLoadAction.java index 0c717ad..a3ee98c 100644 --- a/boardcad/gui/jdk/BoardLoadAction.java +++ b/boardcad/gui/jdk/BoardLoadAction.java @@ -46,20 +46,22 @@ public BoardLoadAction(JFrame frame, BezierBoard brd) } + @Override public void actionPerformed(ActionEvent event) { // Create a file dialog box to prompt for a new file to display - FileFilter filter = new FileFilter() + FileFilter boardFilesFilter = new FileFilter() { // Accept all directories and brd and s3d files. + @Override public boolean accept(File f) { if (f.isDirectory()) { return true; } String extension = FileTools.getExtension(f); - if (extension != null && (extension.equals("brd") || extension.equals("s3d") || extension.equals("srf") || extension.equals("cad") || extension.equals("stp") || extension.equals("step"))) + if (extension != null && (extension.equals("brd") || extension.equals("s3d") || extension.equals("s3dx") || extension.equals("srf") || extension.equals("cad") || extension.equals("stp") || extension.equals("step"))) { return true; } @@ -68,18 +70,49 @@ public boolean accept(File f) { } // The description of this filter + @Override public String getDescription() { return "Board files"; } + }; + + FileFilter allFilesFilter = new FileFilter() + { + +// Accept all directories and brd and s3d files. + @Override + public boolean accept(File f) { + if (f.isDirectory()) { + return true; + } + + String extension = FileTools.getExtension(f); + if (extension != null) + { + return true; + } + + return false; + } + +// The description of this filter + @Override + public String getDescription() { + return "All files"; + } + + + }; final JFileChooser fc = new JFileChooser(); fc.setFileView(new BoardFileView()); fc.setAccessory(new BoardPreview(fc)); - fc.addChoosableFileFilter(filter); + fc.addChoosableFileFilter(boardFilesFilter); + fc.addChoosableFileFilter(allFilesFilter); fc.setAcceptAllFileFilterUsed(false); @@ -121,6 +154,20 @@ public void load(String filename) errorStr = S3dReader.getErrorStr(); } } + else if(ext.compareToIgnoreCase("s3dx")==0) + { + ret = S3dxReader.loadFile(mBrd, filename); + + if(ret == 1) //Show warning dialog + { + JOptionPane.showMessageDialog(BoardCAD.getInstance().getFrame(), LanguageResource.getString("S3DTHICKNESSCURVENOTSUPPOSTEDMSG_STR"), LanguageResource.getString("S3DTHICKNESSCURVENOTSUPPOSTEDTITLE_STR"), JOptionPane.WARNING_MESSAGE); + } + + if(ret < 0) + { + errorStr = S3dReader.getErrorStr(); + } + } else if(ext.compareToIgnoreCase("srf")==0) { ret = SrfReader.loadFile(mBrd, filename); diff --git a/boardcad/gui/jdk/BoardPreview.java b/boardcad/gui/jdk/BoardPreview.java index bbe4cbd..31d23e6 100644 --- a/boardcad/gui/jdk/BoardPreview.java +++ b/boardcad/gui/jdk/BoardPreview.java @@ -53,14 +53,14 @@ else if (extension.equals("brd")){ else if (extension.equals("s3d")) { mBrd = new BezierBoard(); S3dReader.loadFile(mBrd, mFile.getAbsolutePath()); + } + else if (extension.equals("s3dx")) { + mBrd = new BezierBoard(); + S3dxReader.loadFile(mBrd, mFile.getAbsolutePath()); } - - else if (extension.equals("stp") || (extension.equals("step"))) { - - mBrd = new BezierBoard(); - StepReader.loadPreview(mBrd, mFile.getAbsolutePath()); - - } + else if (extension.equals("stp") || (extension.equals("step"))) { + StepReader.loadPreview(mBrd, mFile.getAbsolutePath()); + } else if (extension.equals("cad")){ //TODO: implement } @@ -68,7 +68,8 @@ else if (extension.equals("cad")){ } - public void propertyChange(PropertyChangeEvent e) + @Override + public void propertyChange(PropertyChangeEvent e) { boolean update = false; String prop = e.getPropertyName(); @@ -93,7 +94,8 @@ else if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(prop)) { //If a file } } - protected void paintComponent(Graphics gr) + @Override + protected void paintComponent(Graphics gr) { Graphics2D g = (Graphics2D)gr; FontMetrics fontMetrics = g.getFontMetrics(mFont); @@ -117,7 +119,7 @@ protected void paintComponent(Graphics gr) double upperFrameHeight = height - lowerFrameHeight - frameMargins; g.setColor(Color.GRAY); - g.drawRect((int)frameMargins, (int)0, (int)(width-frameMargins-1), (int)upperFrameHeight); + g.drawRect((int)frameMargins, 0, (int)(width-frameMargins-1), (int)upperFrameHeight); g.drawRect((int)frameMargins, (int)(upperFrameHeight + frameMargins), (int)(width-frameMargins-1), (int)lowerFrameHeight-1); @@ -137,8 +139,8 @@ protected void paintComponent(Graphics gr) double outlineDrawPos = width/2 - (mBrd.getThickness()*scale + 5.0*scale)/2; - BezierBoardDrawUtil.paintBezierSplines(jd, outlineDrawPos, upperFrameHeight-bottomMargin, scale, Color.BLACK, stroke, new BezierSpline[]{mBrd.getOutline()}, BezierBoardDrawUtil.Vertical | BezierBoardDrawUtil.FlipY | BezierBoardDrawUtil.MirrorX, true); - BezierBoardDrawUtil.paintBezierSplines(jd, outlineDrawPos + mBrd.getMaxWidth()*scale/2+ mBrd.getThickness()*scale + 5.0*scale, upperFrameHeight-bottomMargin, scale , Color.BLACK, stroke, new BezierSpline[]{mBrd.getDeck(), mBrd.getBottom()}, BezierBoardDrawUtil.Vertical | BezierBoardDrawUtil.FlipX | BezierBoardDrawUtil.FlipY, true); + BezierBoardDrawUtil.paintBezierSplines(jd, outlineDrawPos, upperFrameHeight-bottomMargin, scale, 0.0, Color.BLACK, stroke, new BezierSpline[]{mBrd.getOutline()}, BezierBoardDrawUtil.Vertical | BezierBoardDrawUtil.FlipY | BezierBoardDrawUtil.MirrorX, true); + BezierBoardDrawUtil.paintBezierSplines(jd, outlineDrawPos + mBrd.getMaxWidth()*scale/2+ mBrd.getThickness()*scale + 5.0*scale, 0.0, upperFrameHeight-bottomMargin, scale , Color.BLACK, stroke, new BezierSpline[]{mBrd.getDeck(), mBrd.getBottom()}, BezierBoardDrawUtil.Vertical | BezierBoardDrawUtil.FlipX | BezierBoardDrawUtil.FlipY, true); //Text double strLength = fontMetrics.stringWidth(mFile.getName()); diff --git a/boardcad/gui/jdk/BoardSpec.java b/boardcad/gui/jdk/BoardSpec.java index 38d0098..d1db2ea 100644 --- a/boardcad/gui/jdk/BoardSpec.java +++ b/boardcad/gui/jdk/BoardSpec.java @@ -13,9 +13,9 @@ import javax.swing.JRadioButton; import board.BezierBoard; - import cadcore.BezierSpline; import cadcore.UnitUtils; +import boardcad.commands.BrdScaleCommand; import boardcad.i18n.LanguageResource; public class BoardSpec extends JPanel { @@ -526,6 +526,7 @@ private JButton getMScaleButton() { mScaleButton.setText( LanguageResource.getString("SCALEBUTTON_STR")); mScaleButton.setToolTipText(LanguageResource.getString("SCALEBUTTONTOOLTIP_STR")); mScaleButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { BrdScaleCommand scaleCmd = new BrdScaleCommand(BoardCAD.getInstance().getSelectedEdit()); scaleCmd.execute(); @@ -543,6 +544,7 @@ private JRadioButton getOverCurveRadioButton() { mOverCurveRadioButton.setToolTipText(LanguageResource.getString("OVERCURVERADIOBUTTONTOOLTIP_STR")); mOverCurveRadioButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { mOverCurveRadioButton.setSelected(true); setVisible(true); @@ -560,6 +562,7 @@ private JRadioButton getStraightLineRadioButton() { mStraightLineRadioButton.setToolTipText(LanguageResource.getString("STRAIGHTLINERADIOBUTTONTOOLTIP_STR")); mStraightLineRadioButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { mStraightLineRadioButton.setSelected(true); setVisible(true); @@ -580,6 +583,7 @@ public void updateInfo() { mTimer = new java.util.Timer(); mTimer.schedule(new TimerTask(){ + @Override public void run() { updateMeasurements(); @@ -598,6 +602,7 @@ public void run() mIntegralTimer = new java.util.Timer(); mIntegralTimer.schedule(new TimerTask(){ + @Override public void run() { updateAreaAndVolume(); diff --git a/boardcad/gui/jdk/Brd3DModelGenerator.java b/boardcad/gui/jdk/Brd3DModelGenerator.java new file mode 100644 index 0000000..69610b8 --- /dev/null +++ b/boardcad/gui/jdk/Brd3DModelGenerator.java @@ -0,0 +1,242 @@ +package boardcad.gui.jdk; + +import java.util.Vector; + +import javax.media.j3d.*; +import javax.vecmath.*; + +import board.BezierBoard; + +public class Brd3DModelGenerator { + + boolean mCancelExecuting = false; + Vector mThreads = new Vector(); + boolean mInitialModelRun = true; + + public void update3DModel(BezierBoard brd, Shape3D model, int numTasks) { + if (brd.isEmpty()) + return; + + mCancelExecuting = true; + + System.out + .println("BezierBoard.update3DModel() cancel execution, wait for futures"); + + for (Thread thread : mThreads) { + try { + thread.join(); + } catch (InterruptedException e) { + System.out + .println("BezierBoard.update3DModel() InterruptedException"); + } + } + + mThreads.clear(); + + System.out.println("BezierBoard.update3DModel() Wait finished"); + + if (model.numGeometries() != numTasks) { + System.out + .printf("BezierBoard.update3DModel() Need initial run geom:%d tasks:%d", + model.numGeometries(), numTasks); + + model.removeAllGeometries(); + mInitialModelRun = true; + } else { + mInitialModelRun = false; + } + + mCancelExecuting = false; + double length = brd.getLength(); + + for (int i = 0; i < numTasks; i++) { + final double sx = (length / numTasks) * i; + final double ex = (length / numTasks) * (i + 1); + final int index = i; + Runnable task = () -> { + update3DModel((BezierBoard) brd.clone(), model, sx, ex, index); + }; + + Thread thread = new Thread(task); + mThreads.add(thread); + thread.start(); + } + + } + + public void update3DModel(BezierBoard brd, Shape3D model, double startX, + double endX, int index) { + double lengthAccuracy = 1.0; + double deckWidthAccuracy = 1.0; + double bottomWidthAccuracy = 1.0; + + double spanLength = endX - startX; + double width = brd.getCenterWidth(); + + int lengthSteps = (int) (spanLength / lengthAccuracy) + 1; + // int lengthSteps = 200; + int deckSteps = (int) ((width / 2.0) / deckWidthAccuracy) + 1; + int railSteps = 0; + int bottomSteps = (int) (width / 2.0 / bottomWidthAccuracy) + 1; + + double lengthStep = spanLength / lengthSteps; + + int nrOfCoords = (lengthSteps) * (deckSteps + railSteps + bottomSteps) + * 4 * 2; + + QuadArray quads; + quads = new QuadArray(nrOfCoords, IndexedQuadArray.COORDINATES + | IndexedQuadArray.NORMALS); + + Point3d[] vertices = new Point3d[4]; + Vector3f[] normals = new Vector3f[4]; + Point3d[] mirrorVertices = new Point3d[4]; + Vector3f[] mirrorNormals = new Vector3f[4]; + for (int i = 0; i < 4; i++) { + vertices[i] = new Point3d(); + normals[i] = new Vector3f(); + mirrorVertices[i] = new Point3d(); + mirrorNormals[i] = new Vector3f(); + } + + int nrOfQuads = 0; + double xPos = 0.0; + + // Deck + double minAngle = -45.0; + double maxAngle = 45.0; + for (int i = 0; i < deckSteps; i++) { + if (mCancelExecuting) + return; + + xPos = startX; + + // first coords in lengthwise strip + vertices[0].set(brd.getSurfacePoint(xPos, minAngle, maxAngle, i, + deckSteps)); + normals[0].set(brd.getSurfaceNormal(xPos, minAngle, maxAngle, i, + deckSteps)); + + vertices[3].set(brd.getSurfacePoint(xPos, minAngle, maxAngle, + i + 1, deckSteps)); + normals[3].set(brd.getSurfaceNormal(xPos, minAngle, maxAngle, + i + 1, deckSteps)); + + xPos += lengthStep; + + for (int j = 1; j <= lengthSteps; j++) { + + vertices[1].set(brd.getSurfacePoint(xPos, minAngle, maxAngle, + i, deckSteps)); + normals[1].set(brd.getSurfaceNormal(xPos, minAngle, maxAngle, + i, deckSteps)); + + vertices[2].set(brd.getSurfacePoint(xPos, minAngle, maxAngle, + i + 1, deckSteps)); + normals[2].set(brd.getSurfaceNormal(xPos, minAngle, maxAngle, + i + 1, deckSteps)); + + // Build one quad + quads.setCoordinates(nrOfQuads * 4, vertices); + quads.setNormals(nrOfQuads * 4, normals); + nrOfQuads++; + + // Mirror + for (int n = 0; n < 4; n++) { + mirrorVertices[n].set(vertices[3 - n]); + mirrorNormals[n].set(normals[3 - n]); + + mirrorVertices[n].y = -mirrorVertices[n].y; + mirrorNormals[n].y = -mirrorNormals[n].y; + } + + // Build mirrored quad + quads.setCoordinates(nrOfQuads * 4, mirrorVertices); + quads.setNormals(nrOfQuads * 4, mirrorNormals); + nrOfQuads++; + + // Get ready for next step + vertices[0].set(vertices[1]); + normals[0].set(normals[1]); + + vertices[3].set(vertices[2]); + normals[3].set(normals[2]); + + xPos += lengthStep; + + } + } + + // Bottom + minAngle = maxAngle; + maxAngle = 360.0; + for (int i = 0; i < bottomSteps; i++) { + if (mCancelExecuting) + return; + + xPos = startX; + + // first coords in lengthwise strip + vertices[0].set(brd.getSurfacePoint(xPos, minAngle, maxAngle, i, + bottomSteps)); + normals[0].set(brd.getSurfaceNormal(xPos, minAngle, maxAngle, i, + bottomSteps)); + + vertices[3].set(brd.getSurfacePoint(xPos, minAngle, maxAngle, + i + 1, bottomSteps)); + normals[3].set(brd.getSurfaceNormal(xPos, minAngle, maxAngle, + i + 1, bottomSteps)); + + xPos += lengthStep; + + for (int j = 1; j <= lengthSteps; j++) { + // Two next coords + vertices[1].set(brd.getSurfacePoint(xPos, minAngle, maxAngle, + i, bottomSteps)); + normals[1].set(brd.getSurfaceNormal(xPos, minAngle, maxAngle, + i, bottomSteps)); + + vertices[2].set(brd.getSurfacePoint(xPos, minAngle, maxAngle, + i + 1, bottomSteps)); + normals[2].set(brd.getSurfaceNormal(xPos, minAngle, maxAngle, + i + 1, bottomSteps)); + + // Build one quad + quads.setCoordinates(nrOfQuads * 4, vertices); + quads.setNormals(nrOfQuads * 4, normals); + nrOfQuads++; + + // Mirror + for (int n = 0; n < 4; n++) { + mirrorVertices[n].set(vertices[3 - n]); + mirrorNormals[n].set(normals[3 - n]); + + mirrorVertices[n].y = -mirrorVertices[n].y; + mirrorNormals[n].y = -mirrorNormals[n].y; + } + + // Build mirrored quad + quads.setCoordinates(nrOfQuads * 4, mirrorVertices); + quads.setNormals(nrOfQuads * 4, mirrorNormals); + nrOfQuads++; + + // Get ready for next step + vertices[0].set(vertices[1]); + normals[0].set(normals[1]); + + vertices[3].set(vertices[2]); + normals[3].set(normals[2]); + + xPos += lengthStep; + + } + } + + if (mInitialModelRun) { + model.addGeometry(quads); + } else { + model.setGeometry(quads, index); + } + + } +} diff --git a/boardcad/gui/jdk/BrdEditParentContainer.java b/boardcad/gui/jdk/BrdEditParentContainer.java new file mode 100644 index 0000000..646e3f3 --- /dev/null +++ b/boardcad/gui/jdk/BrdEditParentContainer.java @@ -0,0 +1,8 @@ +package boardcad.gui.jdk; + +interface BrdEditParentContainer +{ + public void setActive(BoardEdit edit); + public boolean isActive(BoardEdit edit); + public BoardEdit getActive(); +} \ No newline at end of file diff --git a/boardcad/gui/jdk/BrdEditSplitPane.java b/boardcad/gui/jdk/BrdEditSplitPane.java new file mode 100644 index 0000000..ab61e93 --- /dev/null +++ b/boardcad/gui/jdk/BrdEditSplitPane.java @@ -0,0 +1,36 @@ +package boardcad.gui.jdk; + +import javax.swing.JSplitPane; + +class BrdEditSplitPane extends JSplitPane implements BrdEditParentContainer +{ + static final long serialVersionUID=1L; + BoardEdit mActive = null; + + BrdEditSplitPane(int arg1, BoardEdit first, BoardEdit second) + { + super(arg1, first, second); + mActive = first; + first.mParentContainer = this; + second.mParentContainer = this; + } + + @Override + public void setActive(BoardEdit edit) + { + mActive = edit; + this.repaint(); + } + + @Override + public boolean isActive(BoardEdit edit) + { + return (edit == mActive); + } + + @Override + public BoardEdit getActive() + { + return mActive; + } +} \ No newline at end of file diff --git a/boardcad/gui/jdk/BrdGuidePointsDialog.java b/boardcad/gui/jdk/BrdGuidePointsDialog.java index bcb15c9..cb137d7 100644 --- a/boardcad/gui/jdk/BrdGuidePointsDialog.java +++ b/boardcad/gui/jdk/BrdGuidePointsDialog.java @@ -68,6 +68,7 @@ private JTable getGuidePointsTable() { // JAVA 6 GuidePointsTable.setFillsViewportHeight(true); mGuidePointsTable.setModel(new AbstractTableModel() { static final long serialVersionUID=1L; + @Override public String getColumnName(int col) { switch(col) { @@ -81,8 +82,11 @@ public String getColumnName(int col) { return ""; } } + @Override public int getRowCount() { return BoardCAD.getInstance().getSelectedEdit().getGuidePoints().size(); } + @Override public int getColumnCount() { return 3; } + @Override public Object getValueAt(int row, int col) { switch(col) @@ -100,6 +104,7 @@ public Object getValueAt(int row, int col) { } } + @Override public boolean isCellEditable(int row, int col) { switch(col) @@ -112,6 +117,7 @@ public boolean isCellEditable(int row, int col) return true; } } + @Override public void setValueAt(Object value, int row, int col) { Point2D.Double pnt = BoardCAD.getInstance().getSelectedEdit().getGuidePoints().get(row); double val = UnitUtils.convertInputStringToInternalLengthUnit((String)value); @@ -139,6 +145,7 @@ public void setValueAt(Object value, int row, int col) { // this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { BoardCAD.getInstance().getSelectedEdit().getGuidePoints().add(new Point2D.Double()); @@ -155,6 +162,7 @@ public void actionPerformed(ActionEvent arg0) { // this.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0)); }; + @Override public void actionPerformed(ActionEvent arg0) { int[] ai = mGuidePointsTable.getSelectedRows(); @@ -176,9 +184,11 @@ public void actionPerformed(ActionEvent arg0) { mGuidePointsTable.add(menu); mGuidePointsTable.addMouseListener(new MouseAdapter() { + @Override public void mousePressed(MouseEvent e) { showPopup(e); } + @Override public void mouseReleased(MouseEvent e) { showPopup(e); } diff --git a/boardcad/gui/jdk/CategorizedSettingsComponent.java b/boardcad/gui/jdk/CategorizedSettingsComponent.java index 720703b..88c96bd 100644 --- a/boardcad/gui/jdk/CategorizedSettingsComponent.java +++ b/boardcad/gui/jdk/CategorizedSettingsComponent.java @@ -29,6 +29,7 @@ public CategorizedSettingsComponent(final CategorizedSettings settings) initialize(); mCategorizedSettings.addCategorySettingsChangeListener(new CategorySettingsChangeListener(){ + @Override public void onCategoryRemoved(String categoryName) { for(int i = 0; i < mTabbedPane.getTabCount(); i++) @@ -40,6 +41,7 @@ public void onCategoryRemoved(String categoryName) } } } + @Override public void onCategoryAdded(String categoryName) { final Settings settings = mCategorizedSettings.getCategory(categoryName); diff --git a/boardcad/gui/jdk/ComboBoxDialog.java b/boardcad/gui/jdk/ComboBoxDialog.java index a3bf2d8..4a45186 100644 --- a/boardcad/gui/jdk/ComboBoxDialog.java +++ b/boardcad/gui/jdk/ComboBoxDialog.java @@ -108,6 +108,7 @@ private JButton getOkButton() { OkButton.setText(LanguageResource.getString("OKBUTTON_STR") ); OkButton.setMinimumSize(new Dimension(50, 14)); OkButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); mWasCancelled = false; @@ -128,6 +129,7 @@ private JButton getCancelButton() { CancelButton.setText(LanguageResource.getString("CANCELBUTTON_STR") ); CancelButton.setMinimumSize(new Dimension(50, 14)); CancelButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); } diff --git a/boardcad/gui/jdk/ControlPointInfo.java b/boardcad/gui/jdk/ControlPointInfo.java index a159078..a999f47 100644 --- a/boardcad/gui/jdk/ControlPointInfo.java +++ b/boardcad/gui/jdk/ControlPointInfo.java @@ -21,6 +21,8 @@ import cadcore.BezierKnot; import cadcore.UnitUtils; +import boardcad.commands.BrdCommand; +import boardcad.commands.BrdEditCommand; import boardcad.i18n.LanguageResource; public class ControlPointInfo extends JPanel { @@ -50,6 +52,11 @@ public ControlPointInfo() { super(); initialize(); } + + public BrdEditCommand getCmd() + { + return mCmd; + } /** * This method initializes this @@ -260,6 +267,7 @@ private JCheckBox getMContinous() { mContinous.setText(LanguageResource.getString("CONTROLPOINTCONTINOUS_STR")); mContinous.setToolTipText(LanguageResource.getString("CONTROLPOINTCONTINOUSTOOLTIP_STR")); mContinous.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent e) { if(mBlockActions) return; @@ -283,6 +291,7 @@ private JButton getSetButton() SetButton.setText(LanguageResource.getString("CONTROLPOINTSET_STR")); SetButton.setToolTipText(LanguageResource.getString("CONTROLPOINTSETTOOLTIP_STR")); SetButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { if(mBlockActions) return; @@ -294,6 +303,7 @@ public void actionPerformed(java.awt.event.ActionEvent e) { return SetButton; } + @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); @@ -385,6 +395,7 @@ private JButton getSetControlPointVerticalButton() { setControlPointVerticalButton.setHorizontalTextPosition(SwingConstants.CENTER); setControlPointVerticalButton .addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { BrdCommand cmd = BoardCAD.getInstance().getCurrentCommand(); @@ -411,6 +422,7 @@ private JButton getSetControlPointHorizontalButton() { setControlPointHorizontalButton.setToolTipText(LanguageResource.getString("CONTROLPOINTHORIZONTALTOOLTIP_STR")); setControlPointHorizontalButton .addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { BrdCommand cmd = BoardCAD.getInstance().getCurrentCommand(); diff --git a/boardcad/gui/jdk/DesignPanel.java b/boardcad/gui/jdk/DesignPanel.java index 5376bb0..7ec0580 100644 --- a/boardcad/gui/jdk/DesignPanel.java +++ b/boardcad/gui/jdk/DesignPanel.java @@ -25,164 +25,144 @@ import java.awt.event.MouseMotionAdapter; import java.awt.event.MouseMotionListener; -import javax.media.j3d.AmbientLight; -import javax.media.j3d.Appearance; -import javax.media.j3d.Background; -import javax.media.j3d.BoundingSphere; -import javax.media.j3d.BranchGroup; -import javax.media.j3d.Canvas3D; -import javax.media.j3d.ColoringAttributes; -import javax.media.j3d.DirectionalLight; -import javax.media.j3d.Group; -import javax.media.j3d.Light; -import javax.media.j3d.Material; -import javax.media.j3d.Shape3D; -import javax.media.j3d.TextureAttributes; -import javax.media.j3d.Transform3D; -import javax.media.j3d.TransformGroup; -import javax.media.j3d.TriangleArray; +import javax.media.j3d.*; import javax.swing.JCheckBoxMenuItem; import javax.swing.JPopupMenu; -import javax.vecmath.Color3f; -import javax.vecmath.Point3d; -import javax.vecmath.Vector3f; - -import cadcore.NurbsPoint; +import javax.vecmath.*; import com.sun.j3d.utils.behaviors.vp.OrbitBehavior; import com.sun.j3d.utils.image.TextureLoader; -import com.sun.j3d.utils.universe.PlatformGeometry; -import com.sun.j3d.utils.universe.SimpleUniverse; -import com.sun.j3d.utils.universe.ViewingPlatform; - -import com.sun.j3d.exp.swing.JCanvas3D; -import com.sun.j3d.utils.behaviors.mouse.MouseRotate; +import com.sun.j3d.utils.universe.*; +import board.BezierBoard; +import cadcore.MathUtils; +import cadcore.NurbsPoint; -interface AbstractEditor -{ +interface AbstractEditor { void fit_all(); } -//=========================================================Design Panel -class DesignPanel extends Panel implements AbstractEditor -{ -/** +// =========================================================Design Panel +class DesignPanel extends Panel implements AbstractEditor { + /** * */ private static final long serialVersionUID = 1L; - // private UserInterface user_interface; + // private UserInterface user_interface; private StatusPanel status_panel; private RockerView rocker_view; private EdgeView edge_view; private OutlineView outline_view; - private ThreeDView rendered_view; + private ThreeDView rendered_view; private ThreeDView2 threed_view; - - - public DesignPanel(BoardHandler board_handler, StatusPanel sp) - { -// user_interface=ui; - status_panel=sp; - threed_view=new ThreeDView2(board_handler, this); - rocker_view=new RockerView(board_handler, this); - edge_view=new EdgeView(board_handler, this); - outline_view=new OutlineView(board_handler, this); - rendered_view=new ThreeDView(board_handler, this); + BranchGroup mRoot; + Switch mBezier3DOnSwitch; + Shape3D mBezier3DModel; + TransformGroup mScaleTransform; -/* - setLayout(new GridLayout(2,2,3,3)); - - add(rocker_view); - add(edge_view); - add(outline_view); + boolean mBezierBoardChangedFor3D = false; + +// Brd3DModelGenerator mBrd3DModelGenerator = new Brd3DModelGenerator(); + FasterBrd3DModelGenerator mBrd3DModelGenerator = new FasterBrd3DModelGenerator(); + + public DesignPanel(BoardHandler board_handler, StatusPanel sp) { + // user_interface=ui; + status_panel = sp; + + rocker_view = new RockerView(board_handler, this); + edge_view = new EdgeView(board_handler, this); + outline_view = new OutlineView(board_handler, this); + rendered_view = new ThreeDView(board_handler, this); + threed_view = new ThreeDView2(board_handler, this); + + /* + * setLayout(new GridLayout(2,2,3,3)); + * + * add(rocker_view); add(edge_view); add(outline_view); + * add(threed_view); + * + * doLayout(); redraw(); // threed_view.setSize(getPreferredSize()); + * threed_view.doLayout(); + */ + setLayout(new GridLayout(1, 1)); add(threed_view); - doLayout(); + + initBezierModel(); + redraw(); -// threed_view.setSize(getPreferredSize()); - threed_view.doLayout(); -*/ - setLayout(new GridLayout(1,1)); - add(threed_view); - doLayout(); -// redraw(); -// threed_view.setSize(getPreferredSize()); -// threed_view.doLayout(); + // threed_view.setSize(getPreferredSize()); + // threed_view.doLayout(); } - public void view_outline() - { + public void view_outline() { remove(rocker_view); remove(edge_view); remove(outline_view); remove(threed_view); - setLayout(new GridLayout(1,1)); + setLayout(new GridLayout(1, 1)); add(outline_view); doLayout(); redraw(); } - public void view_rocker() - { + public void view_rocker() { remove(rocker_view); remove(edge_view); remove(outline_view); remove(threed_view); - setLayout(new GridLayout(1,1)); + setLayout(new GridLayout(1, 1)); add(rocker_view); doLayout(); redraw(); } - public void view_edge() - { + + public void view_edge() { remove(rocker_view); remove(edge_view); remove(outline_view); remove(threed_view); - setLayout(new GridLayout(1,1)); + setLayout(new GridLayout(1, 1)); add(edge_view); doLayout(); redraw(); } - public void view_3d() - { + + public void view_3d() { remove(rocker_view); remove(edge_view); remove(outline_view); remove(threed_view); - setLayout(new GridLayout(1,1)); + setLayout(new GridLayout(1, 1)); add(threed_view); doLayout(); -// redraw(); -// threed_view.setSize(getPreferredSize()); -// threed_view.doLayout(); + redraw(); + // threed_view.setSize(getPreferredSize()); + // threed_view.doLayout(); } - public void view_rendered() - { + public void view_rendered() { remove(rocker_view); remove(edge_view); remove(outline_view); remove(threed_view); - setLayout(new GridLayout(1,1)); + setLayout(new GridLayout(1, 1)); add(rendered_view); doLayout(); -// redraw(); + redraw(); rendered_view.setSize(getPreferredSize()); rendered_view.doLayout(); } - public void view_all() - { + public void view_all() { remove(rocker_view); remove(edge_view); remove(outline_view); remove(threed_view); - setLayout(new GridLayout(2,2,3,3)); + setLayout(new GridLayout(2, 2, 3, 3)); add(rocker_view); add(edge_view); @@ -193,69 +173,131 @@ public void view_all() redraw(); } - public void fit_all() - { + @Override + public void fit_all() { rocker_view.fit(); edge_view.fit(); outline_view.fit(); threed_view.fit(); } - public void set_point_name(String text) - { + public void set_point_name(String text) { status_panel.set_point_name(text); status_panel.doLayout(); } - public void set_coordinates(double x, double y, double z) - { - status_panel.set_coordinates(x,y,z); + public void set_coordinates(double x, double y, double z) { + status_panel.set_coordinates(x, y, z); status_panel.doLayout(); } - public void update_3d() - { + public void update_3d() { rendered_view.update(); - } - public void addModel(BranchGroup model) - { + public void addModel(BranchGroup model) { rendered_view.addModel(model); } - public Shape3D getShape() - { + public Shape3D getShape() { return rendered_view.getShape(); } - public void set_airbrush(String filename) - { + public void set_airbrush(String filename) { rendered_view.set_airbrush(filename); } - public void redraw() - { + public void redraw() { rocker_view.repaint(); edge_view.repaint(); outline_view.repaint(); threed_view.repaint(); rendered_view.repaint(); -// rendered_view.doLayout(); + rendered_view.doLayout(); } - - public ThreeDView get3DView() - { + + public ThreeDView get3DView() { return rendered_view; } + + public void setShowBezierModel(boolean show) { + mBezier3DOnSwitch.setWhichChild(show ? Switch.CHILD_ALL + : Switch.CHILD_NONE); + } + + public boolean getShowBezierMode(boolean show) { + return (mBezier3DOnSwitch.getWhichChild() == Switch.CHILD_ALL); + } + + void initBezierModel() { + + mRoot = new BranchGroup(); + + mBezier3DOnSwitch = new Switch(); + mBezier3DOnSwitch.setCapability(Switch.ALLOW_SWITCH_READ); + mBezier3DOnSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); + + mBezier3DOnSwitch.setWhichChild(Switch.CHILD_ALL); + + mRoot.addChild(mBezier3DOnSwitch); + mScaleTransform = new TransformGroup(); + mScaleTransform.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); + mBezier3DOnSwitch.addChild(mScaleTransform); + mBezier3DModel = new Shape3D(); + mBezier3DModel.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); + mBezier3DModel.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); + // Create an Appearance. + Appearance a = new Appearance(); + Color3f ambient = new Color3f(0.4f, 0.4f, 0.4f); + Color3f emissive = new Color3f(0.0f, 0.0f, 0.0f); + Color3f diffuse = new Color3f(0.8f, 0.8f, 0.8f); + Color3f specular = new Color3f(1.0f, 1.0f, 1.0f); + + // Set up the material properties + a.setMaterial(new Material(ambient, emissive, diffuse, specular, 115.0f)); + mBezier3DModel.setAppearance(a); + mScaleTransform.addChild(mBezier3DModel); + + // BranchGroup copy = (BranchGroup)root.cloneTree(); + + addModel(mRoot); + } + + public Shape3D getBezier3DModel() { + return mBezier3DModel; + } + + public void setBezierScale(double scale, double offset) { + Transform3D transform = new Transform3D(); + transform.setScale(scale); + transform.setTranslation(new Vector3d(offset, 0.0, 0.0)); + transform.setRotation(new AxisAngle4d(1.0, 0.0, 0.0, -Math.PI / 2.0)); + mScaleTransform.setTransform(transform); + } + + public void updateBezier3DModel(BezierBoard brd) { + + System.out.println("DesignPanel.updateBezier3DModel()"); + + double scale = 0.008; + double offset = -brd.getLength() * scale / 2.0; + if (brd != null && mBezierBoardChangedFor3D) { + setBezierScale(scale, offset); + mBrd3DModelGenerator.update3DModel(brd, getBezier3DModel(), 8); + mBezierBoardChangedFor3D = false; + } + } + + public void setBoardChangedFor3D() { + mBezierBoardChangedFor3D = true; + } } -//=========================================================Views +// =========================================================Views -abstract class View extends Canvas -{ +abstract class View extends Canvas { /** * */ @@ -269,16 +311,15 @@ abstract class View extends Canvas protected Dimension off_dimension; protected Image off_image; protected Graphics g; - protected double scale; //transforms between image and board coordinates - protected int offset_x; //position of origo in image coordinates + protected double scale; // transforms between image and board coordinates + protected int offset_x; // position of origo in image coordinates protected int offset_y; - protected void clear_graphics() - { - Dimension d=getSize(); + protected void clear_graphics() { + Dimension d = getSize(); - if (g==null || d.width!=off_dimension.width || d.height!=off_dimension.height) - { + if (g == null || d.width != off_dimension.width + || d.height != off_dimension.height) { off_dimension = d; off_image = createImage(d.width, d.height); g = off_image.getGraphics(); @@ -286,17 +327,15 @@ protected void clear_graphics() g.setColor(BoardCAD.getInstance().getBackgroundColor()); g.fillRect(0, 0, d.width, d.height); -// g.setColor(getBackground()); -// g.fillRect(0, 0, d.width, d.height); -// g.draw3DRect(0,0,d.width-1,d.height-1,true); -// g.draw3DRect(3,3,d.width-7,d.height-7,false); + // g.setColor(getBackground()); + // g.fillRect(0, 0, d.width, d.height); + // g.draw3DRect(0,0,d.width-1,d.height-1,true); + // g.draw3DRect(3,3,d.width-7,d.height-7,false); } } - -class EdgeView extends View implements ItemListener, ActionListener -{ +class EdgeView extends View implements ItemListener, ActionListener { /** * */ @@ -316,23 +355,22 @@ class EdgeView extends View implements ItemListener, ActionListener private View the_view; - public EdgeView(BoardHandler bh, DesignPanel dp) - { - board_handler=bh; - design_panel=dp; - view_menu=new PopupMenu(); + public EdgeView(BoardHandler bh, DesignPanel dp) { + board_handler = bh; + design_panel = dp; + view_menu = new PopupMenu(); - is_marked=false; - is_dragged=false; - scale=1; - offset_x=0; - offset_y=0; + is_marked = false; + is_dragged = false; + scale = 1; + offset_x = 0; + offset_y = 0; - vee_item=new MenuItem("Set Vee"); - concave_item=new MenuItem("Set Concave"); - y_locked_item=new CheckboxMenuItem("y locked", false); - z_locked_item=new CheckboxMenuItem("z locked", false); - fit_item=new MenuItem("Fit"); + vee_item = new MenuItem("Set Vee"); + concave_item = new MenuItem("Set Concave"); + y_locked_item = new CheckboxMenuItem("y locked", false); + z_locked_item = new CheckboxMenuItem("z locked", false); + fit_item = new MenuItem("Fit"); vee_item.addActionListener(this); concave_item.addActionListener(this); @@ -348,202 +386,186 @@ public EdgeView(BoardHandler bh, DesignPanel dp) view_menu.add(vee_item); view_menu.add(concave_item); - add(view_menu); - the_view=this; + add(view_menu); + the_view = this; addMouseListener(EdgeMouse); addMouseMotionListener(EdgeMouseMotion); } - public void fit() - { - if(getSize().width == 0) + public void fit() { + if (getSize().width == 0) return; - - if(off_dimension==null) + + if (off_dimension == null) return; - - double width=board_handler.get_segment_width(); - if (width<100) - width=100; - scale=(double)(off_dimension.width-40)/width; - offset_y=(int)(board_handler.get_edge_offset()*scale+2*off_dimension.height/3); - offset_x=off_dimension.width/2; + double width = board_handler.get_segment_width(); + if (width < 100) + width = 100; + + scale = (off_dimension.width - 40) / width; + offset_y = (int) (board_handler.get_edge_offset() * scale + 2 * off_dimension.height / 3); + offset_x = off_dimension.width / 2; repaint(); } - public void actionPerformed(ActionEvent e) - { - if(e.getSource()==vee_item) - { - } - else if(e.getSource()==concave_item) - { - } - else if(e.getSource()==fit_item) - { + @Override + public void actionPerformed(ActionEvent e) { + if (e.getSource() == vee_item) { + } else if (e.getSource() == concave_item) { + } else if (e.getSource() == fit_item) { fit(); } } - public void itemStateChanged(ItemEvent e) - { + @Override + public void itemStateChanged(ItemEvent e) { } - public void paint(Graphics g2) - { + @Override + public void paint(Graphics g2) { update(g2); } - public void update(Graphics g2) - { - clear_graphics(); - - /** + @Override + public void update(Graphics g2) { + clear_graphics(); + /** + * * Copy the graphics context so we can change it. - + * * Cast it to Graphics2D so we can use antialiasing. - */ - Graphics2D g2d = (Graphics2D)g.create(); + Graphics2D g2d = (Graphics2D) g.create(); -// Turn on antialiasing, so painting is smooth. - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,BoardCAD.getInstance().isAntialiasing()?RenderingHints.VALUE_ANTIALIAS_ON:RenderingHints.VALUE_ANTIALIAS_OFF); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,BoardCAD.getInstance().isAntialiasing()?RenderingHints.VALUE_TEXT_ANTIALIAS_ON:RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); + // Turn on antialiasing, so painting is smooth. + g2d.setRenderingHint( + RenderingHints.KEY_ANTIALIASING, + BoardCAD.getInstance().isAntialiasing() ? RenderingHints.VALUE_ANTIALIAS_ON + : RenderingHints.VALUE_ANTIALIAS_OFF); + g2d.setRenderingHint( + RenderingHints.KEY_TEXT_ANTIALIASING, + BoardCAD.getInstance().isAntialiasing() ? RenderingHints.VALUE_TEXT_ANTIALIAS_ON + : RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); - if(is_dragged && !is_marked) - { + if (is_dragged && !is_marked) { g2d.setColor(Color.black); g2d.drawRect(zoom_x, zoom_y, zoom_width, zoom_height); } - board_handler.draw_edge(g2d, off_dimension.width, off_dimension.height, scale, offset_x, offset_y); + board_handler.draw_edge(g2d, off_dimension.width, off_dimension.height, + scale, offset_x, offset_y); g2.drawImage(off_image, 0, 0, this); } - MouseMotionListener EdgeMouseMotion=new MouseMotionAdapter() - { - public void mouseDragged(MouseEvent e) - { - if(e.isMetaDown()) - { - } - else if(e.isControlDown()) - { - } - else - { - is_dragged=true; - if(is_marked) - { - if(!y_locked_item.getState()) - board_handler.set_y((-e.getY()+offset_y)/scale); - if(!z_locked_item.getState()) - board_handler.set_z((e.getX()-offset_x)/scale); + MouseMotionListener EdgeMouseMotion = new MouseMotionAdapter() { + @Override + public void mouseDragged(MouseEvent e) { + if (e.isMetaDown()) { + } else if (e.isControlDown()) { + } else { + is_dragged = true; + if (is_marked) { + if (!y_locked_item.getState()) + board_handler.set_y((-e.getY() + offset_y) / scale); + if (!z_locked_item.getState()) + board_handler.set_z((e.getX() - offset_x) / scale); board_handler.set_point(); - design_panel.set_coordinates(board_handler.get_x(), board_handler.get_y(), board_handler.get_z()); + design_panel.set_coordinates(board_handler.get_x(), + board_handler.get_y(), board_handler.get_z()); design_panel.redraw(); - } - else - { - dragged_x=e.getX(); - dragged_y=e.getY(); - if(dragged_y>clicked_y) - dragged_y=clicked_y+(int)(Math.abs(dragged_x-clicked_x)*(double)off_dimension.height/(double)off_dimension.width); + } else { + dragged_x = e.getX(); + dragged_y = e.getY(); + if (dragged_y > clicked_y) + dragged_y = clicked_y + + (int) (Math.abs(dragged_x - clicked_x) + * (double) off_dimension.height / off_dimension.width); else - dragged_y=clicked_y-(int)(Math.abs(dragged_x-clicked_x)*(double)off_dimension.height/(double)off_dimension.width); - if(clicked_xclicked_y) - dragged_y=clicked_y+(int)(Math.abs(dragged_x-clicked_x)*(double)off_dimension.height/(double)off_dimension.width); + } else { + dragged_x = e.getX(); + dragged_y = e.getY(); + if (dragged_y > clicked_y) + dragged_y = clicked_y + + (int) (Math.abs(dragged_x - clicked_x) + * (double) off_dimension.height / off_dimension.width); else - dragged_y=clicked_y-(int)(Math.abs(dragged_x-clicked_x)*(double)off_dimension.height/(double)off_dimension.width); - if(clicked_xclicked_y) - dragged_y=clicked_y+(int)(Math.abs(dragged_x-clicked_x)*(double)off_dimension.height/(double)off_dimension.width); + } else { + dragged_x = e.getX(); + dragged_y = e.getY(); + if (dragged_y > clicked_y) + dragged_y = clicked_y + + (int) (Math.abs(dragged_x - clicked_x) + * (double) off_dimension.height / off_dimension.width); else - dragged_y=clicked_y-(int)(Math.abs(dragged_x-clicked_x)*(double)off_dimension.height/(double)off_dimension.width); - if(clicked_xclicked_y) - dragged_y=clicked_y+(int)(Math.abs(dragged_x-clicked_x)*(double)off_dimension.height/(double)off_dimension.width); + } else { + dragged_x = e.getX(); + dragged_y = e.getY(); + if (dragged_y > clicked_y) + dragged_y = clicked_y + + (int) (Math.abs(dragged_x - clicked_x) + * (double) off_dimension.height / off_dimension.width); else - dragged_y=clicked_y-(int)(Math.abs(dragged_x-clicked_x)*(double)off_dimension.height/(double)off_dimension.width); - if(clicked_x mThreads = new Vector(); + boolean mInitialModelRun = true; + + public void update3DModel(BezierBoard brd, Shape3D model, int numTasks) { + if (brd.isEmpty()) + return; + + mCancelExecuting = true; + + System.out + .println("BezierBoard.update3DModel() cancel execution, wait for threads"); + + for (Thread thread : mThreads) { + try { + thread.join(); + } catch (InterruptedException e) { + System.out + .println("BezierBoard.update3DModel() InterruptedException"); + } + } + + mThreads.clear(); + + System.out.println("BezierBoard.update3DModel() Wait finished"); + + if (model.numGeometries() != numTasks) { + System.out + .printf("BezierBoard.update3DModel() Need initial run geom:%d tasks:%d", + model.numGeometries(), numTasks); + + model.removeAllGeometries(); + mInitialModelRun = true; + } else { + mInitialModelRun = false; + } + + mCancelExecuting = false; + double length = brd.getLength(); + + for (int i = 0; i < numTasks; i++) { + final double sx = (length / numTasks) * i; + final double ex = (length / numTasks) * (i + 1); + final int index = i; + Runnable task = () -> { + update3DModel((BezierBoard) brd.clone(), model, sx, ex, index); + }; + + Thread thread = new Thread(task); + mThreads.add(thread); + thread.start(); + } + + } + + public void update3DModel(BezierBoard brd, Shape3D model, double startX, + double endX, int index) { + double lengthAccuracy = 1.0; + double deckWidthAccuracy = 1.0; + double bottomWidthAccuracy = 1.0; + + double spanLength = endX - startX; + double width = brd.getCenterWidth(); + + int lengthSteps = (int) (spanLength / lengthAccuracy) + 1; + // int lengthSteps = 200; + int deckSteps = (int) ((width / 2.0) / deckWidthAccuracy) + 1; + int railSteps = 0; + int bottomSteps = (int) (width / 2.0 / bottomWidthAccuracy) + 1; + + double lengthStep = spanLength / lengthSteps; + + int nrOfCoords = (lengthSteps) * (deckSteps + railSteps + bottomSteps) + * 4 * 2; + + QuadArray quads; + quads = new QuadArray(nrOfCoords, IndexedQuadArray.COORDINATES + | IndexedQuadArray.NORMALS); + + Point3d[][] vertices = new Point3d[deckSteps+1][lengthSteps+1]; + Vector3f[][] normals = new Vector3f[deckSteps+1][lengthSteps+1]; + Point3d[] quadCoords = new Point3d[lengthSteps*4]; + Vector3f[] quadNormals = new Vector3f[lengthSteps*4]; + + int nrOfQuads = 0; + double xPos = 0.0; + + // Deck + double minAngle = -45.0; + double maxAngle = 150.0; + + //Generate deck coordinates + for (int i = 0; i <= deckSteps; i++) { + if (mCancelExecuting) + return; + + xPos = startX; + + for (int j = 0; j <= lengthSteps; j++) { + + vertices[i][j] = new Point3d(brd.getSurfacePoint(xPos, minAngle, maxAngle, i, deckSteps)); + normals[i][j] = new Vector3f(brd.getSurfaceNormal(xPos, minAngle, maxAngle,i, deckSteps)); + + xPos += lengthStep; + + } + } + + //Generate quads + for (int i = 0; i < deckSteps; i++) { + if (mCancelExecuting) + return; + + int q = 0; + for (int j = 0; j < lengthSteps; j++) { + quadCoords[q] = vertices[i][j]; + quadNormals[q] = normals[i][j]; + ++q; + quadCoords[q] = vertices[i][j+1]; + quadNormals[q] = normals[i][j+1]; + ++q; + quadCoords[q] = vertices[i+1][j+1]; + quadNormals[q] = normals[i+1][j+1]; + ++q; + quadCoords[q] = vertices[i+1][j]; + quadNormals[q] = normals[i+1][j]; + ++q; + } + quads.setCoordinates(nrOfQuads * 4, quadCoords); + quads.setNormals(nrOfQuads * 4, quadNormals); + nrOfQuads += lengthSteps; + } + + //Mirror deck coordinates + for (int i = 0; i <= deckSteps; i++) { + if (mCancelExecuting) + return; + + for (int j = 0; j <= lengthSteps; j++) { + + vertices[i][j].setY(-vertices[i][j].getY()); + normals[i][j].setY(-normals[i][j].getY()); + } + } + + //Generate mirrored quads + for (int i = 0; i < deckSteps; i++) { + if (mCancelExecuting) + return; + + int q = 0; + for (int j = 0; j < lengthSteps; j++) { + quadCoords[q] = vertices[i+1][j]; + quadNormals[q] = normals[i+1][j]; + ++q; + quadCoords[q] = vertices[i+1][j+1]; + quadNormals[q] = normals[i+1][j+1]; + ++q; + quadCoords[q] = vertices[i][j+1]; + quadNormals[q] = normals[i][j+1]; + ++q; + quadCoords[q] = vertices[i][j]; + quadNormals[q] = normals[i][j]; + ++q; + } + quads.setCoordinates(nrOfQuads * 4, quadCoords); + quads.setNormals(nrOfQuads * 4, quadNormals); + nrOfQuads += lengthSteps; + } + + //Generate bottom + minAngle = maxAngle; + maxAngle = 360.0; + for (int i = 0; i <= bottomSteps; i++) { + if (mCancelExecuting) + return; + + xPos = startX; + + for (int j = 0; j <= lengthSteps; j++) { + + vertices[i][j] = brd.getSurfacePoint(xPos, minAngle, maxAngle, i, bottomSteps); + normals[i][j] = new Vector3f(brd.getSurfaceNormal(xPos, minAngle, maxAngle,i, bottomSteps)); + + xPos += lengthStep; + + } + } + + //Generate quads + for (int i = 0; i < bottomSteps; i++) { + if (mCancelExecuting) + return; + + int q = 0; + for (int j = 0; j < lengthSteps; j++) { + quadCoords[q] = vertices[i][j]; + quadNormals[q] = normals[i][j]; + ++q; + quadCoords[q] = vertices[i][j+1]; + quadNormals[q] = normals[i][j+1]; + ++q; + quadCoords[q] = vertices[i+1][j+1]; + quadNormals[q] = normals[i+1][j+1]; + ++q; + quadCoords[q] = vertices[i+1][j]; + quadNormals[q] = normals[i+1][j]; + ++q; + } + quads.setCoordinates(nrOfQuads * 4, quadCoords); + quads.setNormals(nrOfQuads * 4, quadNormals); + nrOfQuads += lengthSteps; + } + + //Mirror bottom coordinates + for (int i = 0; i <= bottomSteps; i++) { + if (mCancelExecuting) + return; + + for (int j = 0; j <= lengthSteps; j++) { + + vertices[i][j].setY(-vertices[i][j].getY()); + normals[i][j].setY(-normals[i][j].getY()); + } + } + + //Generate mirrored quads + for (int i = 0; i < bottomSteps; i++) { + if (mCancelExecuting) + return; + + int q = 0; + for (int j = 0; j < lengthSteps; j++) { + quadCoords[q] = vertices[i+1][j]; + quadNormals[q] = normals[i+1][j]; + ++q; + quadCoords[q] = vertices[i+1][j+1]; + quadNormals[q] = normals[i+1][j+1]; + ++q; + quadCoords[q] = vertices[i][j+1]; + quadNormals[q] = normals[i][j+1]; + ++q; + quadCoords[q] = vertices[i][j]; + quadNormals[q] = normals[i][j]; + ++q; + } + quads.setCoordinates(nrOfQuads * 4, quadCoords); + quads.setNormals(nrOfQuads * 4, quadNormals); + nrOfQuads += lengthSteps; + } + + if (mInitialModelRun) { + model.addGeometry(quads); + } else { + model.setGeometry(quads, index); + } + + } +} diff --git a/boardcad/gui/jdk/JOGLPanel.java b/boardcad/gui/jdk/JOGLPanel.java index f25045e..d20113e 100755 --- a/boardcad/gui/jdk/JOGLPanel.java +++ b/boardcad/gui/jdk/JOGLPanel.java @@ -1,5 +1,5 @@ package boardcad.gui.jdk; - +/* import board.NurbsBoard; import cadcore.NurbsSurface; import cadcore.NurbsPoint; @@ -29,51 +29,22 @@ import java.awt.event.MouseMotionAdapter; import java.awt.event.MouseMotionListener; - - -import javax.media.opengl.GLAutoDrawable; -import javax.media.opengl.GLEventListener; -import javax.media.opengl.GLProfile; -import javax.media.opengl.GLCapabilities; -import javax.media.opengl.awt.GLCanvas; -import javax.media.opengl.awt.GLJPanel; - - -import javax.media.opengl.GL; -import javax.media.opengl.GL2; -import javax.media.opengl.glu.GLU; - - -import cadcore.NurbsPoint; - +import com.jogamp.opengl.*; +import com.jogamp.opengl.awt.*; +import com.jogamp.opengl.glu.*; import com.sun.j3d.utils.behaviors.vp.OrbitBehavior; import com.sun.j3d.utils.image.TextureLoader; import com.sun.j3d.utils.universe.PlatformGeometry; import com.sun.j3d.utils.universe.SimpleUniverse; - - - import java.awt.*; import java.awt.event.*; -import javax.swing.*; -import javax.media.opengl.GL2; -import javax.media.opengl.GLAutoDrawable; -import javax.media.opengl.GLEventListener; -import javax.media.opengl.awt.GLCanvas; -import javax.media.opengl.glu.GLU; -import com.jogamp.opengl.util.FPSAnimator; -import static javax.media.opengl.GL.*; // GL constants -import static javax.media.opengl.GL2.*; // GL2 constants - - +import javax.swing.*; import com.sun.j3d.utils.universe.ViewingPlatform; - - //=========================================================JOGL Panel class JOGLPanel extends Panel { @@ -124,9 +95,9 @@ protected void init( GL2 gl, int width, int height ) glu = new GLU(); // get GL Utilities gl.glClearColor(0.4f, 0.4f, 0.4f, 0.0f); // set background (clear) color gl.glClearDepth(1.0f); // set clear depth value to farthest - gl.glEnable(GL_DEPTH_TEST); // enables depth testing - gl.glDepthFunc(GL_LEQUAL); // the type of depth test to do - gl.glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // best perspective correction + gl.glEnable(GL.GL_DEPTH_TEST); // enables depth testing + gl.glDepthFunc(GL.GL_LEQUAL); // the type of depth test to do + gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST); // best perspective correction // gl.glShadeModel(GL_SMOOTH); // blends colors nicely, and smoothes out lighting } @@ -141,22 +112,22 @@ protected void setup( GL2 gl, int width, int height ) float[] lightPos = {0.0f, 0.0f, 10.0f, SHINE_ALL_DIRECTIONS}; float[] lightColorAmbient = {0.2f, 0.2f, 0.2f, 1f}; float[] lightColorSpecular = {0.6f, 0.6f, 0.6f, 1f}; - gl.glLightfv(GL_LIGHT0, GL_POSITION, lightPos, 0); - gl.glLightfv(GL_LIGHT0, GL_AMBIENT, lightColorAmbient, 0); + gl.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, lightPos, 0); + gl.glLightfv(GL.GL_LIGHT0, GL.GL_AMBIENT, lightColorAmbient, 0); // gl.glLightfv(GL_LIGHT0, GL_SPECULAR, lightColorSpecular, 0); gl.glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColorSpecular, 0); // Enable lighting in GL. - gl.glEnable(GL_LIGHTING); - gl.glEnable(GL_LIGHT0); + gl.glEnable(GL.GL_LIGHTING); + gl.glEnable(GL.GL_LIGHT0); // Set material properties. float[] rgba = {1.0f, 1.0f, 1.0f, 1.0f}; - gl.glMaterialfv(GL_FRONT, GL_AMBIENT, rgba, 0); + gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT, rgba, 0); // gl.glMaterialfv(GL_FRONT, GL_SPECULAR, rgba, 0); - gl.glMaterialfv(GL_FRONT, GL_DIFFUSE, rgba, 0); + gl.glMaterialfv(GL.GL_FRONT, GL.GL_DIFFUSE, rgba, 0); // gl.glMaterialf(GL_FRONT, GL_SHININESS, 0.5f); - gl.glShadeModel(GL_FLAT); + gl.glShadeModel(GL.GL_FLAT); // Set the view port (display area) to cover the entire window @@ -405,4 +376,4 @@ public void setBackgroundColor(Color color) - +*/ diff --git a/boardcad/gui/jdk/JavaDraw.java b/boardcad/gui/jdk/JavaDraw.java index 3a73250..8ebe8dc 100644 --- a/boardcad/gui/jdk/JavaDraw.java +++ b/boardcad/gui/jdk/JavaDraw.java @@ -24,6 +24,7 @@ public JavaDraw(Graphics2D graphics) g = graphics; } + @Override public void close() { @@ -34,62 +35,74 @@ Graphics2D getGraphics2D() return g; } + @Override public void setColor(Color color) { g.setColor(color); } + @Override public void setStroke(Stroke stroke) { g.setStroke(stroke); } + @Override public void transform(AffineTransform transform) { g.transform(transform); } + @Override public void setTransform(AffineTransform transform) { g.setTransform(transform); } + @Override public AffineTransform getTransform() { return g.getTransform(); } + @Override public void draw(Line2D line) { g.draw(line); } + @Override public void draw(Ellipse2D line) { g.draw(line); } + @Override public void draw(CubicCurve2D curve) { g.draw(curve); } + @Override public void draw(GeneralPath path) { g.draw(path); } + @Override public void fill(Ellipse2D ellipse) { g.fill(ellipse); } + @Override public void fill(GeneralPath path) { g.fill(path); } + @Override public void moveTo(Point2D point) { } diff --git a/boardcad/gui/jdk/Machine2DView.java b/boardcad/gui/jdk/Machine2DView.java index b8b6cc1..243afe2 100644 --- a/boardcad/gui/jdk/Machine2DView.java +++ b/boardcad/gui/jdk/Machine2DView.java @@ -6,45 +6,38 @@ import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; -import java.awt.Point; import java.awt.RenderingHints; import java.awt.Stroke; import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; -import java.awt.event.MouseEvent; -import java.awt.event.MouseWheelEvent; import java.awt.geom.AffineTransform; import java.awt.geom.Line2D; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JPopupMenu; -import javax.vecmath.Point3d; -import javax.vecmath.Vector3d; - -import cadcore.UnitUtils; +import javax.vecmath.*; import board.BezierBoard; +import boardcad.commands.BrdCommand; +import boardcad.commands.BrdPositionCommand; import boardcad.i18n.LanguageResource; import boardcam.MachineConfig; import boardcam.holdingsystems.AbstractBlankHoldingSystem; -public class Machine2DView extends BoardEdit{ +public class Machine2DView extends BoardEdit { static final double fixedHeightBorder = 0; - boolean mShowDeck = true; + public boolean mShowDeck = true; double BORDER = 10; BrdCommand mBrdPosCommand; - - MachineConfig mConfig; - - Point3d mCutterOffset = new Point3d(0.0,0.0,0.0); - - - Machine2DView(MachineConfig config) - { + + public MachineConfig mConfig; + + Point3d mCutterOffset = new Point3d(0.0, 0.0, 0.0); + + Machine2DView(MachineConfig config) { super(); - + mConfig = config; System.out.printf("Machine2DView constructor mConfig:%s this:%s\n", mConfig.toString(), this.toString()); @@ -52,11 +45,12 @@ public class Machine2DView extends BoardEdit{ final JPopupMenu menu = new JPopupMenu(); final AbstractAction toggleDeckBottom = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("TOGGLEDECKBOTTOM_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { mShowDeck = !mShowDeck; repaint(); @@ -64,51 +58,48 @@ public void actionPerformed(ActionEvent arg0) { }; menu.add(toggleDeckBottom); add(menu); - - setPreferredSize(new Dimension(400,100)); + + setPreferredSize(new Dimension(400, 100)); setLayout(new BorderLayout()); - - mBrdPosCommand = new BrdPositionCommand(); - + + mBrdPosCommand = new BrdPositionCommand(this); }; - public void fit_all() - { + @Override + public void fit_all() { Dimension dim = getSize(); double len = 0.0; BezierBoard brd = mConfig.getBoard(); - if(brd != null) - { + if (brd != null) { len = brd.getLength(); } - if(mConfig.getBlankHoldingSystem() != null) - { + if (mConfig.getBlankHoldingSystem() != null) { len += mConfig.getBlankHoldingSystem().getBlankDeckOffsetPos().x; } - mScale = (dim.width-((BORDER*dim.width/100)*2))/len; + mScale = (dim.width - ((BORDER * dim.width / 100) * 2)) / len; - mOffsetX = (BORDER*dim.width/100); + mOffsetX = (BORDER * dim.width / 100); - mOffsetY = dim.height*1/2; + mOffsetY = dim.height * 1 / 2; mLastWidth = dim.width; mLastHeight = dim.height; - + calcViewOffset(); repaint(); } - public void adjustScaleAndOffset() - { + @Override + public void adjustScaleAndOffset() { double currentWidth = getWidth(); double currentHeight = getHeight(); - double widthChange = (currentWidth/mLastWidth); - double heightChange = (currentHeight/mLastHeight); + double widthChange = (currentWidth / mLastWidth); + double heightChange = (currentHeight / mLastHeight); mScale *= widthChange; @@ -120,101 +111,94 @@ public void adjustScaleAndOffset() } - public void setCutterOffset(Point3d pos){ + public void setCutterOffset(Point3d pos) { mCutterOffset = pos; repaint(); } - + + @Override public void paintComponent(Graphics g) { adjustScaleAndOffset(); - /** - + * * Copy the graphics context so we can change it. - - * Cast it to Graphics2D so we can use antialiasing. - + * + * Cast it to Graphics2D so we can use anti-aliasing. */ - Graphics2D g2d = (Graphics2D)g.create(); - + Graphics2D g2d = (Graphics2D) g.create(); - -// Turn on antialiasing, so painting is smooth. + // Turn on anti-aliasing, so painting is smooth. g2d.setRenderingHint( - RenderingHints.KEY_ANTIALIASING, + RenderingHints.KEY_ANTIALIASING, + + RenderingHints.VALUE_ANTIALIAS_ON); - RenderingHints.VALUE_ANTIALIAS_ON); + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, - RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - -// Paint the background. + // Paint the background. Color bkgColor = Color.LIGHT_GRAY; g2d.setColor(bkgColor); - + g2d.fillRect(0, 0, getWidth() - 1, getHeight() - 1); - //Draw the blank holding system + // Draw the blank holding system AbstractBlankHoldingSystem holdingSystem = mConfig.getBlankHoldingSystem(); - if(holdingSystem == null) - { + if (holdingSystem == null) { return; } holdingSystem.draw(g2d, mOffsetX, mOffsetY, mScale, mShowDeck); - - //Draw the blank and the board - Vector3d boardOffset = mShowDeck?holdingSystem.getBoardDeckOffsetPos():holdingSystem.getBoardBottomOffsetPos(); - double boardAngle = mShowDeck?holdingSystem.getBoardDeckOffsetAngle():holdingSystem.getBoardBottomOffsetAngle(); - - Vector3d blankOffset = mShowDeck?holdingSystem.getBlankDeckOffsetPos():holdingSystem.getBlankBottomOffsetPos(); - double blankAngle = mShowDeck?holdingSystem.getBlankDeckOffsetAngle():holdingSystem.getBlankBottomOffsetAngle(); - + + // Draw the blank and the board + Vector3d boardOffset = mShowDeck ? holdingSystem.getBoardDeckOffsetPos() : holdingSystem.getBoardBottomOffsetPos(); + double boardAngle = mShowDeck ? holdingSystem.getBoardDeckOffsetAngle() : holdingSystem.getBoardBottomOffsetAngle(); + + Vector3d blankOffset = mShowDeck ? holdingSystem.getBlankDeckOffsetPos() : holdingSystem.getBlankBottomOffsetPos(); + double blankAngle = mShowDeck ? holdingSystem.getBlankDeckOffsetAngle() : holdingSystem.getBlankBottomOffsetAngle(); + JavaDraw jd = new JavaDraw(g2d); - - // System.out.printf("OffsetX: %f, OffsetY: %f, boardOffset: %f,%f boardAngle: %f, blankOffset: %f,%f blankAngle: %f\n", mOffsetX, mOffsetY, boardOffset.x, boardOffset.z, boardAngle, blankOffset.x, blankOffset.z, blankAngle); - - Stroke stroke = new BasicStroke((float)(1.0/mScale)); + + // System.out.printf("OffsetX: %f, OffsetY: %f, boardOffset: %f,%f boardAngle: %f, blankOffset: %f,%f blankAngle: %f\n", + // mOffsetX, mOffsetY, boardOffset.x, boardOffset.z, boardAngle, + // blankOffset.x, blankOffset.z, blankAngle); + + Stroke stroke = new BasicStroke((float) (1.2 / mScale)); g2d.setStroke(stroke); - + BezierBoard brd = mConfig.getBoard(); - if(brd != null) - { - BezierBoardDrawUtil.paintBezierSpline(jd, mOffsetX+(boardOffset.x*mScale), mOffsetY-(boardOffset.z*mScale), boardAngle, mScale, BoardCAD.getInstance().getBrdColor(), stroke, brd.getDeck(), (mShowDeck?BezierBoardDrawUtil.FlipY:0), false); - BezierBoardDrawUtil.paintBezierSpline(jd, mOffsetX+(boardOffset.x*mScale), mOffsetY-(boardOffset.z*mScale), boardAngle, mScale, BoardCAD.getInstance().getBrdColor(), stroke, brd.getBottom(), mShowDeck?BezierBoardDrawUtil.FlipY:0, false); + if (brd != null) { + BezierBoardDrawUtil.paintBezierSpline(jd, mOffsetX + (boardOffset.x * mScale), mOffsetY - (boardOffset.z * mScale), mScale, boardAngle, BoardCAD.getInstance().getBrdColor(), stroke, brd.getDeck(), (mShowDeck ? BezierBoardDrawUtil.FlipY : 0), false); + BezierBoardDrawUtil.paintBezierSpline(jd, mOffsetX + (boardOffset.x * mScale), mOffsetY - (boardOffset.z * mScale), mScale, boardAngle, BoardCAD.getInstance().getBrdColor(), stroke, brd.getBottom(), mShowDeck ? BezierBoardDrawUtil.FlipY : 0, false); } - //Draw blank + // Draw blank BezierBoard blank = mConfig.getBlank(); - if(blank != null && !blank.isEmpty()) - { + if (blank != null && !blank.isEmpty()) { Color blankColor = BoardCAD.getInstance().getBlankColor(); - BezierBoardDrawUtil.paintBezierSpline(jd, mOffsetX+(blankOffset.x*mScale), mOffsetY-(blankOffset.z*mScale), blankAngle, mScale, blankColor, stroke, blank.getDeck(), mShowDeck?BezierBoardDrawUtil.FlipY:0, false); - BezierBoardDrawUtil.paintBezierSpline(jd, mOffsetX+(blankOffset.x*mScale), mOffsetY-(blankOffset.z*mScale), blankAngle, mScale, blankColor, stroke, blank.getBottom(), mShowDeck?BezierBoardDrawUtil.FlipY:0, false); + BezierBoardDrawUtil.paintBezierSpline(jd, mOffsetX + (blankOffset.x * mScale), mOffsetY - (blankOffset.z * mScale), mScale, blankAngle, blankColor, stroke, blank.getDeck(), mShowDeck ? BezierBoardDrawUtil.FlipY : 0, false); + BezierBoardDrawUtil.paintBezierSpline(jd, mOffsetX + (blankOffset.x * mScale), mOffsetY - (blankOffset.z * mScale), mScale, blankAngle, blankColor, stroke, blank.getBottom(), mShowDeck ? BezierBoardDrawUtil.FlipY : 0, false); } - - //Setup for drawing + + // Setup for drawing AffineTransform savedTransform = g2d.getTransform(); - + AffineTransform at = new AffineTransform(); - + at.setToTranslation(mOffsetX, mOffsetY); - - g2d.transform(at); - - at.setToScale(mScale, mScale); - + + at.scale(mScale, mScale); + g2d.transform(at); - - //Draw cutter offset + + // Draw cutter offset g2d.setColor(Color.BLUE); - + final double halfCrossWidth = 5.0; Line2D line = new Line2D.Double(); line.setLine(-halfCrossWidth + mCutterOffset.x, -mCutterOffset.z, halfCrossWidth + mCutterOffset.x, -mCutterOffset.z); @@ -222,206 +206,80 @@ public void paintComponent(Graphics g) { line.setLine(mCutterOffset.x, -halfCrossWidth - mCutterOffset.z, mCutterOffset.x, halfCrossWidth - mCutterOffset.z); g2d.draw(line); - g2d.setTransform(savedTransform); - } - - public void drawSlidingInfo(Graphics2D g, Color color, Stroke stroke, BezierBoard brd) - { -// drawProfileSlidingInfo(this, g, color, stroke, brd); - } - - public BrdCommand getCurrentCommand() - { - return mBrdPosCommand; - } + g2d.setTransform(savedTransform); - void calcViewOffset() - { - //mOffsetY = getCurrentMachineConfig().getDouble(MachineConfig.SUPPORT_1_HEIGHT)/UnitUtils.MILLIMETER_PR_CENTIMETER; - } + // Draw sliding line on brd + double brdX = (mBrdCoord.x / Math.cos(boardAngle)) - boardOffset.x; + if (brdX < 0 || brdX > brd.getLength()) + return; - class BrdPositionCommand extends BrdInputCommand - { - double mOriginalOffsetX; - double mOriginalOffsetY; - Point mPressedPos; - boolean mButtonPressed = true; - - BrdPanCommand mPanCommand = new BrdPanCommand(); - BrdZoomCommand mZoomCommand = new BrdZoomCommand(); - boolean mIsPaning = false; - - BrdPositionCommand() - { - mCanUndo = false; - } + g2d.setColor(Color.RED); + savedTransform = g2d.getTransform(); + at = new AffineTransform(); - public void onLeftMouseButtonPressed(BoardEdit source, MouseEvent event) - { - if(!mShowDeck) - return; - - Point pos = event.getPoint(); - Vector3d deckOffset = mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); - mOriginalOffsetX = deckOffset.x; - mOriginalOffsetY = deckOffset.z; - mPressedPos = (Point)pos.clone(); - mButtonPressed = true; - } + at.setToTranslation(mOffsetX, mOffsetY); + g2d.transform(at); + at.setToScale(mScale, mScale); + g2d.transform(at); + at.setToTranslation(boardOffset.x, -boardOffset.z); + g2d.transform(at); + at.setToRotation(boardAngle); + g2d.transform(at); + double deckY = -brd.getDeckAtPos(brdX); + double bottomY = -brd.getRockerAtPos(brdX); + line.setLine(brdX, deckY * (mShowDeck ? 1 : -1), brdX, bottomY * (mShowDeck ? 1 : -1)); + g2d.draw(line); - public void onMouseDragged(BoardEdit source, MouseEvent event) - { - if(mIsPaning) - { - mPanCommand.onMouseDragged(source, event); - return; - } - - if(!mShowDeck) - return; - - if(!mButtonPressed) - return; - - Point pos = event.getPoint(); - - double offsetX = mOriginalOffsetX + (((pos.x - mPressedPos.x))*(event.isAltDown()?0.1:1.0)/mScale); - double offsetY = mOriginalOffsetY - (((pos.y - mPressedPos.y))*(event.isAltDown()?0.1:1.0)/mScale); -// System.out.printf("offsetX: %f, offsetY: %f\n",offsetX, offsetY); - mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(offsetX, 0.0, offsetY)); - - //System.out.printf("onMouseDragged mConfig:%s this:%s\n", mConfig.toString(), this.toString()); - - source.repaint(); - } + g2d.setTransform(savedTransform); - public void onLeftMouseButtonReleased(BoardEdit source, MouseEvent event) - { - mButtonPressed = false; - } - - public void onMouseWheelMoved(BoardEdit source, MouseWheelEvent event) - { - int scroll = event.getWheelRotation(); + // TODO Draw sliding line on blank + g2d.setColor(Color.BLUE); + savedTransform = g2d.getTransform(); + at = new AffineTransform(); - int steps = scroll*((scroll>0)?1:-1); - for(int i = 0; i < steps; i++) - { - if(scroll < 0) - { - mZoomCommand.zoomInStep(source, event.isAltDown()); - } - else - { - mZoomCommand.zoomOutStep(source, event.isAltDown()); - } + at.setToTranslation(mOffsetX, mOffsetY); + g2d.transform(at); + at.setToScale(mScale, mScale); + g2d.transform(at); + at.setToTranslation(blankOffset.x, -blankOffset.z); + g2d.transform(at); + at.setToRotation(blankAngle); + g2d.transform(at); - } - event.consume(); - } + double blankX = (mBrdCoord.x / Math.cos(blankAngle)) - blankOffset.x; + double blankDeckY = -blank.getDeckAtPos(blankX); + double blankBottomY = -blank.getRockerAtPos(blankX); + line.setLine(blankX, blankDeckY * (mShowDeck ? 1 : -1), blankX, blankBottomY * (mShowDeck ? 1 : -1)); + g2d.draw(line); - public void onMouseWheelButtonPressed(BoardEdit source, MouseEvent event) - { - mPanCommand.onLeftMouseButtonPressed(source, event); - mIsPaning = true; - } + g2d.setTransform(savedTransform); - public void onMouseWheelButtonReleased(BoardEdit source, MouseEvent event) - { - mPanCommand.onLeftMouseButtonReleased(source, event); - mIsPaning = false; - } - - public boolean onKeyEvent(BoardEdit source, KeyEvent event) - { + // Draw cross section of brd + double crsScale = mScale * 2; + Stroke crsStroke = new BasicStroke((float) (1.3 / crsScale)); + double crsY = getHeight() / 6 + (-boardOffset.z + bottomY + brdX * Math.sin(boardAngle)) * crsScale; + BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g2d), getWidth() / 2, crsY, crsScale, 0.0, Color.RED, crsStroke, false, mShowDeck, brdX, brd); - if(event.getID() != KeyEvent.KEY_PRESSED) - return false; + // Draw cross section blank + double blankCrsY = getHeight() / 6 + (-blankOffset.z + blankBottomY + blankX * Math.sin(blankAngle)) * crsScale; + BezierBoardDrawUtil.paintSlidingCrossSection(new JavaDraw(g2d), getWidth() / 2, blankCrsY, crsScale, 0.0, Color.BLUE, crsStroke, false, mShowDeck, blankX, blank); - int key = event.getKeyCode(); - -// System.out.printf("onKeyEvent mConfig:%s this:%s\n", mConfig.toString(), this.toString()); + } - if(key == KeyEvent.VK_LEFT) - { - if(!mShowDeck) - return false; - - Vector3d deckOffset = mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); - double offsetX = (deckOffset.x-((event.isAltDown()?0.1:1.0f)/source.getScale())); - mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(offsetX, 0.0, deckOffset.z)); - source.repaint(); - return true; - } - else if(key == KeyEvent.VK_RIGHT) - { - if(!mShowDeck) - return false; - - Vector3d deckOffset = mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); - double offsetX = (deckOffset.x+((event.isAltDown()?0.1:1.0f)/source.getScale())); - mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(offsetX, 0.0, deckOffset.z)); - source.repaint(); - return true; - } - else if(key == KeyEvent.VK_UP) - { - if(!mShowDeck) - return false; - - Vector3d deckOffset = mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); - double offsetY = (deckOffset.z+((event.isAltDown()?0.1:1.0f)/source.getScale())); - mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(deckOffset.x, 0.0, offsetY)); - source.repaint(); - return true; - } - else if(key == KeyEvent.VK_DOWN) - { - if(!mShowDeck) - return false; - - Vector3d deckOffset = mConfig.getBlankHoldingSystem().getBoardDeckOffsetPos(); - double offsetY = (deckOffset.z-((event.isAltDown()?0.1:1.0f)/source.getScale())); - mConfig.getBlankHoldingSystem().setBoardDeckOffsetPos(new Vector3d(deckOffset.x, 0.0, offsetY)); - source.repaint(); - return true; - } - if(key == KeyEvent.VK_Q) - { - if(!mShowDeck) - return false; - - double rot = mConfig.getBlankHoldingSystem().getBoardDeckOffsetAngle(); - rot = rot-(event.isAltDown()?0.0004:0.004f); - mConfig.getBlankHoldingSystem().setBoardDeckOffsetAngle(rot); - source.repaint(); - return true; - } - else if(key == KeyEvent.VK_W) - { - if(!mShowDeck) - return false; - - double rot = mConfig.getBlankHoldingSystem().getBoardDeckOffsetAngle(); - rot = rot+(event.isAltDown()?0.0004:0.004f); - mConfig.getBlankHoldingSystem().setBoardDeckOffsetAngle(rot); - source.repaint(); - return true; - } - else if(key == KeyEvent.VK_SPACE) - { - mShowDeck = !mShowDeck; - source.repaint(); - return true; - } - return false; - } + @Override + public void drawSlidingInfo(Graphics2D g, Color color, Stroke stroke, BezierBoard brd) { + // drawProfileSlidingInfo(this, g, color, stroke, brd); + } - public String getCommandString() - { - return "Position"; - } + @Override + public BrdCommand getCurrentCommand() { + return mBrdPosCommand; + } + void calcViewOffset() { + // mOffsetY = + // getCurrentMachineConfig().getDouble(MachineConfig.SUPPORT_1_HEIGHT)/UnitUtils.MILLIMETER_PR_CENTIMETER; } + } \ No newline at end of file diff --git a/boardcad/gui/jdk/Machine3DView.java b/boardcad/gui/jdk/Machine3DView.java index 3f018c2..b254099 100644 --- a/boardcad/gui/jdk/Machine3DView.java +++ b/boardcad/gui/jdk/Machine3DView.java @@ -6,51 +6,32 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import javax.media.j3d.AmbientLight; -import javax.media.j3d.Appearance; -import javax.media.j3d.Background; -import javax.media.j3d.BoundingSphere; -import javax.media.j3d.BranchGroup; -import javax.media.j3d.Canvas3D; -import javax.media.j3d.ColoringAttributes; -import javax.media.j3d.DirectionalLight; -import javax.media.j3d.GeometryArray; -import javax.media.j3d.Group; -import javax.media.j3d.LineArray; -import javax.media.j3d.LineStripArray; -import javax.media.j3d.Shape3D; -import javax.media.j3d.Switch; -import javax.media.j3d.Transform3D; -import javax.media.j3d.TransformGroup; -import javax.media.j3d.ViewPlatform; +import javax.media.j3d.*; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JComponent; import javax.swing.JPopupMenu; -import javax.vecmath.Color3f; -import javax.vecmath.Point3d; -import javax.vecmath.Vector3d; -import javax.vecmath.Vector3f; - -import cadcore.UnitUtils; +import javax.vecmath.*; import com.sun.j3d.utils.behaviors.vp.OrbitBehavior; -import com.sun.j3d.utils.universe.SimpleUniverse; -import com.sun.j3d.utils.universe.ViewingPlatform; -import boardcad.i18n.LanguageResource; +import com.sun.j3d.utils.universe.*; +import cadcore.UnitUtils; +import boardcad.i18n.LanguageResource; -public class Machine3DView extends JComponent{ - static final long serialVersionUID=1L; +public class Machine3DView extends JComponent { + static final long serialVersionUID = 1L; TransformGroup mScale; Transform3D mTransform; double mNormalsScale; - + Background mBackgroundNode; + DirectionalLight mHeadLight; + TransformGroup mToolpathsGroup; Transform3D mToolpathsTransform; - + Switch mDeckOrBottomToolpathSwitch; Group mDeckToolpathGroup; Group mBottomToolpathGroup; @@ -62,11 +43,11 @@ public class Machine3DView extends JComponent{ TransformGroup mModelTransformGroup; Transform3D mModelTransform; - + Switch mDeckOrBottomModelSwitch; Group mDeckModelGroup; Group mBottomModelGroup; - + Switch mDeckSurfacePathsSwitch; Switch mDeckNormalsSwitch; @@ -75,21 +56,21 @@ public class Machine3DView extends JComponent{ Shape3D mDeckSurfacePaths; Shape3D mDeckSurfaceNormals; - + Shape3D mBottomSurfacePaths; Shape3D mBottomSurfaceNormals; - + BranchGroup mBlankHoldingSystemModel; - + BranchGroup mCutter; TransformGroup mCutterTransformGroup; Transform3D mCutterTransform; + Vector3d mCutterPos; - LineStripArray mDeckSurfacePathsArray; LineArray mDeckNormalsArray; LineStripArray mDeckToolpathsArray; - + int mDeckCurrentSurfacePathIndex = 0; int mDeckCurrentNormalIndex = 0; int mDeckCurrentToolpathIndex = 0; @@ -97,81 +78,127 @@ public class Machine3DView extends JComponent{ LineStripArray mBottomSurfacePathsArray; LineArray mBottomNormalsArray; LineStripArray mBottomToolpathsArray; - + int mBottomCurrentSurfacePathIndex = 0; int mBottomCurrentNormalIndex = 0; int mBottomCurrentToolpathIndex = 0; + + Switch mBlankSwitch; + Shape3D mBlankModel; + TransformGroup mBlankTransformGroup; + Transform3D mBlankTransform; + Point3d mBlankDeckOffset; + double mBlankDeckRotation; + Point3d mBlankBottomOffset; + double mBlankBottomRotation; - public Machine3DView() - { + Switch mBrdSwitch; + Shape3D mBrdModel; + TransformGroup mBrdTransformGroup; + Transform3D mBrdTransform; + Point3d mBrdDeckOffset; + double mBrdDeckRotation; + Point3d mBrdBottomOffset; + double mBrdBottomRotation; + + public Machine3DView() { JPopupMenu.setDefaultLightWeightPopupEnabled(false); final JPopupMenu menu = new JPopupMenu(); final AbstractAction toggleDeckBottom = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("TOGGLEDECKBOTTOM_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { toggleDeckOrBottom(); } }; menu.add(toggleDeckBottom); - + menu.addSeparator(); final AbstractAction toggleSurfacePaths = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("TOGGLESURFACEPATHS_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { - mDeckSurfacePathsSwitch.setWhichChild((mDeckSurfacePathsSwitch.getWhichChild()==Switch.CHILD_ALL)?Switch.CHILD_NONE:Switch.CHILD_ALL); - mBottomSurfacePathsSwitch.setWhichChild((mBottomSurfacePathsSwitch.getWhichChild()==Switch.CHILD_ALL)?Switch.CHILD_NONE:Switch.CHILD_ALL); + mDeckSurfacePathsSwitch.setWhichChild((mDeckSurfacePathsSwitch.getWhichChild() == Switch.CHILD_ALL) ? Switch.CHILD_NONE : Switch.CHILD_ALL); + mBottomSurfacePathsSwitch.setWhichChild((mBottomSurfacePathsSwitch.getWhichChild() == Switch.CHILD_ALL) ? Switch.CHILD_NONE : Switch.CHILD_ALL); } }; menu.add(toggleSurfacePaths); final AbstractAction toggleNormals = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("TOGGLENORMALS_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { - mDeckNormalsSwitch.setWhichChild((mDeckNormalsSwitch.getWhichChild()==Switch.CHILD_ALL)?Switch.CHILD_NONE:Switch.CHILD_ALL); - mBottomSurfaceNormalsSwitch.setWhichChild((mBottomSurfaceNormalsSwitch.getWhichChild()==Switch.CHILD_ALL)?Switch.CHILD_NONE:Switch.CHILD_ALL); + mDeckNormalsSwitch.setWhichChild((mDeckNormalsSwitch.getWhichChild() == Switch.CHILD_ALL) ? Switch.CHILD_NONE : Switch.CHILD_ALL); + mBottomSurfaceNormalsSwitch.setWhichChild((mBottomSurfaceNormalsSwitch.getWhichChild() == Switch.CHILD_ALL) ? Switch.CHILD_NONE : Switch.CHILD_ALL); } }; menu.add(toggleNormals); final AbstractAction toggleToolpaths = new AbstractAction() { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; { this.putValue(Action.NAME, LanguageResource.getString("TOGGLETOOLPATHS_STR")); }; + @Override public void actionPerformed(ActionEvent arg0) { - mDeckToolpathsSwitch.setWhichChild((mDeckToolpathsSwitch.getWhichChild()==Switch.CHILD_ALL)?Switch.CHILD_NONE:Switch.CHILD_ALL); - mBottomToolpathsSwitch.setWhichChild((mBottomToolpathsSwitch.getWhichChild()==Switch.CHILD_ALL)?Switch.CHILD_NONE:Switch.CHILD_ALL); + mDeckToolpathsSwitch.setWhichChild((mDeckToolpathsSwitch.getWhichChild() == Switch.CHILD_ALL) ? Switch.CHILD_NONE : Switch.CHILD_ALL); + mBottomToolpathsSwitch.setWhichChild((mBottomToolpathsSwitch.getWhichChild() == Switch.CHILD_ALL) ? Switch.CHILD_NONE : Switch.CHILD_ALL); } }; menu.add(toggleToolpaths); - add(menu); - + add(menu); + + final AbstractAction toggleBlank = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("TOGGLEBLANK_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + mBlankSwitch.setWhichChild((mBlankSwitch.getWhichChild() == Switch.CHILD_ALL) ? Switch.CHILD_NONE : Switch.CHILD_ALL); + } + }; + menu.add(toggleBlank); + + final AbstractAction toggleBrd = new AbstractAction() { + static final long serialVersionUID = 1L; + { + this.putValue(Action.NAME, LanguageResource.getString("TOGGLEBRD_STR")); + }; + + @Override + public void actionPerformed(ActionEvent arg0) { + mBrdSwitch.setWhichChild((mBrdSwitch.getWhichChild() == Switch.CHILD_ALL) ? Switch.CHILD_NONE : Switch.CHILD_ALL); + } + }; + menu.add(toggleBrd); + setLayout(new BorderLayout()); final Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); add("Center", canvas); - canvas.addMouseListener(new MouseAdapter() - { - public void mouseClicked(MouseEvent e) - { - if(e.isMetaDown()) + canvas.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if (e.isMetaDown()) menu.show(canvas, e.getX(), e.getY()); } @@ -194,23 +221,33 @@ public void mouseClicked(MouseEvent e) // Create a simple scene and attach it to the virtual universe BranchGroup scene = createSceneGraph(); - universe.addBranchGraph(scene); - + universe.addBranchGraph(scene); + canvas.getView().setFrontClipPolicy(javax.media.j3d.View.VIRTUAL_EYE); canvas.getView().setFrontClipDistance(0.01); + // Headlight + PlatformGeometry pg = new PlatformGeometry(); + + mHeadLight = new DirectionalLight(new Color3f(0.8f, 0.8f, 0.8f), + new Vector3f(0.0f, 0.0f, -1.0f)); + mHeadLight.setInfluencingBounds(bounds); + mHeadLight.setCapability(Light.ALLOW_STATE_WRITE); + mHeadLight.setEnable(true); + pg.addChild(mHeadLight); + viewingPlatform.setPlatformGeometry(pg); + } - + private void initialize() { - + } - private BranchGroup createSceneGraph() - { + private BranchGroup createSceneGraph() { BranchGroup branchRoot = new BranchGroup(); // Create a bounds for the background and lights - BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 1000.0); + BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 1000.0); // Set up the background Color3f bgColor = new Color3f(BoardCAD.getInstance().getBackgroundColor()); @@ -227,9 +264,9 @@ private BranchGroup createSceneGraph() // Set up the directional lights Color3f light1Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light1Direction = new Vector3f(0.0f, 1.0f, 0.0f); + Vector3f light1Direction = new Vector3f(0.0f, 1.0f, 0.0f); Color3f light2Color = new Color3f(1.0f, 1.0f, 0.9f); - Vector3f light2Direction = new Vector3f(0.0f, -1.0f, 0.0f); + Vector3f light2Direction = new Vector3f(0.0f, -1.0f, 0.0f); DirectionalLight light1 = new DirectionalLight(light1Color, light1Direction); light1.setInfluencingBounds(bounds); @@ -239,33 +276,32 @@ private BranchGroup createSceneGraph() light2.setInfluencingBounds(bounds); branchRoot.addChild(light2); - // Create an Appearance and set up the material properties Appearance surfacePathsApperance = new Appearance(); ColoringAttributes surfacePathsColor = new ColoringAttributes(); - surfacePathsColor.setColor (1.0f, 1.0f, 1.0f); + surfacePathsColor.setColor(1.0f, 1.0f, 1.0f); surfacePathsApperance.setColoringAttributes(surfacePathsColor); Appearance normalsApperance = new Appearance(); ColoringAttributes normalsColor = new ColoringAttributes(); - normalsColor.setColor (0.5f, 0.5f, 0.9f); + normalsColor.setColor(0.5f, 0.5f, 0.9f); normalsApperance.setColoringAttributes(normalsColor); - + Appearance toolpathsApperance = new Appearance(); ColoringAttributes toolpathsColor = new ColoringAttributes(); - toolpathsColor.setColor (0.1f, 0.1f, 0.3f); + toolpathsColor.setColor(0.1f, 0.1f, 0.3f); toolpathsApperance.setColoringAttributes(toolpathsColor); Appearance supportStructureApperance = new Appearance(); ColoringAttributes supportStructtureColor = new ColoringAttributes(); - supportStructtureColor.setColor (0.1f, 0.1f, 0.3f); + supportStructtureColor.setColor(0.1f, 0.1f, 0.3f); supportStructureApperance.setColoringAttributes(supportStructtureColor); Appearance cutterApperance = new Appearance(); ColoringAttributes cutterApperanceColor = new ColoringAttributes(); - cutterApperanceColor.setColor (0.1f, 0.1f, 0.3f); + cutterApperanceColor.setColor(0.1f, 0.1f, 0.3f); cutterApperance.setColoringAttributes(cutterApperanceColor); - + // Create a Transformgroup to scale all objects so they // appear in the scene. mScale = new TransformGroup(); @@ -277,7 +313,7 @@ private BranchGroup createSceneGraph() mScale.setTransform(mTransform); branchRoot.addChild(mScale); - //Toolpaths + // Toolpaths mToolpathsGroup = new TransformGroup(); mToolpathsGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); mToolpathsGroup.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND); @@ -287,24 +323,25 @@ private BranchGroup createSceneGraph() mToolpathsGroup.setTransform(mToolpathsTransform); mScale.addChild(mToolpathsGroup); - LineArray referencePointArray = new LineArray(6, LineArray.COORDINATES); + LineArray referencePointArray = new LineArray(6, LineArray.COORDINATES); referencePointArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); double size = 40.0; - referencePointArray.setCoordinates(mDeckCurrentNormalIndex, new Point3d[]{new Point3d(-size, 0.0, 0.0), new Point3d(size, 0.0, 0.0), new Point3d(0.0, -size, 0.0),new Point3d(0.0, size, 0.0),new Point3d(0.0, 0.0, -size),new Point3d(0.0, 0.0, size)}); + referencePointArray.setCoordinates(mDeckCurrentNormalIndex, new Point3d[] { new Point3d(-size, 0.0, 0.0), new Point3d(size, 0.0, 0.0), new Point3d(0.0, -size, 0.0), new Point3d(0.0, size, 0.0), new Point3d(0.0, 0.0, -size), new Point3d(0.0, 0.0, size) }); referencePointArray.setValidVertexCount(6); - + Appearance toolpathsReferencePointApperance = new Appearance(); ColoringAttributes toolpathsReferencePointColor = new ColoringAttributes(); - toolpathsReferencePointColor.setColor (0.0f, 1.0f, 0.0f); + toolpathsReferencePointColor.setColor(0.0f, 1.0f, 0.0f); toolpathsReferencePointApperance.setColoringAttributes(toolpathsReferencePointColor); - + Shape3D toolpathsReferencePoint = new Shape3D(); toolpathsReferencePoint.setGeometry(referencePointArray); toolpathsReferencePoint.setAppearance(normalsApperance); mToolpathsGroup.addChild(toolpathsReferencePoint); - - //Cutter + + // Cutter + mCutterPos = new Vector3d(0.0, 0.0, 0.0); mCutterTransformGroup = new TransformGroup(); mCutterTransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); mCutterTransformGroup.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND); @@ -313,7 +350,7 @@ private BranchGroup createSceneGraph() mCutterTransform.setIdentity(); mCutterTransformGroup.setTransform(mCutterTransform); mToolpathsGroup.addChild(mCutterTransformGroup); - + mDeckOrBottomToolpathSwitch = new Switch(); mDeckOrBottomToolpathSwitch.setCapability(Switch.ALLOW_SWITCH_READ); mDeckOrBottomToolpathSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); @@ -330,21 +367,21 @@ private BranchGroup createSceneGraph() mDeckToolpathsSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); mDeckToolpathsSwitch.setWhichChild(Switch.CHILD_ALL); mDeckToolpathGroup.addChild(mDeckToolpathsSwitch); - + mDeckToolpaths = new Shape3D(); mDeckToolpaths.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); -// mDeckToolpaths.setCapability(Shape3D.ALLOW_GEOMETRY_READ); + // mDeckToolpaths.setCapability(Shape3D.ALLOW_GEOMETRY_READ); mDeckToolpaths.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); -// mDeckToolpaths.setCapability(Shape3D.ALLOW_APPEARANCE_READ); + // mDeckToolpaths.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - mDeckToolpathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[]{200000}); + mDeckToolpathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[] { 200000 }); mDeckToolpathsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); mDeckToolpaths.setGeometry(mDeckToolpathsArray); mDeckToolpaths.setAppearance(toolpathsApperance); mDeckToolpathsSwitch.addChild(mDeckToolpaths); - - mDeckToolpathsArray.setCoordinates(3, new double[]{-1,-1,-1,0,0,0,1,1,1}); - + + mDeckToolpathsArray.setCoordinates(3, new double[] { -1, -1, -1, 0, 0, 0, 1, 1, 1 }); + mBottomToolpathGroup = new Group(); mBottomToolpathGroup.setCapability(Switch.ALLOW_SWITCH_READ); mBottomToolpathGroup.setCapability(Switch.ALLOW_SWITCH_WRITE); @@ -362,15 +399,15 @@ private BranchGroup createSceneGraph() mBottomToolpaths.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); mBottomToolpaths.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - mBottomToolpathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[]{200000}); + mBottomToolpathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[] { 200000 }); mBottomToolpathsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); mBottomToolpaths.setGeometry(mBottomToolpathsArray); mBottomToolpaths.setAppearance(toolpathsApperance); mBottomToolpathsSwitch.addChild(mBottomToolpaths); - - mBottomToolpathsArray.setCoordinates(3, new double[]{-1,-1,-1,0,0,0,1,1,1}); - - //Model + + mBottomToolpathsArray.setCoordinates(3, new double[] { -1, -1, -1, 0, 0, 0, 1, 1, 1 }); + + // Model mModelTransformGroup = new TransformGroup(); mModelTransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); mModelTransformGroup.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND); @@ -382,9 +419,9 @@ private BranchGroup createSceneGraph() Appearance modelReferencePointApperance = new Appearance(); ColoringAttributes modelReferencePointColor = new ColoringAttributes(); - modelReferencePointColor.setColor (1.0f, 1.0f, 1.0f); + modelReferencePointColor.setColor(1.0f, 1.0f, 1.0f); modelReferencePointApperance.setColoringAttributes(modelReferencePointColor); - + Shape3D modelReferencePoint = new Shape3D(); modelReferencePoint.setGeometry(referencePointArray); modelReferencePoint.setAppearance(modelReferencePointApperance); @@ -400,20 +437,20 @@ private BranchGroup createSceneGraph() mDeckModelGroup.setCapability(Switch.ALLOW_SWITCH_READ); mDeckModelGroup.setCapability(Switch.ALLOW_SWITCH_WRITE); mDeckOrBottomModelSwitch.addChild(mDeckModelGroup); - + mDeckSurfacePathsSwitch = new Switch(); -// mDeckSurfacePathsSwitch.setCapability(Switch.ALLOW_SWITCH_READ); + // mDeckSurfacePathsSwitch.setCapability(Switch.ALLOW_SWITCH_READ); mDeckSurfacePathsSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); mDeckSurfacePathsSwitch.setWhichChild(Switch.CHILD_ALL); mDeckModelGroup.addChild(mDeckSurfacePathsSwitch); - + mDeckSurfacePaths = new Shape3D(); mDeckSurfacePaths.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); -// mDeckSurfacePaths.setCapability(Shape3D.ALLOW_GEOMETRY_READ); + // mDeckSurfacePaths.setCapability(Shape3D.ALLOW_GEOMETRY_READ); mDeckSurfacePaths.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); -// mDeckSurfacePaths.setCapability(Shape3D.ALLOW_APPEARANCE_READ); + // mDeckSurfacePaths.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - mDeckSurfacePathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[]{200000}); + mDeckSurfacePathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[] { 200000 }); mDeckSurfacePathsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); mDeckSurfacePaths.setGeometry(mDeckSurfacePathsArray); mDeckSurfacePaths.setAppearance(surfacePathsApperance); @@ -422,14 +459,14 @@ private BranchGroup createSceneGraph() mDeckNormalsSwitch = new Switch(); mDeckNormalsSwitch.setCapability(Switch.ALLOW_SWITCH_READ); mDeckNormalsSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); - mDeckNormalsSwitch.setWhichChild(Switch.CHILD_ALL); + mDeckNormalsSwitch.setWhichChild(Switch.CHILD_NONE); mDeckModelGroup.addChild(mDeckNormalsSwitch); mDeckSurfaceNormals = new Shape3D(); mDeckSurfaceNormals.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); -// mDeckNormals.setCapability(Shape3D.ALLOW_GEOMETRY_READ); + // mDeckNormals.setCapability(Shape3D.ALLOW_GEOMETRY_READ); mDeckSurfaceNormals.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); -// mDeckNormals.setCapability(Shape3D.ALLOW_APPEARANCE_READ); + // mDeckNormals.setCapability(Shape3D.ALLOW_APPEARANCE_READ); mDeckNormalsArray = new LineArray(200000, LineArray.COORDINATES); mDeckNormalsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); @@ -450,11 +487,11 @@ private BranchGroup createSceneGraph() mBottomSurfacePaths = new Shape3D(); mBottomSurfacePaths.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); -// mBottomSurfacePaths.setCapability(Shape3D.ALLOW_GEOMETRY_READ); + // mBottomSurfacePaths.setCapability(Shape3D.ALLOW_GEOMETRY_READ); mBottomSurfacePaths.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); -// mBottomSurfacePaths.setCapability(Shape3D.ALLOW_APPEARANCE_READ); + // mBottomSurfacePaths.setCapability(Shape3D.ALLOW_APPEARANCE_READ); - mBottomSurfacePathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[]{200000}); + mBottomSurfacePathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[] { 200000 }); mBottomSurfacePathsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); mBottomSurfacePaths.setGeometry(mBottomSurfacePathsArray); mBottomSurfacePaths.setAppearance(surfacePathsApperance); @@ -468,9 +505,9 @@ private BranchGroup createSceneGraph() mBottomSurfaceNormals = new Shape3D(); mBottomSurfaceNormals.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); -// mBottomNormals.setCapability(Shape3D.ALLOW_GEOMETRY_READ); + // mBottomNormals.setCapability(Shape3D.ALLOW_GEOMETRY_READ); mBottomSurfaceNormals.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); -// mBottomNormals.setCapability(Shape3D.ALLOW_APPEARANCE_READ); + // mBottomNormals.setCapability(Shape3D.ALLOW_APPEARANCE_READ); mBottomNormalsArray = new LineArray(200000, LineArray.COORDINATES); mBottomNormalsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); @@ -478,245 +515,406 @@ private BranchGroup createSceneGraph() mBottomSurfaceNormals.setAppearance(normalsApperance); mBottomSurfaceNormalsSwitch.addChild(mBottomSurfaceNormals); -//DEBUG -// mDeckGroup.addChild(new com.sun.j3d.utils.geometry.Box(100.0f,100.0f, 100.0f, new Appearance())); -// mBottomGroup.addChild(new com.sun.j3d.utils.geometry.Box()); + // Blank + mBlankSwitch = new Switch(); + mBlankSwitch.setCapability(Switch.ALLOW_SWITCH_READ); + mBlankSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); + mBlankSwitch.setWhichChild(Switch.CHILD_ALL); + mScale.addChild(mBlankSwitch); + + mBlankTransformGroup = new TransformGroup(); + mBlankTransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); + mBlankTransformGroup.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND); + mBlankTransformGroup.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE); + mBlankTransform = new Transform3D(); + mBlankTransform.setIdentity(); + mBlankTransform.setScale(10); + mBlankTransformGroup.setTransform(mBlankTransform); + mBlankSwitch.addChild(mBlankTransformGroup); + + mBlankModel = new Shape3D(); + mBlankModel.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); + mBlankModel.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); + + // Create an Appearance. + Appearance blankApperance = new Appearance(); + Color3f ambient = new Color3f(0.4f, 0.4f, 0.4f); + Color3f emissive = new Color3f(0.0f, 0.0f, 0.0f); + Color3f diffuse = new Color3f(0.8f, 0.8f, 0.8f); + Color3f specular = new Color3f(1.0f, 1.0f, 1.0f); + TransparencyAttributes blankTransparencyAttributes = new TransparencyAttributes(); + blankTransparencyAttributes.setTransparencyMode(TransparencyAttributes.NICEST); + blankTransparencyAttributes.setTransparency(0.5f); + + // Set up the material properties + blankApperance.setMaterial(new Material(ambient, emissive, diffuse, specular, 115.0f)); + blankApperance.setTransparencyAttributes(blankTransparencyAttributes); + + mBlankModel.setAppearance(blankApperance); + mBlankTransformGroup.addChild(mBlankModel); + + // Brd + mBrdSwitch = new Switch(); + mBrdSwitch.setCapability(Switch.ALLOW_SWITCH_READ); + mBrdSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE); + mBrdSwitch.setWhichChild(Switch.CHILD_ALL); + mScale.addChild(mBrdSwitch); + + mBrdTransformGroup = new TransformGroup(); + mBrdTransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); + mBrdTransformGroup.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND); + mBrdTransformGroup.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE); + mBrdTransform = new Transform3D(); + mBrdTransform.setIdentity(); + mBrdTransform.setScale(10); + mBrdTransformGroup.setTransform(mBrdTransform); + mBrdSwitch.addChild(mBrdTransformGroup); + + mBrdModel = new Shape3D(); + mBrdModel.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); + mBrdModel.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE); + + // Create an Appearance. + Appearance brdApperance = new Appearance(); + Color3f brdAmbient = new Color3f(0.4f, 0.4f, 0.4f); + Color3f brdEmissive = new Color3f(0.0f, 0.0f, 0.0f); + Color3f brdDiffuse = new Color3f(0.8f, 0.8f, 0.8f); + Color3f brdSpecular = new Color3f(1.0f, 1.0f, 1.0f); + TransparencyAttributes brdTransparencyAttributes = new TransparencyAttributes(); + brdTransparencyAttributes.setTransparencyMode(TransparencyAttributes.NICEST); + brdTransparencyAttributes.setTransparency(0.5f); + + // Set up the material properties + brdApperance.setMaterial(new Material(brdAmbient, brdEmissive, brdDiffuse, brdSpecular, 115.0f)); + brdApperance.setTransparencyAttributes(brdTransparencyAttributes); + mBrdModel.setAppearance(brdApperance); + mBrdTransformGroup.addChild(mBrdModel); + + + // DEBUG + // mDeckGroup.addChild(new com.sun.j3d.utils.geometry.Box(100.0f,100.0f, + // 100.0f, new Appearance())); + // mBottomGroup.addChild(new com.sun.j3d.utils.geometry.Box()); + // Have Java 3D perform optimizations on this scene graph. -// branchRoot.compile(); CANNOT ADD AND REMOVE NODES THEN + // branchRoot.compile(); CANNOT ADD AND REMOVE NODES THEN return branchRoot; } - - public void reset() - { + + public void reset() { mDeckCurrentSurfacePathIndex = 0; mDeckCurrentNormalIndex = 0; - mDeckCurrentToolpathIndex = 0; + mDeckCurrentToolpathIndex = 0; - //TODO: Test refactor to only reset linestrips by setting count to zero - mDeckSurfacePathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[]{200000}); + // TODO: Test refactor to only reset linestrips by setting count to zero + mDeckSurfacePathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[] { 200000 }); mDeckSurfacePathsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); - mDeckSurfacePathsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); + mDeckSurfacePathsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); mDeckSurfacePaths.setGeometry(mDeckSurfacePathsArray); mDeckNormalsArray = new LineArray(200000, LineArray.COORDINATES); mDeckNormalsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); - mDeckNormalsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); + mDeckNormalsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); mDeckSurfaceNormals.setGeometry(mDeckNormalsArray); - - mDeckToolpathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[]{200000}); + + mDeckToolpathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[] { 200000 }); mDeckToolpathsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); - mDeckToolpathsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); + mDeckToolpathsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); mDeckToolpaths.setGeometry(mDeckToolpathsArray); mBottomCurrentSurfacePathIndex = 0; mBottomCurrentNormalIndex = 0; - mBottomCurrentToolpathIndex = 0; + mBottomCurrentToolpathIndex = 0; - mBottomSurfacePathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[]{200000}); + mBottomSurfacePathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[] { 200000 }); mBottomSurfacePathsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); - mBottomSurfacePathsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); + mBottomSurfacePathsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); mBottomSurfacePaths.setGeometry(mBottomSurfacePathsArray); mBottomNormalsArray = new LineArray(200000, LineArray.COORDINATES); mBottomNormalsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); - mBottomNormalsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); + mBottomNormalsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); mBottomSurfaceNormals.setGeometry(mBottomNormalsArray); - - mBottomToolpathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[]{200000}); + + mBottomToolpathsArray = new LineStripArray(200000, LineStripArray.COORDINATES, new int[] { 200000 }); mBottomToolpathsArray.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); - mBottomToolpathsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); + mBottomToolpathsArray.setCapability(GeometryArray.ALLOW_COUNT_WRITE); mBottomToolpaths.setGeometry(mBottomToolpathsArray); } - - void setOffset(double offset) - { + + void setOffset(double offset) { double scale = 0.0005; - // Vector3d deckOffset = BoardCAD.getInstance().getMachineView().getBoardDeckOffsetPos(); + // Vector3d deckOffset = + // BoardCAD.getInstance().getMachineView().getBoardDeckOffsetPos(); Vector3d deckTranslation = new Vector3d(); - // deckTranslation.sub(deckOffset); + // deckTranslation.sub(deckOffset); String generalStr = LanguageResource.getString("GENERALCATEGORY_STR"); -// deckTranslation.x -= (BoardCAD.getInstance().getCurrentBrd().getLength() + (.getCategory(generalStr).getDouble(MachineConfig.TAILSTOP_POS)/UnitUtils.MILLIMETER_PR_CENTIMETER))/2.0; - deckTranslation.scale(scale*10); //Since the board coordinates are in cm, scaled to millimeters used by g-code + // deckTranslation.x -= + // (BoardCAD.getInstance().getCurrentBrd().getLength() + + // (.getCategory(generalStr).getDouble(MachineConfig.TAILSTOP_POS)/UnitUtils.MILLIMETER_PR_CENTIMETER))/2.0; + deckTranslation.scale(scale * 10); // Since the board coordinates are in + // cm, scaled to millimeters used by + // g-code mTransform.set(scale, deckTranslation); mScale.setTransform(mTransform); } - - public void setBackgroundColor(Color color) - { + + public void setBackgroundColor(Color color) { float[] components = color.getRGBComponents(null); mBackgroundNode.setColor(new Color3f(components[0], components[1], components[2])); } - public void setDeckSurfaceStart(Point3d point) - { - mDeckCurrentSurfacePathIndex=0; - mDeckSurfacePathsArray.setCoordinates(mDeckCurrentSurfacePathIndex++, new Point3d[]{point}); + public void setDeckSurfaceStart(Point3d point) { + mDeckCurrentSurfacePathIndex = 0; + mDeckSurfacePathsArray.setCoordinates(mDeckCurrentSurfacePathIndex++, new Point3d[] { point }); } - public void addDeckSurfaceLine(Point3d point) - { - mDeckSurfacePathsArray.setCoordinates(mDeckCurrentSurfacePathIndex++, new Point3d[]{point}); - mDeckSurfacePathsArray.setStripVertexCounts(new int[]{(mDeckCurrentSurfacePathIndex>2)?mDeckCurrentSurfacePathIndex:2}); + public void addDeckSurfaceLine(Point3d point) { + mDeckSurfacePathsArray.setCoordinates(mDeckCurrentSurfacePathIndex++, new Point3d[] { point }); + mDeckSurfacePathsArray.setStripVertexCounts(new int[] { (mDeckCurrentSurfacePathIndex > 2) ? mDeckCurrentSurfacePathIndex : 2 }); } - public void addDeckNormal(Point3d location, Vector3d normal) - { + public void addDeckNormal(Point3d location, Vector3d normal) { final Point3d normalCopy = new Point3d(normal); final Point3d tmp = new Point3d(location); normalCopy.scale(40.0); tmp.add(normalCopy); - mDeckNormalsArray.setCoordinates(mDeckCurrentNormalIndex, new Point3d[]{location,tmp}); + mDeckNormalsArray.setCoordinates(mDeckCurrentNormalIndex, new Point3d[] { location, tmp }); mDeckCurrentNormalIndex += 2; mDeckNormalsArray.setValidVertexCount(mDeckCurrentNormalIndex); } - public void setDeckToolpathStart(Point3d point) - { + public void setDeckToolpathStart(Point3d point) { mDeckCurrentToolpathIndex = 0; - mDeckToolpathsArray.setCoordinates(mDeckCurrentToolpathIndex++, new Point3d[]{point}); + mDeckToolpathsArray.setCoordinates(mDeckCurrentToolpathIndex++, new Point3d[] { point }); mCutterTransform.setIdentity(); mCutterTransform.setTranslation(new Vector3d(point)); mCutterTransformGroup.setTransform(mCutterTransform); } - public void addDeckToolpathLine(Point3d point) - { - mDeckToolpathsArray.setCoordinates(mDeckCurrentToolpathIndex++, new Point3d[]{point}); - mDeckToolpathsArray.setStripVertexCounts(new int[]{(mDeckCurrentToolpathIndex>2)?mDeckCurrentToolpathIndex:2}); - - mCutterTransform.setIdentity(); - mCutterTransform.setTranslation(new Vector3d(point)); - mCutterTransformGroup.setTransform(mCutterTransform); + public void addDeckToolpathLine(Point3d point) { + mDeckToolpathsArray.setCoordinates(mDeckCurrentToolpathIndex++, new Point3d[] { point }); + mDeckToolpathsArray.setStripVertexCounts(new int[] { (mDeckCurrentToolpathIndex > 2) ? mDeckCurrentToolpathIndex : 2 }); + + if (isDeckActive()) { + updateCutterPos(point); + } } - public void setBottomSurfaceStart(Point3d point) - { - mBottomCurrentSurfacePathIndex=0; - mBottomSurfacePathsArray.setCoordinates(mDeckCurrentSurfacePathIndex++, new Point3d[]{point}); + public void setBottomSurfaceStart(Point3d point) { + mBottomCurrentSurfacePathIndex = 0; + mBottomSurfacePathsArray.setCoordinates(mDeckCurrentSurfacePathIndex++, new Point3d[] { point }); } - public void addBottomSurfaceLine(Point3d point) - { - mBottomSurfacePathsArray.setCoordinates(mBottomCurrentSurfacePathIndex++, new Point3d[]{point}); - mBottomSurfacePathsArray.setStripVertexCounts(new int[]{(mBottomCurrentSurfacePathIndex>2)?mBottomCurrentSurfacePathIndex:2}); + public void addBottomSurfaceLine(Point3d point) { + mBottomSurfacePathsArray.setCoordinates(mBottomCurrentSurfacePathIndex++, new Point3d[] { point }); + mBottomSurfacePathsArray.setStripVertexCounts(new int[] { (mBottomCurrentSurfacePathIndex > 2) ? mBottomCurrentSurfacePathIndex : 2 }); } - public void addBottomNormal(Point3d location, Vector3d normal) - { + public void addBottomNormal(Point3d location, Vector3d normal) { final Point3d normalCopy = new Point3d(normal); final Point3d tmp = new Point3d(location); normalCopy.scale(40.0); tmp.add(normalCopy); - mBottomNormalsArray.setCoordinates(mBottomCurrentNormalIndex, new Point3d[]{location,tmp}); + mBottomNormalsArray.setCoordinates(mBottomCurrentNormalIndex, new Point3d[] { location, tmp }); mBottomCurrentNormalIndex += 2; mBottomNormalsArray.setValidVertexCount(mBottomCurrentNormalIndex); } - public void setBottomToolpathStart(Point3d point) - { + public void setBottomToolpathStart(Point3d point) { mBottomCurrentToolpathIndex = 0; - mBottomToolpathsArray.setCoordinates(mBottomCurrentToolpathIndex++, new Point3d[]{point}); + mBottomToolpathsArray.setCoordinates(mBottomCurrentToolpathIndex++, new Point3d[] { point }); - mCutterTransform.setTranslation(new Vector3d(point)); - mCutterTransformGroup.setTransform(mCutterTransform); } - public void addBottomToolpathLine(Point3d point) - { - mBottomToolpathsArray.setCoordinates(mBottomCurrentToolpathIndex++, new Point3d[]{point}); - mBottomToolpathsArray.setStripVertexCounts(new int[]{(mBottomCurrentToolpathIndex>2)?mBottomCurrentToolpathIndex:2}); + public void addBottomToolpathLine(Point3d point) { + mBottomToolpathsArray.setCoordinates(mBottomCurrentToolpathIndex++, new Point3d[] { point }); + mBottomToolpathsArray.setStripVertexCounts(new int[] { (mBottomCurrentToolpathIndex > 2) ? mBottomCurrentToolpathIndex : 2 }); - mCutterTransform.setTranslation(new Vector3d(point)); + if (isBottomActive()) { + updateCutterPos(point); + } + } + + public void updateCutterPos(Point3d point) { + // mCutterTransform.setIdentity(); + mCutterPos.x = point.x; + mCutterPos.y = point.y; + mCutterPos.z = point.z; + mCutterTransform.setTranslation(mCutterPos); mCutterTransformGroup.setTransform(mCutterTransform); } - public void toggleDeckOrBottom(){ - mDeckOrBottomToolpathSwitch.setWhichChild((mDeckOrBottomToolpathSwitch.getWhichChild()==0)?1:0); - mDeckOrBottomModelSwitch.setWhichChild((mDeckOrBottomModelSwitch.getWhichChild()==0)?1:0); + public void toggleDeckOrBottom() { + mDeckOrBottomToolpathSwitch.setWhichChild((mDeckOrBottomToolpathSwitch.getWhichChild() == 0) ? 1 : 0); + mDeckOrBottomModelSwitch.setWhichChild((mDeckOrBottomModelSwitch.getWhichChild() == 0) ? 1 : 0); + + if (isDeckActive()) { + setBlankOffset(mBlankDeckOffset, mBlankDeckRotation, false); + setBrdOffset(mBrdDeckOffset, mBrdDeckRotation, false); + } else { + setBlankOffset(mBlankBottomOffset, mBlankBottomRotation, true); + setBrdOffset(mBrdBottomOffset, mBrdBottomRotation, true); + } } - public void setDeckActive(){ + public void setDeckActive() { mDeckOrBottomToolpathSwitch.setWhichChild(0); mDeckOrBottomModelSwitch.setWhichChild(0); } - public void setBottomActive(){ + public boolean isDeckActive() { + return mDeckOrBottomToolpathSwitch.getWhichChild() == 0; + } + + public void setBottomActive() { mDeckOrBottomToolpathSwitch.setWhichChild(1); mDeckOrBottomModelSwitch.setWhichChild(1); } - public void setCutterModel(BranchGroup model){ - try{ - if(mCutter != null) - { + public boolean isBottomActive() { + return !isDeckActive(); + } + + public void setCutterModel(BranchGroup model) { + try { + if (mCutter != null) { mCutterTransformGroup.removeChild(mCutter); } mCutter = model; - if(model != null) - { + if (model != null) { mCutterTransformGroup.addChild(mCutter); } - } - catch(Exception e) - { + } catch (Exception e) { System.out.println("Exception in Machine3Dview::setCutterModel(): " + e.toString()); } -// System.out.println("setCutterModel()\n"); + // System.out.println("setCutterModel()\n"); } - public void setBlankHoldingSystemModel(BranchGroup model){ - try{ - if(mBlankHoldingSystemModel != null) - { - mModelTransformGroup.removeChild(mBlankHoldingSystemModel); //remove old + public void setBlankHoldingSystemModel(BranchGroup model) { + try { + if (mBlankHoldingSystemModel != null) { + mModelTransformGroup.removeChild(mBlankHoldingSystemModel); // remove + // old } mBlankHoldingSystemModel = model; - if(model != null) - { + if (model != null) { mModelTransformGroup.addChild(mBlankHoldingSystemModel); } - }catch(Exception e) - { + } catch (Exception e) { System.out.println("Exception in Machine3DView::setBlankHoldingSystemModel(): " + e.toString()); } -// System.out.println("setBlankHoldingSystemModel()\n"); - + // System.out.println("setBlankHoldingSystemModel()\n"); + } - - public void fit_all() - { - + + public void fit_all() { + } - public void setCutterpos(Point3d pos){ + public void setCutterPos(Point3d pos) { mCutterTransform.setTranslation(new Vector3d(pos)); mCutterTransformGroup.setTransform(mCutterTransform); } - public void setCutterOffset(Point3d pos){ - mToolpathsTransform.setTranslation(new Vector3d(pos.x*UnitUtils.MILLIMETER_PR_CENTIMETER, pos.y*UnitUtils.MILLIMETER_PR_CENTIMETER, pos.z*UnitUtils.MILLIMETER_PR_CENTIMETER)); + public void setCutterOffset(Point3d pos) { + mToolpathsTransform.setTranslation(new Vector3d(pos.x * UnitUtils.MILLIMETER_PR_CENTIMETER, pos.y * UnitUtils.MILLIMETER_PR_CENTIMETER, pos.z * UnitUtils.MILLIMETER_PR_CENTIMETER)); mToolpathsGroup.setTransform(mToolpathsTransform); } - - public void update() - { + + public void update() { reset(); } - public void addCutterModel(Shape3D cutterModel) - { + public void addCutterModel(Shape3D cutterModel) { mScale.addChild(cutterModel); } - - public void setModelRotation(double angle) - { + + public void setModelRotation(double angle) { mModelTransform.setIdentity(); mModelTransform.rotX(angle); mModelTransformGroup.setTransform(mModelTransform); } -} + public void setBlankDeckOffset(Point3d pos, double angle) { + System.out.printf("setBlankDeckOffset"); + mBlankDeckOffset = pos; + mBlankDeckRotation = angle; + + if (isDeckActive()) { + setBlankOffset(mBlankDeckOffset, mBlankDeckRotation, false); + } + } + + public void setBlankBottomOffset(Point3d pos, double angle) { + System.out.printf("setBlankDeckOffset"); + mBlankBottomOffset = pos; + mBlankBottomRotation = angle; + + if (isBottomActive()) { + setBlankOffset(mBlankBottomOffset, mBlankBottomRotation, true); + } + } + + private void setBlankOffset(Point3d pos, double angle, boolean flip) { + System.out.printf("setBlankOffset angle:%f", angle); + mBlankTransform.rotY(angle); + if(flip){ + Transform3D flipRot = new Transform3D(); + flipRot.rotX(Math.PI); + mBlankTransform.mul(flipRot); + } + Vector3d vec = new Vector3d(pos); + vec.scale(10); + mBlankTransform.setTranslation(vec); + mBlankTransform.setScale(10); + mBlankTransformGroup.setTransform(mBlankTransform); + } + + public void setBrdDeckOffset(Point3d pos, double angle) { + System.out.printf("setBrdDeckOffset"); + mBrdDeckOffset = pos; + mBrdDeckRotation = angle; + + if (isDeckActive()) { + setBrdOffset(mBrdDeckOffset, mBrdDeckRotation, false); + } + } + + public void setBrdBottomOffset(Point3d pos, double angle) { + System.out.printf("setBrdDeckOffset"); + mBrdBottomOffset = pos; + mBrdBottomRotation = angle; + + if (isBottomActive()) { + setBrdOffset(mBrdBottomOffset, mBrdBottomRotation, true); + } + } + + private void setBrdOffset(Point3d pos, double angle, boolean flip) { + System.out.printf("setBrdOffset angle:%f", angle); + mBrdTransform.rotY(angle); + if(flip){ + Transform3D flipRot = new Transform3D(); + flipRot.rotX(Math.PI); + mBrdTransform.mul(flipRot); + } + Vector3d vec = new Vector3d(pos); + vec.scale(10); + mBrdTransform.setTranslation(vec); + mBrdTransform.setScale(10); + mBrdTransformGroup.setTransform(mBrdTransform); + } + + public Shape3D getBlankModel() { + return mBlankModel; + } + + public Shape3D getBrdModel() { + return mBrdModel; + } +} diff --git a/boardcad/gui/jdk/MachineDialog.java b/boardcad/gui/jdk/MachineDialog.java index 7765e06..6a79388 100644 --- a/boardcad/gui/jdk/MachineDialog.java +++ b/boardcad/gui/jdk/MachineDialog.java @@ -14,13 +14,13 @@ import javax.swing.BoxLayout; import javax.swing.ImageIcon; import javax.swing.JButton; -import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import boardcad.FileTools; +import boardcad.commands.BrdInputCommand; import boardcad.i18n.LanguageResource; import boardcam.MachineConfig; @@ -67,7 +67,7 @@ private void initialize() { // CNC JDialog Icon try { ImageIcon icon = new ImageIcon(getClass().getResource( - "icons/mill png 16x16.png")); + "../../icons/mill png 16x16.png")); super.setIconImage(icon.getImage()); } catch (Exception e) { @@ -80,6 +80,7 @@ private void initialize() { .setText(LanguageResource.getString("GENERATEBUTTON_STR")); generateButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { final JFileChooser fc = new JFileChooser(); @@ -142,6 +143,7 @@ public MachineView getMachineView() { return mMachineView; } + @Override public boolean dispatchKeyEvent(KeyEvent event) { if(getFocusOwner() != null) { diff --git a/boardcad/gui/jdk/MachineView.java b/boardcad/gui/jdk/MachineView.java index 8918309..c8d3496 100644 --- a/boardcad/gui/jdk/MachineView.java +++ b/boardcad/gui/jdk/MachineView.java @@ -78,6 +78,7 @@ public void init() add(splitPane,BorderLayout.CENTER); } + @Override public void fit_all() { mMachine2DView.fit_all(); diff --git a/boardcad/gui/jdk/QuadView.java b/boardcad/gui/jdk/QuadView.java new file mode 100644 index 0000000..ddf9006 --- /dev/null +++ b/boardcad/gui/jdk/QuadView.java @@ -0,0 +1,40 @@ +package boardcad.gui.jdk; + +import java.awt.GridLayout; + +import javax.swing.JPanel; + +class QuadView extends JPanel implements BrdEditParentContainer +{ + static final long serialVersionUID=1L; + BoardEdit mActive = null; + + QuadView() + { + this.setLayout(new GridLayout(2,2,3,3)); + } + + @Override + public void setActive(BoardEdit edit) + { + mActive = edit; + this.repaint(); + BoardCAD.getInstance().getGuidePointsDialog().update(); + } + + @Override + public boolean isActive(BoardEdit edit) + { + return (edit == mActive); + } + + @Override + public BoardEdit getActive() + { + if(mActive == null) + return (BoardEdit)getComponent(0); + + return mActive; + } + +} \ No newline at end of file diff --git a/boardcad/gui/jdk/ScaleBoardInputDialog.java b/boardcad/gui/jdk/ScaleBoardInputDialog.java index d7388f6..5c007a5 100644 --- a/boardcad/gui/jdk/ScaleBoardInputDialog.java +++ b/boardcad/gui/jdk/ScaleBoardInputDialog.java @@ -125,6 +125,7 @@ private JPanel getmContentPane () { mContentPane.add(myTabbedPane, BorderLayout.CENTER); ChangeListener changeListener = new ChangeListener() { + @Override public void stateChanged(ChangeEvent changeEvent) { JTabbedPane sourceTabbedPane = (JTabbedPane) changeEvent.getSource(); if(sourceTabbedPane.getSelectedIndex()==0) @@ -177,6 +178,7 @@ private JRadioButton getOverCurveRadioButton() { OverCurveRadioButton.setBounds(new Rectangle(41, 68, 145, 20)); OverCurveRadioButton.setText(LanguageResource.getString("OVERCURVERADIOBUTTON_STR") ); OverCurveRadioButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { OverCurveRadioButton.setSelected(true); setVisible(true); @@ -193,6 +195,7 @@ private JRadioButton getStraightLineRadioButton() { StraightLineRadioButton.setBounds(new Rectangle(41, 86, 145, 20)); StraightLineRadioButton.setText(LanguageResource.getString("STRAIGHTLINERADIOBUTTON_STR") ); StraightLineRadioButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { StraightLineRadioButton.setSelected(true); setVisible(true); @@ -222,6 +225,7 @@ private JCheckBox getScaleFinsCheckBox() { ScaleFinsCheckBox.setToolTipText(LanguageResource.getString("SCALEFINSMSGDETAILED")); ScaleFinsCheckBox.setSelected(true); ScaleFinsCheckBox.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent e) { //setVisible(false); //mWasCancelled = false; @@ -250,6 +254,7 @@ private JCheckBox getScaleFinsCheckBoxFactor() { ScaleFinsCheckBoxFactor.setToolTipText(LanguageResource.getString("SCALEFINSMSGDETAILED")); ScaleFinsCheckBoxFactor.setSelected(true); ScaleFinsCheckBoxFactor.addItemListener(new java.awt.event.ItemListener() { + @Override public void itemStateChanged(java.awt.event.ItemEvent e) { //setVisible(false); //mWasCancelled = false; @@ -272,6 +277,7 @@ private JButton getOkButton() { OkButton.setBounds(new Rectangle(95, 167, 110, 25)); OkButton.setText(LanguageResource.getString("OKBUTTON_STR")); OkButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); mWasCancelled = false; @@ -292,6 +298,7 @@ private JButton getCancelButton() { CancelButton.setBounds(new Rectangle(216, 370, 110, 25)); CancelButton.setText(LanguageResource.getString("CANCELBUTTON_STR")); CancelButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); } @@ -310,7 +317,8 @@ private JTextField getLengthTextField() { LengthTextField = new JTextField(); LengthTextField.setBounds(new Rectangle(149, 120, 80, 20)); LengthTextField.addFocusListener(new java.awt.event.FocusListener() { - public void focusLost(java.awt.event.FocusEvent e) { + @Override + public void focusLost(java.awt.event.FocusEvent e) { if(ConstraintProportionsCheckBox.isSelected()) { double new_length=UnitUtils.convertInputStringToInternalLengthUnit(LengthTextField.getText()); @@ -319,7 +327,8 @@ public void focusLost(java.awt.event.FocusEvent e) { mContentPane.repaint(); } } - public void focusGained(java.awt.event.FocusEvent e) { + @Override + public void focusGained(java.awt.event.FocusEvent e) { original_length=UnitUtils.convertInputStringToInternalLengthUnit(LengthTextField.getText()); original_width=UnitUtils.convertInputStringToInternalLengthUnit(WidthTextField.getText()); original_thickness=UnitUtils.convertInputStringToInternalLengthUnit(ThickTextField.getText()); @@ -339,7 +348,8 @@ private JTextField getWidthTextField() { WidthTextField = new JTextField(); WidthTextField.setBounds(new Rectangle(149, 150, 80, 20)); WidthTextField.addFocusListener(new java.awt.event.FocusListener() { - public void focusLost(java.awt.event.FocusEvent e) { + @Override + public void focusLost(java.awt.event.FocusEvent e) { if(ConstraintProportionsCheckBox.isSelected()) { @@ -349,7 +359,8 @@ public void focusLost(java.awt.event.FocusEvent e) { mContentPane.repaint(); } } - public void focusGained(java.awt.event.FocusEvent e) { + @Override + public void focusGained(java.awt.event.FocusEvent e) { original_length=UnitUtils.convertInputStringToInternalLengthUnit(LengthTextField.getText()); original_width=UnitUtils.convertInputStringToInternalLengthUnit(WidthTextField.getText()); original_thickness=UnitUtils.convertInputStringToInternalLengthUnit(ThickTextField.getText()); @@ -369,7 +380,8 @@ private JTextField getThickTextField() { ThickTextField = new JTextField(); ThickTextField.setBounds(new Rectangle(149, 180, 80, 20)); ThickTextField.addFocusListener(new java.awt.event.FocusListener() { - public void focusLost(java.awt.event.FocusEvent e) { + @Override + public void focusLost(java.awt.event.FocusEvent e) { if(ConstraintProportionsCheckBox.isSelected()) { double new_thickness=UnitUtils.convertInputStringToInternalLengthUnit(ThickTextField.getText()); @@ -378,7 +390,8 @@ public void focusLost(java.awt.event.FocusEvent e) { mContentPane.repaint(); } } - public void focusGained(java.awt.event.FocusEvent e) { + @Override + public void focusGained(java.awt.event.FocusEvent e) { original_length=UnitUtils.convertInputStringToInternalLengthUnit(LengthTextField.getText()); original_width=UnitUtils.convertInputStringToInternalLengthUnit(WidthTextField.getText()); original_thickness=UnitUtils.convertInputStringToInternalLengthUnit(ThickTextField.getText()); @@ -401,67 +414,67 @@ private JTextField getFactorTextField() { return FactorTextField; } - void setBoardLength(double length) + public void setBoardLength(double length) { LengthTextField.setText(UnitUtils.convertLengthToCurrentUnit(length, true)); } - void setBoardWidth(double width) + public void setBoardWidth(double width) { WidthTextField.setText(UnitUtils.convertLengthToCurrentUnit(width, true)); } - void setBoardThick(double thick) + public void setBoardThick(double thick) { ThickTextField.setText(UnitUtils.convertLengthToCurrentUnit(thick, true)); } - double getBoardLength() + public double getBoardLength() { return UnitUtils.convertInputStringToInternalLengthUnit(LengthTextField.getText()); } - double getBoardWidth() + public double getBoardWidth() { return UnitUtils.convertInputStringToInternalLengthUnit(WidthTextField.getText()); } - double getBoardThick() + public double getBoardThick() { return UnitUtils.convertInputStringToInternalLengthUnit(ThickTextField.getText()); } - double getFactor() + public double getFactor() { return Double.parseDouble(FactorTextField.getText()); } - boolean useOverCurve() + public boolean useOverCurve() { return OverCurveRadioButton.isSelected(); } - boolean scaleFins() + public boolean scaleFins() { return ScaleFinsCheckBox.isSelected(); } - boolean scaleBottomRocker() + public boolean scaleBottomRocker() { return ScaleBottomRockerCheckBox.isSelected(); } - boolean scaleFinsFactor() + public boolean scaleFinsFactor() { return ScaleFinsCheckBoxFactor.isSelected(); } - boolean wasCancelled() + public boolean wasCancelled() { return mWasCancelled; } - boolean scaleThroughFactor() + public boolean scaleThroughFactor() { return mScaleThroughFactor; } diff --git a/boardcad/gui/jdk/SettingDialog.java b/boardcad/gui/jdk/SettingDialog.java index d375490..040f6b9 100644 --- a/boardcad/gui/jdk/SettingDialog.java +++ b/boardcad/gui/jdk/SettingDialog.java @@ -29,6 +29,7 @@ public class SettingDialog extends JDialog { JButton okButton = new JButton(); okButton.setText(LanguageResource.getString("OKBUTTON_STR")); okButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); mWasCancelled = false; @@ -37,6 +38,7 @@ public void actionPerformed(java.awt.event.ActionEvent e) { JButton cancelButton = new JButton(); cancelButton.setText(LanguageResource.getString("CANCELBUTTON_STR")); cancelButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); } diff --git a/boardcad/gui/jdk/SettingsComponent.java b/boardcad/gui/jdk/SettingsComponent.java index 9d5be45..c9f1413 100644 --- a/boardcad/gui/jdk/SettingsComponent.java +++ b/boardcad/gui/jdk/SettingsComponent.java @@ -156,8 +156,11 @@ public String getColumnName(final int col) return ""; } } + @Override public int getRowCount() { return mSettings.size(); } + @Override public int getColumnCount() { return 2; } + @Override public Object getValueAt(final int row, final int col) { if(mSettings.isHidden(row)) @@ -249,6 +252,7 @@ public ColorRenderer() { setOpaque(true); //MUST do this for background to show up. } + @Override public Component getTableCellRendererComponent( final JTable table, final Object color, final boolean isSelected, final boolean hasFocus, @@ -291,6 +295,7 @@ public ColorEditor() { null); //no CANCEL button handler } + @Override public void actionPerformed(final ActionEvent e) { if (EDIT.equals(e.getActionCommand())) { // The user has clicked the cell, so @@ -307,11 +312,13 @@ public void actionPerformed(final ActionEvent e) { } // Implement the one CellEditor method that AbstractCellEditor doesn't. + @Override public Object getCellEditorValue() { return currentColor; } // Implement the one method defined by TableCellEditor. + @Override public Component getTableCellEditorComponent(final JTable table, final Object value, final boolean isSelected, @@ -344,6 +351,7 @@ public FileNameEditor() { } + @Override public void actionPerformed(final ActionEvent e) { if (EDIT.equals(e.getActionCommand())) { // The user has clicked the cell, so @@ -361,6 +369,7 @@ public void actionPerformed(final ActionEvent e) { } // Implement the one CellEditor method that AbstractCellEditor doesn't. + @Override public Object getCellEditorValue() { final File file = fileChooser.getSelectedFile(); if(file == null) @@ -372,6 +381,7 @@ public Object getCellEditorValue() { } // Implement the one method defined by TableCellEditor. + @Override public Component getTableCellEditorComponent(final JTable table, final Object value, final boolean isSelected, @@ -399,6 +409,7 @@ public ActionEditor() { button.setBorderPainted(true); } + @Override public void actionPerformed(final ActionEvent e) { if (EDIT.equals(e.getActionCommand())) { // The user has clicked the cell, so @@ -412,17 +423,19 @@ public void actionPerformed(final ActionEvent e) { } // Implement the one CellEditor method that AbstractCellEditor doesn't. + @Override public Object getCellEditorValue() { return value; } // Implement the one method defined by TableCellEditor. + @Override public Component getTableCellEditorComponent(final JTable table, final Object value, final boolean isSelected, final int row, final int column) { - this.value = ((SettingsAction)value); + this.value = (value); return button; } } @@ -443,7 +456,8 @@ public EnumEditor() { comboBox.setEditable(false); comboBox.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { + @Override + public void actionPerformed(ActionEvent e) { fireEditingStopped(); } }); @@ -451,6 +465,7 @@ public void actionPerformed(ActionEvent e) { // Implement the one CellEditor method that AbstractCellEditor doesn't. + @Override public Object getCellEditorValue() { for(Map.Entry entry : enu.getAlternatives().entrySet()) { @@ -464,6 +479,7 @@ public Object getCellEditorValue() { } // Implement the one method defined by TableCellEditor. + @Override public Component getTableCellEditorComponent(final JTable table, final Object value, final boolean isSelected, diff --git a/boardcad/gui/jdk/StatusPanel.java b/boardcad/gui/jdk/StatusPanel.java index 6cbf5f6..2ba1e2a 100644 --- a/boardcad/gui/jdk/StatusPanel.java +++ b/boardcad/gui/jdk/StatusPanel.java @@ -7,7 +7,7 @@ import boardcad.i18n.LanguageResource; //=========================================================Status Panel -class StatusPanel extends JPanel +public class StatusPanel extends JPanel { private static final long serialVersionUID = 1L; // private UserInterface user_interface; diff --git a/boardcad/gui/jdk/TwoValuesInputDialog.java b/boardcad/gui/jdk/TwoValuesInputDialog.java index 3f84b71..85f6391 100644 --- a/boardcad/gui/jdk/TwoValuesInputDialog.java +++ b/boardcad/gui/jdk/TwoValuesInputDialog.java @@ -105,6 +105,7 @@ private JButton getOkButton() { OkButton.setBounds(new Rectangle(21, 139, 106, 25)); OkButton.setText(LanguageResource.getString("OKBUTTON_STR") ); OkButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); mWasCancelled = false; @@ -125,6 +126,7 @@ private JButton getCancelButton() { CancelButton.setBounds(new Rectangle(135, 139, 106, 25)); CancelButton.setText(LanguageResource.getString("CANCELBUTTON_STR") ); CancelButton.addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); } @@ -208,7 +210,7 @@ void setValue2(int value) case DOUBLE: return Double.parseDouble(val); case INTEGER: - return (double)Integer.parseInt(val); + return Integer.parseInt(val); } } @@ -224,7 +226,7 @@ void setValue2(int value) case DOUBLE: return Double.parseDouble(val); case INTEGER: - return (double)Integer.parseInt(val); + return Integer.parseInt(val); } } diff --git a/boardcad/gui/jdk/WeightCalculatorDialog.java b/boardcad/gui/jdk/WeightCalculatorDialog.java index cbc1689..7c850e9 100644 --- a/boardcad/gui/jdk/WeightCalculatorDialog.java +++ b/boardcad/gui/jdk/WeightCalculatorDialog.java @@ -4,10 +4,11 @@ import java.awt.Dimension; import java.awt.GridBagLayout; import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.geom.Point2D; import javax.swing.BorderFactory; -import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; @@ -17,7 +18,6 @@ import javax.vecmath.Point3d; import board.BezierBoard; - import cadcore.*; import boardcad.i18n.LanguageResource; @@ -26,7 +26,6 @@ public class WeightCalculatorDialog extends JDialog { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; - private JButton mCalcButton = null; private JLabel mStringerWidthLabel = null; private JLabel mStringerDensityLabel = null; private JLabel mFoamDensityLabel = null; @@ -91,6 +90,9 @@ public class WeightCalculatorDialog extends JDialog { double mPlugsAndFinsWeight = 0.2; double mTotalBoardWeight = 0; + public interface Func { + public void func(); + } /** * This method initializes @@ -164,7 +166,7 @@ void updateAll() * */ private void initialize() { - this.setSize(new Dimension(465, 437)); + this.setSize(new Dimension(465, 400)); this.setResizable(false); this.setModal(true); this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); @@ -215,7 +217,6 @@ private JPanel getJContentPane() { jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); - jContentPane.add(getMCalcButton(), null); jContentPane.add(mStringerWidthLabel, null); jContentPane.add(mStringerDensityLabel, null); jContentPane.add(mFoamDensityLabel, null); @@ -257,25 +258,6 @@ private JPanel getJContentPane() { return jContentPane; } - /** - * This method initializes mCalcButton - * - * @return javax.swing.JButton - */ - private JButton getMCalcButton() { - if (mCalcButton == null) { - mCalcButton = new JButton(); - mCalcButton.setText(LanguageResource.getString("WeightCalculatorDialog.12")); //$NON-NLS-1$ - mCalcButton.setBounds(new Rectangle(30, 360, 391, 28)); - mCalcButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - updateTotalWeight(); - } - }); - } - return mCalcButton; - } - /** * This method initializes mStringerWidthEdit * @@ -284,9 +266,10 @@ public void actionPerformed(java.awt.event.ActionEvent e) { private JTextField getMStringerWidthEdit() { if (mStringerWidthEdit == null) { mStringerWidthEdit = new JTextField(); - mStringerWidthEdit.setBounds(new Rectangle(255, 15, 76, 20)); + mStringerWidthEdit.setBounds(new Rectangle(165, 15, 76, 20)); mStringerWidthEdit.setToolTipText(LanguageResource.getString("WeightCalculatorDialog.13")); //$NON-NLS-1$ - mStringerWidthEdit.addFocusListener(new java.awt.event.FocusListener() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mStringerWidth = UnitUtils.convertInputStringToInternalLengthUnit(mStringerWidthEdit.getText()); mStringerWidthEdit.setText(UnitUtils.convertLengthToCurrentUnit(mStringerWidth, false)); @@ -294,10 +277,11 @@ public void focusLost(java.awt.event.FocusEvent e) { updateStringerWeight(); updateFoamVolume(); updateFoamWeight(); - } - public void focusGained(java.awt.event.FocusEvent e) { - } - }); + }; + }; + mStringerWidthEdit.addFocusListener(adapt); + mStringerWidthEdit.addActionListener((e) -> {adapt.focusLost(null);}); + } return mStringerWidthEdit; } @@ -312,13 +296,16 @@ private JTextField getMStringerDensity() { mStringerDensityEdit = new JTextField(); mStringerDensityEdit.setBounds(new Rectangle(255, 45, 76, 20)); mStringerDensityEdit.setToolTipText(LanguageResource.getString("WeightCalculatorDialog.14")); //$NON-NLS-1$ - mStringerDensityEdit.addFocusListener(new java.awt.event.FocusAdapter() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mStringerDensity = UnitUtils.convertInputStringToInternalDensityUnit(mStringerDensityEdit.getText()); mStringerDensityEdit.setText(UnitUtils.convertDensityToCurrentUnit(mStringerDensity)); updateStringerWeight(); } - }); + }; + mStringerDensityEdit.addFocusListener(adapt); + mStringerDensityEdit.addActionListener((e) -> {adapt.focusLost(null);}); } return mStringerDensityEdit; } @@ -348,13 +335,16 @@ private JTextField getMFoamDensityEdit() { if (mFoamDensityEdit == null) { mFoamDensityEdit = new JTextField(); mFoamDensityEdit.setBounds(new Rectangle(255, 75, 76, 20)); - mFoamDensityEdit.addFocusListener(new java.awt.event.FocusAdapter() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mFoamDensity = UnitUtils.convertInputStringToInternalDensityUnit(mFoamDensityEdit.getText()); mFoamDensityEdit.setText(UnitUtils.convertDensityToCurrentUnit(mFoamDensity)); updateFoamWeight(); } - }); + }; + mFoamDensityEdit.addFocusListener(adapt); + mFoamDensityEdit.addActionListener((e) -> {adapt.focusLost(null);}); } return mFoamDensityEdit; } @@ -368,7 +358,8 @@ private JTextField getMDeckGlassEdit() { if (mDeckGlassEdit == null) { mDeckGlassEdit = new JTextField(); mDeckGlassEdit.setBounds(new Rectangle(255, 105, 76, 20)); - mDeckGlassEdit.addFocusListener(new java.awt.event.FocusAdapter() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mDeckGlassUnitWeight = UnitUtils.convertInputStringToInternalWeightUnit(mDeckGlassEdit.getText()); mDeckGlassEdit.setText(UnitUtils.convertWeightToCurrentUnit(mDeckGlassUnitWeight, true)); @@ -376,7 +367,9 @@ public void focusLost(java.awt.event.FocusEvent e) { updateTotalGlassWeight(); updateResinWeight(); } - }); + }; + mDeckGlassEdit.addFocusListener(adapt); + mDeckGlassEdit.addActionListener((e) -> {adapt.focusLost(null);}); } return mDeckGlassEdit; } @@ -390,7 +383,8 @@ private JTextField getMDeckLapWidthEdit() { if (mDeckLapWidthEdit == null) { mDeckLapWidthEdit = new JTextField(); mDeckLapWidthEdit.setBounds(new Rectangle(255, 135, 76, 20)); - mDeckLapWidthEdit.addFocusListener(new java.awt.event.FocusAdapter() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mDeckLapWidth = UnitUtils.convertInputStringToInternalLengthUnit(mDeckLapWidthEdit.getText()); mDeckLapWidthEdit.setText(UnitUtils.convertLengthToCurrentUnit(mDeckLapWidth, true)); @@ -399,8 +393,10 @@ public void focusLost(java.awt.event.FocusEvent e) { updateTotalGlassWeight(); updateResinWeight(); } - }); - } + }; + mDeckLapWidthEdit.addFocusListener(adapt); + mDeckLapWidthEdit.addActionListener((e) -> {adapt.focusLost(null);}); + } return mDeckLapWidthEdit; } @@ -413,7 +409,8 @@ private JTextField getMBottomGlassEdit() { if (mBottomGlassEdit == null) { mBottomGlassEdit = new JTextField(); mBottomGlassEdit.setBounds(new Rectangle(255, 165, 76, 20)); - mBottomGlassEdit.addFocusListener(new java.awt.event.FocusAdapter() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mBottomGlassUnitWeight = UnitUtils.convertInputStringToInternalWeightUnit(mBottomGlassEdit.getText()); mBottomGlassEdit.setText(UnitUtils.convertWeightToCurrentUnit(mBottomGlassUnitWeight, true)); @@ -421,7 +418,9 @@ public void focusLost(java.awt.event.FocusEvent e) { updateTotalGlassWeight(); updateResinWeight(); } - }); + }; + mBottomGlassEdit.addFocusListener(adapt); + mBottomGlassEdit.addActionListener((e) -> {adapt.focusLost(null);}); } return mBottomGlassEdit; } @@ -435,7 +434,8 @@ private JTextField getMBottomLapWidth() { if (mBottomLapWidthEdit == null) { mBottomLapWidthEdit = new JTextField(); mBottomLapWidthEdit.setBounds(new Rectangle(255, 195, 76, 20)); - mBottomLapWidthEdit.addFocusListener(new java.awt.event.FocusAdapter() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mBottomLapWidth = UnitUtils.convertInputStringToInternalLengthUnit(mBottomLapWidthEdit.getText()); mBottomLapWidthEdit.setText(UnitUtils.convertLengthToCurrentUnit(mBottomLapWidth, true)); @@ -444,7 +444,9 @@ public void focusLost(java.awt.event.FocusEvent e) { updateTotalGlassWeight(); updateResinWeight(); } - }); + }; + mBottomLapWidthEdit.addFocusListener(adapt); + mBottomLapWidthEdit.addActionListener((e) -> {adapt.focusLost(null);}); } return mBottomLapWidthEdit; } @@ -458,13 +460,16 @@ private JTextField getMResinRatioEdit() { if (mResinRatioEdit == null) { mResinRatioEdit = new JTextField(); mResinRatioEdit.setBounds(new Rectangle(255, 225, 76, 20)); - mResinRatioEdit.addFocusListener(new java.awt.event.FocusAdapter() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mResinRatio = Double.valueOf(mResinRatioEdit.getText()); mResinRatioEdit.setText(Double.toString(mResinRatio)); updateResinWeight(); } - }); + }; + mResinRatioEdit.addFocusListener(adapt); + mResinRatioEdit.addActionListener((e) -> {adapt.focusLost(null);}); } return mResinRatioEdit; } @@ -479,12 +484,17 @@ private JTextField getMHotcoatWeightEdit() { mHotcoatWeightEdit = new JTextField(); mHotcoatWeightEdit.setBounds(new Rectangle(345, 255, 76, 20)); mHotcoatWeightEdit.setToolTipText(LanguageResource.getString("WeightCalculatorDialog.15")); //$NON-NLS-1$ - mHotcoatWeightEdit.addFocusListener(new java.awt.event.FocusAdapter() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mHotcoatWeight = UnitUtils.convertInputStringToInternalWeightUnit(mHotcoatWeightEdit.getText()); mHotcoatWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mHotcoatWeight, true)); + + updateTotalWeight(); } - }); + }; + mHotcoatWeightEdit.addFocusListener(adapt); + mHotcoatWeightEdit.addActionListener((e) -> {adapt.focusLost(null);}); } return mHotcoatWeightEdit; } @@ -499,12 +509,17 @@ private JTextField getMPlugsAndFinsWeightEdit() { mPlugsAndFinsWeightEdit = new JTextField(); mPlugsAndFinsWeightEdit.setBounds(new Rectangle(345, 285, 76, 20)); mPlugsAndFinsWeightEdit.setToolTipText(LanguageResource.getString("WeightCalculatorDialog.16")); //$NON-NLS-1$ - mPlugsAndFinsWeightEdit.addFocusListener(new java.awt.event.FocusAdapter() { + java.awt.event.FocusAdapter adapt = new java.awt.event.FocusAdapter() { + @Override public void focusLost(java.awt.event.FocusEvent e) { mPlugsAndFinsWeight = UnitUtils.convertInputStringToInternalWeightUnit(mPlugsAndFinsWeightEdit.getText()); mPlugsAndFinsWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mPlugsAndFinsWeight, true)); + + updateTotalWeight(); } - }); + }; + mPlugsAndFinsWeightEdit.addFocusListener(adapt); + mPlugsAndFinsWeightEdit.addActionListener((e) -> {adapt.focusLost(null);}); } return mPlugsAndFinsWeightEdit; } @@ -763,15 +778,17 @@ void calcFoamWeight() void calcDeckGlassArea() { - final BezierBoard brd = (BezierBoard)BoardCAD.getInstance().getCurrentBrd(); + final BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); if(brd == null || brd.isEmpty()) return; MathUtils.Function curveLenghtFunc = new MathUtils.Function(){ - public double f(final double x) + @Override + public double f(final double x) { MathUtils.FunctionXY deckFunc = new MathUtils.FunctionXY(){ - public Point2D.Double f(double s){ + @Override + public Point2D.Double f(double s){ Point3d point = AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(BoardCAD.getInstance().getCrossSectionInterpolationType()).getPointAt(brd,x,s,-90.0,90.0,true); return new Point2D.Double(point.y,point.z); } @@ -807,15 +824,17 @@ void calcDeckLapWeight() void calcBottomGlassArea() { - final BezierBoard brd = (BezierBoard)BoardCAD.getInstance().getCurrentBrd(); + final BezierBoard brd = BoardCAD.getInstance().getCurrentBrd(); if(brd == null || brd.isEmpty()) return; MathUtils.Function curveLenghtFunc = new MathUtils.Function(){ - public double f(final double x) + @Override + public double f(final double x) { MathUtils.FunctionXY BottomFunc = new MathUtils.FunctionXY(){ - public Point2D.Double f(double s){ + @Override + public Point2D.Double f(double s){ Point3d point = AbstractBezierBoardSurfaceModel.getBezierBoardSurfaceModel(BoardCAD.getInstance().getCrossSectionInterpolationType()).getPointAt(brd,x,s,90.0,360.0,true); return new Point2D.Double(point.y,point.z); } @@ -870,6 +889,8 @@ void updateStringerVolume() calcStringerVolume(); mStringerVolumeEdit.setText(UnitUtils.convertVolumeToCurrentUnit(mStringerVolume)); + + updateTotalWeight(); } void updateStringerWeight() @@ -877,6 +898,8 @@ void updateStringerWeight() calcStringerWeight(); mStringerWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mStringerWeight,false)); + + updateTotalWeight(); } void updateFoamVolume() @@ -884,6 +907,8 @@ void updateFoamVolume() calcFoamVolume(); mFoamVolumeEdit.setText(UnitUtils.convertVolumeToCurrentUnit(mFoamVolume)); + + updateTotalWeight(); } void updateFoamWeight() @@ -891,6 +916,8 @@ void updateFoamWeight() calcFoamWeight(); mFoamWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mFoamWeight,false)); + + updateTotalWeight(); } void updateDeckGlassArea() @@ -898,6 +925,8 @@ void updateDeckGlassArea() calcDeckGlassArea(); mDeckAreaEdit.setText(UnitUtils.convertAreaToCurrentUnit(mDeckGlassArea)); + + updateTotalWeight(); } void updateDeckGlassWeight() @@ -905,6 +934,8 @@ void updateDeckGlassWeight() calcDeckGlassWeight(); mDeckGlassWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mDeckGlassWeight,false)); + + updateTotalWeight(); } void updateDeckLapArea() @@ -912,6 +943,8 @@ void updateDeckLapArea() calcDeckLapArea(); mDeckLapAreaEdit.setText(UnitUtils.convertAreaToCurrentUnit(mDeckLapArea)); + + updateTotalWeight(); } void updateDeckLapWeight() @@ -919,12 +952,16 @@ void updateDeckLapWeight() calcDeckLapWeight(); mDeckLapWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mDeckLapWeight,false)); + + updateTotalWeight(); } void updateBottomGlassArea() { calcBottomGlassArea(); mBottomAreaEdit.setText(UnitUtils.convertAreaToCurrentUnit(mBottomGlassArea)); + + updateTotalWeight(); } void updateBottomGlassWeight() @@ -932,6 +969,8 @@ void updateBottomGlassWeight() calcBottomGlassWeight(); mBottomGlassWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mBottomGlassWeight,false)); + + updateTotalWeight(); } void updateBottomLapArea() @@ -939,6 +978,8 @@ void updateBottomLapArea() calcBottomLapArea(); mBottomLapAreaEdit.setText(UnitUtils.convertAreaToCurrentUnit(mBottomLapArea)); + + updateTotalWeight(); } void updateBottomLapWeight() @@ -946,6 +987,8 @@ void updateBottomLapWeight() calcBottomLapWeight(); mBottomLapWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mBottomLapWeight,false)); + + updateTotalWeight(); } void updateTotalGlassWeight() @@ -953,6 +996,8 @@ void updateTotalGlassWeight() calcTotalGlassWeight(); mGlassWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mTotalGlassWeight,false)); + + updateTotalWeight(); } void updateResinWeight() @@ -960,6 +1005,8 @@ void updateResinWeight() calcResinWeight(); mResinWeightEdit.setText(UnitUtils.convertWeightToCurrentUnit(mResinWeight,false)); + + updateTotalWeight(); } void updateTotalWeight() diff --git a/boardcad/i18n/LanguageResource.properties b/boardcad/i18n/LanguageResource.properties index cb8cced..2c25aa1 100644 --- a/boardcad/i18n/LanguageResource.properties +++ b/boardcad/i18n/LanguageResource.properties @@ -831,7 +831,7 @@ BLANKVERTICALOFFSET_STR=Blank vertical offset OUTLINECUTTINGSPEED_STR=Outline cutting speed -LENGTHWISERESOLUTION_STR=lengthwise resolution +LENGTHWISERESOLUTION_STR=Lengthwise resolution CONTROLCATEGORY_STR=Control BEFOREDECKCUT_STR=Before deck cut DECKSTARTPOS_STR=Deck start at @@ -864,4 +864,40 @@ UNITKILOGRAMSPRMETERSQUARED_STR= kgm SHOWMOMENTOFINERTIA_STR=Show moment of inertia USEFILL_STR=Use fill -ADDITIONALTHICKNESS_STR=Additional thickness \ No newline at end of file +ADDITIONALTHICKNESS_STR=Additional thickness +HWSSTRINGERTITLE_STR=Hollow wood surfboard - Stringer + +HWSPARAMETERSCATEGORY_STR=Hollow wood surfboard parameters +HWSFRAMETHICKNESS_STR=Frame thickness +HWSWEBBING_STR=Webbing +HWSNOSEOFFSET_STR=Nose offset +HWSTAILOFFSET_STR=Tail offset +HWSDISTANCEFROMRAIL_STR=Distance from rail +JOGHEIGHT_STR=Jog height +JOGSPEED_STR=Jog speed +SINKSPEED_STR=Sink speed +CUTDEPTH_STR=Cut depth +CUTSPEED_STR=Cut speed + +GCODEHWSSTRINGER_STR=HWS Stringer +GCODEHWSRIBS_STR=HWS Ribs +GCODEHWSRIBSTITLE_STR=HWS Ribs +GCODEHWSRAIL_STR=HWS Rail +GCODEHWSRAILTITLE_STR=HWS Rail +GCODEHWSTAILPIECE_STR=HWS Tail +GCODEHWSTAILPIECETITLE_STR=HWS Tail +GCODEHWSNOSEPIECE_STR=HWS Nose +GCODEHWSNOSEPIECETITLE_STR=HWS Nose +GCODEHWSDECKTEMPLATE_STR=HWS Deck +GCODEHWSDECKTEMPLATETITLE_STR=HWS Deck +GCODEHWSBOTTOMTEMPLATE_STR=HWS Bottom +GCODEHWSBOTTOMTEMPLATETITLE_STR=HWS Bottom +GCODEHWSALLINTERNALTEMPLATES_STR=HWS Templates +GCODEHWSALLINTERNALTEMPLATESTITLE_STR=HWS Templates + +GCODEHWSMENU_STR=HWS +FILENAME_STR=Filename +HWSSKINTHICKNESS_STR=Skin thickness + +FITCURVECMD_STR=Fit curve to guidepoints +FITCONTROLPOINTS_STR=Fit curve to guidepoints \ No newline at end of file diff --git a/boardcad/i18n/LanguageResource_en.properties b/boardcad/i18n/LanguageResource_en.properties index 2c716bf..c46e01d 100644 --- a/boardcad/i18n/LanguageResource_en.properties +++ b/boardcad/i18n/LanguageResource_en.properties @@ -15,6 +15,13 @@ VOLUMEDISTRIBUTIONCOLOR_STR=Volume distribution color CENTEROFMASSCOLOR_STR=Center of mass color TANGENTCOLOR_STR=Tangent color +CONTROLPOINTCENTERCOLOR_STR=Center control point color +CONTROLPOINTTANGENT1COLOR_STR=Tangent1 control point color +CONTROLPOINTTANGENT2COLOR_STR=Tangent2 control point color +CONTROLPOINTCENTEROUTLINECOLOR_STR=Center control point outline color +CONTROLPOINTTANGENT1OUTLINECOLOR_STR=Tangent1 control point outline color +CONTROLPOINTTANGENT2OUTLINECOLOR_STR= Tangent2 control point outline color +UNSELECTEDCONTROLPOINTCOLOR_STR=Unselected control point color GUIDEPOINTCOLOR_STR=Guide point color BASELINECOLOR_STR=Base line color SIZE_AND_THICKNESS_STR=Size and thickness @@ -436,6 +443,7 @@ SPEEDCATEGORY_STR=Speed CUTTINGSPEED_STR=Cutting speed STRINGERCUTTINGSPEED_STR=Stringer cutting speed RAILCUTTINGSPEED_STR=Rail cutting speed +OUTLINECUTTINGSPEED_STR=Outline cutting speed NOSESPEEDREDUCTION_STR=Nose speed reduction TAILSPEEDREDUCTION_STR=Tail speed reduction NOSESPEEDREDUCTIONDISTANCE_STR=Nose speed reduction distance @@ -823,3 +831,75 @@ CLAMPOVERLAP_STR=Clamp overlap on stringer BLANKVERTICALOFFSET_STR=Blank vertical offset OUTLINECUTTINGSPEED_STR=Outline cutting speed + + +LENGTHWISERESOLUTION_STR=Lengthwise resolution +CONTROLCATEGORY_STR=Control +BEFOREDECKCUT_STR=Before deck cut +DECKSTARTPOS_STR=Deck start at +AFTERDECKCUT_STR=After deck cut +BEFOREBOTTOMCUT_STR=Before bottom cut +BOTTOMSTARTPOS_STR=Bottom start at +AFTERBOTTOMCUT_STR=After bottom cut + +BEFOREDECKCUTSCRIPT_STR=Before deck cut script +AFTERDECKCUTSCRIPT_STR=After deck cut script +BEFOREBOTTOMCUTSCRIPT_STR=Before bottom cut script +AFTERBOTTOMCUTSCRIPT_STR=After bottom cut script + +NOTHING_STR=Do nothing +HOME_STR=Home +HOMEREF_STR=Home Ref. +LIFTCLEAR_STR=Lift clear +HOMESCRIPT_STR=Script + +PREVIOUS_STR=Previous from deck cut + +DECKOUTLINETOAPEXDEPTH_STR=To rail apex +DECKOUTLINETOBOTTOMDEPTH_STR=To bottom +DECKOUTLINECUTDEPTH_STR=Deck outline cut depth + +SLIDINGINFOMOMENTOFINERTIA_STR=Moment of inertia: +UNITPOUNDSPRFOOTSQUARED_STR= lbft² +UNITKILOGRAMSPRMETERSQUARED_STR= kgm² + +SHOWMOMENTOFINERTIA_STR=Show moment of inertia +USEFILL_STR=Use fill + +ADDITIONALTHICKNESS_STR=Additional thickness +HWSSTRINGERTITLE_STR=Hollow wood surfboard - Stringer + +HWSPARAMETERSCATEGORY_STR=Hollow wood surfboard parameters +HWSFRAMETHICKNESS_STR=Frame thickness +HWSWEBBING_STR=Webbing +HWSNOSEOFFSET_STR=Nose offset +HWSTAILOFFSET_STR=Tail offset +HWSDISTANCEFROMRAIL_STR=Distance from rail +JOGHEIGHT_STR=Jog height +JOGSPEED_STR=Jog speed +SINKSPEED_STR=Sink speed +CUTDEPTH_STR=Cut depth +CUTSPEED_STR=Cut speed + +GCODEHWSSTRINGER_STR=HWS Stringer +GCODEHWSRIBS_STR=HWS Ribs +GCODEHWSRIBSTITLE_STR=HWS Ribs +GCODEHWSRAIL_STR=HWS Rail +GCODEHWSRAILTITLE_STR=HWS Rail +GCODEHWSTAILPIECE_STR=HWS Tail +GCODEHWSTAILPIECETITLE_STR=HWS Tail +GCODEHWSNOSEPIECE_STR=HWS Nose +GCODEHWSNOSEPIECETITLE_STR=HWS Nose +GCODEHWSDECKTEMPLATE_STR=HWS Deck +GCODEHWSDECKTEMPLATETITLE_STR=HWS Deck +GCODEHWSBOTTOMTEMPLATE_STR=HWS Bottom +GCODEHWSBOTTOMTEMPLATETITLE_STR=HWS Bottom +GCODEHWSALLINTERNALTEMPLATES_STR=HWS Templates +GCODEHWSALLINTERNALTEMPLATESTITLE_STR=HWS Templates + +GCODEHWSMENU_STR=HWS +FILENAME_STR=Filename +HWSSKINTHICKNESS_STR=Skin thickness + +FITCURVECMD_STR=Fit curve to guidepoints +FITCONTROLPOINTS_STR=Fit curve to guidepoints \ No newline at end of file diff --git a/boardcad/i18n/LanguageResource_en_US.properties b/boardcad/i18n/LanguageResource_en_US.properties index 84d139a..b754bea 100644 --- a/boardcad/i18n/LanguageResource_en_US.properties +++ b/boardcad/i18n/LanguageResource_en_US.properties @@ -823,3 +823,76 @@ CLAMPOVERLAP_STR=Clamp overlap on stringer BLANKVERTICALOFFSET_STR=Blank vertical offset OUTLINECUTTINGSPEED_STR=Outline cutting speed + + +LENGTHWISERESOLUTION_STR=Lengthwise resolution +CONTROLCATEGORY_STR=Control +BEFOREDECKCUT_STR=Before deck cut +DECKSTARTPOS_STR=Deck start at +AFTERDECKCUT_STR=After deck cut +BEFOREBOTTOMCUT_STR=Before bottom cut +BOTTOMSTARTPOS_STR=Bottom start at +AFTERBOTTOMCUT_STR=After bottom cut + +BEFOREDECKCUTSCRIPT_STR=Before deck cut script +AFTERDECKCUTSCRIPT_STR=After deck cut script +BEFOREBOTTOMCUTSCRIPT_STR=Before bottom cut script +AFTERBOTTOMCUTSCRIPT_STR=After bottom cut script + +NOTHING_STR=Do nothing +HOME_STR=Home +HOMEREF_STR=Home Ref. +LIFTCLEAR_STR=Lift clear +HOMESCRIPT_STR=Script + +PREVIOUS_STR=Previous from deck cut + +DECKOUTLINETOAPEXDEPTH_STR=To rail apex +DECKOUTLINETOBOTTOMDEPTH_STR=To bottom +DECKOUTLINECUTDEPTH_STR=Deck outline cut depth + +SLIDINGINFOMOMENTOFINERTIA_STR=Moment of inertia: +UNITPOUNDSPRFOOTSQUARED_STR= lbft² +UNITKILOGRAMSPRMETERSQUARED_STR= kgm² + +SHOWMOMENTOFINERTIA_STR=Show moment of inertia +USEFILL_STR=Use fill + +ADDITIONALTHICKNESS_STR=Additional thickness +HWSSTRINGERTITLE_STR=Hollow wood surfboard - Stringer + +HWSPARAMETERSCATEGORY_STR=Hollow wood surfboard parameters +HWSFRAMETHICKNESS_STR=Frame thickness +HWSWEBBING_STR=Webbing +HWSNOSEOFFSET_STR=Nose offset +HWSTAILOFFSET_STR=Tail offset +HWSDISTANCEFROMRAIL_STR=Distance from rail +JOGHEIGHT_STR=Jog height +JOGSPEED_STR=Jog speed +SINKSPEED_STR=Sink speed +CUTDEPTH_STR=Cut depth +CUTSPEED_STR=Cut speed + +GCODEHWSSTRINGER_STR=HWS Stringer +GCODEHWSRIBS_STR=HWS Ribs +GCODEHWSRIBSTITLE_STR=HWS Ribs +GCODEHWSRAIL_STR=HWS Rail +GCODEHWSRAILTITLE_STR=HWS Rail +GCODEHWSTAILPIECE_STR=HWS Tail +GCODEHWSTAILPIECETITLE_STR=HWS Tail +GCODEHWSNOSEPIECE_STR=HWS Nose +GCODEHWSNOSEPIECETITLE_STR=HWS Nose +GCODEHWSDECKTEMPLATE_STR=HWS Deck +GCODEHWSDECKTEMPLATETITLE_STR=HWS Deck +GCODEHWSBOTTOMTEMPLATE_STR=HWS Bottom +GCODEHWSBOTTOMTEMPLATETITLE_STR=HWS Bottom +GCODEHWSALLINTERNALTEMPLATES_STR=HWS Templates +GCODEHWSALLINTERNALTEMPLATESTITLE_STR=HWS Templates + + +GCODEHWSMENU_STR=HWS +FILENAME_STR=Filename +HWSSKINTHICKNESS_STR=Skin thickness + +FITCURVECMD_STR=Fit curve to guidepoints +FITCONTROLPOINTS_STR=Fit curve to guidepoints \ No newline at end of file diff --git a/boardcad/i18n/LanguageResource_es.properties b/boardcad/i18n/LanguageResource_es.properties index 0255fd1..0cc4881 100644 --- a/boardcad/i18n/LanguageResource_es.properties +++ b/boardcad/i18n/LanguageResource_es.properties @@ -218,6 +218,10 @@ NROFSEGMENT_STR=Nr de segmentos SETNROFPOINTS_STR=Establecer nr de puntos NROFPOINTS_STR=Número de puntos +#CONTEXT MENU +NURBSCONTROLPOINTXLOCKED_STR=X locked +NURBSCONTROLPOINTYLOCKED_STR=Y locked +NURBSCONTROLPOINTZLOCKED_STR=Z locked RENDERMENU_STR=Render RENDER_STR=Render modelo nurbs @@ -492,6 +496,20 @@ S3DTHICKNESSCURVENOTSUPPOSTEDMSG_STR=Archivos shape3D de curva de grosor no son S3DTHICKNESSCURVENOTSUPPOSTEDTITLE_STR=Aviso S3DREADERRORMSG_STR=Archivo Shape3D .s3d xml no se puede leer S3DREADERRORTITLE_STR=Error al cargar archivo .s3d xml +#ScaleBoardInptDialog.java +MAXWIDTHLABEL_STR=Width: +LENGTHLABEL_STR=Length: +MAXTHICKLABEL_STR=Thickness: +FACTORLABEL_STR=Factor: +FACTORSCALEMSG_STR=Enter a scale factor... +SCALEMSG_STR=Enter measurements +OVERCURVERADIOBUTTON_STR=Over Curve +STRAIGHTLINERADIOBUTTON_STR=Straight Line +SCALEFINSMSG=Scale fins position accordingly +SCALEFINSMSGDETAILED=Scale fins position according to the length and width scaling +CONSTRAINTPROPORTIONSMSG=Constrain Proportions +CONSTRAINTPROPORTIONSMSGDETAILED=If checked, when you change one of the dimensions, the two others change with the same factor +SCALEBOTTOMROCKERMSG=Scale bottom rocker accordingly #SettingsDialog.java SETTINGSTITLE_STR=Ajustes @@ -728,6 +746,48 @@ ROTATINGBOARD_STR=Rotating board system ROTATINGBOARDCUTTERTYPE_STR=Rotating board system cutter ROTATINGBOARDCUTTERTYPE_STR=Rotating board system cutter +PRINTHWSMENU_STR=Hollow wood surfboard +PRINTHWSSTRINGER_STR=Stringer +PRINTHWSRIBS_STR=Ribs +PRINTHWSRAIL_STR=Rail +PRINTHWSTAILPIECE_STR=Tail piece +PRINTHWSNOSEPIECE_STR=Nose piece +PRINTHWSDECKTEMPLATE_STR=Deck template +PRINTHWSBOTTOMTEMPLATE_STR=Bottom template + +IMPORTBEZIERPROFILE_STR=Profile +IMPORTBEZIERCROSSSECTION_STR=Cross section + +CANCEL_STR=Cancel + +CUTTER_SCALE_X=Scale X +CUTTER_SCALE_Y=Scale Y +CUTTER_SCALE_Z=Scale Z +CUTTER_STL_FILENAME=Filename + +IMPORTBEZIERPROFILE_STR=Profile +IMPORTBEZIERCROSSSECTION_STR=Cross section + +SELECTEDCONTROLPOINTSIZE_STR=Selected control point size +SELECTEDCONTROLPOINTOUTLINETHICKNESS_STR=Selected control point outline thickness +UNSELECTEDCONTROLPOINTSIZE_STR=Unselected control point size +UNSELECTEDCONTROLPOINTOUTLINETHICKNESS_STR=Unselected control point outline thickness + +SELECTEDTANGENTCOLOR_STR=I think this is deprecated, pls check Haavard, Mocol. +SELECTEDCONTROLPOINTCENTERCOLOR_STR=Selected control point center color +SELECTEDCONTROLPOINTCENTEROUTLINECOLOR_STR=Selected control point center outline color +SELECTEDCONTROLPOINTTANGENT1COLOR_STR=Selected control point tangent 1 color +SELECTEDCONTROLPOINTTANGENT2COLOR_STR=Selected control point tangent 2 color +SELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR_STR=Selected control point tangent 1 outline color +SELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR_STR=Selected control point tangent 2 outline color + +UNSELECTEDTANGENTCOLOR_STR=I think this is deprecated, pls check Haavard, Mocol. +UNSELECTEDCONTROLPOINTCENTERCOLOR_STR=Unselected control point center color +UNSELECTEDCONTROLPOINTCENTEROUTLINECOLOR_STR=Unselected control point center outline color +UNSELECTEDCONTROLPOINTTANGENT1COLOR_STR=Unselected control point tangent 1 color +UNSELECTEDCONTROLPOINTTANGENT2COLOR_STR=Unselected control point tangent 2 color +UNSELECTEDCONTROLPOINTTANGENT1OUTLINECOLOR_STR=Unselected control point tangent 1 outline color +UNSELECTEDCONTROLPOINTTANGENT2OUTLINECOLOR_STR=Unselected control point tangent 2 outline color VOLUMEDISTRIBUTIONTHICKNESS_STR=Volume distribution thickness EXPORTBEZIERCROSSSECTIONASDXFSPLINE_STR=Bezier Cross-section as DXF Spline @@ -771,3 +831,75 @@ CLAMPOVERLAP_STR=Clamp overlap on stringer BLANKVERTICALOFFSET_STR=Blank vertical offset OUTLINECUTTINGSPEED_STR=Outline cutting speed + + +LENGTHWISERESOLUTION_STR=lengthwise resolution +CONTROLCATEGORY_STR=Control +BEFOREDECKCUT_STR=Before deck cut +DECKSTARTPOS_STR=Deck start at +AFTERDECKCUT_STR=After deck cut +BEFOREBOTTOMCUT_STR=Before bottom cut +BOTTOMSTARTPOS_STR=Bottom start at +AFTERBOTTOMCUT_STR=After bottom cut + +BEFOREDECKCUTSCRIPT_STR=Before deck cut script +AFTERDECKCUTSCRIPT_STR=After deck cut script +BEFOREBOTTOMCUTSCRIPT_STR=Before bottom cut script +AFTERBOTTOMCUTSCRIPT_STR=After bottom cut script + +NOTHING_STR=Do nothing +HOME_STR=Home +HOMEREF_STR=Home Ref. +LIFTCLEAR_STR=Lift clear +HOMESCRIPT_STR=Script + +PREVIOUS_STR=Previous from deck cut + +DECKOUTLINETOAPEXDEPTH_STR=To rail apex +DECKOUTLINETOBOTTOMDEPTH_STR=To bottom +DECKOUTLINECUTDEPTH_STR=Deck outline cut depth + +SLIDINGINFOMOMENTOFINERTIA_STR=Moment of inertia: +UNITPOUNDSPRFOOTSQUARED_STR= lbft² +UNITKILOGRAMSPRMETERSQUARED_STR= kgm² + +SHOWMOMENTOFINERTIA_STR=Show moment of inertia +USEFILL_STR=Use fill + +ADDITIONALTHICKNESS_STR=Additional thickness +HWSSTRINGERTITLE_STR=Hollow wood surfboard - Stringer + +HWSPARAMETERSCATEGORY_STR=Hollow wood surfboard parameters +HWSFRAMETHICKNESS_STR=Frame thickness +HWSWEBBING_STR=Webbing +HWSNOSEOFFSET_STR=Nose offset +HWSTAILOFFSET_STR=Tail offset +HWSDISTANCEFROMRAIL_STR=Distance from rail +JOGHEIGHT_STR=Jog height +JOGSPEED_STR=Jog speed +SINKSPEED_STR=Sink speed +CUTDEPTH_STR=Cut depth +CUTSPEED_STR=Cut speed + +GCODEHWSSTRINGER_STR=HWS Stringer +GCODEHWSRIBS_STR=HWS Ribs +GCODEHWSRIBSTITLE_STR=HWS Ribs +GCODEHWSRAIL_STR=HWS Rail +GCODEHWSRAILTITLE_STR=HWS Rail +GCODEHWSTAILPIECE_STR=HWS Tail +GCODEHWSTAILPIECETITLE_STR=HWS Tail +GCODEHWSNOSEPIECE_STR=HWS Nose +GCODEHWSNOSEPIECETITLE_STR=HWS Nose +GCODEHWSDECKTEMPLATE_STR=HWS Deck +GCODEHWSDECKTEMPLATETITLE_STR=HWS Deck +GCODEHWSBOTTOMTEMPLATE_STR=HWS Bottom +GCODEHWSBOTTOMTEMPLATETITLE_STR=HWS Bottom +GCODEHWSALLINTERNALTEMPLATES_STR=HWS Templates +GCODEHWSALLINTERNALTEMPLATESTITLE_STR=HWS Templates + +GCODEHWSMENU_STR=HWS +FILENAME_STR=Filename +HWSSKINTHICKNESS_STR=Skin thickness + +FITCURVECMD_STR=Fit curve to guidepoints +FITCONTROLPOINTS_STR=Fit curve to guidepoints \ No newline at end of file diff --git a/boardcad/i18n/LanguageResource_fr.properties b/boardcad/i18n/LanguageResource_fr.properties index 02f918f..55fa76a 100644 --- a/boardcad/i18n/LanguageResource_fr.properties +++ b/boardcad/i18n/LanguageResource_fr.properties @@ -745,3 +745,74 @@ CLAMPOVERLAP_STR=Clamp overlap on stringer BLANKVERTICALOFFSET_STR=Blank vertical offset OUTLINECUTTINGSPEED_STR=Outline cutting speed + +LENGTHWISERESOLUTION_STR=lengthwise resolution +CONTROLCATEGORY_STR=Control +BEFOREDECKCUT_STR=Before deck cut +DECKSTARTPOS_STR=Deck start at +AFTERDECKCUT_STR=After deck cut +BEFOREBOTTOMCUT_STR=Before bottom cut +BOTTOMSTARTPOS_STR=Bottom start at +AFTERBOTTOMCUT_STR=After bottom cut + +BEFOREDECKCUTSCRIPT_STR=Before deck cut script +AFTERDECKCUTSCRIPT_STR=After deck cut script +BEFOREBOTTOMCUTSCRIPT_STR=Before bottom cut script +AFTERBOTTOMCUTSCRIPT_STR=After bottom cut script + +NOTHING_STR=Do nothing +HOME_STR=Home +HOMEREF_STR=Home Ref. +LIFTCLEAR_STR=Lift clear +HOMESCRIPT_STR=Script + +PREVIOUS_STR=Previous from deck cut + +DECKOUTLINETOAPEXDEPTH_STR=To rail apex +DECKOUTLINETOBOTTOMDEPTH_STR=To bottom +DECKOUTLINECUTDEPTH_STR=Deck outline cut depth + +SLIDINGINFOMOMENTOFINERTIA_STR=Moment of inertia: +UNITPOUNDSPRFOOTSQUARED_STR= lbft² +UNITKILOGRAMSPRMETERSQUARED_STR= kgm² + +SHOWMOMENTOFINERTIA_STR=Show moment of inertia +USEFILL_STR=Use fill + +ADDITIONALTHICKNESS_STR=Additional thickness +HWSSTRINGERTITLE_STR=Hollow wood surfboard - Stringer + +HWSPARAMETERSCATEGORY_STR=Hollow wood surfboard parameters +HWSFRAMETHICKNESS_STR=Frame thickness +HWSWEBBING_STR=Webbing +HWSNOSEOFFSET_STR=Nose offset +HWSTAILOFFSET_STR=Tail offset +HWSDISTANCEFROMRAIL_STR=Distance from rail +JOGHEIGHT_STR=Jog height +JOGSPEED_STR=Jog speed +SINKSPEED_STR=Sink speed +CUTDEPTH_STR=Cut depth +CUTSPEED_STR=Cut speed + +GCODEHWSSTRINGER_STR=HWS Stringer +GCODEHWSRIBS_STR=HWS Ribs +GCODEHWSRIBSTITLE_STR=HWS Ribs +GCODEHWSRAIL_STR=HWS Rail +GCODEHWSRAILTITLE_STR=HWS Rail +GCODEHWSTAILPIECE_STR=HWS Tail +GCODEHWSTAILPIECETITLE_STR=HWS Tail +GCODEHWSNOSEPIECE_STR=HWS Nose +GCODEHWSNOSEPIECETITLE_STR=HWS Nose +GCODEHWSDECKTEMPLATE_STR=HWS Deck +GCODEHWSDECKTEMPLATETITLE_STR=HWS Deck +GCODEHWSBOTTOMTEMPLATE_STR=HWS Bottom +GCODEHWSBOTTOMTEMPLATETITLE_STR=HWS Bottom +GCODEHWSALLINTERNALTEMPLATES_STR=HWS Templates +GCODEHWSALLINTERNALTEMPLATESTITLE_STR=HWS Templates + +GCODEHWSMENU_STR=HWS +FILENAME_STR=Filename +HWSSKINTHICKNESS_STR=Skin thickness + +FITCURVECMD_STR=Fit curve to guidepoints +FITCONTROLPOINTS_STR=Fit curve to guidepoints \ No newline at end of file diff --git a/boardcad/i18n/LanguageResource_nl.properties b/boardcad/i18n/LanguageResource_nl.properties index 522c26a..69efdf7 100644 --- a/boardcad/i18n/LanguageResource_nl.properties +++ b/boardcad/i18n/LanguageResource_nl.properties @@ -755,3 +755,74 @@ CLAMPOVERLAP_STR=Clamp overlap on stringer BLANKVERTICALOFFSET_STR=Blank vertical offset OUTLINECUTTINGSPEED_STR=Outline cutting speed + +LENGTHWISERESOLUTION_STR=lengthwise resolution +CONTROLCATEGORY_STR=Control +BEFOREDECKCUT_STR=Before deck cut +DECKSTARTPOS_STR=Deck start at +AFTERDECKCUT_STR=After deck cut +BEFOREBOTTOMCUT_STR=Before bottom cut +BOTTOMSTARTPOS_STR=Bottom start at +AFTERBOTTOMCUT_STR=After bottom cut + +BEFOREDECKCUTSCRIPT_STR=Before deck cut script +AFTERDECKCUTSCRIPT_STR=After deck cut script +BEFOREBOTTOMCUTSCRIPT_STR=Before bottom cut script +AFTERBOTTOMCUTSCRIPT_STR=After bottom cut script + +NOTHING_STR=Do nothing +HOME_STR=Home +HOMEREF_STR=Home Ref. +LIFTCLEAR_STR=Lift clear +HOMESCRIPT_STR=Script + +PREVIOUS_STR=Previous from deck cut + +DECKOUTLINETOAPEXDEPTH_STR=To rail apex +DECKOUTLINETOBOTTOMDEPTH_STR=To bottom +DECKOUTLINECUTDEPTH_STR=Deck outline cut depth + +SLIDINGINFOMOMENTOFINERTIA_STR=Moment of inertia: +UNITPOUNDSPRFOOTSQUARED_STR= lbft² +UNITKILOGRAMSPRMETERSQUARED_STR= kgm² + +SHOWMOMENTOFINERTIA_STR=Show moment of inertia +USEFILL_STR=Use fill + +ADDITIONALTHICKNESS_STR=Additional thickness +HWSSTRINGERTITLE_STR=Hollow wood surfboard - Stringer + +HWSPARAMETERSCATEGORY_STR=Hollow wood surfboard parameters +HWSFRAMETHICKNESS_STR=Frame thickness +HWSWEBBING_STR=Webbing +HWSNOSEOFFSET_STR=Nose offset +HWSTAILOFFSET_STR=Tail offset +HWSDISTANCEFROMRAIL_STR=Distance from rail +JOGHEIGHT_STR=Jog height +JOGSPEED_STR=Jog speed +SINKSPEED_STR=Sink speed +CUTDEPTH_STR=Cut depth +CUTSPEED_STR=Cut speed + +GCODEHWSSTRINGER_STR=HWS Stringer +GCODEHWSRIBS_STR=HWS Ribs +GCODEHWSRIBSTITLE_STR=HWS Ribs +GCODEHWSRAIL_STR=HWS Rail +GCODEHWSRAILTITLE_STR=HWS Rail +GCODEHWSTAILPIECE_STR=HWS Tail +GCODEHWSTAILPIECETITLE_STR=HWS Tail +GCODEHWSNOSEPIECE_STR=HWS Nose +GCODEHWSNOSEPIECETITLE_STR=HWS Nose +GCODEHWSDECKTEMPLATE_STR=HWS Deck +GCODEHWSDECKTEMPLATETITLE_STR=HWS Deck +GCODEHWSBOTTOMTEMPLATE_STR=HWS Bottom +GCODEHWSBOTTOMTEMPLATETITLE_STR=HWS Bottom +GCODEHWSALLINTERNALTEMPLATES_STR=HWS Templates +GCODEHWSALLINTERNALTEMPLATESTITLE_STR=HWS Templates + +GCODEHWSMENU_STR=HWS +FILENAME_STR=Filename +HWSSKINTHICKNESS_STR=Skin thickness + +FITCURVECMD_STR=Fit curve to guidepoints +FITCONTROLPOINTS_STR=Fit curve to guidepoints \ No newline at end of file diff --git a/boardcad/i18n/LanguageResource_no.properties b/boardcad/i18n/LanguageResource_no.properties index 71c8aef..4622526 100644 --- a/boardcad/i18n/LanguageResource_no.properties +++ b/boardcad/i18n/LanguageResource_no.properties @@ -21,7 +21,7 @@ CONTROLPOINTCENTEROUTLINECOLOR_STR=Senter kontrollpunkt omriss farge CONTROLPOINTTANGENT1OUTLINECOLOR_STR=Tangent1 kontrollpunkt omriss farge CONTROLPOINTTANGENT2OUTLINECOLOR_STR= Tangent2 kontrollpunkt omriss farge UNSELECTEDCONTROLPOINTCOLOR_STR=inaktivt kontrollpunkt farge -GUIDEPOINTCOLOR_STR=Guide punkt farge +GUIDEPOINTCOLOR_STR=Guidepunkt farge BASELINECOLOR_STR=Bunnlinje farge SIZE_AND_THICKNESS_STR=Størrelse og tykkelse CONTROLPOINTSIZE_STR=Kontrollpunkt size @@ -769,3 +769,75 @@ CLAMPOVERLAP_STR=Clamp overlap on stringer BLANKVERTICALOFFSET_STR=Blank vertical offset OUTLINECUTTINGSPEED_STR=Outline cutting speed + + +LENGTHWISERESOLUTION_STR=lengthwise resolution +CONTROLCATEGORY_STR=Control +BEFOREDECKCUT_STR=Before deck cut +DECKSTARTPOS_STR=Deck start at +AFTERDECKCUT_STR=After deck cut +BEFOREBOTTOMCUT_STR=Before bottom cut +BOTTOMSTARTPOS_STR=Bottom start at +AFTERBOTTOMCUT_STR=After bottom cut + +BEFOREDECKCUTSCRIPT_STR=Before deck cut script +AFTERDECKCUTSCRIPT_STR=After deck cut script +BEFOREBOTTOMCUTSCRIPT_STR=Before bottom cut script +AFTERBOTTOMCUTSCRIPT_STR=After bottom cut script + +NOTHING_STR=Do nothing +HOME_STR=Home +HOMEREF_STR=Home Ref. +LIFTCLEAR_STR=Lift clear +HOMESCRIPT_STR=Script + +PREVIOUS_STR=Previous from deck cut + +DECKOUTLINETOAPEXDEPTH_STR=To rail apex +DECKOUTLINETOBOTTOMDEPTH_STR=To bottom +DECKOUTLINECUTDEPTH_STR=Deck outline cut depth + +SLIDINGINFOMOMENTOFINERTIA_STR=Moment of inertia: +UNITPOUNDSPRFOOTSQUARED_STR= lbft² +UNITKILOGRAMSPRMETERSQUARED_STR= kgm² + +SHOWMOMENTOFINERTIA_STR=Show moment of inertia +USEFILL_STR=Use fill + +ADDITIONALTHICKNESS_STR=Additional thickness +HWSSTRINGERTITLE_STR=Hollow wood surfboard - Stringer + +HWSPARAMETERSCATEGORY_STR=Hollow wood surfboard parameters +HWSFRAMETHICKNESS_STR=Frame thickness +HWSWEBBING_STR=Webbing +HWSNOSEOFFSET_STR=Nose offset +HWSTAILOFFSET_STR=Tail offset +HWSDISTANCEFROMRAIL_STR=Distance from rail +JOGHEIGHT_STR=Jog height +JOGSPEED_STR=Jog speed +SINKSPEED_STR=Sink speed +CUTDEPTH_STR=Cut depth +CUTSPEED_STR=Cut speed + +GCODEHWSSTRINGER_STR=HWS Stringer +GCODEHWSRIBS_STR=HWS Ribs +GCODEHWSRIBSTITLE_STR=HWS Ribs +GCODEHWSRAIL_STR=HWS Rail +GCODEHWSRAILTITLE_STR=HWS Rail +GCODEHWSTAILPIECE_STR=HWS Tail +GCODEHWSTAILPIECETITLE_STR=HWS Tail +GCODEHWSNOSEPIECE_STR=HWS Nose +GCODEHWSNOSEPIECETITLE_STR=HWS Nose +GCODEHWSDECKTEMPLATE_STR=HWS Deck +GCODEHWSDECKTEMPLATETITLE_STR=HWS Deck +GCODEHWSBOTTOMTEMPLATE_STR=HWS Bottom +GCODEHWSBOTTOMTEMPLATETITLE_STR=HWS Bottom +GCODEHWSALLINTERNALTEMPLATES_STR=HWS Templates +GCODEHWSALLINTERNALTEMPLATESTITLE_STR=HWS Templates + +GCODEHWSMENU_STR=HWS +FILENAME_STR=Filename +HWSSKINTHICKNESS_STR=Skin thickness + +FITCURVECMD_STR=Fit curve to guidepoints +FITCONTROLPOINTS_STR=Fit curve to guidepoints \ No newline at end of file diff --git a/boardcad/i18n/LanguageResource_pt.properties b/boardcad/i18n/LanguageResource_pt.properties index 9c2fbde..355d4b3 100644 --- a/boardcad/i18n/LanguageResource_pt.properties +++ b/boardcad/i18n/LanguageResource_pt.properties @@ -807,3 +807,75 @@ CLAMPOVERLAP_STR=Clamp overlap on stringer BLANKVERTICALOFFSET_STR=Blank vertical offset OUTLINECUTTINGSPEED_STR=Outline cutting speed + + +LENGTHWISERESOLUTION_STR=lengthwise resolution +CONTROLCATEGORY_STR=Control +BEFOREDECKCUT_STR=Before deck cut +DECKSTARTPOS_STR=Deck start at +AFTERDECKCUT_STR=After deck cut +BEFOREBOTTOMCUT_STR=Before bottom cut +BOTTOMSTARTPOS_STR=Bottom start at +AFTERBOTTOMCUT_STR=After bottom cut + +BEFOREDECKCUTSCRIPT_STR=Before deck cut script +AFTERDECKCUTSCRIPT_STR=After deck cut script +BEFOREBOTTOMCUTSCRIPT_STR=Before bottom cut script +AFTERBOTTOMCUTSCRIPT_STR=After bottom cut script + +NOTHING_STR=Do nothing +HOME_STR=Home +HOMEREF_STR=Home Ref. +LIFTCLEAR_STR=Lift clear +HOMESCRIPT_STR=Script + +PREVIOUS_STR=Previous from deck cut + +DECKOUTLINETOAPEXDEPTH_STR=To rail apex +DECKOUTLINETOBOTTOMDEPTH_STR=To bottom +DECKOUTLINECUTDEPTH_STR=Deck outline cut depth + +SLIDINGINFOMOMENTOFINERTIA_STR=Moment of inertia: +UNITPOUNDSPRFOOTSQUARED_STR= lbft² +UNITKILOGRAMSPRMETERSQUARED_STR= kgm² + +SHOWMOMENTOFINERTIA_STR=Show moment of inertia +USEFILL_STR=Use fill + +ADDITIONALTHICKNESS_STR=Additional thickness +HWSSTRINGERTITLE_STR=Hollow wood surfboard - Stringer + +HWSPARAMETERSCATEGORY_STR=Hollow wood surfboard parameters +HWSFRAMETHICKNESS_STR=Frame thickness +HWSWEBBING_STR=Webbing +HWSNOSEOFFSET_STR=Nose offset +HWSTAILOFFSET_STR=Tail offset +HWSDISTANCEFROMRAIL_STR=Distance from rail +JOGHEIGHT_STR=Jog height +JOGSPEED_STR=Jog speed +SINKSPEED_STR=Sink speed +CUTDEPTH_STR=Cut depth +CUTSPEED_STR=Cut speed + +GCODEHWSSTRINGER_STR=HWS Stringer +GCODEHWSRIBS_STR=HWS Ribs +GCODEHWSRIBSTITLE_STR=HWS Ribs +GCODEHWSRAIL_STR=HWS Rail +GCODEHWSRAILTITLE_STR=HWS Rail +GCODEHWSTAILPIECE_STR=HWS Tail +GCODEHWSTAILPIECETITLE_STR=HWS Tail +GCODEHWSNOSEPIECE_STR=HWS Nose +GCODEHWSNOSEPIECETITLE_STR=HWS Nose +GCODEHWSDECKTEMPLATE_STR=HWS Deck +GCODEHWSDECKTEMPLATETITLE_STR=HWS Deck +GCODEHWSBOTTOMTEMPLATE_STR=HWS Bottom +GCODEHWSBOTTOMTEMPLATETITLE_STR=HWS Bottom +GCODEHWSALLINTERNALTEMPLATES_STR=HWS Templates +GCODEHWSALLINTERNALTEMPLATESTITLE_STR=HWS Templates + +GCODEHWSMENU_STR=HWS +FILENAME_STR=Filename +HWSSKINTHICKNESS_STR=Skin thickness + +FITCURVECMD_STR=Fit curve to guidepoints +FITCONTROLPOINTS_STR=Fit curve to guidepoints \ No newline at end of file diff --git a/boardcad/print/PrintBrd.java b/boardcad/print/PrintBrd.java index 33d29e7..d2ffd2f 100644 --- a/boardcad/print/PrintBrd.java +++ b/boardcad/print/PrintBrd.java @@ -452,7 +452,7 @@ int printOutline(PageFormat pageFormat, int pageIndex, Graphics g) -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 0.0, 72/2.54, mPrintGrid ,BoardCAD.getInstance().getCurrentBrd(),BoardCAD.getInstance().isPrintingControlPoints(),BoardCAD.getInstance().isPrintingFins(), false, false); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, mPrintGrid ,BoardCAD.getInstance().getCurrentBrd(),BoardCAD.getInstance().isPrintingControlPoints(),BoardCAD.getInstance().isPrintingFins(), false, false); } else { @@ -460,7 +460,7 @@ int printOutline(PageFormat pageFormat, int pageIndex, Graphics g) -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 0.0, 72/2.54, mPrintGrid ,BoardCAD.getInstance().getCurrentBrd(),BoardCAD.getInstance().isPrintingControlPoints(),BoardCAD.getInstance().isPrintingFins()); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, mPrintGrid ,BoardCAD.getInstance().getCurrentBrd(),BoardCAD.getInstance().isPrintingControlPoints(),BoardCAD.getInstance().isPrintingFins()); } return 0; @@ -515,13 +515,13 @@ int printSpinTemplate(PageFormat pageFormat, int pageIndex, Graphics g) { BezierBoardDrawUtil.printSpinTemplateOverCurve(new JavaDraw(g2d), -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 0.0, 72/2.54, mPrintGrid,brd,BoardCAD.getInstance().isPrintingControlPoints(),BoardCAD.getInstance().isPrintingFins()); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, mPrintGrid,brd,BoardCAD.getInstance().isPrintingControlPoints(),BoardCAD.getInstance().isPrintingFins()); } else { BezierBoardDrawUtil.printSpinTemplate(new JavaDraw(g2d), -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 0.0, 72/2.54, mPrintGrid,brd,BoardCAD.getInstance().isPrintingControlPoints(),BoardCAD.getInstance().isPrintingFins()); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, mPrintGrid,brd,BoardCAD.getInstance().isPrintingControlPoints(),BoardCAD.getInstance().isPrintingFins()); } return 0; @@ -569,7 +569,7 @@ int printProfile(PageFormat pageFormat, int pageIndex, Graphics g) -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(),BoardCAD.getInstance().isPrintingControlPoints()); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, true, BoardCAD.getInstance().getCurrentBrd(),BoardCAD.getInstance().isPrintingControlPoints()); return 0; } @@ -619,7 +619,7 @@ int printSlices(PageFormat pageFormat, int pageIndex, Graphics g) -pageFormat.getImageableWidth()*(pageIndex%widthPrSliceInPages), - -BoardCAD.getInstance().getCurrentBrd().getCrossSections().get((pageIndex/widthPrSliceInPages + 1)).getBezierSpline().getMinY()*(72/2.54), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), + -BoardCAD.getInstance().getCurrentBrd().getCrossSections().get((pageIndex/widthPrSliceInPages + 1)).getBezierSpline().getMinY()*(72/2.54), 72/2.54, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), pageIndex/widthPrSliceInPages + 1,BoardCAD.getInstance().isPrintingControlPoints()); return 0; @@ -698,7 +698,7 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) Line2D.Double line = new Line2D.Double(); JavaDraw jd = new JavaDraw(g2d); - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, scale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, scale, 0.0); g2d.setStroke(linestroke); g2d.setColor(Color.GRAY); @@ -733,8 +733,8 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) g2d.setTransform(savedTransform); Stroke stroke = new BasicStroke((float)(1.5/scale)); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, Color.BLACK, stroke, brd.getOutline(), BezierBoardDrawUtil.MirrorY, false); - BezierBoardDrawUtil.paintFins(jd, xm+5, currentY, scale, Color.BLACK, stroke, brd.getFins(), false,false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, 0.0, Color.BLACK, stroke, brd.getOutline(), BezierBoardDrawUtil.MirrorY, false); + BezierBoardDrawUtil.paintFins(jd, xm+5, currentY, scale, 0.0, Color.BLACK, stroke, brd.getFins(), false,false); currentY += (brd.getCenterWidth()/2)*scale + hgt + 5; @@ -762,7 +762,7 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) currentY += brd.getMaxRocker()*scale +10; - savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, scale); + savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, scale, 0.0); g2d.setStroke(linestroke); line.setLine(tailpos, -(tailThickness+tail1Rocker), tailpos, -tail1Rocker); @@ -784,8 +784,8 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) g2d.setTransform(savedTransform); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, Color.BLACK, stroke, brd.getDeck(), BezierBoardDrawUtil.FlipY, false); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, Color.BLACK, stroke, brd.getBottom(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, 0.0, Color.BLACK, stroke, brd.getDeck(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, 0.0, Color.BLACK, stroke, brd.getBottom(), BezierBoardDrawUtil.FlipY, false); currentY += hgt + 5; @@ -824,7 +824,7 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) currentY += brd.getThickness()*scale + 5; - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+width/2, currentY, 0.0, scale, Color.BLACK, linestroke, false, true, brd.getLength()/2, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+width/2, currentY, scale, 0.0, Color.BLACK, linestroke, false, true, brd.getLength()/2, brd); currentY += hgt; @@ -834,9 +834,9 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) currentY += hgt+10; - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((width/3)*1), currentY, 0.0, scale, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((width/3)*1), currentY, scale, 0.0, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((width/3)*2), currentY, 0.0, scale, Color.BLACK, linestroke, false, true, brd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((width/3)*2), currentY, scale, 0.0, Color.BLACK, linestroke, false, true, brd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); currentY += hgt; String tailString = LanguageResource.getString("TAIL_STR"); @@ -985,7 +985,7 @@ int printDetailedSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) Line2D.Double line = new Line2D.Double(); JavaDraw jd = new JavaDraw(g2d); - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, scale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, scale, 0.0); //Outline Crossection lines g2d.setStroke(linestroke); @@ -1021,8 +1021,8 @@ int printDetailedSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) g2d.setTransform(savedTransform); Stroke stroke = new BasicStroke((float)(1.5/scale)); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, Color.BLACK, stroke, brd.getOutline(), BezierBoardDrawUtil.MirrorY, false); - BezierBoardDrawUtil.paintFins(jd, xm+5, currentY, scale, Color.BLACK, stroke, brd.getFins(), false,false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, 0.0, Color.BLACK, stroke, brd.getOutline(), BezierBoardDrawUtil.MirrorY, false); + BezierBoardDrawUtil.paintFins(jd, xm+5, currentY, scale, 0.0, Color.BLACK, stroke, brd.getFins(), false, false); currentY += (brd.getCenterWidth()/2)*scale + hgt + 5; @@ -1068,7 +1068,7 @@ else if(i == 3) currentY += brd.getMaxRocker()*scale +10; - savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, scale); + savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, scale, 0.0); //Draw lines from numbers g2d.setStroke(linestroke); @@ -1091,8 +1091,8 @@ else if(i == 3) g2d.setTransform(savedTransform); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, Color.BLACK, stroke, brd.getDeck(), BezierBoardDrawUtil.FlipY, false); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, Color.BLACK, stroke, brd.getBottom(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, 0.0, Color.BLACK, stroke, brd.getDeck(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, scale, 0.0, Color.BLACK, stroke, brd.getBottom(), BezierBoardDrawUtil.FlipY, false); currentY += hgt + 5; @@ -1133,7 +1133,7 @@ else if(i == 3) currentY += brd.getThickness()*scale + 5; - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+width/2, currentY, Math.PI/2.0, scale, Color.BLACK, linestroke, false, true, brd.getLength()/2, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+width/2, currentY, scale, Math.PI/2.0, Color.BLACK, linestroke, false, true, brd.getLength()/2, brd); currentY += hgt; @@ -1144,9 +1144,9 @@ else if(i == 3) currentY += hgt+10; //Draw - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((width/3)*1), currentY, Math.PI/2.0, scale, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((width/3)*1), currentY, scale, Math.PI/2.0, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((width/3)*2), currentY, Math.PI/2.0, scale, Color.BLACK, linestroke, false, true, brd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((width/3)*2), currentY, scale, Math.PI/2.0, Color.BLACK, linestroke, false, true, brd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); currentY += hgt; String tailString = LanguageResource.getString("TAIL_STR"); diff --git a/boardcad/print/PrintChamberedWoodTemplate.java b/boardcad/print/PrintChamberedWoodTemplate.java index a9ae42b..06d1174 100644 --- a/boardcad/print/PrintChamberedWoodTemplate.java +++ b/boardcad/print/PrintChamberedWoodTemplate.java @@ -183,10 +183,10 @@ public void paintComponent(Graphics g) { paper.setImageableArea(0,0,dim.width, dim.height); format.setPaper(paper); - BezierBoardDrawUtil.printProfile(jd, border, dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), mPaintGrid,BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, 0.0, false, 0.0, 0.0); - printChambering(jd, border, dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()),BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, mPlankThickness, mDeckAndBottomMinimumThickness); - BezierBoardDrawUtil.printProfile(jd, new Color(200,200,200), 1.0, border, dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), false, BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter + mPlankThickness, 0.0, false, 0.0, 0.0); - printAlignmentMarks(jd, border, dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()),BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, mPlankThickness, mDeckAndBottomMinimumThickness); + BezierBoardDrawUtil.printProfile(jd, border, dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), 0.0, mPaintGrid,BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, 0.0, false, 0.0, 0.0); + printChambering(jd, border, dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), 0.0, BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, mPlankThickness, mDeckAndBottomMinimumThickness); + BezierBoardDrawUtil.printProfile(jd, new Color(200,200,200), 1.0, border, dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), 0.0, false, BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter + mPlankThickness, 0.0, false, 0.0, 0.0); + printAlignmentMarks(jd, border, dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), 0.0, BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, mPlankThickness, mDeckAndBottomMinimumThickness); } @@ -256,23 +256,23 @@ int printTemplate(PageFormat pageFormat, int pageIndex, Graphics g) BezierBoardDrawUtil.printProfile(jd, -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, mPaintGrid,BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, 0.0, false, 0.0, 0.0); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, mPaintGrid,BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, 0.0, false, 0.0, 0.0); if(mDrawChambering) { printChambering(jd, -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54,BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, mPlankThickness, mDeckAndBottomMinimumThickness); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, mPlankThickness, mDeckAndBottomMinimumThickness); BezierBoardDrawUtil.printProfile(jd, new Color(200,200,200), 1.0, -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, false, BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter + mPlankThickness, 0.0, false, 0.0, 0.0); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, false, BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter + mPlankThickness, 0.0, false, 0.0, 0.0); } if(mDrawAlignmentMarks) { printAlignmentMarks(jd, -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, mPlankThickness, mDeckAndBottomMinimumThickness); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, BoardCAD.getInstance().getCurrentBrd(), mOffsetFromCenter, mPlankThickness, mDeckAndBottomMinimumThickness); } return 0; @@ -281,7 +281,7 @@ int printTemplate(PageFormat pageFormat, int pageIndex, Graphics g) return -1; } - public static void printChambering(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double centerOffset, double plankThickness, double deckAndBottomMinimumThickness) + public static void printChambering(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, BezierBoard brd, double centerOffset, double plankThickness, double deckAndBottomMinimumThickness) { if(brd.isEmpty()) { return; @@ -289,7 +289,7 @@ public static void printChambering(AbstractDraw d, double offsetX, double offset System.out.printf("\nCHAMBERING\n"); - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, rotation); Stroke stroke = new BasicStroke((float)(2.0/scale)); d.setStroke(stroke); d.setColor(new Color(0,0,0)); @@ -370,7 +370,7 @@ public static void printChambering(AbstractDraw d, double offsetX, double offset d.setTransform(savedTransform); } - public static void printAlignmentMarks(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double centerOffset, double plankThickness, double deckAndBottomMinimumThickness) + public static void printAlignmentMarks(AbstractDraw d, double offsetX, double offsetY, double scale, double rotation, BezierBoard brd, double centerOffset, double plankThickness, double deckAndBottomMinimumThickness) { if(brd.isEmpty()) { return; @@ -378,7 +378,7 @@ public static void printAlignmentMarks(AbstractDraw d, double offsetX, double of System.out.printf("\nALIGNMENT MARKS\n"); - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, rotation); Stroke stroke = new BasicStroke((float)(1.0/scale)); d.setStroke(stroke); d.setColor(new Color(255,20,20)); @@ -395,8 +395,8 @@ public static void printAlignmentMarks(AbstractDraw d, double offsetX, double of double x = i*UnitUtils.FOOT; //Check if there is some template to draw upon - double deck = BezierBoardDrawUtil.getDeck(brd, x, y, deckAndBottomMinimumThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, x, y, deckAndBottomMinimumThickness); + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, x, y, deckAndBottomMinimumThickness); + double bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation(brd, x, y, deckAndBottomMinimumThickness); if(deck < bottom) { diff --git a/boardcad/print/PrintHollowWoodTemplates.java b/boardcad/print/PrintHollowWoodTemplates.java index 4e285d3..3c072f4 100644 --- a/boardcad/print/PrintHollowWoodTemplates.java +++ b/boardcad/print/PrintHollowWoodTemplates.java @@ -33,1281 +33,1610 @@ import javax.swing.BorderFactory; import javax.swing.JComponent; -import board.BezierBoard; +import org.ujmp.core.util.MathUtil; +import board.BezierBoard; import cadcore.BezierSpline; +import cadcore.MathUtils; import cadcore.UnitUtils; import boardcad.AbstractDraw; import boardcad.i18n.LanguageResource; - import boardcad.gui.jdk.*; public class PrintHollowWoodTemplates extends JComponent implements Printable { - static final long serialVersionUID=1L; + static final long serialVersionUID = 1L; - private PageFormat myPageFormat; - private PrinterJob myPrintJob; + private PageFormat myPageFormat; + private PrinterJob myPrintJob; - protected enum PrintState {NO_STATE, - PRINT_DECKSKIN_TEMPLATE, - PRINT_BOTTOMSKIN_TEMPLATE, - PRINT_RAIL_TEMPLATE, - PRINT_STRINGER_TEMPLATE, - PRINT_CROSSSECTION_TEMPLATES, - - - PRINT_NOSE_SECTION_TEMPLATE, - PRINT_TAIL_SECTION_TEMPLATE + protected enum PrintState { + NO_STATE, PRINT_DECKSKIN_TEMPLATE, PRINT_BOTTOMSKIN_TEMPLATE, PRINT_RAIL_TEMPLATE, PRINT_STRINGER_TEMPLATE, PRINT_CROSSSECTION_TEMPLATES, + + PRINT_NOSE_SECTION_TEMPLATE, PRINT_TAIL_SECTION_TEMPLATE }; public PrintState mCurrentPrintState; - + private Font mPrintFontSmall = new Font("Dialog", Font.PLAIN, 10); private double mSkinThickness = 0.5; private double mFrameThickness = 0.5; - private double mWebbing = 2.0; - private double mDistanceToRail = 3.5; + private double mWebbing = 1.5; + private double mDistanceToRail = 5.0; private double mTailOffset = 4.0; private double mNoseOffset = 4.0; private double mCrosssectionPos = 3.0; - /** Creates and initializes the ClickMe component. */ public PrintHollowWoodTemplates() { -// Hint at good sizes for this component. + // Hint at good sizes for this component. setPreferredSize(new Dimension(800, 600)); setMinimumSize(new Dimension(600, 480)); -// Request a black line around this component. + // Request a black line around this component. setBorder(BorderFactory.createLineBorder(Color.BLACK)); } + /** + * + * Paints the PrintBrd component. This method is + * + * invoked by the Swing component-painting system. + */ + public void paintComponent(Graphics g) { - public BezierBoard getBrd() { + /** + * + * Copy the graphics context so we can change it. + * + * Cast it to Graphics2D so we can use antialiasing. + */ - return BoardCAD.getInstance().getCurrentBrd(); + Graphics2D g2d = (Graphics2D) g.create(); + + // Turn on antialiasing, so painting is smooth. + + g2d.setRenderingHint( + + RenderingHints.KEY_ANTIALIASING, + + RenderingHints.VALUE_ANTIALIAS_ON); + + // Paint the background. + + g2d.setColor(Color.WHITE); + + g2d.fillRect(0, 0, getWidth() - 1, getHeight() - 1); + + Dimension dim = getSize(); + double border = 30; + + if (BoardCAD.getInstance().getCurrentBrd() == null + || BoardCAD.getInstance().getCurrentBrd().isEmpty()) + return; + + JavaDraw jd = new JavaDraw(g2d); + + // BezierBoardDrawUtil.printRailTemplate(jd, border, dim.height*offset2, + // (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), + // true,BoardCAD.getInstance().getCurrentBrd(), 5.0, 0.8, 8.0, 15.0, + // trues); + // BezierBoardDrawUtil.printDeckSkinTemplate(jd, border, + // dim.height*offset3, + // (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), + // true,BoardCAD.getInstance().getCurrentBrd(), 3.0); + // BezierBoardDrawUtil.printBottomSkinTemplate(jd, border, + // dim.height*4.0/5.0, + // (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), + // true,BoardCAD.getInstance().getCurrentBrd(), 3.0); + // BezierBoardDrawUtil.printCrossSection(jd, border, dim.height*offset2, + // (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), + // true,BoardCAD.getInstance().getCurrentBrd(), 50.0, 3.0, 0.8); + // BezierBoardDrawUtil.printCrossSection(jd, border, dim.height*offset2, + // (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), + // true,BoardCAD.getInstance().getCurrentBrd(), 50.0); + // BezierBoardDrawUtil.printProfile(jd, border, dim.height*offset2, + // (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), + // true,BoardCAD.getInstance().getCurrentBrd(), 0.0, 0.0, false); + // BezierBoardDrawUtil.printProfile(jd, border, dim.height*offset2, + // (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), + // true,BoardCAD.getInstance().getCurrentBrd(), 5.0, 0.0, false); + // BezierBoardDrawUtil.printProfile(jd, border, dim.height*offset2, + // (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), + // true,BoardCAD.getInstance().getCurrentBrd(), 20.0, 0.0, false); + + double offset1 = 1.0 / 5.0; + double offset2 = 2.0 / 5.0; + double offset3 = 3.0 / 5.0; + + double scale = (dim.width - (border * 2)) + / (BoardCAD.getInstance().getCurrentBrd().getLength()); + + + //Print stringer + printStringerDebug(jd, border, dim.height * offset3, + scale, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), 0.0, + mSkinThickness, false, mTailOffset, mNoseOffset); + + + /* + * //Print crosssections printCrossSections(jd, border + 200, + * dim.height*offset2, scale, 0.0, + * BoardCAD.getInstance().getCurrentBrd(), UnitUtils.INCH, + * mSkinThickness, mFrameThickness, mWebbing, false); + */ + + // Print rails + BezierBoardDrawUtil.printRailTemplate(jd, border, dim.height * offset3, + scale, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), + mDistanceToRail, mSkinThickness, mTailOffset, mNoseOffset, + false); + + printRailWebbing(jd, border, dim.height * offset3, scale, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset); + + printRailNotching(jd, border, dim.height * offset3, scale, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset); + + // TODO: Needs fixing + printRailTailPieceNotches(jd, border, dim.height * offset3, scale, + 0.0, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset); + /* + * printRailNosePieceNotches(jd, border, dim.height * offset3, scale, + * 0.0, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + * mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); + */ + + /* + * //Print tail piece printTailPiece(jd, border, dim.height * offset3, + * scale, 0.0, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + * mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset, + * false); + * + * printTailPiece(jd, border, dim.height * offset3, scale, 0.0, + * BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + * mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset, + * true); + * + * printTailPieceWebbing(jd, border, dim.height * offset3, scale, 0.0, + * BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + * mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset, + * false); + * + * printTailPieceWebbing(jd, border, dim.height * offset3, scale, 0.0, + * BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + * mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset, + * true); + */ + + /* + * //Print nose piece printNosePiece(jd, border+300, dim.height * + * offset3, scale, 0.0, BoardCAD.getInstance().getCurrentBrd(), + * mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, + * mTailOffset, mNoseOffset, false); + * + * printNosePiece(jd, border+300, dim.height * offset3, scale, 0.0, + * BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + * mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset, + * true); + * + * printNosePieceWebbing(jd, border+300, dim.height * offset3, scale, + * 0.0, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + * mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset, + * false); + * + * printNosePieceWebbing(jd, border+300, dim.height * offset3, scale, + * 0.0, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + * mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset, + * true); + */ } - - void initPrint() - { - myPrintJob = PrinterJob.getPrinterJob(); - myPageFormat = PrintBrd.getPageFormat(this, myPrintJob, BoardCAD.getInstance().getCurrentBrd().getMaxRocker()); - if(myPageFormat == null) - return; - - - myPrintJob.setPrintable(this,myPageFormat); - } + void printStringerDebug(AbstractDraw d, double offsetX, double offsetY, + double scale, double rotation, boolean paintGrid, BezierBoard brd, + double offset, double skinThickness, boolean flatten, + double tailOffset, double noseOffset) { + + // Print stringer + BezierBoardDrawUtil.printProfile(d, offsetX, offsetY, scale, rotation, + paintGrid, brd, offset, skinThickness, flatten, tailOffset, + noseOffset); + /* + * BezierBoardDrawUtil.printProfile(jd, border, dim.height*offset2, + * (dim. + * width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength + * ()), 0.0, true, BoardCAD.getInstance().getCurrentBrd(), 0.0, + * mSkinThickness, false, 0.0, 0.0); + * + * BezierBoardDrawUtil.printProfile(jd, border, dim.height*offset2, + * (dim. + * width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength + * ()), 0.0, true, BoardCAD.getInstance().getCurrentBrd(), 0.0, 0.0, + * false, 0.0, 0.0); + */ + printStringerWebbing(d, offsetX, offsetY, scale, rotation, brd, + mSkinThickness, mFrameThickness, mWebbing); - public void printStringerTemplate(double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) { + printStringerTailPieceCutOut(d, offsetX, offsetY, scale, rotation, brd, + mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, + mTailOffset, mNoseOffset); - initPrint(); + printStringerNosePieceCutOut(d, offsetX, offsetY, scale, rotation, brd, + mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, + mTailOffset, mNoseOffset); - try { + } - mSkinThickness = skinThickness; - mFrameThickness = frameThickness; - mWebbing = webbing; - mCurrentPrintState = PrintState.PRINT_STRINGER_TEMPLATE; + void printCrossSectionsDebug(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double railDistance, double skinThickness, double frameThickness, + double webbing, boolean mirror) { + double crossSectionPos = 1 * UnitUtils.FOOT; - myPrintJob.print(); + while (crossSectionPos < brd.getLength()) { + printCrossSection(d, offsetX, offsetY, scale, rotation, brd, + crossSectionPos, railDistance, skinThickness, + frameThickness, webbing, mirror); - } catch(PrinterException pe) { + printCrossSection(d, offsetX, offsetY, scale, rotation, brd, + crossSectionPos, railDistance, skinThickness, + frameThickness, webbing, mirror); - System.out.println("Error printing: " + pe); + printCrossSectionWebbing(d, offsetX, offsetY, scale, rotation, brd, + crossSectionPos, railDistance, skinThickness, + frameThickness, webbing, mirror); - } + printCrossSectionWebbing(d, offsetX, offsetY, scale, rotation, brd, + crossSectionPos, railDistance, skinThickness, + frameThickness, webbing, mirror); + crossSectionPos += UnitUtils.FOOT; + offsetY += scale * 10; } + } - public void printRailTemplate(double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) - { - initPrint(); + public BezierBoard getBrd() { - try { + return BoardCAD.getInstance().getCurrentBrd(); - mDistanceToRail = distanceFromRail; - mSkinThickness = skinThickness; - mFrameThickness = frameThickness; - mWebbing = webbing; - mTailOffset = tailOffset; - mNoseOffset = noseOffset; - mCurrentPrintState = PrintState.PRINT_RAIL_TEMPLATE; + } - myPrintJob.print(); + void initPrint() { + myPrintJob = PrinterJob.getPrinterJob(); - } catch(PrinterException pe) { + myPageFormat = PrintBrd.getPageFormat(this, myPrintJob, BoardCAD + .getInstance().getCurrentBrd().getMaxRocker()); + if (myPageFormat == null) + return; - System.out.println("Error printing: " + pe); + myPrintJob.setPrintable(this, myPageFormat); + } - } + public void printStringerTemplate(double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset) { - } + initPrint(); - public void printDeckSkinTemplate(double distanceFromRail, double tailOffset, double noseOffset) { + try { - initPrint(); + mSkinThickness = skinThickness; + mFrameThickness = frameThickness; + mWebbing = webbing; + mCurrentPrintState = PrintState.PRINT_STRINGER_TEMPLATE; - try { + myPrintJob.print(); - mDistanceToRail = distanceFromRail; - mTailOffset = tailOffset; - mNoseOffset = noseOffset; - mCurrentPrintState = PrintState.PRINT_DECKSKIN_TEMPLATE; + } catch (PrinterException pe) { - myPrintJob.print(); + System.out.println("Error printing: " + pe); + + } - } catch(PrinterException pe) { + } - System.out.println("Error printing: " + pe); + public void printRailTemplate(double distanceFromRail, + double skinThickness, double frameThickness, double webbing, + double tailOffset, double noseOffset) { + initPrint(); - } + try { + + mDistanceToRail = distanceFromRail; + mSkinThickness = skinThickness; + mFrameThickness = frameThickness; + mWebbing = webbing; + mTailOffset = tailOffset; + mNoseOffset = noseOffset; + mCurrentPrintState = PrintState.PRINT_RAIL_TEMPLATE; + + myPrintJob.print(); + + } catch (PrinterException pe) { + + System.out.println("Error printing: " + pe); } - public void printBottomSkinTemplate(double distanceFromRail, double tailOffset, double noseOffset) { + } - initPrint(); + public void printDeckSkinTemplate(double distanceFromRail, + double tailOffset, double noseOffset) { - try { + initPrint(); - mDistanceToRail = distanceFromRail; - mTailOffset = tailOffset; - mNoseOffset = noseOffset; - mCurrentPrintState = PrintState.PRINT_BOTTOMSKIN_TEMPLATE; + try { - myPrintJob.print(); + mDistanceToRail = distanceFromRail; + mTailOffset = tailOffset; + mNoseOffset = noseOffset; + mCurrentPrintState = PrintState.PRINT_DECKSKIN_TEMPLATE; - } catch(PrinterException pe) { + myPrintJob.print(); - System.out.println("Error printing: " + pe); + } catch (PrinterException pe) { - } + System.out.println("Error printing: " + pe); } - - public void printCrosssectionTemplates(double distanceFromRail, double skinThickness, double frameThickness, double webbing) { - - initPrint(); - - try { - - mDistanceToRail = distanceFromRail; - mSkinThickness = skinThickness; - mFrameThickness = frameThickness; - mWebbing = webbing; - mCurrentPrintState = PrintState.PRINT_CROSSSECTION_TEMPLATES; - - int nrOfCrossSections = (int)((BoardCAD.getInstance().getCurrentBrd().getLength() - 9.0*UnitUtils.INCH)/UnitUtils.FOOT); - - for(int i = 0; i < nrOfCrossSections; i++) - { - mCrosssectionPos = (i+1)* UnitUtils.FOOT; - myPrintJob.print(); - } - - } catch(PrinterException pe) { - - System.out.println("Error printing: " + pe); - - } - - } - public void printNoseTemplate(double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) { - - initPrint(); - - try { - - mDistanceToRail = distanceFromRail; - mSkinThickness = skinThickness; - mFrameThickness = frameThickness; - mWebbing = webbing; - mTailOffset = tailOffset; - mNoseOffset = noseOffset; - mCurrentPrintState = PrintState.PRINT_TAIL_SECTION_TEMPLATE; - - myPrintJob.print(); - - } catch(PrinterException pe) { - - System.out.println("Error printing: " + pe); - - } - - } + } + + public void printBottomSkinTemplate(double distanceFromRail, + double tailOffset, double noseOffset) { + + initPrint(); + + try { + + mDistanceToRail = distanceFromRail; + mTailOffset = tailOffset; + mNoseOffset = noseOffset; + mCurrentPrintState = PrintState.PRINT_BOTTOMSKIN_TEMPLATE; + + myPrintJob.print(); + + } catch (PrinterException pe) { + + System.out.println("Error printing: " + pe); - public void printTailTemplate(double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) { - - initPrint(); - - try { - - mDistanceToRail = distanceFromRail; - mSkinThickness = skinThickness; - mFrameThickness = frameThickness; - mWebbing = webbing; - mTailOffset = tailOffset; - mNoseOffset = noseOffset; - mCurrentPrintState = PrintState.PRINT_TAIL_SECTION_TEMPLATE; - - myPrintJob.print(); - - } catch(PrinterException pe) { - - System.out.println("Error printing: " + pe); - - } - } - /** - * Paints the PrintBrd component. This method is + } - * invoked by the Swing component-painting system. + public void printCrosssectionTemplates(double distanceFromRail, + double skinThickness, double frameThickness, double webbing) { - */ + initPrint(); - public void paintComponent(Graphics g) { + try { - /** + mDistanceToRail = distanceFromRail; + mSkinThickness = skinThickness; + mFrameThickness = frameThickness; + mWebbing = webbing; + mCurrentPrintState = PrintState.PRINT_CROSSSECTION_TEMPLATES; - * Copy the graphics context so we can change it. + int nrOfCrossSections = (int) ((BoardCAD.getInstance() + .getCurrentBrd().getLength() - 9.0 * UnitUtils.INCH) / UnitUtils.FOOT); - * Cast it to Graphics2D so we can use antialiasing. + for (int i = 0; i < nrOfCrossSections; i++) { + mCrosssectionPos = (i + 1) * UnitUtils.FOOT; + myPrintJob.print(); + } - */ + } catch (PrinterException pe) { - Graphics2D g2d = (Graphics2D)g.create(); + System.out.println("Error printing: " + pe); + } + } -// Turn on antialiasing, so painting is smooth. + public void printNoseTemplate(double distanceFromRail, + double skinThickness, double frameThickness, double webbing, + double tailOffset, double noseOffset) { - g2d.setRenderingHint( + initPrint(); - RenderingHints.KEY_ANTIALIASING, + try { - RenderingHints.VALUE_ANTIALIAS_ON); + mDistanceToRail = distanceFromRail; + mSkinThickness = skinThickness; + mFrameThickness = frameThickness; + mWebbing = webbing; + mTailOffset = tailOffset; + mNoseOffset = noseOffset; + mCurrentPrintState = PrintState.PRINT_NOSE_SECTION_TEMPLATE; + myPrintJob.print(); + } catch (PrinterException pe) { -// Paint the background. + System.out.println("Error printing: " + pe); - g2d.setColor(Color.WHITE); + } - g2d.fillRect(0, 0, getWidth() - 1, getHeight() - 1); + } - Dimension dim = getSize(); + public void printTailTemplate(double distanceFromRail, + double skinThickness, double frameThickness, double webbing, + double tailOffset, double noseOffset) { - double border = 10; + initPrint(); - if(BoardCAD.getInstance().getCurrentBrd() == null || BoardCAD.getInstance().getCurrentBrd().isEmpty()) - return; - - JavaDraw jd = new JavaDraw(g2d); + try { -// BezierBoardDrawUtil.printRailTemplate(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 5.0, 0.8, 8.0, 15.0, trues); -// BezierBoardDrawUtil.printDeckSkinTemplate(jd, border, dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 3.0); -// BezierBoardDrawUtil.printBottomSkinTemplate(jd, border, dim.height*4.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 3.0); -// BezierBoardDrawUtil.printCrossSection(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 50.0, 3.0, 0.8); -// BezierBoardDrawUtil.printCrossSection(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 50.0); -// BezierBoardDrawUtil.printProfile(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 0.0, 0.0, false); -// BezierBoardDrawUtil.printProfile(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 5.0, 0.0, false); -// BezierBoardDrawUtil.printProfile(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 20.0, 0.0, false); + mDistanceToRail = distanceFromRail; + mSkinThickness = skinThickness; + mFrameThickness = frameThickness; + mWebbing = webbing; + mTailOffset = tailOffset; + mNoseOffset = noseOffset; + mCurrentPrintState = PrintState.PRINT_TAIL_SECTION_TEMPLATE; - + myPrintJob.print(); + } catch (PrinterException pe) { - BezierBoardDrawUtil.printProfile(jd, - border, - dim.height*1.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true, BoardCAD.getInstance().getCurrentBrd(), 0.0, mSkinThickness, false, mTailOffset, mNoseOffset); -/* - BezierBoardDrawUtil.printProfile(jd, - border, - dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true, BoardCAD.getInstance().getCurrentBrd(), 0.0, mSkinThickness, false, 0.0, 0.0); - - BezierBoardDrawUtil.printProfile(jd, - border, - dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true, BoardCAD.getInstance().getCurrentBrd(), 0.0, 0.0, false, 0.0, 0.0); - - printStringerWebbing(jd, - border, - dim.height*1.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mSkinThickness, mFrameThickness, mWebbing); - */ - printStringerTailPieceCutOut(jd, - border, - dim.height*1.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); - - printStringerNosePieceCutOut(jd, - border, - dim.height*1.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); - -/* printCrossSection(jd, - border, - dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), 3*UnitUtils.FOOT, 2*UnitUtils.INCH, mSkinThickness, mFrameThickness, mWebbing, false); - - printCrossSection(jd, - border, - dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), 3*UnitUtils.FOOT, 2*UnitUtils.INCH, mSkinThickness, mFrameThickness, mWebbing, true); + System.out.println("Error printing: " + pe); - printCrossSectionWebbing(jd, - border, - dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), 3*UnitUtils.FOOT, 2*UnitUtils.INCH, mSkinThickness, mFrameThickness, mWebbing, false); + } - printCrossSectionWebbing(jd, - border, - dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), 3*UnitUtils.FOOT, 2*UnitUtils.INCH, mSkinThickness, mFrameThickness, mWebbing, true); + } + public int print(Graphics g, PageFormat pageFormat, int pageIndex) { - - BezierBoardDrawUtil.printRailTemplate(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mTailOffset, mNoseOffset, false); + /* + * DEBUG!!! + * + * if(pageIndex >=2) + * + * { + * + * isPrintingProfile = false; + * + * isPrintingOutline = false; + * + * return NO_SUCH_PAGE; + * + * } + */ - printRailWebbing(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); - - printRailNotching(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); + switch (mCurrentPrintState) { - printRailTailPieceNotches(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); + case PRINT_STRINGER_TEMPLATE: { + if (printStringerTemplate(pageFormat, pageIndex, g) == 0) + return PAGE_EXISTS; - printRailNosePieceNotches(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); - - - printTailPiece(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, false); + break; + } - printTailPiece(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, true); - - printTailPieceWebbing(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, false); + case PRINT_RAIL_TEMPLATE: { + if (printRailTemplate(pageFormat, pageIndex, g) == 0) + return PAGE_EXISTS; - printTailPieceWebbing(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, true); - - -*/ - printNosePiece(jd, - border, - dim.height*3.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset, false); -/* - printNosePiece(jd, - border, - dim.height*3.0/5.0, 3*(dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mNoseOffset, true); - - printNosePieceWebbing(jd, - border, - dim.height*3.0/5.0, 3*(dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mNoseOffset, false); - - printNosePieceWebbing(jd, - border, - dim.height*3.0/5.0, 3*(dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mNoseOffset, true); - */ -} + break; + } + case PRINT_DECKSKIN_TEMPLATE: { + if (printDeckSkinTemplate(pageFormat, pageIndex, g) == 0) + return PAGE_EXISTS; + break; + } - public int print(Graphics g, PageFormat pageFormat, int pageIndex) { + case PRINT_BOTTOMSKIN_TEMPLATE: { + if (printBottomSkinTemplate(pageFormat, pageIndex, g) == 0) + return PAGE_EXISTS; + break; + } + case PRINT_CROSSSECTION_TEMPLATES: { + if (printCrosssectionTemplate(pageFormat, pageIndex, g) == 0) + return PAGE_EXISTS; - - /*DEBUG!!! - - if(pageIndex >=2) - - { - - isPrintingProfile = false; - - isPrintingOutline = false; - - return NO_SUCH_PAGE; - - } - - */ - - switch(mCurrentPrintState) - { - - case PRINT_STRINGER_TEMPLATE: - { - if(printStringerTemplate(pageFormat, pageIndex, g) == 0) - return PAGE_EXISTS; - - break; - } - - case PRINT_RAIL_TEMPLATE: - { - if(printRailTemplate(pageFormat, pageIndex, g) == 0) - return PAGE_EXISTS; - - break; - } + break; + } + case PRINT_NOSE_SECTION_TEMPLATE: { + if (printNosePieceTemplate(pageFormat, pageIndex, g) == 0) + return PAGE_EXISTS; - case PRINT_DECKSKIN_TEMPLATE: - { - if(printDeckSkinTemplate(pageFormat, pageIndex, g) == 0) - return PAGE_EXISTS; - - break; - } + break; + } + case PRINT_TAIL_SECTION_TEMPLATE: { + if (printTailPieceTemplate(pageFormat, pageIndex, g) == 0) + return PAGE_EXISTS; - case PRINT_BOTTOMSKIN_TEMPLATE: - { - if(printBottomSkinTemplate(pageFormat, pageIndex, g) == 0) - return PAGE_EXISTS; - - break; - } - case PRINT_CROSSSECTION_TEMPLATES: - { - if(printCrosssectionTemplate(pageFormat, pageIndex, g) == 0) - return PAGE_EXISTS; - - break; - } + break; } - + } + return NO_SUCH_PAGE; - + } - - int printStringerTemplate(PageFormat pageFormat, int pageIndex, Graphics g) - { - System.out.printf("printStringerTemplate() Page width: %f, page height: %f, orientation: %s, Margins x:%f, y: %f\n", pageFormat.getImageableWidth(), pageFormat.getImageableHeight(), pageFormat.getOrientation() == PageFormat.LANDSCAPE?"Landscape":"Portrait", pageFormat.getImageableX(), pageFormat.getImageableY()); + + int printStringerTemplate(PageFormat pageFormat, int pageIndex, Graphics g) { + System.out + .printf("printStringerTemplate() Page width: %f, page height: %f, orientation: %s, Margins x:%f, y: %f\n", + pageFormat.getImageableWidth(), + pageFormat.getImageableHeight(), + pageFormat.getOrientation() == PageFormat.LANDSCAPE ? "Landscape" + : "Portrait", pageFormat.getImageableX(), + pageFormat.getImageableY()); double width = pageFormat.getImageableWidth(); double height = pageFormat.getImageableHeight(); - - int widthInPages = (int)(BoardCAD.getInstance().getCurrentBrd().getLength() - / ((width/72)*2.54) ) + 2; - - int heightInPages = (int)(BoardCAD.getInstance().getCurrentBrd().getMaxRocker() - / ((height/72)*2.54)) + 1; - + + int widthInPages = (int) (BoardCAD.getInstance().getCurrentBrd() + .getLength() / ((width / 72) * 2.54)) + 2; + + int heightInPages = (int) (BoardCAD.getInstance().getCurrentBrd() + .getMaxRocker() / ((height / 72) * 2.54)) + 1; + int xm = 0; int ym = 0; - xm = (int)pageFormat.getImageableX(); - ym = (int)pageFormat.getImageableY(); + xm = (int) pageFormat.getImageableX(); + ym = (int) pageFormat.getImageableY(); System.out.printf("Width: %f, Height: %f\n", width, height); - - if (pageIndex < widthInPages*heightInPages) { - - Graphics2D g2d = (Graphics2D)g; + + if (pageIndex < widthInPages * heightInPages) { + + Graphics2D g2d = (Graphics2D) g; g2d.setFont(mPrintFontSmall); - + FontMetrics metrics = g2d.getFontMetrics(mPrintFontSmall); // get the height of a line of text in this font and render context int hgt = metrics.getHeight(); - - String mModelString = LanguageResource.getString("BOARDFILE_STR") + BoardCAD.getInstance().getCurrentBrd().getFilename() + LanguageResource.getString("STRINGER_STR"); - String mRowString = LanguageResource.getString("ROW_STR")+ ((pageIndex%widthInPages)+1) + "/" + widthInPages; - String mColumnString = LanguageResource.getString("COLUMN_STR") + ((pageIndex/widthInPages)+1) + "/" + heightInPages; - + + String mModelString = LanguageResource.getString("BOARDFILE_STR") + + BoardCAD.getInstance().getCurrentBrd().getFilename() + + LanguageResource.getString("STRINGER_STR"); + String mRowString = LanguageResource.getString("ROW_STR") + + ((pageIndex % widthInPages) + 1) + "/" + widthInPages; + String mColumnString = LanguageResource.getString("COLUMN_STR") + + ((pageIndex / widthInPages) + 1) + "/" + heightInPages; + g2d.setColor(Color.BLACK); - //g2d.setStroke(new BasicStroke((float)(1.0/mScale))); - g.drawString(mModelString, xm, ym+(hgt+2)*1); - g.drawString(mRowString, xm, ym+(hgt+2)*2); - g.drawString(mColumnString, xm, ym+(hgt+2)*3); - - g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); - - BezierBoardDrawUtil.printProfile(new JavaDraw(g2d), - -width*(pageIndex%widthInPages), - -height*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), 0.0, mSkinThickness, false, mTailOffset, mNoseOffset); - - printStringerWebbing(new JavaDraw(g2d), - -width*(pageIndex%widthInPages), - -height*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mSkinThickness, mFrameThickness, mWebbing); - + // g2d.setStroke(new BasicStroke((float)(1.0/mScale))); + g.drawString(mModelString, xm, ym + (hgt + 2) * 1); + g.drawString(mRowString, xm, ym + (hgt + 2) * 2); + g.drawString(mColumnString, xm, ym + (hgt + 2) * 3); + + g2d.translate(pageFormat.getImageableX(), + pageFormat.getImageableY()); + + BezierBoardDrawUtil.printProfile(new JavaDraw(g2d), -width + * (pageIndex % widthInPages), -height + * (pageIndex / widthInPages), 72 / 2.54, 0.0, true, + BoardCAD.getInstance().getCurrentBrd(), 0.0, + mSkinThickness, false, mTailOffset, mNoseOffset); + + printStringerWebbing(new JavaDraw(g2d), -width + * (pageIndex % widthInPages), -height + * (pageIndex / widthInPages), 72 / 2.54, 0.0, BoardCAD + .getInstance().getCurrentBrd(), mSkinThickness, + mFrameThickness, mWebbing); + printStringerTailPieceCutOut(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset); printStringerNosePieceCutOut(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); - + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset); + return 0; } - + return -1; } - int printRailTemplate(PageFormat pageFormat, int pageIndex, Graphics g) - { - int widthInPages = (int)((BoardCAD.getInstance().getCurrentBrd().getLength() - (mNoseOffset + mTailOffset) + 7.5) - / ((pageFormat.getImageableWidth()/72)*2.54) ) + 1; - - int heightInPages = (int)(BoardCAD.getInstance().getCurrentBrd().getMaxRocker() - / ((pageFormat.getImageableHeight()/72)*2.54)) + 1; - - int xm = (int)pageFormat.getImageableX(); - int ym = (int)pageFormat.getImageableY(); - - if (pageIndex < widthInPages*heightInPages) { - - Graphics2D g2d = (Graphics2D)g; + int printRailTemplate(PageFormat pageFormat, int pageIndex, Graphics g) { + int widthInPages = (int) ((BoardCAD.getInstance().getCurrentBrd() + .getLength() + - (mNoseOffset + mTailOffset) + 7.5) / ((pageFormat + .getImageableWidth() / 72) * 2.54)) + 1; + + int heightInPages = (int) (BoardCAD.getInstance().getCurrentBrd() + .getMaxRocker() / ((pageFormat.getImageableHeight() / 72) * 2.54)) + 1; + + int xm = (int) pageFormat.getImageableX(); + int ym = (int) pageFormat.getImageableY(); + + if (pageIndex < widthInPages * heightInPages) { + + Graphics2D g2d = (Graphics2D) g; g2d.setFont(mPrintFontSmall); - + FontMetrics metrics = g2d.getFontMetrics(mPrintFontSmall); // get the height of a line of text in this font and render context int hgt = metrics.getHeight(); - - String mModelString = LanguageResource.getString("BOARDFILE_STR") + BoardCAD.getInstance().getCurrentBrd().getFilename() + " "+ LanguageResource.getString("PRINTHWSRAIL_STR"); - String mRowString = LanguageResource.getString("ROW_STR") + ((pageIndex%widthInPages)+1) + "/" + widthInPages; - String mColumnString = LanguageResource.getString("COLUMN_STR") + ((pageIndex/widthInPages)+1) + "/" + heightInPages; - + + String mModelString = LanguageResource.getString("BOARDFILE_STR") + + BoardCAD.getInstance().getCurrentBrd().getFilename() + + " " + LanguageResource.getString("PRINTHWSRAIL_STR"); + String mRowString = LanguageResource.getString("ROW_STR") + + ((pageIndex % widthInPages) + 1) + "/" + widthInPages; + String mColumnString = LanguageResource.getString("COLUMN_STR") + + ((pageIndex / widthInPages) + 1) + "/" + heightInPages; + g2d.setColor(Color.BLACK); - //g2d.setStroke(new BasicStroke((float)(1.0/mScale))); - g.drawString(mModelString, xm, ym+(hgt+2)*1); - g.drawString(mRowString, xm, ym+(hgt+2)*2); - g.drawString(mColumnString, xm, ym+(hgt+2)*3); - - g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); - - BezierBoardDrawUtil.printRailTemplate(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mTailOffset, mNoseOffset, false); + // g2d.setStroke(new BasicStroke((float)(1.0/mScale))); + g.drawString(mModelString, xm, ym + (hgt + 2) * 1); + g.drawString(mRowString, xm, ym + (hgt + 2) * 2); + g.drawString(mColumnString, xm, ym + (hgt + 2) * 3); + + g2d.translate(pageFormat.getImageableX(), + pageFormat.getImageableY()); - printRailWebbing(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); + BezierBoardDrawUtil.printRailTemplate(new JavaDraw(g2d), + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, true, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mTailOffset, mNoseOffset, false); + + printRailWebbing(new JavaDraw(g2d), -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset); printRailNotching(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset); printRailNosePieceNotches(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset); printRailTailPieceNotches(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, mTailOffset, mNoseOffset); + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset); return 0; } - + return -1; } - int printDeckSkinTemplate(PageFormat pageFormat, int pageIndex, Graphics g) - { - int widthInPages = (int)(BoardCAD.getInstance().getCurrentBrd().getLength() - / ((pageFormat.getImageableWidth()/72)*2.54) ) + 2; - - int heightInPages = (int)((BoardCAD.getInstance().getCurrentBrd().getMaxWidth()/2.0) - / ((pageFormat.getImageableHeight()/72)*2.54)) + 1; - - int xm = (int)pageFormat.getImageableX(); - int ym = (int)pageFormat.getImageableY(); - - if (pageIndex < widthInPages*heightInPages) { - - Graphics2D g2d = (Graphics2D)g; + int printDeckSkinTemplate(PageFormat pageFormat, int pageIndex, Graphics g) { + int widthInPages = (int) (BoardCAD.getInstance().getCurrentBrd() + .getLength() / ((pageFormat.getImageableWidth() / 72) * 2.54)) + 2; + + int heightInPages = (int) ((BoardCAD.getInstance().getCurrentBrd() + .getMaxWidth() / 2.0) / ((pageFormat.getImageableHeight() / 72) * 2.54)) + 1; + + int xm = (int) pageFormat.getImageableX(); + int ym = (int) pageFormat.getImageableY(); + + if (pageIndex < widthInPages * heightInPages) { + + Graphics2D g2d = (Graphics2D) g; g2d.setFont(mPrintFontSmall); - + FontMetrics metrics = g2d.getFontMetrics(mPrintFontSmall); // get the height of a line of text in this font and render context int hgt = metrics.getHeight(); - - String mModelString =LanguageResource.getString("BOARDFILE_STR") + BoardCAD.getInstance().getCurrentBrd().getFilename() + LanguageResource.getString("DECKSKINTEMPLATE_STR"); - String mRowString = LanguageResource.getString("ROW_STR") + ((pageIndex%widthInPages)+1) + "/" + widthInPages; - String mColumnString = LanguageResource.getString("COLUMN_STR") + ((pageIndex/widthInPages)+1) + "/" + heightInPages; - + + String mModelString = LanguageResource.getString("BOARDFILE_STR") + + BoardCAD.getInstance().getCurrentBrd().getFilename() + + LanguageResource.getString("DECKSKINTEMPLATE_STR"); + String mRowString = LanguageResource.getString("ROW_STR") + + ((pageIndex % widthInPages) + 1) + "/" + widthInPages; + String mColumnString = LanguageResource.getString("COLUMN_STR") + + ((pageIndex / widthInPages) + 1) + "/" + heightInPages; + g2d.setColor(Color.BLACK); - //g2d.setStroke(new BasicStroke((float)(1.0/mScale))); - g.drawString(mModelString, xm, ym+(hgt+2)*1); - g.drawString(mRowString, xm, ym+(hgt+2)*2); - g.drawString(mColumnString, xm, ym+(hgt+2)*3); - - g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); - - - + // g2d.setStroke(new BasicStroke((float)(1.0/mScale))); + g.drawString(mModelString, xm, ym + (hgt + 2) * 1); + g.drawString(mRowString, xm, ym + (hgt + 2) * 2); + g.drawString(mColumnString, xm, ym + (hgt + 2) * 3); + + g2d.translate(pageFormat.getImageableX(), + pageFormat.getImageableY()); + BezierBoardDrawUtil.printDeckSkinTemplate(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail); - + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, true, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail); + return 0; } - + return -1; } - - int printBottomSkinTemplate(PageFormat pageFormat, int pageIndex, Graphics g) - { - int widthInPages = (int)(BoardCAD.getInstance().getCurrentBrd().getLength() - / ((pageFormat.getImageableWidth()/72)*2.54) ) + 2; - - int heightInPages = (int)((BoardCAD.getInstance().getCurrentBrd().getMaxWidth()/2.0) - / ((pageFormat.getImageableHeight()/72)*2.54)) + 1; - - int xm = (int)pageFormat.getImageableX(); - int ym = (int)pageFormat.getImageableY(); - - if (pageIndex < widthInPages*heightInPages) { - - Graphics2D g2d = (Graphics2D)g; + + int printBottomSkinTemplate(PageFormat pageFormat, int pageIndex, Graphics g) { + int widthInPages = (int) (BoardCAD.getInstance().getCurrentBrd() + .getLength() / ((pageFormat.getImageableWidth() / 72) * 2.54)) + 2; + + int heightInPages = (int) ((BoardCAD.getInstance().getCurrentBrd() + .getMaxWidth() / 2.0) / ((pageFormat.getImageableHeight() / 72) * 2.54)) + 1; + + int xm = (int) pageFormat.getImageableX(); + int ym = (int) pageFormat.getImageableY(); + + if (pageIndex < widthInPages * heightInPages) { + + Graphics2D g2d = (Graphics2D) g; g2d.setFont(mPrintFontSmall); - + FontMetrics metrics = g2d.getFontMetrics(mPrintFontSmall); // get the height of a line of text in this font and render context int hgt = metrics.getHeight(); - - String mModelString = LanguageResource.getString("BOARDFILE_STR") + BoardCAD.getInstance().getCurrentBrd().getFilename() + LanguageResource.getString("BOTTOMSKIN_STR"); - String mRowString = LanguageResource.getString("ROW_STR")+ ((pageIndex%widthInPages)+1) + "/" + widthInPages; - String mColumnString = LanguageResource.getString("COLUMN_STR") + ((pageIndex/widthInPages)+1) + "/" + heightInPages; - + + String mModelString = LanguageResource.getString("BOARDFILE_STR") + + BoardCAD.getInstance().getCurrentBrd().getFilename() + + LanguageResource.getString("BOTTOMSKIN_STR"); + String mRowString = LanguageResource.getString("ROW_STR") + + ((pageIndex % widthInPages) + 1) + "/" + widthInPages; + String mColumnString = LanguageResource.getString("COLUMN_STR") + + ((pageIndex / widthInPages) + 1) + "/" + heightInPages; + g2d.setColor(Color.BLACK); - //g2d.setStroke(new BasicStroke((float)(1.0/mScale))); - g.drawString(mModelString, xm, ym+(hgt+2)*1); - g.drawString(mRowString, xm, ym+(hgt+2)*2); - g.drawString(mColumnString, xm, ym+(hgt+2)*3); - - g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); - - - + // g2d.setStroke(new BasicStroke((float)(1.0/mScale))); + g.drawString(mModelString, xm, ym + (hgt + 2) * 1); + g.drawString(mRowString, xm, ym + (hgt + 2) * 2); + g.drawString(mColumnString, xm, ym + (hgt + 2) * 3); + + g2d.translate(pageFormat.getImageableX(), + pageFormat.getImageableY()); + BezierBoardDrawUtil.printBottomSkinTemplate(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail); - + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, true, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail); + return 0; } - + return -1; } - int printCrosssectionTemplate(PageFormat pageFormat, int pageIndex, Graphics g) - { - int widthInPages = (int)(BoardCAD.getInstance().getCurrentBrd().getWidthAt(mCrosssectionPos)/2.0f - / ((pageFormat.getImageableWidth()/72)*2.54) ) + 1; - - int heightInPages = (int)((BoardCAD.getInstance().getCurrentBrd().getMaxWidth()/2.0) - / ((pageFormat.getImageableHeight()/72)*2.54)) + 1; - - int xm = (int)pageFormat.getImageableX(); - int ym = (int)pageFormat.getImageableY(); - - if (pageIndex < widthInPages*heightInPages) { - - Graphics2D g2d = (Graphics2D)g; + int printCrosssectionTemplate(PageFormat pageFormat, int pageIndex, + Graphics g) { + int widthInPages = (int) (BoardCAD.getInstance().getCurrentBrd() + .getWidthAt(mCrosssectionPos) / 2.0f / ((pageFormat + .getImageableWidth() / 72) * 2.54)) + 1; + + int heightInPages = (int) ((BoardCAD.getInstance().getCurrentBrd() + .getMaxWidth() / 2.0) / ((pageFormat.getImageableHeight() / 72) * 2.54)) + 1; + + int xm = (int) pageFormat.getImageableX(); + int ym = (int) pageFormat.getImageableY(); + + if (pageIndex < widthInPages * heightInPages) { + + Graphics2D g2d = (Graphics2D) g; g2d.setFont(mPrintFontSmall); - + FontMetrics metrics = g2d.getFontMetrics(mPrintFontSmall); // get the height of a line of text in this font and render context int hgt = metrics.getHeight(); - - String mModelString = LanguageResource.getString("BOARDFILE_STR") + BoardCAD.getInstance().getCurrentBrd().getFilename() + " " +LanguageResource.getString("CROSSECTION_STR"); - String mPosString = LanguageResource.getString("CROSSECTIONPOSITION_STR") + " " + UnitUtils.convertLengthToCurrentUnit(mCrosssectionPos, true); - String mRowString = LanguageResource.getString("ROW_STR")+ ((pageIndex%widthInPages)+1) + "/" + widthInPages; - String mColumnString = LanguageResource.getString("COLUMN_STR") + ((pageIndex/widthInPages)+1) + "/" + heightInPages; - + + String mModelString = LanguageResource.getString("BOARDFILE_STR") + + BoardCAD.getInstance().getCurrentBrd().getFilename() + + " " + LanguageResource.getString("CROSSECTION_STR"); + String mPosString = LanguageResource + .getString("CROSSECTIONPOSITION_STR") + + " " + + UnitUtils.convertLengthToCurrentUnit(mCrosssectionPos, + true); + String mRowString = LanguageResource.getString("ROW_STR") + + ((pageIndex % widthInPages) + 1) + "/" + widthInPages; + String mColumnString = LanguageResource.getString("COLUMN_STR") + + ((pageIndex / widthInPages) + 1) + "/" + heightInPages; + g2d.setColor(Color.BLACK); - //g2d.setStroke(new BasicStroke((float)(1.0/mScale))); - g.drawString(mModelString, xm, ym+(hgt+2)*1); - g.drawString(mPosString, xm, ym+(hgt+2)*2); - g.drawString(mRowString, xm, ym+(hgt+2)*3); - g.drawString(mColumnString, xm, ym+(hgt+2)*4); - - g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY() + UnitUtils.INCH*72); - + // g2d.setStroke(new BasicStroke((float)(1.0/mScale))); + g.drawString(mModelString, xm, ym + (hgt + 2) * 1); + g.drawString(mPosString, xm, ym + (hgt + 2) * 2); + g.drawString(mRowString, xm, ym + (hgt + 2) * 3); + g.drawString(mColumnString, xm, ym + (hgt + 2) * 4); + + g2d.translate(pageFormat.getImageableX(), + pageFormat.getImageableY() + UnitUtils.INCH * 72); + printCrossSection(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos, mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, false); - + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos, + mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, + false); + BezierBoardDrawUtil.printCrossSection(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos); - + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, true, + BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos); + printCrossSectionWebbing(new JavaDraw(g2d), - -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos, mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, false); + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos, + mDistanceToRail, mSkinThickness, mFrameThickness, mWebbing, + false); return 0; } - + return -1; } - - public static void printStringerWebbing(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double skinThickness, double frameThickness, double webbing) - { - if(brd.isEmpty()) { - return; + + int printNosePieceTemplate(PageFormat pageFormat, int pageIndex, Graphics g) { + int widthInPages = (int) (BoardCAD.getInstance().getCurrentBrd() + .getWidthAt(9.0 * UnitUtils.INCH - mNoseOffset) / 2.0f / ((pageFormat + .getImageableWidth() / 72) * 2.54)) + 1; + + int heightInPages = (int) ((9.0 * UnitUtils.INCH - mNoseOffset / 2.0) / ((pageFormat + .getImageableHeight() / 72) * 2.54)) + 1; + + int xm = (int) pageFormat.getImageableX(); + int ym = (int) pageFormat.getImageableY(); + + if (pageIndex < widthInPages * heightInPages) { + + Graphics2D g2d = (Graphics2D) g; + g2d.setFont(mPrintFontSmall); + + FontMetrics metrics = g2d.getFontMetrics(mPrintFontSmall); + // get the height of a line of text in this font and render context + int hgt = metrics.getHeight(); + + String mModelString = LanguageResource.getString("BOARDFILE_STR") + + BoardCAD.getInstance().getCurrentBrd().getFilename() + + " " + LanguageResource.getString("NOSEPIECE_STR"); + String mPosString = LanguageResource + .getString("NOSEPIECEPOSITION_STR") + + " " + + UnitUtils.convertLengthToCurrentUnit(mNoseOffset, true); + String mRowString = LanguageResource.getString("ROW_STR") + + ((pageIndex % widthInPages) + 1) + "/" + widthInPages; + String mColumnString = LanguageResource.getString("COLUMN_STR") + + ((pageIndex / widthInPages) + 1) + "/" + heightInPages; + + g2d.setColor(Color.BLACK); + // g2d.setStroke(new BasicStroke((float)(1.0/mScale))); + g.drawString(mModelString, xm, ym + (hgt + 2) * 1); + g.drawString(mPosString, xm, ym + (hgt + 2) * 2); + g.drawString(mRowString, xm, ym + (hgt + 2) * 3); + g.drawString(mColumnString, xm, ym + (hgt + 2) * 4); + + g2d.translate(pageFormat.getImageableX(), + pageFormat.getImageableY() + UnitUtils.INCH * 72); + + printNosePiece(new JavaDraw(g2d), -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset, false); + + printNosePiece(new JavaDraw(g2d), -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset, true); + + printNosePieceWebbing(new JavaDraw(g2d), + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset, false); + + printNosePieceWebbing(new JavaDraw(g2d), + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset, true); + + return 0; } - + + return -1; + } + + int printTailPieceTemplate(PageFormat pageFormat, int pageIndex, Graphics g) { + + int widthInPages = (int) (BoardCAD.getInstance().getCurrentBrd() + .getWidthAt(9.0 * UnitUtils.INCH - mTailOffset) / 2.0f / ((pageFormat + .getImageableWidth() / 72) * 2.54)) + 1; + + int heightInPages = (int) ((9.0 * UnitUtils.INCH - mTailOffset / 2.0) / ((pageFormat + .getImageableHeight() / 72) * 2.54)) + 1; + + int xm = (int) pageFormat.getImageableX(); + int ym = (int) pageFormat.getImageableY(); + + if (pageIndex < widthInPages * heightInPages) { + + Graphics2D g2d = (Graphics2D) g; + g2d.setFont(mPrintFontSmall); + + FontMetrics metrics = g2d.getFontMetrics(mPrintFontSmall); + // get the height of a line of text in this font and render context + int hgt = metrics.getHeight(); + + String mModelString = LanguageResource.getString("BOARDFILE_STR") + + BoardCAD.getInstance().getCurrentBrd().getFilename() + + " " + LanguageResource.getString("TAILPIECE_STR"); + String mPosString = LanguageResource + .getString("TAILPIECEPOSITION_STR") + + " " + + UnitUtils.convertLengthToCurrentUnit(mTailOffset, true); + String mRowString = LanguageResource.getString("ROW_STR") + + ((pageIndex % widthInPages) + 1) + "/" + widthInPages; + String mColumnString = LanguageResource.getString("COLUMN_STR") + + ((pageIndex / widthInPages) + 1) + "/" + heightInPages; + + g2d.setColor(Color.BLACK); + // g2d.setStroke(new BasicStroke((float)(1.0/mScale))); + g.drawString(mModelString, xm, ym + (hgt + 2) * 1); + g.drawString(mPosString, xm, ym + (hgt + 2) * 2); + g.drawString(mRowString, xm, ym + (hgt + 2) * 3); + g.drawString(mColumnString, xm, ym + (hgt + 2) * 4); + + g2d.translate(pageFormat.getImageableX(), + pageFormat.getImageableY() + UnitUtils.INCH * 72); + + printTailPiece(new JavaDraw(g2d), -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset, false); + + printTailPiece(new JavaDraw(g2d), -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset, true); + + printTailPieceWebbing(new JavaDraw(g2d), + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset, false); + + printTailPieceWebbing(new JavaDraw(g2d), + -pageFormat.getImageableWidth() + * (pageIndex % widthInPages), + -pageFormat.getImageableHeight() + * (pageIndex / widthInPages), 72 / 2.54, 0.0, + BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, + mSkinThickness, mFrameThickness, mWebbing, mTailOffset, + mNoseOffset, true); + + return 0; + } + + return -1; + } + + public static void printStringerWebbing(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double skinThickness, double frameThickness, double webbing) { + if (brd.isEmpty()) { + return; + } + System.out.printf("\nSTRINGER WEBBING\n"); - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(0,0,0)); - + d.setColor(new Color(0, 0, 0)); + GeneralPath path = new GeneralPath(); - - double span = (UnitUtils.FOOT/2.0) - webbing; - int nrOfSteps = 20; - double step = span/nrOfSteps; - - int nrOfHoles = 2*(int)((brd.getLength()/UnitUtils.FOOT) ); - - //For each foot of board - for(int i = 0; i != nrOfHoles; i++) - { - double x = (UnitUtils.FOOT/2.0) + (i*UnitUtils.FOOT/2.0) - span/2.0; + + double span = (UnitUtils.FOOT / 2.0) - webbing; + int nrOfSteps = 3;// 20; + double step = span / nrOfSteps; + + int nrOfHoles = 2 * (int) ((brd.getLength() / UnitUtils.FOOT)) - 1; + if (nrOfHoles <= 0) + return; + + // For each foot of board + for (int i = 0; i != nrOfHoles; i++) { + double x = UnitUtils.FOOT + + /* (UnitUtils.FOOT/2.0) */+(i * UnitUtils.FOOT / 2.0) + - span / 2.0; double bottom; - double deck = BezierBoardDrawUtil.getDeck(brd, x, 0.0, skinThickness); + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, + x, 0.0, skinThickness); path.moveTo(x, deck - webbing); boolean first = true; int n = 0; - for(; n < nrOfSteps-1; n++) - { + for (; n < nrOfSteps - 1; n++) { x += step; - deck = BezierBoardDrawUtil.getDeck(brd, x, 0.0, skinThickness) - webbing; - bottom = BezierBoardDrawUtil.getBottom(brd, x, 0.0, skinThickness) + webbing; - if(bottom > deck) - { - if(first){ - path.moveTo(x,deck); - continue; - } - else - { + deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, x, + 0.0, skinThickness) - webbing; + bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation(brd, + x, 0.0, skinThickness) + webbing; + if (bottom > deck) { + if (first) { + path.moveTo(x, deck); + continue; + } else { x -= step; break; } } first = false; - path.lineTo(x,deck); + path.lineTo(x, deck); } - - for(; n >= 0; n--) - { - bottom = BezierBoardDrawUtil.getBottom(brd, x, 0.0, skinThickness) + webbing; - deck = BezierBoardDrawUtil.getDeck(brd, x, 0.0, skinThickness) - webbing; - if(bottom > deck) - { + + for (; n >= 0; n--) { + bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation(brd, + x, 0.0, skinThickness) + webbing; + deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, x, + 0.0, skinThickness) - webbing; + if (bottom > deck) { break; } - path.lineTo(x,bottom); + path.lineTo(x, bottom); x -= step; } - path.closePath(); - d.draw(path); - + if (path.getCurrentPoint() != null) // Test for empty path + { + path.closePath(); + d.draw(path); + } + path.reset(); } - d.setTransform(savedTransform); + d.setTransform(savedTransform); } - public static void printCrossSection(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double position, double railDistance, double skinThickness, double frameThickness, double webbing, boolean mirror) - { - if(brd.isEmpty()) { - return; + public static void printCrossSection(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double position, double railDistance, double skinThickness, + double frameThickness, double webbing, boolean mirror) { + if (brd.isEmpty()) { + return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, mirror, false); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation, mirror, false); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(0,0,0)); - - System.out.printf("\nHWS CROSSSECTION\n"); + d.setColor(new Color(0, 0, 0)); + + System.out.printf("\nHWS CROSSSECTION at %f\n", position); GeneralPath path = new GeneralPath(); - double span = brd.getWidthAt(position)/2.0f; - + double span = brd.getWidthAt(position) / 2.0f; + double outlineAngle = Math.abs(brd.getOutline().getTangentAt(position)); - + double sinOutline = Math.sin(outlineAngle); - - span -= railDistance/sinOutline; - - span -= frameThickness*1.5; + + span -= railDistance / sinOutline; + + span -= frameThickness * 1.5; final int steps = 150; - + double x = position; - - //First the notch at stringer - double deck = BezierBoardDrawUtil.getDeck(brd, x, frameThickness/2.0, skinThickness); - + + // First the notch at stringer + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, x, + frameThickness / 2.0, skinThickness); + path.moveTo(0.0, deck - webbing); - path.lineTo(frameThickness/2.0, deck - webbing); - + path.lineTo(frameThickness / 2.0, deck - webbing); + double y = 0; - //Deck - for(int i = 0; i <= steps; i++) - { - y = i* span / steps + (frameThickness/2.0); - - //Find thickness and rocker at pos - deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); - - // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); - - //Draw lines - path.lineTo(y, deck); + // Deck + for (int i = 0; i <= steps; i++) { + y = i * span / steps + (frameThickness / 2.0); + + // Find thickness and rocker at pos + deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, x, y, + skinThickness); + + // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", + // ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); + + // Draw lines + path.lineTo(y, deck); } - double bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); - + double bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation(brd, + x, y, skinThickness); + double thickness = deck - bottom; double notch = thickness / 4.0; - if(notch < 0.5) - { + if (notch < 0.5) { notch = 0.5; } - double cutout = (thickness - notch)/2.0; - - //Rail notch + double cutout = (thickness - notch) / 2.0; + + // Rail notch path.lineTo(y, deck - cutout); path.lineTo(y + frameThickness, deck - cutout); path.lineTo(y + frameThickness, deck - cutout - notch); path.lineTo(y, deck - cutout - notch); path.lineTo(y, bottom); - - //Bottom - for(int i = 1; i <= steps; i++) - { - y = span - (i* span / steps) + (frameThickness/2.0); - - //Find thickness and rocker at pos - bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); - - // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); - - //Draw lines + + // Bottom + for (int i = 1; i <= steps; i++) { + y = span - (i * span / steps) + (frameThickness / 2.0); + + // Find thickness and rocker at pos + bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation(brd, x, + y, skinThickness); + + // System.out.printf("Outline x: %f y: %f Normal: %f Template x: %f y: %f Deck: %f Bottom: %f\n", + // ox,oy,normalAngle/BezierBoard.DEG_TO_RAD, x,y, deck, bottom); + + // Draw lines path.lineTo(y, bottom); } - bottom = BezierBoardDrawUtil.getBottom(brd, x, frameThickness/2.0, skinThickness); + bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation(brd, x, + frameThickness / 2.0, skinThickness); - path.lineTo(frameThickness/2.0, bottom + webbing); + path.lineTo(frameThickness / 2.0, bottom + webbing); path.lineTo(0.0, bottom + webbing); - + d.draw(path); - + d.setTransform(savedTransform); - + } - public static void printCrossSectionWebbing(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double position, double railDistance, double skinThickness, double frameThickness, double webbing, boolean mirror) - { - if(brd.isEmpty()) { - return; + public static void printCrossSectionWebbing(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double position, double railDistance, double skinThickness, + double frameThickness, double webbing, boolean mirror) { + if (brd.isEmpty()) { + return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, mirror, false); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation, mirror, false); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(0,0,0)); - + d.setColor(new Color(0, 0, 0)); + System.out.printf("\nHWS CROSSSECTION WEBBING\n"); GeneralPath path = new GeneralPath(); - double span = brd.getWidthAt(position)/2.0f; - + double span = brd.getWidthAt(position) / 2.0f; + double outlineAngle = Math.abs(brd.getOutline().getTangentAt(position)); - + double sinOutline = Math.sin(outlineAngle); - - span -= railDistance/sinOutline; - - span -= frameThickness*1.5; - - span -= webbing*3.0; - + + span -= railDistance / sinOutline; + + span -= frameThickness * 1.5; + + span -= webbing * 3.0; + span /= 2.0; final int steps = 20; - - double step = span/steps; - - + double step = span / steps; + double x = position; - - for(int i = 0; i < 2; i++) - { - double y = (frameThickness/2.0) + webbing + (i*(span + webbing)); - + for (int i = 0; i < 2; i++) { + double y = (frameThickness / 2.0) + webbing + + (i * (span + webbing)); + double bottom; - double deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, + x, y, skinThickness); path.moveTo(y, deck - webbing); boolean first = true; int n = 0; - for(; n < steps-1; n++) - { + for (; n < steps - 1; n++) { y += step; - deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness) - webbing; - bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness) + webbing; - if(bottom > deck) - { - if(first){ + deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, x, + y, skinThickness) - webbing; + bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation(brd, + x, y, skinThickness) + webbing; + if (bottom > deck) { + if (first) { path.moveTo(y, deck); - continue; - } - else - { + continue; + } else { y -= step; break; } } first = false; - path.lineTo(y,deck); + path.lineTo(y, deck); } - - for(; n >= 0; n--) - { - bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness) + webbing; - deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness) - webbing; - if(bottom > deck) - { + + for (; n >= 0; n--) { + bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation(brd, + x, y, skinThickness) + webbing; + deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, x, + y, skinThickness) - webbing; + if (bottom > deck) { break; } - path.lineTo(y,bottom); + path.lineTo(y, bottom); y -= step; } path.closePath(); d.draw(path); - + path.reset(); - - + } - + d.setTransform(savedTransform); - + } + public static void printRailWebbing(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset) { + + if (brd.isEmpty()) { + return; + } + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); + d.setStroke(stroke); + /* d.setColor(new Color(0,0,255)); */ + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, + // false, false); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mBottomControlPoints, false, false); + + // paintBezierPath(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, deck); + + // paintBezierPath(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, bottom); - public static void printRailWebbing(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) - { - - if(brd.isEmpty()) { - return; - } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); - d.setStroke(stroke); -/* d.setColor(new Color(0,0,255));*/ - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, false, false); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mBottomControlPoints, false, false); - - // paintBezierPath(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, deck); - - // paintBezierPath(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, bottom); - BezierSpline outline = brd.getOutline(); - + System.out.printf("\nRAIL WEBBING\n"); boolean first = true; - double lastPos = 0; + double lastPos = tailOffset; double lastX = 0; double lastY = 0; double lastDeck = 0; GeneralPath path = new GeneralPath(); - + double ox = tailOffset; - + int steps; double span; double step; boolean noDraw = true; - + boolean end = false; - - //Calculate how many sections to do - int sections = (((int)(brd.getLength()/UnitUtils.FOOT)-1) * 5) + 2; - - for(int n = 0; n < sections; n++) - { -/* System.out.printf("section: %d pos: %s", n, UnitUtils.convertLengthToUnit(ox, true, UnitUtils.INCHES));*/ - - if(n == 0) - { - //No cutouts in first section + + // Calculate how many sections to do + int sections = (((int) (brd.getLength() / UnitUtils.FOOT) - 1) * 5) + 2; + + for (int n = 0; n < sections; n++) { + /* + * System.out.printf("section: %d pos: %s", n, + * UnitUtils.convertLengthToUnit(ox, true, UnitUtils.INCHES)); + */ + + if (n == 0) { + // No cutouts in first section span = UnitUtils.FOOT - tailOffset; noDraw = true; System.out.printf(" first\n"); - } - else - { - if(((n-1)%5)%2 == 0) - { + } else { + if (((n - 1) % 5) % 2 == 0) { span = webbing; noDraw = true; -/* System.out.printf(" webbing\n");*/ - } - else - { - span = UnitUtils.FOOT/ 2.0 - webbing*1.5; + /* System.out.printf(" webbing\n"); */ + } else { + span = UnitUtils.FOOT / 2.0 - webbing * 1.5; noDraw = false; -/* System.out.printf(" hole\n");*/ + /* System.out.printf(" hole\n"); */ } } - - steps = (int)(span/0.5); - step = span/steps; + + steps = (int) (span / 0.5); + step = span / steps; boolean firstInSection = true; ArrayList bottomCoordinates = new ArrayList(); - for(int i = 0; i < steps; i++) - { - //Get the outline point and the angle + for (int i = 0; i < steps; i++) { + // Get the outline point and the angle double oy = outline.getValueAt(ox); double normalAngle = outline.getNormalAngle(ox); - - //Find the target point at distance from outline - double x = ox - (distanceFromRail*Math.sin(normalAngle)); - double y = oy - (distanceFromRail*Math.cos(normalAngle)); - if(first && y < 0) - { + // Find the target point at distance from outline + double x = ox - (distanceFromRail * Math.sin(normalAngle)); + double y = oy - (distanceFromRail * Math.cos(normalAngle)); + + if (first && y < 0) { ox += step; continue; } - if(!first && y < 0) + if (!first && y < 0) break; - //Find thickness and rocker at pos - double deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); + // Find thickness and rocker at pos + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation( + brd, x, y, skinThickness); + double bottom = BezierBoardDrawUtil + .getBottomWithSkinCompensation(brd, x, y, skinThickness); - if(first && deck < bottom) - { + if (first && deck < bottom) { ox += step; continue; } - if(!first && deck < bottom) + if (!first && deck < bottom) break; - - if(first) - { + if (first) { first = false; - } - else - { + } else { deck -= webbing; bottom += webbing; - - //Find the 2D length from the last point on deck and bottom - double xd = x-lastX; - double yd = y-lastY; - double stepLength = Math.sqrt((xd*xd)+(yd*yd)); - + + // Find the 2D length from the last point on deck and bottom + double xd = x - lastX; + double yd = y - lastY; + double stepLength = Math.sqrt((xd * xd) + (yd * yd)); + double newPos = lastPos + stepLength; - - if(deck < bottom) - { - if(!firstInSection) - { + + if (deck < bottom) { + if (!firstInSection) { end = true; } - - } - else - { - if(!noDraw) - { - if(firstInSection) - { + + } else { + if (!noDraw) { + if (firstInSection) { path.moveTo(lastPos, lastDeck); - bottomCoordinates.add(new Point2D.Double(lastPos, bottom)); + bottomCoordinates.add(new Point2D.Double( + lastPos, bottom)); firstInSection = false; } - + path.lineTo(newPos, deck); - bottomCoordinates.add(new Point2D.Double(newPos, bottom)); + bottomCoordinates.add(new Point2D.Double(newPos, + bottom)); } } - - //Update last pos + + // Update last pos lastPos = newPos; } lastX = x; lastY = y; lastDeck = deck; - + ox += step; } - for(int i = bottomCoordinates.size()-1 ; i >= 0; i--) - { + for (int i = bottomCoordinates.size() - 1; i >= 0; i--) { Point2D.Double point = bottomCoordinates.get(i); path.lineTo(point.x, point.y); } - if(!noDraw && !first && !firstInSection) - { + if (!noDraw && !first && !firstInSection) { path.closePath(); - + d.draw(path); } - if(end) - { + if (end) { break; } } d.setTransform(savedTransform); - + } + public static void printRailNotching(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset) { - public static void printRailNotching(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) - { - - if(brd.isEmpty()) { + if (brd.isEmpty()) { return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - // d.setColor(new Color(255,0,0)); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, false, false); - - // paintBezierControlPoints(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, brd.mBottomControlPoints, false, false); - - // paintBezierPath(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, deck); - - // paintBezierPath(d,offsetX, offsetY, scale, BoardCAD.getInstance().getBrdColor(), stroke, bottom); - + // d.setColor(new Color(255,0,0)); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, brd.mDeckControlPoints, + // false, false); + + // paintBezierControlPoints(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, + // brd.mBottomControlPoints, false, false); + + // paintBezierPath(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, deck); + + // paintBezierPath(d,offsetX, offsetY, scale, + // BoardCAD.getInstance().getBrdColor(), stroke, bottom); + BezierSpline outline = brd.getOutline(); - + System.out.printf("\nRAIL NOTCHING\n"); boolean first = true; - double lastPos = 0; + double lastPos = tailOffset; double lastX = 0; double lastY = 0; double lastDeck = 0; double lastBottom = 0; GeneralPath path = new GeneralPath(); - + double ox = tailOffset; - + int steps; double span; double step; - + boolean end = false; - - //Calculate how many sections to do - int sections = (int)(brd.getLength()/UnitUtils.FOOT)-1; - - for(int n = 0; n < sections; n++) - { - if(n == 0) - { - //No cutouts in first section + + // Calculate how many sections to do + int sections = (int) (brd.getLength() / UnitUtils.FOOT) - 1; + + for (int n = 0; n < sections; n++) { + if (n == 0) { + // No cutouts in first section span = UnitUtils.FOOT - tailOffset; + } else { + span = UnitUtils.FOOT; } - else - { - span = UnitUtils.FOOT; - } - - steps = (int)(span/0.5); - step = span/steps; - for(int i = 0; i < steps; i++) - { - //Get the outline point and the angle + steps = (int) (span / 0.5); + step = span / steps; + + for (int i = 0; i < steps; i++) { + // Get the outline point and the angle double oy = outline.getValueAt(ox); double normalAngle = outline.getNormalAngle(ox); - - //Find the target point at distance from outline - double x = ox - (distanceFromRail*Math.sin(normalAngle)); - double y = oy - (distanceFromRail*Math.cos(normalAngle)); - if(first && y < 0) - { + // Find the target point at distance from outline + double x = ox - (distanceFromRail * Math.sin(normalAngle)); + double y = oy - (distanceFromRail * Math.cos(normalAngle)); + + if (first && y < 0) { ox += step; continue; } - if(!first && y < 0) + if (!first && y < 0) break; - //Find thickness and rocker at pos - double deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); + // Find thickness and rocker at pos + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation( + brd, x, y, skinThickness); + double bottom = BezierBoardDrawUtil + .getBottomWithSkinCompensation(brd, x, y, skinThickness); - if(first && deck < bottom) - { + if (first && deck < bottom) { ox += step; continue; } - if(!first && deck < bottom) + if (!first && deck < bottom) break; - if(first) - { + if (first) { first = false; - } - else - { - //Find the 2D length from the last point on deck and bottom - double xd = x-lastX; - double yd = y-lastY; - double stepLength = Math.sqrt((xd*xd)+(yd*yd)); - + } else { + // Find the 2D length from the last point on deck and bottom + double xd = x - lastX; + double yd = y - lastY; + double stepLength = Math.sqrt((xd * xd) + (yd * yd)); + double newPos = lastPos + stepLength; - - //Update last pos + + // Update last pos lastPos = newPos; } @@ -1315,1216 +1644,1120 @@ public static void printRailNotching(AbstractDraw d, double offsetX, double offs lastY = y; lastDeck = deck; lastBottom = bottom; - + ox += step; } - + double thickness = lastDeck - lastBottom; double notch = thickness / 4.0; - if(notch < 0.5) - { + if (notch < 0.5) { notch = 0.5; } - double cutout = (thickness - notch)/2.0; + double cutout = (thickness - notch) / 2.0; + + path.moveTo(lastPos - frameThickness / 2.0, lastDeck - cutout); + path.lineTo(lastPos + frameThickness / 2.0, lastDeck - cutout); + path.lineTo(lastPos + frameThickness / 2.0, lastBottom + cutout); + path.lineTo(lastPos - frameThickness / 2.0, lastBottom + cutout); - path.moveTo(lastPos - frameThickness/2.0, lastDeck-cutout); - path.lineTo(lastPos + frameThickness/2.0, lastDeck-cutout); - path.lineTo(lastPos + frameThickness/2.0, lastBottom+cutout); - path.lineTo(lastPos - frameThickness/2.0, lastBottom+cutout); - path.closePath(); - + d.draw(path); - if(end) - { + if (end) { break; } } d.setTransform(savedTransform); - + } - public static void printTailPiece(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset, boolean mirror) - { - - if(brd.isEmpty()) { + public static void printTailPiece(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset, boolean mirror) { + + if (brd.isEmpty()) { return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, false, mirror); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation, false, mirror); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(255,0,0)); + d.setColor(new Color(255, 0, 0)); BezierSpline outline = brd.getOutline(); - + System.out.printf("\nTAIL PIECE\n"); boolean first = true; GeneralPath path = new GeneralPath(); - + double ox = tailOffset; double oy = 0.0; - - double tailPieceLength = 9.0*UnitUtils.INCH - tailOffset; - double span; + double tailPieceLength = 9.0 * UnitUtils.INCH - tailOffset; - double angle = getTailPieceStringerAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); + double span = tailPieceLength; + + double angle = getTailPieceStringerAngle(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset); double x = 0.0; double y = 0.0; - - double normalAngle = 0.0; - - double xf = 0.0; - - for(int n = 0; n < 5; n++) - { - if(tailPieceLength > 5.0*UnitUtils.INCH) - { - switch(n) - { - case 0: - case 1: - case 3: - case 4: - span = 1.0*UnitUtils.INCH; - break; - default: - span = tailPieceLength - 4.0*UnitUtils.INCH; - break; - } - } - else - { - span = (n+1)/5.0*tailPieceLength; - } - - int steps = (int)(span/0.5); - double step = span/steps; - for(int i = 0; i < steps; i++) - { - //Get the outline point and the angle - oy = outline.getValueAt(ox); - normalAngle = outline.getNormalAngle(ox); - - //Find the point at distance from outline - x = ox - ((distanceFromRail - ((n%2==1)?frameThickness:0.0) )*Math.sin(normalAngle)); - y = oy - ((distanceFromRail - ((n%2==1)?frameThickness:0.0) )*Math.cos(normalAngle)); - - if(first && y < 0) - { - ox += step; - continue; - } + double normalAngle = 0.0; - if(!first && y < 0) - break; + int steps = (int) (span / 0.25); + double step = span / steps; - //Find thickness and rocker at pos - double deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); + for (int i = 0; i < steps; i++) { + // Get the outline point and the angle + oy = outline.getValueAt(ox); + normalAngle = outline.getNormalAngle(ox); - if(first && deck < bottom) - { - ox += step; - continue; - } + // Find the point at distance from outline + double offsetFromRail = distanceFromRail + frameThickness + + ((i * 5 / steps) % 2 == 1 ? 0.0 : frameThickness); + x = ox - offsetFromRail * Math.sin(normalAngle); + y = oy - offsetFromRail * Math.cos(normalAngle); - if(!first && deck < bottom) - break; + if (first && y < 0) { + ox += step; + continue; + } - if(first) - { - first = false; + // Find thickness and rocker at pos + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, + x, y, skinThickness); + double bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation( + brd, x, y, skinThickness); - xf = x; - - path.moveTo((x-xf)/Math.cos(angle), 0.0); - } - - path.lineTo((x-xf)/Math.cos(angle), y); - + if (first && deck < bottom) { ox += step; + continue; } - if(n<4) - { - ox -= step; - x = ox - ((distanceFromRail - ((n%2==0)?frameThickness:0.0) )*Math.sin(normalAngle)); - y = oy - ((distanceFromRail - ((n%2==0)?frameThickness:0.0) )*Math.cos(normalAngle)); - path.lineTo((x-xf)/Math.cos(angle), y); - ox += step; + + if (first) { + first = false; + path.moveTo(x / Math.cos(angle), 0.0); } + path.lineTo(x / Math.cos(angle), y); + + ox += step; } - - path.lineTo((x-xf)/Math.cos(angle), frameThickness/2.0); - path.lineTo((x-xf)/Math.cos(angle) - 2.0*UnitUtils.INCH, frameThickness/2.0); - path.lineTo((x-xf)/Math.cos(angle) - 2.0*UnitUtils.INCH, 0.0); - + + path.lineTo(x / Math.cos(angle), frameThickness / 2.0); + path.lineTo(x / Math.cos(angle) - 2.0 * UnitUtils.INCH, + frameThickness / 2.0); + path.lineTo(x / Math.cos(angle) - 2.0 * UnitUtils.INCH, 0.0); + d.draw(path); - System.out.printf("\nTAIL PIECE\n"); + System.out.printf("\nTAIL PIECE DONE\n"); - d.setTransform(savedTransform); } - - public static void printTailPieceWebbing(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset, boolean mirror) - { - if(brd.isEmpty()) { + + public static void printTailPieceWebbing(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset, boolean mirror) { + if (brd.isEmpty()) { return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, false, mirror); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation, false, mirror); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(255,0,0)); + d.setColor(new Color(255, 0, 0)); BezierSpline outline = brd.getOutline(); - + System.out.printf("\nTAIL WEBBING\n"); boolean first = true; GeneralPath path = new GeneralPath(); - - double tailPieceLength = 9.0*UnitUtils.INCH - tailOffset; - double span = (tailPieceLength - webbing*5.0)/2.0; + double tailPieceLength = 9.0 * UnitUtils.INCH - tailOffset; - double angle = getTailPieceStringerAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); + double span = (tailPieceLength - webbing * 3.0) / 2.0; + + double angle = getTailPieceStringerAngle(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset); Point2D.Double point = null; - - int steps = (int)(span/0.5); - double step = span/steps; - double comp = (webbing)*Math.sin(outline.getNormalAngle(9.0*UnitUtils.INCH)); + int steps = (int) (span / 0.5); + double step = span / steps; - double ox = tailOffset + webbing*2.0 + comp; - - double xf = 0.0; + double comp = (webbing) + * Math.sin(outline.getNormalAngle(9.0 * UnitUtils.INCH)); + + double ox = tailOffset + webbing + comp; - for(int n = 0; n < 2; n++) - { + for (int n = 0; n < 2; n++) { boolean firstInSection = true; - for(int i = 0; i < steps; i++) - { - //Use point from tail piece for end calculation - point = BezierBoardDrawUtil.getOutline(brd, ox, distanceFromRail); + for (int i = 0; i < steps; i++) { + // Use point from tail piece for end calculation + point = BezierBoardDrawUtil.getOutline(brd, ox, + distanceFromRail); - if(first && point.y < 0) - { + if (first && point.y < 0) { ox += step; continue; } - if(!first && point.y < 0) + if (!first && point.y < 0) break; - //Find thickness and rocker at pos - double deck = BezierBoardDrawUtil.getDeck(brd, point.x, point.y, skinThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, point.x, point.y, skinThickness); + // Find thickness and rocker at pos + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation( + brd, point.x, point.y, skinThickness); + double bottom = BezierBoardDrawUtil + .getBottomWithSkinCompensation(brd, point.x, point.y, + skinThickness); - if(first && deck < bottom) - { + if (first && deck < bottom) { ox += step; continue; } - if(!first && deck < bottom) + if (!first && deck < bottom) break; - if(first) - { + if (first) { first = false; - - xf = point.x - webbing*2.0 - comp; - + } - - //Get the webbing point - point = BezierBoardDrawUtil.getOutline(brd, ox, distanceFromRail + webbing); - if(firstInSection) - { + // Get the webbing point + point = BezierBoardDrawUtil.getOutline(brd, ox, + distanceFromRail + webbing + frameThickness); + + if (firstInSection) { firstInSection = false; - path.moveTo((point.x - xf)/Math.cos(angle), webbing); + path.moveTo((point.x) / Math.cos(angle), webbing); } - - path.lineTo((point.x - xf)/Math.cos(angle), point.y); - + + path.lineTo((point.x) / Math.cos(angle), point.y); + ox += step; } - path.lineTo((point.x - xf)/Math.cos(angle), webbing); - path.closePath(); - - d.draw(path); - + if (!firstInSection) { + path.lineTo((point.x) / Math.cos(angle), webbing); + path.closePath(); + + d.draw(path); + } + path.reset(); - + ox += webbing; } - - + d.setTransform(savedTransform); } - public static void printStringerTailPieceCutOut(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) - { - if(brd.isEmpty()) { + public static void printStringerTailPieceCutOut(AbstractDraw d, + double offsetX, double offsetY, double scale, double rotation, + BezierBoard brd, double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset) { + if (brd.isEmpty()) { return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); - d.setStroke(stroke); - d.setColor(new Color(255,0,0)); - + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation); + System.out.printf("\nSTRINGER TAIL PIECE CUTOUT\n"); BezierSpline outline = brd.getOutline(); - + GeneralPath path = new GeneralPath(); - - double tailPieceLength = 9.0f*UnitUtils.INCH - tailOffset; - - double angle = getTailPieceStringerAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); - double thicknessXOffset = Math.sin(angle)*frameThickness/2.0; - double thicknessYOffset = Math.cos(angle)*frameThickness/2.0; - - //Get the tail pos - double tailX = getRailMinPos(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); - double tailDeck = BezierBoardDrawUtil.getRailDeck(brd, tailX, distanceFromRail, skinThickness); - double tailBottom = BezierBoardDrawUtil.getRailBottom(brd, tailX, distanceFromRail, skinThickness); - double tailZ = (tailDeck +tailBottom)/2.0; - double tailNormalAngle = outline.getNormalAngle(tailX); - //Find the point at distance from outline - tailX = tailX - (distanceFromRail *Math.sin(tailNormalAngle)); - - //Get the second tail pos - double tailPieceFrontX = 9.0*UnitUtils.INCH; - double tailPieceFrontDeck = BezierBoardDrawUtil.getRailDeck(brd, tailPieceFrontX, distanceFromRail, skinThickness); - double tailPieceFrontBottom = BezierBoardDrawUtil.getRailBottom(brd, tailPieceFrontX, distanceFromRail, skinThickness); - double tailPieceFrontZ = (tailPieceFrontDeck +tailPieceFrontBottom)/2.0; - double tailPieceFrontNormalAngle = outline.getNormalAngle(tailPieceFrontX); - //Find the point at distance from outline - tailPieceFrontX = tailPieceFrontX - (distanceFromRail *Math.sin(tailPieceFrontNormalAngle)); - - double tailPieceCutoutX = tailPieceFrontX - (2.0*UnitUtils.INCH); - double tailPieceCutoutZ = tailPieceFrontZ - (2.0*UnitUtils.INCH)/Math.cos(angle)*Math.sin(angle); - - double tailEndX = tailPieceFrontX - tailPieceLength; - double tailEndZ = tailPieceFrontZ - (tailPieceLength)*Math.sin(angle); - - path.moveTo(tailX-thicknessXOffset, tailZ+thicknessYOffset); - path.lineTo(tailPieceFrontX-thicknessXOffset, tailPieceFrontZ+thicknessYOffset); - path.lineTo(tailPieceFrontX+thicknessXOffset, tailPieceFrontZ-thicknessYOffset); - path.lineTo(tailX+thicknessXOffset, tailZ-thicknessYOffset); - path.closePath(); - - - d.draw(path); - path.reset(); - - d.setColor(new Color(0,255,0)); - path.moveTo(tailPieceCutoutX-thicknessXOffset, tailPieceCutoutZ+thicknessYOffset); - path.lineTo(tailEndX-thicknessXOffset, tailEndZ+thicknessYOffset); - path.lineTo(tailEndX+thicknessXOffset, tailEndZ-thicknessYOffset); - path.lineTo(tailPieceCutoutX+thicknessXOffset, tailPieceCutoutZ-thicknessYOffset); + double tailPieceLength = 9.0f * UnitUtils.INCH - tailOffset; + + double angle = getTailPieceStringerAngle(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset); + + double thicknessXOffset = Math.sin(angle) * frameThickness / 2.0; + double thicknessYOffset = Math.cos(angle) * frameThickness / 2.0; + + // Get the tail pos + double tailX = getRailMinPos(brd, distanceFromRail, skinThickness, + frameThickness, tailOffset, noseOffset); + double tailDeck = BezierBoardDrawUtil.getRailDeck(brd, tailX, + distanceFromRail, skinThickness); + double tailBottom = BezierBoardDrawUtil.getRailBottom(brd, tailX, + distanceFromRail, skinThickness); + double tailZ = (tailDeck + tailBottom) / 2.0; + double tailNormalAngle = outline.getNormalAngle(tailX); + // Find the point at distance from outline + tailX = tailX - (distanceFromRail * Math.sin(tailNormalAngle)); + + // Get the front tail pos + double tailPieceFrontX = 9.0 * UnitUtils.INCH; + double tailPieceFrontDeck = BezierBoardDrawUtil.getRailDeck(brd, + tailPieceFrontX, distanceFromRail, skinThickness); + double tailPieceFrontBottom = BezierBoardDrawUtil.getRailBottom(brd, + tailPieceFrontX, distanceFromRail, skinThickness); + double tailPieceFrontZ = (tailPieceFrontDeck + tailPieceFrontBottom) / 2.0; + double tailPieceFrontNormalAngle = outline + .getNormalAngle(tailPieceFrontX); + + // Find the point at distance from outline + tailPieceFrontX = tailPieceFrontX + - (distanceFromRail * Math.sin(tailPieceFrontNormalAngle)); + + double tailPieceCutoutX = tailPieceFrontX - (2.0 * UnitUtils.INCH); + double tailPieceCutoutZ = tailPieceFrontZ - (2.0 * UnitUtils.INCH) + / Math.cos(angle) * Math.sin(angle); + + double tailEndX = tailOffset; + double tailEndZ = tailPieceFrontZ - (tailPieceFrontX - tailEndX) + * Math.sin(angle); + + path.moveTo(tailPieceCutoutX - thicknessXOffset, tailPieceCutoutZ + + thicknessYOffset); + path.lineTo(tailEndX - thicknessXOffset, tailEndZ + thicknessYOffset); + path.lineTo(tailEndX + thicknessXOffset, tailEndZ - thicknessYOffset); + path.lineTo(tailPieceCutoutX + thicknessXOffset, tailPieceCutoutZ + - thicknessYOffset); path.closePath(); d.draw(path); + path.reset(); d.setTransform(savedTransform); } - public static void printRailTailPieceNotches(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) - { - - if(brd.isEmpty()) { + public static void printRailTailPieceNotches(AbstractDraw d, + double offsetX, double offsetY, double scale, double rotation, + BezierBoard brd, double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset) { + + if (brd.isEmpty()) { return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); - d.setStroke(stroke); - d.setColor(new Color(255,0,0)); - BezierSpline outline = brd.getOutline(); - - System.out.printf("\nRAIL TAIL PIECE NOTCHING\n"); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); + d.setStroke(stroke); + d.setColor(new Color(255, 0, 0)); - boolean first = true; GeneralPath path = new GeneralPath(); - - double ox = tailOffset; - - double tailPieceLength = 9.0*UnitUtils.INCH - tailOffset; - - double span; - - double angle = getTailPieceRailAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); - double x = 0.0; - - double endPointX = 0.0; - double endPointZ = 0.0; - - double lastX = 0.0; - double lastY = 0.0; - double lastPos = 0.0; - - double notchX = 0.0; - double notchZ = 0.0; - - double thicknessXOffset = 0.0; - double thicknessYOffset = 0.0; - - double deck = 0.0; - for(int n = 0; n < 5; n++) - { - if(tailPieceLength > 5.0*UnitUtils.INCH) - { - switch(n) - { - case 0: - case 1: - case 3: - case 4: - span = 1.0*UnitUtils.INCH; - break; - default: - span = tailPieceLength - 4.0*UnitUtils.INCH; - break; - } - } - else - { - span = (n+1)/5.0*tailPieceLength; - } - - int steps = (int)(span/0.5); - double step = span/steps; - - for(int i = 0; i < steps; i++) - { - //Get the outline point and the angle - double oy = outline.getValueAt(ox); - double normalAngle = outline.getNormalAngle(ox); - - //Find the point at distance from outline - x = ox - (distanceFromRail *Math.sin(normalAngle)); - double y = oy - (distanceFromRail*Math.cos(normalAngle)); - - if(first && y < 0) - { - ox += step; - continue; - } - - if(!first && y < 0) - break; - - //Find thickness and rocker at pos - deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); - - if(deck < bottom) - { - ox += step; - continue; - } - - if(deck < bottom) - break; - - if(first) - { - //Calculate angle for tailpiece (tail piece sit halfway between deck and bottom on the rail template at both ends) - double z1 = (bottom+deck)/2.0; - - System.out.printf("angle: %f", angle*180.0/Math.PI); - endPointX = ox; - endPointZ = z1; - first = false; + double tailPieceLength = 9.0 * UnitUtils.INCH - tailOffset; + + double angle = getTailPieceStringerAngle(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset); + + double thicknessXOffset = Math.sin(angle) * frameThickness / 2.0; + double thicknessYOffset = Math.cos(angle) * frameThickness / 2.0; + + // Use same Y start pos reference as stringer cutout + double tailPieceFrontX = 9.0 * UnitUtils.INCH; + // Find the point at distance from outline + double tailPieceFrontNormalAngle = brd.getOutline().getNormalAngle( + tailPieceFrontX); + tailPieceFrontX = tailPieceFrontX + - (distanceFromRail * Math.sin(tailPieceFrontNormalAngle)); + double tailPieceFrontDeck = BezierBoardDrawUtil.getRailDeck(brd, + tailPieceFrontX, distanceFromRail, skinThickness); + double tailPieceFrontBottom = BezierBoardDrawUtil.getRailBottom(brd, + tailPieceFrontX, distanceFromRail, skinThickness); + double tailPieceFrontZ = (tailPieceFrontDeck + tailPieceFrontBottom) / 2.0; + + // Positions along board + double firstStartX = tailOffset + (tailPieceLength / 5); + double firstEndX = tailOffset + (tailPieceLength / 5) * 2; + + // Calculate Y for start and end + double firstStartZ = tailPieceFrontZ - (tailPieceFrontX - firstStartX) + * Math.tan(angle); + double firstEndZ = tailPieceFrontZ - (tailPieceFrontX - firstEndX) + * Math.tan(angle); + + // Calculate X along rail for start and end + double firstStartRailX = getRailLength(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset, tailOffset, + firstStartX); + double firstEndRailX = getRailLength(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset, tailOffset, + firstEndX); + + System.out.printf("tailOffset:%f firstStartX::%f firstStartRailX:%f", tailOffset, firstStartX, firstStartRailX); + + // Draw + path.moveTo(firstStartRailX - thicknessXOffset + tailOffset, firstStartZ + + thicknessYOffset); + path.lineTo(firstEndRailX - thicknessXOffset + tailOffset, firstEndZ + + thicknessYOffset); + path.lineTo(firstEndRailX + thicknessXOffset + tailOffset, firstEndZ + - thicknessYOffset); + path.lineTo(firstStartRailX + thicknessXOffset + tailOffset, firstStartZ + - thicknessYOffset); + path.closePath(); - thicknessXOffset = Math.sin(angle)*frameThickness/2.0; - thicknessYOffset = Math.cos(angle)*frameThickness/2.0; - } - else - { - //Find the 2D length from the last point on deck and bottom - double xd = x-lastX; - double yd = y-lastY; - double stepLength = Math.sqrt((xd*xd)+(yd*yd)); - - double newPos = lastPos + stepLength; - - //Update last pos - lastPos = newPos; - } + d.draw(path); - lastX = x; - lastY = y; - - ox += step; - } -/* - Line2D.Double line = new Line2D.Double(); - line.setLine(lastPos, deck, lastPos, deck + 8.0); - d.draw(line); -*/ - //Check if we should store pos - if(n%2==0) - { - //Store for notching - notchX = lastPos; - notchZ = endPointZ + (((ox - endPointX)/Math.cos(angle))*Math.sin(angle)); - } - else if(n%2==1) - { - double otherEndX = lastPos; - double otherEndZ = endPointZ + (((ox - endPointX)/Math.cos(angle))*Math.sin(angle)); + path.reset(); + + // Positions along board + double secondStartX = tailOffset + (tailPieceLength / 5) * 3; + double secondEndX = tailOffset + (tailPieceLength / 5) * 4; + + // Calculate Y for start and end + double secondStartZ = tailPieceFrontZ + - (tailPieceFrontX - secondStartX) * Math.tan(angle); + double secondEndZ = tailPieceFrontZ - (tailPieceFrontX - secondEndX) + * Math.tan(angle); + + // Calculate X along rail for start and end + double secondStartRailX = getRailLength(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset, tailOffset, + secondStartX); + double secondEndRailX = getRailLength(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset, tailOffset, + secondEndX); + + // Draw + path.moveTo(secondStartRailX - thicknessXOffset + tailOffset, secondStartZ + + thicknessYOffset); + path.lineTo(secondEndRailX - thicknessXOffset + tailOffset, secondEndZ + + thicknessYOffset); + path.lineTo(secondEndRailX + thicknessXOffset + tailOffset, secondEndZ + - thicknessYOffset); + path.lineTo(secondStartRailX + thicknessXOffset + tailOffset, secondStartZ + - thicknessYOffset); + path.closePath(); + + d.draw(path); - path.moveTo(endPointX + notchX-thicknessXOffset - endPointX, notchZ+thicknessYOffset); - path.lineTo(endPointX + otherEndX-thicknessXOffset - endPointX, otherEndZ+thicknessYOffset); - path.lineTo(endPointX + otherEndX+thicknessXOffset - endPointX, otherEndZ-thicknessYOffset); - path.lineTo(endPointX + notchX+thicknessXOffset - endPointX, notchZ-thicknessYOffset); - path.closePath(); - d.draw(path); - - path.reset(); - } - - } - d.setTransform(savedTransform); } - public static void printNosePiece(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset, boolean mirror) - { - - if(brd.isEmpty()) { + public static void printNosePiece(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset, boolean mirror) { + + if (brd.isEmpty()) { return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, false, mirror); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation, false, mirror); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(255,0,0)); + // d.setColor(new Color(255,0,0)); BezierSpline outline = brd.getOutline(); - + System.out.printf("\nNose PIECE\n"); boolean first = true; GeneralPath path = new GeneralPath(); - - - double nosePieceLength = 9.0*UnitUtils.INCH - noseOffset; - double ox = brd.getLength() - 9.0*UnitUtils.INCH; + double nosePieceLength = 9.0 * UnitUtils.INCH - noseOffset; + + double startX = brd.getLength() - 9.0 * UnitUtils.INCH; + double ox = startX; double oy = 0.0; - double span; + double span = nosePieceLength; + + double angle = getNosePieceStringerAngle(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset); - double angle = getNosePieceStringerAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); double x = 0.0; double y = 0.0; - - double normalAngle = 0.0; - - double xf = 0.0; - - for(int n = 0; n < 5; n++) - { - if(nosePieceLength > 5.0*UnitUtils.INCH) - { - switch(n) - { - case 0: - case 1: - case 3: - case 4: - span = 1.0*UnitUtils.INCH; - break; - default: - span = nosePieceLength - 4.0*UnitUtils.INCH; - break; - } - } - else - { - span = (n+1)/5.0*nosePieceLength; - } - - int steps = (int)(span/0.5); - double step = span/steps; - for(int i = 0; i < steps; i++) - { - //Get the outline point and the angle - oy = outline.getValueAt(ox); - normalAngle = outline.getNormalAngle(ox); - - //Find the point at distance from outline - x = ox - ((distanceFromRail - ((n%2==1)?frameThickness:0.0) )*Math.sin(normalAngle)); - y = oy - ((distanceFromRail - ((n%2==1)?frameThickness:0.0) )*Math.cos(normalAngle)); - - if(first && y < 0) - { - ox += step; - continue; - } + double normalAngle = 0.0; - if(!first && y < 0) - break; + int steps = (int) (span / 0.25); + double step = span / steps; - //Find thickness and rocker at pos - double deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); + for (int i = 0; i < steps; i++) { + // Get the outline point and the angle + oy = outline.getValueAt(ox); + normalAngle = outline.getNormalAngle(ox); - if(first && deck < bottom) - { - ox += step; - continue; - } + // Find the point at distance from outline + double offsetFromRail = distanceFromRail + frameThickness + + ((i * 5 / steps) % 2 == 1 ? 0.0 : frameThickness); + x = ox - offsetFromRail * Math.sin(normalAngle); + y = oy - offsetFromRail * Math.cos(normalAngle); - if(!first && deck < bottom) - { - path.lineTo(path.getCurrentPoint().getX(),0.0); - d.draw(path); - d.setTransform(savedTransform); - return; - } + System.out.printf( + "i:%d ox:%f oy:%f offsetFromRail:%f x:%f y:%f \n", i, ox, + oy, offsetFromRail, x, y); - if(first) - { - first = false; + // Find thickness and rocker at pos + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, + x, y, skinThickness); + double bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation( + brd, x, y, skinThickness); - xf = x; - - path.moveTo((x-xf + 2.0*UnitUtils.INCH)/Math.cos(angle), 0.0); - path.lineTo((x-xf + 2.0*UnitUtils.INCH)/Math.cos(angle), frameThickness/2.0); - path.lineTo((x-xf)/Math.cos(angle), frameThickness/2.0); - } - - path.lineTo((x-xf)/Math.cos(angle), y); + if (!first && deck < bottom) { + break; + } - ox += step; + if (y < 0) { + break; } - if(n < 4) - { - ox -= step; - x = ox - ((distanceFromRail - ((n%2==0)?frameThickness:0.0) )*Math.sin(normalAngle)); - y = oy - ((distanceFromRail - ((n%2==0)?frameThickness:0.0) )*Math.cos(normalAngle)); - path.lineTo((x-xf)/Math.cos(angle), y); - ox += step; + + if (first) { + first = false; + path.moveTo((x - startX) / Math.cos(angle) + 2.0 + * UnitUtils.INCH, 0.0); + path.lineTo((x - startX) / Math.cos(angle) + 2.0 + * UnitUtils.INCH, frameThickness / 2.0); + path.lineTo((x - startX) / Math.cos(angle), + frameThickness / 2.0); } + path.lineTo((x - startX) / Math.cos(angle), y); + + ox += step; } - path.lineTo((x-xf)/Math.cos(angle), 0); - - + + path.lineTo((x - startX) / Math.cos(angle), 0.0); + d.draw(path); - System.out.printf("\nNOSE PIECE\n"); + System.out.printf("\nNose PIECE DONE\n"); - d.setTransform(savedTransform); } - public static void printNosePieceWebbing(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset, boolean mirror) - { - if(brd.isEmpty()) { + public static void printNosePieceWebbing(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset, boolean mirror) { + if (brd.isEmpty()) { return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale, false, mirror); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation, false, mirror); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); - d.setColor(new Color(255,0,0)); - BezierSpline outline = brd.getOutline(); - System.out.printf("\nNose WEBBING\n"); - boolean first = true; - GeneralPath path = new GeneralPath(); - - double nosePieceLength = 9.0*UnitUtils.INCH - noseOffset; + double nosePieceLength = 9.0 * UnitUtils.INCH - noseOffset; - double span = (nosePieceLength - webbing*5.0)/2.0; + double span = (nosePieceLength - webbing * 3.0) / 2.0; - double angle = getNosePieceStringerAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); - Point2D.Double point = null; - - int steps = (int)(span/0.5); - double step = span/steps; + double angle = getNosePieceStringerAngle(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset); - double ox = brd.getLength() - 9.0*UnitUtils.INCH - noseOffset + webbing*2.0; + double positionOffset = brd.getLength() - 9.0 * UnitUtils.INCH; - double comp = (webbing)*Math.sin(outline.getNormalAngle(ox)); - - double xf = 0.0; + for (int n = 0; n < 2; n++) { - for(int n = 0; n < 2; n++) - { - boolean firstInSection = true; + double webbingStartPos = brd.getLength() - 9.0 * UnitUtils.INCH + + (webbing * (n + 1)) + (span * n); + double webbingEndPos = webbingStartPos + span; - for(int i = 0; i < steps; i++) - { - //Use point from nose piece for end calculation - point = BezierBoardDrawUtil.getOutline(brd, ox, distanceFromRail); + printPieceWebbing(d, 0.0, 0.0, 1.0, 0.0, brd, distanceFromRail, + skinThickness, frameThickness, webbing, tailOffset, + noseOffset, mirror, positionOffset, webbingStartPos, + webbingEndPos, angle); + } - if(first && point.y < 0) - { - ox += step; - continue; - } + d.setTransform(savedTransform); + } - if(!first && point.y < 0) - break; + public static void printPieceWebbing(AbstractDraw d, double offsetX, + double offsetY, double scale, double rotation, BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset, boolean mirror, double positionOffset, + double webbingStartPos, double webbingEndPos, double angle) { + if (brd.isEmpty()) { + return; + } - //Find thickness and rocker at pos - double deck = BezierBoardDrawUtil.getDeck(brd, point.x, point.y, skinThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, point.x, point.y, skinThickness); + System.out.printf("\nWEBBING\n"); - if(first && deck < bottom) - { - ox += step; - continue; - } + GeneralPath path = new GeneralPath(); + + double span = webbingEndPos - webbingStartPos; - if(!first && deck < bottom) + int steps = (int) (span / 0.5); + double step = span / steps; + + double ox = webbingStartPos; + + double railOffset = distanceFromRail + frameThickness + webbing; + + Point2D.Double point = null; + boolean first = true; + for (int i = 0; i < steps; i++) { + // Use point from nose piece for end calculation + point = BezierBoardDrawUtil.getOutline(brd, ox, railOffset); + + System.out.printf("point(%f, %f)\n", point.x, point.y); + + if (point.y < webbing) { + if (first) + return; // Break out if there is somewhere without enough + // width + else break; + } - if(first) - { - first = false; - - //Calculate angle for nosepiece (Nose piece sit halfway between deck and bottom on the rail template at both ends) - double z1 = (bottom+deck)/2.0; - - double tmp = brd.getLength()-noseOffset; - double tmpDeck; - double tmpBottom; - Point2D.Double tmpPoint; - do{ - tmpPoint = BezierBoardDrawUtil.getOutline(brd, tmp, distanceFromRail); - - tmpDeck = BezierBoardDrawUtil.getDeck(brd, tmpPoint.x, tmpPoint.y, skinThickness); - tmpBottom = BezierBoardDrawUtil.getBottom(brd, tmpPoint.x, tmpPoint.y, skinThickness); - - tmp -= step; - }while(tmpDeck < tmpBottom); - - double z2 = (tmpBottom+tmpDeck)/2.0; - - angle = Math.atan2(z2-z1, tmp - ox); - - System.out.printf("angle: %f", angle*180.0/Math.PI); - - xf = point.x - webbing*2.0 - comp; - - } - - //Get the webbing point - point = BezierBoardDrawUtil.getOutline(brd, ox, distanceFromRail + webbing); + // Find thickness and rocker at pos + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, + point.x, point.y, skinThickness); - if(firstInSection) - { - firstInSection = false; - path.moveTo((point.x - xf)/Math.cos(angle), webbing); - } - - path.lineTo((point.x - xf)/Math.cos(angle), point.y); - - ox += step; + double bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation( + brd, point.x, point.y, skinThickness); + + if (deck < bottom) { + System.out.printf("Too thin, deck:%f, bottom:%f\n", deck, + bottom); + return; // Break out if there is somewhere without enough + // thickness } - path.lineTo((point.x - xf)/Math.cos(angle), webbing); - path.closePath(); - - d.draw(path); - - path.reset(); - - ox += webbing; + if (first) { + first = false; + path.moveTo((point.x - positionOffset) / Math.cos(angle), + webbing); + } + + path.lineTo((point.x - positionOffset) / Math.cos(angle), point.y); + + ox += step; } - - - d.setTransform(savedTransform); + + path.lineTo((point.x - positionOffset) / Math.cos(angle), webbing); + path.closePath(); + + d.draw(path); + } - public static void printStringerNosePieceCutOut(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) - { - - if(brd.isEmpty()) { + public static void printStringerNosePieceCutOut(AbstractDraw d, + double offsetX, double offsetY, double scale, double rotation, + BezierBoard brd, double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset) { + + if (brd.isEmpty()) { return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); - d.setStroke(stroke); - d.setColor(new Color(255,0,0)); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); + d.setStroke(stroke); BezierSpline outline = brd.getOutline(); - + System.out.printf("\nSTRINGER NOSE PIECE CUTOUT\n"); GeneralPath path = new GeneralPath(); - - double nosePieceLength = 9.0*UnitUtils.INCH - noseOffset; - double angle = getNosePieceStringerAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); - - double thicknessXOffset = Math.sin(angle)*frameThickness/2.0; - double thicknessYOffset = Math.cos(angle)*frameThickness/2.0; - - //Get the nose pos - double noseX = getRailMaxPos(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); - double noseDeck = BezierBoardDrawUtil.getRailDeck(brd, noseX, distanceFromRail, skinThickness); - double noseBottom = BezierBoardDrawUtil.getRailBottom(brd, noseX, distanceFromRail, skinThickness); - double noseZ = (noseDeck + noseBottom)/2.0; - double noseNormalAngle = outline.getNormalAngle(noseX); - //Find the point at distance from outline - noseX = noseX - (distanceFromRail *Math.sin(noseNormalAngle)); - - //Get the nose piece rear end pos - double nosePieceRearX = brd.getLength() - 9.0*UnitUtils.INCH ; - double nosePieceRearDeck = BezierBoardDrawUtil.getRailDeck(brd, nosePieceRearX, distanceFromRail, skinThickness); - double nosePieceRearBottom = BezierBoardDrawUtil.getRailBottom(brd, nosePieceRearX, distanceFromRail, skinThickness); - double nosePieceRearZ = (nosePieceRearDeck +nosePieceRearBottom)/2.0; - double nosePieceRearNormalAngle = outline.getNormalAngle(nosePieceRearX); - //Find the point at distance from outline - nosePieceRearX = nosePieceRearX - (distanceFromRail *Math.sin(nosePieceRearNormalAngle)); - - double nosePieceCutoutX = nosePieceRearX + (2.0*UnitUtils.INCH); - double nosePieceCutoutZ = nosePieceRearZ + (2.0*UnitUtils.INCH)/Math.cos(angle)*Math.sin(angle); + double nosePieceLength = 9.0 * UnitUtils.INCH - noseOffset; - double noseEndX = nosePieceRearX + nosePieceLength; - double noseEndZ = nosePieceRearZ + (nosePieceLength)*Math.sin(angle); - - d.setColor(new Color(255,0,0)); - path.moveTo(nosePieceRearX-thicknessXOffset, nosePieceRearZ+thicknessYOffset); - path.lineTo(noseX-thicknessXOffset, noseZ+thicknessYOffset); - path.lineTo(noseX+thicknessXOffset, noseZ-thicknessYOffset); - path.lineTo(nosePieceRearX+thicknessXOffset, nosePieceRearZ-thicknessYOffset); - path.closePath(); - - d.draw(path); - path.reset(); - - d.setColor(new Color(0,255,0)); - path.moveTo(nosePieceCutoutX-thicknessXOffset, nosePieceCutoutZ+thicknessYOffset); - path.lineTo(noseEndX-thicknessXOffset, noseEndZ+thicknessYOffset); - path.lineTo(noseEndX+thicknessXOffset, noseEndZ-thicknessYOffset); - path.lineTo(nosePieceCutoutX+thicknessXOffset, nosePieceCutoutZ-thicknessYOffset); + double angle = getNosePieceStringerAngle(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset); + + double thicknessXOffset = Math.sin(angle) * frameThickness / 2.0; + double thicknessYOffset = Math.cos(angle) * frameThickness / 2.0; + + // Get the nose pos + double noseX = getRailMaxPos(brd, distanceFromRail, skinThickness, + frameThickness, tailOffset, noseOffset); + double noseDeck = BezierBoardDrawUtil.getRailDeck(brd, noseX, + distanceFromRail, skinThickness); + double noseBottom = BezierBoardDrawUtil.getRailBottom(brd, noseX, + distanceFromRail, skinThickness); + double noseZ = (noseDeck + noseBottom) / 2.0; + double noseNormalAngle = outline.getNormalAngle(noseX); + // Find the point at distance from outline + noseX = noseX - (distanceFromRail * Math.sin(noseNormalAngle)); + + // Get the nose piece rear end pos + double nosePieceRearX = brd.getLength() - 9.0 * UnitUtils.INCH; + double nosePieceRearDeck = BezierBoardDrawUtil.getRailDeck(brd, + nosePieceRearX, distanceFromRail, skinThickness); + double nosePieceRearBottom = BezierBoardDrawUtil.getRailBottom(brd, + nosePieceRearX, distanceFromRail, skinThickness); + double nosePieceRearZ = (nosePieceRearDeck + nosePieceRearBottom) / 2.0; + double nosePieceRearNormalAngle = outline + .getNormalAngle(nosePieceRearX); + // Find the point at distance from outline + nosePieceRearX = nosePieceRearX + - (distanceFromRail * Math.sin(nosePieceRearNormalAngle)); + + double nosePieceCutoutX = nosePieceRearX + (2.0 * UnitUtils.INCH); + double nosePieceCutoutZ = nosePieceRearZ + (2.0 * UnitUtils.INCH) + / Math.cos(angle) * Math.sin(angle); + + double noseEndX = brd.getLength() - noseOffset; + double noseEndZ = nosePieceRearZ + (noseEndX - nosePieceRearX) + * Math.sin(angle); + + path.moveTo(nosePieceCutoutX - thicknessXOffset, nosePieceCutoutZ + + thicknessYOffset); + path.lineTo(noseEndX - thicknessXOffset, noseEndZ + thicknessYOffset); + path.lineTo(noseEndX + thicknessXOffset, noseEndZ - thicknessYOffset); + path.lineTo(nosePieceCutoutX + thicknessXOffset, nosePieceCutoutZ + - thicknessYOffset); path.closePath(); d.draw(path); - + d.setTransform(savedTransform); } - public static void printRailNosePieceNotches(AbstractDraw d, double offsetX, double offsetY, double scale, BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double webbing, double tailOffset, double noseOffset) - { - - if(brd.isEmpty()) { + public static void printRailNosePieceNotches(AbstractDraw d, + double offsetX, double offsetY, double scale, double rotation, + BezierBoard brd, double distanceFromRail, double skinThickness, + double frameThickness, double webbing, double tailOffset, + double noseOffset) { + + if (brd.isEmpty()) { return; } - - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, offsetX, offsetY, scale); - Stroke stroke = new BasicStroke((float)(2.0/scale)); + + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(d, + offsetX, offsetY, scale, rotation); + Stroke stroke = new BasicStroke((float) (2.0 / scale)); d.setStroke(stroke); -// d.setColor(new Color(255,0,0)); + d.setColor(new Color(0, 0, 255)); BezierSpline outline = brd.getOutline(); - - System.out.printf("\nRAIL TAIL PIECE NOTCHING\n"); + + System.out.printf("\nRAIL NOSE PIECE NOTCHING\n"); boolean first = true; GeneralPath path = new GeneralPath(); - + double ox = tailOffset; - - double nosePieceLength = 9.0*UnitUtils.INCH - noseOffset; - double span; + double nosePieceLength = 9.0 * UnitUtils.INCH - noseOffset; - double angle = getNosePieceRailAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); + double span; + + double angle = getNosePieceRailAngle(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset); double x = 0.0; - + double endPointX = 0.0; double endPointZ = 0.0; double endPointPos = 0.0; - + double lastX = 0.0; double lastY = 0.0; double lastPos = 0.0; - + double notchX = 0.0; double notchZ = 0.0; - + double thicknessXOffset = 0.0; double thicknessYOffset = 0.0; - + double deck = 0.0; boolean endFound = false; - for(int n = 0; n < 6; n++) - { - if(nosePieceLength > 5.0*UnitUtils.INCH) - { - switch(n) - { + for (int n = 0; n < 6; n++) { + if (nosePieceLength > 5.0 * UnitUtils.INCH) { + switch (n) { case 0: - span = brd.getLength() - 9.0*UnitUtils.INCH; + span = brd.getLength() - 9.0 * UnitUtils.INCH - noseOffset; break; case 1: - case 2: + case 2: case 4: case 5: - span = 1.0*UnitUtils.INCH; + span = 1.0 * UnitUtils.INCH; break; default: - span = nosePieceLength - 4.0*UnitUtils.INCH; + span = nosePieceLength - 4.0 * UnitUtils.INCH; break; } - } - else - { - if(n == 0){ - span = brd.getLength() - 9.0*UnitUtils.INCH - noseOffset; - } - else - { - span = (n+1)/5.0*nosePieceLength; + } else { + if (n == 0) { + span = brd.getLength() - 9.0 * UnitUtils.INCH - noseOffset; + } else { + span = (n + 1) / 5.0 * nosePieceLength; } } - - int steps = (int)(span/0.5); - double step = span/steps; + int steps = (int) (span / 0.5); + double step = span / steps; -/* System.out.printf("n: %d, span: %f, steps: %d, step: %f\n", n, span, steps, step);*/ + /* + * System.out.printf("n: %d, span: %f, steps: %d, step: %f\n", n, + * span, steps, step); + */ double bottom = 0.0; - for(int i = 0; i < steps; i++) - { - //Get the outline point and the angle + for (int i = 0; i < steps; i++) { + // Get the outline point and the angle double oy = outline.getValueAt(ox); double normalAngle = outline.getNormalAngle(ox); - - //Find the point at distance from outline - x = ox - (distanceFromRail *Math.sin(normalAngle)); - double y = oy - (distanceFromRail*Math.cos(normalAngle)); - - if(first && y < 0) - { + + // Find the point at distance from outline + x = ox - (distanceFromRail * Math.sin(normalAngle)); + double y = oy + (distanceFromRail * Math.cos(normalAngle)); + + if (first && y < 0) { ox += step; continue; } - - if(!first && y < 0) + + if (!first && y < 0) break; - - //Find thickness and rocker at pos - deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); - bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); - - if(deck < bottom) - { + + // Find thickness and rocker at pos + deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, x, + y, skinThickness); + bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation(brd, + x, y, skinThickness); + + if (deck < bottom) { ox += step; continue; } - - if(deck < bottom) - { + + if (deck < bottom) { break; } - - if(n > 0){ - //Find stringer thickness and rocker at pos - double deckAtStringer = BezierBoardDrawUtil.getDeck(brd, ox, 0.0, skinThickness); - double bottomAtStringer = BezierBoardDrawUtil.getBottom(brd, ox, 0.0, skinThickness); - - if(deckAtStringer < bottomAtStringer) - { - // break; + + if (n > 0) { + // Find stringer thickness and rocker at pos + double deckAtStringer = BezierBoardDrawUtil + .getDeckWithSkinCompensation(brd, ox, 0.0, + skinThickness); + double bottomAtStringer = BezierBoardDrawUtil + .getBottomWithSkinCompensation(brd, ox, 0.0, + skinThickness); + + if (deckAtStringer < bottomAtStringer) { + // break; } } - if(!endFound && n>0) - { - double z1 = (bottom+deck)/2.0; - + if (!endFound && n > 0) { + double z1 = (bottom + deck) / 2.0; + endPointX = ox; endPointZ = z1; endPointPos = lastPos; first = false; - /* - Line2D.Double point = new Line2D.Double(); - point.setLine(lastPos, endPointZ,lastPos, endPointZ); - d.draw(point); -*/ - thicknessXOffset = Math.sin(angle)*frameThickness/2.0; - thicknessYOffset = Math.cos(angle)*frameThickness/2.0; - + /* + * Line2D.Double point = new Line2D.Double(); + * point.setLine(lastPos, endPointZ,lastPos, endPointZ); + * d.draw(point); + */ + thicknessXOffset = Math.sin(angle) * frameThickness / 2.0; + thicknessYOffset = Math.cos(angle) * frameThickness / 2.0; + endFound = true; } - if(!first) - { - //Find the 2D length from the last point on deck and bottom - double xd = x-lastX; - double yd = y-lastY; - double stepLength = Math.sqrt((xd*xd)+(yd*yd)); - + if (!first) { + // Find the 2D length from the last point on deck and bottom + double xd = x - lastX; + double yd = y - lastY; + double stepLength = Math.sqrt((xd * xd) + (yd * yd)); + double newPos = lastPos + stepLength; - /* - Line2D.Double line = new Line2D.Double(); - line.setLine(lastPos, bottom, newPos, bottom); - d.draw(line); -*/ - //Update last pos + /* + * Line2D.Double line = new Line2D.Double(); + * line.setLine(lastPos, bottom, newPos, bottom); + * d.draw(line); + */ + // Update last pos lastPos = newPos; - } - else - { + } else { first = false; } - /*Debug*/ - + /* Debug */ + lastX = x; lastY = y; - + ox += step; } - -/* System.out.printf("-------------------spanned: %f\n", ox-temp);*/ -/* - Line2D.Double line = new Line2D.Double(); - line.setLine(lastPos, deck, lastPos, deck + 8.0); - d.draw(line); -*/ - System.out.printf("ox: %f, x: %f, lastPos: %f deck:%f bottom:%f\n", ox, x, lastPos,deck,bottom); - - //Check if we should store pos - if(n%2==1) - { - //Store for notching + + /* System.out.printf("-------------------spanned: %f\n", ox-temp); */ + /* + * Line2D.Double line = new Line2D.Double(); line.setLine(lastPos, + * deck, lastPos, deck + 8.0); d.draw(line); + */ + System.out.printf("ox: %f, x: %f, lastPos: %f deck:%f bottom:%f\n", + ox, x, lastPos, deck, bottom); + + // Check if we should store pos + if (n % 2 == 1) { + // Store for notching notchX = lastPos; - notchZ = endPointZ + (((ox - endPointX)/Math.cos(angle))*Math.sin(angle)); -/* System.out.printf("notchX: %f, notchY: %f\n", notchX, notchZ);*/ - -/* Line2D.Double line = new Line2D.Double(); - line.setLine(notchX, notchZ, notchX, notchZ); - d.draw(line); -*/ } - else if(n%2==0 && n > 0) - { + notchZ = endPointZ + + (((ox - endPointX) / Math.cos(angle)) * Math + .sin(angle)); + /* + * System.out.printf("notchX: %f, notchY: %f\n", notchX, + * notchZ); + */ + + /* + * Line2D.Double line = new Line2D.Double(); + * line.setLine(notchX, notchZ, notchX, notchZ); d.draw(line); + */} else if (n % 2 == 0 && n > 0) { double otherEndX = lastPos; - double otherEndZ = endPointZ + (((ox - endPointX)/Math.cos(angle))*Math.sin(angle)); -/* System.out.printf("otherEndX: %f, otherEndZ: %f\n", otherEndX, otherEndZ);*/ -/* - Line2D.Double line = new Line2D.Double(); - line.setLine(otherEndX, otherEndZ, otherEndX, otherEndZ); - d.draw(line); - path.moveTo(notchX, notchZ); - path.lineTo(otherEndX, otherEndZ);*/ - d.setColor(new Color(255,0,0)); - path.moveTo(notchX-thicknessXOffset, notchZ+thicknessYOffset); - path.lineTo(otherEndX-thicknessXOffset, otherEndZ+thicknessYOffset); - path.lineTo(endPointX + otherEndX+thicknessXOffset - endPointX, otherEndZ-thicknessYOffset); - path.lineTo(endPointX + notchX+thicknessXOffset - endPointX, notchZ-thicknessYOffset); - - System.out.printf("notchX:%f notchZ:%f otherEndX:%f otherEndZ:%f\n", notchX, notchZ, otherEndX, otherEndZ); + double otherEndZ = endPointZ + + (((ox - endPointX) / Math.cos(angle)) * Math + .sin(angle)); + /* + * System.out.printf("otherEndX: %f, otherEndZ: %f\n", + * otherEndX, otherEndZ); + */ + /* + * Line2D.Double line = new Line2D.Double(); + * line.setLine(otherEndX, otherEndZ, otherEndX, otherEndZ); + * d.draw(line); path.moveTo(notchX, notchZ); + * path.lineTo(otherEndX, otherEndZ); + */ + d.setColor(new Color(255, 0, 0)); + path.moveTo(notchX - thicknessXOffset, notchZ + + thicknessYOffset); + path.lineTo(otherEndX - thicknessXOffset, otherEndZ + + thicknessYOffset); + path.lineTo(endPointX + otherEndX + thicknessXOffset + - endPointX, otherEndZ - thicknessYOffset); + path.lineTo(endPointX + notchX + thicknessXOffset - endPointX, + notchZ - thicknessYOffset); + + System.out.printf( + "notchX:%f notchZ:%f otherEndX:%f otherEndZ:%f\n", + notchX, notchZ, otherEndX, otherEndZ); path.closePath(); d.draw(path); - + path.reset(); } - - } -/* Line2D.Double line = new Line2D.Double(); - d.setColor(new Color(0,255,0)); - line.setLine(endPointPos, endPointZ, lastPos, deck+bottom/2); - d.draw(line); - - d.setColor(new Color(0,0,255)); - line.setLine(endPointPos, endPointZ, lastPos, endPointZ + (((ox-step-endPointX)/Math.cos(angle))*Math.sin(angle))); - d.draw(line); -*/ + } + /* + * Line2D.Double line = new Line2D.Double(); d.setColor(new + * Color(0,255,0)); line.setLine(endPointPos, endPointZ, lastPos, + * deck+bottom/2); d.draw(line); + * + * d.setColor(new Color(0,0,255)); line.setLine(endPointPos, endPointZ, + * lastPos, endPointZ + + * (((ox-step-endPointX)/Math.cos(angle))*Math.sin(angle))); + * d.draw(line); + */ d.setTransform(savedTransform); } - - //helper functions - static double getTailPieceStringerAngle(BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double tailOffset, double noseOffset){ - + + // helper functions + static double getTailPieceStringerAngle(BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double tailOffset, double noseOffset) { + BezierSpline outline = brd.getOutline(); - - //Get the tail pos - double tailX = getRailMinPos(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); - double tailDeck = BezierBoardDrawUtil.getRailDeck(brd, tailX, distanceFromRail, skinThickness); - double tailBottom = BezierBoardDrawUtil.getRailBottom(brd, tailX, distanceFromRail, skinThickness); - double tailZ = (tailDeck +tailBottom)/2.0; - double tailNormalAngle = outline.getNormalAngle(tailX); - tailX = tailX - (distanceFromRail *Math.sin(tailNormalAngle)); - - //Get the second tail pos - double tailPieceFrontX = 9.0*UnitUtils.INCH; + + // Get the tail pos + double railMin = getRailMinPos(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); + System.out.printf("getTailPieceStringerAngle() railMin:%f\n", railMin); + double tailDeck = BezierBoardDrawUtil.getRailDeck(brd, railMin, distanceFromRail, skinThickness); + double tailBottom = BezierBoardDrawUtil.getRailBottom(brd, railMin, distanceFromRail, skinThickness); + double tailZ = (tailDeck + tailBottom) / 2.0; + double tailNormalAngle = outline.getNormalAngle(railMin); + System.out.printf("getTailPieceStringerAngle() distanceFromRail:%f tailNormalAngle:%f\n", distanceFromRail, Math.toDegrees(tailNormalAngle)); + double tailX = railMin - (distanceFromRail * Math.sin(tailNormalAngle)); + System.out.printf("getTailPieceStringerAngle() tailDeck:%f tailBottom:%f\n", tailDeck, tailBottom); + System.out.printf("getTailPieceStringerAngle() tailX:%f tailZ:%f\n", tailX, tailZ); + + // Get the second tail pos + double tailPieceFrontX = 9.0 * UnitUtils.INCH; + System.out.printf( "getTailPieceStringerAngle() tailPieceFrontX:%f\n", tailPieceFrontX); double tailPieceFrontDeck = BezierBoardDrawUtil.getRailDeck(brd, tailPieceFrontX, distanceFromRail, skinThickness); double tailPieceFrontBottom = BezierBoardDrawUtil.getRailBottom(brd, tailPieceFrontX, distanceFromRail, skinThickness); - double tailPieceFrontZ = (tailPieceFrontDeck +tailPieceFrontBottom)/2.0; - double tailPieceFrontNormalAngle = outline.getNormalAngle(tailPieceFrontX); - //Find the point at distance from outline - tailPieceFrontX = tailPieceFrontX - (distanceFromRail *Math.sin(tailPieceFrontNormalAngle)); - - //Calculate angle - double angle = Math.atan2(tailPieceFrontZ-tailZ, tailPieceFrontX - tailX); - - return angle; - } + System.out.printf("getTailPieceStringerAngle() tailPieceFrontDeck:%f tailPieceFrontBottom:%f\n", tailPieceFrontDeck, tailPieceFrontBottom); - static double getTailPieceRailAngle(BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double tailOffset, double noseOffset){ - - //Calculate angle - double angle = getTailPieceStringerAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); + double tailPieceFrontZ = (tailPieceFrontDeck + tailPieceFrontBottom) / 2.0; + double tailPieceFrontNormalAngle = outline.getNormalAngle(tailPieceFrontX); + // Find the point at distance from outline + System.out.printf( "getTailPieceStringerAngle() tailPieceFrontNormalAngle:%f\n", Math.toDegrees(tailPieceFrontNormalAngle)); + tailPieceFrontX = tailPieceFrontX - (distanceFromRail * Math.sin(tailPieceFrontNormalAngle)); + System.out.printf( "getTailPieceStringerAngle() tailPieceFrontX:%f tailPieceFrontZ:%f\n", tailPieceFrontX, tailPieceFrontZ); + + // Calculate angle + double h = tailPieceFrontZ - tailZ; + double w = tailPieceFrontX - tailX; + System.out.printf("getTailPieceStringerAngle() h:%f w:%f\n", h, w); +// double angle = Math.atan2(tailPieceFrontZ - tailZ, tailPieceFrontX - tailX); + double angle = Math.atan2(h, w); + System.out.printf("getTailPieceStringerAngle() angle:%f\n", Math.toDegrees(angle)); + return angle; } - static double getNosePieceStringerAngle(BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double tailOffset, double noseOffset){ + static double getNosePieceStringerAngle(BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double tailOffset, double noseOffset) { BezierSpline outline = brd.getOutline(); - //Get the nose pos - double noseX = getRailMaxPos(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); - double noseDeck = BezierBoardDrawUtil.getRailDeck(brd, noseX, distanceFromRail, skinThickness); - double noseBottom = BezierBoardDrawUtil.getRailBottom(brd, noseX, distanceFromRail, skinThickness); - double noseZ = (noseDeck +noseBottom)/2.0; + // Get the nose pos + double noseX = getRailMaxPos(brd, distanceFromRail, skinThickness, + frameThickness, tailOffset, noseOffset); + double noseDeck = BezierBoardDrawUtil.getRailDeck(brd, noseX, + distanceFromRail, skinThickness); + double noseBottom = BezierBoardDrawUtil.getRailBottom(brd, noseX, + distanceFromRail, skinThickness); + double noseZ = (noseDeck + noseBottom) / 2.0; double noseNormalAngle = outline.getNormalAngle(noseX); - noseX = noseX - (distanceFromRail *Math.sin(noseNormalAngle)); - - //Get the nose piece rear end pos - double nosePieceRearX = brd.getLength() - 9.0*UnitUtils.INCH ; - double nosePieceRearDeck = BezierBoardDrawUtil.getRailDeck(brd, nosePieceRearX, distanceFromRail, skinThickness); - double nosePieceRearBottom = BezierBoardDrawUtil.getRailBottom(brd, nosePieceRearX, distanceFromRail, skinThickness); - double nosePieceRearZ = (nosePieceRearDeck +nosePieceRearBottom)/2.0; - double nosePieceRearNormalAngle = outline.getNormalAngle(nosePieceRearX); - //Find the point at distance from outline - nosePieceRearX = nosePieceRearX - (distanceFromRail *Math.sin(nosePieceRearNormalAngle)); - - //Calculate angle - double angle = Math.atan2(noseZ-nosePieceRearZ, noseX - nosePieceRearX); - + noseX = noseX - (distanceFromRail * Math.sin(noseNormalAngle)); + + // Get the nose piece rear end pos + double nosePieceRearX = brd.getLength() - 9.0 * UnitUtils.INCH; + double nosePieceRearDeck = BezierBoardDrawUtil.getRailDeck(brd, + nosePieceRearX, distanceFromRail, skinThickness); + double nosePieceRearBottom = BezierBoardDrawUtil.getRailBottom(brd, + nosePieceRearX, distanceFromRail, skinThickness); + double nosePieceRearZ = (nosePieceRearDeck + nosePieceRearBottom) / 2.0; + double nosePieceRearNormalAngle = outline + .getNormalAngle(nosePieceRearX); + // Find the point at distance from outline + nosePieceRearX = nosePieceRearX + - (distanceFromRail * Math.sin(nosePieceRearNormalAngle)); + + // Calculate angle + double angle = Math.atan2(noseZ - nosePieceRearZ, noseX + - nosePieceRearX); + System.out.printf("\noseZ:%f\n", noseZ); + System.out.printf("nosePieceRearZ:%f\n", nosePieceRearZ); + System.out.printf("noseX:%f\n", noseX); + System.out.printf("nosePieceRearX:%f\n", nosePieceRearX); + System.out.printf("angle:%f\n", angle); + return angle; - + } - static double getNosePieceRailAngle(BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double tailOffset, double noseOffset){ - double angle = getNosePieceStringerAngle(brd, distanceFromRail, skinThickness, frameThickness, tailOffset, noseOffset); - - System.out.printf("getNosePieceRailAngle() Angle: %f\n", angle*180.0/Math.PI); -/* - double endz = nosePieceRearZ + (((nosePieceRailLength)/Math.cos(angle))*Math.sin(angle)); - System.out.printf("getNosePieceRailAngle() endz: %f\n", endz); -*/ + static double getNosePieceRailAngle(BezierBoard brd, + double distanceFromRail, double skinThickness, + double frameThickness, double tailOffset, double noseOffset) { + double angle = getNosePieceStringerAngle(brd, distanceFromRail, + skinThickness, frameThickness, tailOffset, noseOffset); + + System.out.printf("getNosePieceRailAngle() Angle: %f\n", angle * 180.0 + / Math.PI); + /* + * double endz = nosePieceRearZ + + * (((nosePieceRailLength)/Math.cos(angle))*Math.sin(angle)); + * System.out.printf("getNosePieceRailAngle() endz: %f\n", endz); + */ return angle; } - - static double getRailMinPos(BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double tailOffset, double noseOffset){ + + static double getRailMinPos(BezierBoard brd, double distanceFromRail, + double skinThickness, double frameThickness, double tailOffset, + double noseOffset) { double ox = tailOffset; double oy = 0.0; - + double x = 0.0; double y = 0.0; - + double normalAngle = 0.0; - - double span = brd.getLength(); - - int steps = (int)(span/0.5); - double step = span/steps; + + double span = brd.getLength(); + + int steps = (int) (span / 0.5); + double step = span / steps; BezierSpline outline = brd.getOutline(); - - for(int i = 0; i < steps; i++) - { - //Get the outline point and the angle + + for (int i = 0; i < steps; i++) { + // Get the outline point and the angle oy = outline.getValueAt(ox); normalAngle = outline.getNormalAngle(ox); - - //Find the point at distance from outline - x = ox - (distanceFromRail*Math.sin(normalAngle)); - y = oy - (distanceFromRail*Math.cos(normalAngle)); - if(y < 0) - { + // Find the point at distance from outline + x = ox - (distanceFromRail * Math.sin(normalAngle)); + y = oy - (distanceFromRail * Math.cos(normalAngle)); + + if (y < 0) { ox += step; continue; } - //Find thickness and rocker at pos - double deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); + // Find thickness and rocker at pos + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, + x, y, skinThickness); + double bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation( + brd, x, y, skinThickness); - if(deck < bottom) - { + if (deck < bottom) { ox += step; continue; } - + break; } return ox; } - static double getRailMaxPos(BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double tailOffset, double noseOffset) - { + static double getRailMaxPos(BezierBoard brd, double distanceFromRail, + double skinThickness, double frameThickness, double tailOffset, + double noseOffset) { double ox = brd.getLength() - noseOffset; double oy = 0.0; - + double x = 0.0; double y = 0.0; - + double normalAngle = 0.0; - - double span = brd.getLength() - noseOffset - tailOffset; - - int steps = (int)(span/0.5); - double step = span/steps; + + double span = brd.getLength() - noseOffset - tailOffset; + + int steps = (int) (span / 0.5); + double step = span / steps; BezierSpline outline = brd.getOutline(); - - for(int i = 0; i < steps; i++) - { - //Get the outline point and the angle + + for (int i = 0; i < steps; i++) { + // Get the outline point and the angle oy = outline.getValueAt(ox); normalAngle = outline.getNormalAngle(ox); - - //Find the point at distance from outline - x = ox - (distanceFromRail*Math.sin(normalAngle)); - y = oy - (distanceFromRail*Math.cos(normalAngle)); - if(y < 0) - { + // Find the point at distance from outline + x = ox - (distanceFromRail * Math.sin(normalAngle)); + y = oy - (distanceFromRail * Math.cos(normalAngle)); + + if (y < 0) { ox -= step; continue; } - //Find thickness and rocker at pos - double deck = BezierBoardDrawUtil.getDeck(brd, x, y, skinThickness); - double bottom = BezierBoardDrawUtil.getBottom(brd, x, y, skinThickness); + // Find thickness and rocker at pos + double deck = BezierBoardDrawUtil.getDeckWithSkinCompensation(brd, + x, y, skinThickness); + double bottom = BezierBoardDrawUtil.getBottomWithSkinCompensation( + brd, x, y, skinThickness); - if(deck > bottom) - { + if (deck > bottom) { break; } @@ -2533,59 +2766,56 @@ static double getRailMaxPos(BezierBoard brd, double distanceFromRail, double ski return ox; } - static double getRailLength(BezierBoard brd, double distanceFromRail, double skinThickness, double frameThickness, double tailOffset, double noseOffset, double from, double to) - { + static double getRailLength(BezierBoard brd, double distanceFromRail, + double skinThickness, double frameThickness, double tailOffset, + double noseOffset, double from, double to) { double ox = from; double oy = 0.0; - + double x = 0.0; double y = 0.0; - + double normalAngle = 0.0; - - double span = to-from; - - int steps = (int)(span/0.5); - double step = span/steps; + + double span = to - from; + + int steps = (int) (span / 0.5); + double step = span / steps; BezierSpline outline = brd.getOutline(); boolean first = true; double lastX = 0.0; double lastY = 0.0; - double lastPos = 0.0; - for(int i = 0; i < steps; i++) - { - //Get the outline point and the angle + double length = 0.0; + for (int i = 0; i < steps; i++) { + // Get the outline point and the angle oy = outline.getValueAt(ox); normalAngle = outline.getNormalAngle(ox); - - //Find the point at distance from outline - x = ox - (distanceFromRail*Math.sin(normalAngle)); - y = oy - (distanceFromRail*Math.cos(normalAngle)); - if(!first) - { - double xd = x-lastX; - double yd = y-lastY; - double stepLength = Math.sqrt((xd*xd)+(yd*yd)); - - double newPos = lastPos + stepLength; - - //Update last pos - lastPos = newPos; - } - else - { + // Find the point at distance from outline + x = ox - (distanceFromRail * Math.sin(normalAngle)); + y = oy - (distanceFromRail * Math.cos(normalAngle)); + + if (!first) { + double xd = x - lastX; + double yd = y - lastY; + double stepLength = Math.sqrt((xd * xd) + (yd * yd)); + + double newLength = length + stepLength; + + // Update last pos + length = newLength; + } else { first = false; } - + lastX = x; lastY = y; - + ox += step; } - return lastPos; + return length; } - + } diff --git a/boardcad/print/PrintSandwichTemplates.java b/boardcad/print/PrintSandwichTemplates.java index 0a2f40a..da217e1 100644 --- a/boardcad/print/PrintSandwichTemplates.java +++ b/boardcad/print/PrintSandwichTemplates.java @@ -259,9 +259,9 @@ public void paintComponent(Graphics g) { // BezierBoardDrawUtil.printBottomSkinTemplate(jd, border, dim.height*4.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 3.0); // BezierBoardDrawUtil.printCrossSection(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 50.0, 3.0, 0.8); // BezierBoardDrawUtil.printCrossSection(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 50.0); - BezierBoardDrawUtil.printProfile(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), false,BoardCAD.getInstance().getCurrentBrd(), 0.0, 0.0, false, 0.0, 0.0); - BezierBoardDrawUtil.printProfile(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 5.0, 0.0, false, 0.0, 0.0); - BezierBoardDrawUtil.printProfile(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 20.0, 0.0, false, 0.0, 0.0); + BezierBoardDrawUtil.printProfile(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), 0.0, false,BoardCAD.getInstance().getCurrentBrd(), 0.0, 0.0, false, 0.0, 0.0); + BezierBoardDrawUtil.printProfile(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), 0.0, true,BoardCAD.getInstance().getCurrentBrd(), 5.0, 0.0, false, 0.0, 0.0); + BezierBoardDrawUtil.printProfile(jd, border, dim.height*2.0/5.0, (dim.width-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), 0.0, true,BoardCAD.getInstance().getCurrentBrd(), 20.0, 0.0, false, 0.0, 0.0); } @@ -368,7 +368,7 @@ int printProfileTemplate(PageFormat pageFormat, int pageIndex, Graphics g) BezierBoardDrawUtil.printProfile(new JavaDraw(g2d), -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mProfileOffset, mSkinThickness, mFlatten, 0.0, 0.0); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), mProfileOffset, mSkinThickness, mFlatten, 0.0, 0.0); return 0; } @@ -412,7 +412,7 @@ int printRailTemplate(PageFormat pageFormat, int pageIndex, Graphics g) BezierBoardDrawUtil.printRailTemplate(new JavaDraw(g2d), -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mTailOffset, mNoseOffset, mFlatten); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail, mSkinThickness, mTailOffset, mNoseOffset, mFlatten); return 0; } @@ -456,7 +456,7 @@ int printDeckSkinTemplate(PageFormat pageFormat, int pageIndex, Graphics g) BezierBoardDrawUtil.printDeckSkinTemplate(new JavaDraw(g2d), -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail); return 0; } @@ -500,7 +500,7 @@ int printBottomSkinTemplate(PageFormat pageFormat, int pageIndex, Graphics g) BezierBoardDrawUtil.printBottomSkinTemplate(new JavaDraw(g2d), -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), mDistanceToRail); return 0; } @@ -544,11 +544,11 @@ int printCrosssectionTemplate(PageFormat pageFormat, int pageIndex, Graphics g) BezierBoardDrawUtil.printCrossSection(new JavaDraw(g2d), -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos, mDistanceToRail, mSkinThickness); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos, mDistanceToRail, mSkinThickness); BezierBoardDrawUtil.printCrossSection(new JavaDraw(g2d), -pageFormat.getImageableWidth()*(pageIndex%widthInPages), - -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, true, BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos); + -pageFormat.getImageableHeight()*(pageIndex/widthInPages), 72/2.54, 0.0, true, BoardCAD.getInstance().getCurrentBrd(), mCrosssectionPos); return 0; } diff --git a/boardcad/print/PrintSpecSheet.java b/boardcad/print/PrintSpecSheet.java index ff3e538..d256fc6 100644 --- a/boardcad/print/PrintSpecSheet.java +++ b/boardcad/print/PrintSpecSheet.java @@ -192,18 +192,18 @@ public void paintComponent(Graphics g) { format.setPaper(paper); // printDetailedSpecSheet(format, 0, g2d); printNewSpecSheet(format, 0, g2d); -// BezierBoardDrawUtil.printOutline(jd, border, dim.height*1.0/5.0, 0.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true, BoardCAD.getInstance().getCurrentBrd(), false, false); -// BezierBoardDrawUtil.printOutlineOverCurve(jd, border, dim.height*1.0/5.0, 0.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true, BoardCAD.getInstance().getCurrentBrd(), false, false, false, false); +// BezierBoardDrawUtil.printOutline(jd, border, dim.height*1.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()),0.0, true, BoardCAD.getInstance().getCurrentBrd(), false, false); +// BezierBoardDrawUtil.printOutlineOverCurve(jd, border, dim.height*1.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), 0.0, true, BoardCAD.getInstance().getCurrentBrd(), false, false, false, false); -// BezierBoardDrawUtil.printSpinTemplate(jd, border, dim.height*2.0/5.0, 0.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true, BoardCAD.getInstance().getCurrentBrd(), false, false); -// BezierBoardDrawUtil.printSpinTemplateOverCurve(jd, border, dim.height*2.0/5.0, 0.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true, BoardCAD.getInstance().getCurrentBrd(), false, false); +// BezierBoardDrawUtil.printSpinTemplate(jd, border, dim.height*2.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), 0.0, true, BoardCAD.getInstance().getCurrentBrd(), false, false); +// BezierBoardDrawUtil.printSpinTemplateOverCurve(jd, border, dim.height*2.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()),0.0, true, BoardCAD.getInstance().getCurrentBrd(), false, false); /* - BezierBoardDrawUtil.printProfile(jd, border, dim.height*3.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(),false); - BezierBoardDrawUtil.printRailTemplate(jd, border, dim.height*3.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), 3.0); + BezierBoardDrawUtil.printProfile(jd, border, dim.height*3.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()),0.0, true,BoardCAD.getInstance().getCurrentBrd(),false); + BezierBoardDrawUtil.printRailTemplate(jd, border, dim.height*3.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()),0.0, true,BoardCAD.getInstance().getCurrentBrd(), 3.0); for(int i = 1; i < BoardCAD.getInstance().getCurrentBrd().getCrossSections().size()-1; i++) { - BezierBoardDrawUtil.printSlice(jd, border, dim.height*4.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()), true,BoardCAD.getInstance().getCurrentBrd(), i,false); + BezierBoardDrawUtil.printSlice(jd, border, dim.height*4.0/5.0, (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()),0.0, true,BoardCAD.getInstance().getCurrentBrd(), i,false); } final BezierSpline p = BoardCAD.getInstance().getCurrentBrd().getInterpolatedCrossSection(BoardCAD.getInstance().getCurrentBrd().getLength()/2.0).getBezierSpline(); @@ -212,7 +212,7 @@ public void paintComponent(Graphics g) { double mScale = (dim.mImagableWidth-(border*2))/(BoardCAD.getInstance().getCurrentBrd().getLength()); - BezierBoardDrawUtil.paintFunction(jd, border, dim.height/2.0, mScale, new Color(0,0,0), new BasicStroke((float)(2.0/mScale)), func, 0.0, 1.0, 200.0, 10.0); + BezierBoardDrawUtil.paintFunction(jd, border, dim.height/2.0, mScale,0.0, new Color(0,0,0), new BasicStroke((float)(2.0/mScale)), func, 0.0, 1.0, 200.0, 10.0); */ } @@ -315,7 +315,7 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) Line2D.Double line = new Line2D.Double(); JavaDraw jd = new JavaDraw(g2d); - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, mScale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, mScale, 0.0); g2d.setStroke(linestroke); g2d.setColor(Color.GRAY); @@ -350,8 +350,8 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) g2d.setTransform(savedTransform); Stroke stroke = new BasicStroke((float)(1.5/mScale)); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, Color.BLACK, stroke, mBrd.getOutline(), BezierBoardDrawUtil.MirrorY, false); - BezierBoardDrawUtil.paintFins(jd, xm+5, currentY, mScale, Color.BLACK, stroke, mBrd.getFins(), false,false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getOutline(), BezierBoardDrawUtil.MirrorY, false); + BezierBoardDrawUtil.paintFins(jd, xm+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getFins(), false,false); currentY += (mBrd.getCenterWidth()/2)*mScale + hgt + 5; @@ -379,7 +379,7 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) currentY += mBrd.getMaxRocker()*mScale +10; - savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, mScale); + savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, mScale, 0.0); g2d.setStroke(linestroke); line.setLine(tailpos, -(tailThickness+tail1Rocker), tailpos, -tail1Rocker); @@ -401,8 +401,8 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) g2d.setTransform(savedTransform); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, Color.BLACK, stroke, mBrd.getDeck(), BezierBoardDrawUtil.FlipY, false); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, Color.BLACK, stroke, mBrd.getBottom(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getDeck(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getBottom(), BezierBoardDrawUtil.FlipY, false); currentY += hgt + 5; @@ -441,7 +441,7 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) currentY += mBrd.getThickness()*mScale + 5; - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+mImagableWidth/2, currentY, 0.0, mScale, Color.BLACK, linestroke, false, true, mBrd.getLength()/2, mBrd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+mImagableWidth/2, currentY, mScale, 0.0, Color.BLACK, linestroke, false, true, mBrd.getLength()/2, mBrd); currentY += hgt; @@ -451,9 +451,9 @@ int printSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) currentY += hgt+10; - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((mImagableWidth/3)*1), currentY, 0.0, mScale, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((mImagableWidth/3)*1), currentY, mScale, 0.0, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((mImagableWidth/3)*2), currentY, 0.0, mScale, Color.BLACK, linestroke, false, true, mBrd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((mImagableWidth/3)*2), currentY, mScale, 0.0, Color.BLACK, linestroke, false, true, mBrd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); currentY += hgt; String tailString = LanguageResource.getString("TAIL_STR"); @@ -602,7 +602,7 @@ int printDetailedSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) Line2D.Double line = new Line2D.Double(); JavaDraw jd = new JavaDraw(g2d); - AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, mScale); + AffineTransform savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, mScale, 0.0); //Outline Crossection lines g2d.setStroke(linestroke); @@ -638,8 +638,8 @@ int printDetailedSpecSheet(PageFormat pageFormat, int pageIndex, Graphics g) g2d.setTransform(savedTransform); Stroke stroke = new BasicStroke((float)(1.5/mScale)); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, Color.BLACK, stroke, mBrd.getOutline(), BezierBoardDrawUtil.MirrorY, false); - BezierBoardDrawUtil.paintFins(jd, xm+5, currentY, mScale, Color.BLACK, stroke, mBrd.getFins(), false,false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getOutline(), BezierBoardDrawUtil.MirrorY, false); + BezierBoardDrawUtil.paintFins(jd, xm+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getFins(), false,false); currentY += (mBrd.getCenterWidth()/2)*mScale + hgt + 5; @@ -685,7 +685,7 @@ else if(i == 3) currentY += mBrd.getMaxRocker()*mScale +10; - savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, mScale); + savedTransform = BezierBoardDrawUtil.setTransform(jd, xm+5, currentY, mScale, 0.0); //Draw lines from numbers g2d.setStroke(linestroke); @@ -708,8 +708,8 @@ else if(i == 3) g2d.setTransform(savedTransform); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, Color.BLACK, stroke, mBrd.getDeck(), BezierBoardDrawUtil.FlipY, false); - BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, Color.BLACK, stroke, mBrd.getBottom(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getDeck(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, xm+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getBottom(), BezierBoardDrawUtil.FlipY, false); currentY += hgt + 5; @@ -761,9 +761,9 @@ else if(i == 3) currentY += hgt+10; //Draw - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((mImagableWidth/3)*1), currentY, Math.PI/2.0, mScale, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((mImagableWidth/3)*1), currentY, mScale, Math.PI/2.0, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); - BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((mImagableWidth/3)*2), currentY, Math.PI/2.0, mScale, Color.BLACK, linestroke, false, true, mBrd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, xm+5+((mImagableWidth/3)*2), currentY, mScale, Math.PI/2.0, Color.BLACK, linestroke, false, true, mBrd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, brd); currentY += hgt; String tailString = LanguageResource.getString("TAIL_STR"); @@ -903,8 +903,8 @@ float printBoardHorizontal(Graphics2D g2d, float currentY) //Outline Stroke stroke = new BasicStroke((float)(1.5/mScale)); - BezierBoardDrawUtil.paintBezierSpline(jd, mImagableX+5, currentY, mScale, Color.BLACK, stroke, mBrd.getOutline(), BezierBoardDrawUtil.MirrorY, false); - BezierBoardDrawUtil.paintFins(jd, mImagableX+5, currentY, mScale, Color.BLACK, stroke, mBrd.getFins(), false, false); + BezierBoardDrawUtil.paintBezierSpline(jd, mImagableX+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getOutline(), BezierBoardDrawUtil.MirrorY, false); + BezierBoardDrawUtil.paintFins(jd, mImagableX+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getFins(), false, false); //Stringer Line2D.Double line = new Line2D.Double(); @@ -914,8 +914,8 @@ float printBoardHorizontal(Graphics2D g2d, float currentY) currentY += (mBrd.getCenterWidth()/2)*mScale + mBrd.getMaxRocker()*mScale; //Profile - BezierBoardDrawUtil.paintBezierSpline(jd, mImagableX+5, currentY, mScale, Color.BLACK, stroke, mBrd.getDeck(), BezierBoardDrawUtil.FlipY, false); - BezierBoardDrawUtil.paintBezierSpline(jd, mImagableX+5, currentY, mScale, Color.BLACK, stroke, mBrd.getBottom(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, mImagableX+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getDeck(), BezierBoardDrawUtil.FlipY, false); + BezierBoardDrawUtil.paintBezierSpline(jd, mImagableX+5, currentY, mScale, 0.0, Color.BLACK, stroke, mBrd.getBottom(), BezierBoardDrawUtil.FlipY, false); return currentY; } @@ -1060,7 +1060,7 @@ float printCrossSections(Graphics2D g2d, float currentY) Stroke linestroke = new BasicStroke((float)(1.5/mScale)); - BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+mImagableWidth/2, currentY, 0, mScale, Color.BLACK, linestroke, false, true, mBrd.getLength()/2, mBrd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+mImagableWidth/2, currentY, mScale, 0, Color.BLACK, linestroke, false, true, mBrd.getLength()/2, mBrd); g2d.setFont(mPrintFontNormal); @@ -1073,9 +1073,9 @@ float printCrossSections(Graphics2D g2d, float currentY) currentY += mBrd.getMaxThickness()*mScale; //Draw - BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+((mImagableWidth/3)*1), currentY, 0.0, mScale, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+((mImagableWidth/3)*1), currentY, mScale, 0.0, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); - BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+((mImagableWidth/3)*2), currentY, 0.0, mScale, Color.BLACK, linestroke, false, true, mBrd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+((mImagableWidth/3)*2), currentY, mScale, 0.0, Color.BLACK, linestroke, false, true, mBrd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); currentY += mNormalFontHeight; String tailString = LanguageResource.getString("TAIL_STR"); @@ -1100,7 +1100,7 @@ float printOverlayedCrossSections(Graphics2D g2d, float currentY) Stroke linestroke = new BasicStroke((float)(2.0/mScale)); - BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+mImagableWidth/2, currentY, Math.PI/2.0, mScale, Color.BLACK, linestroke, false, true, mBrd.getLength()/2, mBrd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+mImagableWidth/2, currentY, mScale, Math.PI/2.0, Color.BLACK, linestroke, false, true, mBrd.getLength()/2, mBrd); g2d.setFont(mPrintFontNormal); @@ -1113,9 +1113,9 @@ float printOverlayedCrossSections(Graphics2D g2d, float currentY) currentY += mNormalFontHeight+10; //Draw - BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+((mImagableWidth/3)*1), currentY, Math.PI/2.0, mScale, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+((mImagableWidth/3)*1), currentY, mScale, Math.PI/2.0, Color.BLACK, linestroke, false, true, UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); - BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+((mImagableWidth/3)*2), currentY, Math.PI/2.0, mScale, Color.BLACK, linestroke, false, true, mBrd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); + BezierBoardDrawUtil.paintSlidingCrossSection(jd, mImagableX+5+((mImagableWidth/3)*2), currentY, mScale, Math.PI/2.0, Color.BLACK, linestroke, false, true, mBrd.getLength() - UnitUtils.INCHES_PR_FOOT*UnitUtils.INCH, mBrd); currentY += mNormalFontHeight; String tailString = LanguageResource.getString("TAIL_STR"); diff --git a/boardcad/settings/Settings.java b/boardcad/settings/Settings.java index 1938623..00b1a12 100644 --- a/boardcad/settings/Settings.java +++ b/boardcad/settings/Settings.java @@ -181,6 +181,11 @@ public void setEnumeration(final String key, final int value) { ((Enumeration)mSettings.get(key).mValue).setValue(value); } + + public boolean containsSetting(final String key) + { + return mSettings.containsKey(key); + } public Setting getSetting(final String key) { diff --git a/boardcam/BoardMachine.java b/boardcam/BoardMachine.java index fb42d69..591c1e6 100644 --- a/boardcam/BoardMachine.java +++ b/boardcam/BoardMachine.java @@ -1,6 +1,6 @@ package boardcam; -import cadcore.*; +import cadcore.*; import boardcad.ScriptLoader; import javax.vecmath.*; @@ -20,52 +20,51 @@ public class BoardMachine { public static NurbsSurface deck; public static NurbsSurface bottom; - - public static String deckFileName=new String("deck.ngc"); - public static String bottomFileName=new String("deck.ngc"); - - public static String deckScript; - public static String bottomScript; - - public static int deckCuts; - public static int deckRailCuts; - public static int bottomCuts; - public static int bottomRailCuts; - public static double deckRailAngle; - public static double bottomRailAngle; + + public static String deckFileName=new String("deck.ngc"); + public static String bottomFileName=new String("deck.ngc"); + + public static String deckScript; + public static String bottomScript; + + public static int deckCuts; + public static int deckRailCuts; + public static int bottomCuts; + public static int bottomRailCuts; + public static double deckRailAngle; + public static double bottomRailAngle; public static double speed; public static double stringerSpeed; - public static double outlineSpeed; - + public static double outlineSpeed; + public static boolean cutStringer; public static double stringerOffset; - public static double stringerCutoff; + public static double stringerCutoff; public static double outlineOffset; - public static String toolName; + public static String toolName; public static double toolScaleX; public static double toolScaleY; public static double toolScaleZ; - - public static double zMaxHeight; - + + public static double zMaxHeight; + public static double[][] machineCoordinates; public static double[] endSupportPosition; public static NurbsPoint support1; public static double support1_radius; public static NurbsPoint support2; public static double support2_radius; - + public static NurbsPoint scan_coord; public static double scan_comp; public static String scan_path; public static NurbsPoint axis4_offset; public static double axis4_offsetRotation; - public static double axis5_offsetRotation; public static double axis4_rail_start; public static double axis4_rail_stop; - + // public boolean check_collision; // public String collision_toolname; // public double collision_toolscale_x; @@ -89,9 +88,9 @@ public class BoardMachine deck_collision=new boolean[100000]; nr_of_cuts_bottom=0; nr_of_cuts_deck=0; - deckFileName=new String("deck.ngc"); - bottomFileName=new String("bottom.ngc"); - + deckFileName=new String("deck.ngc"); + bottomFileName=new String("bottom.ngc"); + read_machine_data(); } */ @@ -102,9 +101,9 @@ public class BoardMachine * @param filename */ public static void generateGCodeDeck(String filename) - { - read_machine_data(); - deckFileName=new String(filename); + { + read_machine_data(); + deckFileName=new String(filename); ScriptLoader.loadScript(deckScript); } @@ -118,7 +117,7 @@ public static void generateGCodeDeck(String filename) */ public static void generateGCodeBottom(String filename) { - read_machine_data(); + read_machine_data(); bottomFileName=new String(filename); ScriptLoader.loadScript(bottomScript); } @@ -140,12 +139,12 @@ public static void read_machine_data() { // This string is used to read the setting from the properties file. // If a String-to-double parse fails, an exception will occur and // if the string is set to correct value the exception message will - // tell what string that failed. - - // Script files for toolpath generation - deckScript = properties.getProperty("toolpathGenerator.deckScript"); - bottomScript = properties.getProperty("toolpathGenerator.bottomScript"); - + // tell what string that failed. + + // Script files for toolpath generation + deckScript = properties.getProperty("toolpathGenerator.deckScript"); + bottomScript = properties.getProperty("toolpathGenerator.bottomScript"); + // Define number of cuts setting = "Define number of cuts"; deckCuts = Integer.parseInt(properties.getProperty("g.deckCuts")); @@ -154,32 +153,32 @@ public static void read_machine_data() { bottomRailCuts = Integer.parseInt(properties.getProperty("g.bottomRailCuts")); deckRailAngle = Double.parseDouble(properties.getProperty("g.deckRailAngle")); bottomRailAngle = Double.parseDouble(properties.getProperty("g.bottomRailAngle")); - - // Speed for cutting the board + + // Speed for cutting the board setting = "Speed for cutting the board"; speed = Double.parseDouble(properties.getProperty("g.speed")); stringerSpeed = Double.parseDouble(properties.getProperty("g.stringerSpeed")); - outlineSpeed = Double.parseDouble(properties.getProperty("g.outlineSpeed")); - - // Define extra parameters - setting = "Define extra parameters"; + outlineSpeed = Double.parseDouble(properties.getProperty("g.outlineSpeed")); + + // Define extra parameters + setting = "Define extra parameters"; cutStringer = (Integer.parseInt(properties.getProperty("g.cutStringer")) != 0); - stringerOffset=Double.parseDouble(properties.getProperty("g.stringerOffset")); - stringerCutoff=Double.parseDouble(properties.getProperty("g.stringerCutoff")); - outlineOffset=Double.parseDouble(properties.getProperty("g.outlineOffset")); - + stringerOffset=Double.parseDouble(properties.getProperty("g.stringerOffset")); + stringerCutoff=Double.parseDouble(properties.getProperty("g.stringerCutoff")); + outlineOffset=Double.parseDouble(properties.getProperty("g.outlineOffset")); + // Define cutter setting = "Define cutter"; toolName = properties.getProperty("g.toolName"); toolScaleX = Double.parseDouble(properties.getProperty("g.toolScaleX")); toolScaleY = Double.parseDouble(properties.getProperty("g.toolScaleY")); toolScaleZ = Double.parseDouble(properties.getProperty("g.toolScaleZ")); - - // Safe height for traversing, transport etc. + + // Safe height for traversing, transport etc. setting = "Safe height for traversing, transport etc."; zMaxHeight = Double.parseDouble(properties.getProperty("g.zMaxHeight")); - - + + // End support setting = "End support"; double[] t = {Double.parseDouble(properties.getProperty("machine.supportEndX")), @@ -218,14 +217,12 @@ public static void read_machine_data() { // 4-axis settings setting = "4 axis"; + + axis4_offset=new NurbsPoint(Double.parseDouble(properties.getProperty("machine.axis4.offsetX")), + Double.parseDouble(properties.getProperty("machine.axis4.offsetY")), + Double.parseDouble(properties.getProperty("machine.axis4.offsetZ"))); - axis4_offset=new NurbsPoint(Double.parseDouble(properties.getProperty("machine.offsetX")), - Double.parseDouble(properties.getProperty("machine.offsetY")), - Double.parseDouble(properties.getProperty("machine.offsetZ"))); - - axis4_offsetRotation = Double.parseDouble(properties.getProperty("machine.offsetRotation4")); - - axis5_offsetRotation = Double.parseDouble(properties.getProperty("machine.offsetRotation5")); + axis4_offsetRotation = Double.parseDouble(properties.getProperty("machine.axis4.offsetRotation")); // setting = "collision test"; @@ -273,8 +270,7 @@ else if (axis.equals("-Z")) return array; } - - /** + /** * Transform point from machine coordinates to BoardCAD coordinates * * @param p diff --git a/boardcam/MachineConfig.java b/boardcam/MachineConfig.java index e15e659..5f3a2ad 100644 --- a/boardcam/MachineConfig.java +++ b/boardcam/MachineConfig.java @@ -1,53 +1,48 @@ package boardcam; - import java.util.HashMap; - import javax.vecmath.Point3d; -import cadcore.UnitUtils; - - import board.BezierBoard; import boardcad.settings.*; import boardcad.settings.Settings.*; import boardcam.cutters.*; import boardcam.holdingsystems.AbstractBlankHoldingSystem; +import boardcam.holdingsystems.TableBlockHoldingSystem; import boardcam.toolpathgenerators.*; import boardcam.holdingsystems.*; import boardcad.i18n.LanguageResource; import boardcad.FileTools; -import boardcam.writers.GCodeWriter; import boardcam.writers.GCodeWriterWithScaling; -import boardcad.gui.jdk.MachineView; //TODO: Bad dependency +import boardcad.gui.jdk.FasterBrd3DModelGenerator; +import boardcad.gui.jdk.MachineView; //TODO: Bad dependency import board.readers.*; -public class MachineConfig extends CategorizedSettings -{ - public static String USE_BRD_SETTINGS = "UseBrdSettings"; +public class MachineConfig extends CategorizedSettings { + public static String USE_BRD_SETTINGS = "UseBrdSettings"; + + public static String CUTTER_TYPE = "CutterType"; + public static String BLANKHOLDINGSYSTEM_TYPE = "BlankHoldingSystemType"; - public static String CUTTER_TYPE = "CutterType"; - public static String BLANKHOLDINGSYSTEM_TYPE = "BlankHoldingSystemType"; - - public static String DECK_ANGLE = "DeckAngle"; - public static String DECK_RAIL_ANGLE = "DeckRailAngle"; - public static String BOTTOM_ANGLE = "BottomAngle"; + public static String DECK_ANGLE = "DeckAngle"; + public static String DECK_RAIL_ANGLE = "DeckRailAngle"; + public static String BOTTOM_ANGLE = "BottomAngle"; public static String BOTTOM_RAIL_ANGLE = "BottomRailAngle"; public static String LENGTHWISE_RESOLUTION = "LengthwiseResolution"; - - public static String DECK_CUTS = "DeckCuts"; - public static String DECK_RAIL_CUTS = "DeckRailCuts"; - public static String BOTTOM_CUTS = "BottomCuts"; - public static String BOTTOM_RAIL_CUTS = "BottomRailCuts"; - public static String BLANK = "Blank"; + + public static String DECK_CUTS = "DeckCuts"; + public static String DECK_RAIL_CUTS = "DeckRailCuts"; + public static String BOTTOM_CUTS = "BottomCuts"; + public static String BOTTOM_RAIL_CUTS = "BottomRailCuts"; + public static String BLANK = "Blank"; public static String DECK_CLEAN_UP_CUTS = "DeckCleanUpCuts"; public static String BOTTOM_CLEAN_UP_CUTS = "BottomCleanUpCuts"; public static String DECK_STRINGER_CUT = "DeckStringerCut"; public static String BOTTOM_STRINGER_CUT = "BottomStringerCut"; - + public static String STAY_AWAY_FROM_STRINGER = "StayAwayFromStringer"; public static String STRINGER_WIDTH = "StringerWidth"; @@ -57,7 +52,7 @@ public class MachineConfig extends CategorizedSettings public static String CUT_OFF_NOSE = "Cut off nose"; public static String CUT_OFF_TAIL = "Cut off tail"; - + public static final String CUTTING_SPEED = "CuttingSpeed"; public static final String CUTTING_SPEED_STRINGER = "StringerCuttingSpeed"; public static final String CUTTING_SPEED_RAIL = "RailCuttingSpeed"; @@ -66,145 +61,166 @@ public class MachineConfig extends CategorizedSettings public static final String CUTTER_X_OFFSET = "CutterXOffset"; public static final String CUTTER_Y_OFFSET = "CutterYOffset"; public static final String CUTTER_Z_OFFSET = "CutterZOffset"; - + public static final String BEFORE_DECK_CUT = "BeforeDeckCut"; public static final String BEFORE_DECK_CUT_SCRIPT = "BeforeDeckCutScript"; public static final String DECK_START_POS = "DeckStartPos"; public static final String AFTER_DECK_CUT = "AfterDeckCut"; public static final String AFTER_DECK_CUT_SCRIPT = "AfterDeckCutScript"; - + public static final String BEFORE_BOTTOM_CUT = "BeforeBottomCut"; public static final String BEFORE_BOTTOM_CUT_SCRIPT = "BeforeBottomCutScript"; public static final String BOTTOM_START_POS = "BottomStartPos"; public static final String AFTER_BOTTOM_CUT = "AfterBottomCut"; public static final String AFTER_BOTTOM_CUT_SCRIPT = "AfterBottomCutScript"; public static final String CLEAR_HEIGHT = "ClearHeight"; - + public static final String SAVE_G_CODE = "SaveGCode"; - + protected AbstractCutter mCutter = null; protected AbstractBlankHoldingSystem mBlankHoldingSystem = null; protected AbstractToolpathGenerator mToolpathGenerator = null; - + protected BezierBoard mBrd; protected BezierBoard mBlank; - + protected MachineView mMachineView = null; - + Point3d mCutterOffset = new Point3d(0.0, 0.0, 0.0); - - public MachineConfig() - { + + FasterBrd3DModelGenerator mBlank3DModelGenerator = new FasterBrd3DModelGenerator(); + FasterBrd3DModelGenerator mBrd3DModelGenerator = new FasterBrd3DModelGenerator(); + + public MachineConfig() { } - - public void initialize() - { - Settings.SettingChangedCallback onSupportSettingsChanged = new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { - if(mMachineView != null) - { + + public void initialize() { + Settings.SettingChangedCallback onSupportSettingsChanged = new Settings.SettingChangedCallback() { + public void onSettingChanged(Object obj) { + if (mMachineView != null) { mMachineView.update(); } } }; - - Settings.SettingChangedCallback onCutterTypeChanged = new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { + + Settings.SettingChangedCallback onCutterTypeChanged = new Settings.SettingChangedCallback() { + public void onSettingChanged(Object obj) { System.out.printf("Cutter Setting changed\n"); - + Settings cutterSettings = getCategory(LanguageResource.getString("CUTTERCATEGORY_STR")); - Settings generalSettings = getCategory(LanguageResource.getString("GENERALCATEGORY_STR")); + Settings generalSettings = getCategory(LanguageResource.getString("GENERALCATEGORY_STR")); cutterSettings.putPreferences(); cutterSettings.clear(); - + mMachineView.get3DView().setModelRotation(0.0); - Enumeration enu = (Enumeration)obj; - - switch(enu.getValue()) - { + Enumeration enu = (Enumeration) obj; + + switch (enu.getValue()) { case 0: mCutter = new SimpleBullnoseCutter(MachineConfig.this); generalSettings.removeObject(RotatingBoardCutter.ROTATINGBOARDCUTTER_TYPE); - if(generalSettings.getEnumeration(BLANKHOLDINGSYSTEM_TYPE) == 2) - { + if (generalSettings.getEnumeration(BLANKHOLDINGSYSTEM_TYPE) == 2) { generalSettings.setEnumeration(BLANKHOLDINGSYSTEM_TYPE, 0); } break; case 1: mCutter = new STLCutter(MachineConfig.this); - generalSettings.removeObject(RotatingBoardCutter.ROTATINGBOARDCUTTER_TYPE); - if(generalSettings.getEnumeration(BLANKHOLDINGSYSTEM_TYPE) == 2) - { + generalSettings.removeObject(RotatingBoardCutter.ROTATINGBOARDCUTTER_TYPE); + if (generalSettings.getEnumeration(BLANKHOLDINGSYSTEM_TYPE) == 2) { generalSettings.setEnumeration(BLANKHOLDINGSYSTEM_TYPE, 0); } break; case 2: mCutter = new RotatingBoardCutter(MachineConfig.this, mMachineView.get3DView()); generalSettings.setEnumeration(BLANKHOLDINGSYSTEM_TYPE, 2); - break; + break; } - + cutterSettings.getPreferences(); - if(mMachineView != null) - { + if (mMachineView != null) { mMachineView.get3DView().setCutterModel(mCutter.get3DModel()); mMachineView.update(); } } }; - Settings.SettingChangedCallback onBlankHoldingSystemChanged = new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { + Settings.SettingChangedCallback onBlankHoldingSystemChanged = new Settings.SettingChangedCallback() { + public void onSettingChanged(Object obj) { System.out.printf("Blankholdingsystem Setting changed\n"); MachineConfig.this.getCategory(LanguageResource.getString("BLANKHOLDINGSYSTEMCATEGORY_STR")).putPreferences(); - Settings generalSettings = getCategory(LanguageResource.getString("GENERALCATEGORY_STR")); + Settings generalSettings = getCategory(LanguageResource.getString("GENERALCATEGORY_STR")); - Enumeration enu = (Enumeration)obj; - - switch(enu.getValue()) - { + Enumeration enu = (Enumeration) obj; + + Setting blankSetting = generalSettings.getSetting(BLANK); + switch (enu.getValue()) { case 0: mBlankHoldingSystem = new SupportsBlankHoldingSystem(MachineConfig.this); - if(generalSettings.getEnumeration(CUTTER_TYPE) == 2) - { + if (generalSettings.getEnumeration(CUTTER_TYPE) == 2) { generalSettings.setEnumeration(CUTTER_TYPE, 0); } + blankSetting.setHidden(false); + blankSetting.signal(); break; case 1: mBlankHoldingSystem = new EndClampsBlankHoldingSystem(MachineConfig.this); - if(generalSettings.getEnumeration(CUTTER_TYPE) == 2) - { + if (generalSettings.getEnumeration(CUTTER_TYPE) == 2) { generalSettings.setEnumeration(CUTTER_TYPE, 0); } + blankSetting.setHidden(false); + blankSetting.signal(); break; case 2: mBlankHoldingSystem = new RotatingBoardBlankHoldingSystem(MachineConfig.this); generalSettings.setEnumeration(CUTTER_TYPE, 2); generalSettings.getSetting(CUTTER_TYPE).signal(); - break; + blankSetting.setHidden(false); + blankSetting.signal(); + break; + case 3: + mBlankHoldingSystem = new TableBlockHoldingSystem(MachineConfig.this); + if (generalSettings.getEnumeration(CUTTER_TYPE) == 2) { + generalSettings.setEnumeration(CUTTER_TYPE, 0); + } + generalSettings.getSetting(CUTTER_TYPE).signal(); + blankSetting.setHidden(true); + blankSetting.signal(); + break; } - + + mBlankHoldingSystem.setChangeListener(new ChangeListener() { + + @Override + public void onChange() { + if (mMachineView != null) { + System.out.printf("On change %f, %f, %f\n", mBlankHoldingSystem.getBlankDeckOffsetPos().x, mBlankHoldingSystem.getBlankDeckOffsetPos().y, mBlankHoldingSystem.getBlankDeckOffsetPos().z); + + mMachineView.get3DView().setBlankDeckOffset(new Point3d(mBlankHoldingSystem.getBlankDeckOffsetPos()), mBlankHoldingSystem.getBlankDeckOffsetAngle()); + mMachineView.get3DView().setBlankBottomOffset(new Point3d(mBlankHoldingSystem.getBlankBottomOffsetPos()), mBlankHoldingSystem.getBlankBottomOffsetAngle()); + mMachineView.get3DView().setBrdDeckOffset(new Point3d(mBlankHoldingSystem.getBoardDeckOffsetPos()), mBlankHoldingSystem.getBoardDeckOffsetAngle()); + mMachineView.get3DView().setBrdBottomOffset(new Point3d(mBlankHoldingSystem.getBoardBottomOffsetPos()), mBlankHoldingSystem.getBoardBottomOffsetAngle()); + } + } + }); + getCategory(LanguageResource.getString("BLANKHOLDINGSYSTEMCATEGORY_STR")).getPreferences(); - if(mMachineView != null) - { + if (mMachineView != null) { mMachineView.get3DView().setBlankHoldingSystemModel(mBlankHoldingSystem.get3DModel()); + mMachineView.get3DView().setBlankDeckOffset(new Point3d(mBlankHoldingSystem.getBlankDeckOffsetPos()), mBlankHoldingSystem.getBlankDeckOffsetAngle()); + mMachineView.get3DView().setBlankBottomOffset(new Point3d(mBlankHoldingSystem.getBlankBottomOffsetPos()), mBlankHoldingSystem.getBlankBottomOffsetAngle()); + mMachineView.get3DView().setBrdDeckOffset(new Point3d(mBlankHoldingSystem.getBoardDeckOffsetPos()), mBlankHoldingSystem.getBoardDeckOffsetAngle()); + mMachineView.get3DView().setBrdBottomOffset(new Point3d(mBlankHoldingSystem.getBoardBottomOffsetPos()), mBlankHoldingSystem.getBoardBottomOffsetAngle()); mMachineView.update(); } } }; Settings generalSettings = addCategory(LanguageResource.getString("GENERALCATEGORY_STR")); - + generalSettings.addObject(USE_BRD_SETTINGS, new Boolean(true), LanguageResource.getString("USEBRDSETTINGS_STR"), onSupportSettingsChanged); HashMap cutterTypes = new HashMap(); @@ -212,88 +228,73 @@ public void onSettingChanged(Object obj) cutterTypes.put(1, LanguageResource.getString("STLCUTTER_STR")); cutterTypes.put(2, LanguageResource.getString("ROTATINGBOARDCUTTER_STR")); generalSettings.addEnumeration(CUTTER_TYPE, 0, cutterTypes, LanguageResource.getString("CUTTERTYPE_STR"), onCutterTypeChanged); - + HashMap holdingSystemTypes = new HashMap(); holdingSystemTypes.put(0, LanguageResource.getString("SUPPORTS_STR")); holdingSystemTypes.put(1, LanguageResource.getString("ENDCLAMPS_STR")); holdingSystemTypes.put(2, LanguageResource.getString("ROTATINGBOARD_STR")); - generalSettings.addEnumeration(BLANKHOLDINGSYSTEM_TYPE, 0,holdingSystemTypes, LanguageResource.getString("BLANKHOLDINGSYSTEMTYPE_STR"), onBlankHoldingSystemChanged); + holdingSystemTypes.put(3, LanguageResource.getString("BLOCKTABLE_STR")); + generalSettings.addEnumeration(BLANKHOLDINGSYSTEM_TYPE, 0, holdingSystemTypes, LanguageResource.getString("BLANKHOLDINGSYSTEMTYPE_STR"), onBlankHoldingSystemChanged); - generalSettings.addFileName(BLANK, "", LanguageResource.getString("BLANK_STR"), new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { + generalSettings.addFileName(BLANK, "", LanguageResource.getString("BLANK_STR"), new Settings.SettingChangedCallback() { + public void onSettingChanged(Object obj) { String filename = obj.toString(); - if(filename == null || filename == "") + if (filename == null || filename == "") return; - - String ext = FileTools.getExtension(filename); - + mBlank = new BezierBoard(); - if(ext.compareToIgnoreCase("s3d")==0) - { - S3dReader.loadFile(mBlank, filename); - } - else if(ext.compareToIgnoreCase("srf")==0) - { - SrfReader.loadFile(mBlank, filename); - } - else if(ext.compareToIgnoreCase("cad")==0) - { - //TODO: CANNOT USE THIS AS BLANK YET. Fix - } - else - { - BrdReader.loadFile(mBlank, filename); + if (!generalSettings.getSetting(BLANK).isHidden()) { + String ext = FileTools.getExtension(filename); + if (ext.compareToIgnoreCase("s3d") == 0) { + S3dReader.loadFile(mBlank, filename); + } else if (ext.compareToIgnoreCase("srf") == 0) { + SrfReader.loadFile(mBlank, filename); + } else if (ext.compareToIgnoreCase("cad") == 0) { + // TODO: CANNOT USE THIS AS BLANK YET. Fix + } else { + BrdReader.loadFile(mBlank, filename); + } } - if(mMachineView != null) - { + if (mMachineView != null) { + mBlank3DModelGenerator.update3DModel(mBlank, mMachineView.get3DView().getBlankModel(), 8); mMachineView.update(); } - } - } - ); -/* Example of an action inside settings - generalSettings.addAction(SAVE_G_CODE, "...", "Save g-code", new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { - final JFileChooser fc = new JFileChooser(); - - fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); - - int returnVal = fc.showSaveDialog(BoardCAD.getInstance() - .getFrame()); - if (returnVal != JFileChooser.APPROVE_OPTION) - return; - - File file = fc.getSelectedFile(); - - String filename = file.getPath(); // Load and display - // selection - if (filename == null) - return; - - BoardCAD.defaultDirectory = file.getPath(); - - SurfaceSplitsToolpathGenerator toolpathGenerator = new SurfaceSplitsToolpathGenerator(new BullnoseCutter(), BoardCAD.getInstance().getCurrentMachineConfig()); - - try { - toolpathGenerator.writeDeck(filename, BoardCAD.getInstance().getCurrentBrd()); - } catch (Exception e) { - String str = "Failed to write g-code file :" + e.toString(); - JOptionPane.showMessageDialog(BoardCAD.getInstance() - .getFrame(), str, "Error when writing g-code file", - JOptionPane.ERROR_MESSAGE); - - } - } - } - ); -*/ + } + }); + /* + * Example of an action inside settings + * generalSettings.addAction(SAVE_G_CODE, "...", "Save g-code", new + * Settings.SettingChangedCallback() { public void + * onSettingChanged(Object obj) { final JFileChooser fc = new + * JFileChooser(); + * + * fc.setCurrentDirectory(new File(BoardCAD.defaultDirectory)); + * + * int returnVal = fc.showSaveDialog(BoardCAD.getInstance() + * .getFrame()); if (returnVal != JFileChooser.APPROVE_OPTION) return; + * + * File file = fc.getSelectedFile(); + * + * String filename = file.getPath(); // Load and display // selection if + * (filename == null) return; + * + * BoardCAD.defaultDirectory = file.getPath(); + * + * SurfaceSplitsToolpathGenerator toolpathGenerator = new + * SurfaceSplitsToolpathGenerator(new BullnoseCutter(), + * BoardCAD.getInstance().getCurrentMachineConfig()); + * + * try { toolpathGenerator.writeDeck(filename, + * BoardCAD.getInstance().getCurrentBrd()); } catch (Exception e) { + * String str = "Failed to write g-code file :" + e.toString(); + * JOptionPane.showMessageDialog(BoardCAD.getInstance() .getFrame(), + * str, "Error when writing g-code file", JOptionPane.ERROR_MESSAGE); + * + * } } } ); + */ Settings cutsSettings = addCategory(LanguageResource.getString("CUTSCATEGORY_STR")); - + cutsSettings.addMeasurement(LENGTHWISE_RESOLUTION, 1.0, LanguageResource.getString("LENGTHWISERESOLUTION_STR")); cutsSettings.addObject(DECK_CUTS, new Integer(28), LanguageResource.getString("DECKCUTS_STR")); @@ -302,7 +303,7 @@ public void onSettingChanged(Object obj) cutsSettings.addObject(BOTTOM_RAIL_CUTS, new Integer(0), LanguageResource.getString("BOTTOMRAILCUTS_STR")); cutsSettings.addObject(BOTTOM_CLEAN_UP_CUTS, new Integer(2), LanguageResource.getString("BOTTOMCLEANUPCUTS_STR")); cutsSettings.addObject(DECK_CLEAN_UP_CUTS, new Integer(2), LanguageResource.getString("DECKCLEANUPCUTS_STR")); - + cutsSettings.addObject(DECK_STRINGER_CUT, new Boolean(true), LanguageResource.getString("DECKSTRINGERCUT_STR")); cutsSettings.addObject(BOTTOM_STRINGER_CUT, new Boolean(true), LanguageResource.getString("BOTTOMSTRINGERCUT_STR")); @@ -314,7 +315,7 @@ public void onSettingChanged(Object obj) outlineDepthTypes.put(0, LanguageResource.getString("DECKOUTLINETOAPEXDEPTH_STR")); outlineDepthTypes.put(1, LanguageResource.getString("DECKOUTLINETOBOTTOMDEPTH_STR")); cutsSettings.addEnumeration(DECK_OUTLINE_CUT_DEPTH, 0, outlineDepthTypes, LanguageResource.getString("DECKOUTLINECUTDEPTH_STR")); - + cutsSettings.addObject(BOTTOM_OUTLINE_CUT, new Boolean(true), LanguageResource.getString("BOTTOMOUTLINECUT_STR")); cutsSettings.addObject(CUT_OFF_NOSE, new Boolean(false), LanguageResource.getString("CUTOFFNOSE_STR")); @@ -324,28 +325,26 @@ public void onSettingChanged(Object obj) cutsSettings.addObject(DECK_RAIL_ANGLE, new Double(130), LanguageResource.getString("DECKRAILDEFINITIONANGLE_STR")); cutsSettings.addObject(BOTTOM_ANGLE, new Double(90), LanguageResource.getString("BOTTOMDEFINITIONANGLE_STR")); cutsSettings.addObject(BOTTOM_RAIL_ANGLE, new Double(90), LanguageResource.getString("BOTTOMRAILDEFINITIONANGLE_STR")); - + Settings speedSettings = addCategory(LanguageResource.getString("SPEEDCATEGORY_STR")); - speedSettings.addObject(CUTTING_SPEED, new Double(80), LanguageResource.getString("CUTTINGSPEED_STR")); - speedSettings.addObject(CUTTING_SPEED_STRINGER, new Double(254), LanguageResource.getString("STRINGERCUTTINGSPEED_STR")); - speedSettings.addObject(CUTTING_SPEED_RAIL, new Double(254), LanguageResource.getString("RAILCUTTINGSPEED_STR")); - speedSettings.addObject(CUTTING_SPEED_OUTLINE, new Double(254), LanguageResource.getString("OUTLINECUTTINGSPEED_STR")); - + speedSettings.addObject(CUTTING_SPEED, new Double(80), LanguageResource.getString("CUTTINGSPEED_STR")); + speedSettings.addObject(CUTTING_SPEED_STRINGER, new Double(254), LanguageResource.getString("STRINGERCUTTINGSPEED_STR")); + speedSettings.addObject(CUTTING_SPEED_RAIL, new Double(254), LanguageResource.getString("RAILCUTTINGSPEED_STR")); + speedSettings.addObject(CUTTING_SPEED_OUTLINE, new Double(254), LanguageResource.getString("OUTLINECUTTINGSPEED_STR")); + final Settings controlSettings = addCategory(LanguageResource.getString("CONTROLCATEGORY_STR")); HashMap homeingTypes = new HashMap(); homeingTypes.put(0, LanguageResource.getString("NOTHING_STR")); homeingTypes.put(1, LanguageResource.getString("HOME_STR")); homeingTypes.put(2, LanguageResource.getString("HOMEREF_STR")); - //homeingTypes.put(3, LanguageResource.getString("HOME_Z_STR")); TODO: Dunno how to do home on z only, have to wait + // homeingTypes.put(3, LanguageResource.getString("HOME_Z_STR")); TODO: + // Dunno how to do home on z only, have to wait homeingTypes.put(3, LanguageResource.getString("LIFTCLEAR_STR")); homeingTypes.put(4, LanguageResource.getString("HOMESCRIPT_STR")); - controlSettings.addEnumeration(BEFORE_DECK_CUT, 1, homeingTypes, LanguageResource.getString("BEFOREDECKCUT_STR"), new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { - Enumeration enu = (Enumeration)obj; - switch(enu.getValue()) - { + controlSettings.addEnumeration(BEFORE_DECK_CUT, 1, homeingTypes, LanguageResource.getString("BEFOREDECKCUT_STR"), new Settings.SettingChangedCallback() { + public void onSettingChanged(Object obj) { + Enumeration enu = (Enumeration) obj; + switch (enu.getValue()) { default: case 0: case 1: @@ -355,27 +354,24 @@ public void onSettingChanged(Object obj) case 3: controlSettings.removeObject(BEFORE_DECK_CUT_SCRIPT); break; - - case 4: + + case 4: controlSettings.addFileName(BEFORE_DECK_CUT_SCRIPT, "", LanguageResource.getString("BEFOREDECKCUTSCRIPT_STR")); break; } updateClearHeightSetting(); } }); - + HashMap startOnDeckTypes = new HashMap(); startOnDeckTypes.put(0, LanguageResource.getString("NOSE_STR")); startOnDeckTypes.put(1, LanguageResource.getString("TAIL_STR")); controlSettings.addEnumeration(DECK_START_POS, 1, startOnDeckTypes, LanguageResource.getString("DECKSTARTPOS_STR")); - - controlSettings.addEnumeration(AFTER_DECK_CUT, 1, homeingTypes, LanguageResource.getString("AFTERDECKCUT_STR"), new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { - Enumeration enu = (Enumeration)obj; - switch(enu.getValue()) - { + + controlSettings.addEnumeration(AFTER_DECK_CUT, 1, homeingTypes, LanguageResource.getString("AFTERDECKCUT_STR"), new Settings.SettingChangedCallback() { + public void onSettingChanged(Object obj) { + Enumeration enu = (Enumeration) obj; + switch (enu.getValue()) { default: case 0: case 1: @@ -383,8 +379,8 @@ public void onSettingChanged(Object obj) case 3: controlSettings.removeObject(AFTER_DECK_CUT_SCRIPT); break; - - case 4: + + case 4: controlSettings.addFileName(AFTER_DECK_CUT_SCRIPT, "", LanguageResource.getString("AFTERDECKCUTSCRIPT_STR")); break; } @@ -392,13 +388,10 @@ public void onSettingChanged(Object obj) } }); - controlSettings.addEnumeration(BEFORE_BOTTOM_CUT, 1, homeingTypes, LanguageResource.getString("BEFOREBOTTOMCUT_STR"), new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { - Enumeration enu = (Enumeration)obj; - switch(enu.getValue()) - { + controlSettings.addEnumeration(BEFORE_BOTTOM_CUT, 1, homeingTypes, LanguageResource.getString("BEFOREBOTTOMCUT_STR"), new Settings.SettingChangedCallback() { + public void onSettingChanged(Object obj) { + Enumeration enu = (Enumeration) obj; + switch (enu.getValue()) { default: case 0: case 1: @@ -406,8 +399,8 @@ public void onSettingChanged(Object obj) case 3: controlSettings.removeObject(BEFORE_BOTTOM_CUT_SCRIPT); break; - - case 4: + + case 4: controlSettings.addFileName(BEFORE_BOTTOM_CUT_SCRIPT, "", LanguageResource.getString("BEFOREBOTTOMCUTSCRIPT_STR")); break; } @@ -421,13 +414,10 @@ public void onSettingChanged(Object obj) startOnBottomTypes.put(2, LanguageResource.getString("PREVIOUS_STR")); controlSettings.addEnumeration(BOTTOM_START_POS, 0, startOnBottomTypes, LanguageResource.getString("BOTTOMSTARTPOS_STR")); - controlSettings.addEnumeration(AFTER_BOTTOM_CUT, 1, homeingTypes, LanguageResource.getString("AFTERBOTTOMCUT_STR"), new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { - Enumeration enu = (Enumeration)obj; - switch(enu.getValue()) - { + controlSettings.addEnumeration(AFTER_BOTTOM_CUT, 1, homeingTypes, LanguageResource.getString("AFTERBOTTOMCUT_STR"), new Settings.SettingChangedCallback() { + public void onSettingChanged(Object obj) { + Enumeration enu = (Enumeration) obj; + switch (enu.getValue()) { default: case 0: case 1: @@ -435,105 +425,94 @@ public void onSettingChanged(Object obj) case 3: controlSettings.removeObject(AFTER_BOTTOM_CUT_SCRIPT); break; - - case 4: + + case 4: controlSettings.addFileName(AFTER_BOTTOM_CUT_SCRIPT, "", LanguageResource.getString("AFTERBOTTOMCUTSCRIPT_STR")); break; } updateClearHeightSetting(); } }); - - Settings.SettingChangedCallback onCutterOffsetChanged = new Settings.SettingChangedCallback() - { - public void onSettingChanged(Object obj) - { + + Settings.SettingChangedCallback onCutterOffsetChanged = new Settings.SettingChangedCallback() { + public void onSettingChanged(Object obj) { Settings cutterOffsetSettings = getCategory(LanguageResource.getString("CUTTEROFFSETCATEGORY_STR")); mCutterOffset = new Point3d(cutterOffsetSettings.getMeasurement(CUTTER_X_OFFSET), cutterOffsetSettings.getMeasurement(CUTTER_Y_OFFSET), cutterOffsetSettings.getMeasurement(CUTTER_Z_OFFSET)); - mMachineView.get2DView().setCutterOffset(mCutterOffset); + mMachineView.get2DView().setCutterOffset(mCutterOffset); mMachineView.get3DView().setCutterOffset(mCutterOffset); } }; - + Settings cutterOffsetSettings = addCategory(LanguageResource.getString("CUTTEROFFSETCATEGORY_STR")); cutterOffsetSettings.addMeasurement(CUTTER_X_OFFSET, 0.0, LanguageResource.getString("CUTTER_X_OFFSET_STR"), onCutterOffsetChanged); cutterOffsetSettings.addMeasurement(CUTTER_Y_OFFSET, 0.0, LanguageResource.getString("CUTTER_Y_OFFSET_STR"), onCutterOffsetChanged); cutterOffsetSettings.addMeasurement(CUTTER_Z_OFFSET, 0.0, LanguageResource.getString("CUTTER_Z_OFFSET_STR"), onCutterOffsetChanged); - + mCutter = new SimpleBullnoseCutter(this); - mBlankHoldingSystem = new SupportsBlankHoldingSystem(this); + mBlankHoldingSystem = new SupportsBlankHoldingSystem(this); mToolpathGenerator = new SurfaceSplitsToolpathGenerator(this, new GCodeWriterWithScaling(this), this.getMachineView()); - //Read cutter and blank holding system settings here so we don't overwrite with default values when getting the full set of settings result in changed of cutter or holding system + // Read cutter and blank holding system settings here so we don't + // overwrite with default values when getting the full set of settings + // result in changed of cutter or holding system getCategory(LanguageResource.getString("CUTTERCATEGORY_STR")).getPreferences(); getCategory(LanguageResource.getString("BLANKHOLDINGSYSTEMCATEGORY_STR")).getPreferences(); - + mMachineView.get3DView().setCutterModel(mCutter.get3DModel()); mMachineView.get3DView().setBlankHoldingSystemModel(mBlankHoldingSystem.get3DModel()); + + mBrd3DModelGenerator.update3DModel(mBrd, mMachineView.get3DView().getBrdModel(), 8); } - - public void updateClearHeightSetting() - { + + public void updateClearHeightSetting() { final Settings controlSettings = getCategory(LanguageResource.getString("CONTROLCATEGORY_STR")); int bd = controlSettings.getEnumeration(BEFORE_DECK_CUT); int ad = controlSettings.getEnumeration(AFTER_DECK_CUT); int bb = controlSettings.getEnumeration(BEFORE_BOTTOM_CUT); int ab = controlSettings.getEnumeration(AFTER_BOTTOM_CUT); - - if(bd == 3 || ad == 3 || bb == 3 || ab == 3) - { - controlSettings.addMeasurement(CLEAR_HEIGHT, 20.0, LanguageResource.getString("CLEARHEIGHT_STR")); - } - else - { + + if (bd == 3 || ad == 3 || bb == 3 || ab == 3) { + controlSettings.addMeasurement(CLEAR_HEIGHT, 20.0, LanguageResource.getString("CLEARHEIGHT_STR")); + } else { controlSettings.removeObject(CLEAR_HEIGHT); } } - - public void setBoard(BezierBoard brd) - { + + public void setBoard(BezierBoard brd) { mBrd = brd; } - - public BezierBoard getBoard() - { + + public BezierBoard getBoard() { return mBrd; } - - public BezierBoard getBlank() - { + + public BezierBoard getBlank() { return mBlank; } - - public AbstractCutter getCutter() - { + + public AbstractCutter getCutter() { return mCutter; } - - public Point3d getCutterOffset() - { + + public Point3d getCutterOffset() { return mCutterOffset; } - - public AbstractBlankHoldingSystem getBlankHoldingSystem() - { + + public AbstractBlankHoldingSystem getBlankHoldingSystem() { return mBlankHoldingSystem; } - public AbstractToolpathGenerator getToolpathGenerator() - { + public AbstractToolpathGenerator getToolpathGenerator() { return mToolpathGenerator; } - - public MachineView getMachineView() - { + + public MachineView getMachineView() { return mMachineView; } - - public void setMachineView(MachineView view) - { - mMachineView = view;; + + public void setMachineView(MachineView view) { + mMachineView = view; + ; } } - diff --git a/boardcam/Scan.java b/boardcam/Scan.java index 4420076..d77a211 100644 --- a/boardcam/Scan.java +++ b/boardcam/Scan.java @@ -1373,7 +1373,7 @@ public void approximateCurrentView() ArrayList gpArray=BoardCAD.getInstance().getSelectedEdit().getGuidePoints(); BezierSpline[] bs=BoardCAD.getInstance().getSelectedEdit().getActiveBezierSplines(brd); - final JTabbedPane mTabbedPane = BoardCAD.getInstance().getmTabbedPane(); + final JTabbedPane mTabbedPane = BoardCAD.getInstance().getTabbedPane(); if (mTabbedPane.getSelectedIndex() == 5 || (mTabbedPane.getSelectedIndex() == 2 && BoardCAD.getInstance().getFourViewName() == "QuadViewCrossSection" )) { approximateCrossSection(bs[0], gpArray); diff --git a/boardcam/cutters/AbstractCutter.java b/boardcam/cutters/AbstractCutter.java index 8b7186d..2f316ab 100644 --- a/boardcam/cutters/AbstractCutter.java +++ b/boardcam/cutters/AbstractCutter.java @@ -7,7 +7,7 @@ import board.AbstractBoard; import cadcore.AxisAlignedBoundingBox; -public abstract class AbstractCutter +public abstract class AbstractCutter implements Cloneable { protected boolean mStayAwayFromStringer = false; protected double mStringerWidth = 0.3; @@ -81,5 +81,10 @@ public AxisAlignedBoundingBox getBoundingBox(Point3d pos) { return null; //Breaks out when returning null } + + public Object clone() throws CloneNotSupportedException{ + return super.clone(); + } + } diff --git a/boardcam/holdingsystems/AbstractBlankHoldingSystem.java b/boardcam/holdingsystems/AbstractBlankHoldingSystem.java index 48b4f8a..7dc26ef 100644 --- a/boardcam/holdingsystems/AbstractBlankHoldingSystem.java +++ b/boardcam/holdingsystems/AbstractBlankHoldingSystem.java @@ -35,6 +35,11 @@ public class AbstractBlankHoldingSystem { double mBoardBottomRotation=0; BranchGroup mModelRoot = new BranchGroup(); + ChangeListener mChangeListener = null; + + public void setChangeListener(ChangeListener changeListener){ + mChangeListener = changeListener; + } public void init() { @@ -74,13 +79,19 @@ public double getBlankBottomOffsetAngle() public void setBoardDeckOffsetPos(Vector3d offset) { mBoardDeckOffset.set(offset); - //System.out.printf("AbstractBlankHoldingSystem.setBoardDeckOffsetPos: %s, %f,%f,%f\n", toString(), mBoardDeckOffset.x, mBoardDeckOffset.y, mBoardDeckOffset.z); + System.out.printf("AbstractBlankHoldingSystem.setBoardDeckOffsetPos: %s, %f,%f,%f\n", toString(), mBoardDeckOffset.x, mBoardDeckOffset.y, mBoardDeckOffset.z); + if(mChangeListener != null){ + mChangeListener.onChange(); + } } public void setBoardDeckOffsetAngle(double angle) { mBoardDeckRotation = angle; System.out.printf("AbstractBlankHoldingSystem.setBoardDeckOffsetAngle: %s %f\n", toString(), mBoardDeckRotation); + if(mChangeListener != null){ + mChangeListener.onChange(); + } } public Vector3d getBoardDeckOffsetPos() diff --git a/boardcam/holdingsystems/ChangeListener.java b/boardcam/holdingsystems/ChangeListener.java new file mode 100644 index 0000000..a7f2be0 --- /dev/null +++ b/boardcam/holdingsystems/ChangeListener.java @@ -0,0 +1,5 @@ +package boardcam.holdingsystems; + +public interface ChangeListener { + public void onChange(); +} diff --git a/boardcam/holdingsystems/EndClampsBlankHoldingSystem.java b/boardcam/holdingsystems/EndClampsBlankHoldingSystem.java index 61b5361..8e51b0e 100644 --- a/boardcam/holdingsystems/EndClampsBlankHoldingSystem.java +++ b/boardcam/holdingsystems/EndClampsBlankHoldingSystem.java @@ -16,13 +16,17 @@ import javax.media.j3d.GeometryArray; import javax.media.j3d.IndexedQuadArray; import javax.media.j3d.LineArray; +import javax.media.j3d.Material; import javax.media.j3d.Shape3D; +import javax.media.j3d.TransparencyAttributes; import cadcore.BezierSpline; import cadcore.UnitUtils; import cadcore.AxisAlignedBoundingBox; import com.sun.j3d.utils.geometry.Box; + +import javax.vecmath.Color3f; import javax.vecmath.Point2d; import javax.vecmath.Point3d; import javax.vecmath.Vector3d; @@ -121,13 +125,13 @@ public void onSettingChanged(Object object) { } public void setBoardDeckOffsetPos(Vector3d offset) { - super.setBoardDeckOffsetPos(offset); mBoardBottomOffset.set(offset.x, offset.y, -offset.z); + super.setBoardDeckOffsetPos(offset); } public void setBoardDeckOffsetAngle(double angle) { - super.setBoardDeckOffsetAngle(angle); mBoardBottomRotation = -angle; + super.setBoardDeckOffsetAngle(angle); } public Vector3d getBoardDeckOffsetPos() { @@ -153,6 +157,8 @@ public void calcBlankOffset() { String holdingSystemStr = LanguageResource .getString("BLANKHOLDINGSYSTEMCATEGORY_STR"); Settings holdingSystemSettings = mConfig.getCategory(holdingSystemStr); + if(!holdingSystemSettings.containsSetting(CLAMP_LENGTH))return; + double clampLength = holdingSystemSettings.getMeasurement(CLAMP_LENGTH); double clampHeight = holdingSystemSettings.getMeasurement(CLAMP_HEIGHT); double clampWidth = holdingSystemSettings.getMeasurement(CLAMP_WIDTH); @@ -194,6 +200,10 @@ public void calcBlankOffset() { mRotatedLength = (Math.sin(rotAngle) * (noseBottom - tailBottom)) + (Math.cos(rotAngle) * blank.getLength()); } + + if(mChangeListener != null){ + mChangeListener.onChange(); + } } public boolean checkCollision(Point3d pos, AbstractCutter cutter) { @@ -497,6 +507,16 @@ void init3DModel() { mTailClampShape = new Shape3D(mTailClampBox); Appearance supportStructureApperance = new Appearance(); +/* Color3f ambient = new Color3f(0.1f, 0.1f, 0.5f); + Color3f emissive = new Color3f(0.0f, 0.0f, 0.0f); + Color3f diffuse = new Color3f(0.1f, 0.1f, 0.6f); + Color3f specular = new Color3f(0.1f, 0.1f, 0.8f); +// TransparencyAttributes supportStructureTransparencyAttributes = new TransparencyAttributes(); +// supportStructureTransparencyAttributes.setTransparency(0.0f); + + // Set up the material properties + supportStructureApperance.setMaterial(new Material(ambient, emissive, diffuse, specular, 128.0f)); +// supportStructureApperance.setTransparencyAttributes(supportStructureTransparencyAttributes);*/ ColoringAttributes supportStructureColor = new ColoringAttributes(); supportStructureColor.setColor(0.1f, 0.1f, 0.5f); supportStructureApperance.setColoringAttributes(supportStructureColor); @@ -514,6 +534,8 @@ public void update3DModel() { String holdingSystemStr = LanguageResource .getString("BLANKHOLDINGSYSTEMCATEGORY_STR"); Settings holdingSystemSettings = mConfig.getCategory(holdingSystemStr); + if(!holdingSystemSettings.containsSetting(CLAMP_LENGTH))return; + double clampLength = holdingSystemSettings.getMeasurement(CLAMP_LENGTH) * UnitUtils.MILLIMETER_PR_CENTIMETER; double clampHeight = holdingSystemSettings.getMeasurement(CLAMP_HEIGHT) @@ -569,6 +591,8 @@ public void updateBoundingBoxes() { String holdingSystemStr = LanguageResource .getString("BLANKHOLDINGSYSTEMCATEGORY_STR"); Settings holdingSystemSettings = mConfig.getCategory(holdingSystemStr); + if(!holdingSystemSettings.containsSetting(CLAMP_LENGTH))return; + double clampLength = holdingSystemSettings.getMeasurement(CLAMP_LENGTH) * UnitUtils.MILLIMETER_PR_CENTIMETER; double clampHeight = holdingSystemSettings.getMeasurement(CLAMP_HEIGHT) diff --git a/boardcam/holdingsystems/TableBlockHoldingSystem.java b/boardcam/holdingsystems/TableBlockHoldingSystem.java new file mode 100644 index 0000000..47eb777 --- /dev/null +++ b/boardcam/holdingsystems/TableBlockHoldingSystem.java @@ -0,0 +1,277 @@ +package boardcam.holdingsystems; + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.Stroke; +import java.awt.geom.AffineTransform; +import java.awt.geom.Line2D; +import java.awt.geom.Rectangle2D; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.List; + +import javax.media.j3d.Appearance; +import javax.media.j3d.ColoringAttributes; +import javax.media.j3d.GeometryArray; +import javax.media.j3d.IndexedQuadArray; +import javax.media.j3d.LineArray; +import javax.media.j3d.Shape3D; +import javax.media.j3d.TransparencyAttributes; + +import cadcore.BezierSpline; +import cadcore.UnitUtils; +import cadcore.AxisAlignedBoundingBox; + +import com.sun.j3d.utils.geometry.Box; + +import javax.vecmath.Point2d; +import javax.vecmath.Point3d; +import javax.vecmath.Vector3d; + +import board.AbstractBoard; +import board.BezierBoard; +import boardcad.settings.Setting; +import boardcad.settings.Settings; +import boardcad.settings.Settings.SettingChangedCallback; +import boardcam.MachineConfig; +import boardcam.cutters.AbstractCutter; +import boardcad.i18n.LanguageResource; + +public class TableBlockHoldingSystem extends AbstractBlankHoldingSystem { + + static String BLOCK_WIDTH = "BlockWidth"; + static String BLOCK_THICKNESS = "BlockHeight"; + static String BLOCK_LENGTH = "BlockLength"; + + MachineConfig mConfig = null; + + IndexedQuadArray mBlockBox; + Shape3D mBlockShape; + + public TableBlockHoldingSystem(MachineConfig config) { + super.init(); + mConfig = config; + System.out.printf( + "TableBlockHoldingSystem mConfig set to %s in %s\n", + mConfig.toString(), this.toString()); + + Settings blockSettings = mConfig.addCategory(LanguageResource + .getString("BLANKHOLDINGSYSTEMCATEGORY_STR")); + blockSettings.putPreferences(); // Save previous + blockSettings.clear(); + SettingChangedCallback cb = new Settings.SettingChangedCallback() { + public void onSettingChanged(Object object) { + calcBlankOffset(); + update3DModel(); + } + }; + + blockSettings.addMeasurement(BLOCK_LENGTH, 244, + LanguageResource.getString("BLOCKLENGTH_STR"), cb); + blockSettings.addMeasurement(BLOCK_THICKNESS, 15, + LanguageResource.getString("BLOCKTHICKNESS_STR"), cb); + blockSettings.addMeasurement(BLOCK_WIDTH, 60, + LanguageResource.getString("BLOCKWIDTH_STR"), cb); + + setBoardDeckOffsetPos(getBoardDeckOffsetPos()); + // + init3DModel(); + } + + public void setBoardDeckOffsetPos(Vector3d offset) { + super.setBoardDeckOffsetPos(offset); + String holdingSystemStr = LanguageResource.getString("BLANKHOLDINGSYSTEMCATEGORY_STR"); + Settings holdingSystemSettings = mConfig.getCategory(holdingSystemStr); + double blockThickness = holdingSystemSettings.getMeasurement(BLOCK_THICKNESS); + mBoardBottomOffset.set(offset.x, offset.y, blockThickness-offset.z); + } + + public void setBoardDeckOffsetAngle(double angle) { + super.setBoardDeckOffsetAngle(angle); + mBoardBottomRotation = -angle; + } + + public Vector3d getBoardDeckOffsetPos() { + return mBoardDeckOffset; + } + + public Vector3d getBoardBottomOffsetPos() { + return mBoardBottomOffset; + } + + public void calcBlankOffset() { + } + + public boolean checkCollision(Point3d pos, AbstractCutter cutter) { + return false; + } + + public ArrayList handleCollision(Point3d point, AbstractCutter cutter, AbstractBoard board) { + + ArrayList res = new ArrayList(); + + return res; + } + + public void draw(Graphics2D g2d, double offsetX, double offsetY, + double scale, boolean showDeck) { + // Setup for drawing + AffineTransform savedTransform = g2d.getTransform(); + + g2d.setColor(Color.BLACK); + + Stroke stroke = new BasicStroke((float) (1.0 / scale)); + g2d.setStroke(stroke); + + AffineTransform at = new AffineTransform(); + + at.setToTranslation(offsetX, offsetY); + + g2d.transform(at); + + at.setToScale(scale, scale); + + g2d.transform(at); + + // Get parameters + String holdingSystemStr = LanguageResource.getString("BLANKHOLDINGSYSTEMCATEGORY_STR"); + Settings holdingSystemSettings = mConfig.getCategory(holdingSystemStr); + double blockLength = holdingSystemSettings.getMeasurement(BLOCK_LENGTH); + double blockThickness = holdingSystemSettings.getMeasurement(BLOCK_THICKNESS); + double blockWidth = holdingSystemSettings.getMeasurement(BLOCK_WIDTH); + + // Draw offset line + Line2D line = new Line2D.Double(); + + // Draw center reference line + line.setLine(-blockLength*0.05, 0, blockLength*1.1, 0); + g2d.setColor(Color.GRAY); + g2d.draw(line); + + // Draw blocks + Rectangle2D blockRect = new Rectangle2D.Double(); + blockRect.setFrame(0, -blockThickness, blockLength, blockThickness); + + g2d.setColor(Color.WHITE); + g2d.setStroke(new BasicStroke((float) (1.0 / scale))); + g2d.draw(blockRect); + + g2d.setTransform(savedTransform); + + super.draw(g2d, offsetX, offsetY, scale, showDeck); + } + + void init3DModel() { + + mBlockBox = new IndexedQuadArray(8, GeometryArray.COORDINATES, + 6 * 4); + + mBlockBox.setCapability(GeometryArray.ALLOW_COORDINATE_WRITE); + + mBlockBox.setCoordinateIndex(0, 0); // Front end + mBlockBox.setCoordinateIndex(1, 1); + mBlockBox.setCoordinateIndex(2, 2); + mBlockBox.setCoordinateIndex(3, 3); + + mBlockBox.setCoordinateIndex(4, 7); // Back end + mBlockBox.setCoordinateIndex(5, 6); + mBlockBox.setCoordinateIndex(6, 5); + mBlockBox.setCoordinateIndex(7, 4); + + mBlockBox.setCoordinateIndex(8, 0); // Top + mBlockBox.setCoordinateIndex(9, 3); + mBlockBox.setCoordinateIndex(10, 7); + mBlockBox.setCoordinateIndex(11, 4); + + mBlockBox.setCoordinateIndex(12, 1); // Bottom + mBlockBox.setCoordinateIndex(13, 5); + mBlockBox.setCoordinateIndex(14, 6); + mBlockBox.setCoordinateIndex(15, 2); + + mBlockBox.setCoordinateIndex(16, 0); // Left + mBlockBox.setCoordinateIndex(17, 4); + mBlockBox.setCoordinateIndex(18, 5); + mBlockBox.setCoordinateIndex(19, 1); + + mBlockBox.setCoordinateIndex(20, 7); // Right + mBlockBox.setCoordinateIndex(21, 3); + mBlockBox.setCoordinateIndex(22, 2); + mBlockBox.setCoordinateIndex(23, 6); + + mBlockShape = new Shape3D(mBlockBox); + + Appearance blockApperance = new Appearance(); + ColoringAttributes blockColor = new ColoringAttributes(); + blockColor.setColor(0.3f, 0.3f, 0.5f); + TransparencyAttributes transparency = new TransparencyAttributes(); + transparency.setTransparency(0.5f); + transparency.setTransparencyMode(TransparencyAttributes.BLENDED); + blockApperance.setColoringAttributes(blockColor); + blockApperance.setTransparencyAttributes(transparency); + mBlockShape.setAppearance(blockApperance); + + mModelRoot.addChild(mBlockShape); + + update3DModel(); + + } + + public void update3DModel() { + String holdingSystemStr = LanguageResource + .getString("BLANKHOLDINGSYSTEMCATEGORY_STR"); + Settings holdingSystemSettings = mConfig.getCategory(holdingSystemStr); + double blockLength = holdingSystemSettings.getMeasurement(BLOCK_LENGTH) * UnitUtils.MILLIMETER_PR_CENTIMETER; + double blockThickness = holdingSystemSettings.getMeasurement(BLOCK_THICKNESS) * UnitUtils.MILLIMETER_PR_CENTIMETER; + double blockWidth = holdingSystemSettings.getMeasurement(BLOCK_WIDTH) * UnitUtils.MILLIMETER_PR_CENTIMETER; + + mBlockBox.setCoordinate(0, new Point3d(0, blockWidth / 2.0, blockThickness )); + mBlockBox.setCoordinate(1, new Point3d(0, blockWidth / 2.0, 0.0)); + mBlockBox.setCoordinate(2, new Point3d(0, -blockWidth / 2.0, 0.0)); + mBlockBox.setCoordinate(3, new Point3d(0, -blockWidth / 2.0, blockThickness)); + + mBlockBox.setCoordinate(4, new Point3d(blockLength, blockWidth / 2.0, blockThickness)); + mBlockBox.setCoordinate(5, new Point3d(blockLength, blockWidth / 2.0, 0.0)); + mBlockBox.setCoordinate(6, new Point3d(blockLength, -blockWidth / 2.0, 0.0)); + mBlockBox.setCoordinate(7, new Point3d(blockLength, -blockWidth / 2.0, blockThickness)); + + } + + public void updateBoundingBoxes() { + String holdingSystemStr = LanguageResource + .getString("BLANKHOLDINGSYSTEMCATEGORY_STR"); + Settings holdingSystemSettings = mConfig.getCategory(holdingSystemStr); + double blockLength = holdingSystemSettings.getMeasurement(BLOCK_LENGTH) * UnitUtils.MILLIMETER_PR_CENTIMETER; + double blockThickness = holdingSystemSettings.getMeasurement(BLOCK_THICKNESS) * UnitUtils.MILLIMETER_PR_CENTIMETER; + double blockWidth = holdingSystemSettings.getMeasurement(BLOCK_WIDTH) * UnitUtils.MILLIMETER_PR_CENTIMETER; + + // TODO: No collision checks + } + + public String toString(boolean isDeckCut) { + String holdingSystemStr = LanguageResource + .getString("BLANKHOLDINGSYSTEMCATEGORY_STR"); + Settings holdingSystemSettings = mConfig.getCategory(holdingSystemStr); + double blockLength = holdingSystemSettings.getMeasurement(BLOCK_LENGTH) * UnitUtils.MILLIMETER_PR_CENTIMETER; + double blockThickness = holdingSystemSettings.getMeasurement(BLOCK_THICKNESS) * UnitUtils.MILLIMETER_PR_CENTIMETER; + double blockWidth = holdingSystemSettings.getMeasurement(BLOCK_WIDTH) * UnitUtils.MILLIMETER_PR_CENTIMETER; + + String str = new String(); + str.concat(LanguageResource.getString("ENDBLOCKS_STR")); + str.concat(" "); + str.concat(holdingSystemStr); + str.concat("\n"); + + String details = String.format( + "%s:%f, %s:%f, %s:%f\n", + LanguageResource.getString("BLOCKLENGTH_STR"), blockLength, + LanguageResource.getString("BLOCKHEIGHT_STR"), blockThickness, + LanguageResource.getString("BLOCKWIDTH_STR"), blockWidth); + str.concat(details); + + str.concat(super.toString(isDeckCut)); + + return str; + } + + } diff --git a/boardcam/toolpathgenerators/SurfaceSplitsToolpathGenerator.java b/boardcam/toolpathgenerators/SurfaceSplitsToolpathGenerator.java index 072dfe7..db6472d 100644 --- a/boardcam/toolpathgenerators/SurfaceSplitsToolpathGenerator.java +++ b/boardcam/toolpathgenerators/SurfaceSplitsToolpathGenerator.java @@ -13,7 +13,6 @@ import javax.vecmath.Vector3d; import cadcore.BezierSpline; - import board.AbstractBoard; import board.BezierBoard; import boardcad.FileTools; @@ -21,10 +20,12 @@ import boardcad.i18n.LanguageResource; import boardcad.settings.Settings; import boardcam.MachineConfig; +import boardcam.cutters.AbstractCutter; import boardcam.toolpathgenerators.ext.SandwichCompensation; import boardcam.writers.AbstractMachineWriter; -public class SurfaceSplitsToolpathGenerator extends AbstractToolpathGenerator { +public class SurfaceSplitsToolpathGenerator extends AbstractToolpathGenerator + implements Cloneable { public class State { public static final int NO_STATE = 0; @@ -63,8 +64,6 @@ public class State { double mLengthwiseResolution = 1.0; - protected int mCurrentState = State.NO_STATE; - boolean mDeckStringerCut = true; boolean mBottomStringerCut = true; boolean mStayAwayFromStringer = false; @@ -100,28 +99,17 @@ public class State { private boolean mHasCutBottomStringer = false; - private int mCutNumber = 0; private int mTotalCuts = 0; protected double mLength = 0; protected int mNrOfLengthSplits = 0; - protected double y = 0; - protected int i = 0; - protected int j = 0; - protected Vector3d mNormal; - protected Point3d mPoint; - protected boolean mIsCuttingStringer = false; - protected boolean mIsCuttingRail = false; - protected boolean mIsCuttingOutline = false; - - protected boolean mFirstCoordinate = false; protected int mMoveToNextToolpathSteps = 5; protected int mBottomSideChangeSteps = 10; protected int mDeckSideChangeSteps = 10; - protected boolean mNoseToTail = false; + protected boolean mFirstCoordinate = false; protected MachineConfig mConfig; @@ -129,6 +117,27 @@ public class State { protected SandwichCompensation mSandwichCompensation; + protected boolean mNoseToTail = false; + protected int mCurrentState = State.NO_STATE; + protected int mCutNumber = 0; + protected double y = 0; + protected int i = 0; + protected int j = 0; + protected Vector3d mNormal; + protected Point3d mPoint; + protected boolean mIsCuttingStringer = false; + protected boolean mIsCuttingRail = false; + protected boolean mIsCuttingOutline = false; + + static int mDeckProgress = 0; + static int mBottomProgress = 0; + + + protected BezierBoard mBrd; + + protected SurfaceSplitsToolpathGenerator mDeckGenerator = null; + protected SurfaceSplitsToolpathGenerator mBottomGenerator = null; + public SurfaceSplitsToolpathGenerator(MachineConfig config, AbstractMachineWriter writer, MachineView view) { super(writer, view); @@ -146,6 +155,10 @@ protected void initDeck() { mLastSurfacePoint = null; mLastToolpathPoint = null; mFirstCoordinate = true; + + mPoint = new Point3d(0.0, 0.0, 0.0); + mNormal = new Vector3d(0.0, 0.0, 0.0); + mNoseToTail = mStartDeckCutAtTail ? false : true; mCurrentState = mStartDeckCutAtTail ? State.DECK_STRINGER_CUT @@ -154,15 +167,6 @@ protected void initDeck() { mIsCuttingRail = false; mIsCuttingOutline = false; - mCurrentCutter.update3DModel(); - mMachineView.get3DView().setDeckActive(); - - mCurrentCutter.setStayAwayFromStringer(mStayAwayFromStringer); - mCurrentCutter.setStringerWidth(mStringerWidth); - mMachineView.get3DView().setCutterpos(new Point3d(0.0, 0.0, 0.0)); - - setCutterOffset(mConfig.getCutterOffset()); - setOffsetAndRotation( mCurrentBlankHoldingSystem.getBoardDeckOffsetPos(), mCurrentBlankHoldingSystem.getBoardDeckOffsetAngle(), 10.0); @@ -192,10 +196,13 @@ protected void initBottom() { y = 0; i = 0; j = 0; - mLastSurfacePoint = null; - mLastToolpathPoint = null; + mLastSurfacePoint = new Point3d(0.0, 0.0, 0.0); + mLastToolpathPoint = new Point3d(0.0, 0.0, 0.0); mFirstCoordinate = true; + mPoint = new Point3d(0.0, 0.0, 0.0); + mNormal = new Vector3d(0.0, 0.0, 0.0); + mHasCutBottomStringer = false; switch (mBottomStartPos) { @@ -216,13 +223,14 @@ protected void initBottom() { mIsCuttingRail = false; mIsCuttingOutline = false; - mCurrentCutter.update3DModel(); - mMachineView.get3DView().setBottomActive(); - mMachineView.get3DView().setCutterModel(mCurrentCutter.get3DModel()); - mMachineView.get3DView().setCutterpos(new Point3d(0.0, 0.0, 0.0)); - - setCutterOffset(mConfig.getCutterOffset()); - + /* + * mCurrentCutter.update3DModel(); + * mMachineView.get3DView().setBottomActive(); + * mMachineView.get3DView().setCutterModel(mCurrentCutter.get3DModel()); + * mMachineView.get3DView().setCutterpos(new Point3d(0.0, 0.0, 0.0)); + * + * setCutterOffset(mConfig.getCutterOffset()); + */ setOffsetAndRotation( mCurrentBlankHoldingSystem.getBoardBottomOffsetPos(), mCurrentBlankHoldingSystem.getBoardBottomOffsetAngle(), 10.0); @@ -249,7 +257,7 @@ protected void initBottom() { } protected void writeToolpathBegin() { - mCurrentWriter.writeComment(mStream, "Generated with BoardCAD v2.0"); + mCurrentWriter.writeComment(mStream, "Generated with BoardCAD v3.1"); // TODO: Write time and date mCurrentWriter.writeComment(mStream, isDeckCut() ? LanguageResource.getString("DECKCUT_STR") @@ -410,35 +418,99 @@ public void writeToolpath(String filename, AbstractBoard board, mBoard = board; mBlank = blank; - mCurrentCutter = mConfig.getCutter(); + BezierBoard brd = (BezierBoard) mBoard; + mBrd = (BezierBoard) brd.clone(); + + try{ + mCurrentCutter = (AbstractCutter)mConfig.getCutter().clone(); + } catch (CloneNotSupportedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } mCurrentBlankHoldingSystem = mConfig.getBlankHoldingSystem(); - SwingWorker worker = getNewWorker(); - worker.execute(); + mProgress.setProgress(0); + mDeckProgress = 0; + mBottomProgress = 0; + + mCutNumber = 0; + + mMachineView.get3DView().reset(); + + getSettings(mConfig); + + mLength = mBoard.getLength() - 0.1;// BezierPatch.ZERO; + mNrOfLengthSplits = ((int) (mLength / mLengthwiseResolution)) + 1; + + mCurrentCutter.init(); + + mCurrentCutter.update3DModel(); + mMachineView.get3DView().setDeckActive(); + + mCurrentCutter.setStayAwayFromStringer(mStayAwayFromStringer); + mCurrentCutter.setStringerWidth(mStringerWidth); + mMachineView.get3DView().setCutterPos(new Point3d(0.0, 0.0, 0.0)); + + setCutterOffset(mConfig.getCutterOffset()); + + try { + mDeckGenerator = (SurfaceSplitsToolpathGenerator) this.clone(); + mBottomGenerator = (SurfaceSplitsToolpathGenerator) this.clone(); + } catch (CloneNotSupportedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + SwingWorker deckWorker = getDeckWorker(); + deckWorker.execute(); + + SwingWorker bottomWorker = getBottomWorker(); + bottomWorker.execute(); } - protected SwingWorker getNewWorker() { + protected SwingWorker getDeckWorker() { return new SwingWorker() { protected Void doInBackground() throws Exception { try { - mProgress.setProgress(0); - mMachineView.get3DView().reset(); + mDeckGenerator.initDeck(); + mDeckGenerator.writeToolpath(); - getSettings(mConfig); + mProgress.close(); + } catch (Exception e) { + System.out + .println("Exception in SwingWorker::doInBackground(): " + + e.toString()); - mLength = mBoard.getLength() - 0.1;// BezierPatch.ZERO; - mNrOfLengthSplits = ((int) (mLength / mLengthwiseResolution)) + 1; + mProgress.close(); - mCurrentCutter.init(); + JOptionPane.showMessageDialog( + mConfig.getMachineView(), + "An error occured when writing g-code, error:" + + e.toString(), + "Error when writing G-Code file", + JOptionPane.ERROR_MESSAGE); + + return null; + } + + return null; + } + }; + + } + + protected SwingWorker getBottomWorker() { + return new SwingWorker() { + + protected Void doInBackground() throws Exception { - initDeck(); - writeToolpath(); + try { - initBottom(); - writeToolpath(); + mBottomGenerator.initBottom(); + mBottomGenerator.writeToolpath(); mProgress.close(); } catch (Exception e) { @@ -484,7 +556,7 @@ protected void getSettings(MachineConfig config) { mDeckCutOutline = cutsSettings .getBoolean(MachineConfig.DECK_OUTLINE_CUT); mDeckCutOutlineDepth = cutsSettings - .getEnumeration(MachineConfig.DECK_OUTLINE_CUT_DEPTH); + .getEnumeration(MachineConfig.DECK_OUTLINE_CUT_DEPTH); mBottomCutOutline = cutsSettings .getBoolean(MachineConfig.BOTTOM_OUTLINE_CUT); mCutOffNose = cutsSettings.getBoolean(MachineConfig.CUT_OFF_NOSE); @@ -539,8 +611,7 @@ protected boolean isDeckCut() { || mCurrentState == State.DECK_LEFT_CUT || mCurrentState == State.DECK_LEFT_RAIL_CUT || mCurrentState == State.DECK_LEFT_OUTLINE_CUT - || mCurrentState == State.DECK_LEFT_CLEANUP_CUT - || mCurrentState == State.DECK_FINISHED); + || mCurrentState == State.DECK_LEFT_CLEANUP_CUT || mCurrentState == State.DECK_FINISHED); } protected boolean isBottomCut() { @@ -553,8 +624,7 @@ protected boolean isBottomCut() { || mCurrentState == State.BOTTOM_LEFT_CUT || mCurrentState == State.BOTTOM_LEFT_RAIL_CUT || mCurrentState == State.BOTTOM_LEFT_OUTLINE_CUT - || mCurrentState == State.BOTTOM_LEFT_CLEANUP_CUT - || mCurrentState == State.BOTTOM_FINISHED); + || mCurrentState == State.BOTTOM_LEFT_CLEANUP_CUT || mCurrentState == State.BOTTOM_FINISHED); } protected boolean isOutlineCut() { @@ -562,8 +632,7 @@ protected boolean isOutlineCut() { || mCurrentState == State.DECK_RIGHT_CLEANUP_CUT || mCurrentState == State.DECK_LEFT_OUTLINE_CUT || mCurrentState == State.DECK_LEFT_CLEANUP_CUT - || mCurrentState == State.BOTTOM_RIGHT_OUTLINE_CUT - || mCurrentState == State.BOTTOM_LEFT_OUTLINE_CUT); + || mCurrentState == State.BOTTOM_RIGHT_OUTLINE_CUT || mCurrentState == State.BOTTOM_LEFT_OUTLINE_CUT); } protected boolean isRightCut() { @@ -575,27 +644,29 @@ protected boolean isRightCut() { || mCurrentState == State.BOTTOM_RIGHT_CUT || mCurrentState == State.BOTTOM_RIGHT_RAIL_CUT || mCurrentState == State.BOTTOM_RIGHT_OUTLINE_CUT - || mCurrentState == State.BOTTOM_RIGHT_CLEANUP_CUT - || mCurrentState == State.BOTTOM_FINISHED); + || mCurrentState == State.BOTTOM_RIGHT_CLEANUP_CUT || mCurrentState == State.BOTTOM_FINISHED); } - + protected boolean isSideChange() { - return (mCurrentState == State.DECK_SIDE_CHANGE - || mCurrentState == State.BOTTOM_SIDE_CHANGE); + return (mCurrentState == State.DECK_SIDE_CHANGE || mCurrentState == State.BOTTOM_SIDE_CHANGE); } public Point3d getToolpathCoordinate() { getCurrentStateCut(); - if(mPoint != null) - { - if (mSandwichCompensation.compensateOutlineCuts() && isOutlineCut() && !isSideChange()) { - mPoint = mSandwichCompensation - .compensateOutlineCut(mPoint, mNormal); - } else if (mSandwichCompensation.compensateDeckCuts() && isDeckCut() && !isSideChange()) { - mPoint = mSandwichCompensation.compensateDeckCut(mPoint, mNormal); - } else if (mSandwichCompensation.compensateBottomCuts() && isBottomCut() && !isSideChange()) { - mPoint = mSandwichCompensation.compensateBottomCut(mPoint, mNormal); + if (mPoint != null) { + if (mSandwichCompensation.compensateOutlineCuts() && isOutlineCut() + && !isSideChange()) { + mPoint = mSandwichCompensation.compensateOutlineCut(mPoint, + mNormal); + } else if (mSandwichCompensation.compensateDeckCuts() + && isDeckCut() && !isSideChange()) { + mPoint = mSandwichCompensation.compensateDeckCut(mPoint, + mNormal); + } else if (mSandwichCompensation.compensateBottomCuts() + && isBottomCut() && !isSideChange()) { + mPoint = mSandwichCompensation.compensateBottomCut(mPoint, + mNormal); } } @@ -659,12 +730,25 @@ protected void nextToolpath() { } protected void updateProgress() { - setProgressDone((int) (((double) mCutNumber / (double) mTotalCuts) * 100.0)); + + if(isBottomCut()) + { + mBottomProgress = (int) (((double) mCutNumber / (double) mTotalCuts) * 100.0); + } + else + { + mDeckProgress = (int) (((double) mCutNumber / (double) mTotalCuts) * 100.0); + } + + int progress = mDeckProgress + mBottomProgress; + + setProgressDone(progress); } protected void getCurrentStateCut() { - double x = getX(i, j); //DEBUG -// System.out.printf("SurfaceSplitToolpathGenerator.getCurrentStateCut() state:%s, i:%d, j:%d, x:%f\n",getStateString(mCurrentState), i, j, x); + double x = getX(i, j); // DEBUG + // System.out.printf("SurfaceSplitToolpathGenerator.getCurrentStateCut() state:%s, i:%d, j:%d, x:%f\n",getStateString(mCurrentState), + // i, j, x); switch (mCurrentState) { case State.DECK_STRINGER_CUT: @@ -1027,8 +1111,8 @@ protected void nextState() { break; } -// System.out.printf("Changed state to %s\n", -// getStateString(mCurrentState)); + // System.out.printf("Changed state to %s\n", + // getStateString(mCurrentState)); i = 0; j = 0; @@ -1138,12 +1222,15 @@ protected void getDeckStringerCut() { // mPoint = getSurfacePoint(x, DECK_EXTREME_ANGLE, mDeckAngle, 0, 1); // mPoint = getSurfacePoint(x, 0.0); // mNormal = getSurfaceNormal(x, DECK_EXTREME_ANGLE, mDeckAngle, 0, 1); - BezierBoard brd = (BezierBoard) mBoard; - double y = brd.getDeck().getValueAt(x); - Point2D.Double normal2d = brd.getDeck().getNormalAt(x); + double y = mBrd.getDeck().getValueAt(x); + Point2D.Double normal2d = mBrd.getDeck().getNormalAt(x); - mPoint = new Point3d(x, 0.0, y); - mNormal = new Vector3d(normal2d.x, 0.0, normal2d.y); + mPoint.x = x; + mPoint.y = 0.0; + mPoint.z = y; + mNormal.x = normal2d.x; + mNormal.y = 0.0; + mNormal.z = normal2d.y; } @@ -1195,19 +1282,23 @@ protected void getDeckOutlineRightCut() { double x = getX(i, j); // system.out.printf("getDeckOutlineRightCut() Cut: %d x: %f\n", i+1, // x); - Point3d bottomPoint = getSurfacePoint(x, mBottomAngle, - mBottomAngle, 0, 1); // Find z value for tuck under - Point3d apexPoint = getSurfacePoint(x, NINTY_ANGLE, - NINTY_ANGLE, 0, 1); // Find z value for apex - BezierBoard brd = (BezierBoard) mBoard; - double bottomZ = brd.getBottom().getValueAt(x); - //System.out.printf("getDeckOutlineRightCut: apex z:%f bottom z:%f bottomPoint.z:%f", apexPoint.z, bottomZ, bottomPoint.z); + Point3d bottomPoint = getSurfacePoint(x, mBottomAngle, mBottomAngle, 0, + 1); // Find z value for tuck under + Point3d apexPoint = getSurfacePoint(x, NINTY_ANGLE, NINTY_ANGLE, 0, 1); // Find + // z + // value + // for + // apex + double bottomZ = mBrd.getBottom().getValueAt(x); + // System.out.printf("getDeckOutlineRightCut: apex z:%f bottom z:%f bottomPoint.z:%f", + // apexPoint.z, bottomZ, bottomPoint.z); // Point3d railPoint = getSurfacePoint(x, DECK_EXTREME_ANGLE,90.0,1,1); // //Find rail point double railPoint = ((BezierBoard) mBoard).getOutline().getValueAt(x); // Find // rail // point - mPoint = new Point3d(x, railPoint, mDeckCutOutlineDepth==0?apexPoint.z:bottomPoint.z); + mPoint = new Point3d(x, railPoint, + mDeckCutOutlineDepth == 0 ? apexPoint.z : bottomPoint.z); Point2D.Double normal = ((BezierBoard) mBoard).getOutline() .getNormalAt(x); // Find rail point @@ -1230,13 +1321,14 @@ protected void getDeckRailCleanupRightCut() { protected void getDeckLeftCut() { if (j < mMoveToNextToolpathSteps) { double x = getX(i, 0); - //System.out.printf("getDeckRightCut() Move to next cut: %d step: %d\n", i+1, j); + // System.out.printf("getDeckRightCut() Move to next cut: %d step: %d\n", + // i+1, j); getMoveBetweenCuts(x, DECK_EXTREME_ANGLE, mDeckAngle, i * mMoveToNextToolpathSteps + j, mDeckCuts * mMoveToNextToolpathSteps, false, false, true); } else { double x = getX(i, j - mMoveToNextToolpathSteps); - System.out.printf("getDeckLeftCut() Cut: %d x: %f\n", i+1, x); + System.out.printf("getDeckLeftCut() Cut: %d x: %f\n", i + 1, x); mPoint = getSurfacePoint(x, DECK_EXTREME_ANGLE, mDeckAngle, i + 1, mDeckCuts); mNormal = getSurfaceNormal(x, DECK_EXTREME_ANGLE, mDeckAngle, @@ -1300,21 +1392,20 @@ protected void getDeckSideChange() { if (stepsLeft >= 2) { double startAngle = (mDeckRailCuts > 0) ? mDeckRailAngle : mDeckAngle; - if (startAngle > 90) { //Move if undercut + if (startAngle > 90) { // Move if undercut getMoveBetweenCuts(x, 90.0, startAngle, mDeckSideChangeSteps - j, mDeckSideChangeSteps, false, false, true); - } - else{ - //Do nothing, just wait to go over stringer + } else { + // Do nothing, just wait to go over stringer } } else { - mNormal = new Vector3d( mNoseToTail?1.0:-1.0, 0.0, 0.0); + mNormal = new Vector3d(mNoseToTail ? 1.0 : -1.0, 0.0, 0.0); mPoint = new Point3d(mPoint); if (stepsLeft == 1) { mPoint.z = mPoint.z + 5.0; } else { - mPoint.y = -mStringerWidth*5 / 2; + mPoint.y = -mStringerWidth * 5 / 2; } } @@ -1330,14 +1421,13 @@ protected void getDeckSideChange() { protected void getBottomStringerCut() { double x = getX(i, j); - BezierBoard brd = (BezierBoard) mBoard; // system.out.printf("getBottomStringerCut() Cut: %d x: %f\n", i+1, x); // mPoint = getSurfacePoint(x, BezierSpline.ONE); - // mPoint = new Point3d(0.0,0.0,brd.getRockerAtPos(x)); + // mPoint = new Point3d(0.0,0.0,mBrd.getRockerAtPos(x)); // mPoint = getSurfacePoint(x, BOTTOM_EXTREME_ANGLE, mBottomAngle, 0, 1, // false); - double y = brd.getBottom().getValueAt(x); - Point2D.Double normal = brd.getBottom().getNormalAt(x); + double y = mBrd.getBottom().getValueAt(x); + Point2D.Double normal = mBrd.getBottom().getNormalAt(x); mPoint = new Point3d(x, 0.0, y); mNormal = new Vector3d(normal.x, 0.0, normal.y); @@ -1347,29 +1437,30 @@ protected void getBottomStringerCut() { } protected void getBottomRightCut() { - //System.out.printf("-------------------------------------------------------\n"); + // System.out.printf("-------------------------------------------------------\n"); if (j < mMoveToNextToolpathSteps) { - //System.out.printf("#### Move between paths\n"); + // System.out.printf("#### Move between paths\n"); double x = getX(i, 0); // system.out.printf("getBottomRightCut() Move to next cut: %d step: %d\n", // i+1, j-mNrOfLengthSplits); getMoveBetweenCuts(x, BOTTOM_EXTREME_ANGLE, mBottomAngle, i * mMoveToNextToolpathSteps + j, mBottomCuts * mMoveToNextToolpathSteps, false, false, true); - } - else - { - //System.out.printf("**** Cut\n"); + } else { + // System.out.printf("**** Cut\n"); double x = getX(i, j - mMoveToNextToolpathSteps); // system.out.printf("getBottomRightCut() Cut: %d x: %f\n", i+1, x); mPoint = getSurfacePoint(x, BOTTOM_EXTREME_ANGLE, mBottomAngle, i + 1, mBottomCuts, true); mNormal = getSurfaceNormal(x, BOTTOM_EXTREME_ANGLE, mBottomAngle, i + 1, mBottomCuts, true); - //System.out.printf("getBottomRightCut() Step: %d/%d x:%f, minAngle:%f, maxAngle:%f,\n", i + 1, mBottomCuts, x, BOTTOM_EXTREME_ANGLE, mBottomAngle); - //System.out.printf("getBottomRightCut() mPoint: %f, %f, %f mNormal: %f, %f, %f\n", mPoint.x, mPoint.y, mPoint.z, mNormal.x, mNormal.y, mNormal.z); + // System.out.printf("getBottomRightCut() Step: %d/%d x:%f, minAngle:%f, maxAngle:%f,\n", + // i + 1, mBottomCuts, x, BOTTOM_EXTREME_ANGLE, mBottomAngle); + // System.out.printf("getBottomRightCut() mPoint: %f, %f, %f mNormal: %f, %f, %f\n", + // mPoint.x, mPoint.y, mPoint.z, mNormal.x, mNormal.y, mNormal.z); } - //System.out.printf("getBottomRightCut() i:%d j:%d mPoint: %f, %f, %f\n",i,j, mPoint.x, mPoint.y, mPoint.z); + // System.out.printf("getBottomRightCut() i:%d j:%d mPoint: %f, %f, %f\n",i,j, + // mPoint.x, mPoint.y, mPoint.z); flip(); } @@ -1458,7 +1549,7 @@ protected void getBottomSideChange() { true, false, (mBottomRailCuts > 0) ? true : false); } } else { - mNormal = new Vector3d( mNoseToTail?1.0:-1.0, 0.0, 0.0); + mNormal = new Vector3d(mNoseToTail ? 1.0 : -1.0, 0.0, 0.0); mPoint = new Point3d(mPoint); if (stepsLeft == 1) { mPoint.z = mPoint.z + 5.0; @@ -1476,17 +1567,25 @@ protected void getBottomSideChange() { } } - protected void getMoveBetweenCuts(double x, double minAngle, double maxAngle, int i, int cuts, boolean flip, boolean mirror, boolean useMinimumAngleOnSharpCorners) - { - System.out.printf("getMoveBetweenCuts() Step: %d/%d x:%f, minAngle:%f, maxAngle:%f,\n", i, cuts,x, minAngle, maxAngle); + protected void getMoveBetweenCuts(double x, double minAngle, + double maxAngle, int i, int cuts, boolean flip, boolean mirror, + boolean useMinimumAngleOnSharpCorners) { + System.out + .printf("getMoveBetweenCuts() Step: %d/%d x:%f, minAngle:%f, maxAngle:%f,\n", + i, cuts, x, minAngle, maxAngle); if (i > cuts) i = cuts; - mPoint = getSurfacePoint(x, minAngle, maxAngle, i, cuts, useMinimumAngleOnSharpCorners); - mNormal = getSurfaceNormal(x, minAngle, maxAngle, i, cuts, useMinimumAngleOnSharpCorners); + mPoint = getSurfacePoint(x, minAngle, maxAngle, i, cuts, + useMinimumAngleOnSharpCorners); + mNormal = getSurfaceNormal(x, minAngle, maxAngle, i, cuts, + useMinimumAngleOnSharpCorners); - System.out.printf("getMoveBetweenCuts() mPoint: %f, %f, %f mNormal: %f, %f, %f\n", mPoint.x, mPoint.y, mPoint.z, mNormal.x, mNormal.y, mNormal.z); + System.out + .printf("getMoveBetweenCuts() mPoint: %f, %f, %f mNormal: %f, %f, %f\n", + mPoint.x, mPoint.y, mPoint.z, mNormal.x, mNormal.y, + mNormal.z); // mPoint.add(mNormal); //Lift @@ -1511,8 +1610,7 @@ protected void flip() { protected Point3d getSurfacePoint(double x, double minAngle, double maxAngle, int currentSplit, int totalSplits) { - BezierBoard brd = (BezierBoard) mBoard; // Only Brd supported yet - return brd.getSurfacePoint(x, minAngle, maxAngle, currentSplit, + return mBrd.getSurfacePoint(x, minAngle, maxAngle, currentSplit, totalSplits); } @@ -1520,31 +1618,30 @@ protected Point3d getSurfacePoint(double x, double minAngle, protected Point3d getSurfacePoint(double x, double minAngle, double maxAngle, int currentSplit, int totalSplits, boolean useMinimumAngleOnSharpCorners) { - //System.out.printf("getSurfacePoint(x:%f, minAngle:%f, maxAngle:%f, currentSplit:%d, totalSplits:%d, useMinimumAngleOnSharpCorners:%s)\n",x,minAngle,maxAngle,currentSplit,totalSplits, useMinimumAngleOnSharpCorners?"true":"false"); - BezierBoard brd = (BezierBoard) mBoard; // Only Brd supported yet - return brd.getSurfacePoint(x, minAngle, maxAngle, currentSplit, + // System.out.printf("getSurfacePoint(x:%f, minAngle:%f, maxAngle:%f, currentSplit:%d, totalSplits:%d, useMinimumAngleOnSharpCorners:%s)\n",x,minAngle,maxAngle,currentSplit,totalSplits, + // useMinimumAngleOnSharpCorners?"true":"false"); + return mBrd.getSurfacePoint(x, minAngle, maxAngle, currentSplit, totalSplits, useMinimumAngleOnSharpCorners); } protected Point3d getSurfacePoint(double x, double s) { - BezierBoard brd = (BezierBoard) mBoard; // Only Brd supported yet - return brd.getSurfacePoint(x, s); + return mBrd.getSurfacePoint(x, s); } protected Vector3d getSurfaceNormal(double x, double minAngle, double maxAngle, int currentSplit, int totalSplits) { - - //System.out.printf("getSurfaceNormal(double x:%f, double minAngle:%f, double maxAngle:%f, int currentSplit:%d, int totalSplits:%d)\n", x, minAngle, maxAngle, currentSplit, totalSplits); - + + // System.out.printf("getSurfaceNormal(double x:%f, double minAngle:%f, double maxAngle:%f, int currentSplit:%d, int totalSplits:%d)\n", + // x, minAngle, maxAngle, currentSplit, totalSplits); + if (x < 1.0) x = 1.0; if (x > mLength - 1.0) x = mLength - 1.0; - BezierBoard brd = (BezierBoard) mBoard; // Only Brd supported yet - return brd.getSurfaceNormal(x, minAngle, maxAngle, currentSplit, + return mBrd.getSurfaceNormal(x, minAngle, maxAngle, currentSplit, totalSplits); } @@ -1556,10 +1653,12 @@ protected Vector3d getSurfaceNormal(double x, double minAngle, if (x > mLength - 0.1) x = mLength - 0.1; - System.out.printf("getSurfaceNormal(double x:%f, double minAngle:%f, double maxAngle:%f, int currentSplit:%d, int totalSplits:%d, boolean useMinimumAngleOnSharpCorners:%s)\n", x, minAngle, maxAngle, currentSplit, totalSplits, useMinimumAngleOnSharpCorners?"true":"false"); + System.out + .printf("getSurfaceNormal(double x:%f, double minAngle:%f, double maxAngle:%f, int currentSplit:%d, int totalSplits:%d, boolean useMinimumAngleOnSharpCorners:%s)\n", + x, minAngle, maxAngle, currentSplit, totalSplits, + useMinimumAngleOnSharpCorners ? "true" : "false"); - BezierBoard brd = (BezierBoard) mBoard; // Only Brd supported yet - return brd.getSurfaceNormal(x, minAngle, maxAngle, currentSplit, + return mBrd.getSurfaceNormal(x, minAngle, maxAngle, currentSplit, totalSplits, useMinimumAngleOnSharpCorners); } @@ -1569,8 +1668,7 @@ protected Vector3d getSurfaceNormal(double x, double s) { if (x > mLength - 1.0) x = mLength - 1.0; - BezierBoard brd = (BezierBoard) mBoard; // Only Brd supported yet - return brd.getSurfaceNormal(x, s); + return mBrd.getSurfaceNormal(x, s); } /* @@ -1710,72 +1808,88 @@ protected void setToolpathStart(Point3d point) { mMachineView.get3DView().setBottomToolpathStart(point); } } - + protected boolean checkCollision(Point3d pos, AbstractBoard board) { -//TODO: pseudo-implementation, implement the missing function to provide a simpler way to avoid hitting the stringer -// if(mStayAwayFromStringer && mCurrentCutter.checkCollisionWithStringer(pos)) -// { -// double blankZ = isDeckCut()?mBlankholdingSystem.getBlankDeckAt(pos.x, pos.y):mBlankholdingSystem.getBlankBottomAt(pos.x, pos.y); -// double liftZ = blankZ + 25.0f; //One inch above blank; -// -// if(mLastToolpathPoint != null) -// { -// Point3d lift = new Point3d(mLastToolpathPoint); -// if(lift.z < liftZ) -// { -// lift.z = liftZ; -// -// addToolpathLine(lift); -// writeCoordinate(new double[]{lift.x, lift.y, lift.z}); -// } -// } -// -// Point3d aboveStringerPos = new Point3d(pos); -// aboveStringerPos.z = liftZ; -// aboveStringerPos.sub(mCutterOffset); -// -// if (mLastToolpathPoint == null) -// { -// setToolpathStart(aboveStringerPos); -// } -// else -// { -// addToolpathLine(aboveStringerPos); -// } -// -// writeCoordinate(new double[]{aboveStringerPos.x, aboveStringerPos.y, aboveStringerPos.z}); -// -// mLastToolpathPoint = aboveStringerPos; -// -// mPreviousCollisionWithStringer = true; -// -// } -// else if(mPreviousCollisionWithStringer) -// { -// double blankZ = isDeckCut()?mBlankholdingSystem.getBlankDeckAt(pos.x, pos.y):mBlankholdingSystem.getBlankBottomAt(pos.x, pos.y); -// double liftZ = blankZ + 25.0f; //One inch above blank; -// -// Point3d aboveStringerPos = new Point3d(pos); -// aboveStringerPos.z = liftZ; -// aboveStringerPos.sub(mCutterOffset); -// -// if (mLastToolpathPoint == null) -// { -// setToolpathStart(aboveStringerPos); -// } -// else -// { -// addToolpathLine(aboveStringerPos); -// } -// -// writeCoordinate(new double[]{aboveStringerPos.x, aboveStringerPos.y, aboveStringerPos.z}); -// -// mLastToolpathPoint = aboveStringerPos; -// -// mPreviousCollisionWithStringer = false; -// } - + // TODO: pseudo-implementation, implement the missing function to + // provide a simpler way to avoid hitting the stringer + // if(mStayAwayFromStringer && + // mCurrentCutter.checkCollisionWithStringer(pos)) + // { + // double blankZ = isDeckCut()?mBlankholdingSystem.getBlankDeckAt(pos.x, + // pos.y):mBlankholdingSystem.getBlankBottomAt(pos.x, pos.y); + // double liftZ = blankZ + 25.0f; //One inch above blank; + // + // if(mLastToolpathPoint != null) + // { + // Point3d lift = new Point3d(mLastToolpathPoint); + // if(lift.z < liftZ) + // { + // lift.z = liftZ; + // + // addToolpathLine(lift); + // writeCoordinate(new double[]{lift.x, lift.y, lift.z}); + // } + // } + // + // Point3d aboveStringerPos = new Point3d(pos); + // aboveStringerPos.z = liftZ; + // aboveStringerPos.sub(mCutterOffset); + // + // if (mLastToolpathPoint == null) + // { + // setToolpathStart(aboveStringerPos); + // } + // else + // { + // addToolpathLine(aboveStringerPos); + // } + // + // writeCoordinate(new double[]{aboveStringerPos.x, aboveStringerPos.y, + // aboveStringerPos.z}); + // + // mLastToolpathPoint = aboveStringerPos; + // + // mPreviousCollisionWithStringer = true; + // + // } + // else if(mPreviousCollisionWithStringer) + // { + // double blankZ = isDeckCut()?mBlankholdingSystem.getBlankDeckAt(pos.x, + // pos.y):mBlankholdingSystem.getBlankBottomAt(pos.x, pos.y); + // double liftZ = blankZ + 25.0f; //One inch above blank; + // + // Point3d aboveStringerPos = new Point3d(pos); + // aboveStringerPos.z = liftZ; + // aboveStringerPos.sub(mCutterOffset); + // + // if (mLastToolpathPoint == null) + // { + // setToolpathStart(aboveStringerPos); + // } + // else + // { + // addToolpathLine(aboveStringerPos); + // } + // + // writeCoordinate(new double[]{aboveStringerPos.x, aboveStringerPos.y, + // aboveStringerPos.z}); + // + // mLastToolpathPoint = aboveStringerPos; + // + // mPreviousCollisionWithStringer = false; + // } + return mCurrentCutter.checkCollision(pos, board); } + + public Object clone() throws CloneNotSupportedException { + + SurfaceSplitsToolpathGenerator gen = (SurfaceSplitsToolpathGenerator) super + .clone(); + + gen.mBrd = (BezierBoard) mBrd.clone(); + + return gen; + } } \ No newline at end of file diff --git a/boardcam/writers/GCodeWriter.java b/boardcam/writers/GCodeWriter.java index 0bdc9ae..9e10934 100644 --- a/boardcam/writers/GCodeWriter.java +++ b/boardcam/writers/GCodeWriter.java @@ -10,6 +10,7 @@ public class GCodeWriter extends AbstractMachineWriter{ private static String mAxis = "XYZAF"; + private double mLastSpeed = 0.0; public GCodeWriter() { @@ -32,6 +33,12 @@ public void writePause(PrintStream stream, double seconds) public void writeComment(PrintStream stream, String comment) { + if(!comment.contains("\n")) + { + stream.printf("(%s)\n", comment); + return; + } + String[] list = comment.split("\n"); for(int i = 0; i < list.length; i++) @@ -57,7 +64,20 @@ public void writeToolOff(PrintStream stream) public void writeSpeed(PrintStream stream, int speed) { - stream.printf("F%d\n", speed); + if(mLastSpeed != speed) + { + stream.printf("F%d\n", speed); + mLastSpeed = speed; + } + } + + public void writeSpeed(PrintStream stream, double speed) + { + if(mLastSpeed != speed) + { + stream.printf("F%f\n", speed); + mLastSpeed = speed; + } } public void writeBeginGoTo(PrintStream stream) @@ -72,6 +92,17 @@ public void writeBeginJogTo(PrintStream stream) public void writeCoordinate(PrintStream stream, double x, double y, double z) { +// System.out.printf("GCodeWriter.writeCoordinate X%4.4f Y%4.4f Z%4.4f\n", x, y, z); + + if(Double.isInfinite(x) || Double.isInfinite(y) || Double.isInfinite(z)) + { + System.out.printf("GCodeWriter.writeCoordinate INFINITE VALUE X%4.4f Y%4.4f Z%4.4f\n", x, y, z); + } + if(Double.isNaN(x) || Double.isNaN(y) || Double.isNaN(z)) + { + System.out.printf("GCodeWriter.writeCoordinate NAN VALUE X%4.4f Y%4.4f Z%4.4f\n", x, y, z); + } + stream.printf("X%4.4f Y%4.4f Z%4.4f\n", x, y, z); } diff --git a/cadcore/AbstractBezierBoardSurfaceModel.java b/cadcore/AbstractBezierBoardSurfaceModel.java index 79e03d8..4511a6d 100644 --- a/cadcore/AbstractBezierBoardSurfaceModel.java +++ b/cadcore/AbstractBezierBoardSurfaceModel.java @@ -11,6 +11,10 @@ abstract public class AbstractBezierBoardSurfaceModel //LinearInterpolation is obsolete, keep for reference public enum ModelType{LinearInterpolation, ControlPointInterpolation, SLinearInterpolation}; + static private BezierBoardControlPointInterpolationSurfaceModel mControlPointInterpolationInstance = new BezierBoardControlPointInterpolationSurfaceModel(); + + static private BezierBoardSLinearInterpolationSurfaceModel mSLinearInterpolationInstance = new BezierBoardSLinearInterpolationSurfaceModel(); + static public AbstractBezierBoardSurfaceModel getBezierBoardSurfaceModel(ModelType modelType) { @@ -19,10 +23,10 @@ static public AbstractBezierBoardSurfaceModel getBezierBoardSurfaceModel(ModelTy default: case ControlPointInterpolation: - return new BezierBoardControlPointInterpolationSurfaceModel(); + return mControlPointInterpolationInstance; case SLinearInterpolation: - return new BezierBoardSLinearInterpolationSurfaceModel(); + return mSLinearInterpolationInstance; } } @@ -48,9 +52,9 @@ public Vector3d getDeckNormalAt(final BezierBoard brd, final double x, final dou Point3d p1 = getDeckAt(brd,x,y); Point3d p2 = getDeckAt(brd,x,yo); - Vector3d pv = new Vector3d(0, y-yo, p2.z-p1.z); - Point3d p3 = getDeckAt(brd,xo,y); + + Vector3d pv = new Vector3d(0, y-yo, p2.z-p1.z); Vector3d lv = new Vector3d(x-xo, 0, p3.z-p1.z); Vector3d normalVec = new Vector3d(); diff --git a/cadcore/BezierBoardControlPointInterpolationSurfaceModel.java b/cadcore/BezierBoardControlPointInterpolationSurfaceModel.java index f6aa58f..211e94d 100644 --- a/cadcore/BezierBoardControlPointInterpolationSurfaceModel.java +++ b/cadcore/BezierBoardControlPointInterpolationSurfaceModel.java @@ -12,7 +12,7 @@ class BezierBoardControlPointInterpolationSurfaceModel extends AbstractBezierBoardSurfaceModel { - synchronized public Point3d getDeckAt(final BezierBoard brd, final double x, + public Point3d getDeckAt(final BezierBoard brd, final double x, final double y) { Function func = new Function() { public double f(double s) { @@ -29,8 +29,9 @@ public double f(double s) { return point; } - synchronized public Point3d getBottomAt(final BezierBoard brd, final double x, + public Point3d getBottomAt(final BezierBoard brd, final double x, final double y) { + Function func = new Function() { public double f(double s) { return getPointAt(brd, x, s, 90.0, 270.0, true).y; @@ -41,9 +42,10 @@ public double f(double s) { return getPointAt(brd, x, s, 90.0, 270.0, true); } - synchronized public Point3d getPointAt(final BezierBoard brd, double x, double s, + public Point3d getPointAt(final BezierBoard brd, double x, double s, double minAngle, double maxAngle, boolean useMinimumAngleOnSharpCorners) { + if (x < 0.1) x = 0.1; @@ -84,7 +86,7 @@ synchronized public Point3d getPointAt(final BezierBoard brd, double x, double s return point; } - synchronized public Vector3d getNormalAt(final BezierBoard brd, double x, double s, + public Vector3d getNormalAt(final BezierBoard brd, double x, double s, double minAngle, double maxAngle, boolean useMinimumAngleOnSharpCorners) { if (x < 0.1) @@ -105,11 +107,12 @@ synchronized public Vector3d getNormalAt(final BezierBoard brd, double x, double x = brd.getLength() - 1.0; } - BezierBoardCrossSection crossSection = (BezierBoardCrossSection) (brd - .getInterpolatedCrossSection(x).clone()); + BezierBoardCrossSection crossSection = brd .getInterpolatedCrossSection(x); if (crossSection == null) return new Vector3d(0.0, 0.0, 0.0); + crossSection = (BezierBoardCrossSection)crossSection.clone(); + double minS = BezierSpline.ONE; double maxS = BezierSpline.ZERO; @@ -195,7 +198,7 @@ synchronized public Vector3d getNormalAt(final BezierBoard brd, double x, double return normalVec; } - synchronized public double getCrosssectionAreaAt(final BezierBoard brd, final double x, + public double getCrosssectionAreaAt(final BezierBoard brd, final double x, int splits) { final BezierBoardCrossSection crossSection = brd .getInterpolatedCrossSection(x); diff --git a/cadcore/BezierBoardCrossSection.java b/cadcore/BezierBoardCrossSection.java index 5cc6162..e933a47 100644 --- a/cadcore/BezierBoardCrossSection.java +++ b/cadcore/BezierBoardCrossSection.java @@ -180,27 +180,14 @@ public boolean equals(Object other) { } - public synchronized BezierBoardCrossSection interpolate( + public BezierBoardCrossSection interpolate( BezierBoardCrossSection target, double t) { try { // boolean hasChanged = false; BezierBoardCrossSection interpolationClone = new BezierBoardCrossSection(); - BezierBoardCrossSection interpolationTargetClone = new BezierBoardCrossSection(); - // if(!interpolationClone.equals(this)) - // { interpolationClone.set(this); - // hasChanged = true; - // } - - // if(!interpolationTargetClone.equals(target)) - // { - // interpolationTargetClone.set(target); - // - // hasChanged = true; - // - // } BezierBoardCrossSection interpolationSandboxCopy = new BezierBoardCrossSection(); BezierBoardCrossSection interpolationTargetSandboxCopy = new BezierBoardCrossSection(); @@ -333,7 +320,7 @@ public synchronized BezierBoardCrossSection interpolate( next.getPoints()[1]); } else { - return this; + return interpolationClone; } } } @@ -364,7 +351,9 @@ public synchronized BezierBoardCrossSection interpolate( } return interpolated; - } catch (Exception e) { + + } + catch (Exception e) { System.out.println("Error occured in Brd::interpolate() " + e.toString()); return null; diff --git a/cadcore/BezierBoardLinearInterpolationSurfaceModel.java b/cadcore/BezierBoardLinearInterpolationSurfaceModel.java index 2fca3be..46bee13 100644 --- a/cadcore/BezierBoardLinearInterpolationSurfaceModel.java +++ b/cadcore/BezierBoardLinearInterpolationSurfaceModel.java @@ -7,7 +7,7 @@ class BezierBoardLinearInterpolationSurfaceModel extends AbstractBezierBoardSurfaceModel { - synchronized public Point3d getDeckAt(BezierBoard brd, final double x, final double y) + public Point3d getDeckAt(BezierBoard brd, final double x, final double y) { //Calculate scales double widthAtPos = brd.getWidthAtPos(x); @@ -43,7 +43,7 @@ synchronized public Point3d getDeckAt(BezierBoard brd, final double x, final dou } - synchronized public Point3d getBottomAt(final BezierBoard brd, final double x, final double y) + public Point3d getBottomAt(final BezierBoard brd, final double x, final double y) { //Calculate scales double widthAtPos = brd.getWidthAtPos(x); @@ -76,12 +76,12 @@ synchronized public Point3d getBottomAt(final BezierBoard brd, final double x, f return new Point3d(x,y,z); } - synchronized public Point3d getPointAt(BezierBoard brd, final double x, final double s, final double minAngle, final double maxAngle, boolean useMinimumAngleOnSharpCorners) + public Point3d getPointAt(BezierBoard brd, final double x, final double s, final double minAngle, final double maxAngle, boolean useMinimumAngleOnSharpCorners) { return null; } - synchronized public double getCrosssectionAreaAt(final BezierBoard brd, final double x, int splits) + public double getCrosssectionAreaAt(final BezierBoard brd, final double x, int splits) { double a = 0.01; double b = (brd.getWidthAtPos(x)/2) - 0.01; diff --git a/cadcore/BezierBoardSLinearInterpolationSurfaceModel.java b/cadcore/BezierBoardSLinearInterpolationSurfaceModel.java index 04c21bf..ef0609c 100644 --- a/cadcore/BezierBoardSLinearInterpolationSurfaceModel.java +++ b/cadcore/BezierBoardSLinearInterpolationSurfaceModel.java @@ -9,286 +9,325 @@ import cadcore.MathUtils.Function; - -class BezierBoardSLinearInterpolationSurfaceModel extends AbstractBezierBoardSurfaceModel -{ - BezierSpline c1Spline = new BezierSpline(); - BezierSpline c2Spline = new BezierSpline(); - - synchronized public Point3d getDeckAt(final BezierBoard brd,final double x, final double y) - { - final Function func = new Function(){public double f(double s){return getPointAt(brd,x,s,-90.0,90.0, true).y;};}; +class BezierBoardSLinearInterpolationSurfaceModel extends + AbstractBezierBoardSurfaceModel { + public Point3d getDeckAt(final BezierBoard brd, final double x, + final double y) { + final Function func = new Function() { + public double f(double s) { + return getPointAt(brd, x, s, -90.0, 90.0, true).y; + }; + }; double s = MathUtils.RootFinder.getRoot(func, y); - - return getPointAt(brd,x,s,-90.0,90.0, true); + + return getPointAt(brd, x, s, -90.0, 90.0, true); } - - synchronized public Point3d getBottomAt(final BezierBoard brd,final double x, final double y) - { - final Function func = new Function(){public double f(double s){return getPointAt(brd,x,s,90.0,270.0, true).y;};}; + + public Point3d getBottomAt(final BezierBoard brd, final double x, + final double y) { + final Function func = new Function() { + public double f(double s) { + return getPointAt(brd, x, s, 90.0, 270.0, true).y; + }; + }; double s = MathUtils.RootFinder.getRoot(func, y); - - return getPointAt(brd,x,s,90.0,270.0, true); + + return getPointAt(brd, x, s, 90.0, 270.0, true); } - - synchronized public Point3d getPointAt(final BezierBoard brd,double x, double s, double minAngle, double maxAngle, boolean useMinimumAngleOnSharpCorners) - { - if(x < 0.1) + + public Point3d getPointAt(final BezierBoard brd, double x, double s, + double minAngle, double maxAngle, + boolean useMinimumAngleOnSharpCorners) { + if (x < 0.1) x = 0.1; - - if(x > brd.getLength()-0.1) - x = brd.getLength()-0.1; + + if (x > brd.getLength() - 0.1) + x = brd.getLength() - 0.1; BezierBoardCrossSection c1 = brd.getPreviousCrossSection(x); BezierBoardCrossSection c2 = brd.getNextCrossSection(x); - //Scaling + // Scaling double targetWidth = brd.getWidthAt(x); double targetThickness = brd.getThicknessAtPos(x); double c1Width = c1.getWidth(); double c1Thickness = c1.getThicknessAtPos(BezierSpline.ZERO); - + double c2Width = c2.getWidth(); double c2Thickness = c2.getThicknessAtPos(BezierSpline.ZERO); - - double c1ThicknessScale = targetThickness/c1Thickness; - double c1WidthScale = targetWidth/c1Width; - - double c2ThicknessScale = targetThickness/c2Thickness; - double c2WidthScale = targetWidth/c2Width; - + + double c1ThicknessScale = targetThickness / c1Thickness; + double c1WidthScale = targetWidth / c1Width; + + double c2ThicknessScale = targetThickness / c2Thickness; + double c2WidthScale = targetWidth / c2Width; + + BezierSpline c1Spline = new BezierSpline(); + BezierSpline c2Spline = new BezierSpline(); + c1Spline.set(c1.getBezierSpline()); c1Spline.scale(c1ThicknessScale, c1WidthScale); - + c2Spline.set(c2.getBezierSpline()); c2Spline.scale(c2ThicknessScale, c2WidthScale); - -// double c1SplineWidth = c1Spline.getMaxX(); -// double c2SplineWidth = c2Spline.getMaxX(); -// -// double c1SplineThick = c1Spline.getMaxY(); -// double c2SplineThick = c2Spline.getMaxY(); - -// System.out.printf("targetWidth: %f targetThickness: %f c1SplineWidth x2: %f c2SplineWidth x2: %f c1SplineThick: %f c2SplineThick: %f\n", targetWidth, targetThickness, c1SplineWidth*2.0, c2SplineWidth*2.0, c1SplineThick, c2SplineThick); - -// System.out.printf("getSurfacePoint()\n"); -// System.out.printf("Target width: %f thickness: %f\n", targetWidth, targetThickness); -// System.out.printf("C1 width: %f thickness: %f\n", c1Width, c1Thickness); -// System.out.printf("C2 width: %f thickness: %f\n", c2Width, c2Thickness); -// System.out.printf("C1 width scale: %f thickness scale: %f\n", c1WidthScale, c1ThicknessScale); -// System.out.printf("C2 width scale: %f thickness scale: %f\n", c2WidthScale, c2ThicknessScale); + + // double c1SplineWidth = c1Spline.getMaxX(); + // double c2SplineWidth = c2Spline.getMaxX(); + // + // double c1SplineThick = c1Spline.getMaxY(); + // double c2SplineThick = c2Spline.getMaxY(); + + // System.out.printf("targetWidth: %f targetThickness: %f c1SplineWidth x2: %f c2SplineWidth x2: %f c1SplineThick: %f c2SplineThick: %f\n", + // targetWidth, targetThickness, c1SplineWidth*2.0, c2SplineWidth*2.0, + // c1SplineThick, c2SplineThick); + + // System.out.printf("getSurfacePoint()\n"); + // System.out.printf("Target width: %f thickness: %f\n", targetWidth, + // targetThickness); + // System.out.printf("C1 width: %f thickness: %f\n", c1Width, + // c1Thickness); + // System.out.printf("C2 width: %f thickness: %f\n", c2Width, + // c2Thickness); + // System.out.printf("C1 width scale: %f thickness scale: %f\n", + // c1WidthScale, c1ThicknessScale); + // System.out.printf("C2 width scale: %f thickness scale: %f\n", + // c2WidthScale, c2ThicknessScale); double s1min = BezierSpline.ONE; double s2min = BezierSpline.ONE; double s1max = BezierSpline.ZERO; double s2max = BezierSpline.ZERO; - if(minAngle > 0.0) - { - s1min = c1Spline.getSByNormalReverse(minAngle*MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); - s2min = c2Spline.getSByNormalReverse(minAngle*MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); + if (minAngle > 0.0) { + s1min = c1Spline.getSByNormalReverse(minAngle + * MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); + s2min = c2Spline.getSByNormalReverse(minAngle + * MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); } - if(maxAngle < 270.0) - { - s1max = c1Spline.getSByNormalReverse(maxAngle*MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); - s2max = c2Spline.getSByNormalReverse(maxAngle*MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); + if (maxAngle < 270.0) { + s1max = c1Spline.getSByNormalReverse(maxAngle + * MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); + s2max = c2Spline.getSByNormalReverse(maxAngle + * MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); } - double current1S = ((s1max-s1min)*s) + s1min; - double current2S = ((s2max-s2min)*s) + s2min; - + double current1S = ((s1max - s1min) * s) + s1min; + double current2S = ((s2max - s2min) * s) + s2min; - //Get the position first since we cheat with the crosssections at tip and tail + // Get the position first since we cheat with the crosssections at tip + // and tail double pos1 = brd.getPreviousCrossSectionPos(x); double pos2 = brd.getNextCrossSectionPos(x); - - //New + + // New Point2D.Double v1 = c1Spline.getPointByS(current1S); Point2D.Double v2 = c2Spline.getPointByS(current2S); - -// System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() v1:%f, %f\n", v1.x, v1.y); -// System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() v2:%f, %f\n", v2.x, v2.y); - //Get blended point - double d = (x - pos1)/(pos2 - pos1); + // System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() v1:%f, %f\n", + // v1.x, v1.y); + // System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() v2:%f, %f\n", + // v2.x, v2.y); + + // Get blended point + double d = (x - pos1) / (pos2 - pos1); Point2D.Double ret = new Point2D.Double(); - ret.x = ((1-d)*v1.x) + (d*v2.x); - ret.y = ((1-d)*v1.y) + (d*v2.y); + ret.x = ((1 - d) * v1.x) + (d * v2.x); + ret.y = ((1 - d) * v1.y) + (d * v2.y); double rockerAtPos = brd.getRockerAtPos(x); - + Point3d point = new Point3d(x, ret.x, ret.y + rockerAtPos); -// System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() x:%f, result: %f, %f, %f\n", x, point.x, point.y, point.z); + // System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() x:%f, result: %f, %f, %f\n", + // x, point.x, point.y, point.z); return point; } - synchronized public Vector3d getNormalAt(final BezierBoard brd, double x, double s, double minAngle, double maxAngle, boolean useMinimumAngleOnSharpCorners) - { - if(x < 0.1) + public Vector3d getNormalAt(final BezierBoard brd, double x, double s, + double minAngle, double maxAngle, + boolean useMinimumAngleOnSharpCorners) { + if (x < 0.1) x = 0.1; - - if(x > brd.getLength()-0.1) - x = brd.getLength()-0.1; + + if (x > brd.getLength() - 0.1) + x = brd.getLength() - 0.1; final double X_OFFSET = 0.1; final double S_OFFSET = 0.01; boolean flipNormal = false; - //Get first blended point - Point3d pointS = getPointAt(brd, x, s, minAngle, maxAngle, useMinimumAngleOnSharpCorners); + // Get first blended point + Point3d pointS = getPointAt(brd, x, s, minAngle, maxAngle, + useMinimumAngleOnSharpCorners); -// System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getNormalAt() first point x:%f, result: %f, %f, %f\n", x, pointS.x, pointS.y, pointS.z); + // System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getNormalAt() first point x:%f, result: %f, %f, %f\n", + // x, pointS.x, pointS.y, pointS.z); - - //Get second blended point + // Get second blended point BezierBoardCrossSection c1 = brd.getPreviousCrossSection(x); BezierBoardCrossSection c2 = brd.getNextCrossSection(x); - //Scaling + // Scaling double targetWidth = brd.getWidthAt(x); double targetThickness = brd.getThicknessAtPos(x); double c1Width = c1.getWidth(); double c1Thickness = c1.getThicknessAtPos(BezierSpline.ZERO); - + double c2Width = c2.getWidth(); double c2Thickness = c2.getThicknessAtPos(BezierSpline.ZERO); - - double c1ThicknessScale = targetThickness/c1Thickness; - double c1WidthScale = targetWidth/c1Width; - - double c2ThicknessScale = targetThickness/c2Thickness; - double c2WidthScale = targetWidth/c2Width; - + + double c1ThicknessScale = targetThickness / c1Thickness; + double c1WidthScale = targetWidth / c1Width; + + double c2ThicknessScale = targetThickness / c2Thickness; + double c2WidthScale = targetWidth / c2Width; + + BezierSpline c1Spline = new BezierSpline(); + BezierSpline c2Spline = new BezierSpline(); + c1Spline.set(c1.getBezierSpline()); c1Spline.scale(c1ThicknessScale, c1WidthScale); - + c2Spline.set(c2.getBezierSpline()); c2Spline.scale(c2ThicknessScale, c2WidthScale); -// System.out.printf("getNormalAt()\n"); -// System.out.printf("Target width: %f thickness: %f\n", targetWidth, targetThickness); -// System.out.printf("C1 width: %f thickness: %f\n", c1Width, c1Thickness); -// System.out.printf("C2 width: %f thickness: %f\n", c2Width, c2Thickness); -// System.out.printf("C1 width scale: %f thickness scale: %f\n", c1WidthScale, c1ThicknessScale); -// System.out.printf("C2 width scale: %f thickness scale: %f\n", c2WidthScale, c2ThicknessScale); + // System.out.printf("getNormalAt()\n"); + // System.out.printf("Target width: %f thickness: %f\n", targetWidth, + // targetThickness); + // System.out.printf("C1 width: %f thickness: %f\n", c1Width, + // c1Thickness); + // System.out.printf("C2 width: %f thickness: %f\n", c2Width, + // c2Thickness); + // System.out.printf("C1 width scale: %f thickness scale: %f\n", + // c1WidthScale, c1ThicknessScale); + // System.out.printf("C2 width scale: %f thickness scale: %f\n", + // c2WidthScale, c2ThicknessScale); double s1min = BezierSpline.ONE; double s2min = BezierSpline.ONE; double s1max = BezierSpline.ZERO; double s2max = BezierSpline.ZERO; - if(minAngle > 0.0) - { - s1min = c1Spline.getSByNormalReverse(minAngle*MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); - s2min = c2Spline.getSByNormalReverse(minAngle*MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); + if (minAngle > 0.0) { + s1min = c1Spline.getSByNormalReverse(minAngle + * MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); + s2min = c2Spline.getSByNormalReverse(minAngle + * MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); } - if(maxAngle < 270.0) - { - s1max = c1Spline.getSByNormalReverse(maxAngle*MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); - s2max = c2Spline.getSByNormalReverse(maxAngle*MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); + if (maxAngle < 270.0) { + s1max = c1Spline.getSByNormalReverse(maxAngle + * MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); + s2max = c2Spline.getSByNormalReverse(maxAngle + * MathUtils.DEG_TO_RAD, useMinimumAngleOnSharpCorners); } - double current1S = ((s1max-s1min)*s) + s1min; - double current2S = ((s2max-s2min)*s) + s2min; - + double current1S = ((s1max - s1min) * s) + s1min; + double current2S = ((s2max - s2min) * s) + s2min; - double current1SO = current1S+S_OFFSET; - double current2SO = current2S+S_OFFSET; - if(current1SO > 1.0 || current2SO > 1.0|| useMinimumAngleOnSharpCorners==false) - { - current1SO = current1S-S_OFFSET; - current2SO = current2S-S_OFFSET; + double current1SO = current1S + S_OFFSET; + double current2SO = current2S + S_OFFSET; + if (current1SO > 1.0 || current2SO > 1.0 + || useMinimumAngleOnSharpCorners == false) { + current1SO = current1S - S_OFFSET; + current2SO = current2S - S_OFFSET; flipNormal = true; } - - //Get the position first since we cheat with the crosssections at tip and tail + + // Get the position first since we cheat with the crosssections at tip + // and tail double pos1 = brd.getPreviousCrossSectionPos(x); double pos2 = brd.getNextCrossSectionPos(x); Point2D.Double v1so = c1Spline.getPointByS(current1SO); Point2D.Double v2so = c2Spline.getPointByS(current2SO); -// System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() v1:%f, %f\n", v1.x, v1.y); -// System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() v2:%f, %f\n", v2.x, v2.y); + // System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() v1:%f, %f\n", + // v1.x, v1.y); + // System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getPointAt() v2:%f, %f\n", + // v2.x, v2.y); - double pSO = (x - pos1)/(pos2 - pos1); + double pSO = (x - pos1) / (pos2 - pos1); Point2D.Double retSO = new Point2D.Double(); - retSO.x = ((1-pSO)*v1so.x) + (pSO*v2so.x); - retSO.y = ((1-pSO)*v1so.y) + (pSO*v2so.y); + retSO.x = ((1 - pSO) * v1so.x) + (pSO * v2so.x); + retSO.y = ((1 - pSO) * v1so.y) + (pSO * v2so.y); double rockerAtX = brd.getRockerAtPos(x); Point3d pointSO = new Point3d(x, retSO.x, retSO.y + rockerAtX); -// System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getNormalAt() second point x:%f, result: %f, %f, %f\n", x, pointSO.x, pointSO.y, pointSO.z); - - - //Get third blended point - double xo = x+X_OFFSET; - - Point3d pointXO = getPointAt(brd, xo, s, minAngle, maxAngle, useMinimumAngleOnSharpCorners); - -// System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getNormalAt() third point x:%f, result: %f, %f, %f\n", x, pointXO.x, pointXO.y, pointXO.z); - - - //Calculate normal - Vector3d vc = new Vector3d(0, pointS.y-pointSO.y, pointS.z-pointSO.z); //Vector across -// vc.normalize(); - - Vector3d vl = new Vector3d(xo-x, pointXO.y-pointS.y, pointXO.z-pointS.z); //Vector lengthwise -// vl.normalize(); - + // System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getNormalAt() second point x:%f, result: %f, %f, %f\n", + // x, pointSO.x, pointSO.y, pointSO.z); + + // Get third blended point + double xo = x + X_OFFSET; + + Point3d pointXO = getPointAt(brd, xo, s, minAngle, maxAngle, + useMinimumAngleOnSharpCorners); + + // System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getNormalAt() third point x:%f, result: %f, %f, %f\n", + // x, pointXO.x, pointXO.y, pointXO.z); + + // Calculate normal + Vector3d vc = new Vector3d(0, pointS.y - pointSO.y, pointS.z + - pointSO.z); // Vector across + // vc.normalize(); + + Vector3d vl = new Vector3d(xo - x, pointXO.y - pointS.y, pointXO.z + - pointS.z); // Vector lengthwise + // vl.normalize(); + Vector3d normalVec = new Vector3d(); - normalVec.cross(vl,vc); + normalVec.cross(vl, vc); normalVec.normalize(); - - if(flipNormal == true) - { + + if (flipNormal == true) { normalVec.scale(-1.0); } -// System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getNormalAt() third point x:%f, result: %f, %f, %f\n", x, pointXO.x, pointXO.y, pointXO.z); + // System.out.printf("BezierBoardSLinearInterpolationSurfaceModel.getNormalAt() third point x:%f, result: %f, %f, %f\n", + // x, pointXO.x, pointXO.y, pointXO.z); return normalVec; - + } - synchronized public double getCrosssectionAreaAt(final BezierBoard brd,final double x, int splits) - { - MathUtils.FunctionXY deckFunc = new MathUtils.FunctionXY(){ - public Point2D.Double f(double s){ - Point3d point = getPointAt(brd,x,s,-90.0,90.0,true); - return new Point2D.Double(point.y,point.z); - } - }; - double deckIntegral = MathUtils.Integral.getIntegral(deckFunc, 0.0, 1.0, BezierBoard.AREA_SPLITS); - - MathUtils.FunctionXY bottomFunc = new MathUtils.FunctionXY(){ - public Point2D.Double f(double s){ - Point3d point = getPointAt(brd,x,s,90.0,360.0,true); - return new Point2D.Double(point.y,point.z); - } - }; - double bottomIntegral = MathUtils.Integral.getIntegral(bottomFunc, 0.0, 1.0, BezierBoard.AREA_SPLITS); - - double area = deckIntegral-bottomIntegral; + public double getCrosssectionAreaAt(final BezierBoard brd, final double x, + int splits) { + MathUtils.FunctionXY deckFunc = new MathUtils.FunctionXY() { + public Point2D.Double f(double s) { + Point3d point = getPointAt(brd, x, s, -90.0, 90.0, true); + return new Point2D.Double(point.y, point.z); + } + }; + double deckIntegral = MathUtils.Integral.getIntegral(deckFunc, 0.0, + 1.0, BezierBoard.AREA_SPLITS); + + MathUtils.FunctionXY bottomFunc = new MathUtils.FunctionXY() { + public Point2D.Double f(double s) { + Point3d point = getPointAt(brd, x, s, 90.0, 360.0, true); + return new Point2D.Double(point.y, point.z); + } + }; + double bottomIntegral = MathUtils.Integral.getIntegral(bottomFunc, 0.0, + 1.0, BezierBoard.AREA_SPLITS); + + double area = deckIntegral - bottomIntegral; area *= 2.0; - - if(area < 0) + + if (area < 0) area = 0.0; -// System.out.printf("getCrosssectionAreaAt() x:%f area:%f\n", x, area); - + // System.out.printf("getCrosssectionAreaAt() x:%f area:%f\n", x, area); + return area; } - + } diff --git a/cadcore/BezierCurve.java b/cadcore/BezierCurve.java index 16a03c6..08dc40f 100644 --- a/cadcore/BezierCurve.java +++ b/cadcore/BezierCurve.java @@ -5,11 +5,10 @@ import cadcore.BezierKnot; -public class BezierCurve implements Cloneable, BezierKnotChangeListener -{ +public class BezierCurve implements Cloneable, BezierKnotChangeListener { BezierKnot mStartKnot; BezierKnot mEndKnot; - + protected double coeff0 = 0.0; protected double coeff1 = 0.0; protected double coeff2 = 0.0; @@ -18,757 +17,717 @@ public class BezierCurve implements Cloneable, BezierKnotChangeListener protected double coeff5 = 0.0; protected double coeff6 = 0.0; protected double coeff7 = 0.0; - + boolean mCoeffDirty = true; boolean mLengthDirty = true; - + double mLength = 0.0; - public BezierCurve(BezierKnot startKnot, BezierKnot endKnot) - { + public BezierCurve(double P0X, double P0Y, double P1X, double P1Y, + double P2X, double P2Y, double P3X, double P3Y) { + mStartKnot = new BezierKnot(P0X, P0Y, 0.0, 0.0, P1X, P1Y); + mEndKnot = new BezierKnot(P3X, P3Y, P2X, P2Y, 0.0, 0.0); + } + + public BezierCurve(BezierKnot startKnot, BezierKnot endKnot) { mStartKnot = startKnot; mEndKnot = endKnot; - - if(mStartKnot != null) + + if (mStartKnot != null) mStartKnot.addChangeListener(this); - if(mEndKnot != null) + if (mEndKnot != null) mEndKnot.addChangeListener(this); } - - BezierKnot getStartKnot() - { + + public BezierKnot getStartKnot() { return mStartKnot; } - BezierKnot getEndKnot() - { + public BezierKnot getEndKnot() { return mEndKnot; } - - void setStartKnot(BezierKnot startKnot) - { + + void setStartKnot(BezierKnot startKnot) { mStartKnot = startKnot; - if(mStartKnot != null) + if (mStartKnot != null) mStartKnot.addChangeListener(this); setDirty(); } - void setEndKnot(BezierKnot endKnot) - { + void setEndKnot(BezierKnot endKnot) { mEndKnot = endKnot; - if(mEndKnot != null) + if (mEndKnot != null) mEndKnot.addChangeListener(this); setDirty(); } - - private void calculateCoeff() - { - if(!mCoeffDirty) + + private void calculateCoeff() { + if (!mCoeffDirty) return; - - // MORE ON CUBIC SPLINE MATH - // ========================= - // by Don Lancaster - - // In graph space, the cubic spline is defined by eight points. A pair of - // initial points x0 and y0. A pair of end points x3 and y3. A pair of - // first influence points x1 and y1. And a pair of second influence points - // x2 and y2. - - // A cubic spline consists of two parametric equations in t (or time) space... - - // x = At^3 + Bt^2 + Ct + D - // y = Dt^3 + Et^2 + Ft + G - - // Cubing can be a real pain, so the above equations can be rewritten in a - // "cubeless" form that calculates quickly... - - // x = ((At + B)t + C)t + D - // y = ((Dt + E)t + F)t + G -/* - double A = p3.x - (3*t2.x) + (3*t1.x) - p0.x; //A = x3 - 3x2 + 3x1 - x0 - double B = (3*t2.x) - (6*t1.x) + (3*p0.x); //B = 3x2 - 6x1 + 3x0 - double C = (3*t1.x) - (3*p0.x); //C = 3x1 - 3x0 - double D = p0.x; //D = x0 - - double E = p3.y - (3*t2.y) + (3*t1.y) - p0.y; //E = y3 - 3y2 + 3y1 - y0 - double F = (3*t2.y) - (6*t1.y) + (3*p0.y); //F = 3y2 - 6y1 + 3y0 - double G = (3*t1.y) - (3*p0.y); //G = 3y1 - 3y0 - double H = p0.y; //H = y0 - - coeff0 = A; - coeff1 = B; - coeff2 = C; - coeff3 = D; - coeff4 = E; - coeff5 = F; - coeff6 = G; - coeff7 = H; -*/ + + // MORE ON CUBIC SPLINE MATH + // ========================= + // by Don Lancaster + + // In graph space, the cubic spline is defined by eight points. A pair + // of + // initial points x0 and y0. A pair of end points x3 and y3. A pair of + // first influence points x1 and y1. And a pair of second influence + // points + // x2 and y2. + + // A cubic spline consists of two parametric equations in t (or time) + // space... + + // x = At^3 + Bt^2 + Ct + D + // y = Dt^3 + Et^2 + Ft + G + + // Cubing can be a real pain, so the above equations can be rewritten in + // a + // "cubeless" form that calculates quickly... + + // x = ((At + B)t + C)t + D + // y = ((Dt + E)t + F)t + G + /* + * double A = p3.x - (3*t2.x) + (3*t1.x) - p0.x; //A = x3 - 3x2 + 3x1 - + * x0 double B = (3*t2.x) - (6*t1.x) + (3*p0.x); //B = 3x2 - 6x1 + 3x0 + * double C = (3*t1.x) - (3*p0.x); //C = 3x1 - 3x0 double D = p0.x; //D + * = x0 + * + * double E = p3.y - (3*t2.y) + (3*t1.y) - p0.y; //E = y3 - 3y2 + 3y1 - + * y0 double F = (3*t2.y) - (6*t1.y) + (3*p0.y); //F = 3y2 - 6y1 + 3y0 + * double G = (3*t1.y) - (3*p0.y); //G = 3y1 - 3y0 double H = p0.y; //H + * = y0 + * + * coeff0 = A; coeff1 = B; coeff2 = C; coeff3 = D; coeff4 = E; coeff5 = + * F; coeff6 = G; coeff7 = H; + */ final Point2D.Double p0 = mStartKnot.getEndPoint(); - final Point2D.Double t1 = mStartKnot.getTangentToNext(); - final Point2D.Double t2 = mEndKnot.getTangentToPrev(); + final Point2D.Double t1 = mStartKnot.getTangentToNext(); + final Point2D.Double t2 = mEndKnot.getTangentToPrev(); final Point2D.Double p3 = mEndKnot.getEndPoint(); - - coeff0 = p3.x + (3*(-t2.x + t1.x)) - p0.x; //A = x3 - 3x2 + 3x1 - x0 - coeff1 = 3*(t2.x - (2*t1.x) + p0.x); //B = 3x2 - 6x1 + 3x0 - coeff2 = 3*(t1.x - p0.x); //C = 3x1 - 3x0 - coeff3 = p0.x; //D = x0 - - coeff4 = p3.y + (3*(-t2.y + t1.y)) - p0.y; //E = y3 - 3y2 + 3y1 - y0 - coeff5 = 3*(t2.y - (2*t1.y) + p0.y); //F = 3y2 - 6y1 + 3y0 - coeff6 = 3*(t1.y - p0.y); //G = 3y1 - 3y0 - coeff7 = p0.y; //H = y0 - - mCoeffDirty = false; -/* - if(coeff0 != A) - return; - if(coeff1 != B) - return; - if(coeff2 != C) - return; - if(coeff3 != D) - return; - if(coeff4 != E) - return; - if(coeff5 != F) - return; - if(coeff6 != G) - return; - if(coeff7 != H) - return; - */ -//Debug copyCoeff(); - } -/*Debug - void copyCoeff() - { - for(int i = 0; i < 8; i++) - { - coeffCopy[i] = coeff[i]; - } - } - void compareCoeff() - { - for(int i = 0; i < 8; i++) - { - double val2 = coeffCopy[i]; - double val1 = coeff[i]; + coeff0 = p3.x + (3 * (-t2.x + t1.x)) - p0.x; // A = x3 - 3x2 + 3x1 - x0 + coeff1 = 3 * (t2.x - (2 * t1.x) + p0.x); // B = 3x2 - 6x1 + 3x0 + coeff2 = 3 * (t1.x - p0.x); // C = 3x1 - 3x0 + coeff3 = p0.x; // D = x0 - double diff = Math.abs(val1 - val2); - if(diff > 0.1) - { - System.out.println("Coeff changed i:" + i + " diff:" + diff + " values:" + val1 + " " + val2); - } - } - } -*/ - public double getTForX(final double x) - { - double t = (x-getEndKnot().getEndPoint().x)/(getStartKnot().getEndPoint().x-getEndKnot().getEndPoint().x); - - return getTForX(x,t); - } - - public double getTForX(final double x, final double start_t) - { + coeff4 = p3.y + (3 * (-t2.y + t1.y)) - p0.y; // E = y3 - 3y2 + 3y1 - y0 + coeff5 = 3 * (t2.y - (2 * t1.y) + p0.y); // F = 3y2 - 6y1 + 3y0 + coeff6 = 3 * (t1.y - p0.y); // G = 3y1 - 3y0 + coeff7 = p0.y; // H = y0 + + mCoeffDirty = false; + /* + * if(coeff0 != A) return; if(coeff1 != B) return; if(coeff2 != C) + * return; if(coeff3 != D) return; if(coeff4 != E) return; if(coeff5 != + * F) return; if(coeff6 != G) return; if(coeff7 != H) return; + */ + // Debug copyCoeff(); + } + + /* + * Debug void copyCoeff() { for(int i = 0; i < 8; i++) { coeffCopy[i] = + * coeff[i]; } } + * + * void compareCoeff() { for(int i = 0; i < 8; i++) { double val2 = + * coeffCopy[i]; double val1 = coeff[i]; + * + * double diff = Math.abs(val1 - val2); if(diff > 0.1) { + * System.out.println("Coeff changed i:" + i + " diff:" + diff + " values:" + * + val1 + " " + val2); } } } + */ + public double getTForX(final double x) { + double t = (x - getEndKnot().getEndPoint().x) + / (getStartKnot().getEndPoint().x - getEndKnot().getEndPoint().x); + + return getTForX(x, t); + } + + public double getTForX(final double x, final double start_t) { calculateCoeff(); - + return getTForXInternal(x, start_t); } - - private double getTForXInternal(final double x, final double start_t) - { - // I don't know how to find an exact and closed solution to finding y given - // x. You first have to use x to solve for t and then you solve t for y. - - // One useful way to do this is to take a guess for a t value. See what x - // you get. Note the error. Reduce the error and try again. Keep this up - // till you have a root to acceptable accuracy. + + private double getTForXInternal(final double x, final double start_t) { + // I don't know how to find an exact and closed solution to finding y + // given + // x. You first have to use x to solve for t and then you solve t for y. + + // One useful way to do this is to take a guess for a t value. See what + // x + // you get. Note the error. Reduce the error and try again. Keep this up + // till you have a root to acceptable accuracy. // - // A good first guess is to normalize x so it ranges from 0 to 1 and then - // simply guess that x = t. This will be fairly close for curves that aren't - // bent very much. And a useful guess for ALL spline curves. + // A good first guess is to normalize x so it ranges from 0 to 1 and + // then + // simply guess that x = t. This will be fairly close for curves that + // aren't + // bent very much. And a useful guess for ALL spline curves. - //Guess initial t + // Guess initial t double tn = start_t; // Now, on any triangle... // - // rise = run x (rise/run) + // rise = run x (rise/run) // - // This gives us a very good improvement for our next approximation. It - // turns out that the "adjust for slope" method converges very rapidly. - // Three passes are usually good enough. + // This gives us a very good improvement for our next approximation. It + // turns out that the "adjust for slope" method converges very rapidly. + // Three passes are usually good enough. // - // If our curve has an equation of... + // If our curve has an equation of... // - // x = At^3 + Bt^2 + Ct + D + // x = At^3 + Bt^2 + Ct + D // - // ...its slope will be... + // ...its slope will be... // - // x' = 3At^2 +2Bt + C + // x' = 3At^2 +2Bt + C // - // And the dt/dx slope will be its inverse or 1/(3At^2 + 2Bt +C) + // And the dt/dx slope will be its inverse or 1/(3At^2 + 2Bt +C) // - // This is easily calculated. We'll have code and an example in just a bit. + // This is easily calculated. We'll have code and an example in just a + // bit. // - // The next guess will be... + // The next guess will be... // - // nextguess = currentt + (curentx - x)(currentslope) + // nextguess = currentt + (curentx - x)(currentslope) double xn = getXValue(tn); - double error = x-xn; -// double lasterror = error; + double error = x - xn; + // double lasterror = error; int n = 0; - while(Math.abs(error) > BezierSpline.POS_TOLERANCE && n++ < BezierSpline.POS_MAX_ITERATIONS) - { - double currentSlope = 1/getXDerivate(tn); + while (Math.abs(error) > BezierSpline.POS_TOLERANCE + && n++ < BezierSpline.POS_MAX_ITERATIONS) { + double currentSlope = 1 / getXDerivate(tn); - tn = tn + (error*currentSlope); + tn = tn + (error * currentSlope); xn = getXValue(tn); - error = x-xn; + error = x - xn; /* -if(Math.abs(error) > Math.abs(lasterror)) - System.out.println("getTForX(): increasing error: " + error + " last error:" + lasterror + " slope:" + currentSlope + " tn:" + tn); - -lasterror = error; - */ } - - //Sanity check - if(tn < 0 || tn > 1 || Double.isNaN(tn) || n >= BezierSpline.POS_MAX_ITERATIONS || Math.abs(error) > BezierSpline.POS_TOLERANCE) - { -//System.out.printf("getTForX(): converge failed, error: %f t:%f\n", Math.abs(xn-x), tn); - tn = getTForX(x,0,1,BezierSpline.MIN_MAX_SPLITS); + * if(Math.abs(error) > Math.abs(lasterror)) + * System.out.println("getTForX(): increasing error: " + error + + * " last error:" + lasterror + " slope:" + currentSlope + " tn:" + + * tn); + * + * lasterror = error; + */} + + // Sanity check + if (tn < 0 || tn > 1 || Double.isNaN(tn) + || n >= BezierSpline.POS_MAX_ITERATIONS + || Math.abs(error) > BezierSpline.POS_TOLERANCE) { + // System.out.printf("getTForX(): converge failed, error: %f t:%f\n", + // Math.abs(xn-x), tn); + tn = getTForX(x, 0, 1, BezierSpline.MIN_MAX_SPLITS); xn = getXValue(tn); -/*Debug - if(Math.abs(xn-x) < POS_TOLERANCE) - { - st++; - } - else - { - tf++; -System.out.printf("getTForX() failed, error:%f t:%f ct:%f: st:%f tf:%f\n", Math.abs(xn-x), tn , ct , st , tf); - } -*/ - } -/*Debug else - { - ct++; + /* + * Debug if(Math.abs(xn-x) < POS_TOLERANCE) { st++; } else { tf++; + * System + * .out.printf("getTForX() failed, error:%f t:%f ct:%f: st:%f tf:%f\n" + * , Math.abs(xn-x), tn , ct , st , tf); } + */ } -*/ - return tn; + /* + * Debug else { ct++; } + */ + return tn; } - - private double getTForX(final double x, double t0, double t1, int nrOfSplits) - { + + private double getTForX(final double x, double t0, double t1, int nrOfSplits) { double best_t = 0; double best_error = 1000000000; double best_value = 0; double current_t; double current_value; - double seg = (t1-t0)/nrOfSplits; + double seg = (t1 - t0) / nrOfSplits; double error = 0; - for(int i = 1; i < nrOfSplits; i++) - { - current_t = seg*i + t0; - if(current_t < 0 || current_t > 1) + for (int i = 1; i < nrOfSplits; i++) { + current_t = seg * i + t0; + if (current_t < 0 || current_t > 1) continue; current_value = getXValue(current_t); - error = Math.abs(x-current_value); + error = Math.abs(x - current_value); - if(error < best_error) - { + if (error < best_error) { best_error = error; best_t = current_t; best_value = current_value; } } - if(best_error < BezierSpline.POS_TOLERANCE) + if (best_error < BezierSpline.POS_TOLERANCE) return best_t; - else if(Math.abs(best_t - (t1-t0)/2) < BezierSpline.MIN_MAX_TOLERANCE) + else if (Math.abs(best_t - (t1 - t0) / 2) < BezierSpline.MIN_MAX_TOLERANCE) return best_t; - else if(nrOfSplits <= 2) + else if (nrOfSplits <= 2) return best_t; else - return getTForX(x, best_t-seg,best_t+seg, nrOfSplits/2); - } - + return getTForX(x, best_t - seg, best_t + seg, nrOfSplits / 2); + } - private double getTForTangent(final double angle, double t0, double t1, int nrOfSplits) - { + private double getTForTangent(final double angle, double t0, double t1, + int nrOfSplits) { double best_t = 0; double best_error = 1000000000; - double current_t=0; - double current_value=0; - double seg = (t1-t0)/nrOfSplits; + double current_t = 0; + double current_value = 0; + double seg = (t1 - t0) / nrOfSplits; double error = 0; - for(int i = 1; i <= nrOfSplits; i++) - { - current_t = seg*i + t0; - if(current_t < 0 || current_t > 1) + for (int i = 1; i <= nrOfSplits; i++) { + current_t = seg * i + t0; + if (current_t < 0 || current_t > 1) continue; current_value = getTangent(current_t); - error = Math.abs(angle-current_value); + error = Math.abs(angle - current_value); - if(error < best_error) - { + if (error < best_error) { best_error = error; best_t = current_t; } } error = current_t; - if(best_error < BezierSpline.ANGLE_TOLERANCE) - { + if (best_error < BezierSpline.ANGLE_TOLERANCE) { return best_t; - } - else if(Math.abs(best_t - (t1-t0)/2) < BezierSpline.ANGLE_T_TOLERANCE) - { + } else if (Math.abs(best_t - (t1 - t0) / 2) < BezierSpline.ANGLE_T_TOLERANCE) { return best_t; - } - else if(nrOfSplits <= 2) - { + } else if (nrOfSplits <= 2) { return best_t; - } - else - return getTForTangent(angle, best_t-seg,best_t+seg, nrOfSplits/2); - } + } else + return getTForTangent(angle, best_t - seg, best_t + seg, + nrOfSplits / 2); + } - double getTForTangent2(double target_angle, double current_t, double last_t) - { - //Search for the angle using secant method + double getTForTangent2(double target_angle, double current_t, double last_t) { + // Search for the angle using secant method double current_angle = getTangent(current_t); double last_angle = getTangent(last_t); - double current_error = target_angle-current_angle; + double current_error = target_angle - current_angle; + + // System.out.printf("getTForTangent2(): target_angle:%f, current_t:%f, last_t:%f\n", + // target_angle/BezierBoard.DEG_TO_RAD, current_t, last_t); -// System.out.printf("getTForTangent2(): target_angle:%f, current_t:%f, last_t:%f\n", target_angle/BezierBoard.DEG_TO_RAD, current_t, last_t); - int n = 0; - while(Math.abs(current_error) > BezierSpline.ANGLE_TOLERANCE && n++ < BezierSpline.ANGLE_MAX_ITERATIONS && current_t > BezierSpline.ZERO && current_t < BezierSpline.ONE) - { - double current_slope = (current_angle-last_angle)/(current_t-last_t); + while (Math.abs(current_error) > BezierSpline.ANGLE_TOLERANCE + && n++ < BezierSpline.ANGLE_MAX_ITERATIONS + && current_t > BezierSpline.ZERO + && current_t < BezierSpline.ONE) { + double current_slope = (current_angle - last_angle) + / (current_t - last_t); last_t = current_t; - current_t = current_t + (current_error*current_slope); + current_t = current_t + (current_error * current_slope); last_angle = current_angle; current_angle = getTangent(current_t); - current_error = target_angle-current_angle; + current_error = target_angle - current_angle; -// System.out.printf("getTForTangent2(): current_slope:%f, current_error:%f, current_t:%f last_angle:%f current_angle:%f target_angle:%f\n", current_slope, current_error/BezierBoard.DEG_TO_RAD, current_t, last_angle/BezierBoard.DEG_TO_RAD, current_angle/BezierBoard.DEG_TO_RAD, target_angle/BezierBoard.DEG_TO_RAD); + // System.out.printf("getTForTangent2(): current_slope:%f, current_error:%f, current_t:%f last_angle:%f current_angle:%f target_angle:%f\n", + // current_slope, current_error/BezierBoard.DEG_TO_RAD, current_t, + // last_angle/BezierBoard.DEG_TO_RAD, + // current_angle/BezierBoard.DEG_TO_RAD, + // target_angle/BezierBoard.DEG_TO_RAD); } - //Sanity check - if(Math.abs(getTangent(current_t)-target_angle) > BezierSpline.ANGLE_TOLERANCE || (current_t < BezierSpline.ZERO || current_t > BezierSpline.ONE) ) - { -// System.out.printf("getTForTangent(): converge failed, error: %f\n", current_error/BezierBoard.DEG_TO_RAD); + // Sanity check + if (Math.abs(getTangent(current_t) - target_angle) > BezierSpline.ANGLE_TOLERANCE + || (current_t < BezierSpline.ZERO || current_t > BezierSpline.ONE)) { + // System.out.printf("getTForTangent(): converge failed, error: %f\n", + // current_error/BezierBoard.DEG_TO_RAD); n = 0; double lt = 0.0; double ht = 1.0; - while(Math.abs(current_error) > BezierSpline.ANGLE_TOLERANCE && n++ < BezierSpline.ANGLE_MAX_ITERATIONS && ht-lt > 0.00001) - { - current_t = lt + ((ht-lt)/2.0); + while (Math.abs(current_error) > BezierSpline.ANGLE_TOLERANCE + && n++ < BezierSpline.ANGLE_MAX_ITERATIONS + && ht - lt > 0.00001) { + current_t = lt + ((ht - lt) / 2.0); current_angle = getTangent(current_t); - current_error = target_angle-current_angle; - - if(current_error < 0.0) + current_error = target_angle - current_angle; + + if (current_error < 0.0) lt = current_t; else - ht = current_t; - -// System.out.printf("getTForTangent2(): current_error:%f, current_t:%f lt:%f ht:%f current_angle:%f target_angle:%f \n", current_error, current_t, lt, ht, current_angle, target_angle); + ht = current_t; + + // System.out.printf("getTForTangent2(): current_error:%f, current_t:%f lt:%f ht:%f current_angle:%f target_angle:%f \n", + // current_error, current_t, lt, ht, current_angle, + // target_angle); } - - + } - return current_t; - } - - synchronized double getTForLength(double lengthLeft) - { + return current_t; + } + + double getTForLength(double lengthLeft) { return getTForLength(BezierSpline.ZERO, BezierSpline.ONE, lengthLeft); } - - synchronized double getTForLength(double t0, double t1, double lengthLeft) - { + + double getTForLength(double t0, double t1, double lengthLeft) { calculateCoeff(); - - //Get t split point - double ts = (t1-t0)/2 + t0; + + // Get t split point + double ts = (t1 - t0) / 2 + t0; double sl = getLength(t0, ts); - - try - { - if(Math.abs(t0-t1) < 0.00001) - { + + try { + if (Math.abs(t0 - t1) < 0.00001) { return t0; } - if(Math.abs(sl - lengthLeft) > BezierSpline.LENGTH_TOLERANCE) - { - if(sl > lengthLeft) - { + if (Math.abs(sl - lengthLeft) > BezierSpline.LENGTH_TOLERANCE) { + if (sl > lengthLeft) { return getTForLength(t0, ts, lengthLeft); + } else { + return getTForLength(ts, t1, lengthLeft - sl); } - else - { - return getTForLength(ts, t1, lengthLeft-sl); - } - } - else - { - return ts; + } else { + return ts; } - } - catch(Exception e) - { - System.out.println("Exception in BezierSpline::getTForLength(): " + e.toString()); + } catch (Exception e) { + System.out.println("Exception in BezierSpline::getTForLength(): " + + e.toString()); return 0.0; } } - public double getXValue(final double t) - { + public double getXValue(final double t) { calculateCoeff(); -// compareCoeff(); - // A cubic spline consists of two parametric equations in t (or time) space... + // compareCoeff(); + // A cubic spline consists of two parametric equations in t (or time) + // space... - // x = At^3 + Bt^2 + Ct + D - // y = Dt^3 + Et^2 + Ft + G + // x = At^3 + Bt^2 + Ct + D + // y = Dt^3 + Et^2 + Ft + G - // Cubing can be a real pain, so the above equations can be rewritten in a - // "cubeless" form that calculates quickly... + // Cubing can be a real pain, so the above equations can be rewritten in + // a + // "cubeless" form that calculates quickly... - // x = ((At + B)t + C)t + D - double value = (((((coeff0*t) + coeff1)*t) + coeff2)*t) + coeff3; + // x = ((At + B)t + C)t + D + double value = (((((coeff0 * t) + coeff1) * t) + coeff2) * t) + coeff3; -// compareCoeff(); + // compareCoeff(); return value; } - public double getYValue(final double t) - { + public double getYValue(final double t) { calculateCoeff(); - // compareCoeff(); - // A cubic spline consists of two parametric equations in t (or time) space... + // compareCoeff(); + // A cubic spline consists of two parametric equations in t (or time) + // space... - // x = At^3 + Bt^2 + Ct + D - // y = Dt^3 + Et^2 + Ft + G + // x = At^3 + Bt^2 + Ct + D + // y = Dt^3 + Et^2 + Ft + G - // Cubing can be a real pain, so the above equations can be rewritten in a - // "cubeless" form that calculates quickly... + // Cubing can be a real pain, so the above equations can be rewritten in + // a + // "cubeless" form that calculates quickly... - // y = ((Dt + E)t + F)t + G - double value = (((((coeff4*t) + coeff5)*t) + coeff6)*t) + coeff7; + // y = ((Dt + E)t + F)t + G + double value = (((((coeff4 * t) + coeff5) * t) + coeff6) * t) + coeff7; -// compareCoeff(); + // compareCoeff(); return value; } - - public Point2D.Double getValue(final double t) - { + + public Point2D.Double getValue(final double t) { calculateCoeff(); - - return new Point2D.Double(getXValue(t),getYValue(t)); + + return new Point2D.Double(getXValue(t), getYValue(t)); } - private double getXDerivate(final double t) - { -// compareCoeff(); - //If our curve has an equation of... + private double getXDerivate(final double t) { + // compareCoeff(); + // If our curve has an equation of... // - // x = At^3 + Bt^2 + Ct + D + // x = At^3 + Bt^2 + Ct + D // - // ...its slope will be... + // ...its slope will be... // - // x' = 3At^2 + 2Bt + C - // x' = (3At + 2B)t + C - double value = ((((3*coeff0)*t) + (2*coeff1))*t) + coeff2; -// compareCoeff(); + // x' = 3At^2 + 2Bt + C + // x' = (3At + 2B)t + C + double value = ((((3 * coeff0) * t) + (2 * coeff1)) * t) + coeff2; + // compareCoeff(); return value; - } + } - private double getYDerivate(final double t) - { - //If our curve has an equation of... + private double getYDerivate(final double t) { + // If our curve has an equation of... // - // y = At^3 + Bt^2 + Ct + D + // y = At^3 + Bt^2 + Ct + D // - // ...its slope will be... + // ...its slope will be... // - // y' = 3Et^2 +2Ft + G - // y' = (3Et + 2F)t + G - double value = ((((3*coeff4)*t) + (2*coeff5))*t) + coeff6; + // y' = 3Et^2 +2Ft + G + // y' = (3Et + 2F)t + G + double value = ((((3 * coeff4) * t) + (2 * coeff5)) * t) + coeff6; return value; } - double getXSecondDerivate(final double t) - { - double value = (6*coeff0*t) + (2*coeff1); + double getXSecondDerivate(final double t) { + double value = (6 * coeff0 * t) + (2 * coeff1); return value; - } + } - double getYSecondDerivate(final double t) - { - double value = (6*coeff4*t) + (2*coeff5); + double getYSecondDerivate(final double t) { + double value = (6 * coeff4 * t) + (2 * coeff5); return value; - } + } - synchronized double getYForX(final double x) - { + double getYForX(final double x) { calculateCoeff(); - // I don't know how to find an exact and closed solution to finding y given - // x. You first have to use x to solve for t and then you solve t for y. + // I don't know how to find an exact and closed solution to finding y + // given + // x. You first have to use x to solve for t and then you solve t for y. - // One useful way to do this is to take a guess for a t value. See what x - // you get. Note the error. Reduce the error and try again. Keep this up - // till you have a root to acceptable accuracy. + // One useful way to do this is to take a guess for a t value. See what + // x + // you get. Note the error. Reduce the error and try again. Keep this up + // till you have a root to acceptable accuracy. // - // A good first guess is to normalize x so it ranges from 0 to 1 and then - // simply guess that x = t. This will be fairly close for curves that aren't - // bent very much. And a useful guess for ALL spline curves. + // A good first guess is to normalize x so it ranges from 0 to 1 and + // then + // simply guess that x = t. This will be fairly close for curves that + // aren't + // bent very much. And a useful guess for ALL spline curves. - //Guess initial t - double t = (x-mStartKnot.getEndPoint().x)/(mEndKnot.getEndPoint().x-mStartKnot.getEndPoint().x); + // Guess initial t + double t = (x - mStartKnot.getEndPoint().x) + / (mEndKnot.getEndPoint().x - mStartKnot.getEndPoint().x); - t = getTForXInternal(x,t); + t = getTForXInternal(x, t); double value = getYValue(t); - -/* - double xvalue = getXValue(t); - - if(Math.abs(xvalue - x) > POS_TOLERANCE) - { - System.out.println("find x: " + x + " real x: " + xvalue + " t:" + t + " p0 x:" + p0.x + " p3 x: " + p3.x); - xvalue = getXValue(t); - } -*/ + + /* + * double xvalue = getXValue(t); + * + * if(Math.abs(xvalue - x) > POS_TOLERANCE) { + * System.out.println("find x: " + x + " real x: " + xvalue + " t:" + t + * + " p0 x:" + p0.x + " p3 x: " + p3.x); xvalue = getXValue(t); } + */ return value; } - - public double getMinX() - { + + public double getMinX() { return getMinMaxNumerical(BezierSpline.X, BezierSpline.MIN); } - public double getMinY() - { + public double getMinY() { return getMinMaxNumerical(BezierSpline.Y, BezierSpline.MIN); } - public double getMaxX() - { + public double getMaxX() { return getMinMaxNumerical(BezierSpline.X, BezierSpline.MAX); } - public double getMaxY() - { + public double getMaxY() { return getMinMaxNumerical(BezierSpline.Y, BezierSpline.MAX); } - public synchronized double getMinMaxNumerical(int XorY, int MinOrMax) - { + public double getMinMaxNumerical(int XorY, int MinOrMax) { calculateCoeff(); - return getMinMaxNumerical(0, 1, BezierSpline.MIN_MAX_SPLITS, XorY, MinOrMax); + return getMinMaxNumerical(0, 1, BezierSpline.MIN_MAX_SPLITS, XorY, + MinOrMax); } - private synchronized double getMinMaxNumerical(int XorY, int MinOrMax, double t0, double t1) - { + private double getMinMaxNumerical(int XorY, int MinOrMax, + double t0, double t1) { calculateCoeff(); - - return getMinMaxNumerical(t0, t1, BezierSpline.MIN_MAX_SPLITS, XorY, MinOrMax); + + return getMinMaxNumerical(t0, t1, BezierSpline.MIN_MAX_SPLITS, XorY, + MinOrMax); } - public double getTForMinMaxNumerical(int XorY, int MinOrMax) - { - return getTForMinMaxNumerical(XorY, MinOrMax,0.0, 1.0); + public double getTForMinMaxNumerical(int XorY, int MinOrMax) { + return getTForMinMaxNumerical(XorY, MinOrMax, 0.0, 1.0); } - private synchronized double getTForMinMaxNumerical(int XorY, int MinOrMax, double t0, double t1) - { + private double getTForMinMaxNumerical(int XorY, int MinOrMax, + double t0, double t1) { calculateCoeff(); - return getTForMinMaxNumerical(t0, t1, BezierSpline.MIN_MAX_SPLITS, XorY, MinOrMax); + return getTForMinMaxNumerical(t0, t1, BezierSpline.MIN_MAX_SPLITS, + XorY, MinOrMax); } - public double getMinMaxNumerical(double t0, double t1, int nrOfSplits,int XorY, int MinOrMax) - { + public double getMinMaxNumerical(double t0, double t1, int nrOfSplits, + int XorY, int MinOrMax) { double best_t = 0; - double best_value = (MinOrMax==BezierSpline.MAX)?-10000000:10000000; + double best_value = (MinOrMax == BezierSpline.MAX) ? -10000000 + : 10000000; double current_t; double current_value; - double seg = ((t1-t0)/nrOfSplits); - for(int i = 0; i < nrOfSplits; i++) - { - current_t = seg*i + t0; - if(current_t < 0 || current_t > 1) + double seg = ((t1 - t0) / nrOfSplits); + for (int i = 0; i < nrOfSplits; i++) { + current_t = seg * i + t0; + if (current_t < 0 || current_t > 1) continue; - current_value = (XorY==BezierSpline.X)?getXValue(current_t):getYValue(current_t); + current_value = (XorY == BezierSpline.X) ? getXValue(current_t) + : getYValue(current_t); - if(MinOrMax==BezierSpline.MAX) - { - if(current_value >= best_value) - { + if (MinOrMax == BezierSpline.MAX) { + if (current_value >= best_value) { best_value = current_value; best_t = current_t; } - } - else - { - if(current_value <= best_value) - { + } else { + if (current_value <= best_value) { best_value = current_value; best_t = current_t; - } + } } } - if((best_t - ((t1-t0)/2)) < BezierSpline.MIN_MAX_TOLERANCE) + if ((best_t - ((t1 - t0) / 2)) < BezierSpline.MIN_MAX_TOLERANCE) return best_value; - else if(nrOfSplits <= 2) + else if (nrOfSplits <= 2) return best_value; else - return getMinMaxNumerical(best_t-seg,best_t+seg, nrOfSplits/2,XorY,MinOrMax); + return getMinMaxNumerical(best_t - seg, best_t + seg, + nrOfSplits / 2, XorY, MinOrMax); } - double getTForMinMaxNumerical(double t0, double t1, int nrOfSplits,int XorY, int MinOrMax) - { + double getTForMinMaxNumerical(double t0, double t1, int nrOfSplits, + int XorY, int MinOrMax) { double best_t = 0; - double best_value = (MinOrMax==BezierSpline.MAX)?-10000000:10000000; + double best_value = (MinOrMax == BezierSpline.MAX) ? -10000000 + : 10000000; double current_t; double current_value; - double seg = ((t1-t0)/nrOfSplits); - for(int i = 0; i < nrOfSplits; i++) - { - current_t = seg*i + t0; - if(current_t < 0 || current_t > 1) + double seg = ((t1 - t0) / nrOfSplits); + for (int i = 0; i < nrOfSplits; i++) { + current_t = seg * i + t0; + if (current_t < 0 || current_t > 1) continue; - current_value = (XorY==BezierSpline.X)?getXValue(current_t):getYValue(current_t); + current_value = (XorY == BezierSpline.X) ? getXValue(current_t) + : getYValue(current_t); - if(MinOrMax==BezierSpline.MAX) - { - if(current_value >= best_value) - { + if (MinOrMax == BezierSpline.MAX) { + if (current_value >= best_value) { best_value = current_value; best_t = current_t; } - } - else - { - if(current_value <= best_value) - { + } else { + if (current_value <= best_value) { best_value = current_value; best_t = current_t; - } + } } } - if((best_t - ((t1-t0)/2)) < BezierSpline.MIN_MAX_TOLERANCE) + if ((best_t - ((t1 - t0) / 2)) < BezierSpline.MIN_MAX_TOLERANCE) return best_t; - else if(nrOfSplits <= 2) + else if (nrOfSplits <= 2) return best_t; else - return getTForMinMaxNumerical(best_t-seg,best_t+seg, nrOfSplits/2,XorY,MinOrMax); + return getTForMinMaxNumerical(best_t - seg, best_t + seg, + nrOfSplits / 2, XorY, MinOrMax); } - + public double getTangent(double t) { - + calculateCoeff(); - + double dx = getXDerivate(t); double dy = getYDerivate(t); - double angle = Math.atan2(dx,dy); + double angle = Math.atan2(dx, dy); return angle; } - - synchronized double getLength() - { + public double getNormal(double t) { + return getTangent(t) + (Math.PI / 2.0); + } + + public Point2D.Double getTangentVector(double t) { + + double angle = getTangent(t); + + return new Point2D.Double(Math.cos(angle), Math.sin(angle)); + } + + public Point2D.Double getNormalVector(double t) { + double angle = getTangent(t) + (Math.PI / 2.0); + + return new Point2D.Double(Math.cos(angle), Math.sin(angle)); + } + + public double getLength() { calculateCoeff(); - if(mLengthDirty) - { + if (mLengthDirty) { mLength = getLength(BezierSpline.ZERO, BezierSpline.ONE); mLengthDirty = false; } return mLength; } - public double getLength(double t0, double t1) - { + public double getLength(double t0, double t1) { calculateCoeff(); - - //Get endpoints + + // Get endpoints double x0 = getXValue(t0); double y0 = getYValue(t0); double x1 = getXValue(t1); double y1 = getYValue(t1); - //Get t split point - double ts = (t1-t0)/2 + t0; + // Get t split point + double ts = (t1 - t0) / 2 + t0; double sx = getXValue(ts); double sy = getYValue(ts); - //Distance between centerpoint and real split curvepoint - double length = VecMath.getVecLength(x0,y0,sx,sy) + VecMath.getVecLength(sx,sy,x1,y1); - double chord = VecMath.getVecLength(x0,y0,x1,y1); + // Distance between centerpoint and real split curvepoint + double length = VecMath.getVecLength(x0, y0, sx, sy) + + VecMath.getVecLength(sx, sy, x1, y1); + double chord = VecMath.getVecLength(x0, y0, x1, y1); - if(length - chord > BezierSpline.LENGTH_TOLERANCE && t1-t0 > 0.001) - { + if (length - chord > BezierSpline.LENGTH_TOLERANCE && t1 - t0 > 0.001) { return getLength(t0, ts) + getLength(ts, t1); - } - else - { - return length; + } else { + return length; } - } - - - synchronized public double getTForDistance(Point2D.Double fromPoint, double distance) - { + public double getTForDistance(Point2D.Double fromPoint, + double distance) { calculateCoeff(); - return getTForDistance(0, 1, BezierSpline.MIN_MAX_SPLITS, fromPoint, distance); + return getTForDistance(0, 1, BezierSpline.MIN_MAX_SPLITS, fromPoint, + distance); } - private double getTForDistance(double t0, double t1, int nrOfSplits, Point2D.Double fromPoint, double distance) - { + private double getTForDistance(double t0, double t1, int nrOfSplits, + Point2D.Double fromPoint, double distance) { double best_t = 0; double best_error = 100000000; @@ -776,41 +735,38 @@ private double getTForDistance(double t0, double t1, int nrOfSplits, Point2D.Dou Point2D.Double current_point; double current_distance; double current_error; - double seg = ((t1-t0)/nrOfSplits); - for(int i = 0; i < nrOfSplits; i++) - { - current_t = seg*i + t0; - if(current_t < 0 || current_t > 1) + double seg = ((t1 - t0) / nrOfSplits); + for (int i = 0; i < nrOfSplits; i++) { + current_t = seg * i + t0; + if (current_t < 0 || current_t > 1) continue; current_point = getValue(current_t); - + current_distance = VecMath.getVecLength(fromPoint, current_point); - - current_error = Math.abs(current_distance-distance); - if(current_error < best_error) - { + + current_error = Math.abs(current_distance - distance); + if (current_error < best_error) { best_error = current_error; best_t = current_t; } } - if((best_t - ((t1-t0)/2)) < BezierSpline.DISTANCE_TOLERANCE) + if ((best_t - ((t1 - t0) / 2)) < BezierSpline.DISTANCE_TOLERANCE) return best_t; - else if(nrOfSplits <= 2) + else if (nrOfSplits <= 2) return best_t; else - return getTForDistance(best_t-seg,best_t+seg, nrOfSplits/2,fromPoint,distance); + return getTForDistance(best_t - seg, best_t + seg, nrOfSplits / 2, + fromPoint, distance); } - public synchronized double getClosestT(Point2D.Double point) - { + public double getClosestT(Point2D.Double point) { calculateCoeff(); - return getClosestT(0, 1, 32, point.x, point.y); + return getClosestT(0, 1, 32, point.x, point.y); } - double getClosestT(double t0, double t1, int nrOfSplits, double x, double y) - { + double getClosestT(double t0, double t1, int nrOfSplits, double x, double y) { double best_t = 0; double min_dist = 1000000000; @@ -818,11 +774,10 @@ public synchronized double getClosestT(Point2D.Double point) double current_x; double current_y; double current_dist; - double seg = ((t1-t0)/nrOfSplits); - for(int i = 0; i < nrOfSplits; i++) - { - current_t = seg*i + t0; - if(current_t < 0 || current_t > 1) + double seg = ((t1 - t0) / nrOfSplits); + for (int i = 0; i < nrOfSplits; i++) { + current_t = seg * i + t0; + if (current_t < 0 || current_t > 1) continue; current_x = getXValue(current_t); @@ -830,32 +785,29 @@ public synchronized double getClosestT(Point2D.Double point) current_dist = VecMath.getVecLength(current_x, current_y, x, y); - if(current_dist <= min_dist) - { + if (current_dist <= min_dist) { min_dist = current_dist; best_t = current_t; } } - if((best_t - ((t1-t0)/2)) < 0.001) + if ((best_t - ((t1 - t0) / 2)) < 0.001) return best_t; - else if(nrOfSplits <= 2) + else if (nrOfSplits <= 2) return best_t; else - return getClosestT(best_t-seg,best_t+seg, nrOfSplits/2, x, y); + return getClosestT(best_t - seg, best_t + seg, nrOfSplits / 2, x, y); } - public synchronized double getCurvatureAt(double pos) - { + public double getCurvatureAt(double pos) { calculateCoeff(); - return getCurvature(getTForX(pos)); + return getCurvature(getTForX(pos)); } - public double getCurvature(double t) - { + public double getCurvature(double t) { calculateCoeff(); - //K(t) = (x'y" - y'x") / (x'^2 + y'^2)^(3/2) + // K(t) = (x'y" - y'x") / (x'^2 + y'^2)^(3/2) double dx = getXDerivate(t); double dy = getYDerivate(t); @@ -863,43 +815,45 @@ public double getCurvature(double t) double ddx = getXSecondDerivate(t); double ddy = getYSecondDerivate(t); - return ((dx*ddy) - (dy*ddx))/Math.pow((dx*dx) + (dy*dy), 1.5); + return ((dx * ddy) - (dy * ddx)) / Math.pow((dx * dx) + (dy * dy), 1.5); } - BezierKnot getSplitControlPoint(double t) - { - //Split using de Casteljau's algorithm + BezierKnot getSplitControlPoint(double t) { + // Split using de Casteljau's algorithm Point2D.Double q1 = new Point2D.Double(); Point2D.Double q2 = new Point2D.Double(); Point2D.Double q3 = new Point2D.Double(); - VecMath.subVector(getStartKnot().getEndPoint(),getStartKnot().getTangentToNext(),q1); + VecMath.subVector(getStartKnot().getEndPoint(), getStartKnot() + .getTangentToNext(), q1); VecMath.scaleVector(q1, t); - VecMath.addVector(getStartKnot().getEndPoint(),q1,q1); + VecMath.addVector(getStartKnot().getEndPoint(), q1, q1); - VecMath.subVector(getStartKnot().getTangentToNext(),getEndKnot().getTangentToPrev(),q2); + VecMath.subVector(getStartKnot().getTangentToNext(), getEndKnot() + .getTangentToPrev(), q2); VecMath.scaleVector(q2, t); - VecMath.addVector(getStartKnot().getTangentToNext(),q2,q2); + VecMath.addVector(getStartKnot().getTangentToNext(), q2, q2); - VecMath.subVector(getEndKnot().getTangentToPrev(),getEndKnot().getEndPoint(),q3); + VecMath.subVector(getEndKnot().getTangentToPrev(), getEndKnot() + .getEndPoint(), q3); VecMath.scaleVector(q3, t); - VecMath.addVector(getEndKnot().getTangentToPrev(),q3,q3); + VecMath.addVector(getEndKnot().getTangentToPrev(), q3, q3); Point2D.Double r1 = new Point2D.Double(); Point2D.Double r2 = new Point2D.Double(); Point2D.Double r3 = new Point2D.Double(); - VecMath.subVector(q1,q2,r2); + VecMath.subVector(q1, q2, r2); VecMath.scaleVector(r2, t); - VecMath.addVector(q1,r2,r2); + VecMath.addVector(q1, r2, r2); - VecMath.subVector(q2,q3,r3); + VecMath.subVector(q2, q3, r3); VecMath.scaleVector(r3, t); - VecMath.addVector(q2,r3,r3); + VecMath.addVector(q2, r3, r3); - VecMath.subVector(r2,r3,r1); + VecMath.subVector(r2, r3, r1); VecMath.scaleVector(r1, t); - VecMath.addVector(r2,r1,r1); + VecMath.addVector(r2, r1, r1); BezierKnot ret = new BezierKnot(); ret.getPoints()[0].setLocation(r1); @@ -909,44 +863,39 @@ BezierKnot getSplitControlPoint(double t) return ret; } - synchronized double getTForLength(Point2D.Double p0, Point2D.Double t1, Point2D.Double t2, Point2D.Double p3, double length) - { + double getTForLength(Point2D.Double p0, Point2D.Double t1, + Point2D.Double t2, Point2D.Double p3, double length) { calculateCoeff(); - return getTForLength(0, 1, length); + return getTForLength(0, 1, length); } - private double getTangent2(double t) - { + private double getTangent2(double t) { BezierKnot cp = getSplitControlPoint(t); - Point2D.Double u = new Point2D.Double(0,1); + Point2D.Double u = new Point2D.Double(0, 1); Point2D.Double v = new Point2D.Double(); VecMath.subVector(cp.getEndPoint(), cp.getTangentToNext(), v); double angle = VecMath.getVecAngle(u, v); return angle; } - public double getTangentAt(double pos) - { + public double getTangentAt(double pos) { calculateCoeff(); double t = getTForX(pos); - + return getTangent(t); } - - public void onChange(BezierKnot knot) - { + + public void onChange(BezierKnot knot) { setDirty(); } - - void setDirty() - { + + void setDirty() { mCoeffDirty = true; mLengthDirty = true; - - } + } + } - diff --git a/cadcore/BezierKnot.java b/cadcore/BezierKnot.java index 4356d00..00f5e44 100644 --- a/cadcore/BezierKnot.java +++ b/cadcore/BezierKnot.java @@ -27,7 +27,7 @@ public class BezierKnot extends Object implements Cloneable protected double Y_mask = 1.0f; protected int mTangent1Locks = 0; protected int mTangent2Locks = 0; - + List mChangeListeners = new Vector(); public BezierKnot(){ @@ -442,7 +442,7 @@ public Object clone(){ throw new Error("CloneNotSupportedException in BrdCommand"); } - controlPoint.setPoints(new Point2D.Double[3]); + controlPoint.initPoints(); for(int i = 0; i < 3; i++) { controlPoint.getPoints()[i] = (Point2D.Double)this.getPoints()[i].clone(); @@ -480,6 +480,10 @@ public void fromString(String string) onChange(); } + public void initPoints() { + this.mPoints = new Point2D.Double[3]; + } + public void setPoints(Point2D.Double mPoints[]) { this.mPoints = mPoints; onChange(); @@ -502,7 +506,7 @@ void addChangeListener(BezierKnotChangeListener listener) mChangeListeners.add(listener); } - public void onChange() + public void onChange() //TODO: THIS FUNCTION SHOULD NOT BE PUBLIC, FUNCTIONS WHICH CALL onChange() SHOULD BE USED FOR SETTING KNOT VALUES { for(BezierKnotChangeListener listener : mChangeListeners) { diff --git a/cadcore/BezierSpline.java b/cadcore/BezierSpline.java index 6673755..1380588 100644 --- a/cadcore/BezierSpline.java +++ b/cadcore/BezierSpline.java @@ -1,47 +1,39 @@ package cadcore; + import java.awt.geom.Point2D; import java.util.ArrayList; - - public class BezierSpline implements Cloneable { - - - - public static final double ZERO = 0.0000000001; - public static final double ONE = 0.9999999999; + public static final double ZERO = 0.0000000001; + public static final double ONE = 0.9999999999; static final int X = 0; static final int Y = 1; static final int MIN = 0; static final int MAX = 1; - static final double ANGLE_TOLERANCE = 0.05*MathUtils.DEG_TO_RAD; //0.1degrees - static final double ANGLE_T_TOLERANCE = 0.000002; - static final int ANGLE_MAX_ITERATIONS = 50; - static final int ANGLE_SPLITS = 112; + static final double ANGLE_TOLERANCE = 0.05 * MathUtils.DEG_TO_RAD; // 0.1degrees + static final double ANGLE_T_TOLERANCE = 0.000002; + static final int ANGLE_MAX_ITERATIONS = 50; + static final int ANGLE_SPLITS = 112; + + static final double POS_TOLERANCE = 0.003; // 0.03mm + static final int POS_MAX_ITERATIONS = 30; - static final double POS_TOLERANCE = 0.003; //0.03mm - static final int POS_MAX_ITERATIONS = 30; - static final double LENGTH_TOLERANCE = 0.001; - - static final double MIN_MAX_TOLERANCE = 0.0001; + + static final double MIN_MAX_TOLERANCE = 0.0001; static final int MIN_MAX_SPLITS = 96; - + static final double DISTANCE_TOLERANCE = 0.0001; - + protected ArrayList mCurves = new ArrayList(); - - protected int mBestMatchPointIndex; - public BezierSpline() - { + public BezierSpline() { } - - public void set(BezierSpline spline) - { + + public void set(BezierSpline spline) { // Remove extra control points while (getNrOfControlPoints() > spline.getNrOfControlPoints()) { remove(0); @@ -53,138 +45,107 @@ public void set(BezierSpline spline) int nrControlPoints = getNrOfControlPoints(); for (int i = 0; i < nrControlPoints; i++) { - getControlPoint(i).set( - spline.getControlPoint(i)); + getControlPoint(i).set(spline.getControlPoint(i)); } } - public void append(BezierKnot controlPoint) - { - if(mCurves.size() == 0) - { + public void append(BezierKnot controlPoint) { + if (mCurves.size() == 0) { mCurves.add(new BezierCurve(controlPoint, null)); - } - else if(mCurves.size() == 1 && mCurves.get(0).getEndKnot() == null) - { + } else if (mCurves.size() == 1 && mCurves.get(0).getEndKnot() == null) { mCurves.get(0).setEndKnot(controlPoint); - } - else - { - mCurves.add(new BezierCurve(mCurves.get(mCurves.size()-1).getEndKnot(), controlPoint)); + } else { + mCurves.add(new BezierCurve(mCurves.get(mCurves.size() - 1) + .getEndKnot(), controlPoint)); } } - public void insert(int i, BezierKnot controlPoint) - { + public void insert(int i, BezierKnot controlPoint) { BezierKnot next = null; - if(i < getNrOfControlPoints()) - { + if (i < getNrOfControlPoints()) { next = getControlPoint(i); } - if(i > 0 && i-1 < mCurves.size()) - { - BezierCurve prevCurve = mCurves.get(i-1); + if (i > 0 && i - 1 < mCurves.size()) { + BezierCurve prevCurve = mCurves.get(i - 1); prevCurve.setEndKnot(controlPoint); - } - + } + BezierCurve newCurve = new BezierCurve(controlPoint, next); mCurves.add(i, newCurve); } - public void remove(BezierKnot controlPoint) - { + public void remove(BezierKnot controlPoint) { int i = indexOf(controlPoint); - + remove(i); } - public void remove(int i) - { + public void remove(int i) { BezierCurve removeCurve = null; - if(i < mCurves.size()) - { + if (i < mCurves.size()) { removeCurve = mCurves.get(i); } - if(i > 0 && i-1 < mCurves.size()) - { - BezierCurve prevCurve = mCurves.get(i-1); - prevCurve.setEndKnot(removeCurve != null?removeCurve.getEndKnot():null); + if (i > 0 && i - 1 < mCurves.size()) { + BezierCurve prevCurve = mCurves.get(i - 1); + prevCurve.setEndKnot(removeCurve != null ? removeCurve.getEndKnot() + : null); } mCurves.remove(removeCurve); } - public BezierKnot getControlPoint(int i) - { - if(mCurves.size() == 0 || mCurves.size() < i-1) - { + public BezierKnot getControlPoint(int i) { + if (mCurves.size() == 0 || mCurves.size() < i - 1) { return null; } - - if(i == 0) - { + + if (i == 0) { return mCurves.get(0).getStartKnot(); - } - else - { - return mCurves.get(i-1).getEndKnot(); + } else { + return mCurves.get(i - 1).getEndKnot(); } } - - public BezierCurve getCurve(int i) - { + + public BezierCurve getCurve(int i) { return mCurves.get(i); } - - public boolean isLastControlPointNull() - { - if(mCurves.size() == 0) - { + + public boolean isLastControlPointNull() { + if (mCurves.size() == 0) { return true; } - - return (mCurves.get(mCurves.size()-1).getEndKnot() == null); + + return (mCurves.get(mCurves.size() - 1).getEndKnot() == null); } - public int indexOf(BezierKnot controlPoint) - { - for(int i = 0; i < mCurves.size()+1; i++) - { - if(controlPoint == getControlPoint(i)) + public int indexOf(BezierKnot controlPoint) { + for (int i = 0; i < mCurves.size() + 1; i++) { + if (controlPoint == getControlPoint(i)) return i; } return -1; } - - - public int getNrOfControlPoints() - { - return mCurves.size()+(isLastControlPointNull()?0:1); + public int getNrOfControlPoints() { + return mCurves.size() + (isLastControlPointNull() ? 0 : 1); } - public int getNrOfCurves() - { + public int getNrOfCurves() { return mCurves.size(); } - - public void clear() - { + + public void clear() { mCurves.clear(); } - - - public double getValueAt(double pos) - { + public double getValueAt(double pos) { int index = findMatchingBezierSegment(pos); - if(index == -1) - { + if (index == -1) { return 0.0; } @@ -192,56 +153,49 @@ public double getValueAt(double pos) return value; } - public double getValueAtReverse(double pos) - { + public double getValueAtReverse(double pos) { int index = findMatchingBezierSegmentReverse(pos); - if(index != -1) - { + if (index != -1) { BezierCurve curve = mCurves.get(index); - + return curve.getYForX(pos); } - + return 0.0; } - public double getCurvatureAt(double pos) - { + public double getCurvatureAt(double pos) { int index = findMatchingBezierSegment(pos); - if(index == -1) //Not within patch + if (index == -1) // Not within patch return 0.0; BezierCurve curve = mCurves.get(index); - return curve.getCurvature(pos); + return curve.getCurvatureAt(pos); } - public double getMaxX() - { + public double getMaxX() { double max = -100000; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); double current = curve.getMaxX(); - if(current > max) + if (current > max) max = current; } return max; } - public Point2D.Double getPointByTT(double tt) - { - int index = (int)(tt*getNrOfCurves()); - double t = (tt*getNrOfCurves()) - index; - if(tt >= 1) - { - index = getNrOfCurves()-1; + public Point2D.Double getPointByTT(double tt) { + int index = (int) (tt * getNrOfCurves()); + double t = (tt * getNrOfCurves()) - index; + if (tt >= 1) { + index = getNrOfCurves() - 1; t = ONE; } @@ -249,468 +203,428 @@ public Point2D.Double getPointByTT(double tt) return curve.getValue(t); } - - public double getNormalByTT(double tt) - { - int index = (int)(tt*getNrOfCurves()); - double t = (tt*getNrOfCurves()) - index; - if(tt >= 1) - { - index = getNrOfCurves()-1; + + public double getNormalByTT(double tt) { + int index = (int) (tt * getNrOfCurves()); + double t = (tt * getNrOfCurves()) - index; + if (tt >= 1) { + index = getNrOfCurves() - 1; t = ONE; } -// System.out.printf("getNormalByTT() tt:%f index:%d t:%f\n", tt, index, t); + // System.out.printf("getNormalByTT() tt:%f index:%d t:%f\n", tt, index, + // t); BezierCurve curve = mCurves.get(index); - return curve.getTangent(t) + (Math.PI/2.0); + return curve.getTangent(t) + (Math.PI / 2.0); } - public double getTTByLineIntersect(final Point2D.Double a, final Point2D.Double b) - { - final double slope = (b.y - a.y)/(b.x-a.x); - final double p = a.y - (slope*a.x); - - MathUtils.Function func = new MathUtils.Function(){ - public double f(double tt){ - - //Bezier - Point2D.Double bezierPos = getPointByTT(tt); - - //Line - double lineY = (slope*bezierPos.x) + p; - - return bezierPos.y - lineY; - } - }; - - double aTT = getTTByX(a.x); - double bTT = getTTByX(b.x); - - if(aTT == bTT) - { - return bTT; - } - - double tt = MathUtils.RootFinder.getRoot(func, 0.0, Math.min(aTT, bTT), Math.max(aTT, bTT) ); - - return tt; - } - - public double getTTByX(double x) - { - MathUtils.Function func = new MathUtils.Function(){public double f(double tt){return getPointByTT(tt).x;}}; - - double tt = MathUtils.RootFinder.getRoot(func, x); - - return tt; + public double getTTByLineIntersect(final Point2D.Double a, + final Point2D.Double b) { + final double slope = (b.y - a.y) / (b.x - a.x); + final double p = a.y - (slope * a.x); + + MathUtils.Function func = new MathUtils.Function() { + public double f(double tt) { + + // Bezier + Point2D.Double bezierPos = getPointByTT(tt); + + // Line + double lineY = (slope * bezierPos.x) + p; + + return bezierPos.y - lineY; + } + }; + + double aTT = getTTByX(a.x); + double bTT = getTTByX(b.x); + + if (aTT == bTT) { + return bTT; + } + + double tt = MathUtils.RootFinder.getRoot(func, 0.0, Math.min(aTT, bTT), + Math.max(aTT, bTT)); + + return tt; } - public double getTTByNormal(double angle) - { - MathUtils.Function func = new MathUtils.Function(){public double f(double tt){return getNormalByTT(tt);}}; - - double tt = MathUtils.RootFinder.getRoot(func, angle); - - return tt; + public double getTTByX(double x) { + MathUtils.Function func = new MathUtils.Function() { + public double f(double tt) { + return getPointByTT(tt).x; + } + }; + + double tt = MathUtils.RootFinder.getRoot(func, x); + + return tt; } - public double getLengthByTT(double tt) - { - int index = (int)(tt*getNrOfControlPoints()); - if(tt >= 1) - { - index = getNrOfControlPoints()-1; + public double getTTByNormal(double angle) { + MathUtils.Function func = new MathUtils.Function() { + public double f(double tt) { + return getNormalByTT(tt); + } + }; + + double tt = MathUtils.RootFinder.getRoot(func, angle); + + return tt; + } + + public double getLengthByTT(double tt) { + int index = (int) (tt * getNrOfControlPoints()); + if (tt >= 1) { + index = getNrOfControlPoints() - 1; } double length = 0.0; - - for(int i = 0; i < index; i++) - { + + for (int i = 0; i < index; i++) { BezierCurve curve = mCurves.get(i); length += curve.getLength(); } - + BezierCurve curve = mCurves.get(index); double t = tt - index; - length += curve.getLength(0,t); + length += curve.getLength(0, t); return length; } - - public double getSByTT(double tt) - { - return getLengthByTT(tt)/getLength(); + + public double getSByTT(double tt) { + return getLengthByTT(tt) / getLength(); } - public double getMinX() - { + public double getMinX() { double min = Double.MAX_VALUE; - for(int i = 0; i < mCurves.size()-1; i++) - { + for (int i = 0; i < mCurves.size() - 1; i++) { BezierCurve curve = mCurves.get(i); double current = curve.getMinX(); - if(current < min) + if (current < min) min = current; } return min; } - public double getMaxY() - { + public double getMaxY() { double max = -Double.MAX_VALUE; - for(int i = 0; i < mCurves.size()-1; i++) - { + for (int i = 0; i < mCurves.size() - 1; i++) { BezierCurve curve = mCurves.get(i); double current = curve.getMaxY(); - if(current > max) + if (current > max) max = current; } return max; } - public double getMaxYInRange(double x0, double x1) - { + public double getMaxYInRange(double x0, double x1) { double max = -100000; double current = 0.0; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); - - double minX = curve.getMinMaxNumerical(0.0, 1.0, MIN_MAX_SPLITS, X, MIN); - double maxX = curve.getMinMaxNumerical(0.0, 1.0, MIN_MAX_SPLITS, X, MAX); - - if(minX > x1) + + double minX = curve.getMinMaxNumerical(0.0, 1.0, MIN_MAX_SPLITS, X, + MIN); + double maxX = curve.getMinMaxNumerical(0.0, 1.0, MIN_MAX_SPLITS, X, + MAX); + + if (minX > x1) continue; - - if(maxX < x0) + + if (maxX < x0) continue; - + double t0 = curve.getTForX(x0, 0.1); double t1 = curve.getTForX(x1, 0.9); current = curve.getMinMaxNumerical(t0, t1, MIN_MAX_SPLITS, Y, MAX); - if(current > max) + if (current > max) max = current; - + } return max; } - public double getXForMaxY() - { + public double getXForMaxY() { double max = -100000; BezierCurve maxCurve = null; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); double current = curve.getMinMaxNumerical(Y, MAX); - if(current > max) - { + if (current > max) { max = current; maxCurve = curve; } } - - double tMax = maxCurve.getTForMinMaxNumerical(0, 1, MIN_MAX_SPLITS, Y, MAX); + + double tMax = maxCurve.getTForMinMaxNumerical(0, 1, MIN_MAX_SPLITS, Y, + MAX); double x = maxCurve.getXValue(tMax); return x; } - public double getXForMaxYInRange(double x0, double x1) - { + public double getXForMaxYInRange(double x0, double x1) { double max = -100000; BezierCurve maxCurve = null; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); - - - double minX = curve.getMinMaxNumerical(0.0, 1.0, MIN_MAX_SPLITS, X, MIN); - double maxX = curve.getMinMaxNumerical(0.0, 1.0, MIN_MAX_SPLITS, X, MAX); - - if(minX > x1) + + double minX = curve.getMinMaxNumerical(0.0, 1.0, MIN_MAX_SPLITS, X, + MIN); + double maxX = curve.getMinMaxNumerical(0.0, 1.0, MIN_MAX_SPLITS, X, + MAX); + + if (minX > x1) continue; - - if(maxX < x0) + + if (maxX < x0) continue; - + double t0 = curve.getTForX(x0, 0.1); double t1 = curve.getTForX(x1, 0.9); - double current = curve.getMinMaxNumerical(t0, t1, MIN_MAX_SPLITS, Y, MAX); + double current = curve.getMinMaxNumerical(t0, t1, MIN_MAX_SPLITS, + Y, MAX); - if(current > max) - { + if (current > max) { maxCurve = curve; max = current; } - } + double tMax = maxCurve.getTForMinMaxNumerical(0, 1, MIN_MAX_SPLITS, Y, + MAX); - double tMax = maxCurve.getTForMinMaxNumerical(0, 1, MIN_MAX_SPLITS, Y, MAX); - double x = maxCurve.getXValue(tMax); - + return x; } - public double getMinY() - { + public double getMinY() { double min = 100000; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); double current = curve.getMinY(); - if(current < min) + if (current < min) min = current; } return min; } - - public double getLengthByX(double pos) - { + + public double getLengthByX(double pos) { double length = 0; int index = findMatchingBezierSegment(pos); - if(index == -1) //Not within patch + if (index == -1) // Not within patch { return 0.0; } BezierCurve curve = mCurves.get(index); - + double t = curve.getTForX(pos, ONE); - length += curve.getLength(ZERO,t); - - for(int i = 0; i < index; i++) - { + length += curve.getLength(ZERO, t); + + for (int i = 0; i < index; i++) { curve = mCurves.get(i); - double currentLength = curve.getLength(); - + double currentLength = curve.getLength(); + length += currentLength; } - return length; } - public double getSByX(double pos) - { - return getLengthByX(pos)/getLength(); + public double getSByX(double pos) { + return getLengthByX(pos) / getLength(); } - - public Point2D.Double getPointByS(double s) - { - return getPointByCurveLength(s*getLength()); + + public Point2D.Double getPointByS(double s) { + return getPointByCurveLength(s * getLength()); } - - public Point2D.Double getPointByCurveLength(double curveLength) - { + + public Point2D.Double getPointByCurveLength(double curveLength) { double l = curveLength; double t = -1; - + BezierCurve curve = null; - - //Return endpoints if input curvelength is out of range - if(curveLength <= 0.0) - { + + // Return endpoints if input curvelength is out of range + if (curveLength <= 0.0) { curve = mCurves.get(0); - - return new Point2D.Double(curve.getXValue(ZERO), curve.getYValue(ZERO)); + + return new Point2D.Double(curve.getXValue(ZERO), + curve.getYValue(ZERO)); } - if(curveLength >= getLength()) - { - curve = mCurves.get(mCurves.size()-1); - - return new Point2D.Double(curve.getXValue(ONE), curve.getYValue(ONE)); + if (curveLength >= getLength()) { + curve = mCurves.get(mCurves.size() - 1); + + return new Point2D.Double(curve.getXValue(ONE), + curve.getYValue(ONE)); } - - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { curve = mCurves.get(i); double currentLength = curve.getLength(); - if(l < currentLength) - { + if (l < currentLength) { t = curve.getTForLength(l); break; } - + l -= currentLength; } - + double x = curve.getXValue(t); double y = curve.getYValue(t); - return new Point2D.Double(x,y); + return new Point2D.Double(x, y); } - - - //Returns the first point found that is the given distance from - public Point2D.Double getPointByDistance(Point2D.Double point, double distance) - { + // Returns the first point found that is the given distance from + public Point2D.Double getPointByDistance(Point2D.Double point, + double distance) { Point2D.Double best = null; double best_error = 10000; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); - + double t = curve.getTForDistance(point, distance); Point2D.Double current = curve.getValue(t); - double error = Math.abs(VecMath.getVecLength(point,current)); - - if(error < best_error) - { + double error = Math.abs(VecMath.getVecLength(point, current)); + + if (error < best_error) { best = current; best_error = error; } } - + return best; } - - public Point2D.Double getPointByLineIntersection(Point2D.Double a, Point2D.Double b){ + + public Point2D.Double getPointByLineIntersection(Point2D.Double a, + Point2D.Double b) { return getPointByTT(getTTByLineIntersect(a, b)); } - public double getSByNormal(double angle) - { - return getSByTangent(angle - Math.PI/2.0); + public double getSByNormal(double angle) { + return getSByTangent(angle - Math.PI / 2.0); } - - public double getSByTangent(double angle) - { - return getLengthByTangent(angle)/getLength(); + + public double getSByTangent(double angle) { + return getLengthByTangent(angle) / getLength(); } - - public double getLengthByNormal(double angle) - { - return getLengthByTangent(angle - Math.PI/2.0)/getLength(); + + public double getLengthByNormal(double angle) { + return getLengthByTangent(angle - Math.PI / 2.0) / getLength(); } - public double getLengthByTangent(double angle) - { + public double getLengthByTangent(double angle) { double length = 0; double t = 0; - - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); - - synchronized(this) - { - double endAngle = curve.getTangent(ZERO); - double otherEndAngle = curve.getTangent(ONE); - - double initial_t = (angle-endAngle)/(otherEndAngle-endAngle); - if(initial_t < 0.0) - initial_t = 0.0; - if(initial_t > 1.0) - initial_t = 1.0; - double last_t = initial_t +0.1; - if(last_t > 1.0) - last_t -= 0.2; - - t = curve.getTForTangent2(angle,initial_t,last_t); - - double tAngle = curve.getTangent(t); - if(Math.abs(tAngle-angle) < ANGLE_TOLERANCE) - { - length += curve.getLength(ZERO,t); - break; - } - - length += curve.getLength(); + + double endAngle = curve.getTangent(ZERO); + double otherEndAngle = curve.getTangent(ONE); + + double initial_t = (angle - endAngle) / (otherEndAngle - endAngle); + if (initial_t < 0.0) + initial_t = 0.0; + if (initial_t > 1.0) + initial_t = 1.0; + double last_t = initial_t + 0.1; + if (last_t > 1.0) + last_t -= 0.2; + + t = curve.getTForTangent2(angle, initial_t, last_t); + + double tAngle = curve.getTangent(t); + if (Math.abs(tAngle - angle) < ANGLE_TOLERANCE) { + length += curve.getLength(ZERO, t); + break; } + length += curve.getLength(); + } return length; } - public double getSByNormalReverse(double angle) - { - return getSByTangentReverse(angle - Math.PI/2.0); + public double getSByNormalReverse(double angle) { + return getSByTangentReverse(angle - Math.PI / 2.0); } - - public double getSByNormalReverse(double angle, boolean useMinimumAngleOnSharpCorners) - { - return getSByTangentReverse(angle - Math.PI/2.0,useMinimumAngleOnSharpCorners); - } - + public double getSByNormalReverse(double angle, + boolean useMinimumAngleOnSharpCorners) { + return getSByTangentReverse(angle - Math.PI / 2.0, + useMinimumAngleOnSharpCorners); + } - public double getSByTangentReverse(double angle) - { - double s = getLengthByTangentReverse(angle)/getLength(); + public double getSByTangentReverse(double angle) { + double s = getLengthByTangentReverse(angle) / getLength(); s = MathUtils.clamp(s, ZERO, ONE); return s; } - - - public double getSByTangentReverse(double angle, boolean useMinimumAngleOnSharpCorners) - { - double s = getLengthByTangentReverse(angle, useMinimumAngleOnSharpCorners)/getLength(); + public double getSByTangentReverse(double angle, + boolean useMinimumAngleOnSharpCorners) { + double s = getLengthByTangentReverse(angle, + useMinimumAngleOnSharpCorners) / getLength(); s = MathUtils.clamp(s, ZERO, ONE); return s; } - - - public double getLengthByNormalReverse(double angle) - { - return getLengthByTangentReverse(angle - Math.PI/2.0)/getLength(); + public double getLengthByNormalReverse(double angle) { + return getLengthByTangentReverse(angle - Math.PI / 2.0) / getLength(); } - - public double getLengthByNormalReverse(double angle, boolean useMinimumAngleOnSharpCorners) - { - return getLengthByTangentReverse(angle - Math.PI/2.0, useMinimumAngleOnSharpCorners)/getLength(); + public double getLengthByNormalReverse(double angle, + boolean useMinimumAngleOnSharpCorners) { + return getLengthByTangentReverse(angle - Math.PI / 2.0, + useMinimumAngleOnSharpCorners) / getLength(); } - - public double getLengthByTangentReverse(double angle) - { + public double getLengthByTangentReverse(double angle) { return getLengthByTangentReverse(angle, true); } - - public double getLengthByTangentReverse(double targetAngle, boolean useMinimumAngleOnSharpCorners) - { -// System.out.printf("getLengthByTangentReverseScaled() targetAngle:%f\n", targetAngle/BezierBoard.DEG_TO_RAD); + public double getLengthByTangentReverse(double targetAngle, + boolean useMinimumAngleOnSharpCorners) { + // System.out.printf("getLengthByTangentReverseScaled() targetAngle:%f\n", + // targetAngle/BezierBoard.DEG_TO_RAD); double length = 0; double t = 0; @@ -718,279 +632,267 @@ public double getLengthByTangentReverse(double targetAngle, boolean useMinimumAn double minAngleError = 10000; double minErrorT = -1; int minAngleErrorSection = -1; - + boolean targetFound = false; - - int i; - for(i = mCurves.size()-1; i >= 0; i--) - { + + int i; + for (i = mCurves.size() - 1; i >= 0; i--) { BezierCurve curve = mCurves.get(i); - + double startAngle = curve.getTangent(ZERO); - double endAngle = curve.getTangent(ONE); -// System.out.printf("getLengthByTangentReverseScaled() StartAngle:%f EndAngle:%f TargetAngle:%f\n", startAngle/BezierBoard.DEG_TO_RAD +90.0, endAngle/BezierBoard.DEG_TO_RAD + 90.0, targetAngle/BezierBoard.DEG_TO_RAD +90.0); - if(startAngle >= targetAngle && endAngle <= targetAngle) - { -// System.out.printf("getLengthByTangentReverseScaled() Value should be in this span, StartAngle:%f EndAngle:%f TargetAngle:%f\n", startAngle/BezierBoard.DEG_TO_RAD +90.0, endAngle/BezierBoard.DEG_TO_RAD + 90.0, targetAngle/BezierBoard.DEG_TO_RAD +90.0); + double endAngle = curve.getTangent(ONE); + // System.out.printf("getLengthByTangentReverseScaled() StartAngle:%f EndAngle:%f TargetAngle:%f\n", + // startAngle/BezierBoard.DEG_TO_RAD +90.0, + // endAngle/BezierBoard.DEG_TO_RAD + 90.0, + // targetAngle/BezierBoard.DEG_TO_RAD +90.0); + if (startAngle >= targetAngle && endAngle <= targetAngle) { + // System.out.printf("getLengthByTangentReverseScaled() Value should be in this span, StartAngle:%f EndAngle:%f TargetAngle:%f\n", + // startAngle/BezierBoard.DEG_TO_RAD +90.0, + // endAngle/BezierBoard.DEG_TO_RAD + 90.0, + // targetAngle/BezierBoard.DEG_TO_RAD +90.0); } - // if(k1.mContinous == false) -// { - if(endAngle > targetAngle) - { -// System.out.printf("getLengthByTangentReverseScaled() i:%d, endAngle > targetAngle endAngle:%f targetAngle:%f\n",i, endAngle/BezierBoard.DEG_TO_RAD, targetAngle/BezierBoard.DEG_TO_RAD); - if(useMinimumAngleOnSharpCorners == true) - { - i += 1; -// System.out.printf("getLengthByTangentReverseScaled() Target found by endAngle(%f) > targetAngle(%f) with use minimun angle on shape corner\n", endAngle/BezierBoard.DEG_TO_RAD+90.0, targetAngle/BezierBoard.DEG_TO_RAD+90.0); - } - else - { - length = curve.getLength(ZERO, ONE-.05); -// System.out.printf("getLengthByTangentReverseScaled() Target found by endAngle(%f) > targetAngle(%f)\n", endAngle/BezierBoard.DEG_TO_RAD+90.0, targetAngle/BezierBoard.DEG_TO_RAD+90.0); - } - targetFound = true; - break; + // if(k1.mContinous == false) + // { + if (endAngle > targetAngle) { + // System.out.printf("getLengthByTangentReverseScaled() i:%d, endAngle > targetAngle endAngle:%f targetAngle:%f\n",i, + // endAngle/BezierBoard.DEG_TO_RAD, + // targetAngle/BezierBoard.DEG_TO_RAD); + if (useMinimumAngleOnSharpCorners == true) { + i += 1; + // System.out.printf("getLengthByTangentReverseScaled() Target found by endAngle(%f) > targetAngle(%f) with use minimun angle on shape corner\n", + // endAngle/BezierBoard.DEG_TO_RAD+90.0, + // targetAngle/BezierBoard.DEG_TO_RAD+90.0); + } else { + length = curve.getLength(ZERO, ONE - .05); + // System.out.printf("getLengthByTangentReverseScaled() Target found by endAngle(%f) > targetAngle(%f)\n", + // endAngle/BezierBoard.DEG_TO_RAD+90.0, + // targetAngle/BezierBoard.DEG_TO_RAD+90.0); } -// } - -// t = getTForTangent(angle,ZERO,ONE, ANGLE_SPLITS); - double initial_t = (targetAngle-startAngle)/(endAngle-startAngle); - if(initial_t < 0.0) + targetFound = true; + break; + } + // } + + // t = getTForTangent(angle,ZERO,ONE, ANGLE_SPLITS); + double initial_t = (targetAngle - startAngle) + / (endAngle - startAngle); + if (initial_t < 0.0) initial_t = 0.0; - if(initial_t > 1.0) + if (initial_t > 1.0) initial_t = 1.0; - double last_t = initial_t +0.1; - if(last_t > 1.0) + double last_t = initial_t + 0.1; + if (last_t > 1.0) last_t -= 0.2; - -// System.out.printf("getLengthByTangentReverseScaled() i:%d startAngle:%f end_angle:%f initial_t:%f last_t:%f\n",i, startAngle/BezierBoard.DEG_TO_RAD, endAngle/BezierBoard.DEG_TO_RAD, initial_t, last_t); - - t = curve.getTForTangent2(targetAngle,initial_t,last_t); + + // System.out.printf("getLengthByTangentReverseScaled() i:%d startAngle:%f end_angle:%f initial_t:%f last_t:%f\n",i, + // startAngle/BezierBoard.DEG_TO_RAD, + // endAngle/BezierBoard.DEG_TO_RAD, initial_t, last_t); + + t = curve.getTForTangent2(targetAngle, initial_t, last_t); double tAngle = curve.getTangent(t); - double angleError = Math.abs(tAngle-targetAngle); - if(minAngleError > angleError) - { + double angleError = Math.abs(tAngle - targetAngle); + if (minAngleError > angleError) { minAngleError = angleError; minErrorT = t; minAngleErrorSection = i; - } - if(angleError <= ANGLE_TOLERANCE) - { - length = curve.getLength(ZERO,t); + } + if (angleError <= ANGLE_TOLERANCE) { + length = curve.getLength(ZERO, t); targetFound = true; -// System.out.printf("getLengthByTangentReverseScaled() Target found by matching angle: %f, error: %f\n", tAngle/BezierBoard.DEG_TO_RAD+90.0, angleError/BezierBoard.DEG_TO_RAD); + // System.out.printf("getLengthByTangentReverseScaled() Target found by matching angle: %f, error: %f\n", + // tAngle/BezierBoard.DEG_TO_RAD+90.0, + // angleError/BezierBoard.DEG_TO_RAD); break; + } else if (startAngle >= targetAngle && endAngle <= targetAngle) { + // System.out.printf("getLengthByTangentReverseScaled() Value should be in this span but error is too large, StartAngle:%f EndAngle:%f Target: %f Returned: %f t:%f\n", + // startAngle/BezierBoard.DEG_TO_RAD +90.0, + // endAngle/BezierBoard.DEG_TO_RAD +90.0, + // targetAngle/BezierBoard.DEG_TO_RAD +90.0, + // tAngle/BezierBoard.DEG_TO_RAD+90.0, t); + t = curve.getTForTangent2(targetAngle, initial_t, last_t); } - else if(startAngle >= targetAngle && endAngle <= targetAngle) - { -// System.out.printf("getLengthByTangentReverseScaled() Value should be in this span but error is too large, StartAngle:%f EndAngle:%f Target: %f Returned: %f t:%f\n", startAngle/BezierBoard.DEG_TO_RAD +90.0, endAngle/BezierBoard.DEG_TO_RAD +90.0, targetAngle/BezierBoard.DEG_TO_RAD +90.0, tAngle/BezierBoard.DEG_TO_RAD+90.0, t); - t = curve.getTForTangent2(targetAngle,initial_t,last_t); - } - + } - if(targetFound == false && minAngleErrorSection != -1) - { - //Use the nearest target + if (targetFound == false && minAngleErrorSection != -1) { + // Use the nearest target BezierCurve curve = mCurves.get(minAngleErrorSection); - + length = curve.getLength(ZERO, minErrorT); } - length += getLengthByControlPointIndex(0,i); - - //DEBUG sanity check + length += getLengthByControlPointIndex(0, i); + + // DEBUG sanity check double tangent = getTangentByCurveLength(length); - if(Math.abs(tangent - targetAngle) > 0.5 && targetFound) - { -// System.out.printf("getLengthByTangentReverseScaled() getTangentByCurveLength() returned different angle. Target: %f Returned: %f length:%f curveLength:%f\n", targetAngle/BezierBoard.DEG_TO_RAD +90.0, tangent/BezierBoard.DEG_TO_RAD + 90.0, length, lengthScaled(scaleX, scaleY)); + if (Math.abs(tangent - targetAngle) > 0.5 && targetFound) { + // System.out.printf("getLengthByTangentReverseScaled() getTangentByCurveLength() returned different angle. Target: %f Returned: %f length:%f curveLength:%f\n", + // targetAngle/BezierBoard.DEG_TO_RAD +90.0, + // tangent/BezierBoard.DEG_TO_RAD + 90.0, length, + // lengthScaled(scaleX, scaleY)); targetFound = !targetFound; } - + return length; } - - public double getLengthByControlPointIndex(int startIndex, int endIndex) - { + public double getLengthByControlPointIndex(int startIndex, int endIndex) { double length = 0; - - for(int i = startIndex; i < endIndex; i++) - { + + for (int i = startIndex; i < endIndex; i++) { BezierCurve curve = mCurves.get(i); - + length += curve.getLength(); } return length; } - - public double getNormalAngle(double pos) - { - return getTangentAt(pos) + Math.PI/2.0; + public double getNormalAngle(double pos) { + return getTangentAt(pos) - Math.PI / 2.0; } - public Point2D.Double getNormalAt(double pos) - { + public Point2D.Double getNormalAt(double pos) { double angle = getNormalAngle(pos); - + double x = Math.sin(angle); double y = Math.cos(angle); - - return new Point2D.Double(x,y); + + return new Point2D.Double(x, y); } - - public double getNormalByS(double s) - { - return getNormalByCurveLength(s*getLength()); + + public double getNormalByS(double s) { + return getNormalByCurveLength(s * getLength()); } - - public double getNormalByCurveLength(double curveLength) - { - return getTangentByCurveLength(curveLength) + Math.PI/2.0; + + public double getNormalByCurveLength(double curveLength) { + return getTangentByCurveLength(curveLength) + Math.PI / 2.0; } - public double getCurvatureByS(double s) - { - return getCurvatureByCurveLength(s*getLength()); + public double getCurvatureByS(double s) { + return getCurvatureByCurveLength(s * getLength()); } - public double getCurvatureByCurveLength(double curveLength) - { + public double getCurvatureByCurveLength(double curveLength) { double left = curveLength; double t = -1; - - if(curveLength <= 0.0) - { + + if (curveLength <= 0.0) { return 0.0; } - - if(curveLength >= getLength()) - { + + if (curveLength >= getLength()) { return 0.0; } - + BezierCurve curve = null; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { curve = mCurves.get(i); - + double currentLength = curve.getLength(); - - if(left < currentLength) - { + + if (left < currentLength) { break; } - + left -= currentLength; } - + t = curve.getTForLength(left); double curvature = curve.getCurvature(t); - + return curvature; } - - public double getTangentAt(double pos) - { + public double getTangentAt(double pos) { int index = findMatchingBezierSegment(pos); - if(index == -1) - { + if (index == -1) { return 0.0; } - - BezierCurve curve = mCurves.get(index); + + BezierCurve curve = mCurves.get(index); return curve.getTangentAt(pos); } - - public double getTangentByS(double s) - { - return getTangentByCurveLength(s*getLength()); + public double getTangentByS(double s) { + return getTangentByCurveLength(s * getLength()); } - - public double getTangentByCurveLength(double curveLength) - { + + public double getTangentByCurveLength(double curveLength) { double l = curveLength; double t = -1; - + BezierCurve curve = null; - - for(int i = 0; i < mCurves.size(); i++) - { + + for (int i = 0; i < mCurves.size(); i++) { curve = mCurves.get(i); double currentLength = curve.getLength(); - if(l < currentLength) - { + if (l < currentLength) { t = curve.getTForLength(l); break; } - + l -= currentLength; } - + return curve.getTangent(t); } - - public double getIntegral(double a, double b, int splits) //Numerical integration using composite simpsons rule + public double getIntegral(double a, double b, int splits) // Numerical + // integration + // using + // composite + // simpsons rule { - MathUtils.Function deckFunc = new MathUtils.Function(){public double f(double x){return getValueAt(x);}}; - - double result = MathUtils.Integral.getIntegral(deckFunc, a, b, splits); + MathUtils.Function deckFunc = new MathUtils.Function() { + public double f(double x) { + return getValueAt(x); + } + }; + + double result = MathUtils.Integral.getIntegral(deckFunc, a, b, splits); return result; } - - public double getLength() - { + public double getLength() { double length = 0; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); length += curve.getLength(); } - + return length; } - - public void scale(double verticalScale, double horizontalScale) - { - for(int i = 0; i < mCurves.size(); i++) - { - if(i == 0) - { + public void scale(double verticalScale, double horizontalScale) { + for (int i = 0; i < mCurves.size(); i++) { + if (i == 0) { BezierKnot startKnot = mCurves.get(i).getStartKnot(); - startKnot.scale(horizontalScale, verticalScale); + startKnot.scale(horizontalScale, verticalScale); } BezierKnot endKnot = mCurves.get(i).getEndKnot(); - if(endKnot != null) - { + if (endKnot != null) { endKnot.scale(horizontalScale, verticalScale); } } } - public int getSplitControlPoint(Point2D.Double nearPoint, BezierKnot returned) - { + public int getSplitControlPoint(Point2D.Double nearPoint, + BezierKnot returned) { double nearestDist = 100000000; int index = 0; double t = 0; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); double tc = curve.getClosestT(nearPoint); @@ -999,8 +901,7 @@ public int getSplitControlPoint(Point2D.Double nearPoint, BezierKnot returned) double y = curve.getYValue(tc); double dist = VecMath.getVecLength(x, y, nearPoint.x, nearPoint.y); - if(nearestDist > dist) - { + if (nearestDist > dist) { nearestDist = dist; index = i; t = tc; @@ -1011,18 +912,16 @@ public int getSplitControlPoint(Point2D.Double nearPoint, BezierKnot returned) BezierCurve curve = mCurves.get(index); returned.set(curve.getSplitControlPoint(t)); - return index+1; //Insertion point + return index + 1; // Insertion point } - public double getDistanceToPoint(Point2D.Double point) - { + public double getDistanceToPoint(Point2D.Double point) { double nearestDist = 100000000; -// int index = 0; -// double t = 0; + // int index = 0; + // double t = 0; - for(int i = 0; i < mCurves.size(); i++) - { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); double tc = curve.getClosestT(point); @@ -1031,105 +930,88 @@ public double getDistanceToPoint(Point2D.Double point) double y = curve.getYValue(tc); double dist = VecMath.getVecLength(x, y, point.x, point.y); - if(nearestDist > dist) - { + if (nearestDist > dist) { nearestDist = dist; -// index = i; -// t = tc; + // index = i; + // t = tc; } } - return nearestDist; //Insertion point + return nearestDist; // Insertion point } - int findMatchingBezierSegment(double pos) - { + int findMatchingBezierSegment(double pos) { int result = findMatchingBezierSegmentSimple(pos); - if(result < 0) - { + if (result < 0) { result = findMatchingBezierSegmentMinMax(pos); } - + return result; } - int findMatchingBezierSegmentSimple(double pos) - { - for(int i = 0; i < mCurves.size(); i++) - { + int findMatchingBezierSegmentSimple(double pos) { + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); double lx = curve.getStartKnot().getEndPoint().x; - double ux = curve.getEndKnot().getEndPoint().x; - if(lx <= pos && ux >= pos) - { + double ux = curve.getEndKnot().getEndPoint().x; + if (lx <= pos && ux >= pos) { return i; } } return -1; } - int findMatchingBezierSegmentMinMax(double pos) - { - //Didn't find any matching segment + int findMatchingBezierSegmentMinMax(double pos) { + // Didn't find any matching segment - //Iterate through all segments and see if we're within max/min x value - for(int i = 0; i < mCurves.size(); i++) - { + // Iterate through all segments and see if we're within max/min x value + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); double lx = curve.getMinMaxNumerical(X, MIN); double ux = curve.getMinMaxNumerical(X, MAX); - if((lx <= pos && ux >= pos) || (ux <= pos && lx >= pos)) - { + if ((lx <= pos && ux >= pos) || (ux <= pos && lx >= pos)) { return i; } } return -1; } - - int findMatchingBezierSegmentReverse(double pos) - { + + int findMatchingBezierSegmentReverse(double pos) { int result = findMatchingBezierSegmentSimpleReverse(pos); - if(result < 0) - { + if (result < 0) { result = findMatchingBezierSegmentMinMaxReverse(pos); } - return result; + return result; } - - int findMatchingBezierSegmentSimpleReverse(double pos) - { + + int findMatchingBezierSegmentSimpleReverse(double pos) { int index = -1; - for(int i = mCurves.size()-1; i >= 0 ; i--) - { + for (int i = mCurves.size() - 1; i >= 0; i--) { BezierCurve curve = mCurves.get(i); double lx = curve.getStartKnot().getEndPoint().x; - double ux = curve.getEndKnot().getEndPoint().x; - if((lx <= pos && ux >= pos ) || (ux <= pos && lx >= pos )) - { + double ux = curve.getEndKnot().getEndPoint().x; + if ((lx <= pos && ux >= pos) || (ux <= pos && lx >= pos)) { return i; } } return -1; } - int findMatchingBezierSegmentMinMaxReverse(double pos) - { - //Iterate through all segments and see if we're within max/min x value - for(int i = mCurves.size()-1; i >= 0 ; i--) - { + int findMatchingBezierSegmentMinMaxReverse(double pos) { + // Iterate through all segments and see if we're within max/min x value + for (int i = mCurves.size() - 1; i >= 0; i--) { BezierCurve curve = mCurves.get(i); double lx = curve.getMinMaxNumerical(X, MIN); double ux = curve.getMinMaxNumerical(X, MAX); - if(lx <= pos && ux >= pos) - { + if (lx <= pos && ux >= pos) { return i; } @@ -1137,105 +1019,143 @@ int findMatchingBezierSegmentMinMaxReverse(double pos) return -1; } - public BezierKnot findBestMatch(Point2D.Double brdPos) - { + public BezierKnot findBestMatch(Point2D.Double brdPos) { BezierKnot bestMatch = null; - mBestMatchPointIndex = -1; + int bestMatchPointIndex = -1; double bestMatchDistance = Double.MAX_VALUE; - - for(int i = 0; i < mCurves.size(); i++) - { + + for (int i = 0; i < mCurves.size(); i++) { BezierCurve curve = mCurves.get(i); - + BezierKnot startKnot = curve.getStartKnot(); BezierKnot endKnot = curve.getEndKnot(); - - if(endKnot == null) //Incomplete curve, must be at end so break out + + if (endKnot == null) // Incomplete curve, must be at end so break + // out break; - //Check tangent to next for startknot - double distance = (double)brdPos.distance(startKnot.getTangentToNext()); - if(distance < bestMatchDistance) - { + // Check tangent to next for startknot + double distance = (double) brdPos.distance(startKnot + .getTangentToNext()); + if (distance < bestMatchDistance) { bestMatch = startKnot; - mBestMatchPointIndex = BezierKnot.NEXT_TANGENT; + bestMatchPointIndex = BezierKnot.NEXT_TANGENT; bestMatchDistance = distance; } - - //Check tangent to prev for endknot - distance = (double)brdPos.distance(endKnot.getTangentToPrev()); - if(distance < bestMatchDistance) - { + + // Check tangent to prev for endknot + distance = (double) brdPos.distance(endKnot.getTangentToPrev()); + if (distance < bestMatchDistance) { bestMatch = endKnot; - mBestMatchPointIndex = BezierKnot.PREVIOUS_TANGENT; + bestMatchPointIndex = BezierKnot.PREVIOUS_TANGENT; bestMatchDistance = distance; } - - //Check endpoint for startknot - distance = (double)brdPos.distance(startKnot.getEndPoint()); - if(distance < bestMatchDistance) - { + + // Check endpoint for startknot + distance = (double) brdPos.distance(startKnot.getEndPoint()); + if (distance < bestMatchDistance) { bestMatch = startKnot; - mBestMatchPointIndex = BezierKnot.END_POINT; + bestMatchPointIndex = BezierKnot.END_POINT; bestMatchDistance = distance; - } - - //Check tangent to prev for endknot - distance = (double)brdPos.distance(endKnot.getEndPoint()); - if(distance < bestMatchDistance) - { + } + + // Check tangent to prev for endknot + distance = (double) brdPos.distance(endKnot.getEndPoint()); + if (distance < bestMatchDistance) { bestMatch = endKnot; - mBestMatchPointIndex = BezierKnot.END_POINT; + bestMatchPointIndex = BezierKnot.END_POINT; bestMatchDistance = distance; } - + } return bestMatch; } - public int getBestMatchWhich() - { - return mBestMatchPointIndex; - } + public int getBestMatchWhich(Point2D.Double brdPos) { + BezierKnot bestMatch = null; + int bestMatchPointIndex = -1; + double bestMatchDistance = Double.MAX_VALUE; + + for (int i = 0; i < mCurves.size(); i++) { + BezierCurve curve = mCurves.get(i); + + BezierKnot startKnot = curve.getStartKnot(); + BezierKnot endKnot = curve.getEndKnot(); + + if (endKnot == null) // Incomplete curve, must be at end so break + // out + break; + + // Check tangent to next for startknot + double distance = (double) brdPos.distance(startKnot + .getTangentToNext()); + if (distance < bestMatchDistance) { + bestMatch = startKnot; + bestMatchPointIndex = BezierKnot.NEXT_TANGENT; + bestMatchDistance = distance; + } + + // Check tangent to prev for endknot + distance = (double) brdPos.distance(endKnot.getTangentToPrev()); + if (distance < bestMatchDistance) { + bestMatch = endKnot; + bestMatchPointIndex = BezierKnot.PREVIOUS_TANGENT; + bestMatchDistance = distance; + } + + // Check endpoint for startknot + distance = (double) brdPos.distance(startKnot.getEndPoint()); + if (distance < bestMatchDistance) { + bestMatch = startKnot; + bestMatchPointIndex = BezierKnot.END_POINT; + bestMatchDistance = distance; + } + // Check tangent to prev for endknot + distance = (double) brdPos.distance(endKnot.getEndPoint()); + if (distance < bestMatchDistance) { + bestMatch = endKnot; + bestMatchPointIndex = BezierKnot.END_POINT; + bestMatchDistance = distance; + } + } - public Object clone(){ + return bestMatchPointIndex; + } + + public Object clone() { BezierSpline spline = null; try { - spline = (BezierSpline)super.clone(); - } catch(CloneNotSupportedException e) { - System.out.println("Exception in BezierSpline::clone(): " + e.toString()); + spline = (BezierSpline) super.clone(); + } catch (CloneNotSupportedException e) { + System.out.println("Exception in BezierSpline::clone(): " + + e.toString()); throw new Error("CloneNotSupportedException in BrdCommand"); } spline.mCurves = new ArrayList(); - for(int i = 0; i < this.getNrOfControlPoints(); i++) - { - spline.append((BezierKnot)this.getControlPoint(i).clone()); + for (int i = 0; i < this.getNrOfControlPoints(); i++) { + spline.append((BezierKnot) this.getControlPoint(i).clone()); } return spline; } - public String toString() - { + public String toString() { String string = new String(); - for(int i = 0; i < this.getNrOfControlPoints(); i++) - { - if(string.length() > 0) + for (int i = 0; i < this.getNrOfControlPoints(); i++) { + if (string.length() > 0) string.concat(";"); string.concat(this.getControlPoint(i).toString()); } - + return string; } - public void fromString(String string) - { + public void fromString(String string) { String[] values = string.split(";"); - for(int i = 0; i < values.length; i++) - { + for (int i = 0; i < values.length; i++) { BezierKnot point = new BezierKnot(); point.fromString(values[i]); this.append(point); @@ -1243,4 +1163,3 @@ public void fromString(String string) } } - diff --git a/cadcore/MathUtils.java b/cadcore/MathUtils.java index b53b31e..6598431 100644 --- a/cadcore/MathUtils.java +++ b/cadcore/MathUtils.java @@ -64,7 +64,7 @@ public static double clamp(double value, double minLimit, double maxLimit) public static class RootFinder { - static public double ROOTFINER_VALUE_TOLERANCE = 0.001; + static public double ROOTFINER_VALUE_TOLERANCE = 0.005; static public double getRoot(Function function, double targetValue) { @@ -76,15 +76,31 @@ static public double getRoot(Function function, double targetValue, double minLi double x = SecantRootFinder.getRoot(function, targetValue, minLimit, maxLimit); //Sanity check - if(Math.abs(function.f(x)-targetValue) > ROOTFINER_VALUE_TOLERANCE) + double sec_actualValue = function.f(x); + if(Math.abs(sec_actualValue-targetValue) > ROOTFINER_VALUE_TOLERANCE) { // System.out.printf("getRoot(): SecantRootFinder failed, x:%f, value:%f, targetValue:%f, error: %f\n", x, function.f(x), targetValue, function.f(x)-targetValue); - x = BisectRootFinder.getRoot(function, targetValue, minLimit, maxLimit); + double bis_x = BisectRootFinder.getRoot(function, targetValue, minLimit, maxLimit); - if(Math.abs(function.f(x)-targetValue) > ROOTFINER_VALUE_TOLERANCE) + double bis_actualValue = function.f(x); + if(Math.abs(bis_actualValue-targetValue) > ROOTFINER_VALUE_TOLERANCE) + { +// System.out.printf("getRoot(): BisectRootFinder failed, x:%f, value:%f, targetValue:%f, error: %f\n", x, function.f(x), targetValue, function.f(x)-targetValue); + + if(Math.abs(bis_actualValue-targetValue) < Math.abs(sec_actualValue-targetValue) ) //Test which is closest and return best result + { + x = bis_x; +// System.out.printf("getRoot(): Best result with bisect, x:%f, value:%f, targetValue:%f, error: %f\n", x, bis_actualValue, targetValue, bis_actualValue-targetValue); + } + else + { +// System.out.printf("getRoot(): Best result with secant, x:%f, value:%f, targetValue:%f, error: %f\n", x, sec_actualValue, targetValue, sec_actualValue-targetValue); + } + } + else { -// System.out.printf("getRoot(): BisectRootFinder failed, x:%f, value:%f, targetValue:%f, error: %f\n", x, function.f(x), targetValue, function.f(x)-targetValue); + x = bis_x; } } @@ -359,4 +375,54 @@ static public double getCurveLength(FunctionXY function, double min, double max) return getCurveLength(function, min, max, 10); } } + + static public double[][] cross_product(double[][] m1, double[][] m2) + { + double[][] m=new double[3][3]; + + m[0][0]=m1[0][0]*m2[0][0]+m1[1][0]*m2[0][1]+m1[2][0]*m2[0][2]; + m[1][0]=m1[0][0]*m2[1][0]+m1[1][0]*m2[1][1]+m1[2][0]*m2[1][2]; + m[2][0]=m1[0][0]*m2[2][0]+m1[1][0]*m2[2][1]+m1[2][0]*m2[2][2]; + + m[0][1]=m1[0][1]*m2[0][0]+m1[1][1]*m2[0][1]+m1[2][1]*m2[0][2]; + m[1][1]=m1[0][1]*m2[1][0]+m1[1][1]*m2[1][1]+m1[2][1]*m2[1][2]; + m[2][1]=m1[0][1]*m2[2][0]+m1[1][1]*m2[2][1]+m1[2][1]*m2[2][2]; + + m[0][2]=m1[0][2]*m2[0][0]+m1[1][2]*m2[0][1]+m1[2][2]*m2[0][2]; + m[1][2]=m1[0][2]*m2[1][0]+m1[1][2]*m2[1][1]+m1[2][2]*m2[1][2]; + m[2][2]=m1[0][2]*m2[2][0]+m1[1][2]*m2[2][1]+m1[2][2]*m2[2][2]; + + return m; + } + + static public double[][] invert(double[][] a) { + /* + * + * | a11 a12 a13 |-1 | a33a22-a32a23 -(a33a12-a32a13) a23a12-a22a13 | | + * a21 a22 a23 | = 1/DET(A) * | -(a33a21-a31a23) a33a11-a31a13 + * -(a23a11-a21a13) | | a31 a32 a33 | | a32a21-a31a22 -(a32a11-a31a12) + * a22a11-a21a12 | + * + * DET(A) = a11(a33a22-a32a23)-a21(a33a12-a32a13)+a31(a23a12-a22a13) + */ + + double det = a[0][0] * (a[2][2] * a[1][1] - a[2][1] * a[1][2]) + - a[1][0] * (a[2][2] * a[0][1] - a[2][1] * a[0][2]) + a[2][0] + * (a[1][2] * a[0][1] - a[1][1] * a[0][2]); + + double[][] b = { + { (a[2][2] * a[1][1] - a[2][1] * a[1][2]) / det, + -(a[2][2] * a[0][1] - a[2][1] * a[0][2]) / det, + (a[1][2] * a[0][1] - a[1][1] * a[0][2]) / det }, + { -(a[2][2] * a[1][0] - a[2][0] * a[1][2]) / det, + (a[2][2] * a[0][0] - a[2][0] * a[0][2]) / det, + -(a[1][2] * a[0][0] - a[1][0] * a[0][2]) / det }, + { (a[2][1] * a[1][0] - a[2][0] * a[1][1]) / det, + -(a[2][1] * a[0][0] - a[2][0] * a[0][1]) / det, + (a[1][1] * a[0][0] - a[1][0] * a[0][1]) / det } }; + + return b; + + } + } diff --git a/cadcore/NurbsSurface.java b/cadcore/NurbsSurface.java index 53b4ae5..9371f72 100644 --- a/cadcore/NurbsSurface.java +++ b/cadcore/NurbsSurface.java @@ -956,7 +956,6 @@ public void transform(double[][] m, double[] t) double tx,ty,tz; //transform control points - System.out.println("Transforming surface"); for(i=0;iv[points_per_segment-1]-step3) t=v[points_per_segment-1]-step3; - //---end fix + //---end fix double t1=t-step2/2; double t2=t+step2/2; diff --git a/cadcore/UnitUtils.java b/cadcore/UnitUtils.java index 9dcce6b..a4791e1 100644 --- a/cadcore/UnitUtils.java +++ b/cadcore/UnitUtils.java @@ -1,7 +1,10 @@ package cadcore; +import com.sun.j3d.utils.shader.StringIO; + import boardcad.i18n.LanguageResource; + public class UnitUtils { static public final int CENTIMETERS = 0; @@ -60,7 +63,7 @@ public static double convertInputStringToInternalLengthUnit(String string) double value = 0; try{ - string = string.replace(",", "."); + string = string.replace(',', '.'); if(string.contains("\'") || string.contains("\"") ) { if(string.contains("\'")) @@ -436,17 +439,8 @@ public static String convertLengthToUnit(double value, boolean useLargeUnits, in format = format.concat("%1$d'"); } - if(inches >= 0.01) - { - format = format.concat("%2$." + mNrOfDecimals + "f"); - } - - if(format.length() == 0 || format.equalsIgnoreCase("-")) - { - format = format.concat("0"); - } - format = format.concat("\""); + format = format.concat("%2$." + mNrOfDecimals + "f\""); return String.format(format, feet, inches); } diff --git a/cadcore/VecMath.java b/cadcore/VecMath.java index 45f4103..780146d 100644 --- a/cadcore/VecMath.java +++ b/cadcore/VecMath.java @@ -38,6 +38,12 @@ public static void scaleVector(Point2D.Double p0, double v) { p0.setLocation(p0.x*v,p0.y*v); } + + public static void normalizeVector(Point2D.Double p0) + { + + scaleVector(p0, 1.0/getVecLength(p0)); + } static double getVecDot(Point2D.Double p0, Point2D.Double p1) { diff --git a/gluegen-rt-natives-linux-amd64.jar b/gluegen-rt-natives-linux-amd64.jar index 15c8a2c6bbe2ce843a84aa2425fc963bb7af754f..a2466f418a12a7f57b52b0a7dc8e5bd2304ec33d 100644 GIT binary patch literal 4149 zcmb7{cTf}Fvd2RUT@>k{NJ|8yNv|NI+_~BCgS>A(!qc-HVF+4=L(ec!Ku zFgK;JCyyWG%qU&;B5IV|nkH^}8$G^-uem;5TFaf=DMF8ENj|AqfArTC=wKYir2F-xuJo{q z`aZ?W%qKtTXus!{p*ZDNz8SY>7K4|sZn?r5JQI&!cYA3C8ijC{5PjgzxjQ(?7 zKQ7lr;drww{&GzjmnL>;FWq6bt{xI@wmwd92OnFQ#B+C7S9doF7biDge+gSxdpQ{i z6R4K>a~E50Z)Lpugc=YC6ab2g108{IIPeM_XrKv{%j|3JV^-D#Ix_Z4Y698T2=7g9 z0@;9Onm~LR;jnX>oY>r%+*duC-04GHCQMHgRESx9&BJuW&S@6u>%^;Cewx70vd(IC zVpeCfPY|h~Y;>6!_y7pX6}#0=^Y-3Sh#+?&m}XU4^6N`in9VeeSvvsmKZQk=YhWE2 z0DxQ&03diN>~BThe+v=&TZoI39n8ho0p{Q)=H(;q?T-G7(THd4MsSyW1i&mMF`?r_ zlEOfbcQrm)FNzlrDcjbsIR^W$V7i9PW&!c8Q~I>(wNX1?ddaA$a)jt^3+9r@i| z=p*4nfjLUBmRlVK9ffgpm~c4e`qEhiBn~dwF~VU-+ERrj_V6-vfy zLukS-Sm+b+o_7D4CeEm<8E<$Pbh}#!x&Jlb_v}(`^OnsJ(hd z?wh{4U8-k(XOzi4sku)E*K)ctQK_BZG-=L+PgqC^_xN4JGJnQp8IA!yd1{9ORtR}y z>w0Y~1T5xnx6Nhx&9o<2sckgE592opK|+K0z%1fXi7C>pZOa2UKV!l6>|&EUJU@GE z;<%Nx*e$SnJ}jZl|KgjvYudxRI>82a+{4BG6peRy zt@N6$msLLO2u^*t+r`#pC>Y-gHc(k}O_>lyW39Q~wI!tob)^wYMoD+PdU;Y>$xpp$ zS71rM8>`OJgfh>bJ^8uW7DZT7xY!W}k#5AdF>bZQm k_OlDd=aRsR5Dh0#u*BJ9 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 literal 5442 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 literal 5474 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 mzy0N(?ELnZe^pT>t>*_L08Lg@FJ1<^KVWn*JgH diff --git a/gluegen-rt-natives-macosx-universal.jar b/gluegen-rt-natives-macosx-universal.jar index 0fb2734e0c5fd93a0c6d00c95fc4fa78d6e91661..15df5e8200e9eaa9e48217f0131ce31e85dad4c4 100644 GIT binary patch literal 5076 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 diff --git a/gluegen-rt-natives-windows-amd64.jar b/gluegen-rt-natives-windows-amd64.jar index 5f97e4749c400ef777a78f994c510f1de3b36ddb..517fb84c747408545f3c34ee7d93657f0351d58d 100644 GIT binary patch literal 8159 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 literal 9321 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 diff --git a/gluegen-rt.jar b/gluegen-rt.jar index 472b0b3c6d3ef6f55e0bbd2753901f37c9b21fd5..742fdb26b6cd3299d57e4e7f0dba69c40799fd62 100644 GIT binary patch delta 318118 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