From cf27872d1d54520546326af3a294962c34d12496 Mon Sep 17 00:00:00 2001 From: davila <> Date: Thu, 18 Mar 2010 11:21:16 +0000 Subject: [PATCH] hi .. --- CMakeLists.txt | 137 ++ LICENSE.txt | 514 +++++++ README.txt | 2 + appli/CMakeLists.txt | 3 + appli/bbEditor/CMakeLists.txt | 30 + appli/bbEditor/bbEditor.cxx | 76 + appli/template_appli/CMakeLists.txt | 60 + cmake/UserBuildAllOption.cmake | 30 + cmake/UserBuildDoxygenDoc.cmake | 74 + cmake/UserBuildHtmlDocFromLatex.cmake | 33 + cmake/UserBuildLatexDoc.cmake | 66 + cmake/UserConfig.cmake | 22 + cmake/UserDefineOptions.cmake | 39 + cmake/UserMacros.cmake | 37 + cmake/UserRootCMakeLists.cmake | 6 + cmake/UserSetDeducedPaths.cmake | 62 + doc/CMakeLists.txt | 78 + doc/README.txt | 5 + doc/README_HowToUpload.txt | 5 + doc/UserDocumentation/CMakeLists.txt | 7 + doc/UserDocumentation/UserDocumentation.tex | 70 + doc/UserDoxygen/CMakeLists.txt | 30 + doc/UserDoxygen/CodingStyle.html | 360 +++++ doc/UserDoxygen/DoxyMainPage.txt.in | 19 + doc/UserDoxygen/Doxyfile.txt.in | 1358 +++++++++++++++++ doc/config.tex | 169 ++ doc/help_contents.html.in | 14 + doc/index-no-frame.html.in | 14 + doc/index.html.in | 15 + doc/template_WebSite/CMakeLists.txt | 25 + doc/template_WebSite/README.txt | 4 + doc/template_WebSite/home.html | 39 + doc/template_WebSite/install.html | 869 +++++++++++ doc/template_WebSite/menu.html | 30 + install/CMakeLists.txt | 112 ++ lib/CMakeLists.txt | 4 + lib/EditorGraphicBBS/CMakeLists.txt | 3 + .../bbsKernelEditorGraphic/CMakeLists.txt | 1 + .../bbsVtkGUIEditorGraphic/CMakeLists.txt | 1 + .../bbsWxGUIEditorGraphic/CMakeLists.txt | 13 + .../bbtkwxGUIEditorGraphicBBS.cxx | 113 ++ .../bbtkwxGUIEditorGraphicBBS.h | 72 + .../bbtkwxGUIEditorGraphicContainer.cxx | 59 + .../bbtkwxGUIEditorGraphicContainer.h | 67 + lib/template_lib/CMakeLists.txt | 86 ++ lib/template_lib/creaSystem.h | 26 + lib/template_lib/creaSystem.h.in | 26 + 47 files changed, 4885 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 LICENSE.txt create mode 100644 README.txt create mode 100644 appli/CMakeLists.txt create mode 100644 appli/bbEditor/CMakeLists.txt create mode 100644 appli/bbEditor/bbEditor.cxx create mode 100644 appli/template_appli/CMakeLists.txt create mode 100644 cmake/UserBuildAllOption.cmake create mode 100644 cmake/UserBuildDoxygenDoc.cmake create mode 100644 cmake/UserBuildHtmlDocFromLatex.cmake create mode 100644 cmake/UserBuildLatexDoc.cmake create mode 100644 cmake/UserConfig.cmake create mode 100644 cmake/UserDefineOptions.cmake create mode 100644 cmake/UserMacros.cmake create mode 100644 cmake/UserRootCMakeLists.cmake create mode 100644 cmake/UserSetDeducedPaths.cmake create mode 100644 doc/CMakeLists.txt create mode 100644 doc/README.txt create mode 100644 doc/README_HowToUpload.txt create mode 100644 doc/UserDocumentation/CMakeLists.txt create mode 100644 doc/UserDocumentation/UserDocumentation.tex create mode 100644 doc/UserDoxygen/CMakeLists.txt create mode 100644 doc/UserDoxygen/CodingStyle.html create mode 100644 doc/UserDoxygen/DoxyMainPage.txt.in create mode 100644 doc/UserDoxygen/Doxyfile.txt.in create mode 100644 doc/config.tex create mode 100644 doc/help_contents.html.in create mode 100644 doc/index-no-frame.html.in create mode 100644 doc/index.html.in create mode 100644 doc/template_WebSite/CMakeLists.txt create mode 100644 doc/template_WebSite/README.txt create mode 100644 doc/template_WebSite/home.html create mode 100644 doc/template_WebSite/install.html create mode 100644 doc/template_WebSite/menu.html create mode 100644 install/CMakeLists.txt create mode 100644 lib/CMakeLists.txt create mode 100644 lib/EditorGraphicBBS/CMakeLists.txt create mode 100644 lib/EditorGraphicBBS/bbsKernelEditorGraphic/CMakeLists.txt create mode 100644 lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/CMakeLists.txt create mode 100644 lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/CMakeLists.txt create mode 100644 lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx create mode 100644 lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h create mode 100644 lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicContainer.cxx create mode 100644 lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicContainer.h create mode 100644 lib/template_lib/CMakeLists.txt create mode 100644 lib/template_lib/creaSystem.h create mode 100644 lib/template_lib/creaSystem.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..2f979a9 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,137 @@ +# --------------------------------- +# +# Unless you are an experimented cmake user, +# have a look at : +# http://www.creatis.insa-lyon.fr/creatools/GettingStarted_creaTools +# before starting. +# +# --------------------------------- + +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +################################### +PROJECT( bbtkGEditor ) +################################### + +#================================== +# The project version +SET(PROJECT_MAJOR_VERSION 1) +SET(PROJECT_MINOR_VERSION 0) +SET(PROJECT_BUILD_VERSION 0) + +SET(PROJECT_VERSION "${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_BUILD_VERSION}") +SET(PROJECT_VERSION_DATE "30/09/2009") +#ADD_DEFINITIONS( -DPROJECT_VERSION=${PROJECT_VERSION} ) +#ADD_DEFINITIONS( -DPROJECT_VERSION_DATE=${PROJECT_VERSION_DATE} ) + +#================================== + +#================================== +# Find crea (mandatory, to use macros) +SET(CREA_VERBOSE_CMAKE TRUE) +FIND_PACKAGE(crea REQUIRED) +IF (crea_FOUND) + INCLUDE(${crea_USE_FILE}) +ENDIF(crea_FOUND) +#================================== + +#================================== +FIND_PACKAGE(creaMaracasVisu REQUIRED) +IF (creaMaracasVisu_FOUND) + INCLUDE(${creaMaracasVisu_USE_FILE}) +ENDIF(creaMaracasVisu_FOUND) +#================================== + + +#================================== +# Find and use the Black Box Toolkit +# Search BBTK +FIND_PACKAGE(BBTK REQUIRED) +MARK_AS_ADVANCED(BBTK_DIR) +# If bbtk found +IF(BBTK_FOUND) + INCLUDE(${BBTK_USE_FILE}) +ENDIF(BBTK_FOUND) +#================================== + + + + +#================================== +# Do not allow to build inside the source tree +CREA_PREVENT_IN_SOURCE_BUILD() +#================================== + +#================================== +# Libraries/tools used + +# Note : Set USE_CREA to ON +# if you need to LINK against crea +# (and not only use its macros) +SET(USE_CREA OFF) + +SET(USE_GDCM OFF) +SET(USE_GDCM_VTK OFF) +SET(USE_GDCM2 OFF) +SET(USE_WXWIDGETS ON) +SET(USE_KWWIDGETS OFF) +SET(USE_VTK ON) +SET(USE_ITK OFF) +SET(USE_BOOST OFF) + +# Note : Set USE_DOXYGEN to ON +# if you think you will ask, some day, +# for Doxygen generation +#SET(USE_DOXYGEN OFF) + +# Note : Set USE_LATEX to ON, USE_TTH to ON +# if you think you will ask, some day, +# for doc generation using your own latex documents +#SET(USE_LATEX OFF) +#SET(USE_TTH OFF) + +CREA_FIND_AND_USE_LIBRARIES() +#================================== + +#================================== +# Where to put executables and libs +SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}) +SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}) +MARK_AS_ADVANCED( + CMAKE_BACKWARDS_COMPATIBILITY + EXECUTABLE_OUTPUT_PATH + LIBRARY_OUTPUT_PATH + ) + +#================================== + + SET(LIBNAME $(bbtkGEditor)) + INCLUDE_DIRECTORIES( + ${PROJECT_BINARY_DIR} + + # // if the previous one is not enough : (JPRx) + # Add here the directories holding the .h you need + + # ${PROJECT_SOURCE_DIR}/lib/_YOUR_OWN_LIBRARY_SOURCE_DIRECTORY_ + + ) +#================================== + + +#---------------------------------------------------------------------------- +INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UserRootCMakeLists.cmake) + +#================================== +# Where to generate documentation +# (desperate try; JPR) + +SET(BBTK_DOC_BUILD_PATH + ${PROJECT_BINARY_DIR}/doc + ) +#================================== + +# Subdirs +SUBDIRS(lib) +SUBDIRS(appli) +SUBDIRS(doc) +SUBDIRS(install) +#================================== diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..fe87c25 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,514 @@ +CeCILL-B FREE SOFTWARE LICENSE AGREEMENT + + + Notice + +This Agreement is a Free Software license agreement that is the result +of discussions between its authors in order to ensure compliance with +the two main principles guiding its drafting: + + * firstly, compliance with the principles governing the distribution + of Free Software: access to source code, broad rights granted to + users, + * secondly, the election of a governing law, French law, with which + it is conformant, both as regards the law of torts and + intellectual property law, and the protection that it offers to + both authors and holders of the economic rights over software. + +The authors of the CeCILL-B (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) +license are: + +Commissariat à l'Energie Atomique - CEA, a public scientific, technical +and industrial research establishment, having its principal place of +business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France. + +Centre National de la Recherche Scientifique - CNRS, a public scientific +and technological establishment, having its principal place of business +at 3 rue Michel-Ange, 75794 Paris cedex 16, France. + +Institut National de Recherche en Informatique et en Automatique - +INRIA, a public scientific and technological establishment, having its +principal place of business at Domaine de Voluceau, Rocquencourt, BP +105, 78153 Le Chesnay cedex, France. + + + Preamble + +This Agreement is an open source software license intended to give users +significant freedom to modify and redistribute the software licensed +hereunder. + +The exercising of this freedom is conditional upon a strong obligation +of giving credits for everybody that distributes a software +incorporating a software ruled by the current license so as all +contributions to be properly identified and acknowledged. + +In consideration of access to the source code and the rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors only have limited liability. + +In this respect, the risks associated with loading, using, modifying +and/or developing or reproducing the software by the user are brought to +the user's attention, given its Free Software status, which may make it +complicated to use, with the result that its use is reserved for +developers and experienced professionals having in-depth computer +knowledge. Users are therefore encouraged to load and test the +suitability of the software as regards their requirements in conditions +enabling the security of their systems and/or data to be ensured and, +more generally, to use and operate it in the same conditions of +security. This Agreement may be freely reproduced and published, +provided it is not altered, and that no provisions are either added or +removed herefrom. + +This Agreement may apply to any or all software for which the holder of +the economic rights decides to submit the use thereof to its provisions. + + + Article 1 - DEFINITIONS + +For the purpose of this Agreement, when the following expressions +commence with a capital letter, they shall have the following meaning: + +Agreement: means this license agreement, and its possible subsequent +versions and annexes. + +Software: means the software in its Object Code and/or Source Code form +and, where applicable, its documentation, "as is" when the Licensee +accepts the Agreement. + +Initial Software: means the Software in its Source Code and possibly its +Object Code form and, where applicable, its documentation, "as is" when +it is first distributed under the terms and conditions of the Agreement. + +Modified Software: means the Software modified by at least one +Contribution. + +Source Code: means all the Software's instructions and program lines to +which access is required so as to modify the Software. + +Object Code: means the binary files originating from the compilation of +the Source Code. + +Holder: means the holder(s) of the economic rights over the Initial +Software. + +Licensee: means the Software user(s) having accepted the Agreement. + +Contributor: means a Licensee having made at least one Contribution. + +Licensor: means the Holder, or any other individual or legal entity, who +distributes the Software under the Agreement. + +Contribution: means any or all modifications, corrections, translations, +adaptations and/or new functions integrated into the Software by any or +all Contributors, as well as any or all Internal Modules. + +Module: means a set of sources files including their documentation that +enables supplementary functions or services in addition to those offered +by the Software. + +External Module: means any or all Modules, not derived from the +Software, so that this Module and the Software run in separate address +spaces, with one calling the other when they are run. + +Internal Module: means any or all Module, connected to the Software so +that they both execute in the same address space. + +Parties: mean both the Licensee and the Licensor. + +These expressions may be used both in singular and plural form. + + + Article 2 - PURPOSE + +The purpose of the Agreement is the grant by the Licensor to the +Licensee of a non-exclusive, transferable and worldwide license for the +Software as set forth in Article 5 hereinafter for the whole term of the +protection granted by the rights over said Software. + + + Article 3 - ACCEPTANCE + +3.1 The Licensee shall be deemed as having accepted the terms and +conditions of this Agreement upon the occurrence of the first of the +following events: + + * (i) loading the Software by any or all means, notably, by + downloading from a remote server, or by loading from a physical + medium; + * (ii) the first time the Licensee exercises any of the rights + granted hereunder. + +3.2 One copy of the Agreement, containing a notice relating to the +characteristics of the Software, to the limited warranty, and to the +fact that its use is restricted to experienced users has been provided +to the Licensee prior to its acceptance as set forth in Article 3.1 +hereinabove, and the Licensee hereby acknowledges that it has read and +understood it. + + + Article 4 - EFFECTIVE DATE AND TERM + + + 4.1 EFFECTIVE DATE + +The Agreement shall become effective on the date when it is accepted by +the Licensee as set forth in Article 3.1. + + + 4.2 TERM + +The Agreement shall remain in force for the entire legal term of +protection of the economic rights over the Software. + + + Article 5 - SCOPE OF RIGHTS GRANTED + +The Licensor hereby grants to the Licensee, who accepts, the following +rights over the Software for any or all use, and for the term of the +Agreement, on the basis of the terms and conditions set forth hereinafter. + +Besides, if the Licensor owns or comes to own one or more patents +protecting all or part of the functions of the Software or of its +components, the Licensor undertakes not to enforce the rights granted by +these patents against successive Licensees using, exploiting or +modifying the Software. If these patents are transferred, the Licensor +undertakes to have the transferees subscribe to the obligations set +forth in this paragraph. + + + 5.1 RIGHT OF USE + +The Licensee is authorized to use the Software, without any limitation +as to its fields of application, with it being hereinafter specified +that this comprises: + + 1. permanent or temporary reproduction of all or part of the Software + by any or all means and in any or all form. + + 2. loading, displaying, running, or storing the Software on any or + all medium. + + 3. entitlement to observe, study or test its operation so as to + determine the ideas and principles behind any or all constituent + elements of said Software. This shall apply when the Licensee + carries out any or all loading, displaying, running, transmission + or storage operation as regards the Software, that it is entitled + to carry out hereunder. + + + 5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS + +The right to make Contributions includes the right to translate, adapt, +arrange, or make any or all modifications to the Software, and the right +to reproduce the resulting software. + +The Licensee is authorized to make any or all Contributions to the +Software provided that it includes an explicit notice that it is the +author of said Contribution and indicates the date of the creation thereof. + + + 5.3 RIGHT OF DISTRIBUTION + +In particular, the right of distribution includes the right to publish, +transmit and communicate the Software to the general public on any or +all medium, and by any or all means, and the right to market, either in +consideration of a fee, or free of charge, one or more copies of the +Software by any means. + +The Licensee is further authorized to distribute copies of the modified +or unmodified Software to third parties according to the terms and +conditions set forth hereinafter. + + + 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION + +The Licensee is authorized to distribute true copies of the Software in +Source Code or Object Code form, provided that said distribution +complies with all the provisions of the Agreement and is accompanied by: + + 1. a copy of the Agreement, + + 2. a notice relating to the limitation of both the Licensor's + warranty and liability as set forth in Articles 8 and 9, + +and that, in the event that only the Object Code of the Software is +redistributed, the Licensee allows effective access to the full Source +Code of the Software at a minimum during the entire period of its +distribution of the Software, it being understood that the additional +cost of acquiring the Source Code shall not exceed the cost of +transferring the data. + + + 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE + +If the Licensee makes any Contribution to the Software, the resulting +Modified Software may be distributed under a license agreement other +than this Agreement subject to compliance with the provisions of Article +5.3.4. + + + 5.3.3 DISTRIBUTION OF EXTERNAL MODULES + +When the Licensee has developed an External Module, the terms and +conditions of this Agreement do not apply to said External Module, that +may be distributed under a separate license agreement. + + + 5.3.4 CREDITS + +Any Licensee who may distribute a Modified Software hereby expressly +agrees to: + + 1. indicate in the related documentation that it is based on the + Software licensed hereunder, and reproduce the intellectual + property notice for the Software, + + 2. ensure that written indications of the Software intended use, + intellectual property notice and license hereunder are included in + easily accessible format from the Modified Software interface, + + 3. mention, on a freely accessible website describing the Modified + Software, at least throughout the distribution term thereof, that + it is based on the Software licensed hereunder, and reproduce the + Software intellectual property notice, + + 4. where it is distributed to a third party that may distribute a + Modified Software without having to make its source code + available, make its best efforts to ensure that said third party + agrees to comply with the obligations set forth in this Article . + +If the Software, whether or not modified, is distributed with an +External Module designed for use in connection with the Software, the +Licensee shall submit said External Module to the foregoing obligations. + + + 5.3.5 COMPATIBILITY WITH THE CeCILL AND CeCILL-C LICENSES + +Where a Modified Software contains a Contribution subject to the CeCILL +license, the provisions set forth in Article 5.3.4 shall be optional. + +A Modified Software may be distributed under the CeCILL-C license. In +such a case the provisions set forth in Article 5.3.4 shall be optional. + + + Article 6 - INTELLECTUAL PROPERTY + + + 6.1 OVER THE INITIAL SOFTWARE + +The Holder owns the economic rights over the Initial Software. Any or +all use of the Initial Software is subject to compliance with the terms +and conditions under which the Holder has elected to distribute its work +and no one shall be entitled to modify the terms and conditions for the +distribution of said Initial Software. + +The Holder undertakes that the Initial Software will remain ruled at +least by this Agreement, for the duration set forth in Article 4.2. + + + 6.2 OVER THE CONTRIBUTIONS + +The Licensee who develops a Contribution is the owner of the +intellectual property rights over this Contribution as defined by +applicable law. + + + 6.3 OVER THE EXTERNAL MODULES + +The Licensee who develops an External Module is the owner of the +intellectual property rights over this External Module as defined by +applicable law and is free to choose the type of agreement that shall +govern its distribution. + + + 6.4 JOINT PROVISIONS + +The Licensee expressly undertakes: + + 1. not to remove, or modify, in any manner, the intellectual property + notices attached to the Software; + + 2. to reproduce said notices, in an identical manner, in the copies + of the Software modified or not. + +The Licensee undertakes not to directly or indirectly infringe the +intellectual property rights of the Holder and/or Contributors on the +Software and to take, where applicable, vis-à-vis its staff, any and all +measures required to ensure respect of said intellectual property rights +of the Holder and/or Contributors. + + + Article 7 - RELATED SERVICES + +7.1 Under no circumstances shall the Agreement oblige the Licensor to +provide technical assistance or maintenance services for the Software. + +However, the Licensor is entitled to offer this type of services. The +terms and conditions of such technical assistance, and/or such +maintenance, shall be set forth in a separate instrument. Only the +Licensor offering said maintenance and/or technical assistance services +shall incur liability therefor. + +7.2 Similarly, any Licensor is entitled to offer to its licensees, under +its sole responsibility, a warranty, that shall only be binding upon +itself, for the redistribution of the Software and/or the Modified +Software, under terms and conditions that it is free to decide. Said +warranty, and the financial terms and conditions of its application, +shall be subject of a separate instrument executed between the Licensor +and the Licensee. + + + Article 8 - LIABILITY + +8.1 Subject to the provisions of Article 8.2, the Licensee shall be +entitled to claim compensation for any direct loss it may have suffered +from the Software as a result of a fault on the part of the relevant +Licensor, subject to providing evidence thereof. + +8.2 The Licensor's liability is limited to the commitments made under +this Agreement and shall not be incurred as a result of in particular: +(i) loss due the Licensee's total or partial failure to fulfill its +obligations, (ii) direct or consequential loss that is suffered by the +Licensee due to the use or performance of the Software, and (iii) more +generally, any consequential loss. In particular the Parties expressly +agree that any or all pecuniary or business loss (i.e. loss of data, +loss of profits, operating loss, loss of customers or orders, +opportunity cost, any disturbance to business activities) or any or all +legal proceedings instituted against the Licensee by a third party, +shall constitute consequential loss and shall not provide entitlement to +any or all compensation from the Licensor. + + + Article 9 - WARRANTY + +9.1 The Licensee acknowledges that the scientific and technical +state-of-the-art when the Software was distributed did not enable all +possible uses to be tested and verified, nor for the presence of +possible defects to be detected. In this respect, the Licensee's +attention has been drawn to the risks associated with loading, using, +modifying and/or developing and reproducing the Software which are +reserved for experienced users. + +The Licensee shall be responsible for verifying, by any or all means, +the suitability of the product for its requirements, its good working +order, and for ensuring that it shall not cause damage to either persons +or properties. + +9.2 The Licensor hereby represents, in good faith, that it is entitled +to grant all the rights over the Software (including in particular the +rights set forth in Article 5). + +9.3 The Licensee acknowledges that the Software is supplied "as is" by +the Licensor without any other express or tacit warranty, other than +that provided for in Article 9.2 and, in particular, without any warranty +as to its commercial value, its secured, safe, innovative or relevant +nature. + +Specifically, the Licensor does not warrant that the Software is free +from any error, that it will operate without interruption, that it will +be compatible with the Licensee's own equipment and software +configuration, nor that it will meet the Licensee's requirements. + +9.4 The Licensor does not either expressly or tacitly warrant that the +Software does not infringe any third party intellectual property right +relating to a patent, software or any other property right. Therefore, +the Licensor disclaims any and all liability towards the Licensee +arising out of any or all proceedings for infringement that may be +instituted in respect of the use, modification and redistribution of the +Software. Nevertheless, should such proceedings be instituted against +the Licensee, the Licensor shall provide it with technical and legal +assistance for its defense. Such technical and legal assistance shall be +decided on a case-by-case basis between the relevant Licensor and the +Licensee pursuant to a memorandum of understanding. The Licensor +disclaims any and all liability as regards the Licensee's use of the +name of the Software. No warranty is given as regards the existence of +prior rights over the name of the Software or as regards the existence +of a trademark. + + + Article 10 - TERMINATION + +10.1 In the event of a breach by the Licensee of its obligations +hereunder, the Licensor may automatically terminate this Agreement +thirty (30) days after notice has been sent to the Licensee and has +remained ineffective. + +10.2 A Licensee whose Agreement is terminated shall no longer be +authorized to use, modify or distribute the Software. However, any +licenses that it may have granted prior to termination of the Agreement +shall remain valid subject to their having been granted in compliance +with the terms and conditions hereof. + + + Article 11 - MISCELLANEOUS + + + 11.1 EXCUSABLE EVENTS + +Neither Party shall be liable for any or all delay, or failure to +perform the Agreement, that may be attributable to an event of force +majeure, an act of God or an outside cause, such as defective +functioning or interruptions of the electricity or telecommunications +networks, network paralysis following a virus attack, intervention by +government authorities, natural disasters, water damage, earthquakes, +fire, explosions, strikes and labor unrest, war, etc. + +11.2 Any failure by either Party, on one or more occasions, to invoke +one or more of the provisions hereof, shall under no circumstances be +interpreted as being a waiver by the interested Party of its right to +invoke said provision(s) subsequently. + +11.3 The Agreement cancels and replaces any or all previous agreements, +whether written or oral, between the Parties and having the same +purpose, and constitutes the entirety of the agreement between said +Parties concerning said purpose. No supplement or modification to the +terms and conditions hereof shall be effective as between the Parties +unless it is made in writing and signed by their duly authorized +representatives. + +11.4 In the event that one or more of the provisions hereof were to +conflict with a current or future applicable act or legislative text, +said act or legislative text shall prevail, and the Parties shall make +the necessary amendments so as to comply with said act or legislative +text. All other provisions shall remain effective. Similarly, invalidity +of a provision of the Agreement, for any reason whatsoever, shall not +cause the Agreement as a whole to be invalid. + + + 11.5 LANGUAGE + +The Agreement is drafted in both French and English and both versions +are deemed authentic. + + + Article 12 - NEW VERSIONS OF THE AGREEMENT + +12.1 Any person is authorized to duplicate and distribute copies of this +Agreement. + +12.2 So as to ensure coherence, the wording of this Agreement is +protected and may only be modified by the authors of the License, who +reserve the right to periodically publish updates or new versions of the +Agreement, each with a separate number. These subsequent versions may +address new issues encountered by Free Software. + +12.3 Any Software distributed under a given version of the Agreement may +only be subsequently distributed under the same version of the Agreement +or a subsequent version. + + + Article 13 - GOVERNING LAW AND JURISDICTION + +13.1 The Agreement is governed by French law. The Parties agree to +endeavor to seek an amicable solution to any disagreements or disputes +that may arise during the performance of the Agreement. + +13.2 Failing an amicable solution within two (2) months as from their +occurrence, and unless emergency proceedings are necessary, the +disagreements or disputes shall be referred to the Paris Courts having +jurisdiction, by the more diligent Party. + + +Version 1.0 dated 2006-09-05. diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..9e67de7 --- /dev/null +++ b/README.txt @@ -0,0 +1,2 @@ + +(c) CREATIS 2009 \ No newline at end of file diff --git a/appli/CMakeLists.txt b/appli/CMakeLists.txt new file mode 100644 index 0000000..3c34554 --- /dev/null +++ b/appli/CMakeLists.txt @@ -0,0 +1,3 @@ +# Add a SUBDIRS command for each of your applications +# SUBDIRS(MyApp1) +SUBDIRS(bbEditor) diff --git a/appli/bbEditor/CMakeLists.txt b/appli/bbEditor/CMakeLists.txt new file mode 100644 index 0000000..4815928 --- /dev/null +++ b/appli/bbEditor/CMakeLists.txt @@ -0,0 +1,30 @@ +#OPTION(BUILD_bbi_GRAPHICAL "Build bbi in graphical mode (requires wxWidgets)" OFF) +#SWITCH_ON_IF_ALL_BUILD(BUILD_bbi_GRAPHICAL) +#IF (BUILD_bbi_GRAPHICAL) +# SET(USE_WXWIDGETS ON CACHE BOOL "Use WxWidgets" FORCE) +#ENDIF (BUILD_bbi_GRAPHICAL) + + +SET(SOURCES + bbEditor + ) + +INCLUDE_DIRECTORIES(../../lib/EditorGraphicBBS/bbsWxGUIEditorGraphic) + +IF(BBTK_USE_WXWIDGETS AND WIN32) + ADD_EXECUTABLE(bbEditor WIN32 ${SOURCES}) + SET_TARGET_PROPERTIES(bbEditor PROPERTIES LINK_FLAGS /subsystem:console ) +ELSE(BBTK_USE_WXWIDGETS AND WIN32) + ADD_EXECUTABLE(bbEditor MACOSX_BUNDLE ${SOURCES} ) +ENDIF(BBTK_USE_WXWIDGETS AND WIN32) + + +TARGET_LINK_LIBRARIES(bbEditor + bbsWxGUIEditorGraphic + ${VTK_LIBRARIES} + ${WXWIDGETS_LIBRARIES} + ${creaMaracasVisu_LIBRARIES} + ${BBTK_LIBRARIES} + ) + +INSTALL_TARGETS(/bin/ bbEditor) diff --git a/appli/bbEditor/bbEditor.cxx b/appli/bbEditor/bbEditor.cxx new file mode 100644 index 0000000..c135924 --- /dev/null +++ b/appli/bbEditor/bbEditor.cxx @@ -0,0 +1,76 @@ +#ifdef _USE_WXWIDGETS_ + +//========================================================================== +// WITH WX +//========================================================================== + +#include "bbtkwxGUIEditorGraphicBBS.h" + +#include +#include + + +class wxBBEditorApp : public wxApp +{ +public: + bool OnInit( ); + int OnExit() { return true; } + +}; + +IMPLEMENT_APP(wxBBEditorApp); + + + + +// ---------------------------------------------------------------------------- +// The `main program' equivalent, creating the windows and returning the +// main frame +bool wxBBEditorApp::OnInit( ) +{ + wxApp::OnInit(); +#ifdef __WXGTK__ + //See http://www.wxwindows.org/faqgtk.htm#locale + setlocale(LC_NUMERIC, "C"); +#endif + + bbtk::wxGUIEditorGraphicBBS *iegbbs; + iegbbs = new bbtk::wxGUIEditorGraphicBBS(NULL); + SetTopWindow(iegbbs); + iegbbs->Show(true); + + return true; +} + + +#if defined(_WIN32) + +// How to have a Console and wxWidgets +// http://www.wxwidgets.org/wiki/index.php/MSVC_Setup_Guide +// In Visual C++ 6 (7 should be similar), to create an application that is both a console application +// (cout's to the console are visible) and has a wxWidgets GUI, +// you need to use the linker option "/subsystem:console" and the following code: +int main(int argc, char* argv[]) +{ + return WinMain(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), SW_SHOWNORMAL); +} + +#endif // defined(_WIN32) + + +#else +//========================================================================== +// WITHOUT WX +//========================================================================== +#include +int main(int argc, char* argv[]) +{ + std::cout << "bbStudio was not compiled with wxWidgets : ciao !" < + +) + +#---------------------------------------------------------------------------- +# DEPENDENCIES (LIBRARIES TO LINK WITH) +SET ( ${EXE_NAME}_LINK_LIBRARIES + # ${crea_LIBRARIES} + # ${WXWIDGETS_LIBRARIES} + # ${KWWidgets_LIBRARIES} + # ${VTK_LIBRARIES} + # ${ITK_LIBRARIES} + # ${GDCM_LIBRARIES} + # ${BOOST_LIBRARIES} + + # Add here those agmonst the various (?) PROJECT LIBRARIES + # you need for the current executable + # (If you created only one Library, don't forget it !...) + + ) + +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# CREATES AND INSTALLS THE EXE +# Set to ON if your appli has a GUI (to build as a Win32 app on windows) +SET(${EXE_NAME}_HAS_GUI OFF) +# Set to ON if your appli has a GUI but you also want a msdos console on windows +SET(${EXE_NAME}_CONSOLE OFF) +CREA_ADD_EXECUTABLE( ${EXE_NAME} ) +#---------------------------------------------------------------------------- + + diff --git a/cmake/UserBuildAllOption.cmake b/cmake/UserBuildAllOption.cmake new file mode 100644 index 0000000..5df73d1 --- /dev/null +++ b/cmake/UserBuildAllOption.cmake @@ -0,0 +1,30 @@ +#----------------------------------------------------------------------------- +# If --BUILD_ALL is set to ON then all options +# for which the macro SWITCH_ON_IF_BUILD_ALL have been used are set to ON +# The -- prepended to the options ensure that it will appear as the +# first option when running ccmake/CMakeSetup +#IF (BBTK_CORE_PACKAGE) + OPTION(--BUILD_ALL "Build all ?" OFF) + #OPTION(--SET_BUILD_ALL_OFF "Build all ?" OFF) + #MARK_AS_ADVANCED(--SET_BUILD_ALL_OFF) + + MACRO(SWITCH_ON_IF_BUILD_ALL VAR) + #OPTION(--${VAR}_SET_BUILD_ALL_OFF "Build all ?" OFF) + #MARK_AS_ADVANCED(--${VAR}_SET_BUILD_ALL_OFF) + IF (--BUILD_ALL) + # IF (--${VAR}_SET_BUILD_ALL_OFF) + # MESSAGE(ERROR "${VAR} -> Build All OFF") + # SET(--BUILD_ALL OFF CACHE BOOL "Build all ?" FORCE) + # SET(--${VAR}_SET_BUILD_ALL_OFF OFF CACHE BOOL "" FORCE) + # ELSE (--${VAR}_SET_BUILD_ALL_OFF) + SET(${VAR} ON CACHE BOOL "Forced to ON by --BUILD_ALL" FORCE) + # SET(--${VAR}_SET_BUILD_ALL_OFF ON CACHE BOOL "" FORCE) + # MESSAGE(ERROR "Build All -> ${VAR}") + # ENDIF (--${VAR}_SET_BUILD_ALL_OFF) + ENDIF(--BUILD_ALL) + ENDMACRO(SWITCH_ON_IF_BUILD_ALL) +#ELSE (BBTK_CORE_PACKAGE) + # MACRO(SWITCH_ON_IF_BUILD_ALL VAR) + # ENDMACRO(SWITCH_ON_IF_BUILD_ALL) +#ENDIF (BBTK_CORE_PACKAGE) +#----------------------------------------------------------------------------- diff --git a/cmake/UserBuildDoxygenDoc.cmake b/cmake/UserBuildDoxygenDoc.cmake new file mode 100644 index 0000000..2446671 --- /dev/null +++ b/cmake/UserBuildDoxygenDoc.cmake @@ -0,0 +1,74 @@ + + +MACRO(USER_BUILD_DOXYGEN_DOC NAME INPUT DOC_RELATIVE_INSTALL_PATH PREDEFINED) + + #-------------------------------------------------------------------------- + SET(USE_DOXYGEN ON CACHE BOOL "" FORCE) + + # Name + SET(DOXYGEN_PROJECT_NAME "${NAME}") + + # Inputs + #STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT "${INPUT}") + + # Output dirs + SET(DOXYGEN_HTML_OUTPUT ".") + SET(DOXYGEN_OUTPUT "${${PROJECT_NAME}_DOXYGEN_BUILD_PATH}/${DOC_RELATIVE_INSTALL_PATH}") + STRING(REGEX REPLACE " " "~" DOXYGEN_OUTPUT "${DOXYGEN_OUTPUT}") + + + IF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}) + FILE(MAKE_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}) + ENDIF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}) + + # Doc exclude + SET(DOXYGEN_EXCLUDE "") + STRING(REGEX REPLACE ";" " " DOXYGEN_EXCLUDE "${DOXYGEN_EXCLUDE}") + + # Log file name + SET(DOXYGEN_LOGFILE "${CMAKE_CURRENT_BINARY_DIR}/doxygen.log") + + # Predefined symbols + STRING(REGEX REPLACE ";" " " DOXYGEN_DOC_PREDEFINED "${PREDEFINED}") + + #--------------------------------------------------------------------------- + # DOT verification + IF(DOT) + GET_FILENAME_COMPONENT(DOXYGEN_DOT_PATH ${DOT} PATH) + SET(DOXYGEN_HAVE_DOT "YES") + ELSE(DOT) + SET(DOXYGEN_DOT_PATH "") + SET(DOXYGEN_HAVE_DOT "NO") + ENDIF(DOT) + + #--------------------------------------------------------------------------- + # Create file and project + CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.txt.in + ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt + @ONLY IMMEDIATE + ) + + + ADD_CUSTOM_COMMAND( + OUTPUT ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html + COMMAND + ${DOXYGEN} + ARGS + ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt + # DEPENDS bbtk bbi + ) + + ADD_CUSTOM_TARGET(doxygen_${NAME} ALL + DEPENDS ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html + ) + + INSTALL( + DIRECTORY + ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT} + DESTINATION + ${${PROJECT_NAME}_DOXYGEN_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH} + ) + #-------------------------------------------------------------------------- +#message("user build doxygen , doxygen output = ${DOXYGEN_OUTPUT}") +ENDMACRO(USER_BUILD_DOXYGEN_DOC) diff --git a/cmake/UserBuildHtmlDocFromLatex.cmake b/cmake/UserBuildHtmlDocFromLatex.cmake new file mode 100644 index 0000000..1cba436 --- /dev/null +++ b/cmake/UserBuildHtmlDocFromLatex.cmake @@ -0,0 +1,33 @@ + + +MACRO(USER_BUILD_HTML_DOC_FROM_LATEX TEX_FILE OUTPUT_REL_PATH) + # Need tth + SET(USE_TTH ON CACHE BOOL "" FORCE) + # Construct absolute build path + SET(BUILD_PATH ${${PROJECT_NAME}_DOC_BUILD_PATH}/${OUTPUT_REL_PATH}) + #------------------------------------------------------------------------- + IF(WIN32) + SET(TTH_EXECUTABLE "${TTH_EXECUTABLE}/tth.exe") + ENDIF(WIN32) + + #message("MACRO(USER_BUILD_HTML_DOC_FROM_LATEX TEX_FILE OUTPUT_REL_PATH) TTH_EXECUTABLE ${TTH_EXECUTABLE}") + ADD_CUSTOM_COMMAND( + OUTPUT ${BUILD_PATH}/${TEX_FILE}.html + COMMAND + # tth + ${TTH_EXECUTABLE} + ARGS + -e2 ${BUILD_PATH}/${TEX_FILE}.tex 2>tth.log + # DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${TEX_FILE}.pdf + ) + ADD_CUSTOM_TARGET(${TEX_FILE}.html ALL + DEPENDS ${BUILD_PATH}/${TEX_FILE}.html + ) + # Install + INSTALL( + FILES ${BUILD_PATH}/${TEX_FILE}.html + DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/${OUTPUT_REL_PATH} + ) + #------------------------------------------------------------------------- + +ENDMACRO(USER_BUILD_HTML_DOC_FROM_LATEX) diff --git a/cmake/UserBuildLatexDoc.cmake b/cmake/UserBuildLatexDoc.cmake new file mode 100644 index 0000000..1f5ad69 --- /dev/null +++ b/cmake/UserBuildLatexDoc.cmake @@ -0,0 +1,66 @@ + + +MACRO(USER_BUILD_LATEX_DOC TEX_FILE OUTPUT_REL_PATH) + # Need LaTeX + SET(USE_LATEX ON CACHE BOOL "" FORCE) + # Construct absolute build path + SET(BUILD_PATH ${${PROJECT_NAME}_DOC_BUILD_PATH}/${OUTPUT_REL_PATH}) + #MESSAGE(STATUS "Tex file : ${TEX_FILE}") + #--------------------------------------------------------------------------- + CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/${TEX_FILE}.tex + ${BUILD_PATH}/${TEX_FILE}.tex + COPYONLY + ) + CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/../config.tex + ${BUILD_PATH}/config.tex + @ONLY + ) + CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/../config.tex + ${CMAKE_CURRENT_BINARY_DIR}/config.tex + @ONLY + ) + #--------------------------------------------------------------------------- + FILE(TO_NATIVE_PATH ${BUILD_PATH} THE_BUILD_PATH) + + # Have to run latex twice to get references, toc, etc. + #message("ADD_CUSTOM_COMMAND(OUTPUT ${BUILD_PATH}/${TEX_FILE}.aux MACRO(USER_BUILD_LATEX_DOC") + +ADD_CUSTOM_COMMAND( + OUTPUT ${BUILD_PATH}/${TEX_FILE}.aux + COMMAND + # latex + cd ${THE_BUILD_PATH} && ${LATEX_COMPILER} + ARGS + -interaction=batchmode ${BUILD_PATH}/${TEX_FILE} -output-directory=${BUILD_PATH}/ + + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/${TEX_FILE}.tex + ${CMAKE_CURRENT_SOURCE_DIR}/../config.tex + ) + +#message("LATEX_COMPILER = ${LATEX_COMPILER}") +ADD_CUSTOM_COMMAND( + OUTPUT ${BUILD_PATH}/${TEX_FILE}.pdf + COMMAND + # latex + cd ${THE_BUILD_PATH} && ${LATEX_COMPILER} + ARGS + -interaction=batchmode ${BUILD_PATH}/${TEX_FILE} -output-directory=${BUILD_PATH}/ + + DEPENDS ${BUILD_PATH}/${TEX_FILE}.aux + ) + + # pdf target + ADD_CUSTOM_TARGET(${TEX_FILE}.pdf ALL + DEPENDS ${BUILD_PATH}/${TEX_FILE}.pdf) + + # Install + INSTALL( + FILES ${BUILD_PATH}/${TEX_FILE}.pdf + DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/${OUTPUT_REL_PATH} + ) + +ENDMACRO(USER_BUILD_LATEX_DOC) diff --git a/cmake/UserConfig.cmake b/cmake/UserConfig.cmake new file mode 100644 index 0000000..58dfc68 --- /dev/null +++ b/cmake/UserConfig.cmake @@ -0,0 +1,22 @@ + + +#----------------------------------------------------------------------------- +# store documentation and scripts **RELATIVE** paths +# from build tree root or install tree root +# (different on win/lin) +IF(WIN32) + # A trick to install in root install dir (problem when empty path given) + SET(${PROJECT_NAME}_SHARE_REL_PATH "bin/..") + SET(${PROJECT_NAME}_DOC_REL_PATH doc) +ELSE(WIN32) + SET(${PROJECT_NAME}_SHARE_REL_PATH share/${PROJECT_NAME}) + SET(${PROJECT_NAME}_DOC_REL_PATH share/${PROJECT_NAME}/doc) +ENDIF(WIN32) + +MESSAGE(STATUS "* SHARE_REL_PATH =${${PROJECT_NAME}_SHARE_REL_PATH}") +MESSAGE(STATUS "* DOC_REL_PATH =${${PROJECT_NAME}_DOC_REL_PATH}") +MESSAGE(STATUS "* BBS_REL_PATH =${${PROJECT_NAME}_BBS_REL_PATH}") +MESSAGE(STATUS "* DATA_REL_PATH =${${PROJECT_NAME}_DATA_REL_PATH}") +MESSAGE(STATUS "===============================================") + +#----------------------------------------------------------------------------- diff --git a/cmake/UserDefineOptions.cmake b/cmake/UserDefineOptions.cmake new file mode 100644 index 0000000..65a1446 --- /dev/null +++ b/cmake/UserDefineOptions.cmake @@ -0,0 +1,39 @@ +#----------------------------------------------------------------------------- +# messages compilation options +OPTION ( BUILD_${PROJECT_NAME}_DOC "Build documentation for ${PROJECT_NAME}." OFF) +SWITCH_ON_IF_BUILD_ALL(BUILD_${PROJECT_NAME}_DOC) +#----------------------------------------------------------------------------- +IF(BUILD_${PROJECT_NAME}_DOC) + + OPTION(BUILD_${PROJECT_NAME}_DOC_PACKAGE + "Build ${PROJECT_NAME} packages documentation (bbi+dot)." ON) + OPTION(BUILD_${PROJECT_NAME}_DOC_DOXYGEN + "Build doxygen documentation (doxygen)." ON) + OPTION(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF + "Build ${PROJECT_NAME} Guides', PDF format (latex)." ON) + OPTION(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML + "Build ${PROJECT_NAME} Guides', HTML format (latex+tth)." ON) + +ELSE(BUILD_${PROJECT_NAME}_DOC) + + IF(BUILD_${PROJECT_NAME}_DOC_PACKAGE) + SET(BUILD_${PROJECT_NAME}_DOC_PACKAGE OFF CACHE BOOL + "Build ${PROJECT_NAME} packages documentation (bbdoc+dot)." FORCE) + ENDIF(BUILD_${PROJECT_NAME}_DOC_PACKAGE) + IF(BUILD_${PROJECT_NAME}_DOC_DOXYGEN) + SET(BUILD_${PROJECT_NAME}_DOC_DOXYGEN OFF CACHE BOOL + "Build doxygen documentation. (doxygen)" FORCE) + ENDIF(BUILD_${PROJECT_NAME}_DOC_DOXYGEN) + + IF(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF) + SET(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF OFF CACHE BOOL + "Build ${PROJECT_NAME} Guides', PDF format (latex)." FORCE) + ENDIF(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF) + + IF(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML) + SET(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML OFF CACHE BOOL + "Build ${PROJECT_NAME} Guides', HTML format (latex tth)." FORCE) + ENDIF(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML) + +ENDIF(BUILD_${PROJECT_NAME}_DOC) +#----------------------------------------------------------------------------- diff --git a/cmake/UserMacros.cmake b/cmake/UserMacros.cmake new file mode 100644 index 0000000..0f33860 --- /dev/null +++ b/cmake/UserMacros.cmake @@ -0,0 +1,37 @@ +#======================================================================== +# MACRO WHICH COPIES ALL IMAGES (png, jpg, gif) +# FROM SOURCE TREE TO DOC BUILD TREE +# AND INSTALL THEM IN BBTK DOC TREE +MACRO(USER_DOC_INSTALL_IMAGES DOC_RELATIVE_INSTALL_PATH) + MESSAGE(STATUS "* Copying png,jpg,tif images in ${BBTK_DOC_BUILD_PATH}/${DOC_RELATIVE_INSTALL_PATH}") + FILE(GLOB PNG_IMAGES "*.png") + FILE(GLOB JPG_IMAGES "*.jpg") + FILE(GLOB TIF_IMAGES "*.tif") + SET(IMAGES + ${PNG_IMAGES} + ${JPG_IMAGES} + ${TIF_IMAGES} + ) +# MESSAGE(ERROR ${IMAGES} ) + FOREACH(image ${IMAGES}) + GET_FILENAME_COMPONENT(filename "${image}" NAME) + CONFIGURE_FILE( + ${image} + ${${PROJECT_NAME}_DOC_BUILD_PATH}/${DOC_RELATIVE_INSTALL_PATH}/${filename} + COPYONLY + ) + + # IF (WIN32) +# CONFIGURE_FILE( +# ${image} +# ${CMAKE_CURRENT_BINARY_DIR}/${filename} +# COPYONLY +# ) +# ENDIF(WIN32) + # MESSAGE(ERROR "${image} (${filename}) in : ${PROJECT_BINARY_DIR}/${BBTK_DOC_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH}/${filename}") + ENDFOREACH(image) + INSTALL( + FILES ${IMAGES} + DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH} + ) +ENDMACRO(USER_DOC_INSTALL_IMAGES) \ No newline at end of file diff --git a/cmake/UserRootCMakeLists.cmake b/cmake/UserRootCMakeLists.cmake new file mode 100644 index 0000000..d4ee59b --- /dev/null +++ b/cmake/UserRootCMakeLists.cmake @@ -0,0 +1,6 @@ + +INCLUDE(cmake/UserMacros.cmake) +INCLUDE(cmake/UserConfig.cmake) +INCLUDE(cmake/UserSetDeducedPaths.cmake) +INCLUDE(cmake/UserBuildAllOption.cmake) +INCLUDE(cmake/UserDefineOptions.cmake) \ No newline at end of file diff --git a/cmake/UserSetDeducedPaths.cmake b/cmake/UserSetDeducedPaths.cmake new file mode 100644 index 0000000..cf993cb --- /dev/null +++ b/cmake/UserSetDeducedPaths.cmake @@ -0,0 +1,62 @@ +MESSAGE(STATUS "===============================================") +MESSAGE(STATUS "Setting up deduced pathes:") +# Black box docs relative path +SET(${PROJECT_NAME}_BBDOC_REL_PATH ${${PROJECT_NAME}_DOC_REL_PATH}/bbdoc) +# Doxygen docs relative path +SET(${PROJECT_NAME}_DOXYGEN_REL_PATH ${${PROJECT_NAME}_DOC_REL_PATH}/doxygen) + +MESSAGE(STATUS "* BBTK_BBDOC_REL_PATH =${BBTK_BBDOC_REL_PATH}") +MESSAGE(STATUS "* BBTK_DOXYGEN_REL_PATH =${BBTK_DOXYGEN_REL_PATH}") + +# Now compute BUILD TREE **ABSOLUTE PATHS** +SET(${PROJECT_NAME}_DOC_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_DOC_REL_PATH}) +SET(${PROJECT_NAME}_BBDOC_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_BBDOC_REL_PATH}) +SET(${PROJECT_NAME}_DOXYGEN_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_DOXYGEN_REL_PATH}) +SET(${PROJECT_NAME}_BBS_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_BBS_REL_PATH}) +SET(${PROJECT_NAME}_DATA_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_DATA_REL_PATH}) + +#SET(BBTK_DOC_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_DOC_REL_PATH}) +#SET(BBTK_BBDOC_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_BBDOC_REL_PATH}) +#SET(BBTK_DOXYGEN_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_DOXYGEN_REL_PATH}) +#SET(BBTK_BBS_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_BBS_REL_PATH}) +#SET(BBTK_DATA_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_DATA_REL_PATH}) + +# LG 22/10/08 : REMOVED THE **ABSOLUTE INSTALL PATH** +# was buggy when packaging +# consequences : +# 1) generated packages are NOT relocatables +# 2) they must be installed at the same prefix than bbtk +SET(${PROJECT_NAME}_DOC_INSTALL_PATH ${${PROJECT_NAME}_DOC_REL_PATH}) +SET(${PROJECT_NAME}_BBDOC_INSTALL_PATH ${${PROJECT_NAME}_BBDOC_REL_PATH}) +SET(${PROJECT_NAME}_DOXYGEN_INSTALL_PATH ${${PROJECT_NAME}_DOXYGEN_REL_PATH}) +SET(${PROJECT_NAME}_BBS_INSTALL_PATH ${${PROJECT_NAME}_BBS_REL_PATH}) +SET(${PROJECT_NAME}_DATA_INSTALL_PATH ${${PROJECT_NAME}_DATA_REL_PATH}) + + + + +# Create build directories if necessary +CREA_MKDIR(${${PROJECT_NAME}_DOC_BUILD_PATH}) +CREA_MKDIR(${${PROJECT_NAME}_BBDOC_BUILD_PATH}) +CREA_MKDIR(${${PROJECT_NAME}_DOXYGEN_BUILD_PATH}) +CREA_MKDIR(${${PROJECT_NAME}_BBS_BUILD_PATH}) +CREA_MKDIR(${${PROJECT_NAME}_DATA_BUILD_PATH}) + +#----------------------------------------------------------------------------- +SET (EXECUTABLE_OUTPUT_PATH + ${PROJECT_BINARY_DIR}/${EXECUTABLE_OUTPUT_REL_PATH}) +SET (LIBRARY_OUTPUT_PATH + ${PROJECT_BINARY_DIR}/${LIBRARY_OUTPUT_REL_PATH}) +#----------------------------------------------------------------------------- +MESSAGE(STATUS "* EXECUTABLE_OUTPUT_PATH=${EXECUTABLE_OUTPUT_PATH}") +MESSAGE(STATUS "* LIBRARY_OUTPUT_PATH =${LIBRARY_OUTPUT_PATH}") + +#----------------------------------------------------------------------------- +# Today CMakeCreateFindPackage is copied in BBTK_CMAKE_DIR +# When installed as a separate project will have to find it with FIND_PACKAGE +SET(CMakeCreateFindPackage_DIR ${${PROJECT_NAME}_CMAKE_DIR}) +#----------------------------------------------------------------------------- + + +MESSAGE(STATUS "===============================================") + diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt new file mode 100644 index 0000000..2f9447e --- /dev/null +++ b/doc/CMakeLists.txt @@ -0,0 +1,78 @@ + + +#----------------------------------------------------------------------------- +IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_DOXYGEN) + INCLUDE(../cmake/UserBuildDoxygenDoc.cmake) + SUBDIRS(UserDoxygen) +ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_DOXYGEN) +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF) + INCLUDE(../cmake/UserBuildLatexDoc.cmake) +ELSE(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML) + MACRO(USER_BUILD_LATEX_DOC TEX_FILE) + ENDMACRO(USER_BUILD_LATEX_DOC) +ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF) +#----------------------------------------------------------------------------- + + +#----------------------------------------------------------------------------- +IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML) + INCLUDE(../cmake/UserBuildHtmlDocFromLatex.cmake) +ELSE(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML) + MACRO(USER_BUILD_HTML_DOC_FROM_LATEX SOURCE) + ENDMACRO(USER_BUILD_HTML_DOC_FROM_LATEX) +ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML) +#----------------------------------------------------------------------------- + + +#----------------------------------------------------------------------------- +IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF OR BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML) + SUBDIRS(UserDocumentation) +ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF OR BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML) +#----------------------------------------------------------------------------- +# Web site +IF(BUILD_${PROJECT_NAME}_DOC) + # Configure main page index.html for build tree + CONFIGURE_FILE( + index.html.in + ${${PROJECT_NAME}_DOC_BUILD_PATH}/index.html + @ONLY + ) + # Install it + INSTALL( + FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/index.html + DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH} + ) + # Configure main page index-no-frame.html for build tree + CONFIGURE_FILE( + index-no-frame.html.in + ${${PROJECT_NAME}_DOC_BUILD_PATH}/index-no-frame.html + @ONLY + ) + # Install it + INSTALL( + FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/index-no-frame.html + DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH} + ) + # Configure help_contents.html for build tree + CONFIGURE_FILE( + help_contents.html.in + ${${PROJECT_NAME}_DOC_BUILD_PATH}/help_contents.html + @ONLY + ) + # Install it + INSTALL( + FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/help_contents.html + DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH} + ) + + # Recurse it bbtkWebSite dir + SUBDIRS(template_WebSite) + + + +ENDIF(BUILD_${PROJECT_NAME}_DOC) +#----------------------------------------------------------------------------- + diff --git a/doc/README.txt b/doc/README.txt new file mode 100644 index 0000000..011ac7b --- /dev/null +++ b/doc/README.txt @@ -0,0 +1,5 @@ +* config.tex : input file for all latex guides (user's, package dev's ...) +* help_contents.html.in : home page of bbStudio help +* index.html.in : home page of online doc (frame) +* index-no-frame.html.in : home page of online doc (without frame) + diff --git a/doc/README_HowToUpload.txt b/doc/README_HowToUpload.txt new file mode 100644 index 0000000..a6bf91c --- /dev/null +++ b/doc/README_HowToUpload.txt @@ -0,0 +1,5 @@ +After builing ALL : + +cd in the build tree +cd share/doc +rsync -rtvO . tux:/var/www/html/software/creatools/bbtk/v0_9_0/ --perms --chmod=Dg+s,ug+w diff --git a/doc/UserDocumentation/CMakeLists.txt b/doc/UserDocumentation/CMakeLists.txt new file mode 100644 index 0000000..f12e4d1 --- /dev/null +++ b/doc/UserDocumentation/CMakeLists.txt @@ -0,0 +1,7 @@ +MESSAGE(STATUS "") +MESSAGE(STATUS "=======================================") +MESSAGE(STATUS "Configuring bbtk Package Developers' Guide build ") +USER_DOC_INSTALL_IMAGES(UserDocumentation) +USER_BUILD_LATEX_DOC(UserDocumentation UserDocumentation) +USER_BUILD_HTML_DOC_FROM_LATEX(UserDocumentation UserDocumentation) +MESSAGE(STATUS "=======================================") diff --git a/doc/UserDocumentation/UserDocumentation.tex b/doc/UserDocumentation/UserDocumentation.tex new file mode 100644 index 0000000..f49e631 --- /dev/null +++ b/doc/UserDocumentation/UserDocumentation.tex @@ -0,0 +1,70 @@ + +% ========================================== +\documentclass[11pt,final,a4paper]{article} +\input{config.tex} +\begin{document} +\UserDocumentGuide[User Documentation Guide] +\newpage +% ========================================== + +% ========================================== +\section{Introduction} +% ========================================== +Introductory paragraph to the content of the document +% ========================================== +% ========================================== +\section{Objectives} +% ========================================== +\subsection{General Objective} +% ========================================== +\begin{itemize} +\item{\bf Objective 1} General description of the +objectives +\end{itemize} +% ========================================== +% ========================================== +\subsection{Specific Objectives} +% ========================================== +\begin{itemize} +\item{\bf Objective 1} Detail description of the +objective +\item{\bf Objective n} Detail description of the +objective +\end{itemize} +% ========================================== +\section{Scope and Vision} +% ========================================== +Scope and vision of the system to analyze +What is the reaching point of the system? +% ========================================== +\section{General Description} +% ========================================== +General description of the whole module +% ========================================== +\section{Requirements List} +% ========================================== +\begin{itemize} +\item{\bf Req1} Description of the +requirement +\item{\bf Reqn} Description of the +requirement +\end{itemize} +% ========================================== +\section{Analysis and design of the requirements} +% ========================================== +% ========================================== +\subsection{Req1} +% ========================================== +Detailed description of each req +% ========================================== +\subsection{Reqn} +% ========================================== +% ========================================== +\section{Glosary} +% ========================================== +% ========================================== +\section{Anexes} +% ========================================== + +\end{document} + diff --git a/doc/UserDoxygen/CMakeLists.txt b/doc/UserDoxygen/CMakeLists.txt new file mode 100644 index 0000000..9fab474 --- /dev/null +++ b/doc/UserDoxygen/CMakeLists.txt @@ -0,0 +1,30 @@ +MESSAGE(STATUS "") +MESSAGE(STATUS "=======================================") +MESSAGE(STATUS "Configuring user doxygen doc") + +CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/CodingStyle.html + ${CMAKE_CURRENT_BINARY_DIR}/CodingStyle.html + IMMEDIATE + ) +CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/DoxyMainPage.txt.in + ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt + @ONLY IMMEDIATE + ) + +SET(INPUT + ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt + ${PROJECT_SOURCE_DIR}/lib + ${PROJECT_SOURCE_DIR}/appli + ) + +INCLUDE(../../cmake/UserBuildDoxygenDoc.cmake) +USER_BUILD_DOXYGEN_DOC( + "${PROJECT_NAME}" + "${INPUT}" + "${PROJECT_NAME}" + "${DOXYGEN_DOC_PREDEFINED}" + ) + +MESSAGE(STATUS "=======================================") diff --git a/doc/UserDoxygen/CodingStyle.html b/doc/UserDoxygen/CodingStyle.html new file mode 100644 index 0000000..57758d7 --- /dev/null +++ b/doc/UserDoxygen/CodingStyle.html @@ -0,0 +1,360 @@ + + + bbtk Developpers + + + + +

bbtk coding style (and other religious/agnostic beliefs)

+
+ +
* Introduction:
+   The following coding style intends to ease the work of developpers
+   themselves but also of users who will study, maintain, fix, and extend
+   the code. Any bread crumbs that you can drop in the way of explanatory
+   names and comments will go a long way towards helping other readers and
+   developers.
+   Keep in mind that to a large extent the structure of code directly
+   expresses its implementation.
+                                                                                
+* Language:
+ - C++ (for the kernel) and Python (for the wrappers).
+ - all the names (variables, members, methods, functions) and comments
+   should be based on English. Documentation, guides, web site and other
+   informations should be in English.
+   Make sure you use correct (basic) English and complete, grammatically
+   correct sentences for comments and documentation.
+                                                                                
+* General layout:
+ - Each line of code should take no more than 79 characters. Break the code
+   across multiple lines as necessary.
+ - Methods and functions should keep a reasonable number of lines when
+   possible (a typical editor displays 50 lines). Avoid code duplication.
+   Always prefer creating a new method or function to duplication.
+   A high indentation level generally suggests the need for a new
+   method or function.
+ - All the code should be properly indented. The appropriate indentation
+   level is TWO spaces for each level of indentation. DO NOT USE TABS.
+   Set up your editor to insert spaces. Using tabs may look good in your
+   editor but will wreak havoc in others, or in external tools (e.g. side
+   by side diffs).
+ - The declaration of variables within classes, methods, and functions
+   should be one declaration per line. Provide them with default values
+   and don't rely on compilers for default initialization.
+                                                                                
+* Naming conventions:
+ - Generalities:
+   In general, names are constructed by using case change to indicate
+   separate words, as in ImageDataSize (standing for "image data size").
+   Underscores are not used. Variable names are choosen carefully with the
+   intention to convey the meaning behind the code. Names are generally
+   spelled out; use of abbreviations is discouraged.
+   [Note: abbreviation are allowable when in common use, and should be in
+    uppercase as in LUT or RGBA.]
+   While this does result in long names, it self-documents the code.
+ - Naming Files:
+   Files should have the same name as the class, with a "bbtk" prepended.
+   Header files are named .h, while implementation files are named either
+   .cxx or .txx, depending on whether they are implementations of templated
+   classes. For example, the class bbtk::BlackBox is declared and defined
+   in the files bbtkBlackBox.h and bbtkBlackBox.cxx.
+ - Naming Class Data Members, Methods, and Functions:
+   Class data members (aka Attributes) are named beginning with a lower case 'm'
+   (m as 'member'!) followed by capital letter as in mGroupPixel, in order not
+   be confused with methods names.
+   Global functions and class methods, either static or class members, are
+   named beginning with a capital letter, as in GetImageDataSize().
+ - Naming Local Variables:
+   Local variables begin in lowercase. There is more flexibility in the
+   naming of local variables although they still should convey some
+   semantics.
+ - Naming function parameters:
+   Function parameters begin in lowercase. There is more flexibility in the
+   naming of function parameters although they still should convey some
+   semantics.
+                                                                                 
+* Classes:
+ - Don't use the inline keyword when defining an inline function
+   within a class definition.
+   (Any method defined within a .h file is ipso facto considered as 'inline'.
+   Dont write useless stuff!)
+ - As stated in the "Naming conventions" section, class data members
+   named beginning with a lower case 'm' followed by capital letter 
+   as in mGroupPixel.
+   But the parameter names of method should be named with a lowercase
+   letter (in order to distinguish at a glance data members, from parameters
+   and also to avoid potential collisions with data members):
+      void A::SetGroupPixel( int groupPixel )
+      {
+         mGroupPixel = groupPixel;
+      }
+ - Don't use trailing ';' in inline function definition.
+   use :
+   void A::SetGroupPixel( int groupPixel ){mGroupPixel = groupPixel;}
+     NOT
+   void A::SetGroupPixel( int groupPixel ){mGroupPixel = groupPixel;};
+ - Do not repeat the 'virtual' keyword when overriding virtual base methods
+   in declaration of subclasses:
+     class A
+     {
+        virtual void foo(...);
+     };
+     class B : public bbtk::A
+     {
+        void foo(...);          // and NOT: virtual void foo(...);
+     };
+     
+    (when the keyword 'virtual' is used at the parent level, it's propagated 
+     for all the child classes)
+
+ - In declaration of subclasses, always preprend the class name with 'bbtk::'
+   in order not to confuse Umbrello ( OpenSource UML diagram generator)
+     class A
+     {
+        ...
+     };
+     class B : public bbtk::A // and NOT: class B: public A
+     {
+        ...   
+     };    
+ - The public, protected, private declarations should be at the
+   same indent level as the class. Use :
+     class A
+     {
+     public:
+        void bar(...);
+     protected:
+        void foo(...);	
+     private:
+        void pff(...);
+     };
+     
+ - The Data members should be declared at the end of the class declaration :
+     class A
+     {
+     public:
+        void bar(...);
+     protected:
+        void foo(...);
+     private:
+        void pff(...);
+
+     // --- Data members
+     
+     public:
+        int mPublicCounter;
+     protected:
+        int mProtectedCounter;
+     private:
+        int mPrivateCounter;     
+     }; 
+ 
+ - Method and functions devoided of arguments should not use the void
+   notation. Use :
+     SomeType Header::GetPixelData()
+   and not
+     SomeType Header::GetPixelData(void)
+                                                                                
+* Use of braces:
+ - Braces must be used to delimit the scope of an if, for, while, switch, or
+   other control structure. Braces are placed on a line by themselves, and
+   at the same indentation level as the control structure to which they
+   belong:
+      for (i=0; * i<3; i++)
+      {
+         ...
+      }
+   and NOT :
+      for (i=0; * i<3; i++) {
+         ...
+      }   
+   or when using an if:
+      if ( condition )
+      {
+         ...
+      }
+      else if ( other condition )
+      {
+         ...
+      }
+      else
+      {
+        ....
+      }
+    and NOT :
+      if ( condition ) {
+         ...
+      } else if ( other condition ) {
+         ...
+      } else {
+         ....
+      }    
+   You can choose to use braces on a line with a code block when
+   the block consists of a single line:
+      if ( condition ) { foo=1; }
+      else if ( condition2 ) { foo=3; }
+      else { return; }
+   or
+      for (i=0; i<3; ++i) {x[i]=0.0;}
+   Methods and functions should follow the same usage of braces:
+      void File::ParsePixelData()
+      {
+         ...
+      }
+
+* Special layout:
+ - Avoid code mixed with comments on a single line. Instead, prepend the
+   logical blocks of code with the concerned comments.
+ - Use parentheses around conditions e.g. with an if statement:
+      if ( someLocalVariable == 2 ) { ... }
+ - Add spaces around parentheses, or braces. Use
+      if ( someLocalVariable == 2 ) { mClassMember += 1; }
+   and not
+      if (someLocalVariable == 2) {mClassMember += 1;}
+ - Add spaces around each side of the assignement operator, and
+   around binary operators used in boolean expression. Use
+      someLocalVariable = mClassMember * 2;
+      if ( someLocalVariable == 2 || mClassMember == 2 ) ...
+   and not
+      someLocalVariable=mClassMember*2;
+      if ( someLocalVariable==2||mClassMember==2 ) ...
+                                                                                
+* Miscelaneous:
+ - Don't use underscores. Don't use tabs. Don't use control characters
+   like ^M. Anyhow, cvs is configured to reject such commits.
+ - Comments should be in C++ style ("// ...", two slashes, per line). Don't
+   use C style comments ("/* ... */").
+ - The last line of a file should terminate with "\n".
+ - Returned arguments of methods and functions should not be wrapped with
+   parentheses. Use
+      return iter->second;
+   but do not use
+      return ( iter->second );
+                                                                                
+* Debugging and Verbose modes:
+   Never use std::cout. Instead use the bbtkMessage, bbtkDebugMessage, bbtkWarning or bbtkError macros and their variants. Example:
+      #include "bbtkMessageManager.h"
+      ...
+      {
+         bbtkDebugMessageInc("MyClass",9,"Local function name: entering.");
+         ...
+         bbtkDecTab("MyClass",9);
+      }
+    will send the message to std::cout when the Debug messages are compiled 
+    and the Message Level for the category of messages "MyClass" is greater than 9.
+                                                                                
+* Documentation:
+   The Doxygen open-source system is used to generate on-line documentation.
+   Doxygen requires the embedding of simple comments in the code which is in
+   turn extracted and formatted into documentation. See :
+      http://www.stack.nl/~dimitri/doxygen/
+   for more information about Doxygen.
+ - Documenting a class:
+   Classes should be documented using the class and brief doxygen commands,
+   followed by the detailed class description:
+      /**
+       * \class Header
+       * \brief Header acts as container of Dicom elements of an image.
+       *
+       * Detailed description of the class is provided here
+       * ...
+       */
+   The key here is that the comment starts with /**, each subsequent line has
+   an aligned *, and the comment block terminates with a */.
+ - Documenting class members and inline methods:
+   All the members and the inline methods should be documented within
+   the class declaration ( .h file) as shown in the following example:
+      class Header
+      {
+         /// True when parsing was successfull. False otherwise.
+         bool mReadable = false;
+                                                                                
+         /// \brief The number of lines of the image as interpreted from
+         ///        the various elements encountered at header parsing.
+         int mNumberOfLines = -1;
+                                                                                
+         /// Predicate implemented as accessor around \ref mReadable.
+         bool IsReadable() { return mReadable; }
+      };
+ - Documenting a Method:
+   Methods should be documented using the following comment block style
+   as shown in the following example:
+                                                                                
+      /**
+       * \brief  Within the Dicom Elements (parsed with the public and private
+       *         dictionaries), look for the element value representation of
+       *         a given tag.
+       * @param  group  Group number of the searched tag.
+       * @param  elem Element number of the searched tag.
+       * @return Corresponding element value representation when it exists,
+       *         and the string "bbtk::Unfound" otherwise.
+       */
+      std::string Document::GetEntryByNumber(guint16 group, guint16 elem)
+      {
+         ...
+      }
+                                                                                
+* External includes and C style:
+ - Only the C++ standard library and the STL includes should be used.
+   When including don't use the .h extension (use #include 
+   instead of #include ).
+   Note: include the stl header AFTER the bbtk ones (otherwise pragma
+         warnings won't work).
+ - Don't use the C standard library. Don't include stdio.h, ctype.h...
+   Don't use printf(), sprinf(), FILE*...
+ - Don't use the NULL notation (neither as macro, nor as const int NULL=0).
+   A pointer that doesn't refer to an object should simply be defined as
+      DataPointer *myDataPointer = 0;
+                                                                                
+* Basic types:
+ - Assume T is a given type. When declaring or defining with the
+   "pointer to T" notation, the * character must be adjacent to
+   the variable and not the type. That is use
+      T *foo = 0;
+   and not
+      T* foo = 0;
+   nor
+      T * foo = 0;
+ - Assume T is a given type. When declaring or defining with the
+   "reference to T" notation, the & character must be adjacent to
+   the variable and not the type. That is use :
+      T &foo = 0;
+   and not
+      T& foo = 0;
+
+   (Doxygen will not have any longer to correct)
+
+ - Always define a typedef for a new type and be consistent in usage.
+   Use :
+      typedef Header *HeaderPointer;
+      HeaderPointer myHeaderPointer;
+      
+ - One notorious counter example for non using C style inclusion concerns
+   exact-width integers (since there seem to be no equivalent for C++).
+   When using exact-width integers use the typedef names defined by
+   the Basic ISO C99: 7.18 Integer types i.e.
+      int8_t     int16_t     int32_t     int64_t (signed integers)
+   and
+      uint8_t    uint16_t    uint32_t    uint64_t (unsigned integers).
+   Conversion table is then:
+    unsigned char       -> uint8_t;
+    unsigned short      -> uint16_t;
+    unsigned int        -> uint32_t;
+    unsigned long       -> uint32_t;
+    unsigned long long  -> uint64_t;
+    (signed) char       -> int8_t;
+    short               -> int16_t;
+    int                 -> int32_t;
+    long                -> int32_t;
+    long long           -> int64_t;
+   Hence do not use declarations like "unsigned int".
+   With g++, accessing those typedef is achieved by the following
+      #include < stdint.h >
+
+ + + +
+ + diff --git a/doc/UserDoxygen/DoxyMainPage.txt.in b/doc/UserDoxygen/DoxyMainPage.txt.in new file mode 100644 index 0000000..94c4c71 --- /dev/null +++ b/doc/UserDoxygen/DoxyMainPage.txt.in @@ -0,0 +1,19 @@ +/** + * \mainpage bbtk documentation + +\htmlonly + +"A black box is any system in which only the input and output characteristics are of interest - without regard to its internal mechanism or structure" (from wikipedia ) + +
  • + Coding Style +
  • + +\endhtmlonly + + + + + + + */ diff --git a/doc/UserDoxygen/Doxyfile.txt.in b/doc/UserDoxygen/Doxyfile.txt.in new file mode 100644 index 0000000..44afa2a --- /dev/null +++ b/doc/UserDoxygen/Doxyfile.txt.in @@ -0,0 +1,1358 @@ +# Doxyfile 1.5.5 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = @DOXYGEN_PROJECT_NAME@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @PROJECT_VERSION@ + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = @DOXYGEN_OUTPUT@ + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, +# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, +# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, +# and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = YES + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = @DOXYGEN_LOGFILE@ + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = @DOXYGEN_INPUT@ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +FILE_PATTERNS = *.h \ + *.cxx \ + *.txx + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = @DOXYGEN_EXCLUDE@ + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = *.cxx + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = YES + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentstion. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 3 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = @DOXYGEN_HTML_OUTPUT@ + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = YES + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = YES + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = @DOXYGEN_DOC_PREDEFINED@ + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = @DOXYGEN_HAVE_DOT@ + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = YES + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = "@DOXYGEN_DOT_PATH@" + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is enabled by default, which results in a transparent +# background. Warning: Depending on the platform used, enabling this option +# may lead to badly anti-aliased labels on the edges of a graph (i.e. they +# become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/doc/config.tex b/doc/config.tex new file mode 100644 index 0000000..e94eb1f --- /dev/null +++ b/doc/config.tex @@ -0,0 +1,169 @@ +% ========================================== +\newif\ifpdf +\ifx\pdfoutput\undefined \pdffalse % we are not running PDFLaTeX +\else +\pdfoutput=1 \pdftrue % we are running PDFLaTeX +\fi +% ========================================== +\usepackage[a4paper,textwidth=14cm]{geometry} +\usepackage[latin1]{inputenc} +\usepackage{varioref} +\usepackage{url} +\usepackage{multicol} +\usepackage{colortbl} +%\usepackage[active]{srcltx} +\usepackage{color} +\usepackage[english]{babel} +%\usepackage{picins} +%\usepackage{fancyhdr} +%\usepackage{picins} +\usepackage{xspace} +% ========================================== +%%% Math +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{bm} +\usepackage{theorem} +\usepackage{stmaryrd} + +% ========================================== +%%% Graphics +\usepackage{graphics} +\ifpdf +\usepackage[pdftex]{graphicx} +\else +\usepackage[ps2pdf]{graphicx} +\fi +\graphicspath{{figs/}} + +% ========================================== +% bib +\usepackage{natbib} +%\bibliographystyle{abbrvnat} +\bibliographystyle{plainnat} + +%\bibliographystyle{plain} + +% http://merkel.zoneo.net/Latex/natbib.php?lang=fr + +% ========================================== +%% PDF configuration +% http://www.p-joeckel.de/pdflatex/) +% http://ringlord.com/publications/latex-pdf-howto/ + +%%%% Options of pdflatex +\ifpdf +\DeclareGraphicsExtensions{.pdf,.jpg,.mps,.png,.eps} +\usepackage[pdftex, % + bookmarks = true,% % Signets + bookmarksnumbered = true,% % Signets numérotés + pdfpagemode = None,% % Signets/vignettes fermé à l'ouverture + pdfstartview = FitH,% % La page prend toute la largeur + pdfpagelayout = SinglePage,% Vue par page + colorlinks = true,% % Liens en couleur + urlcolor = magenta,% % Couleur des liens externes + pdfborder = {0 0 0}% % Style de bordure : ici, pas de bordure + ]{hyperref}% % Utilisation de HyperTeX +%\usepackage[pdftex,bookmarks,pagebackref]{hyperref} +\pdfadjustspacing=1 + +%%%% Options for latex + dvips -Ppdf + ps2pdf +\else +\DeclareGraphicsExtensions{.eps,.ps} +\usepackage[ps2pdf,bookmarks,pagebackref]{hyperref} +\fi + +%%%% Commun options +\hypersetup{ + linktocpage,% + %%------------- Color Links ------------------------------ + colorlinks=true,% + linkcolor=myred,% + citecolor=mydarkblue,% + urlcolor=myblue,% + menucolor=red,% + %%------------- Doc Info --------------------------------- + pdftitle={The Black Box Toolkit},% + pdfauthor={},% + %%------------ Doc View ----------------------------------} + pdfhighlight=/P,% + bookmarksopen=false,% + plainpages=false, + pdfpagemode=None} + +\hyperbaseurl{http://www.creatis.insa-lyon.fr/creatools/} + +\definecolor{myblue}{rgb}{0,0,0.7} +\definecolor{myred}{rgb}{0.7,0,0} +\definecolor{mygreen}{rgb}{0,0.7,0} +\definecolor{mydarkblue}{rgb}{0,0,0.5} + +% ========================================== +\def\UserProyectVersion{@PROJECT_VERSION@} +\def\UserProyectVersionDate{@PROJECT_VERSION_DATE@} +\def\todo{\scriptsize\fbox{\bf TODO !!}\normalsize} +\def\x{\bm{x}} +\def\UserProyect{{\xspace}$\texttt{@PROYECT_NAME@}$ } + +\def\bb{{\xspace}$\texttt{bb}$ } +%\def\bbp{{\xspace}$\texttt{bbp}$\xspace} + +\def\cmake{{\xspace}$\texttt{cmake}$ } + +\def\C{{\xspace}$\texttt{C}$ } +\def\CPP{{\xspace}$\texttt{C++}$ } + +\def\xml{{\xspace}$\texttt{xml}$ } + + +\def\lin{{\xspace}\textit{Linux} } +\def\win{{\xspace}\textit{Windows} } + + +\def\UserDocumentGuide [#1]{ +\begin{center} +{\Large \UserProyect} +\vspace{1cm} + +{\Huge #1} +\vspace{1cm} + +\UserProyect version \UserProyectVersion \hspace{2mm}(\UserProyectVersionDate) +\vspace{0.5cm} + +Generated on : \today +\vspace{0.5cm} + +Eduardo D\'avila, Jean-Pierre Roux, Juan Carlos Prieto +\vspace{0.3cm} + +CREATIS-LRMN, Centre de Recherche en Imagerie M\'edicale \\ +CNRS UMR 5220, INSERM U620, INSA Lyon, Universit\'e Claude-Bernard Lyon 1 + +\end{center} +\tableofcontents +\listoftables +\listoffigures +} + +% ========================================== +%%% mode: latex +%%% TeX-master: "UserProyectUsersGuide" +%%% End: + +\newcounter{Ctrfile} +%% env +\newenvironment{file}[1] +{ +\bigskip\hrule\smallskip +\stepcounter{Ctrfile} +\textbf{File #1} +%\hspace{0.2cm}\arabic{Ctrfile}\hfill \textbf{#1} +\smallskip\hrule\medskip +%\algocaption{#1} +} +{ +\hrule\smallskip +\hfill\textbf{End of file} +\smallskip\hrule +\bigskip +} diff --git a/doc/help_contents.html.in b/doc/help_contents.html.in new file mode 100644 index 0000000..54410f7 --- /dev/null +++ b/doc/help_contents.html.in @@ -0,0 +1,14 @@ + + + + Help Contents - User Proyect @BBTK_VERSION@ + + + +

    Help Contents

    + +BBTK Doc
    + + + + diff --git a/doc/index-no-frame.html.in b/doc/index-no-frame.html.in new file mode 100644 index 0000000..d1c4acd --- /dev/null +++ b/doc/index-no-frame.html.in @@ -0,0 +1,14 @@ + + + + + + +Redirection + + + + +

    Redirection

    + + diff --git a/doc/index.html.in b/doc/index.html.in new file mode 100644 index 0000000..f6341df --- /dev/null +++ b/doc/index.html.in @@ -0,0 +1,15 @@ + + + +User Project + + + + + + + +<body bgcolor="#FFFFFF" text="#000000"> +</body> + + diff --git a/doc/template_WebSite/CMakeLists.txt b/doc/template_WebSite/CMakeLists.txt new file mode 100644 index 0000000..09ed25d --- /dev/null +++ b/doc/template_WebSite/CMakeLists.txt @@ -0,0 +1,25 @@ +MESSAGE(STATUS "") +MESSAGE(STATUS "=======================================") +MESSAGE(STATUS "Configuring User html doc") + +# Configure & install images +USER_DOC_INSTALL_IMAGES(template_WebSite) + +# Configure html pages for build tree and install +FILE(GLOB HTML_PAGES "." "*.html") +FOREACH(page ${HTML_PAGES}) + GET_FILENAME_COMPONENT(filename "${page}" NAME) + CONFIGURE_FILE( + ${page} + ${${PROJECT_NAME}_DOC_BUILD_PATH}/template_WebSite/${filename} + @ONLY + ) + # Install + INSTALL( + FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/template_WebSite/${filename} + DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/template_WebSite + ) +ENDFOREACH(page) + + +MESSAGE(STATUS "=======================================") diff --git a/doc/template_WebSite/README.txt b/doc/template_WebSite/README.txt new file mode 100644 index 0000000..a947fbe --- /dev/null +++ b/doc/template_WebSite/README.txt @@ -0,0 +1,4 @@ +* menu.html : the menu used by ../index.html.in and ../index-no-frame +* home.html : the home page used by ../index.html.in and ../index-no-frame +* install.html : install instructions +* download.html : download instructions (obsolete) diff --git a/doc/template_WebSite/home.html b/doc/template_WebSite/home.html new file mode 100644 index 0000000..ba190b9 --- /dev/null +++ b/doc/template_WebSite/home.html @@ -0,0 +1,39 @@ + + + + + Home + + +
    + +User Project documentation
    +

    + +
    Follow this link User Install Instructions
    +
    +Read the users' guide if you +want to learn how to use bbtk development environnement (bbStudio) and +how to write black box scripts.
    +
    +Read the package +developers' guide to learn how to create your own black boxes and +packages.
    +
    +Developers might also be interested in doxygen documentation of the +source code of bbtk library.
    +
    +The boxes lists contain the boxes of bbtk core packages (std,wx,vtk...) +for current version.
    +
    +All this documentation is also available from bbStudio.
    +
    +
    +
    + + diff --git a/doc/template_WebSite/install.html b/doc/template_WebSite/install.html new file mode 100644 index 0000000..483722c --- /dev/null +++ b/doc/template_WebSite/install.html @@ -0,0 +1,869 @@ + + + + + User Project Documentation + + + +

    Linux

    +

    Requirements

    +
      +
    • cmake >= 2.4.6
    • +
    • crea >= 0.2.0
      +
    • +
    • wxWidgets  >=   +2.6.3 
    • +
    • optional :
      +
    • +
        +
      • LaTeX +to generate the pdf guides
        +
      • +
      • tth to generate the html +guides
        +
      • +
      • itk to compile packages itk, +itkvtk
      • +
      • vtk to compile package vtk, +wxvtk
      • +
      • doxygen to build the sources +documentation
      • +
      • graphviz/dot to generate the +packages doc with pipeline graphs
        +
      • +
          +
        +
      +
    + +

    Known working configurations

    +  +- gcc:
    +        4.3.0 (Fedora Core 9)
    +
            +4.2.0 (OpenSuse 10.3)
    +
            +4.1.2 20070925 (Red Hat 4.1.2-33)
    +
            4.1.2 +20070626 (Red Hat 4.1.2-13)
    +
      +      4.1.1 20070105 (Red Hat 4.1.1-51)
    +
        +    4.0.2 20051125 (Red Hat 4.0.2-8)
    +
        +- cmake:
    +
        +    2.4-patch 6
    +
       +- wxGTK-devel:
    +
            +2.8.6
    +
            +2.6.3
    +
       +- InsightToolkit:
    +
        +    3.4
    +
        +    3.2
    +
        +    2.8.1-5
    +
       +- vtk:
    +
        +    5.0.3-1
    +

    Install from sources

    +    Uncompress the +archive or checkout the source from the cvs repository
    +    In the parent folder of the bbtk sources type :
    +    > mkdir bbtkbin; cd bbtkbin
    +    > ccmake ../bbtk
    +    Check the desired +options. See CMake build options for a description.
    +
    +
    ==> +IMPORTANT NOTE :
    +
    +
        +Type 'c' many +times until no area is flagged with a '*' and three times more +then type 'g', to generate.
    +    > make
    +    > sudo make install
    +   Enjoy !
    +
    +
    +

    Uninstall
    +

    +    You can run bbtk-uninstall.sh +as root.
    +    WARNING :
    +       This is a brute force **UNSAFE** +uninstaller which removes all files and folders starting with 'bb' in :
    +        INSTALL-PREFIX/bin
    +        INSTALL-PREFIX/lib
    +        INSTALL-PREFIX/include
    +        INSTALL-PREFIX/share/bbtk
    +    However it lists the files found and prompts you +before proceeding...
    +
    +
    +
    +

    Windows

    + +

    Requirements

    +

    Mandatory

    +
      +
    • .net V7 to +compile the kernel and the packages
      +
    • +
    • CMake +2.4 patch 6 to +generate the project file for .net
    • +
    • wxWidgets-2.8.5  +to +build graphical interface boxes
    • +
    +

    Optional

    +
      +
    • VTK +5.0.3 source  to build vtk boxes 
    • +
    • InsightToolkit-3.4.0 +to build itk boxes
    • +
    • Miktex +(TeX compiler +and TeX-Pdf +translation tool) to build documentations
    • +
    • TTH (TeX +to HTML translation +tool) to build html documentations
    • +
    • Doxygen +to build the +code documentations
    • +
    • Graphviz +to generate the +graphs in doxygen doc and black box pipelines graphs  +
      +
    • +
    + +

    Known working configurations

    +
      +
    • .net V7
      +
    • +
    • cmake
    • +
        +
      • 2.4 +patch 6
      • +
      +
    • wxWidgets
    • +
        +
      • 2.8.5
      • +
      +
    • InsightToolkit
    • +
        +
      • 3.4.0
      • +
      +
    • vtk
    • +
        +
      • 5.0.3          +
        +
      • +
      +
    + +

    Steps
    +

    + + +
      +
        +
      • Uncompress +the sources in yourSourceDirectory +or checkout the source from the cvs 
      • +
      • Create +the build folder yourSourceDirectory\bin
      • +
      • Drag and drop the file yourSourceDirectory\CMakeLists.txt on the CMakeSetup icon
      • + +
      • To build with WxWidgets : the .ddl +must be accessible; either their names are in system PATH variable, +either copy +them in the current bin directory (bin/Debug or bin/Release, depending +whether you compiled in Debug or Release mode)
      • +
      • To build with VTK : the .ddl must be accessible; either their +names are in system PATH variable, either copy +them in the current bin directory (bin/Debug or bin/Release, depending +whether you compiled in Debug or Release mode)
      • +
      • To +build with ITKthe .ddl must be accessible; either their +names are in system PATH variable, either copy +them in the current bin directory (bin/Debug or bin/Release, depending +whether you compiled in Debug or Release mode)
      • +
      • Open +the solution created by cmake : ourSourceDirectory\bin\BBTK.sln and build +the entire solution.
      • +
          +
        • If +you get dll error messages close the message(s) and after it's +done, rebuild the complete solution.
        • +
        • If +you get package intallation messages for missing and required +files like fileName.sty, +install them all.
        • +
        • The packages correspond to +on-line complements that the MikTex program +needs to build the BBTK documentation.
        • +
        +
      +
    +Enjoy !
    +
    +
    +
    +

    CMake build options

    +The options in grey only appear if +the last non grey option is set to +ON (e.g. itk_IMAGE_DIM_2 and the following ones in grey only appear if +BUILD_BBTK_PACKAGE_itk is ON).
    +The variables in dark grey and italics are NOT options but are +automatically set by cmake according to the options selected. In +particular the variables 'USE_something' +indicate the dependencies on external libraries or utilities.
    +
    Advanced options are not +shown +here...
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Option
    +
    Explaination
    +
    Default
    --BUILD_ALL
    +
    Set to ON to build all the components of the toolkit
    +
    OFF
    +
    BBTK_COMPILE_DEBUG_MESSAGESCompile debug messages in bbtk ?
    +
    OFF
    +
    BBTK_COMPILE_ERROR_MESSAGESCompile error messages in bbtk ?
    +
    ON
    +
    BBTK_COMPILE_MESSAGESCompile normal messages in bbtk ?
    +
    ON
    +
    BBTK_COMPILE_WARNING_MESSAGESCompile warning messages in bbtk +?
    +
    ON
    +
    BBTK_USE_SHIPPED_BOOST
    +
    Use the boost C++ library +provided with bbtk ?
    +If not set you need to have boost installed
    +
    ON
    +
    BBTK_USE_WXWIDGETS
    +
    Build with the wxWidgets library +?
    +
    ON
    +
    BUILD_APPLICATIONS
    +
    Build bbtk applications : development studio (bbStudio), +interpreter +(bbi), xml to C++ code (bbfy), etc. ?
    +
    ON
    +
    BUILD_BBS_APPLI_BINARIES
    +
    Build executables for all bbs applications of all packages ?
    +If set will compile all bbs of folder appli of all packages, using bbc
    +
    OFF
    +
    BUILD_BBTK_DOC
    +
    Build bbtk documentations ?
    +
    OFF
    +
    BUILD_BBTK_DOC_DOXYGEN
    +
    Build +doxygen documentation for bbtk kernel?
    +Requires doxygen
    +
    ON
    +
    BUILD_BBTK_DOC_GUIDES_HTML
    +
    Build +html versions of the guides ?
    +Requires latex, pdftex, tth
    +
    ON
    +
    BUILD_BBTK_DOC_GUIDES_PDF
    +
    Build +pdf versions of the guides ?
    +Requires latex, pdftex
    +
    ON
    +
    BUILD_BBTK_DOC_PACKAGE
    +
    Build +packages html documentations ?
    +
    ON
    +
    BUILD_BBTK_PACKAGE_demo
    +
    Build the package 'demo' ?
    +Requires : itk, vtk
    +
    OFF
    +
    BUILD_BBTK_PACKAGE_itk
    +
    Build the package 'itk' ?
    +Requires : itk
    +
    OFF
    +
     BUILD_BBTK_PACKAGE_itkvtk
    +
    Build the package 'itkvtk ?
    +Requires : itk, vtk
    +
    OFF
    BUILD_BBTK_PACKAGE_std
    +
    Build the package 'std' ?ON
    BUILD_BBTK_PACKAGE_toolsbbtk
    +
    Build the package 'toolsbbtk' ?ON
    +
    BUILD_BBTK_PACKAGE_vtk
    +
    Build the package 'vtk' ?
    +Requires : vtk
    +
    ON
    +
    BUILD_BBTK_PACKAGE_wx
    +
    Build the package 'wx' ?
    +Requires : wxWidgets
    +
    ON
    +
    BUILD_BBTK_PACKAGE_wxvtk
    +
    Build the package 'wxvtk' ?
    +Requires : wxWidgets, vtk
    +
    ON
    +
       +itk_IMAGE_DIM_2
    +
    Compile +itk images of dimension 2 ?
    +
    ON
    +
       +itk_IMAGE_DIM_3Compile +itk images of dimension 3 ?
    +
    ON
    +
       +itk_IMAGE_DIM_4 Compile +itk images of dimension 4 ?
    +
    ON
    +
       +itk_IMAGE_TYPE_CHAR
    +
    Compile +itk images of type char ?
    +
    ON
    +
       +itk_IMAGE_TYPE_DOUBLECompile +itk images of type double ?
    +
    ON
    +
       +itk_IMAGE_TYPE_FLOAT
    +
    Compile +itk images of type float ?
    +
    ON
    +
       +itk_IMAGE_TYPE_INT
    +
    Compile +itk images of type int ?
    +
    ON
    +
       +itk_IMAGE_TYPE_SHORT
    +
    Compile +itk images of type short ?
    +
    ON
    +
       +itk_IMAGE_TYPE_UCHAR
    +
    Compile +itk images of type unsigned char ?
    +
    ON
    +
       +itk_IMAGE_TYPE_UINT
    +
    Compile +itk images of type unsigned int ?
    +
    ON
    +
       +itk_IMAGE_TYPE_USHORT
    +
    Compile +itk images of type unsigned  short ?
    +
    ON
    +
    BUILD_BBTK_PACKAGE_demoBuild the package 'demo' ?
    +Requires : ALL the other +packages
    +
    OFF
    +
    BUILD_BBTK_PACKAGE_itkvtk
    +
    Build the package 'itkvtk' ?
    +Requires : itk, vtk
    +
    OFF
    +
    BUILD_BBTK_PACKAGE_std
    +
    Build the package 'std ? OFF
    +
    BUILD_BBTK_PACKAGE_toolsbbtkBuild the package 'toolsbbtk' ?OFF
    +
    BUILD_BBTK_PACKAGE_vtk
    +
    Build the package 'vtk' ?
    +Requires : vtk
    +
    OFF
    +
    BUILD_BBTK_PACKAGE_wx
    +
    Build the package 'wx' ?
    +Requires : wxWidgets
    +
    OFF
    +
    BUILD_BBTK_PACKAGE_wxvtk
    +
    Build the package 'wxvtk' ?
    +Requires : wxWidgets, vtk
    +
    OFF
    +
    CMAKE_BUILD_TYPE
    +
    Set to "Debug" or "Release"
    +
    -
    +
    CMAKE_INSTALL_PREFIX
    +
    Set the install folder
    +
    /usr/local
    +
    EXECUTABLE_OUTPUT_PATH
    +
    Single output directory for +building all the executables
    +
    -
    +
    LIBRARY_OUTPUT_PATHSingle output directory for +building all the libraries-
    +
    USE_BOOST
    +
    Automatically +set to ON when boost C++ library is needed with the choices made
    +
    -
    +
    USE_DOXYGEN
    +
    Automatically +set to ON when doxygen is needed with the choices made-
    +
    USE_ITK
    +
    Automatically +set to ON when ITK library is needed with the choices made-
    +
    USE_LATEX
    +
    Automatically +set to ON when LaTeX is needed with the choices made-
    +
    USE_TTH
    +
    Automatically +set to ON when tth is needed with the choices made-
    +
    USE_VTK
    +
    Automatically +set to ON when VTK library is needed with the choices made-
    +
    USE_WXWIDGETS
    +
    Automatically +set to ON when wxWidgets library is needed with the choices made-
    +
    +
    + + diff --git a/doc/template_WebSite/menu.html b/doc/template_WebSite/menu.html new file mode 100644 index 0000000..2d6181e --- /dev/null +++ b/doc/template_WebSite/menu.html @@ -0,0 +1,30 @@ + + + + + Home + + +
    + +User Project documentation
    +

    + +
    Follow this link User Install Instructions
    +
    +Read the users' guide To find out more about this application.
    +
    +Or read read the pdf file with the documentation (pdf)
    +
    +The futures developers in this project might be also interested in the doxygen documentation of the +source code of bbtk library.
    + +
    +
    +
    + + diff --git a/install/CMakeLists.txt b/install/CMakeLists.txt new file mode 100644 index 0000000..5f300f3 --- /dev/null +++ b/install/CMakeLists.txt @@ -0,0 +1,112 @@ +#----------------------------------------------------------------------------- +# CPACK+NSIS PACKAGING +#----------------------------------------------------------------------------- + +#---Documentation------------- +#http://www.cmake.org/Wiki/CMake:Packaging_With_CPack +#http://www.cmake.org/Wiki/CMake:CPackConfiguration +#http://www.cmake.org/Wiki/CMake:Install_Commands + + +INCLUDE(InstallRequiredSystemLibraries) + +SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME} - CREATIS-LRMN") +SET(CPACK_PACKAGE_VENDOR "CREATIS") +SET(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.txt") +SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt") +SET(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_MAJOR_VERSION}) +SET(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_MINOR_VERSION}) +SET(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_BUILD_VERSION}) + + +#SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools\\\\${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") + + + +IF(WIN32) + SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools\\\\${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") +ELSE(WIN32) + SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools/${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") +ENDIF(WIN32) + + + +IF(WIN32 AND NOT UNIX) + # There is a bug in NSI that does not handle full unix paths properly. Make + # sure there is at least one set of four (4) backlasshes. +#EED SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/kernel/install/gnome/bbi-icon2.bmp") +# SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/BBI_EXE.exe") + SET(CPACK_NSIS_DISPLAY_NAME ${PROJECT_NAME}) + SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/site/creatools/${PROJECT_NAME}") + SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/site/creatools/${PROJECT_NAME}") + SET(CPACK_NSIS_CONTACT "info-dev@creatis.insa-lyon.fr") + SET(CPACK_NSIS_MODIFY_PATH ON) + + SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS " + # NSIS code .. + ") + + SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS " + # NSIS code ... + ") + + + +ELSE(WIN32 AND NOT UNIX) +# SET(CPACK_STRIP_FILES "bin/bbi") + SET(CPACK_SOURCE_STRIP_FILES "") +ENDIF(WIN32 AND NOT UNIX) +#SET(CPACK_PACKAGE_EXECUTABLES "TestWxGimmickDialog" "Gimmick!") + + +INCLUDE(CPack) + + + + +IF(EXWIN32) + +OPTION(STANDALONE_INSTALLER_${PROJECT_NAME} "Install and add to installer all dlls needed, including from external toolkits (wx,itk,vtk)?" OFF) + +IF(BBTK_STANDALONE_INSTALLER) + STRING(REGEX REPLACE "\\\\" "/" WINDIR "$ENV{WINDIR}") +# INSTALL( FILES ${WINDIR}/system32/msvcp71d.dll DESTINATION bin/ ) +# INSTALL( FILES ${WINDIR}/system32/msvcr71d.dll DESTINATION bin/ ) + + IF(USE_VTK) + SET(VTK_BIN_DIR ${VTK_DIR}/../../bin ) + + FILE(GLOB LST_FILE_VTKDLL "${VTK_BIN_DIR}/*.dll") + FOREACH( iLST ${LST_FILE_VTKDLL} ) + INSTALL( + FILES ${iLST} + DESTINATION bin/ + ) + ENDFOREACH(iLST) + ENDIF(USE_VTK) + + IF(USE_ITK) + INSTALL( FILES ${ITK_DIR}/bin/ITKCommon.dll DESTINATION bin/ ) + ENDIF(USE_ITK) + + IF(USE_WXWIDGETS) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_xrc_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_richtext_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_qa_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_media_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_html_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_gl_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_core_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_aui_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxmsw28d_adv_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxbase28d_xml_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxbase28d_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxbase28d_odbc_vc_custom.dll DESTINATION bin/ ) + INSTALL( FILES ${WXWIDGETS_ROOT_DIR}/lib/vc_dll/wxbase28d_net_vc_custom.dll DESTINATION bin/ ) + ENDIF(USE_WXWIDGETS) +ENDIF(BBTK_STANDALONE_INSTALLER) + +## Use ... + + +ENDIF(EXWIN32) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt new file mode 100644 index 0000000..246edf0 --- /dev/null +++ b/lib/CMakeLists.txt @@ -0,0 +1,4 @@ +# Add a SUBDIRS command for each of your libraries +# SUBDIRS(MyLib1) +SUBDIRS(EditorGraphicBBS) + diff --git a/lib/EditorGraphicBBS/CMakeLists.txt b/lib/EditorGraphicBBS/CMakeLists.txt new file mode 100644 index 0000000..98f92c1 --- /dev/null +++ b/lib/EditorGraphicBBS/CMakeLists.txt @@ -0,0 +1,3 @@ +SUBDIRS(bbsKernelEditorGraphic) +SUBDIRS(bbsVtkGUIEditorGraphic) +SUBDIRS(bbsWxGUIEditorGraphic) \ No newline at end of file diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/CMakeLists.txt b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/CMakeLists.txt new file mode 100644 index 0000000..4287ca8 --- /dev/null +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/CMakeLists.txt @@ -0,0 +1 @@ +# \ No newline at end of file diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/CMakeLists.txt b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/CMakeLists.txt new file mode 100644 index 0000000..4287ca8 --- /dev/null +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/CMakeLists.txt @@ -0,0 +1 @@ +# \ No newline at end of file diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/CMakeLists.txt b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/CMakeLists.txt new file mode 100644 index 0000000..642b0a3 --- /dev/null +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/CMakeLists.txt @@ -0,0 +1,13 @@ + + +FILE(GLOB bbsWxGUIEditorGraphic_CXX_SOURCES "." "*.cxx") +FILE(GLOB bbsWxGUIEditorGraphic_H_SOURCES "." "*.h") + +INCLUDE_DIRECTORIES(../bbsKernelEditorGraphic) +INCLUDE_DIRECTORIES(../bbsVtkGUIEditorGraphic) + +ADD_LIBRARY(bbsWxGUIEditorGraphic + ${bbsWxGUIEditorGraphic_CXX_SOURCES} + ${bbsWxGUIEditorGraphic_H_SOURCES} ) + +#TARGET_LINK_LIBRARIES(bbsWxGUIEditorGraphic bbtk ) diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx new file mode 100644 index 0000000..05d5099 --- /dev/null +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx @@ -0,0 +1,113 @@ +/*========================================================================= + Program: bbtk + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ +=========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ + +/** + * \file + * \brief Class bbtk::WxInterfaceEditorGraphicBBS . + */ + + + +#include "bbtkwxGUIEditorGraphicBBS.h" +#include "bbtkwxGUIEditorGraphicContainer.h" + +#include + + +namespace bbtk +{ + + + //========================================================================= + wxGUIEditorGraphicBBS::wxGUIEditorGraphicBBS(wxFrame *parent) + : wxFrame(parent, -1, _T("bbEditor"),wxDefaultPosition, wxSize(1200,800)) + { + m_mgr.SetManagedWindow(this); + editorgraphiccontainer = new wxGUIEditorGraphicContainer(this); + + wxPanel *mWxGUIGrapphicEditorPanel = new wxPanel(this,-1); + wxPanel *mWxGUIBoxBrowserPanel = new wxPanel(this,-1); + wxPanel *mWxGUIConfigurationGraphicEditorPanel = new wxPanel(this,-1); + + mWxGUIGrapphicEditorPanel->SetBackgroundColour( wxColor(255,0,0) ); + mWxGUIBoxBrowserPanel->SetBackgroundColour( wxColor(0,255,0) ); + mWxGUIConfigurationGraphicEditorPanel->SetBackgroundColour( wxColor(255,0,255) ); + + // + m_mgr.AddPane(mWxGUIGrapphicEditorPanel, + wxAuiPaneInfo().Name(wxT("graphic_editor_content")) + .Caption(wxT("Graphic editor")) + .MinimizeButton(true) + .MaximizeButton(true) + .Center() + .MinSize(wxSize(100,100)) + ); + + m_mgr.AddPane(mWxGUIBoxBrowserPanel, + wxAuiPaneInfo().Name(wxT("box_browser_content")) + .Caption(wxT("Box browser")) + .MinimizeButton(true) + .MaximizeButton(true) + .Right() + .Layer(2) + .MinSize(wxSize(400,100)) + ); + + m_mgr.AddPane(mWxGUIConfigurationGraphicEditorPanel, + wxAuiPaneInfo().Name(wxT("configuration_graphic_editor_content")) + .Caption(wxT("Messages")) + .MinimizeButton(true) + .MaximizeButton(true) + .Bottom() + .MinSize(wxSize(100,100)) + ); + + SetAutoLayout(true); + Layout(); + m_mgr.Update(); + + WxGUIPackageBrowser2 *bb= new WxGUIPackageBrowser2(this); + + } + + //========================================================================= + wxGUIEditorGraphicBBS::~wxGUIEditorGraphicBBS() + { + delete editorgraphiccontainer; + m_mgr.UnInit(); + } + //========================================================================= + + + +} // EO namespace bbtk + +// EOF + diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h new file mode 100644 index 0000000..eccbb09 --- /dev/null +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h @@ -0,0 +1,72 @@ +/*========================================================================= + Program: bbtk + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ +=========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ + + + +/** + * \file + * \brief Class bbtk::BlackBox : abstract black-box interface. + */ + +/** + * \class bbtk::WxGUIEditorGraphicBBS + * \brief + */ + +#ifndef __WxGUIEditorGraphicBBS_h__ +#define __WxGUIEditorGraphicBBS_h__ + +#include +#include + + +namespace bbtk +{ + + class wxGUIEditorGraphicContainer; + + class wxGUIEditorGraphicBBS : public wxFrame + { + public: + wxGUIEditorGraphicBBS(wxFrame *parent ); + ~wxGUIEditorGraphicBBS(); + private: + wxAuiManager m_mgr; + wxGUIEditorGraphicContainer *editorgraphiccontainer; + + protected: + + }; + + +} +// namespace bbtk +#endif + diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicContainer.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicContainer.cxx new file mode 100644 index 0000000..78e5754 --- /dev/null +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicContainer.cxx @@ -0,0 +1,59 @@ +/*========================================================================= + Program: bbtk + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ +=========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ + +/** + * \file + * \brief Class bbtk::wxGUIEditorGraphicContainer . + */ + + +#include "bbtkwxGUIEditorGraphicContainer.h" + +namespace bbtk +{ + + + //========================================================================= + wxGUIEditorGraphicContainer::wxGUIEditorGraphicContainer(wxWindow *parent ) + { + } + + //========================================================================= + wxGUIEditorGraphicContainer::~ wxGUIEditorGraphicContainer() + { + } + //========================================================================= + + + +} // EO namespace bbtk + +// EOF + diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicContainer.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicContainer.h new file mode 100644 index 0000000..f393b17 --- /dev/null +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicContainer.h @@ -0,0 +1,67 @@ +/*========================================================================= + Program: bbtk + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ +=========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ + + + +/** + * \file + * \brief Class bbtk::wxGUIEditorGraphicContainer . + */ + +/** + * \class bbtk::wxGUIEditorGraphicContainer + * \brief + */ + +#ifndef __wxGUIEditorGraphicContainer_h__ +#define __wxGUIEditorGraphicContainer_h__ + +#include + +namespace bbtk +{ + + + class wxGUIEditorGraphicContainer + { + public: + wxGUIEditorGraphicContainer( wxWindow *parent ); + ~wxGUIEditorGraphicContainer(); + private: + + protected: + + }; + + +} +// namespace bbtk +#endif + diff --git a/lib/template_lib/CMakeLists.txt b/lib/template_lib/CMakeLists.txt new file mode 100644 index 0000000..2b42170 --- /dev/null +++ b/lib/template_lib/CMakeLists.txt @@ -0,0 +1,86 @@ +#---------------------------------------------------------------------------- +# SET THE NAME OF YOUR LIBRARY +# (Replace 'MyLib' by your own library name) + +############################# +SET ( LIBRARY_NAME MyLib ) +############################# + +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# CREATES A USER OPTION IN CMAKE +OPTION ( BUILD_${LIBRARY_NAME} "Build ${LIBRARY_NAME} library ?" ON) +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +IF ( BUILD_${LIBRARY_NAME} ) +#---------------------------------------------------------------------------- + + #---------------------------------------------------------------------------- + # BUILD LIBRARY + #---------------------------------------------------------------------------- + + #---------------------------------------------------------------------------- + # LIBRARY HEADERS (TO BE INSTALLED) + # EITHER LIST ALL .h, *.txx IN CURRENT DIR USING NEXT LINE: + + FILE(GLOB ${LIBRARY_NAME}_HEADERS "*.h" "*.txx") + + # OR MANUALLY LIST YOUR HEADERS WITH NEXT COMMAND + # SET ( ${LIBRARY_NAME}_HEADERS + # + # ) + #---------------------------------------------------------------------------- + + #---------------------------------------------------------------------------- + # LIBRARY SOURCES (TO BE COMPILED) + # EITHER LIST ALL .cxx, *.cpp, *.cc IN CURRENT DIR USING NEXT LINE: + + FILE(GLOB ${LIBRARY_NAME}_SOURCES *.cxx *.cpp *.cc) + + # OR MANUALLY LIST YOUR FILES WITH NEXT COMMAND (WITHOUT EXTENSION) + # SET ( ${LIBRARY_NAME}_SOURCES + # + # ) + #---------------------------------------------------------------------------- + + #---------------------------------------------------------------------------- + # LIBRARY DEPENDENCIES (LIBRARIES TO LINK WITH) + # + # Uncomment the Libraries you need + # + SET ( ${LIBRARY_NAME}_LINK_LIBRARIES + # ${crea_LIBRARIES} + # ${WXWIDGETS_LIBRARIES} + # ${KWWidgets_LIBRARIES} + # ${VTK_LIBRARIES} + # ${ITK_LIBRARIES} + # ${GDCM_LIBRARIES} + # ${BOOST_LIBRARIES} + + # If this library must link against other libraries + # Add here any extra Library you need + + ) + #---------------------------------------------------------------------------- + + #---------------------------------------------------------------------------- + # MACRO WHICH DOES ALL THE JOB : BUILD AND INSTALL + + # The default is to create a Dynamic Library. + # if you need to create a static library + # comment out the following line : + + CREA_ADD_LIBRARY( ${LIBRARY_NAME} ) + + # and uncomment the 2 lines hereafter: + + # ADD_LIBRARY(${LIBRARY_NAME} STATIC ${${LIBRARY_NAME}_SOURCES}) + # TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${${LIBRARY_NAME}_LINK_LIBRARIES} ) + + # + #---------------------------------------------------------------------------- + + #--------------------------------------------------------------------------- +ENDIF ( BUILD_${LIBRARY_NAME} ) diff --git a/lib/template_lib/creaSystem.h b/lib/template_lib/creaSystem.h new file mode 100644 index 0000000..d91ccee --- /dev/null +++ b/lib/template_lib/creaSystem.h @@ -0,0 +1,26 @@ + +#ifndef _$PROJECT_NAME$SYSTEM_H_ +#define _$PROJECT_NAME$SYSTEM_H_ + + +// Windoze related troubles (as usual) + +//----------------------------------------------------------------------------- + +#if defined(_WIN32) + #ifdef $PROJECT_NAME$_EXPORT_SYMBOLS + #define $PROJECT_NAME$_EXPORT __declspec( dllexport ) +#else + #define $PROJECT_NAME$_EXPORT __declspec( dllimport ) + #endif + #define $PROJECT_NAME$_CDECL __cdecl +#else + #define $PROJECT_NAME$_EXPORT + #define $PROJECT_NAME$_CDECL +#endif // defined(_WIN32) + +#ifdef __BORLANDC__ + #include +#endif + +#endif diff --git a/lib/template_lib/creaSystem.h.in b/lib/template_lib/creaSystem.h.in new file mode 100644 index 0000000..d91ccee --- /dev/null +++ b/lib/template_lib/creaSystem.h.in @@ -0,0 +1,26 @@ + +#ifndef _$PROJECT_NAME$SYSTEM_H_ +#define _$PROJECT_NAME$SYSTEM_H_ + + +// Windoze related troubles (as usual) + +//----------------------------------------------------------------------------- + +#if defined(_WIN32) + #ifdef $PROJECT_NAME$_EXPORT_SYMBOLS + #define $PROJECT_NAME$_EXPORT __declspec( dllexport ) +#else + #define $PROJECT_NAME$_EXPORT __declspec( dllimport ) + #endif + #define $PROJECT_NAME$_CDECL __cdecl +#else + #define $PROJECT_NAME$_EXPORT + #define $PROJECT_NAME$_CDECL +#endif // defined(_WIN32) + +#ifdef __BORLANDC__ + #include +#endif + +#endif -- 2.45.0