From 2eebcf8f5c4562e07877c1d5de3d420ff7d0dfb5 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 30 Jan 2004 13:28:16 +0000 Subject: [PATCH] This commit was generated by cvs2git to create branch 'BSEC_br1'. Cherrypick from master 2004-01-30 13:28:12 UTC prascle 'PR: merge SalomePro 1_2d = mergefrom_BRANCH_MergeV1_2d': INSTALL LICENCE doc/html/INPUT/sources/bg_salome.gif doc/html/INPUT/sources/static/Link.gif doc/html/INPUT/sources/static/SObject.gif doc/html/INPUT/sources/static/Study_Struct.gif doc/html/INPUT/sources/static/doxygen.css doc/html/INPUT/sources/static/examples_Kernel.html doc/html/INPUT/sources/static/examples_Life_cycle.html doc/html/INPUT/sources/static/examples_Naming.html doc/html/INPUT/sources/static/examples_Study.html doc/html/INPUT/sources/static/mapping.html doc/html/INPUT/sources/static/ns_f3-1.jpg doc/html/INPUT/sources/static/overview_Kernel.html doc/html/INPUT/sources/static/overview_Life_Cycle.html doc/html/INPUT/sources/static/overview_Naming.html doc/html/INPUT/sources/static/overview_Study.html doc/html/INPUT/sources/static/page2.html doc/html/INPUT/sources/static/tree.js doc/html/INPUT/sources/static/treeview.js examples/Makefile.in idl/SALOME_GenericObj.idl src/GenericObj/Makefile.in src/GenericObj/SALOME_GenericObj_i.cc src/GenericObj/SALOME_GenericObj_i.hh src/SALOMEDS/Handle_SALOMEDS_ExternalFileDef.hxx src/SALOMEDS/Handle_SALOMEDS_FileType.hxx src/SALOMEDS/README_attributes src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.cxx src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.hxx src/SALOMEDS/SALOMEDS_AttributeFileType_i.cxx src/SALOMEDS/SALOMEDS_AttributeFileType_i.hxx src/SALOMEDS/SALOMEDS_ExternalFileDef.cdl src/SALOMEDS/SALOMEDS_ExternalFileDef.cxx src/SALOMEDS/SALOMEDS_ExternalFileDef.hxx src/SALOMEDS/SALOMEDS_ExternalFileDef.ixx src/SALOMEDS/SALOMEDS_ExternalFileDef.jxx src/SALOMEDS/SALOMEDS_FileType.cdl src/SALOMEDS/SALOMEDS_FileType.cxx src/SALOMEDS/SALOMEDS_FileType.hxx src/SALOMEDS/SALOMEDS_FileType.ixx src/SALOMEDS/SALOMEDS_FileType.jxx src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.cxx src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.h src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.cxx src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.h src/SALOMELocalTrace/Makefile.in src/SALOMELocalTrace/SALOME_Log.cxx src/SALOMELocalTrace/SALOME_Log.hxx src/SALOMELogger/Makefile.in src/SALOMELogger/SALOME_LoggerClient.cxx src/VTKViewer/VTKViewer_Trihedron.cxx src/VTKViewer/VTKViewer_Trihedron.h src/VTKViewer/VTKViewer_Utilities.cxx src/VTKViewer/VTKViewer_Utilities.h src/VTKViewer/VTKViewer_VectorText.cxx src/VTKViewer/VTKViewer_VectorText.h --- INSTALL | 5 + LICENCE | 504 +++++ doc/html/INPUT/sources/bg_salome.gif | Bin 0 -> 17294 bytes doc/html/INPUT/sources/static/Link.gif | Bin 0 -> 13959 bytes doc/html/INPUT/sources/static/SObject.gif | Bin 0 -> 4966 bytes .../INPUT/sources/static/Study_Struct.gif | Bin 0 -> 5833 bytes doc/html/INPUT/sources/static/doxygen.css | 49 + .../INPUT/sources/static/examples_Kernel.html | 134 ++ .../sources/static/examples_Life_cycle.html | 116 ++ .../INPUT/sources/static/examples_Naming.html | 66 + .../INPUT/sources/static/examples_Study.html | 790 ++++++++ doc/html/INPUT/sources/static/mapping.html | 329 ++++ doc/html/INPUT/sources/static/ns_f3-1.jpg | Bin 0 -> 8650 bytes .../INPUT/sources/static/overview_Kernel.html | 191 ++ .../sources/static/overview_Life_Cycle.html | 90 + .../INPUT/sources/static/overview_Naming.html | 197 ++ .../INPUT/sources/static/overview_Study.html | 261 +++ doc/html/INPUT/sources/static/page2.html | 34 + doc/html/INPUT/sources/static/tree.js | 200 ++ doc/html/INPUT/sources/static/treeview.js | 505 +++++ examples/Makefile.in | 33 + idl/SALOME_GenericObj.idl | 42 + src/GenericObj/Makefile.in | 46 + src/GenericObj/SALOME_GenericObj_i.cc | 61 + src/GenericObj/SALOME_GenericObj_i.hh | 56 + .../Handle_SALOMEDS_ExternalFileDef.hxx | 85 + src/SALOMEDS/Handle_SALOMEDS_FileType.hxx | 85 + src/SALOMEDS/README_attributes | 46 + .../SALOMEDS_AttributeExternalFileDef_i.cxx | 48 + .../SALOMEDS_AttributeExternalFileDef_i.hxx | 56 + src/SALOMEDS/SALOMEDS_AttributeFileType_i.cxx | 48 + src/SALOMEDS/SALOMEDS_AttributeFileType_i.hxx | 56 + src/SALOMEDS/SALOMEDS_ExternalFileDef.cdl | 76 + src/SALOMEDS/SALOMEDS_ExternalFileDef.cxx | 114 ++ src/SALOMEDS/SALOMEDS_ExternalFileDef.hxx | 108 + src/SALOMEDS/SALOMEDS_ExternalFileDef.ixx | 73 + src/SALOMEDS/SALOMEDS_ExternalFileDef.jxx | 18 + src/SALOMEDS/SALOMEDS_FileType.cdl | 76 + src/SALOMEDS/SALOMEDS_FileType.cxx | 114 ++ src/SALOMEDS/SALOMEDS_FileType.hxx | 108 + src/SALOMEDS/SALOMEDS_FileType.ixx | 73 + src/SALOMEDS/SALOMEDS_FileType.jxx | 18 + .../SALOMEGUI_ActivateComponentDlg.cxx | 79 + .../SALOMEGUI_ActivateComponentDlg.h | 35 + .../SALOMEGUI_ExternalBrowserDlg.cxx | 134 ++ src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.h | 36 + src/SALOMELocalTrace/Makefile.in | 49 + src/SALOMELocalTrace/SALOME_Log.cxx | 57 + src/SALOMELocalTrace/SALOME_Log.hxx | 85 + src/SALOMELogger/Makefile.in | 50 + src/SALOMELogger/SALOME_LoggerClient.cxx | 154 ++ src/VTKViewer/VTKViewer_Trihedron.cxx | 390 ++++ src/VTKViewer/VTKViewer_Trihedron.h | 69 + src/VTKViewer/VTKViewer_Utilities.cxx | 195 ++ src/VTKViewer/VTKViewer_Utilities.h | 39 + src/VTKViewer/VTKViewer_VectorText.cxx | 1747 +++++++++++++++++ src/VTKViewer/VTKViewer_VectorText.h | 67 + 57 files changed, 8097 insertions(+) create mode 100644 INSTALL create mode 100644 LICENCE create mode 100755 doc/html/INPUT/sources/bg_salome.gif create mode 100755 doc/html/INPUT/sources/static/Link.gif create mode 100755 doc/html/INPUT/sources/static/SObject.gif create mode 100755 doc/html/INPUT/sources/static/Study_Struct.gif create mode 100755 doc/html/INPUT/sources/static/doxygen.css create mode 100755 doc/html/INPUT/sources/static/examples_Kernel.html create mode 100755 doc/html/INPUT/sources/static/examples_Life_cycle.html create mode 100755 doc/html/INPUT/sources/static/examples_Naming.html create mode 100755 doc/html/INPUT/sources/static/examples_Study.html create mode 100755 doc/html/INPUT/sources/static/mapping.html create mode 100755 doc/html/INPUT/sources/static/ns_f3-1.jpg create mode 100755 doc/html/INPUT/sources/static/overview_Kernel.html create mode 100755 doc/html/INPUT/sources/static/overview_Life_Cycle.html create mode 100755 doc/html/INPUT/sources/static/overview_Naming.html create mode 100755 doc/html/INPUT/sources/static/overview_Study.html create mode 100755 doc/html/INPUT/sources/static/page2.html create mode 100755 doc/html/INPUT/sources/static/tree.js create mode 100644 doc/html/INPUT/sources/static/treeview.js create mode 100644 examples/Makefile.in create mode 100644 idl/SALOME_GenericObj.idl create mode 100644 src/GenericObj/Makefile.in create mode 100644 src/GenericObj/SALOME_GenericObj_i.cc create mode 100644 src/GenericObj/SALOME_GenericObj_i.hh create mode 100644 src/SALOMEDS/Handle_SALOMEDS_ExternalFileDef.hxx create mode 100644 src/SALOMEDS/Handle_SALOMEDS_FileType.hxx create mode 100644 src/SALOMEDS/README_attributes create mode 100644 src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.cxx create mode 100644 src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.hxx create mode 100644 src/SALOMEDS/SALOMEDS_AttributeFileType_i.cxx create mode 100644 src/SALOMEDS/SALOMEDS_AttributeFileType_i.hxx create mode 100644 src/SALOMEDS/SALOMEDS_ExternalFileDef.cdl create mode 100644 src/SALOMEDS/SALOMEDS_ExternalFileDef.cxx create mode 100644 src/SALOMEDS/SALOMEDS_ExternalFileDef.hxx create mode 100644 src/SALOMEDS/SALOMEDS_ExternalFileDef.ixx create mode 100644 src/SALOMEDS/SALOMEDS_ExternalFileDef.jxx create mode 100644 src/SALOMEDS/SALOMEDS_FileType.cdl create mode 100644 src/SALOMEDS/SALOMEDS_FileType.cxx create mode 100644 src/SALOMEDS/SALOMEDS_FileType.hxx create mode 100644 src/SALOMEDS/SALOMEDS_FileType.ixx create mode 100644 src/SALOMEDS/SALOMEDS_FileType.jxx create mode 100644 src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.cxx create mode 100644 src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.h create mode 100644 src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.cxx create mode 100644 src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.h create mode 100644 src/SALOMELocalTrace/Makefile.in create mode 100644 src/SALOMELocalTrace/SALOME_Log.cxx create mode 100644 src/SALOMELocalTrace/SALOME_Log.hxx create mode 100644 src/SALOMELogger/Makefile.in create mode 100644 src/SALOMELogger/SALOME_LoggerClient.cxx create mode 100644 src/VTKViewer/VTKViewer_Trihedron.cxx create mode 100644 src/VTKViewer/VTKViewer_Trihedron.h create mode 100644 src/VTKViewer/VTKViewer_Utilities.cxx create mode 100644 src/VTKViewer/VTKViewer_Utilities.h create mode 100644 src/VTKViewer/VTKViewer_VectorText.cxx create mode 100644 src/VTKViewer/VTKViewer_VectorText.h diff --git a/INSTALL b/INSTALL new file mode 100644 index 000000000..6334efe6a --- /dev/null +++ b/INSTALL @@ -0,0 +1,5 @@ +This is the version 1.4.0 of KERNEL + +Previous versions : + - 1.3.0 + - 1.2.1 diff --git a/LICENCE b/LICENCE new file mode 100644 index 000000000..b1e3f5a26 --- /dev/null +++ b/LICENCE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/doc/html/INPUT/sources/bg_salome.gif b/doc/html/INPUT/sources/bg_salome.gif new file mode 100755 index 0000000000000000000000000000000000000000..677b70468f798fe4fbc20fac3d706e61179ff12b GIT binary patch literal 17294 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 M)V!}C!ol$TKY@nC6951J literal 0 HcmV?d00001 diff --git a/doc/html/INPUT/sources/static/SObject.gif b/doc/html/INPUT/sources/static/SObject.gif new file mode 100755 index 0000000000000000000000000000000000000000..1d4e9cb24adb525809f8e97a21e96ecdafd4c11b GIT binary patch literal 4966 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 literal 0 HcmV?d00001 diff --git a/doc/html/INPUT/sources/static/Study_Struct.gif b/doc/html/INPUT/sources/static/Study_Struct.gif new file mode 100755 index 0000000000000000000000000000000000000000..bc0ce35be243b94242ac361985adf86c250a071e GIT binary patch literal 5833 zcmeH}^;gpm8{aifOHJR(JduNH%NEK5Ri}# zff1kaeV)JK`^$5GxWC?eUgz9%uA;Jnh_EFKfgUIl0Nvf)`33liN{F_$wE_TuUBzah zv;2JgV&Y=z>g$g7jw(tkL`6gk3JYfEW{=K}VvsR?Lw$8Mb=!N}$*IW|H5J%7?C8*_ zwY{~mp7G_`rK7#$<>lq}#`e+CQD1kTj<$}qt+kGxj+>9$=-6m$ck5k%Uu%HhU0dtj zfAapP{}K3qCBS?|2>Ne<7yq^YZbFe14}eG+l&UbDp`_Ftru|hp-I0)|Dp^X^xxFa3 zfWvZsb>7dnhuj1ack=3Q08E$PK>w$L~d+g$`aQ0h0cWyqwVg+-o8T#sjvE>3nwP-MwJk4P@ z#A-!Y-xpTFs%=J01=k6osVka(rq zyF1GaJk|JZhM}k~DL_PY5p63+%L=k;y}!^ca*U-CF)u)2FW4M2Ja=^rF}~=PLe>eN z?R@>w2zDP#1Pg};J|Atv5m>bK=gpe{vA?W2YLfZsPGxb|r6JW%!ry&!q(o^|4KC_` zs2$(!{qTJtQTd?GM;&$GTLb9(xP>YH%S>;mE^*#-+ktH^zYVfrRUk0C1kMA3S*6|FdIy&Yp) zz$e4_pk=!sqFT=H0yAko9pa^#tNE6YyL;-m*jHYwCUCjQ(;kLxGUz56xv3opCQ2{t zyWoytRS-RT;h`#-saJ~`u#G*NHoepHa1skxIiH_KR-CKD(lUw{EE5kdN(v$Z>T>O+ zR_2X`{@HQC_vQ2&TxJJ-zN%mPAf8hHtF=@dHy_SAgIka1#No7)6rHZzQy!#TZDx5L zUTtF{xvzKf)10pV6c>HF-Yx%ec)eFOly>Qw@suKe{LrVDSHJ%2OLwoOoNe*$q8SpJ zWA&5w)7>ebvc-DS-L7wtE%ZF6;|)?Ru+X*#W5?bEqrG~^+EWbTN>O#C`0G*B5B$yX zPoBHmzjL4N{>5!q-r;YXecR0L$T7fI&w3D@mivJ?hT!c?JF(a?0uqBEWL4@UGd>O> zZ^94@_sd)ju5SQYEKM#twiZ+#fL{Lc*grln4a) z`}PE@Rn*)`iQrlYgoFjygPjUY$AqA0*#X@r1(5*107(LNkOq}fLa`Dc&ViACs0EP9 z9RnmW!2lQs0B`_ADaQmN#C3pq?;(U{dr&GdaerltOQN5VCVwH=tW|JrSTIs|nXrOn zYGttNh44DrltV#Y14AZlI(E-D?rCEAhYMB|?dDG?xgtZeRk)}%>RU3(w_tq^_|1&= zPD-ISKU5Nu6Ow6T{t+447)tz3<+!sv<4eTER&0*W1}@gRdg3+IMTim z(!W3rHsmc1qy+M%+#}?lc?4LL0#zLPMaY@YRY@hzbPgJUWV1v_D60+E9%u|HlrCoT zu~diCb&^B(2Yw1ewXmyKf}Rl>@W|u1Ewdn5WN4xk@{9;jwtBGF)XRTS9Uoh6!>YP4 zXnawVK2rWpcxYkN_o5a?eDgVJNY&1SRa(5MvFk$FvzZ*IHabG?Ge5K2i5@Iq$`EG`437{K zvSusT+Auri&90%&GrtgT8zZ$F{8R8C#Q!uSxIjCM0YQmRq3ZxR$$o=~ais)I78p{d zfa~;II?d|hwyJuvF-7O4TJYOLr1d`unt^Njw%XI(*+KJFr!xRz*fRKT$gNPJB z5Q{LWKzW0~+|tTnVbX~J&}l*mC;`&H6s1pplVB%7>;b2}J`p<_^;y<(d3^0;E&wQA zHy(a3f0l(w38XUugfLiugWNx}f`a8kc>zK>UsXn;XeLcp%*aHlORNXiGJF;4(ox9& zEk#A!?PxmrzG!v9Y`~Ou)6MXM1eREN{`JpU0^!1as20^LeOFJ4vHk3=Y|yB43gM3@ zV6WLm#=0X~>eLjs?iHHth2x|rCwZzv+xPKPJ!1*)eb%eXS$jC!tX=cQzVXhw$*Kht zP>r$vWL!I#c1v;nsTMe`PPc{_NdR?yT;kq zHNQwa(r!%lOoHCd@f@nBx7Tb;mgd~yk>|0uCR==(1Kkr8TxEIR4&Ea%+(G5$|AIKZ z1PBZJ%?dR6HPci)kIpSlG?K3RB$!?17^^NtMyf1nrOSI=x z<#%3PAl#ZPzwa?KWl~Y%CF!TN+PS!dzi1e1J@i^FeK3T-v>|Cbj+F4PD0&dY#C`9G z)6jo8IPe>Z*rU|M%@mFOP=C707cqzBaXZz>!{e7Gh zF&jN8+!<1@3*GV8s6(Xo>OWR8Vw$JE%@Z0DmSLW!f0`al^vGYi(}$hS#DlQ>Z?hzHNp?0>OL^~l~#F3uq?v~y! zwY8y3BqC=dUTv-ct2yve5F5V5R$MYF@{N*>W}VCT#4t#)6=#u)QKqDpZ>R)(GxA|jQBPSrceZ3C340E#CPMf0DpScqza z$8?Fr^ccqUdB^mp#|$>a49~}m;$p_(v6CXP(}uCL-m&xPv5O6{%kyH2ZafQ?f~z8N zzYXKIyyJG#<90>j&~RNEHUUy%{iA+gvgLIhP2`zOOr{W`8khcv? zmKTkK2X!%Pa5jksy2sr$p%@&aCjwalS?K@>`6 z6!xE~8xo-GpNaMHNY*u4rYCkYwWjRK@e?oKjoT(tH=5s&Cd(w7!S1;@c_$0mX<*j1 zg|8Asm7ff_zYbtd*sY`eG+_=_4qkzNHn!8HNus^flMpF+`};ib4ZE6bSc*$d>P20O z{6NTGk)(GeK~{f~ZHxp-j8fjy+C8&2BPp>Nnv9bmM)BTDgAcI1WVi6jfnKo2pIbhW z&*v;$lYA2LrbQKvv-A@W(H7OjRM}D{+Ca`Tty^55cIY0b1nKA z`o||-{f7^1?n{GbLdQeB5^Xs5OXj&bsO+>b8GCT{nzkh@ihWy;cb?&ZHmMxbJwrFo^1>JJdfL( z&y(8aVQz$fmxq& zVcWCiUA{?Cj?V>V%1!)~|H)6myoaSeN!}3onh!-XMH~oaa+iYK{!cYv8_qf!g5pTN zx?FsiSg^gZ4Ud@IOmF^3*NZ2;5OQe%)&Zfh0O0W;8eRyU1pui65mzbthXGXMAQC2k z0sx4DfpD85qD~M+6+jFq60CtJ;(_X>4`di9tuv7L7gUD?#rIi>IHX@SMsB`LJM?nx zv$hLM4Tvdy(McsiVQB;A1Jx=36u&?K69Eswv-nhC{yBt58t6n;999G1>H=3fHg7V3 z9s@rhqp1)A#)+Sqx;ySD`zPBWsZ;4?F8HpV(6o4%fR}ViiJ1O2MzhyKToed+Phnk! zAnVSjP^-#AM8QcDOy*%FI2fRWRMsn$-NS$goht>`3UcjplJmSjso=dJXoyQ{$*535 z`f~^!pp+n1a@r-&;#Un$s0Pctcbff1&>_#X<2jVKAg$#Js z0m!Qo5C(r^mIX*UKy=4YY6!qI4pLqE`b8g)2uNTW-? z2v-$!vu~^_D!Z)e1lFV>*3=xu!eYpH`bS#d56Kbv<*Kyl?PYY?LPEK)OT%HS>faNAaLB;Kew7LQ9*F$jG?SJ=1*OUhIGc~iso zGkam6rJyEGrdyS>?vdsa4^f(le_s64r0B5DLgakdnAnSq<|tu@*0H??LGN6`8+h+c z`;~{L<{R&~9Ioo5ZIhYpQ%mg~j?E!r>`J(z1nrL163BC2fK?jG1^{e87s#2w$b|qr z-pS&x$7$Nd#nAQiL)ykt@xYCKrC)cmL0eOq^XHwG-|WuSoQ)`Izn-Sf9@JOq+YTg5 zS8hLJ{HA9vvxk|kh;61vY9CVTA^5D(M0ct8CfCz}*iUh}``ZsGSKHoV?@y+}o?0zU zpZ8?s!uzaSES(vCx-oPp*S>ll)qMl*Yc zH|;0(htqB_>&ie+GDjYVngC!u!u$=7O=?~5mkz+a~pUhpzbb@NXNa&ZU+Onph5 z5^H6XSeddooszC#k(He0*zLcL9uT9zw4b244?@*exc6y1K^L+Ei#bqKdH+%tN8N~w z{s@jdfPd45-*^Ui8qc!%epqd4BQl!NCwjUwIk<}xv>qf!ntGEnYf_Q*Q9Ve`uv3nC zF4IR6D`00ylj0j&CAl(3`XTpHxbV^gma0APl=vpPwTF*!X7^SDpthK?oed^Nq*lxz zTc`i{FTP@C_PMgXElv`Ve}_iUG7)673wUWVhN1&TN=9ljR+?OK4F1bM6;}EsB$mU# z5q%@*k<8`qjmyIn0`|D&MttJCcrK$^Me8 zhYjUgzbjTs)udIUIA_dkBoaopIP)LOV5ikJ%gP03N5bEQgdyhU2^c%a4zPT}Bit{m zaOA(BIWQ^E+Ief6L{4-}!YVfQ*IX>tQj$~1z|Ek*jTyftDBMLtUNl^>)-}d*n2d~qtJR-v z66rwW|851sA4TFKH%GSY0#Rq`y_}>J4D%7!*3hLlshf~o8F_7EcLs& z+-#c-LXz0M2xC;a)W(~@;6|x^nBjgOC4GPPe!P0bFlG11s?8XAMUmt?qd%R@rTEck4~kI{*IzRAVB>808U@;PXGV_ literal 0 HcmV?d00001 diff --git a/doc/html/INPUT/sources/static/doxygen.css b/doc/html/INPUT/sources/static/doxygen.css new file mode 100755 index 000000000..0a8e93d50 --- /dev/null +++ b/doc/html/INPUT/sources/static/doxygen.css @@ -0,0 +1,49 @@ +H1 { text-align: center; } +CAPTION { font-weight: bold } +A.qindex {} +A.qindexRef {} +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code { text-decoration: none; font-weight: normal; color: #4444ee } +A.codeRef { font-weight: normal; color: #4444ee } +A:hover { text-decoration: none; background-color: lightblue } +DL.el { margin-left: -1cm } +DIV.fragment { width: 100%; border: none; background-color: #CCCCCC } +DIV.ah { background-color: #CCCCCC; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } +TD.md { background-color: lightblue; font-weight: bold; } +TD.mdname1 { background-color: lightblue; font-weight: bold; color: #602020; } +TD.mdname { background-color: lightblue; font-weight: bold; color: #602020; width: 600px; } +DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold } +DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } +BODY { background: url(sources/bg_salome.gif) } +TD.indexkey { + background-color: #CCCCCC; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} +TD.indexvalue { + background-color: #CCCCCC; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} +span.keyword { color: #008000 } +span.keywordtype { color: #604020 } +span.keywordflow { color: #e08000 } +span.comment { color: #800000 } +span.preprocessor { color: #806020 } +span.stringliteral { color: #002080 } +span.charliteral { color: #008080 } diff --git a/doc/html/INPUT/sources/static/examples_Kernel.html b/doc/html/INPUT/sources/static/examples_Kernel.html new file mode 100755 index 000000000..beb74ae4f --- /dev/null +++ b/doc/html/INPUT/sources/static/examples_Kernel.html @@ -0,0 +1,134 @@ + + + + + + + + Main Page + + + + +   +
+ + + + + + + + +
+ + +
+
+ +

Examples

+ Package SALOME_ModuleCatalog
+
+      interface SALOME_ModuleCatalog::ModuleCatalog
+
+Package SALOME
+
+   
interface SALOME::Session
+
+Package Engines
+   

+    interface Engines::Container
+

+   
+   

+
+
    SALOME_ModuleCatalog::ModuleCatalog interface +
+
+
+

+
+

+Acomponent +GetComponent (in string componentname)
+
+See the example below
+
+
+
+
SALOME::Session interface

+

+
+GetInterface (), StopSession () raises (GUIActive, RunningStudies)
+
+Stop session and restart GUI application:
+
+mySession.StopSession()
+
+mySession.GetInterface()
+
+
+
Engines::Container +interface
+
+
+
Component +load_impl (in string nameToRegister, in string componentName)
+
+Load component with defined component name:
+
+compinfo = module_catalog.GetComponent(componentName)
+
+ try:
+    machineName = theComputer # name of machine
+    path = compoinfo.GetPathPrefix(machineName) + "/"
+ except SALOME_ModuleCatalog.NotFound, ex:
+    MESSAGE( "machine " + machineName + " not found in Module +Catalog" )
+    MESSAGE( "trying localhost" )
+    try:
+    path = compoinfo.GetPathPrefix("localhost") + "/"
+    except SALOME_ModuleCatalog.NotFound, ex:
+    path = ""
+
+implementation = path + "lib" + componentName + "Engine.so"
+MESSAGE( "Trying to load " + implementation )
+
+ try:
+
    component = container.load_impl(componentName, +implementation) # Loads into the container a new component, registers +it and starts it's CORBA servant.
+
+    MESSAGE( "component " + component._get_instanceName() ++ " launched !" )
+    return component
+except:
+    MESSAGE( "component " + componentName + " NOT launched +!" )
+
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/doc/html/INPUT/sources/static/examples_Life_cycle.html b/doc/html/INPUT/sources/static/examples_Life_cycle.html new file mode 100755 index 000000000..8d36282f6 --- /dev/null +++ b/doc/html/INPUT/sources/static/examples_Life_cycle.html @@ -0,0 +1,116 @@ + + + + + + + + Main Page + + + + +   +
+ + + + + + + + +
+ + +
+
+ +

Examples

+ //There is a CXX example of LifeCycleCORBA using
+

+#include CORBA_CLIENT_HEADER(TestComponent)
+#include "SALOME_NamingService.hxx"
+#include "SALOME_LifeCycleCORBA.hxx"
+
+int main (int argc, char * argv[]){
+  try {
+      // Initializing omniORB
+
      CORBA::ORB_var orb = CORBA::ORB_init(argc, +argv);
+   
+      // Obtain a reference +to the root POA
+
      CORBA::Object_var obj = orb->resolve_initial_references("RootPOA") +;
+      PortableServer::POA_var poa = PortableServer::POA::_narrow(obj) +;
+   
+      SALOME_NamingService _NS(orb) ;
+
+      SALOME_LifeCycleCORBA _LCC(&_NS) ;
+
+      Engines::Component_var myComponent = _LCC.FindOrLoad_Component("FactoryServerPy","TestComponentPy");
+       if(!CORBA::is_nil(myComponent)){
+          Engines::TestComponent_var +myConcreateComponent = TestComponent::_narrow(myComponent);
+          //do something +what you like with the interface
+          ...
+
          return 0;
+       }
+    }
+  catch(CORBA::COMM_FAILURE& ex){
+      cout<<"Caught system exception COMM_FAILURE +-- unable to contact the object.\n";
+  }catch(CORBA::SystemException&){
+      cout<<"Caught a CORBA::SystemException.\n";
+  }catch(CORBA::Exception&){
+      cout<<"Caught CORBA::Exception.\n";
+  }catch(...){
+      cout<<"Caught unknown exception.\n";
+  }
+  return 1;
+}
+
+#The example may be rewritten on Python like this:
+

+from omniORB import CORBA
+from SALOME_TestComponent import *
+from SALOME_NamingServicePy import *
+from LifeCycleCORBA import *
+
+try:
+    orb = CORBA.ORB_init(sys.argv,CORBA.ORB_ID)
+    _NS = SALOME_NamingService(orb)
+    _LCC = SALOME_LifeCycleCORBA(orb)
+
+     myComponent = _LCC.FindOrLoadComponent("FactoryServerPy","TestComponentPy");
+     myConcreatComponent = myComponent._narrow(TestComponent)
+    if myConcreatComponent is not None :
+        //do something what you like with the +interface
+         ...
+
        return 0
+    }
+except CosNaming.NamingContext.NotFound, e :
+    print "Caught exception: Naming Service can't found Logger"
+except CORBA.COMM_FAILURE, e:
+    print "Caught CORBA::SystemException CommFailure"
+except CORBA.SystemException, e:
+    print "Caught CORBA::SystemException."
+except CORBA.Exception, e:
+    print "Caught CORBA::Exception."
+except Exception, e:
+    print "Caught unknown exception."
+  
+
+
+ + diff --git a/doc/html/INPUT/sources/static/examples_Naming.html b/doc/html/INPUT/sources/static/examples_Naming.html new file mode 100755 index 000000000..ac08a6753 --- /dev/null +++ b/doc/html/INPUT/sources/static/examples_Naming.html @@ -0,0 +1,66 @@ + + + + + + + + Main Page + + + + +   +
+ + + + + + + + +
+ + +
+
+ +

Examples

+ #There is a python example of using SALOME_NamingService
+

+from omniORB import CORBA
+from time import sleep
+from LifeCycleCORBA import *
+from SALOME_NamingServicePy import *
+
+# initialise the ORB
+
orb = CORBA.ORB_init([''], CORBA.ORB_ID)
+
+# create an LifeCycleCORBA instance
+
myLifeCycleCORBA = LifeCycleCORBA(orb)
+
+#create a naming service instance
+
naming_service = SALOME_NamingServicePy_i(orb)
+
+mySession = myNamingService.Resolve("/Kernel/Session")
+mySession.GetInterface()
+sleep(10)
+myLocalVisu = myLifeCycleCORBA.FindOrLoadComponent("FactoryServer", "Visu")
+
+
+//There is some part of a code written by C++
+

+SALOME_NamingService aNamingService(orb);
+CORBA::Object_ptr anObject = aNamingService.Resolve("/Kernel/Session");
+SALOME::Session_var aSession = SALOME::Session::_narrow(anObject);
+Engines::Component_var aComponent = aSession->GetVisuGen();
+myVisuGen = VISU::VISU_Gen::_narrow(aComponent);
+
+ + diff --git a/doc/html/INPUT/sources/static/examples_Study.html b/doc/html/INPUT/sources/static/examples_Study.html new file mode 100755 index 000000000..31ccaffa5 --- /dev/null +++ b/doc/html/INPUT/sources/static/examples_Study.html @@ -0,0 +1,790 @@ + + + + + + + + Main Page + + + + +   +
+ + + + + + + + +
+ + +
+
+ +

Examples

+
+
+ +
      Interfaces:
+
+       SALOMEDS::Study
+       SALOMEDS::StudyBuilder
+       SALOMEDS::StudyManager
+       SALOMEDS::SObject
+      SALOMEDS::SComponent
+       SALOMEDS::SComponentIterator
+       SALOMEDS::ChildIterator
+
      SALOMEDS::AttributeComment
+      
+
+
+
+
+ +
      SALOMEDS::Study interface
+
+ +

+
+
+
+
SComponent FindComponent( +in string aComponentName )
+
+ Find GEOMETRY component in the opened study by its name:

+
+     str= os.getenv("TmpDir")
+     if str == None:
+         str = "/tmp"
+     file = str+"/test.hdf"
+
+     openedStudy=batchmode_geompy.myStudyManager.Open(file)
+
+     father = openedStudy.FindComponent("GEOM")
+     if father is None:
+          raise  RuntimeError, "Geom + component is not found!  Wrong study is opened."
+
+
+
+ +
SObject FindObject ( in string +anObjectName )
+
+ Find the SObject of the box by its NameAttribute "box":
+
+ +

+
+ +
box = openedStudy.FindObject("box")
+ if box is None :
+     raise  RuntimeError, "box was not found! Wrong +study is opened."
+
+
+ SObject FindObjectID + ( in ID aObjectID +)
+ #result: "/User data/Case1".
+
Find + the SObject of the box by its ID "0:1:1:2":
+
+
+ +
box =openedStudy.FindObjectID("0:1:1:2")
+
+ +
if box is None :
+     raise  RuntimeError, "box was not found! Wrong +ID is used."
+
+
+ SObject FindObjectIOR + ( in ID  aObjectIOR +)
+
+ Find the SObject of the result on imported MED file +by it's IOR:
+
+ theResult = myVisu.ImportFile(medFile)
+ aSObj = myStudy.FindObjectIOR(theResult.GetID())
+
+
+ SObject + FindObjectByPath ( in string thePath )
+
+ Find SObject by path to it:
+
+ # create new auxiliary componen
t
+ aComponent = myStudyBuilder.NewComponent("Virtual Component")
+
+ # create auxiliary subtree
+ aPath = "/Virtual Component/Case1"
+ myStudyBuilder.AddDirectory(aPath)
+
+ aSObj = myStudy.FindObjectByPath(aPath)
+
+
+ void SetContext ( in string thePath) / + string GetContext ()
+
+ Set context of the study to the created case and get it for printing:
+
+ aComponent = myStudyBuilder.NewComponent("User data")
+ anAttr = aBuilder.FindOrCreateAttribute(aComponent, "AttributeName")
+ anAttrName = anAttr._narrow(SALOMEDS.AttributeName)
+ anAttrName.SetValue("User data")
+
+ #Add a new case 'Case1' to the component 'User data'
+ aBuilder.AddDirectory("/User data/Case1")
+
+ #Set a study context to '/User data/Case1'
+ aStudy.SetContext("/User data/Case1")
+
+ #Print the current study context
+ print aStudy.GetContext()
+
+
#result: "/User data/Case1".

+
+
+ ChildIterator + NewChildIterator ( in SObject aSO )
+
+ Import med file and print all mesh names that this file includes +(mesh is a child of the result of imported file):
+
+ # define file name
+ aFileName = datadir + "fra.med"
+
+ # import file in visu module and get result
+ theVisu = batchmode_visu.myVisu
+ aResult = theVisu.ImportFile(aFileName)
+ if aResult is None : raise RuntimeError, "Error"
+ else : print "OK"
+  
+ # get current study and its' SObject        +
+ myLocalStudy = theVisu.GetCurrentStudy()
+ aSObj = myLocalStudy.FindObjectIOR(aResult.GetID())
+ if aSObj is None : raise RuntimeError, "Error"
+ else : print "OK"
+
+ # create iterator by SObject of the current study
+ aMeshIter = myLocalStudy.NewChildIterator(aSObj);
+
+ # iterating in the current study (with the help of created iterator) +to find all mesh names  
+ while aMeshIter.More() :
+         aMeshSObj = aMeshIter.Value()
+         aMeshIter.Next()
+         anAttr = aMeshSObj.FindAttribute("AttributeName")[1]
+         if anAttr is None :
+             aMeshSObj + = aMeshIter.Value()
+             aMeshIter.Next()
+             anAttr + = aMeshSObj.FindAttribute("AttributeName")[1]
+         anAttr = anAttr._narrow(SALOMEDS.AttributeName);
+         aMeshName = anAttr.Value()
+         print "  ", aMeshName
+
+
+ SComponentIterator +NewComponentIterator ()
+
+ Find the number an names of all components in the study:
+
+ aCompItr = myStudy.NewComponentIterator()
+
+ compNb = 0
+ while aCompItr.More():
+     aComp = aCompItr.Value()
+     aName = aComp.ComponentDataType()
+     print "Component name = ", aName
+     compNb += 1
+     aCompItr.Next()
+
+
+ StudyBuilder +NewBuilder ()
+
+
+
+ Create a new StudyBuilder (uses to add or modify an object in the +study ):
+
+ myBuilder = myStudy.NewBuilder()
+
+
+ AttributeStudyProperties +GetProperties ()
+
+ Get the attribute, which contains the properties of the study, and +change properties of the study by changing it:
+
+ aProperties = myStudy.GetProperties()
+ if aProperties == None :
+     raise  RuntimeError, "Can't create AttributeStudyProperties +attribute"
+ aProperties = aProperties._narrow(SALOMEDS.AttributeStudyProperties)
+
+ A = aProperties
+
+ # print stydy properties
+ print "A.GetUserName()= ", A.GetUserName()
+ res,mm,hh,dd,mnth,yy=A.GetCreationDate()
+ print "A.GetCreationDate() = ", mm,hh,dd,mnth,yy
+ print "A.GetCreationMode() = ", A.GetCreationMode()
+ print "A.IsModified() = ", A.IsModified()
+ print "A.IsLocked() = ", A.IsLocked()
+
+ # change the properties of the study
+ if A.IsLocked() == 0 :
+     A.SetUserName("tester"); print 'A.SetUserName("tester"), +A.GetUserName() = ', A.GetUserName()
+     A.SetCreationDate(11,11,11,11,2002); print 'A.SetCreationDate(11,11,11,11,2002), +A.GetCreationDate() =', A.GetCreationDate()
+     print "A.IsModified() = ", A.IsModified()
+ A.SetLocked(1)
+
+
+ boolean IsModified ()
+
+ Find if study is modified:
+
+ IsModified = myStudy.IsModified()
+
+ if IsModified == 1:
+     print "The study is modified and not saved"
+
+
+ boolean IsEmpty ()
+
+ Find if study is empty:
+
+ IsEmpty = myStudy.IsEmpty()
+
+ if IsEmpty == 1:
+     print "The study is empty"
+
+
+
+
+ +
SALOMEDS::StudyBuilder +interface
+
+
+
+
+ SComponent +NewComponent ( in string ComponentDataType )
+
+ Create Geometry SComponent:
+
+ myBuilder = myStudy.NewBuilder()
+ father = myBuilder.NewComponent("GEOM")
+
+
+ void DefineComponentInstance ( in SComponent aComponent, +in Object ComponentIOR )

+
+ Define the instance to the created geometry component:
+
+ # find geom component
+ myLCC = batchmode_salome.lcc
+ geom = myLCC.FindOrLoadComponent("FactoryServer", "Geometry")
+ geom = geom._narrow(GEOM.GEOM_Gen)
+ geom.GetCurrentStudy(myStudyId)
+
+ myBuilder = myStudy.NewBuilder()
+
+ father = myBuilder.NewComponent("GEOM")
+ myBuilder.DefineComponentInstance(father,geom)
+
+
+ SObject +NewObject ( in SObject theFatherObject +)
+
+ Create box and add it to study:
+
+ from batchmode_geompy import *
+
+ # create a box
+ box = geom.MakeBox(0,0,0,100,100,150)
+
+ ior = orb.object_to_string(box)
+ box._set_Name(ior)     
+
+ # create Geometry SComponent
+ father = myBuilder.NewComponent("GEOM")
+ A1 = myBuilder.FindOrCreateAttribute(father, "AttributeName");
+ FName = A1._narrow(SALOMEDS.AttributeName)
+ FName.SetValue("Geometry")
+ myBuilder.DefineComponentInstance(father,geom)
+
+ # add box to Study
+ myBuilder.NewCommand()
+ newObj = myBuilder.NewObject(father)
+ A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR");
+ ObjIOR = A1._narrow(SALOMEDS.AttributeIOR)
+ ObjIOR.SetValue(ior)
+ A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName");
+ ObjName = A2._narrow(SALOMEDS.AttributeName)
+ ObjName.SetValue("Common_operation")
+ id = newObj.GetID()
+ box._set_StudyShapeId(id)
+ myBuilder.CommitCommand()
+
+
+ void RemoveObject ( in SObject anObject )
+
+ # Remove CutPlanes SObject from the StudyBuilder (delete cutplanes):
+
+ SObj=myStudy.FindObjectIOR(cutplanes.GetID())
+ myBuilder = newStudy.NewBuilder()
+ myBuilder.RemoveObject(SObj)
+
+
+ void LoadWith ( in SComponent sco, in +Driver Engine +) raises (SALOME::SALOME_Exception)

+
+ # Load Visu component:
+
+ myBuilder = openedStudy.NewBuilder()
+ SCom=openedStudy.FindComponent("VISU")
+ myBuilder.LoadWith(SCom ,myVisu)
+
+
+ GenericAttribute +FindOrCreateAttribute ( in SObject anObject,  +in string aTypeOfAttribute)
+
+ Create AttributeName attribute for created component an set value +to it:
+
+ myBuilder = myStudy.NewBuilder()
+ aComponent = myBuilder.NewComponent("User data")
+
+ anAttr = myBuilder.FindOrCreateAttribute(aComponent, "AttributeName")
+
+ anAttrName = anAttr._narrow(SALOMEDS.AttributeName)
+ anAttrName.SetValue("User data")
+
+
+ boolean FindAttribute ( in SObject anObject, out GenericAttribute +anAttribute, in string aTypeOfAttribute )
+
+
Find AttributeName attribute of the field and print the +field name:
+
+ aFieldSObj  = myStudy.FindObject("Head, -")
+
+ myStudyBuilder.FindAttribute( aFieldSObj, anAttr, "AttributeName")
+ if res == 0:
+     raise  RuntimeError, "Error:  Attribute not +found"
+
+ anAttr = anAttr._narrow(SALOMEDS.AttributeName);
+ aFieldName = anAttr.Value()
+ print "      ", aFieldName
+
+
+ void RemoveAttribute ( in SObject anObject, in +string aTypeOfAttribute )
+
+
Remove AttributeSelectable attribute of the field SObject:
+
+
aFieldSObj  = myStudy.FindObject("Head, -")
+
+ myStudyBuilder.RemoveAttribute( aFieldSObj, "AttributeSelectable")
+
+
+
void Addreference ( in  SObject +anObject, in  SObject theReferencedObject +)

+
+ Create a reference between created SObject and the existing field:
+
+ aFieldSObj  = myStudy.FindObject("Head, -")
+ aNewSObj = myBuilder.NewObject(myVisu)
+
+ myBuilder.Addreference(aFieldSObj, aNewSObj)
+
+
+
void +NewCommand ()
+
+
Create new command wich containes actions for changing the +properties of the study:
+
+
A = myStudy.GetProperties()
+ A = aProperties._narrow(SALOMEDS.AttributeStudyProperties)
+
+ myBuilder = myStudy.NewBuilder()
+
+ myBuilder.NewCommand() # creates a new command
+
+ # change the properties of the study
+ if A.IsLocked() == 0 :
+     A.SetUserName("tester"); print 'A.SetUserName("tester"), +A.GetUserName() = ', A.GetUserName()
+     A.SetCreationDate(11,11,11,11,2002); print 'A.SetCreationDate(11,11,11,11,2002), +A.GetCreationDate() =', A.GetCreationDate()
+     print "A.IsModified() = ", A.IsModified()
+ A.SetLocked(1)
+
+
myBuilder.CommitCommand() # commits all actions declared +within the created command
+
+
+ void CommitCommand()
+

+
See the end of the previous example
+
+
+ void AbortCommand ()

+
+ Create new command wich containes actions for changing +the properties of the study, cancel all declared actions:
+
+ A = myStudy.GetProperties()
+ A = aProperties._narrow(SALOMEDS.AttributeStudyProperties)
+
+ myBuilder = myStudy.NewBuilder()
+
+ myBuilder.NewCommand() # creates a new command
+
+ # change the properties of the study
+ if A.IsLocked() == 0 :
+     A.SetUserName("tester"); print 'A.SetUserName("tester"), +A.GetUserName() = ', A.GetUserName()
+     A.SetCreationDate(11,11,11,11,2002); print 'A.SetCreationDate(11,11,11,11,2002), +A.GetCreationDate() =', A.GetCreationDate()
+     print "A.IsModified() = ", A.IsModified()
+ A.SetLocked(1)
+
+
myBuilder.AbortCommand() # abort all actions declared +within the created command
+
+
+ void Undo () raises (LockProtection) +,
+ void Redo () raises (LockProtection)
+
+ Create new command wich containes actions for changing +the properties of the study,
+ cancel all declared actions and then redo it with the help of undo/redo +mechanism:

+
+ A = myStudy.GetProperties()
+ A = aProperties._narrow(SALOMEDS.AttributeStudyProperties)
+
+ myBuilder = myStudy.NewBuilder()
+
+ myBuilder.NewCommand() # creates a new command
+
+ # change the properties of the study
+ if A.IsLocked() == 0 :
+     A.SetUserName("tester"); print 'A.SetUserName("tester"), +A.GetUserName() = ', A.GetUserName()
+     A.SetCreationDate(11,11,11,11,2002); print 'A.SetCreationDate(11,11,11,11,2002), +A.GetCreationDate() =', A.GetCreationDate()
+     print "A.IsModified() = ", A.IsModified()
+ A.SetLocked(1)
+
+
myBuilder.CommitCommand() # commits all actions declared +within the created command
+
+
myBuilder.Undo() # cancels all actions of the command
+
+
myBuilder.Redo() # redoes all actions of the command
+
+
+
+
+
SALOMEDS::StudyManager +interface
+
+
+
+
+
Study +NewStudy ( in string study_name )
+
+ Create the study with the name "Test_Study":

+
+ myNewStudy = myStudyManager.NewStudy("Test_Study")
+
+
+ Study Open +( in URL +aStudyUrl ) raises (SALOME::SALOME_Exception)
+
+ Open the study saved in the HDF file:
+
+ file = 'saved_study.hdf'
+
+ openedStudy=myStudyManager.Open(file)
+
+ if openedStudy == None:
+     raise  RuntimeError, "Can't open saved study!"
+
+
+ void Save (in Study aStudy, in boolean +theMultifile )
+
+
Open study, import med file into it and save with the old +path and filename:
+
+
file = "saved_study.hdf"
+ myMedFile ="medfile.med"
+
+ openedStudy=myStudyManager.Open(file)
+
+ myVisu.SetCurrentStudy(openedStudy)
+ myResult = myVisu.ImportFile(myMedFile)
+
+ myStudyManager.Save(openedStudy, 0)
+
+
+ void SaveAs ( in URL +aUrl, in  Study aStudy, + 
in boolean theMultifile +)
+
+ Open study from the file and resave it in several files (using +Multifile option while saving)
+
+
file = "saved_study.hdf"
+ newfile = "resaved_study.hdf"
+
+ openedStudy=myStudyManager.Open(file)
+ myStudyManager.SaveAs(newfile, openedStudy, 1)
+
+
+ void Close ( in  Study aStudy )

+
+ Close just opened study:
+
+ file = "saved_study.hdf"
+
+ openedStudy=myStudyManager.Open(file)
+ myStudyManager.Close(openedStudy)
+
+
+
+ +
SALOMEDS::SObject interface
+
+
+
+
+ ID GetID ()
+
+ Create new SObject and get its ID:
+
+ mySObj = myBuilder.NewObject(myFather)
+
+ myID =  mySObj.GetID()
+
+
+ SComponent +GetFatherComponent ()
+
+ Get father component of the SObject:
+
+ myFather = mySObj.GetFatherComponent();
+
+
+ boolean FindAttribute ( out GenericAttribute anAttribute, +in string aTypeOfAttribute )
+
+ Find the AttributeName attribute of the field:
+
+ aFieldSObj  = myStudy.FindObject("Head, -")
+
+ res = aFieldSObj.FindAttribute( anAttr, "AttributeName")
+ if res == 0:
+     raise  RuntimeError, "Error:  Attribute not +found"
+
+
+ ListOfAttributes +GetAllAttributes ()
+
+ Get list of all attributes of the SObject, find the number of attributes:
+
+ attrs = mySObj.GetAllAttributes()
+ aLen = len(attrs) # number of attributes
+
+
+
+
+ +
SALOMEDS::SComponent interface
+
+
+
+
+ string ComponentDataType ()
+
+ Print names of all components wich +the study contains:
+
+ aCompItr = myStudy.NewComponentIterator()
+
+ while aCompItr.More():
+     aComp = aCompItr.Value()
+     aName = aComp.ComponentDataType()
+     print "Component name = ", aName
+     aCompItr.Next()
+
+
+ Other methods are inherited.
+
+
+
+
+ +
SALOMEDS::SComponentIterator + interface
+
+
+
+
+ boolean More (), void Next (), SComponent Value +()
+
+ See another +example
+
+   
+
+ +
SALOMEDS::ChildIterator + interface
+
+
+
+
+ boolean More () , void Next (), SObject Value ()
+
+ Print all mesh names of imported MED file with the help of ChildIterator:
+
+ aResult = myVisu.ImportFile("MedFile.med")
+        
+ myStudy = theVisu.GetCurrentStudy()
+ aSObj = myLocalStudy.FindObjectIOR(aResult.GetID())
+
+ aMeshIter = myLocalStudy.NewChildIterator(aSObj);  # creating new +child iterator
+
+ while aMeshIter.More() :               +                      +           # check if one more +child level exists.
+         aMeshSObj = aMeshIter.Value() +                  +         # returns the SObject corresponding +to the current object found by the iterator.  
+         aMeshIter.Next()     +                      +                      +   # passes the iterator to the next level.
+         anAttr = aMeshSObj.FindAttribute("AttributeName")[1]
+         if anAttr is None :
+                 +aMeshSObj = aMeshIter.Value()
+               +  aMeshIter.Next()
+                 +anAttr = aMeshSObj.FindAttribute("AttributeName")[1]
+         anAttr = anAttr._narrow(SALOMEDS.AttributeName);
+         aMeshName = anAttr.Value()
+         print "  ", aMeshName
+
+
+
+ +
SALOMEDS::AttributeComment + interface
+
+
+
+ string Value (),  void SetValue ( in string value )
+
+ Find the AttributeComment attribute of the "Head" field in the study, +print it, then change it to "My Comment" string:
+
+ aFieldSObj  = myStudy.FindObject("Head, -")
+ anAttr = aFieldSObj.FindAttribute("AttributeComment")[1]
+                     +anAttr = anAttr._narrow(SALOMEDS.AttributeComment);
+                     +aFieldComment = anAttr.Value()
+
+ print "AttributeComment", anAttr
+
+ anAttr.SetValue ("My Comment")
+ +

+ 
+ + diff --git a/doc/html/INPUT/sources/static/mapping.html b/doc/html/INPUT/sources/static/mapping.html new file mode 100755 index 000000000..21ead079f --- /dev/null +++ b/doc/html/INPUT/sources/static/mapping.html @@ -0,0 +1,329 @@ + + + + + + Main Page + + + +  +
+ + + + + +
+
+
+ +

+Mapping of IDL definitions to Python language.

+ +

+Introduction

+SALOME is a distributed client/server application using the Common +Object Request Broker Architecture (CORBA). CORBA architecture uses the +Interface Definition Language (IDL), which specifies interfaces between +CORBA objects. So with help of IDL CORBA's language independence is ensured +. Because interfaces described in IDL can be mapped to the most of currently +used programming languages, CORBA applications and components are thus +independent of the language(s) used to implement them. In other words, +a client written in C++ can communicate with a server written in Java, +which in turn can communicate with another server written in COBOL, and +so forth. +

One important thing to remember about IDL is that it is not an implementation +language. That is, applications can't be written in IDL. The sole purpose +of IDL is to define interfaces; providing implementations for these interfaces +is performed using some other language. +

This page contains an abridged reference manual for mapping of IDL definitions +to Python language. It will be useful for Python programmers who are not +familiar with IDL language. All examples are taken from SALOME source +files. The complete version of Python Language Mapping Specification can +be found here. +
  +

CONTENTS: +

+
+ +

+Using Scoped Names

+Python implements a module concept that is similar to the IDL scoping mechanisms, +except that it does not allow for nested modules. In addition, Python requires +each object to be implemented in a module; globally visible objects are +not supported. +

Because of these constraints, scoped names are translated into Python +using the following rules: +

• An IDL module mapped into a Python module. Modules containing modules +are mapped to packages (i.e., directories with an __init__ module +containing all definitions excluding the nested modules). An implementation +can chose to map toplevel definitions (including the module CORBA) to modules +in an implementationdefined package, to allow concurrent installations +of different CORBA runtime libraries. In that case, the implementation +must provide additional modules so that toplevel modules can be used without +importing them from a package. +

• For all other scopes, a Python class is introduced that contains all +the definitions inside this scope. +

• Other global definitions (except modules) appear in a module whose +name is implementation dependent. Implementations are encouraged to use +the name of the IDL file when defining the name of that module. +

For instance, +

+
module SALOMEDS {
+ interface StudyManager {
+  void  Close(in Study aStudy);
+ };
+};
+
+would introduce a module SALOMEDS.py, which contains the following definitions: +
+
# module SALOMEDS.py
+class StudyManager:
+  def _Close(self,aStudy):
+   pass #interfaces are discussed later
+
+To avoid conflicts, IDL names that are also Python identifiers are prefixed +with an underscore (‘_’). +

Back to the contents +

+

+Mapping for Template and Array Types

+Both the bounded and the unbounded string type of IDL are mapped to the +Python string type. Wide strings are represented by an implementation-defined +type with the following properties: +

• For the wide string X and the integer n, X[n] returns the nth character, +which is a wide string of length 1. +

• len(X) returns the number of characters of wide string X. +

• CORBA.wstr(c) returns a wide character with the code point c in an +implementation-defined encoding. +

• X+Y returns the concatenation of wide strings X and Y. +

• CORBA.word(CORBA.wstr(c)) == c +

The sequence template is mapped to sequence objects (e.g., tuples or +lists). Applications should not assume that values of a sequence type are +mutable. Sequences and arrays of octets and characters are mapped to the +string type for efficiency reasons. +

For example, given the IDL definitions +

+
module SALOMEDS {
+  typedef sequence <string> StringSeq;
+   
+   interface AttributeTableOfInteger : GenericAttribute {
+
+    void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
+ };
+};
+
+a client could invoke the operation +
+
print My_AttributeTableOfInteger.SetRowTitles(["X","F"])
+
+Array types are mapped like sequence templates. The application in this +example also expects an IncorrectArgumentLength exception if it passes +sequences that violate the bounds constraint or arrays of wrong size. +

Another example with arrays. The following IDL definition +

+
module SALOMEDS {
+ typedef sequence<GenericAttribute> ListOfAttributes;
+ interface SObject {
+  ListOfAttributes     GetAllAttributes();
+ };
+};
+
+is equal to +
+
import SALOMEDS
+
+attributes=[]
+ 
+attributes = My_SObject.GetAllAttributes()
+
+length = len(attributes)
+
+print "Attributes number = ", length
+print attributes
+
+Back to the contents +

+

+Mapping for Objects and Operations

+A CORBA object reference is represented as a Python object at run-time. +This object provides all the operations that are available on the interface +of the object. Although this specification does not mandate the use of +classes for stub objects, the following discussion uses classes to indicate +the interface. +

The nil object is represented by None. +

If an operation expects parameters of the IDL Object type, any Python +object representing an object reference might be passed as actual argument. +

If an operation expects a parameter of an abstract interface, either +an object implementing that interface, or a value supporting this interface +may be passed as actual argument. The semantics of abstract values then +define whether the argument is passed by value or by reference. +

Operations of an interface map to methods available on the object references. +Parameters with a parameter attribute of in or inout are +passed from left to right tothe method, skipping out parameters. +The return value of a method depends on the number of out parameters +and the return type. If the operation returns a value, this value forms +the first result value. All inout or out parameters +form consecutive result values. The method result depends then on +the number of result values: +

• If there is no result value, the method returns None. +

• If there is exactly one result value, it is returned as a single +value. +

• If there is more than one result value, all of them are packed +into a tuple, and this tuple is returned. +

Assuming the IDL definition +

+
module SALOMEDS{
+ interface StudyBuilder{
+  boolean FindAttribute  ( in SObject anObject, 
+                           out GenericAttribute anAttribute, 
+                           in string aTypeOfAttribute );
+ };
+};
+
+a client could write +
+
from SALOMEDS import StudyBuilder;
+my_StudyBuilder=...
+  
+  res,A=my_StudyBuilder.FindAttribute(Sobj, "AttributeSequenceOfReal")
+
+In this example A corresponds to the return value anAttribute +and res to the boolean return value. +

If an interface defines an attribute name, for example, the attribute +is mapped into an operation _get_name. If the attribute is not readonly, +there is an additional operation _set_name. +

The IDL definition +

+
module SALOMEDS{
+ interface Study{
+  attribute string Name;
+ };
+};
+
+is equal to the following +
+
from SALOMEDS import Study
+My_Study=...
+  Name=My_Study._get_name();
+  Name=My_Study._set_name();
+
+Back to the contents +

+

+Narrowing Object References

+Python objects returned from CORBA operations or pseudo-operations (such +as string_to_object) might have a dynamic type, which is more specific +than the static type as defined in the operation signature. +

Since there is no efficient and reliable way of automatically creating +the most specific type, explicit narrowing is necessary. To narrow an object +reference A to an interface class AttributeSequenceOfReal, +the client can use the following operation +

+
A = A._narrow(SALOMEDS.AttributeSequenceOfReal)
+
+Back to the contents +

+

+Mapping for Exceptions

+An IDL exception is translated into a Python class derived from CORBA.UserException. +System exceptions are derived from CORBA.SystemException. Both base classes +are derived from CORBA.Exception. The parameters of the exception are mapped +in the same way as the fields of a struct definition. When raising an exception, +a new instance of the class is created; the constructor expects the exception +parameters. For example, the definition +
+
module SALOMEDS{
+ interface StudyBuilder{
+  exception LockProtection {};
+  void CommitCommand() raises(LockProtection);
+ };
+};
+
+could be used caught as +
+
from SALOMEDS import StudyBuilder;
+my_StudyBuilder=...
+try:
+  my_StudyBuilder.CommitCommand();
+except StudyBuilder.LockProtection,value:
+  print "Error! Study is locked for modifications"
+
+ +


Back to the contents +

+

+Mapping for Enumeration Types

+An enumeration is mapped into a number of constant objects in the name +space where the enumeration is defined. An application may only test for +equivalence of two enumeration values, and not assume that they behave +like numbers. For example, the definition +
+
module VISU {
+ interface PrsObject{
+ 
+  enum PrsObjType{ TCURVE, TTABLE, TMESH, TCONTAINER,
+                   TSCALARMAP, TISOSURFACE, TDEFORMEDSHAPE,
+                   TCUTPLANES, TVECTORS };
+ };
+};
+
+introduces the objects +
+
from VISU import PrsObject
+VISU.PrsObjType.TCURVE,VISU.PrsObjType.TTABLE,VISU.PrsObjType.TMESH,VISU.PrsObjType.TCONTAINER,
+VISU.PrsObjType.TSCALARMAP,VISU.PrsObjType.TISOSURFACE,VISU.PrsObjType.TDEFORMEDSHAPE,VISU.PrsObjType.TCUTPLANES,
+VISU.PrsObjType.TVECTORS
+
+Back to the contents +

+

+Mapping for Structured Types

+An IDL struct definition is mapped into a Python class or type. For each +field in the struct, there is a corresponding attribute in the class with +the same name as the field. The constructor of the class expects the field +values, from left to right. For example, the IDL definition +
+
struct SDate {
+               short Second;
+               short Minute;
+               short Hour;
+               short Day;
+               short Month;
+               short Year;
+             };
+
+could be used in the Python statements +
+
Date=SDate(30, 12, 15, 26, 1, 79)
+print Date.Second,Date.Minute,Date.Hour,Date.Day,Date.Month,Date.Year
+
+ +
+Back to the contents
+ + + + diff --git a/doc/html/INPUT/sources/static/ns_f3-1.jpg b/doc/html/INPUT/sources/static/ns_f3-1.jpg new file mode 100755 index 0000000000000000000000000000000000000000..fd4f4560240a2a12e80d2e7ab6a942c046e80114 GIT binary patch literal 8650 zcmb_=2T)XNm+fhC&bdiK6C{YFCPNbiktjJUAUR7E6i|ZDga!f0L2^_wG)c)xBtz5W zBxsWb1cc$Ec?VGuq6@cQQnuZzx0s#Q%_5yAe z0A+vx4-X#?mjE9hpOBD%h=hiegqWCwk&2p}hJ}fZm4%6!nH_SEhn+)!lbM-U;;z7b zVKFf=HXbQCNfFt5qGBR{9ReaGBqSjwVIU=C5V^yAN94b~Zn^+U0-zK`f(_yTuqZ*; zl%Sg)fbBL;T+rVO`1b|E!p6bH!zUmlBEH?wKmlNZu(7dluyJv5aBg>p+`b2JC~>Lo z2rJ@I>pj8e@S+h3L*x^1Dt-D)t3Q4K5q;_%PDn&Y&%nsU#m&QemrqO_Dj_K)t*oM| z_CQ_Z;bQ|sBV!X&Gg~|RXAX`|&OXn5{rm$0gI>Rhh>VJU8+mmXe>3~95exqxG5bHn{x2^SaGSl`Mhl;6(mLdH%A8s6T|UT2lNK+C zHL+`Y7OAWLi)v|>Whrm0ojpS><_iTi#m^Y&n`JS`^Z5?@~>?Gbf`@-Z>% zyil00KYzsEC=+GP4ZLPhZkbkGxwn`1taW$0&G_;L_-QGz_ovD5^;x!Gpj7M5vj6<4 zFT-+Sj3|K12Nbe(iSyEP_3sR-|FMxLNO6jmYA*@Y8@MNOT zW5Y-j><5NVtiww=H*muHIkC~9FzKO+Qfrh`YMlQoU)-YlfMwYuf^iWTqixq9yUz~` z>o>u^uhy+eQI_8?fv$i<5T^-@E@v)Zlu3(ox_%u~ zXb3CpVOrrq8xnv`BI(J>(F z%-64PagJ21`{wRD-vF_co_^ym!Y3+r&s41+MqCj-M1(-(z^eK&)>6TNjfaAJc^B{t zhq+)mm)b>0(k|(&KGvnRbK~jif^$}iB_;yB7Aha7eX@Hj6u!jEG!|C*{09>GxYU$W z2_e|y#&4ca6mM&#OY-J-r1rPv9?~GQlRW&t^6{VHvANu*^U3n6KbVee$1`J{TADuX ziJl~wp)N?EHyQ+kBmp>wFgC#}mqV+T^7F69%AMA=b56Bu#D<=qk6NgOnd$6p9-Jxm zTlSpX00d$(*3lU(Q>=ouxq5ZuLyE=2kYjdLo8EP>#oaE#1$L2ePa3kzURL_1L;12i zjWu(T!=+u;hjZyV7qXge-YXuDd*Ginf6Ba6v3}2eIy)|=rO<_{XR=E1ICTRXp!EfR zUR$o+wH>Cj-BKw$HM~@)3=b6#7F}hb{sKLtyI?6y{rG5gNz_Xq#>6X;B^sXrC%&2S zJHH>o$q^`s;k|{61GB?H9;l^8D5|IS{FOoLv^yzgx@vxU8`;Q(otx>ew`3!lq(U9^~ zLw=lCnmt|5qC-NHe8@oR7>{DLaWZ$UIN{m1B2455=VQ4Zy+4KBRP`U#sZ4s}*dM|7 z7LiXb^JC*)YrSMU4|KcJa3loR{dpu>hE4{Qh{~zC4HXS!jDdH`;fCr->s_t5(>=yi z=9ZP;EOdNG5YE(n;~MfL$cN1+hJ;qhjg{bjc5tijua1(Eg=LhwU1Q5z?uY}m4SO7B z)(7~_cvS|_k5%n$o_7)}ohcv1f9(NrL zm6XgQPwt@F@t=JuQ#)0K@g)>E>7%DlHc3dQPQ;V`X!}`pxON|4x;R1wxL18>Zc5>f zG^Ba}ab>hrA7GCsVBd}@DsbwY>tLCDUL!Vo%5PHD_6_O(6NdcsRTRF?L#rJky|3Av zbgAx;B;l77BJhrKNax;R5=et^8{8@}(gsYz~ycw<_urir@zpdV}5?Irnox4l_ZjudOBKard)(>E1fjg5@~x>xUV%%`=x?1a+t&u z^nJ>}XtLYKgZcER@Y_&<`bOMq{xU`!$|=gP&Sn5_LCk*uzl`p5Qn&u3Kw)F{4N%V& zpl`QOD`A3q1T~T1i-TiNW_i7Ddr&-D?j)~@^8i-Qc% z2H?V1`*8!XS6p}gnwh9?SQNdqR?iu=KeBhLRfH}sJsSADp6srMsV-m8!Do=Aw!p*} z{i#^PFl~I{@SXgn4uLI%Cdp(vX7SrlArn_tsD!(AELmo%N=(s3?KAl<8~n!~*YopmzBMRdLRg9WVh2;29>~fx1&VUgB+1Qz8(VAln3?T7RUKz@ z=FcP7#@48nee7`?IzCWn7BwNM!5V#&*cK6>CrK(Hxq)Zz;tW>3LqOV&pea37fMynR z)$TMsdIfu}-+F+D^eF5}TGF)V5OA;TovLQ$wbD#M)4Y1YxE3nQv-Y)SH6hvx@{K%7 zT=TKtFjxEZ^nzTyULR4dyAuGA3#PiTt^1J%0n(y|?<^@nF8KZYwZ-q0Yf_ex1d~+BNq575}QF-E>V! zOM-TTqEEn+K$g=|(mRG|^q;lBen^%N4E)>>Zwg~)irhKGR-&a|#9_%(C z(84${u#U(a^2q?q1`p{P$fHhjG2k$^q$UbgP7U@rTT^cJ;Z#{5|IBA+%9m+6v)ZW> zh4PqJ>Ck-pG)D@$M-0&yh&Hja_vhHaB4h;O^RVi#xyCVt%J*uD`kiMwot^ADR5_sb z2A<@2Pyw}{VcB^O{*2cgo%Pcg!FnWrsXOUX1?{^vDeSzXv20m=Te+t(Dtr%QLZ5`I zk50AWmRXsBUxc{N&}0lQY?>Rq9063{ltst@cl{qSgtgR^|);cnl_EZN^2> z9Thc?ag$A{Z#J>1SMF}4{9yX!P8XZP5+6~he>Az2lvpuBCc_u7an2wXYhsFr@7Pv6 zMB1erfV`nAw|1BiAgwlxp&Wl#t026(Pk@p|yqW%Wsr5j+=~j5}^_FBhM%M~Ff~x6# z)^LFJG|Rka%a+$st6VgGsHM`)ht_fM$J^)LTkuF{aCNtSFOnk3XrwPfb6}_r)RoMe z?_`8DL=?WXY^c{Dxtruy5LYgu!4tNeQD@5Jmw&fK+P&aYZ)soA4d6!*zjhyXZ2MK6 zkzK^@9RxekaM>_O7rXR7l#q-+E&DK{euhddrHi#~JvXpcVz198q={Zt@ls5Cgr-!A zl#|A@jn=X#QB@X!KUlFWzp*?kC{lSS}?+nj9|gbftV7wf_0y&IKHrz%!5Y<;7!9@XyKgf`vwv{*e)| z)Ic9}C3(}D^coUS)0ay*FF#oHfcX>=I~z~`2Tf5AhrSkCdY0+_(mih-*j`RA z>#Vwrni*$WPUYt)I&n21cTS7Z-CJVrcDPH*Tl}hEP7*gxNm*O-?h807{yphhKWn}_ z#^VK(9p9riVckFiw6sG~d{n!2i)qGUZ(A($rh42Wae1SpKps5Q(+iQ4PJ67-!*;GM zE4cnb%csYBr`5o$(BE%s))hKgZzr;;<~LZkL9)_F56Zgdh`qDhd#F}>K?WC^5aqsC zRp3i0_NFkoAM9qh(KsuKEhV{fQuT(#+sELSn>34l7iwgJeJSZfpXVTlbnE>A_QatQ z915>+f`L3T59`CA&xMO<$JxX`#iaMPb=9j~?d=nlh8Q*Nv1+pi2DCSyS%lSBXh=l+ zf?b3t@#$(U&7Ae-Olo_EB8t^zbH&_wK--|0b#^LXN6(p!yvoDv3Q@WHQO(WW&EBLf zVVO8;SqAz&lLQm)hapaQCnOc6`Yk=!sq_)5=rkYq-LP2kcO}u_1A#zR3#Yi$O*}Hg zwiPu-GMGf?Dogzh@W$a1XIL_7c>Xl5`|GhNa%>SEh`bIt|9TxXn`=F~_Q&W)uMuI< zBD$9=r7vAXQNV?wMfkzSP>0(f3Lb9}VaPc`v}Aj4^#@PM4Pe&t=asbTh7}h~h3=EI zv*N3mDXfLVD=je4El0UUM0}s-){!t-$L@(gYj6BG^|UQ@X-lH{MKg+bEh)fG{R3PZ z$*c%gdFVRwUgq#}oTWNt9nu`Q72D&n5fX0zUsh&%XxqxIN_ZNjaJV-VDvAlI97{vF zOwX3Q>dS_aS`}U#YZqj6Auup(c-U8dY!$rqUU{yzCa#yD=0zznoRy&M&*ADuI28=!VHxY1=mF?NE_^0QZ>ySh3xaXgoB)*)D zCJ7+)d-pr9B^x`MT@dnuc& zL0v16n$O~wst@v0P7J`t`E}1zW>(0-eoc-EZ_-upq)Z^ml!X5AqIxmG;(Uq28vmA3F(29hJ#tlE%K_NgPy=Q#1Sv9b$rZVe6syk%W=Ith=9U9aKs{ z%PJ46%()eAW*BQZQoSOrhUmlFf%p?di@1;B z$pFTPEnfEWG}id{+bsMUsbf|%a44!OC)?hErN>y{w5e8yv;J1F^TgC?=nT19Rw(e) z?RTh|SG+JVGUrWSe#y26Yoy9bQ#rQ9icfGxaj4r^eI8A65;8J~@|t|4zoUJMW{6mr zp1EztO?Q_xT1;ou>uOzG(ginky;}VHh8DCz{8>~LIj}BVQi}G3XkS4}?&gfIOEail zY9CQ84n`|``=y>bp*>~No!8F#+Z8Q){cNzmr@vrv zP2(wg&51ps9Ms;1Qf6DMB$KI~T#8{JBu5TkABGcK9~mkic<`!sA$C97OgqZ;2Cz9m zE{>AiZ+o)&gnOThAuPhsySzLP*W#`Kp38SbDeh(kx^v@)GqQ$7;tg?Coza?^=M56@ z>{$1M?VyUg@3Q*BOyF2Q3E1(LKXp!3HM~EGGcz|&uVzo$B92vOq9q1%wAPBYe6>>| z;E}RX!r+EV?1D3+tK2r4n-Lu05Qn4(HsvvR8ju5kQA$3AZ$=?jEHlpkOHg%+lhy*LBH3r^75UqIQ;rPJQ~SOr3_tq($J&F}9bAry-}^2uRgc_1v|g%Wa^J_}>AfRJ zk9Mo2V+5$0Ar9huR^V^0ZNhnGj;-FUC{*#32z2YI#4!3p@?@{fFDVenu}Bksxii>Bb(btNo_x4P&6BXt%Mw>S zUKqy4ZFWU}Xou=Kd|-?FC$6%Jxry$~iRsY*GDC8{&)-3K+sV*V@v?-?$i!-47y8!M zg(sbQ1IwTSi;So?i`GUFR~?5!5qNFVL2~B`+QcWJ8tCsEi2Zz-WO7iz4fD=dQWm}v zst9!605L&(>m~`=^1F7@;jEt;>4ZJO=Z1y`k`SP*jl%FvC<_bC6pjOr*gu8&Uk%}3 z&-^l0ldl?|YmVL@-V~hDq87I7DqE=_2{(Y3eKz_mW2(*II1XcuFY^hhnUjC}C)wZ4 zpR-`m;yxA_#>^&i*BrbI)IW;pwYcL8-yr)Wa|1+3|KmD`W}dfrSWWB=Z3_AltJ#u_ zQ6e7Ju8vQMq$+pY-2aUrm+{hdy3pF)<;Drzg?dDFT4@*P6me^O2jGm%^=WQc+vek?n_0XGn&M&At z-yV_G)N0uq*V}&Vo^!Wa&y)*Bk3amRh3uD1A0dCn!Xf2l$WmH<$oGAFClBhDhBsL2 zIYjkwIIbm98Vt6Kd?1BL*F8Zob*t<987a#bS_cCj%aZ8fW(U4Djw5vyy(C;^x?q{| zs+M()&QuNBg=@>b!jL6XxfvsW_N*s;=FcI^XTI@WX_s0#IFrgjcea{Cg5Q_ju~sMvNVt}U`0g{XcPPsmoO)1f zw`anmn(8QoM=v=9tsveulCOnkuwJquMW(#}5Ya~lcE&fXO4<2ax3E*s5vL00#;kWP z{Sg~~!reMvLVsuKq`?o7FBjX-Y?;?;Z4dDxO3snJ(pmI$X;^YZ6W6}=2qujb`ER|= zoL)yLRviazPgVb4V*$%&IdnPSwud`YN#*sWqxZPgnQK1aBBJF)@NTEs#8%+RlJPd7 z!ksiyu$F^8Xzt5ES0IYKhVtFr^$7~>^ua$H~(b*?5iKtPN#1rAA+lOZX(W-2#m?N`9_ zecbbVC%eif(?4HV1bTK=9`JEQ9QE)seL+N@MS}ej)n%em51_~Y;Ng@XRyvC6;xRd*}BVtmDsA&%Hg9)#!K zuj&I)cqu|C?&D%|2gYLvxZ~NtW{3aA@iE(D!xM{Lv%QLn&M_MOZ23VX!TQ=$(1vj4 zh>T`CC5LTVOw0LVMk7CmJ5-$syUv}V@1=gv!$9^w(|rV^ey<3A zu{h`-2xhf*q_MnTxJ>VP)4l>pmbt^Izp*D^lE#$@P$rU1tSx~noZR*}H1bjyA#qc* zzMMD|0qo&wq&`ioz&8)jrSWOyWpd! z!&HNyK8tW=u_($?E1XUb40l}_d?#{O@t8sz4Q23VBfS>90ltK+ffvQ=Yd#WG83lw7 zZ*7xD3G@h^t#=UxL3I=@$D-Q=^Uur2-F(|ci05Ya=otcz6lE-)q{*mx24ds2bt;`Z z1+M5sdnrVS2XJdv7{_nPT-x%ZRJ-}J0O$k@&aR`pW~$}OH2m3$aqYIF*|EXq0TGcVnz89 zdzKV*G?TgGHZ?)QnSUrqvd^o}8^mt6R9v&Oubqe2q-W({6TqX^c{r2eQ>=2KRtIj! z^!`CmAXTu#0rtxH3H8jceZMux)HX=JPiL0zbh;gtG-duoMRaJj4_Gev#0?B1TA^L& z78Ve$sbMJI%S^9Qlk*rYux|UMg@{>fCjVOw!}QY@YW(>(zcstVDZSa)gmGqJWIlbb zik>+!DVv}zmKLovUX)rCK%J*jK48x&E0N0|}#p#f3o+FDgxvQhoJ8-JxAIqQn69Th(L@Tk(4jBKWI8BSSv6eUS8-e8bmVlKS-UeamSf zu_M36T+gSDi!V4O;SYaI%4F>UQD|a^g2!36Y6M8f@aAFFHn>5Z_5>UF@l~d(XeaL6 z<&d)VE?Nt=3tgay1XB3O7~IvS3qpm(+C>h13B@gqOzheN-UzE=<=#Wdrt%fVo4)1r z3C-{Ex{7UVG%mW8xS~p@Z$Fsi_R>5j1n3)&%m>D^?i=fuumpaVi}UfHa6#=y?THbO zlD&9Qv0zl+GKG_vsUnbRrNU~fK0L@*q^Q8_)`plHzqM>D&spntZ)5x`&i^Hl-^~9T DlLFx% literal 0 HcmV?d00001 diff --git a/doc/html/INPUT/sources/static/overview_Kernel.html b/doc/html/INPUT/sources/static/overview_Kernel.html new file mode 100755 index 000000000..144d3c341 --- /dev/null +++ b/doc/html/INPUT/sources/static/overview_Kernel.html @@ -0,0 +1,191 @@ + + + + + + Main Page + + + +  +
+ + + + + + +
+
+
+ + +

General overview +

+

Table of contents

+ + +
+

1. Introduction

+

The kernel corresponds to the minimal set of services required for the use of SALOME components (Supervisor, IAPP). +The kernel is also used by application software components (solver) and their container. +The kernel is associated to a unique user who can launch only one kernel at once. +The kernel is launched and destroyed by voluntary actions of the user. These functions are realized via the +use of scripts.

+

The list of the kernel services related to communication issues is:

+
    +
  • The Naming service
  • +
  • The Session service
  • +
  • The Life Cycle service
  • +
  • The Registry service
  • +
  • The Notification service
  • +
+

This list is enlarged with CORBA independent services :

+ +
    +
  • The module catalog service
  • +
  • The Data Type Catalog service
  • +
  • The resource catalog service
  • +
+

SALOME kernel module also encapsulates the Engine +Back to the contents +

2. Basic principles

+

The SALOME user's desktop is a process on a machine. This process includes:

+
    +
  • A graphic interface (based on Qt),
  • +
  • A text interface (Python interpreter),
  • +
  • A 3D visualization window shared by components.
  • +
+

SALOME Modules decompose into an interface (widgets GUI, text mode TUI, 3D visualization V3D) and +an engine.

+

The description of a module and its components is obtained by consulting the module catalog.

+

The interface is dynamically loaded in the process of the SALOME user's desktop. The engine is a CORBA +server launched either on the local machine or on the distant machine.

+

The engine (CORBA server) is created by a factory (or container). +This factory is also a CORBA server. Several containers can be present on a machine. +Some containers are specialized for types of components requiring a specific management. +For example, a specific container is required for components performing parallel calculations. +The engine includes at least a dynamically linked library in the container process. +This library is the implementation of the CORBA server associated to the engine. +If the engine is built from a pre-existent executable code, the library is simply a wrapper of the encapsulated code. +It launches the code in a separate process. Wherever possible, the code is included into the dynamic library. +

The container is one of the kernel services. If one needs to create a container on a distant machine, one creates a process resuming a part of the kernel services. The kernel can create other containers on distant machines via the trader (rsh). All the containers and the kernel share the same CORBA naming service with which they register.

+

The user reaches the functions of various SALOME'S components, either in graphic interactive mode (GUI) or in command mode ( TUI), via a Python interpreter.

+Back to the contents + +

3. Services and features of the SALOME kernel module

+

This section gives a brief overview of the services composing the kernel module. + The Life Cycle and Naming + services are described in separate chapters of this reference manual.

+ +

3.1 Session service

+

SALOME session describes the period starting from the kernel creation and + ending with its destruction. During this period the user can connect the session + and disconnect from it without ending this session. One connection log could + be written. A priori, no information resulting from another (past) session can + be used by the current session.

+

Implementation of this service in SALOME application is provided by the class +Session encapsulated in the package +SALOME.

+ +

3.2 Registry service

+

The active component registry should contain:

+ +
    +
  • The list of the active components
  • +
  • The list of the active containers during a SALOME session.
  • +
+

It should allow the state of a session. It also should allow to know if session can be stopped.

+

The API reference for this service is not included in the current version of the reference manual.

+ +

3.3 Notification service

+

The notification service is a kernel function which allows exchanging of events between CORBA objects.

+

In comparison with traditional CORBA event service, SALOME notification service allows to:

+
    +
  • Filter the events,
  • +
  • Structure the events,
  • +
  • Establish quality policies of services,
  • +
  • Subscribe to various event channels.
  • +
+

The API reference for this service is not included in the current version of the reference + manual.

+ +

3.4 Module catalog service

+

There are two module catalogs in SALOME application:

+
    +
  • General module catalog : This first catalog is common to all SALOME users once the the platform is installed (for example for a particular company or a service). This catalog will be managed by the integrator or the administrator of the platform, +
  • Personal module catalog : A specific catalog for every user (possibly empty). This catalog should notably allow the developers to test a new component before integrating it into the general catalog. +
+

The objective of these two module catalogs is to:

+
    +
  • List the available modules; +
  • Allow the addition, the modification and the deletion of a module in catalogs; +
  • Look for a module and\or a service fulfilling some given criteria (in catalogs); +
+

Implementation of this service in SALOME application is provided by two classes +ModuleCatalogand AComponent encapsulated in the package +SALOME_ModuleCatalog.

+ +

3.5 Data type catalog

+ +

The data exchanged between components services have definite types. During description of input, output, and +configuration parameters of components in the module catalog, the +definition of the parameters types is taken from data type catalog. During the editing of execution of +graphs, it is necessary to check that the connections output-input parameters are of compatible +types.

+

The data types correspond to CORBA object classes, including attributes and access methods (defined by their IDL). +These types can be created by specialization of generic data types.

+

The purpose of the data type catalog is to:

+
    +
  • List the available data types in the catalog; +
  • Browse the type hierarchy to check the compatibility of types (specialized output toward generic input); +
  • Allow the addition, the modification and the deletion of a data type in the catalog; +
+

The API reference for this service is not included in the current version of the reference + manual.

+

3.6 Resource catalog

+ +

This catalog describes machines, possible types of container on a machine, resources of machines... This catalog is used by the SALOME LifeCycle service.

+

The API reference for this service is not included in the current version of the reference + manual.

+ +

3.7 Engine

+

The engine represents a shared library which can be dynamically loaded by a container. The container can load this library, +given an interface name and an implementation +name. The container dynamically resolves an extern_C function in the library, +which constructs the CORBA Engine servant object.

+

The SALOME engine in + the current version of the application is implemented + as Engines package of interfaces. It encapsulates two classes: Component, Container.

+

The API refernce for Engines package can be found here. +

+

3.7.1 Component class

+

This class is used for interaction between the container and the component and between the components inside the container. +

+

The API reference for this class can be found here.

+ +

3.7.2 Container class

+

This class provides a set of methods which are necessary for definition of the process of loading and registration of new components in SALOME application.

+

The API reference for this class can be found here.

+ +Back to the contents + + diff --git a/doc/html/INPUT/sources/static/overview_Life_Cycle.html b/doc/html/INPUT/sources/static/overview_Life_Cycle.html new file mode 100755 index 000000000..659c2ab24 --- /dev/null +++ b/doc/html/INPUT/sources/static/overview_Life_Cycle.html @@ -0,0 +1,90 @@ + + + + + + Life Cycle service Description + + + + + + +  +
+ + + + + + +
+
+
+ + +

Life Cycle service Description

+

Introduction

+

The objective of this document is to give the users of SALOME + application a brief overview of the Life Cycle service implemented in SALOME. + A complete version of the LifeCycle service specification edited by the Object Management Group, Inc.(OMG) can be found here. +

+

Table of contents

+ +
+ +

1. Overview

+ +

Life Cycle service defines services and conventions for creating, deleting, copying and moving objects. +Because CORBA-based environments support distributed objects, the Life Cycle service defines conventions that allow clients to perform +life cycle operations on objects in different locations. This overview describes the life cycle problem for distributed object systems.

+
+ + +

2. SALOME Life Cycle service description

+

The SALOME Life Cycle service represents a partial implementation of the CORBA LifeCycle service.

+

From general point of view, the SALOME Life Cycle service allows to find or load with the help of a given container a definte SALOME component with its further +initialization and registration in the Naming service.

+

Container - it's a certain engine realizing the mechanism of loading a SALOME module.

+

Component - it's a certain abstract shell wrapping SALOME modules, performing all operations concerned with their initialization and registration.

+

From the point of view of the service user, the Life Cycle provides a set of functions allowing to :

+
    +
  • Locate a machine (more generally a container) by a logical set of required features (of both container and + machine);
  • +
  • Load components on the obtained containers;
  • +
  • Create a container;
  • +
  • Obtain the container containing a given component;
  • +
  • Treat the list of the active components;
  • +
  • Treat the list of the available containers.
  • +
+ + + +

The SALOME Life Cycle is a CORBA server. This server at its initialization is registered with the naming service.

+

The Life Cycle service is invoked to find a container and use it to load a +component. It supplies, as parameters, the type of container and the machine features required for loading +a given component. +

+

The Life Cycle service then returns a CORBA reference of a launched container.

+

Containers are launched on demand depending on components to be loaded. The Life Cycle service manages loading of containers.

+

When there is no launched container matching the request the Life Cycle service invokes loading of the correct type of container on a correct machine via a rsh type command.

+

The Life Cycle service interrogates containers to have information about the dynamic state of the machine (load). It contains (and update) the state of the active containers.

+

The Life Cycle service can implement a loading strategy for new containers on new machines, depending on the state of the already launched containers.

+

The Life Cycle service can stop containers at the end of session on +demand.

+ +

In SALOME platform the Life Cycle service is implemented in SALOME_Life CycleCORBA class. The API refernce for the methods of this class +can be found here.

+Back to the contents +
+ + +
+ + + diff --git a/doc/html/INPUT/sources/static/overview_Naming.html b/doc/html/INPUT/sources/static/overview_Naming.html new file mode 100755 index 000000000..ae24ab54d --- /dev/null +++ b/doc/html/INPUT/sources/static/overview_Naming.html @@ -0,0 +1,197 @@ + + + + + + Naming Service Description + + + +  +
+ + + + + + +
+
+
+ + +

Naming Service Description

+
+

Introduction

+

This page contains an abridged version of the Naming Service specification + edited by the Object Management Group, Inc.(OMG). The objective of this document is to give the users of SALOME + application a brief overview of the Naming Service implemented in SALOME. + A complete version of this document can be found here. +

+
+

Table of contents

+ + +
+ +

1. Overview

+

This chapter presents the OMG Naming Service and explains how the Naming Service can be used to decouple clients and servers by +providing an external reference exchange mechanism. The chapter also covers how to solve the bootstrapping problem for clients and +servers by controlling their configuration. +

+ +

In practice, copying stringified references from a server to all its clients is clumsy and does not scale. The Naming Service provides a way +for servers to advertise references under a name, and for clients to retrieve them. The advantages are: +

+
    +
  • Clients and servers can use meaningful names instead of having to deal with stringified references.
  • +
  • By changing a reference in the service without changing its name, you can transparently direct clients to a different object.
  • +
  • The Naming Service solves the bootstrapping problem because it provides a fixed point for clients and servers to rendezvous.
  • +
+

The Naming Service is much like a white pages phone book. Given a name, it + returns an object reference.

+ +

The terminology used in description of NamigService is the following:

+ +
    +
  • A name-to-IOR association is called by a name binding.
  • +
  • Each binding identifies exactly one object reference, but an object reference + may be bound more than once (have more than one name).
  • +
  • A naming context is an object that contains name bindings. + The names within a context must be unique. Naming contexts can contain bindings + to other naming contexts, so naming contexts can form graphs. Binding contexts + in other contexts creates a naming graph — a directed graph with nodes + and labeled edges where the nodes are contexts. A naming graph allows more + complex names to reference an object. Given a context in a naming graph, a + sequence of names can reference an object. This sequence of names (called + a compound name) defines a path in the naming graph to navigate the + resolution process. Figure 1-1 shows an example of a naming graph.
  • +
  • Binding a name to a context means to add a name–IOR pair to a context.
  • +
  • Resolving a name means to look for a name in a context and to obtain the + IOR bound under that name.
  • +
+ + +
+

Figure 1-1 A Naming Graph

+ Back to the contents +
+ +

2. SALOME Naming Service

+ +

2.1 Introduction

+

The SALOME Naming Service is a kernel function which supplies a name directory + hierarchy for pointing out CORBA objects. This name directory hierarchy allows, + from symbolic names, to dynamically find the references of distributed SALOME + objects, without information about their location. SALOME objects which can + be reached via the naming service are:

+ +
    +
  • The kernel services
  • +
  • Containers +
  • SALOME components instances +
+

The name directory hierarchy in SALOME represents a graph of directories containing + symbolic associations name-reference on objects. (It has been described in the + previous section)

+ +

2.2 Definitions

+
+
Directory
+
Context of names containing symbolic associations name-reference on objects.


+
"/"
+
Character used in SALOME to separate two names of a directory


+
Access path
+
List of names (separated by "/" character representing the path to be followed + in the graph to reach an association name-reference (the last name in the sequence).
+
+
Note:An object can be referenced by several symbolic names + in one or several directories.
+ +

2.3 Partition of SALOME name directory hierarchy

+

The hierarchical organization of the SALOME name directory is not completely frozen . +Because the framework allows the simultaneous opening of several studies, the following levels are determined:

+
 
+ /Kernel
+ /Container/
+	       /Component	
+
+ +

2.4 SALOME name directory persistence

+

During a SALOME session, stopping a server in charge of the Naming Service + doesn't imply the loss of the contents of the SALOME name directory hierarchy. + A backup file is produced and can be used to restart the Naming Service. So, + one can recover the state of the SALOME name directory hierarchy at restart + time. During such breakdown, every call to any function of the Naming Service + invokes an exception of type Unreachable service.

+ +

2.5 SALOME Naming Service features

+

Usage and administration of the name directory hierarchy is realized by means of the following functions:

+
    +
  • Recording and recovering of the reference of an object
  • +
  • Searching for a symbolic name
  • +
  • Creating of a directory, reading and modifying of the current directory
  • +
  • Destructing of a symbolic name and a diredtory
  • +
+

The access path used in these functions can be defined, either from the root, or from any +directory of SALOME name directory hierarchy.

+ +

In SALOME there is s standard interface of Naming Service, and any user can + use it for binding and finding objects. How to use it, it's possible to find + in any CORBA documentation. However in SALOME there is an additional layer which + hides calls to standard interface.

+

The precise API reference for these functions you can find here.

+

Here is a short list of public methods which are used for working with the SALOME Naming Service:

+
+

Register

+
Method which register object reference in the naming service with given name. It makes assignment between IOR and stringified name. +Then it's possible to get object reference from name using "Resolve" method.
+

+

Resolve

+
Try to obtain object reference from name. It's necessary before publishing + IOR in the Naming Service by Register method.
+

+

Find

+
The purpose of this method is to research a name from the current directory + of the naming service. Then if there is occurrence the naming service changes + directory to go to the directory where last occurrence is found.
+

+

CreateDirectory

+
This method allows to create one or several directories in the current directory
+

+

ChangeDirectory

+
Moves the current directory. The current directory is moved to the root directory if the input parameter Name is "/".
+

+

CurrentDirectory

+
Method allowing to get the current directory.
+

+

list

+
Method allowing to list and print the whole context beginning from the current context.
+

+

list_directory

+
Method to get all contexts contained in the current directory.
+

+

DestroyName

+
Destroys a symbolic name-object reference association.
+

+

DestroyDirectory

+
Destroys an empty directory.
+
+ +Back to the contents +
+ + diff --git a/doc/html/INPUT/sources/static/overview_Study.html b/doc/html/INPUT/sources/static/overview_Study.html new file mode 100755 index 000000000..f4c278363 --- /dev/null +++ b/doc/html/INPUT/sources/static/overview_Study.html @@ -0,0 +1,261 @@ + + + + + + Main Page + + + +  +
+ + + + + + +
+
+
+ + +

General overview +

+
+

Table of contents

+ +

1. Introduction

+

In SALOME application the Study module is used for management (creation, saving + etc.) of studies. In the framework of the platform, a study represents a working + document allowing to manage the data produced by various components which are + integarted into SALOME.
+

+

2. Representation of the study

+

The study represents a set of objects that we will call Study Objects or SObjects. + The study can be represented as a tree, every node of that tree containing a + SObject. SObjects in the study can be values or references towards data of calculation, + graphs of calculation, trees of construction of detail(room), results. Every + SOject of the study is characterised by a unique identifier in the study.

+

The study allows to describe the following relations:

+
    +
  • The link between the transient and persistent values of an SObject.
  • +
  • The relations between the SObjects produced by different components.
  • +
  • The relations between the SObjects produced by the same component.
  • +
  • The link between an object and its user name.
  • +
  • The access to the definition of the component which produce an object of + the study.
  • +
  • The access to instance of the component (if this one exists) which has produced + this SObject of the study.
  • +
+ +

Every SObject in the study contains a set of attributes. These attributes represent + a set of definitions associated to that object, they can contain values or corba + references towards the data contained in the internal data structure of a component.

+

As the structure of the study is tree-like it is possible to associate sub-objects + to objects.

+

As particular object, the study contains Component Data which are labels associated to the component +which produce data in the study. It is to this object that we can associate attributes containing ID which +we shall allow to identify the type of the component and also its instance. Objects produced by a +component will be sub-objects of the coresponding Data Component.

+

For example Component Data GEOM will contain the data produced by the component + Geom.

+ + + + + +
GEOM contains the data produced by the component GEOM. The component MESH + contains a SObject Mesh_1 wich refers to the SObject identified + by ID4 corresponding to Geometrie_1.
+

We distinguish two forms of the study, the study opened in a session SALOME and the study in the +persistent format. These two formats are described in the following sections

+

2.1 Study in transient format

+

The representation of the study in memory will be based on the document OCAF (supplied by OCC). +The document OCAF can be seen as a tree, every node of that tree is identified by a tag representing an integer value.

+

The exploration of the tree from the root to a node supplies a sequence of tags which establishes a +unique identifier ID. ID represents a character string containing the sequence of tags separated by +one ':'.

+

For example 0:1:12:4

+

To every node we can associate a set of attributes.

+

The attributes which the study can contain can be of the following types:

+
    +
  • All standard attributes supplied by OCC (package TdataStd) which allow to define (integers, +real, strings, identifiers, references etc.)
  • +
  • Attributes which contain CORBA references.
  • +
  • Attributes which contain the path HDF to reach the persistent datum. (Cf. the following chapter)
  • +
+

Remark: it is the study which takes care to build the attributes from the values which are passed to it, so +an attribute is always in a study, and it knows the study object to which it is attached.

+

Example of a Study Object as a set of various attributes.

+ +

2.2 Study in persistent format

+

To store a study HDF format is used, this tool allows to represent persistent data in the form of a tree.

+

Under the root of the persistent document, you can find a set of nodes:

+
    +
  • The first node contains the skeleton of the study. The skeleton consists of the identifiers of the +objects, as well as the references among them.
  • +
  • There is also one node for every component which has produced data during this SALOME session. Under each of these +node there are values of the data produced by this component.
  • +
+

2.3 Link between transient and persistent formats

+

It will be possible to complete the definition of one object in the study by associating to it an attribute +HDFPath which will contain the path to the persistent data.

+ +

Back to the contents

+

3. Services and features of the study

+

The Study in SALOME application possess a wide functionality. This functionality is provided by a set of classes which are described +below. +

3.1 Study class

+

The purpose of the Study class is to manage the data produced by various components + of SALOME platform. Most of the Study operations are handled by the StudyManager + and the StudyBuilder. What + is left in the Study class are elementary inquiries. A Study is explored by + a set of tools, mainly iterators , which are described further.

+

Nevertheless, the Study class contains a set of methods providing:

+ +
    +
  • management of study properties +
  • search for SObjects. +
  • search for SComponents +
  • creation of a new StudyBuilder, ComponentIterator, ChildIterator etc. +
+

The API reference for this class can be found here.

+

3.2 StudyBuilder class

+

StudyBuilder supplies basic services to edit the study. The edition of the study is made by the +component. Every component will use the basic services of the StudyBuilder allowing to write and publish objects.

+

StudyBulder provides the following functionality:

+
    +
  • creation, modification or deletetion of SObjects in the study
  • +
  • creation or removal of SComponents
  • +
  • undo/redo functionality. For that purpose it supplies the methods NewCommand, + CommitCommand, AbortCommand.
  • +
+

The API reference for this class can be found here.

+

3.3 StudyManager class

+

The purpose of the Manager is to manipulate Studies. Since SALOME is a multi-document + application during a working session you can operate as many stadies as you + wishes to create.

+

For that purpose StudyManager provides the following functionality:

+
    +
  • creation, opening, closing and saving studies
  • +
  • navigation through a set of studies present in the current working session
  • +
  • copy/paste of the objects in the study functionality.
  • +
+

The API reference for this class can be found here.

+

3.4 SObject class

+

The objects in the study are built by the StudyBuilder. +The SObject class provides methods for elementary inquiries, like getting an object ID or its attribuites.

+

The API reference for this class can be found here.

+

3.5 SComponent class

+

The SComponent class establishes in the study a permanent assocition to the components +integrated into SALOME platform. The SComponent interface is a specialization of the SObject + class. It inherits the most of its methods from the SObject class which are used for management of the SComponents.

+

The API reference for this class can be found here.

+

3.6 ChildIterator class

+

It is one of the tools destined for exploration of the study. This class contains a set of methods allowing to get +the access to all identified objects which are sons of another identifiedobject.

+

The API reference for this class can be found here.

+

3.7 SComponentIterator

+

This is the second tool destined for exploration of the study. This interface contains the methods allowing to iterate over all SComponents in the list. + The search is started from the first SComponent in the list.

+

The API reference for this class can be found here.

+ +

3.8 GenericAttribute class

+

GenericAttribute represents a base class for all attributes which can be assigned to the SObjects created in the study. All attribute classes + derive from this classe and inherit its methods.

+

The API reference for this class can be found here.

+ +

In SALOME application a SObject can possess the following attributes:

+ + + + + +
+ +
+

3.9 UseCaseBuilder class

+

UseCase in the study represents a user-defined subtree, containing all or some of the objects which currently exist +in the study. The UseCaseBuilder class contains a set of methods used for management (creation, deletion etc) of this sub-tree in the study.

+

The API reference for this class can be found here.

+ +

3.10 UseCaseIterator

+

This class represents an exploration tool for the UseCase. It contains a set of methods used for iteration over the objects in the UseCase.

+

The API reference for this class can be found here.

+ +

3.11 Callback class

+

The StudyBuilder can be created with the method NewBuilder. While invocation of this method a new object of the class + Callback is created and this object is assigned to the newly created Builder as callback which should be called + when adding and removing the objects.

+

The API reference for this class can be found here.

+ +

3.12 Driver class

+ +

This class represents a common tool for all components integrated into SALOME + application, that allows them to communicate with the study. It contains a set + of methods which can be called by any component and which provide the following + functionality: +

    +
  • publishing in the study of the objects created by a definite component
  • +
  • saving/loading of the data created by a definite component. These methods + are called by the StudyManager when loading/saving a study containing the + data created by a definite component.
  • +
  • transforming of the transient references into persistant references (or + vice versa) of the SObjects when saving (or loading) a study
  • +
  • copy/paste common functionality. These methods can be called by any component + in order to copy/paste its object created in the study
  • +
+

The API reference for this class can be found here.

+

Back to the contents

+ + diff --git a/doc/html/INPUT/sources/static/page2.html b/doc/html/INPUT/sources/static/page2.html new file mode 100755 index 000000000..40eed1f98 --- /dev/null +++ b/doc/html/INPUT/sources/static/page2.html @@ -0,0 +1,34 @@ + + + + + + Main Page + + + +  +
+ + + + + + +
+
+
+ + + + + +

Mapping of SALOME IDL definitions to Python language. +

+ + diff --git a/doc/html/INPUT/sources/static/tree.js b/doc/html/INPUT/sources/static/tree.js new file mode 100755 index 000000000..5e07feb1f --- /dev/null +++ b/doc/html/INPUT/sources/static/tree.js @@ -0,0 +1,200 @@ +foldersTree = gFld("SALOME v.1.4.0 ", "", "") + insDoc(foldersTree, gLnk("Main Page", "", "main.html")) + +aux1 = insFld(foldersTree, gFld("TUI Reference Guide", "")) + aux2 = insFld(aux1, gFld("Modules", "")) + aux3 = insFld(aux2, gFld("SALOME STUDY module", "")) + insDoc(aux3, gLnk("Overview", "", "overview_Study.html")) + aux4 = insFld(aux3, gFld("Packages", "")) + insDoc(aux4, gLnk("SALOMEDS", "", "namespaceSALOMEDS.html")) + insDoc(aux3, gLnk("Examples", "", "examples_Study.html")) + aux3 = insFld(aux2, gFld("SALOME KERNEL module", "")) + insDoc(aux3, gLnk("Overview", "", "overview_Kernel.html")) + aux4 = insFld(aux3, gFld("Packages", "")) + insDoc(aux4, gLnk("SALOME_ModuleCatalog", "", "namespaceSALOME__ModuleCatalog.html")) + insDoc(aux4, gLnk("SALOME", "", "namespaceSALOME.html")) + insDoc(aux4, gLnk("Engines", "", "namespaceEngines.html")) + insDoc(aux3, gLnk("Examples", "", "examples_Kernel.html")) + + +/*! Data structures +*/ + insDoc(aux1, gLnk("Data Structures", "", "annotated.html")) + +/*! insDoc(aux1, gLnk("SALOME_ModuleCatalog::Acomponent", "", "interfaceSALOME__ModuleCatalog_1_1Acomponent.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeComment", "", "interfaceSALOMEDS_1_1AttributeComment.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeDrawable", "", "interfaceSALOMEDS_1_1AttributeDrawable.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeExpandable", "", "interfaceSALOMEDS_1_1AttributeExpandable.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeInteger", "", "interfaceSALOMEDS_1_1AttributeInteger.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeIOR", "", "interfaceSALOMEDS_1_1AttributeIOR.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeLocalID", "", "interfaceSALOMEDS_1_1AttributeLocalID.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeName", "", "interfaceSALOMEDS_1_1AttributeName.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeOpened", "", "interfaceSALOMEDS_1_1AttributeOpened.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributePersistentRef", "", "interfaceSALOMEDS_1_1AttributePersistentRef.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributePixMap", "", "interfaceSALOMEDS_1_1AttributePixMap.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributePythonObject", "", "interfaceSALOMEDS_1_1AttributePythonObject.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeReal", "", "interfaceSALOMEDS_1_1AttributeReal.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeSelectable", "", "interfaceSALOMEDS_1_1AttributeSelectable.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeSequenceOfInteger", "", "interfaceSALOMEDS_1_1AttributeSequenceOfInteger.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeSequenceOfReal", "", "interfaceSALOMEDS_1_1AttributeSequenceOfReal.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeStudyProperties", "", "interfaceSALOMEDS_1_1AttributeStudyProperties.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfInteger", "", "interfaceSALOMEDS_1_1AttributeTableOfInteger.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfInteger::IncorrectArgumentLength", "", "exceptionSALOMEDS_1_1AttributeTableOfInteger_1_1IncorrectArgumentLength.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfInteger::IncorrectIndex", "", "exceptionSALOMEDS_1_1AttributeTableOfInteger_1_1IncorrectIndex.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfReal", "", "interfaceSALOMEDS_1_1AttributeTableOfReal.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfReal::IncorrectArgumentLength", "", "exceptionSALOMEDS_1_1AttributeTableOfReal_1_1IncorrectArgumentLength.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfReal::IncorrectIndex", "", "exceptionSALOMEDS_1_1AttributeTableOfReal_1_1IncorrectIndex.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfString", "", "interfaceSALOMEDS_1_1AttributeTableOfString.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfString::IncorrectArgumentLength", "", "exceptionSALOMEDS_1_1AttributeTableOfString_1_1IncorrectArgumentLength.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfString::IncorrectIndex", "", "exceptionSALOMEDS_1_1AttributeTableOfString_1_1IncorrectIndex.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTarget", "", "interfaceSALOMEDS_1_1AttributeTarget.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTextColor", "", "interfaceSALOMEDS_1_1AttributeTextColor.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTextHighlightColor", "", "interfaceSALOMEDS_1_1AttributeTextHighlightColor.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTreeNode", "", "interfaceSALOMEDS_1_1AttributeTreeNode.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeUserID", "", "interfaceSALOMEDS_1_1AttributeUserID.html")) + insDoc(aux1, gLnk("SALOMEDS::Callback", "", "interfaceSALOMEDS_1_1Callback.html")) + insDoc(aux1, gLnk("SALOMEDS::ChildIterator", "", "interfaceSALOMEDS_1_1ChildIterator.html")) + insDoc(aux1, gLnk("SALOMEDS::Color", "", "structSALOMEDS_1_1Color.html")) + insDoc(aux1, gLnk("Engines::Component", "", "interfaceEngines_1_1Component.html")) + insDoc(aux1, gLnk("Engines::Container", "", "interfaceEngines_1_1Container.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::DefinitionInterface", "", "structSALOME__ModuleCatalog_1_1DefinitionInterface.html")) + insDoc(aux1, gLnk("SALOMEDS::Driver", "", "interfaceSALOMEDS_1_1Driver.html")) + insDoc(aux1, gLnk("SALOME::ExceptionStruct", "", "structSALOME_1_1ExceptionStruct.html")) + insDoc(aux1, gLnk("SALOMEDS::GenericAttribute", "", "interfaceSALOMEDS_1_1GenericAttribute.html")) + insDoc(aux1, gLnk("SALOMEDS::GenericAttribute::LockProtection", "", "exceptionSALOMEDS_1_1GenericAttribute_1_1LockProtection.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::IAPP_Affich", "", "structSALOME__ModuleCatalog_1_1IAPP__Affich.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::ModuleCatalog", "", "interfaceSALOME__ModuleCatalog_1_1ModuleCatalog.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::NotFound", "", "exceptionSALOME__ModuleCatalog_1_1NotFound.html")) + insDoc(aux1, gLnk("SALOMEDS::NotImplemented", "", "exceptionSALOMEDS_1_1NotImplemented.html")) + insDoc(aux1, gLnk("SALOME::SALOME_Exception", "", "exceptionSALOME_1_1SALOME__Exception.html")) + insDoc(aux1, gLnk("SALOMEDS::SComponent", "", "interfaceSALOMEDS_1_1SComponent.html")) + insDoc(aux1, gLnk("SALOMEDS::SComponentIterator", "", "interfaceSALOMEDS_1_1SComponentIterator.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::Service", "", "structSALOME__ModuleCatalog_1_1Service.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::ServicesParameter", "", "structSALOME__ModuleCatalog_1_1ServicesParameter.html")) + insDoc(aux1, gLnk("SALOME::Session", "", "interfaceSALOME_1_1Session.html")) + insDoc(aux1, gLnk("SALOME::Session::GUIActive", "", "exceptionSALOME_1_1Session_1_1GUIActive.html")) + insDoc(aux1, gLnk("SALOME::Session::RunningStudies", "", "exceptionSALOME_1_1Session_1_1RunningStudies.html")) + insDoc(aux1, gLnk("SALOMEDS::SObject", "", "interfaceSALOMEDS_1_1SObject.html")) + insDoc(aux1, gLnk("SALOME::StatSession", "", "structSALOME_1_1StatSession.html")) + insDoc(aux1, gLnk("SALOMEDS::Study", "", "interfaceSALOMEDS_1_1Study.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyCommentError", "", "exceptionSALOMEDS_1_1Study_1_1StudyCommentError.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyInvalidComponent", "", "exceptionSALOMEDS_1_1Study_1_1StudyInvalidComponent.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyInvalidContext", "", "exceptionSALOMEDS_1_1Study_1_1StudyInvalidContext.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyInvalidDirectory", "", "exceptionSALOMEDS_1_1Study_1_1StudyInvalidDirectory.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyNameAlreadyUsed", "", "exceptionSALOMEDS_1_1Study_1_1StudyNameAlreadyUsed.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyNameError", "", "exceptionSALOMEDS_1_1Study_1_1StudyNameError.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyObjectAlreadyExists", "", "exceptionSALOMEDS_1_1Study_1_1StudyObjectAlreadyExists.html")) + insDoc(aux1, gLnk("SALOMEDS::StudyBuilder", "", "interfaceSALOMEDS_1_1StudyBuilder.html")) + insDoc(aux1, gLnk("SALOMEDS::StudyBuilder::LockProtection", "", "exceptionSALOMEDS_1_1StudyBuilder_1_1LockProtection.html")) + insDoc(aux1, gLnk("SALOMEDS::StudyManager", "", "interfaceSALOMEDS_1_1StudyManager.html")) + insDoc(aux1, gLnk("SALOMEDS::UseCaseBuilder", "", "interfaceSALOMEDS_1_1UseCaseBuilder.html")) + insDoc(aux1, gLnk("SALOMEDS::UseCaseIterator", "", "interfaceSALOMEDS_1_1UseCaseIterator.html")) +*/ + insDoc(aux1, gLnk("Class Hierarchy", "", "hierarchy.html")) + +/*! insDoc(aux1, gLnk("SALOME_ModuleCatalog::Acomponent", "", "interfaceSALOME__ModuleCatalog_1_1Acomponent.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfInteger::IncorrectArgumentLength", "", "exceptionSALOMEDS_1_1AttributeTableOfInteger_1_1IncorrectArgumentLength.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfInteger::IncorrectIndex", "", "exceptionSALOMEDS_1_1AttributeTableOfInteger_1_1IncorrectIndex.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfReal::IncorrectArgumentLength", "", "exceptionSALOMEDS_1_1AttributeTableOfReal_1_1IncorrectArgumentLength.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfReal::IncorrectIndex", "", "exceptionSALOMEDS_1_1AttributeTableOfReal_1_1IncorrectIndex.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfString::IncorrectArgumentLength", "", "exceptionSALOMEDS_1_1AttributeTableOfString_1_1IncorrectArgumentLength.html")) + insDoc(aux1, gLnk("SALOMEDS::AttributeTableOfString::IncorrectIndex", "", "exceptionSALOMEDS_1_1AttributeTableOfString_1_1IncorrectIndex.html")) + insDoc(aux1, gLnk("SALOMEDS::Callback", "", "interfaceSALOMEDS_1_1Callback.html")) + insDoc(aux1, gLnk("SALOMEDS::ChildIterator", "", "interfaceSALOMEDS_1_1ChildIterator.html")) + insDoc(aux1, gLnk("SALOMEDS::Color", "", "structSALOMEDS_1_1Color.html")) + aux2 = insFld(aux1, gFld("Engines::Component", "", "interfaceEngines_1_1Component.html")) + insDoc(aux1, gLnk("Engines::Container", "", "interfaceEngines_1_1Container.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::DefinitionInterface", "", "structSALOME__ModuleCatalog_1_1DefinitionInterface.html")) + aux2 = insFld(aux1, gFld("SALOMEDS::Driver", "", "interfaceSALOMEDS_1_1Driver.html")) + insDoc(aux1, gLnk("SALOME::ExceptionStruct", "", "structSALOME_1_1ExceptionStruct.html")) + aux2 = insFld(aux1, gFld("SALOMEDS::GenericAttribute", "", "interfaceSALOMEDS_1_1GenericAttribute.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeComment", "", "interfaceSALOMEDS_1_1AttributeComment.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeDrawable", "", "interfaceSALOMEDS_1_1AttributeDrawable.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeExpandable", "", "interfaceSALOMEDS_1_1AttributeExpandable.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeInteger", "", "interfaceSALOMEDS_1_1AttributeInteger.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeIOR", "", "interfaceSALOMEDS_1_1AttributeIOR.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeLocalID", "", "interfaceSALOMEDS_1_1AttributeLocalID.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeName", "", "interfaceSALOMEDS_1_1AttributeName.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeOpened", "", "interfaceSALOMEDS_1_1AttributeOpened.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributePersistentRef", "", "interfaceSALOMEDS_1_1AttributePersistentRef.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributePixMap", "", "interfaceSALOMEDS_1_1AttributePixMap.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributePythonObject", "", "interfaceSALOMEDS_1_1AttributePythonObject.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeReal", "", "interfaceSALOMEDS_1_1AttributeReal.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeSelectable", "", "interfaceSALOMEDS_1_1AttributeSelectable.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeSequenceOfInteger", "", "interfaceSALOMEDS_1_1AttributeSequenceOfInteger.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeSequenceOfReal", "", "interfaceSALOMEDS_1_1AttributeSequenceOfReal.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeStudyProperties", "", "interfaceSALOMEDS_1_1AttributeStudyProperties.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeTableOfInteger", "", "interfaceSALOMEDS_1_1AttributeTableOfInteger.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeTableOfReal", "", "interfaceSALOMEDS_1_1AttributeTableOfReal.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeTableOfString", "", "interfaceSALOMEDS_1_1AttributeTableOfString.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeTarget", "", "interfaceSALOMEDS_1_1AttributeTarget.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeTextColor", "", "interfaceSALOMEDS_1_1AttributeTextColor.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeTextHighlightColor", "", "interfaceSALOMEDS_1_1AttributeTextHighlightColor.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeTreeNode", "", "interfaceSALOMEDS_1_1AttributeTreeNode.html")) + insDoc(aux2, gLnk("SALOMEDS::AttributeUserID", "", "interfaceSALOMEDS_1_1AttributeUserID.html")) + insDoc(aux1, gLnk("SALOMEDS::GenericAttribute::LockProtection", "", "exceptionSALOMEDS_1_1GenericAttribute_1_1LockProtection.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::IAPP_Affich", "", "structSALOME__ModuleCatalog_1_1IAPP__Affich.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::ModuleCatalog", "", "interfaceSALOME__ModuleCatalog_1_1ModuleCatalog.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::NotFound", "", "exceptionSALOME__ModuleCatalog_1_1NotFound.html")) + insDoc(aux1, gLnk("SALOMEDS::NotImplemented", "", "exceptionSALOMEDS_1_1NotImplemented.html")) + insDoc(aux1, gLnk("SALOME::SALOME_Exception", "", "exceptionSALOME_1_1SALOME__Exception.html")) + insDoc(aux1, gLnk("SALOMEDS::SComponentIterator", "", "interfaceSALOMEDS_1_1SComponentIterator.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::Service", "", "structSALOME__ModuleCatalog_1_1Service.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog::ServicesParameter", "", "structSALOME__ModuleCatalog_1_1ServicesParameter.html")) + insDoc(aux1, gLnk("SALOME::Session", "", "interfaceSALOME_1_1Session.html")) + insDoc(aux1, gLnk("SALOME::Session::GUIActive", "", "exceptionSALOME_1_1Session_1_1GUIActive.html")) + insDoc(aux1, gLnk("SALOME::Session::RunningStudies", "", "exceptionSALOME_1_1Session_1_1RunningStudies.html")) + aux2 = insFld(aux1, gFld("SALOMEDS::SObject", "", "interfaceSALOMEDS_1_1SObject.html")) + insDoc(aux2, gLnk("SALOMEDS::SComponent", "", "interfaceSALOMEDS_1_1SComponent.html")) + insDoc(aux1, gLnk("SALOME::StatSession", "", "structSALOME_1_1StatSession.html")) + insDoc(aux1, gLnk("SALOMEDS::Study", "", "interfaceSALOMEDS_1_1Study.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyCommentError", "", "exceptionSALOMEDS_1_1Study_1_1StudyCommentError.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyInvalidComponent", "", "exceptionSALOMEDS_1_1Study_1_1StudyInvalidComponent.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyInvalidContext", "", "exceptionSALOMEDS_1_1Study_1_1StudyInvalidContext.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyInvalidDirectory", "", "exceptionSALOMEDS_1_1Study_1_1StudyInvalidDirectory.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyNameAlreadyUsed", "", "exceptionSALOMEDS_1_1Study_1_1StudyNameAlreadyUsed.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyNameError", "", "exceptionSALOMEDS_1_1Study_1_1StudyNameError.html")) + insDoc(aux1, gLnk("SALOMEDS::Study::StudyObjectAlreadyExists", "", "exceptionSALOMEDS_1_1Study_1_1StudyObjectAlreadyExists.html")) + insDoc(aux1, gLnk("SALOMEDS::StudyBuilder", "", "interfaceSALOMEDS_1_1StudyBuilder.html")) + insDoc(aux1, gLnk("SALOMEDS::StudyBuilder::LockProtection", "", "exceptionSALOMEDS_1_1StudyBuilder_1_1LockProtection.html")) + insDoc(aux1, gLnk("SALOMEDS::StudyManager", "", "interfaceSALOMEDS_1_1StudyManager.html")) + insDoc(aux1, gLnk("SALOMEDS::UseCaseBuilder", "", "interfaceSALOMEDS_1_1UseCaseBuilder.html")) + insDoc(aux1, gLnk("SALOMEDS::UseCaseIterator", "", "interfaceSALOMEDS_1_1UseCaseIterator.html")) +*/ + insDoc(aux1, gLnk("Class methods list", "", "functions.html")) +/*! +aux1 = insFld(foldersTree, gFld("Namespace List", "", "namespaces.html")) + insDoc(aux1, gLnk("Engines", "", "namespaceEngines.html")) + insDoc(aux1, gLnk("SALOME", "", "namespaceSALOME.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog", "", "namespaceSALOME__ModuleCatalog.html")) + insDoc(aux1, gLnk("SALOMEDS", "", "namespaceSALOMEDS.html")) +*/ + insDoc(aux1, gLnk("Namespace Members", "", "namespacemembers.html")) + + insDoc(aux1, gLnk("File List", "", "files.html")) + +/*! + insDoc(aux1, gLnk("SALOME_Component.idl", "", "SALOME__Component_8idl.html")) + insDoc(aux1, gLnk("SALOME_Exception.idl", "", "SALOME__Exception_8idl.html")) + insDoc(aux1, gLnk("SALOME_ModuleCatalog.idl", "", "SALOME__ModuleCatalog_8idl.html")) + insDoc(aux1, gLnk("SALOME_Session.idl", "", "SALOME__Session_8idl.html")) + insDoc(aux1, gLnk("SALOMEDS.idl", "", "SALOMEDS_8idl.html")) + insDoc(aux1, gLnk("SALOMEDS_Attributes.idl", "", "SALOMEDS__Attributes_8idl.html")) +*/ + +aux1 = insFld(foldersTree, gFld("IDL/Python mapping", "")) + insDoc(aux1, gLnk("Mapping of IDL definitions to Python language", "", "mapping.html")) + insDoc(aux1, gLnk("Mapping of SALOME IDL definitions to Python language", "", "page2.html")) + +/*! insDoc(foldersTree, gLnk("Graphical Class Hierarchy", "", "inherits.html")) +*/ +aux1 = insFld(foldersTree, gFld("Naming service", "")) + insDoc(aux1, gLnk("Naming Service Description ", "", "overview_Naming.html")) + insDoc(aux1, gLnk("Salome_NamingService Class Reference", "", "classSALOME__NamingService.html")) + insDoc(aux1, gLnk("Examples", "", "examples_Naming.html")) +aux1 = insFld(foldersTree, gFld("Life Cycle", "")) + insDoc(aux1, gLnk("Life Cycle Service Description ", "", "overview_Life_Cycle.html")) + insDoc(aux1, gLnk("Salome_LifeCycleCorba Class Reference", "", "classSALOME__LifeCycleCORBA.html")) + insDoc(aux1, gLnk("Examples", "", "examples_Life_cycle.html")) + + diff --git a/doc/html/INPUT/sources/static/treeview.js b/doc/html/INPUT/sources/static/treeview.js new file mode 100644 index 000000000..55eb43d07 --- /dev/null +++ b/doc/html/INPUT/sources/static/treeview.js @@ -0,0 +1,505 @@ +//**************************************************************** +// You are free to copy the "Folder-Tree" script as long as you +// keep this copyright notice: +// Script found in: http://www.geocities.com/Paris/LeftBank/2178/ +// Author: Marcelino Alves Martins (martins@hks.com) December '97. +//**************************************************************** + +//Log of changes: +// 17 Feb 98 - Fix initialization flashing problem with Netscape +// +// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS; +// make the ftien4 a js file +// +// DvH: Dec 2000 - Made some minor changes to support external +// references + +// Definition of class Folder +// ***************************************************************** + +function Folder(folderDescription, tagName, hreference) //constructor +{ + //constant data + this.desc = folderDescription + this.tagName = tagName + this.hreference = hreference + this.id = -1 + this.navObj = 0 + this.iconImg = 0 + this.nodeImg = 0 + this.isLastNode = 0 + + //dynamic data + this.isOpen = true + this.iconSrc = "ftv2folderopen.png" + this.children = new Array + this.nChildren = 0 + + //methods + this.initialize = initializeFolder + this.setState = setStateFolder + this.addChild = addChild + this.createIndex = createEntryIndex + this.hide = hideFolder + this.display = display + this.renderOb = drawFolder + this.totalHeight = totalHeight + this.subEntries = folderSubEntries + this.outputLink = outputFolderLink +} + +function setStateFolder(isOpen) +{ + var subEntries + var totalHeight + var fIt = 0 + var i=0 + + if (isOpen == this.isOpen) + return + + if (browserVersion == 2) + { + totalHeight = 0 + for (i=0; i < this.nChildren; i++) + totalHeight = totalHeight + this.children[i].navObj.clip.height + subEntries = this.subEntries() + if (this.isOpen) + totalHeight = 0 - totalHeight + for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) + indexOfEntries[fIt].navObj.moveBy(0, totalHeight) + } + this.isOpen = isOpen + propagateChangesInState(this) +} + +function propagateChangesInState(folder) +{ + var i=0 + + if (folder.isOpen) + { + if (folder.nodeImg) + if (folder.isLastNode) + folder.nodeImg.src = "ftv2mlastnode.png" + else + folder.nodeImg.src = "ftv2mnode.png" + folder.iconImg.src = "ftv2folderopen.png" + for (i=0; i 0) + auxEv = "" + else + auxEv = "" + + if (level>0) + if (lastNode) //the last 'brother' in the children array + { + this.renderOb(leftSide + auxEv + "") +// leftSide = leftSide + "" + this.isLastNode = 1 + } + else + { + this.renderOb(leftSide + auxEv + "") + leftSide = leftSide + "" + this.isLastNode = 0 + } + else + this.renderOb("") + + if (nc > 0) + { + level = level + 1 + for (i=0 ; i < this.nChildren; i++) + { + if (i == this.nChildren-1) + this.children[i].initialize(level, 1, leftSide) + else + this.children[i].initialize(level, 0, leftSide) + } + } +} + +function drawFolder(leftSide) +{ + if (browserVersion == 2) { + if (!doc.yPos) + doc.yPos=8 + doc.write("") + } + if (browserVersion == 3) + { + doc.write("
") + } + + doc.write("\n") + doc.write("\n\n") + doc.write("\n
") + doc.write(leftSide) + this.outputLink() + doc.write("") + doc.write("") + if (USETEXTLINKS) + { + this.outputLink() + doc.write(this.desc + "") + } + else + doc.write(this.desc) + +/*! + if (this.tagName!="") + { + doc.write(" [external]") + } +*/ + doc.write("
\n") + + if (browserVersion == 2) { + doc.write("") + } + if (browserVersion == 3) { + doc.write("
") + } + + if (browserVersion == 1) { + this.navObj = doc.all["folder"+this.id] + this.iconImg = doc.all["folderIcon"+this.id] + this.nodeImg = doc.all["nodeIcon"+this.id] + } else if (browserVersion == 2) { + this.navObj = doc.layers["folder"+this.id] + this.iconImg = this.navObj.document.images["folderIcon"+this.id] + this.nodeImg = this.navObj.document.images["nodeIcon"+this.id] + doc.yPos=doc.yPos+this.navObj.clip.height + } else if (browserVersion == 3) { + this.navObj = doc.getElementById("folder"+this.id) + this.iconImg = doc.images.namedItem("folderIcon"+this.id) + this.nodeImg = doc.images.namedItem("nodeIcon"+this.id) + } +} + +function outputFolderLink() +{ + if (this.hreference) + { + doc.write(" 0) + doc.write("onClick='javascript:clickOnFolder("+this.id+")'") + doc.write(">") + } + else + doc.write("") +} + +function addChild(childNode) +{ + this.children[this.nChildren] = childNode + this.nChildren++ + return childNode +} + +function folderSubEntries() +{ + var i = 0 + var se = this.nChildren + + for (i=0; i < this.nChildren; i++){ + if (this.children[i].children) //is a folder + se = se + this.children[i].subEntries() + } + + return se +} + + +// Definition of class Item (a document or link inside a Folder) +// ************************************************************* + +function Item(itemDescription, tagName, itemLink) // Constructor +{ + // constant data + this.desc = itemDescription + this.tagName = tagName + this.link = itemLink + this.id = -1 //initialized in initalize() + this.navObj = 0 //initialized in render() + this.iconImg = 0 //initialized in render() + this.iconSrc = "ftv2doc.png" + + // methods + this.initialize = initializeItem + this.createIndex = createEntryIndex + this.hide = hideItem + this.display = display + this.renderOb = drawItem + this.totalHeight = totalHeight +} + +function hideItem() +{ + if (browserVersion == 1 || browserVersion == 3) { + if (this.navObj.style.display == "none") + return + this.navObj.style.display = "none" + } else { + if (this.navObj.visibility == "hidden") + return + this.navObj.visibility = "hidden" + } +} + +function initializeItem(level, lastNode, leftSide) +{ + this.createIndex() + + if (level>0) + if (lastNode) //the last 'brother' in the children array + { + this.renderOb(leftSide + "") + leftSide = leftSide + "" + } + else + { + this.renderOb(leftSide + "") + leftSide = leftSide + "" + } + else + this.renderOb("") +} + +function drawItem(leftSide) +{ + if (browserVersion == 2) + doc.write("") + if (browserVersion == 3) + doc.write("
") + + doc.write("\n\n") + doc.write("\n
") + doc.write(leftSide) + if (this.link!="") + { + doc.write("") + } + doc.write("") + if (this.link!="") + { + doc.write("") + } + doc.write("") + if (USETEXTLINKS && this.link!="") + doc.write("" + this.desc + "") + else + doc.write(this.desc) +/*! + if (this.tagName!="") + { + doc.write(" [external]"); + } +*/ + doc.write("\n
\n") + + if (browserVersion == 2) + doc.write("") + if (browserVersion == 3) + doc.write("
") + + if (browserVersion == 1) { + this.navObj = doc.all["item"+this.id] + this.iconImg = doc.all["itemIcon"+this.id] + } else if (browserVersion == 2) { + this.navObj = doc.layers["item"+this.id] + this.iconImg = this.navObj.document.images["itemIcon"+this.id] + doc.yPos=doc.yPos+this.navObj.clip.height + } else if (browserVersion == 3) { + this.navObj = doc.getElementById("item"+this.id) + this.iconImg = doc.images.namedItem("itemIcon"+this.id) + } +} + + +// Methods common to both objects (pseudo-inheritance) +// ******************************************************** + +function display() +{ + if (browserVersion == 1 || browserVersion == 3) + this.navObj.style.display = "block" + else + this.navObj.visibility = "show" +} + +function createEntryIndex() +{ + this.id = nEntries + indexOfEntries[nEntries] = this + nEntries++ +} + +// total height of subEntries open +function totalHeight() //used with browserVersion == 2 +{ + var h = this.navObj.clip.height + var i = 0 + + if (this.isOpen) //is a folder and _is_ open + for (i=0 ; i < this.nChildren; i++) + h = h + this.children[i].totalHeight() + + return h +} + + +// Events +// ********************************************************* + +function clickOnFolder(folderId) +{ + var clicked = indexOfEntries[folderId] + + if (!clicked.isOpen) + clickOnNode(folderId) + + return + + if (clicked.isSelected) + return +} + +function clickOnNode(folderId) +{ + var clickedFolder = 0 + var state = 0 + + clickedFolder = indexOfEntries[folderId] + state = clickedFolder.isOpen + + clickedFolder.setState(!state) //open<->close +} + +function initializeDocument() +{ + doc = document; + if (doc.all) + browserVersion = 1 //IE4 + else + if (doc.layers) + browserVersion = 2 //NS4 + else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1) + browserVersion = 3 //mozilla + else + browserVersion = 0 //other + + foldersTree.initialize(0, 1, "") + foldersTree.display() + + if (browserVersion > 0) + { + if(browserVersion != 3) + doc.write(" ") + + // close the whole tree + clickOnNode(0) + // open the root folder + clickOnNode(0) + } +} + +// Auxiliary Functions for Folder-Treee backward compatibility +// ********************************************************* + +function gFld(description, tagName, hreference) +{ + folder = new Folder(description, tagName, hreference) + return folder +} + +function gLnk(description, tagName, linkData) +{ + fullLink = "" + + if (linkData!="") + { + fullLink = "'"+linkData+"' target=\"basefrm\"" + } + + linkItem = new Item(description, tagName, fullLink) + return linkItem +} + +function insFld(parentFolder, childFolder) +{ + return parentFolder.addChild(childFolder) +} + +function insDoc(parentFolder, document) +{ + parentFolder.addChild(document) +} + +// Global variables +// **************** + +USETEXTLINKS = 1 +indexOfEntries = new Array +nEntries = 0 +doc = document +browserVersion = 0 +selectedFolder=0 diff --git a/examples/Makefile.in b/examples/Makefile.in new file mode 100644 index 000000000..48f9d936e --- /dev/null +++ b/examples/Makefile.in @@ -0,0 +1,33 @@ +# Copyright (C) 2003 CEA/DEN, EDF R&D +# +# +# +# File : Makefile.in +# Author : Vasily Rusyaev (Open Cascade NN) +# Module : doc +# $Header: + +top_srcdir=@top_srcdir@ +top_builddir=.. +srcdir=@srcdir@ +VPATH=.:@srcdir@ +curdir = $(shell pwd) +instdatadir=${prefix}/examples + +SUBDIRS=. + +@COMMENCE@ + +data: + (cd $(srcdir) ; cp -fr `ls | grep -v "Makefile.in"` $(curdir)) + +clean: + rm -rf `ls | grep -v "Makefile"` + +install: + rm -rf $(instdatadir) + mkdir $(instdatadir) + cp -rf `ls | grep -v "Makefile"` $(instdatadir) + +uninstall: + rm -rf $(instdatadir) diff --git a/idl/SALOME_GenericObj.idl b/idl/SALOME_GenericObj.idl new file mode 100644 index 000000000..03d730a83 --- /dev/null +++ b/idl/SALOME_GenericObj.idl @@ -0,0 +1,42 @@ +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOME_Component.idl +// Author : Alexey Petrov, OPEN CASCADE +// $Header$ + +#ifndef _SALOME_GENERICOBJ_IDL_ +#define _SALOME_GENERICOBJ_IDL_ +/*! + +This is a package of interfaces used for providing of common bechavior +of SALOME transient CORBA objects in %SALOME application. +*/ +module SALOME{ + interface GenericObj{ + /*! Increase the reference count (mark as used by another object).*/ + void Register(); + /*! Decrease the reference count (release by another object).*/ + void Destroy(); + }; +}; + +#endif diff --git a/src/GenericObj/Makefile.in b/src/GenericObj/Makefile.in new file mode 100644 index 000000000..5839dfaee --- /dev/null +++ b/src/GenericObj/Makefile.in @@ -0,0 +1,46 @@ +# Copyright (C) 2003 CEA/DEN, EDF R&D +# +# +# +# File : Makefile.in +# Author : Alexey Petrov +# Module : VISU +# $Header: + +top_srcdir=@top_srcdir@ +top_builddir=../.. +srcdir=@srcdir@ +VPATH=.:@srcdir@:@top_srcdir@/idl + + +@COMMENCE@ + +# Libraries targets +LIB = libSalomeGenericObj.la +LIB_SRC = SALOME_GenericObj_i.cc + +LIB_SERVER_IDL = SALOME_GenericObj.idl +LIB_CLIENT_IDL = + +# Executables targets +BIN = +BIN_SRC = + +BIN_CLIENT_IDL = +BIN_SERVER_IDL = + +EXPORT_HEADERS = SALOME_GenericObj_i.hh + +# additionnal information to compil and link file +CPPFLAGS += + +LDFLAGS += + +LIBS += + +# additional file to be cleaned +MOSTLYCLEAN += +CLEAN += +DISTCLEAN += + +@CONCLUDE@ \ No newline at end of file diff --git a/src/GenericObj/SALOME_GenericObj_i.cc b/src/GenericObj/SALOME_GenericObj_i.cc new file mode 100644 index 000000000..93aaa9d8e --- /dev/null +++ b/src/GenericObj/SALOME_GenericObj_i.cc @@ -0,0 +1,61 @@ +// SALOME_GenericObj_i_CC +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// File : SALOME_GenericObj_i.cc +// Author : Alexey PETROV +// Module : SALOME + +#include "SALOME_GenericObj_i.hh" +#include "utilities.h" + +using namespace SALOME; + +GenericObj_i::GenericObj_i(PortableServer::POA_ptr thePOA): myRefCounter(1){ + INFOS("GenericObj_i::GenericObj_i() - this = "< +#endif +#ifndef _Standard_HeaderFile +#include +#endif + +#ifndef _Handle_TDataStd_Comment_HeaderFile +#include +#endif + +class Standard_Transient; +class Handle_Standard_Type; +class Handle(TDataStd_Comment); +class SALOMEDS_ExternalFileDef; +Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOMEDS_ExternalFileDef); + +class Handle(SALOMEDS_ExternalFileDef) : public Handle(TDataStd_Comment) { + public: + void* operator new(size_t,void* anAddress) + { + return anAddress; + } + void* operator new(size_t size) + { + return Standard::Allocate(size); + } + void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + Handle(SALOMEDS_ExternalFileDef)():Handle(TDataStd_Comment)() {} + Handle(SALOMEDS_ExternalFileDef)(const Handle(SALOMEDS_ExternalFileDef)& aHandle) : Handle(TDataStd_Comment)(aHandle) + { + } + + Handle(SALOMEDS_ExternalFileDef)(const SALOMEDS_ExternalFileDef* anItem) : Handle(TDataStd_Comment)((TDataStd_Comment *)anItem) + { + } + + Handle(SALOMEDS_ExternalFileDef)& operator=(const Handle(SALOMEDS_ExternalFileDef)& aHandle) + { + Assign(aHandle.Access()); + return *this; + } + + Handle(SALOMEDS_ExternalFileDef)& operator=(const SALOMEDS_ExternalFileDef* anItem) + { + Assign((Standard_Transient *)anItem); + return *this; + } + + SALOMEDS_ExternalFileDef* operator->() + { + return (SALOMEDS_ExternalFileDef *)ControlAccess(); + } + + SALOMEDS_ExternalFileDef* operator->() const + { + return (SALOMEDS_ExternalFileDef *)ControlAccess(); + } + + Standard_EXPORT ~Handle(SALOMEDS_ExternalFileDef)(); + + Standard_EXPORT static const Handle(SALOMEDS_ExternalFileDef) DownCast(const Handle(Standard_Transient)& AnObject); +}; +#endif diff --git a/src/SALOMEDS/Handle_SALOMEDS_FileType.hxx b/src/SALOMEDS/Handle_SALOMEDS_FileType.hxx new file mode 100644 index 000000000..24b684f29 --- /dev/null +++ b/src/SALOMEDS/Handle_SALOMEDS_FileType.hxx @@ -0,0 +1,85 @@ +// File generated by CPPExt (Transient) +// +// Copyright (C) 1991,1995 by +// +// MATRA DATAVISION, FRANCE +// +// This software is furnished in accordance with the terms and conditions +// of the contract and with the inclusion of the above copyright notice. +// This software or any other copy thereof may not be provided or otherwise +// be made available to any other person. No title to an ownership of the +// software is hereby transferred. +// +// At the termination of the contract, the software and all copies of this +// software must be deleted. + +#ifndef _Handle_SALOMEDS_FileType_HeaderFile +#define _Handle_SALOMEDS_FileType_HeaderFile + +#ifndef _Standard_Macro_HeaderFile +#include +#endif +#ifndef _Standard_HeaderFile +#include +#endif + +#ifndef _Handle_TDataStd_Comment_HeaderFile +#include +#endif + +class Standard_Transient; +class Handle_Standard_Type; +class Handle(TDataStd_Comment); +class SALOMEDS_FileType; +Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOMEDS_FileType); + +class Handle(SALOMEDS_FileType) : public Handle(TDataStd_Comment) { + public: + void* operator new(size_t,void* anAddress) + { + return anAddress; + } + void* operator new(size_t size) + { + return Standard::Allocate(size); + } + void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + Handle(SALOMEDS_FileType)():Handle(TDataStd_Comment)() {} + Handle(SALOMEDS_FileType)(const Handle(SALOMEDS_FileType)& aHandle) : Handle(TDataStd_Comment)(aHandle) + { + } + + Handle(SALOMEDS_FileType)(const SALOMEDS_FileType* anItem) : Handle(TDataStd_Comment)((TDataStd_Comment *)anItem) + { + } + + Handle(SALOMEDS_FileType)& operator=(const Handle(SALOMEDS_FileType)& aHandle) + { + Assign(aHandle.Access()); + return *this; + } + + Handle(SALOMEDS_FileType)& operator=(const SALOMEDS_FileType* anItem) + { + Assign((Standard_Transient *)anItem); + return *this; + } + + SALOMEDS_FileType* operator->() + { + return (SALOMEDS_FileType *)ControlAccess(); + } + + SALOMEDS_FileType* operator->() const + { + return (SALOMEDS_FileType *)ControlAccess(); + } + + Standard_EXPORT ~Handle(SALOMEDS_FileType)(); + + Standard_EXPORT static const Handle(SALOMEDS_FileType) DownCast(const Handle(Standard_Transient)& AnObject); +}; +#endif diff --git a/src/SALOMEDS/README_attributes b/src/SALOMEDS/README_attributes new file mode 100644 index 000000000..b0c4ff789 --- /dev/null +++ b/src/SALOMEDS/README_attributes @@ -0,0 +1,46 @@ + +$Header$ + +How to add a new attribute (without WOK): +----------------------------------------- + +This works only for simple types (ex: string) + +example: add attribute FileType (string) + +# new files (copied from files specific to ExternalFileDef attribute = string): + +? src/SALOMEDS/Handle_SALOMEDS_FileType.hxx <--- Handle_SALOMEDS_ExternalFileDef.hxx +? src/SALOMEDS/SALOMEDS_AttributeFileType_i.cxx <--- SALOMEDS_AttributeExternalFileDef_i.cxx +? src/SALOMEDS/SALOMEDS_AttributeFileType_i.hxx <--- SALOMEDS_AttributeExternalFileDef_i.hxx +? src/SALOMEDS/SALOMEDS_FileType.cdl <--- SALOMEDS_ExternalFileDef.cdl +? src/SALOMEDS/SALOMEDS_FileType.cxx <--- SALOMEDS_ExternalFileDef.cxx +? src/SALOMEDS/SALOMEDS_FileType.hxx <--- SALOMEDS_ExternalFileDef.hxx +? src/SALOMEDS/SALOMEDS_FileType.ixx <--- SALOMEDS_ExternalFileDef.ixx +? src/SALOMEDS/SALOMEDS_FileType.jxx <--- SALOMEDS_ExternalFileDef.jxx + +# files modified: + +M idl/SALOMEDS_Attributes.idl +M src/SALOMEDS/Makefile.in +M src/SALOMEDS/SALOMEDS_SObject_i.cxx +M src/SALOMEDS/SALOMEDS_StudyBuilder_i.cxx + +# detailled modifications: + +- in new files, +change ExternalFileDef in FileType everywhere +- in SALOMEDS_FileType.cxx, +Standard_GUID (Global Universal IDentifier) must be changed. +To obtain a new GUID, it is possible to use guidgen.exe on windows (with visual C++). + +- in src/SALOMEDS/Makefile.in, +add under LIB_SRC = \ + SALOMEDS_FileType.cxx \ + SALOMEDS_AttributeExternalFileDef_i.cxx \ + +- in src/SALOMEDS/SALOMEDS_SObject_i.cxx, +- in src/SALOMEDS/SALOMEDS_StudyBuilder_i.cxx, +- in idl/SALOMEDS_Attributes.idl, +find portions of code containing ExternalFileDef, duplicate and replace + diff --git a/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.cxx b/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.cxx new file mode 100644 index 000000000..94e2a313d --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.cxx @@ -0,0 +1,48 @@ +// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOMEDS_AttributeExternalFileDef_i.cxx +// Author : Yves FRICAUD +// Module : SALOME +// $Header$ + +using namespace std; +#include "SALOMEDS_AttributeExternalFileDef_i.hxx" + +#include +#include "SALOMEDS_SObject_i.hxx" + +char* SALOMEDS_AttributeExternalFileDef_i::Value() +{ + TCollection_ExtendedString S = Handle(SALOMEDS_ExternalFileDef)::DownCast(_myAttr)->Get(); + CORBA::String_var c_s = CORBA::string_dup(TCollection_AsciiString(S).ToCString()); + return c_s._retn(); +} + +void SALOMEDS_AttributeExternalFileDef_i::SetValue(const char* value) +{ + CheckLocked(); + CORBA::String_var Str = CORBA::string_dup(value); + // Handle(SALOMEDS_ExternalFileDef)::DownCast(_myAttr)->Set(TCollection_ExtendedString(Str)); + Handle(TDataStd_Comment)::DownCast(_myAttr)->Set(TCollection_ExtendedString(Str)); +} diff --git a/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.hxx b/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.hxx new file mode 100644 index 000000000..b6d5244a7 --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_AttributeExternalFileDef_i.hxx @@ -0,0 +1,56 @@ +// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOMEDS_AttributeExternalFileDef_i.hxx +// Author : Yves FRICAUD +// Module : SALOME +// $Header$ + +#ifndef SALOMEDS_AttributeExternalFileDef_i_HeaderFile +#define SALOMEDS_AttributeExternalFileDef_i_HeaderFile + +// IDL headers +#include +#include CORBA_SERVER_HEADER(SALOMEDS_Attributes) +#include "SALOMEDS_GenericAttribute_i.hxx" +#include "SALOMEDS_ExternalFileDef.hxx" + +class SALOMEDS_AttributeExternalFileDef_i: public virtual POA_SALOMEDS::AttributeExternalFileDef, + public virtual SALOMEDS_GenericAttribute_i { +public: + + SALOMEDS_AttributeExternalFileDef_i(const Handle(SALOMEDS_ExternalFileDef)& theCommentAttr, CORBA::ORB_ptr orb) + { + _myOrb = CORBA::ORB::_duplicate(orb); + _myAttr = theCommentAttr; + } + ~SALOMEDS_AttributeExternalFileDef_i() {}; + + char* Value(); + void SetValue(const char* value); + +}; + + + +#endif diff --git a/src/SALOMEDS/SALOMEDS_AttributeFileType_i.cxx b/src/SALOMEDS/SALOMEDS_AttributeFileType_i.cxx new file mode 100644 index 000000000..d40a53f43 --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_AttributeFileType_i.cxx @@ -0,0 +1,48 @@ +// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOMEDS_AttributeFileType_i.cxx +// Author : Yves FRICAUD +// Module : SALOME +// $Header$ + +using namespace std; +#include "SALOMEDS_AttributeFileType_i.hxx" + +#include +#include "SALOMEDS_SObject_i.hxx" + +char* SALOMEDS_AttributeFileType_i::Value() +{ + TCollection_ExtendedString S = Handle(SALOMEDS_FileType)::DownCast(_myAttr)->Get(); + CORBA::String_var c_s = CORBA::string_dup(TCollection_AsciiString(S).ToCString()); + return c_s._retn(); +} + +void SALOMEDS_AttributeFileType_i::SetValue(const char* value) +{ + CheckLocked(); + CORBA::String_var Str = CORBA::string_dup(value); + // Handle(SALOMEDS_FileType)::DownCast(_myAttr)->Set(TCollection_ExtendedString(Str)); + Handle(TDataStd_Comment)::DownCast(_myAttr)->Set(TCollection_ExtendedString(Str)); +} diff --git a/src/SALOMEDS/SALOMEDS_AttributeFileType_i.hxx b/src/SALOMEDS/SALOMEDS_AttributeFileType_i.hxx new file mode 100644 index 000000000..324c5cb9a --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_AttributeFileType_i.hxx @@ -0,0 +1,56 @@ +// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOMEDS_AttributeFileType_i.hxx +// Author : Yves FRICAUD +// Module : SALOME +// $Header$ + +#ifndef SALOMEDS_AttributeFileType_i_HeaderFile +#define SALOMEDS_AttributeFileType_i_HeaderFile + +// IDL headers +#include +#include CORBA_SERVER_HEADER(SALOMEDS_Attributes) +#include "SALOMEDS_GenericAttribute_i.hxx" +#include "SALOMEDS_FileType.hxx" + +class SALOMEDS_AttributeFileType_i: public virtual POA_SALOMEDS::AttributeFileType, + public virtual SALOMEDS_GenericAttribute_i { +public: + + SALOMEDS_AttributeFileType_i(const Handle(SALOMEDS_FileType)& theCommentAttr, CORBA::ORB_ptr orb) + { + _myOrb = CORBA::ORB::_duplicate(orb); + _myAttr = theCommentAttr; + } + ~SALOMEDS_AttributeFileType_i() {}; + + char* Value(); + void SetValue(const char* value); + +}; + + + +#endif diff --git a/src/SALOMEDS/SALOMEDS_ExternalFileDef.cdl b/src/SALOMEDS/SALOMEDS_ExternalFileDef.cdl new file mode 100644 index 000000000..a5ab6d282 --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_ExternalFileDef.cdl @@ -0,0 +1,76 @@ +-- SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +-- +-- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +-- +-- +-- +-- File : SALOMEDS_ExternalFileDef.cdl +-- Author : Yves FRICAUD +-- Module : SALOME + +class ExternalFileDef from SALOMEDS inherits Comment from TDataStd + + ---Purpose: + + +uses Attribute from TDF, + Label from TDF, + GUID from Standard, + ExtendedString from TCollection, + DataSet from TDF, + RelocationTable from TDF, + AttributeSequence from TDF, + Data from TDF, + Comment from TDataStd + + +is + + + ---Purpose: class methods + -- ============= + + GetID (myclass) + ---C++: return const & + returns GUID from Standard; + + Set (myclass; label : Label from TDF; + Name : ExtendedString from TCollection) + returns ExternalFileDef from SALOMEDS; + + ---Purpose: Comment methods + -- ============ + + Create + returns mutable ExternalFileDef from SALOMEDS; + + ID (me) + ---C++: return const & + returns GUID from Standard; + + Restore (me: mutable; with : Attribute from TDF); + + NewEmpty (me) + returns mutable Attribute from TDF; + + Paste (me; into : mutable Attribute from TDF; + RT : mutable RelocationTable from TDF); + +end ExternalFileDef; diff --git a/src/SALOMEDS/SALOMEDS_ExternalFileDef.cxx b/src/SALOMEDS/SALOMEDS_ExternalFileDef.cxx new file mode 100644 index 000000000..2e07b0106 --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_ExternalFileDef.cxx @@ -0,0 +1,114 @@ +// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOMEDS_ExternalFileDef.cxx +// Author : Yves FRICAUD +// Module : SALOME +// $Header: + +#include "SALOMEDS_ExternalFileDef.ixx" +#include +#include +using namespace std; + +//======================================================================= +//function : GetID +//purpose : +//======================================================================= + +const Standard_GUID& SALOMEDS_ExternalFileDef::GetID () +{ + static Standard_GUID SALOMEDS_ExternalFileDefID ("7123AD4C-ACDB-4e3a-8FDC-70EA164D2CBE"); + return SALOMEDS_ExternalFileDefID; +} + + + +//======================================================================= +//function : Set +//purpose : +//======================================================================= + +Handle(SALOMEDS_ExternalFileDef) SALOMEDS_ExternalFileDef::Set (const TDF_Label& L, + const TCollection_ExtendedString& S) +{ + + Handle(SALOMEDS_ExternalFileDef) A; + if (!L.FindAttribute(SALOMEDS_ExternalFileDef::GetID(),A)) { + A = new SALOMEDS_ExternalFileDef(); + L.AddAttribute(A); + } + + (Handle(TDataStd_Comment)::DownCast(A))->Set (S); + return A; +} + + +//======================================================================= +//function : constructor +//purpose : +//======================================================================= +SALOMEDS_ExternalFileDef::SALOMEDS_ExternalFileDef() +{} + +//======================================================================= +//function : ID +//purpose : +//======================================================================= + +const Standard_GUID& SALOMEDS_ExternalFileDef::ID () const { return GetID(); } + + +//======================================================================= +//function : NewEmpty +//purpose : +//======================================================================= + +Handle(TDF_Attribute) SALOMEDS_ExternalFileDef::NewEmpty () const +{ + return new SALOMEDS_ExternalFileDef(); +} + +//======================================================================= +//function : Restore +//purpose : +//======================================================================= + +void SALOMEDS_ExternalFileDef::Restore(const Handle(TDF_Attribute)& with) +{ + TCollection_ExtendedString s = Handle(TDataStd_Comment)::DownCast (with)->Get (); + TDataStd_Comment::Set(s); + return; +} + +//======================================================================= +//function : Paste +//purpose : +//======================================================================= + +void SALOMEDS_ExternalFileDef::Paste (const Handle(TDF_Attribute)& into, + const Handle(TDF_RelocationTable)& RT) const +{ + Handle(TDataStd_Comment)::DownCast (into)->Set (Get()); +} + diff --git a/src/SALOMEDS/SALOMEDS_ExternalFileDef.hxx b/src/SALOMEDS/SALOMEDS_ExternalFileDef.hxx new file mode 100644 index 000000000..5abb1838f --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_ExternalFileDef.hxx @@ -0,0 +1,108 @@ +// File generated by CPPExt (Transient) +// +// Copyright (C) 1991,1995 by +// +// MATRA DATAVISION, FRANCE +// +// This software is furnished in accordance with the terms and conditions +// of the contract and with the inclusion of the above copyright notice. +// This software or any other copy thereof may not be provided or otherwise +// be made available to any other person. No title to an ownership of the +// software is hereby transferred. +// +// At the termination of the contract, the software and all copies of this +// software must be deleted. +// +#ifndef _SALOMEDS_ExternalFileDef_HeaderFile +#define _SALOMEDS_ExternalFileDef_HeaderFile + +#ifndef _Standard_HeaderFile +#include +#endif +#ifndef _Handle_SALOMEDS_ExternalFileDef_HeaderFile +#include +#endif + +#ifndef _TDataStd_Comment_HeaderFile +#include +#endif +#ifndef _Handle_TDF_Attribute_HeaderFile +#include +#endif +#ifndef _Handle_TDF_RelocationTable_HeaderFile +#include +#endif +class Standard_GUID; +class TDF_Label; +class TCollection_ExtendedString; +class TDF_Attribute; +class TDF_RelocationTable; + + +class SALOMEDS_ExternalFileDef : public TDataStd_Comment { + +public: + + void* operator new(size_t,void* anAddress) + { + return anAddress; + } + void* operator new(size_t size) + { + return Standard::Allocate(size); + } + void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + // Methods PUBLIC + // +Standard_EXPORT static const Standard_GUID& GetID() ; +Standard_EXPORT static Handle_SALOMEDS_ExternalFileDef Set(const TDF_Label& label,const TCollection_ExtendedString& Name) ; +Standard_EXPORT SALOMEDS_ExternalFileDef(); +Standard_EXPORT const Standard_GUID& ID() const; +Standard_EXPORT void Restore(const Handle(TDF_Attribute)& with) ; +Standard_EXPORT Handle_TDF_Attribute NewEmpty() const; +Standard_EXPORT void Paste(const Handle(TDF_Attribute)& into,const Handle(TDF_RelocationTable)& RT) const; +Standard_EXPORT ~SALOMEDS_ExternalFileDef(); + + + + + // Type management + // + Standard_EXPORT friend Handle_Standard_Type& SALOMEDS_ExternalFileDef_Type_(); + Standard_EXPORT const Handle(Standard_Type)& DynamicType() const; + Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const; + +protected: + + // Methods PROTECTED + // + + + // Fields PROTECTED + // + + +private: + + // Methods PRIVATE + // + + + // Fields PRIVATE + // + + +}; + + + + + +// other Inline functions and methods (like "C++: function call" methods) +// + + +#endif diff --git a/src/SALOMEDS/SALOMEDS_ExternalFileDef.ixx b/src/SALOMEDS/SALOMEDS_ExternalFileDef.ixx new file mode 100644 index 000000000..2235302e0 --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_ExternalFileDef.ixx @@ -0,0 +1,73 @@ +// File generated by CPPExt (Transient) +// Copyright (C) 1991,1995 by +// +// MATRA DATAVISION, FRANCE +// +// This software is furnished in accordance with the terms and conditions +// of the contract and with the inclusion of the above copyright notice. +// This software or any other copy thereof may not be provided or otherwise +// be made available to any other person. No title to an ownership of the +// software is hereby transferred. +// +// At the termination of the contract, the software and all copies of this +// software must be deleted. +// +#include + +#ifndef _Standard_TypeMismatch_HeaderFile +#include +#endif + +SALOMEDS_ExternalFileDef::~SALOMEDS_ExternalFileDef() {} + + + +Standard_EXPORT Handle_Standard_Type& SALOMEDS_ExternalFileDef_Type_() +{ + + static Handle_Standard_Type aType1 = STANDARD_TYPE(TDataStd_Comment); + if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TDataStd_Comment); + static Handle_Standard_Type aType2 = STANDARD_TYPE(TDF_Attribute); + if ( aType2.IsNull()) aType2 = STANDARD_TYPE(TDF_Attribute); + static Handle_Standard_Type aType3 = STANDARD_TYPE(MMgt_TShared); + if ( aType3.IsNull()) aType3 = STANDARD_TYPE(MMgt_TShared); + static Handle_Standard_Type aType4 = STANDARD_TYPE(Standard_Transient); + if ( aType4.IsNull()) aType4 = STANDARD_TYPE(Standard_Transient); + + + static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,aType4,NULL}; + static Handle_Standard_Type _aType = new Standard_Type("SALOMEDS_ExternalFileDef", + sizeof(SALOMEDS_ExternalFileDef), + 1, + (Standard_Address)_Ancestors, + (Standard_Address)NULL); + + return _aType; +} + + +// DownCast method +// allow safe downcasting +// +const Handle(SALOMEDS_ExternalFileDef) Handle(SALOMEDS_ExternalFileDef)::DownCast(const Handle(Standard_Transient)& AnObject) +{ + Handle(SALOMEDS_ExternalFileDef) _anOtherObject; + + if (!AnObject.IsNull()) { + if (AnObject->IsKind(STANDARD_TYPE(SALOMEDS_ExternalFileDef))) { + _anOtherObject = Handle(SALOMEDS_ExternalFileDef)((Handle(SALOMEDS_ExternalFileDef)&)AnObject); + } + } + + return _anOtherObject ; +} +const Handle(Standard_Type)& SALOMEDS_ExternalFileDef::DynamicType() const +{ + return STANDARD_TYPE(SALOMEDS_ExternalFileDef) ; +} +Standard_Boolean SALOMEDS_ExternalFileDef::IsKind(const Handle(Standard_Type)& AType) const +{ + return (STANDARD_TYPE(SALOMEDS_ExternalFileDef) == AType || TDataStd_Comment::IsKind(AType)); +} +Handle_SALOMEDS_ExternalFileDef::~Handle_SALOMEDS_ExternalFileDef() {} + diff --git a/src/SALOMEDS/SALOMEDS_ExternalFileDef.jxx b/src/SALOMEDS/SALOMEDS_ExternalFileDef.jxx new file mode 100644 index 000000000..32adbec66 --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_ExternalFileDef.jxx @@ -0,0 +1,18 @@ +#ifndef _Standard_GUID_HeaderFile +#include +#endif +#ifndef _TDF_Label_HeaderFile +#include +#endif +#ifndef _TCollection_ExtendedString_HeaderFile +#include +#endif +#ifndef _TDF_Attribute_HeaderFile +#include +#endif +#ifndef _TDF_RelocationTable_HeaderFile +#include +#endif +#ifndef _SALOMEDS_ExternalFileDef_HeaderFile +#include +#endif diff --git a/src/SALOMEDS/SALOMEDS_FileType.cdl b/src/SALOMEDS/SALOMEDS_FileType.cdl new file mode 100644 index 000000000..d9e43f29c --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_FileType.cdl @@ -0,0 +1,76 @@ +-- SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +-- +-- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +-- +-- +-- +-- File : SALOMEDS_FileType.cdl +-- Author : Yves FRICAUD +-- Module : SALOME + +class FileType from SALOMEDS inherits Comment from TDataStd + + ---Purpose: + + +uses Attribute from TDF, + Label from TDF, + GUID from Standard, + ExtendedString from TCollection, + DataSet from TDF, + RelocationTable from TDF, + AttributeSequence from TDF, + Data from TDF, + Comment from TDataStd + + +is + + + ---Purpose: class methods + -- ============= + + GetID (myclass) + ---C++: return const & + returns GUID from Standard; + + Set (myclass; label : Label from TDF; + Name : ExtendedString from TCollection) + returns FileType from SALOMEDS; + + ---Purpose: Comment methods + -- ============ + + Create + returns mutable FileType from SALOMEDS; + + ID (me) + ---C++: return const & + returns GUID from Standard; + + Restore (me: mutable; with : Attribute from TDF); + + NewEmpty (me) + returns mutable Attribute from TDF; + + Paste (me; into : mutable Attribute from TDF; + RT : mutable RelocationTable from TDF); + +end FileType; diff --git a/src/SALOMEDS/SALOMEDS_FileType.cxx b/src/SALOMEDS/SALOMEDS_FileType.cxx new file mode 100644 index 000000000..515bbc551 --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_FileType.cxx @@ -0,0 +1,114 @@ +// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOMEDS_FileType.cxx +// Author : Yves FRICAUD +// Module : SALOME +// $Header: + +#include "SALOMEDS_FileType.ixx" +#include +#include +using namespace std; + +//======================================================================= +//function : GetID +//purpose : +//======================================================================= + +const Standard_GUID& SALOMEDS_FileType::GetID () +{ + static Standard_GUID SALOMEDS_FileTypeID ("0181B525-3F15-4ab2-9DE3-5E2F54B5F340"); + return SALOMEDS_FileTypeID; +} + + + +//======================================================================= +//function : Set +//purpose : +//======================================================================= + +Handle(SALOMEDS_FileType) SALOMEDS_FileType::Set (const TDF_Label& L, + const TCollection_ExtendedString& S) +{ + + Handle(SALOMEDS_FileType) A; + if (!L.FindAttribute(SALOMEDS_FileType::GetID(),A)) { + A = new SALOMEDS_FileType(); + L.AddAttribute(A); + } + + (Handle(TDataStd_Comment)::DownCast(A))->Set (S); + return A; +} + + +//======================================================================= +//function : constructor +//purpose : +//======================================================================= +SALOMEDS_FileType::SALOMEDS_FileType() +{} + +//======================================================================= +//function : ID +//purpose : +//======================================================================= + +const Standard_GUID& SALOMEDS_FileType::ID () const { return GetID(); } + + +//======================================================================= +//function : NewEmpty +//purpose : +//======================================================================= + +Handle(TDF_Attribute) SALOMEDS_FileType::NewEmpty () const +{ + return new SALOMEDS_FileType(); +} + +//======================================================================= +//function : Restore +//purpose : +//======================================================================= + +void SALOMEDS_FileType::Restore(const Handle(TDF_Attribute)& with) +{ + TCollection_ExtendedString s = Handle(TDataStd_Comment)::DownCast (with)->Get (); + TDataStd_Comment::Set(s); + return; +} + +//======================================================================= +//function : Paste +//purpose : +//======================================================================= + +void SALOMEDS_FileType::Paste (const Handle(TDF_Attribute)& into, + const Handle(TDF_RelocationTable)& RT) const +{ + Handle(TDataStd_Comment)::DownCast (into)->Set (Get()); +} + diff --git a/src/SALOMEDS/SALOMEDS_FileType.hxx b/src/SALOMEDS/SALOMEDS_FileType.hxx new file mode 100644 index 000000000..d912aaafc --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_FileType.hxx @@ -0,0 +1,108 @@ +// File generated by CPPExt (Transient) +// +// Copyright (C) 1991,1995 by +// +// MATRA DATAVISION, FRANCE +// +// This software is furnished in accordance with the terms and conditions +// of the contract and with the inclusion of the above copyright notice. +// This software or any other copy thereof may not be provided or otherwise +// be made available to any other person. No title to an ownership of the +// software is hereby transferred. +// +// At the termination of the contract, the software and all copies of this +// software must be deleted. +// +#ifndef _SALOMEDS_FileType_HeaderFile +#define _SALOMEDS_FileType_HeaderFile + +#ifndef _Standard_HeaderFile +#include +#endif +#ifndef _Handle_SALOMEDS_FileType_HeaderFile +#include +#endif + +#ifndef _TDataStd_Comment_HeaderFile +#include +#endif +#ifndef _Handle_TDF_Attribute_HeaderFile +#include +#endif +#ifndef _Handle_TDF_RelocationTable_HeaderFile +#include +#endif +class Standard_GUID; +class TDF_Label; +class TCollection_ExtendedString; +class TDF_Attribute; +class TDF_RelocationTable; + + +class SALOMEDS_FileType : public TDataStd_Comment { + +public: + + void* operator new(size_t,void* anAddress) + { + return anAddress; + } + void* operator new(size_t size) + { + return Standard::Allocate(size); + } + void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + // Methods PUBLIC + // +Standard_EXPORT static const Standard_GUID& GetID() ; +Standard_EXPORT static Handle_SALOMEDS_FileType Set(const TDF_Label& label,const TCollection_ExtendedString& Name) ; +Standard_EXPORT SALOMEDS_FileType(); +Standard_EXPORT const Standard_GUID& ID() const; +Standard_EXPORT void Restore(const Handle(TDF_Attribute)& with) ; +Standard_EXPORT Handle_TDF_Attribute NewEmpty() const; +Standard_EXPORT void Paste(const Handle(TDF_Attribute)& into,const Handle(TDF_RelocationTable)& RT) const; +Standard_EXPORT ~SALOMEDS_FileType(); + + + + + // Type management + // + Standard_EXPORT friend Handle_Standard_Type& SALOMEDS_FileType_Type_(); + Standard_EXPORT const Handle(Standard_Type)& DynamicType() const; + Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const; + +protected: + + // Methods PROTECTED + // + + + // Fields PROTECTED + // + + +private: + + // Methods PRIVATE + // + + + // Fields PRIVATE + // + + +}; + + + + + +// other Inline functions and methods (like "C++: function call" methods) +// + + +#endif diff --git a/src/SALOMEDS/SALOMEDS_FileType.ixx b/src/SALOMEDS/SALOMEDS_FileType.ixx new file mode 100644 index 000000000..505e39dab --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_FileType.ixx @@ -0,0 +1,73 @@ +// File generated by CPPExt (Transient) +// Copyright (C) 1991,1995 by +// +// MATRA DATAVISION, FRANCE +// +// This software is furnished in accordance with the terms and conditions +// of the contract and with the inclusion of the above copyright notice. +// This software or any other copy thereof may not be provided or otherwise +// be made available to any other person. No title to an ownership of the +// software is hereby transferred. +// +// At the termination of the contract, the software and all copies of this +// software must be deleted. +// +#include + +#ifndef _Standard_TypeMismatch_HeaderFile +#include +#endif + +SALOMEDS_FileType::~SALOMEDS_FileType() {} + + + +Standard_EXPORT Handle_Standard_Type& SALOMEDS_FileType_Type_() +{ + + static Handle_Standard_Type aType1 = STANDARD_TYPE(TDataStd_Comment); + if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TDataStd_Comment); + static Handle_Standard_Type aType2 = STANDARD_TYPE(TDF_Attribute); + if ( aType2.IsNull()) aType2 = STANDARD_TYPE(TDF_Attribute); + static Handle_Standard_Type aType3 = STANDARD_TYPE(MMgt_TShared); + if ( aType3.IsNull()) aType3 = STANDARD_TYPE(MMgt_TShared); + static Handle_Standard_Type aType4 = STANDARD_TYPE(Standard_Transient); + if ( aType4.IsNull()) aType4 = STANDARD_TYPE(Standard_Transient); + + + static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,aType4,NULL}; + static Handle_Standard_Type _aType = new Standard_Type("SALOMEDS_FileType", + sizeof(SALOMEDS_FileType), + 1, + (Standard_Address)_Ancestors, + (Standard_Address)NULL); + + return _aType; +} + + +// DownCast method +// allow safe downcasting +// +const Handle(SALOMEDS_FileType) Handle(SALOMEDS_FileType)::DownCast(const Handle(Standard_Transient)& AnObject) +{ + Handle(SALOMEDS_FileType) _anOtherObject; + + if (!AnObject.IsNull()) { + if (AnObject->IsKind(STANDARD_TYPE(SALOMEDS_FileType))) { + _anOtherObject = Handle(SALOMEDS_FileType)((Handle(SALOMEDS_FileType)&)AnObject); + } + } + + return _anOtherObject ; +} +const Handle(Standard_Type)& SALOMEDS_FileType::DynamicType() const +{ + return STANDARD_TYPE(SALOMEDS_FileType) ; +} +Standard_Boolean SALOMEDS_FileType::IsKind(const Handle(Standard_Type)& AType) const +{ + return (STANDARD_TYPE(SALOMEDS_FileType) == AType || TDataStd_Comment::IsKind(AType)); +} +Handle_SALOMEDS_FileType::~Handle_SALOMEDS_FileType() {} + diff --git a/src/SALOMEDS/SALOMEDS_FileType.jxx b/src/SALOMEDS/SALOMEDS_FileType.jxx new file mode 100644 index 000000000..0d838e429 --- /dev/null +++ b/src/SALOMEDS/SALOMEDS_FileType.jxx @@ -0,0 +1,18 @@ +#ifndef _Standard_GUID_HeaderFile +#include +#endif +#ifndef _TDF_Label_HeaderFile +#include +#endif +#ifndef _TCollection_ExtendedString_HeaderFile +#include +#endif +#ifndef _TDF_Attribute_HeaderFile +#include +#endif +#ifndef _TDF_RelocationTable_HeaderFile +#include +#endif +#ifndef _SALOMEDS_FileType_HeaderFile +#include +#endif diff --git a/src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.cxx b/src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.cxx new file mode 100644 index 000000000..7e326d083 --- /dev/null +++ b/src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.cxx @@ -0,0 +1,79 @@ +// SALOME SALOMEGUI : implementation of desktop and GUI kernel +// +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : SALOMEGUI_ActivateComponentDlg.cxx +// Author : Michael Zorin (mzn) +// Module : SALOME + +using namespace std; +#include "SALOMEGUI_ActivateComponentDlg.h" + +#include +#include +#include +#include +#include + + +SALOMEGUI_ActivateComponentDlg::SALOMEGUI_ActivateComponentDlg ( QWidget * parent, const char * name, bool modal, WFlags f ) + : QDialog ( parent, "", TRUE, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ) +{ + setSizeGripEnabled ( TRUE ) ; + setCaption( tr( "CAPTION" ) ); + + QVBoxLayout* m_vbL = new QVBoxLayout( this ); + m_vbL->setMargin( 11 ); m_vbL->setSpacing( 6 ); + + QLabel* m_lIcon = new QLabel (this, "m_lDescr"); + QPixmap pm = QMessageBox::standardIcon( QMessageBox::Information ); + m_lIcon->setPixmap( pm ); + m_lIcon->setScaledContents( false ); + m_lIcon->setAlignment( Qt::AlignCenter ); + + QLabel* m_lDescr = new QLabel (this, "m_lDescr"); + m_lDescr->setText ( tr ("ActivateComponent_DESCRIPTION") ); + m_lDescr->setAlignment( Qt::AlignCenter ); + m_lDescr->setMinimumHeight( m_lDescr->sizeHint().height()*5 ); + m_lDescr->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); + + QHBoxLayout* m_hl1 = new QHBoxLayout(); + m_hl1->setMargin( 0 ); m_hl1->setSpacing( 6 ); + m_hl1->addWidget( m_lIcon ); + m_hl1->addWidget( m_lDescr ); + + m_pb1 = new QPushButton( tr ("NEW"), this ); + m_pb2 = new QPushButton( tr ("OPEN"), this ); + m_pb3 = new QPushButton( tr ("LOAD"), this ); + m_pb4 = new QPushButton( tr ("CANCEL"), this ); + + QGridLayout* m_hl2 = new QGridLayout(); + m_hl2->setMargin( 0 ); m_hl2->setSpacing( 6 ); + m_hl2->addWidget( m_pb1, 0, 0 ); + m_hl2->addWidget( m_pb2, 0, 1 ); + m_hl2->addWidget( m_pb3, 0, 2 ); + m_hl2->addColSpacing( 3, 10 ); + m_hl2->setColStretch( 3, 5 ); + m_hl2->addWidget( m_pb4, 0, 4 ); + + m_vbL->addLayout( m_hl1 ); + m_vbL->addLayout( m_hl2 ); + + connect( m_pb1, SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) ); + connect( m_pb2, SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) ); + connect( m_pb3, SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) ); + connect( m_pb4, SIGNAL( clicked() ), this, SLOT( reject() ) ); +} + +void SALOMEGUI_ActivateComponentDlg::onButtonClicked() +{ + QPushButton* btn = ( QPushButton* )sender(); + if ( btn == m_pb1 ) + done( 1 ); + if ( btn == m_pb2 ) + done( 2 ); + if ( btn == m_pb3 ) + done( 3 ); +} diff --git a/src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.h b/src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.h new file mode 100644 index 000000000..17544d0a2 --- /dev/null +++ b/src/SALOMEGUI/SALOMEGUI_ActivateComponentDlg.h @@ -0,0 +1,35 @@ +// SALOME SALOMEGUI : implementation of desktop and GUI kernel +// +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : SALOMEGUI_ActivateComponentDlg.h +// Author : Michael ZORIN (mzn) +// Module : SALOME + +#ifndef SALOMEGUI_ActivateComponentDlg_H +#define SALOMEGUI_ActivateComponentDlg_H + +#include + +class SALOMEGUI_ActivateComponentDlg: public QDialog +{ + Q_OBJECT + +public: + SALOMEGUI_ActivateComponentDlg ( QWidget * parent = 0, const char * name = 0, bool modal = FALSE, WFlags f = 0 ) ; + ~SALOMEGUI_ActivateComponentDlg ( ) { }; + +private slots: + void onButtonClicked(); + +private: + QPushButton* m_pb1; + QPushButton *m_pb2; + QPushButton *m_pb3; + QPushButton *m_pb4; +}; + +#endif + diff --git a/src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.cxx b/src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.cxx new file mode 100644 index 000000000..9ad17ddc1 --- /dev/null +++ b/src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.cxx @@ -0,0 +1,134 @@ +// File : SALOMEGUI_ExternalBrowserDlg.cxx +// Author : Nichael ZORIN +// Module : SALOME +// $Header: /dn05/salome/CVS/SALOME_ROOT/SALOME/src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.cxx + +using namespace std; +#include "SALOMEGUI_ExternalBrowserDlg.h" + +#include +#include +#include +#include +#include + +#include "QAD_FileDlg.h" +#include "QAD_Tools.h" + +/* + * Constructs a modal SALOMEGUI_ExternalBowserDlg which is a child of 'parent' + * + */ + +SALOMEGUI_ExternalBrowserDlg::SALOMEGUI_ExternalBrowserDlg( QWidget* parent ) + : QDialog( parent, "SALOMEGUI_ExternalBrowserDlg", true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ) +{ + setCaption( tr( "MEN_EXTERNAL_BROWSER" ) ); + setSizeGripEnabled( true ); + + QGridLayout* TopLayout = new QGridLayout( this ); + TopLayout->setSpacing( 6 ); + TopLayout->setMargin( 11 ); + + QGroupBox* TopGroup = new QGroupBox( this, "TopGroup" ); + TopGroup->setColumnLayout(0, Qt::Vertical ); + TopGroup->layout()->setSpacing( 0 ); + TopGroup->layout()->setMargin( 0 ); + QGridLayout* TopGroupLayout = new QGridLayout( TopGroup->layout() ); + TopGroupLayout->setAlignment( Qt::AlignTop ); + TopGroupLayout->setSpacing( 6 ); + TopGroupLayout->setMargin( 11 ); + + QLabel* LabelApp = new QLabel( tr( "MEN_EXTERNAL_BROWSER_APP" ), TopGroup, "LabelApp" ); + TopGroupLayout->addWidget( LabelApp, 0, 0 ); + ApplicationLine = new QLineEdit( TopGroup ); + ApplicationLine->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); + ApplicationLine->setMinimumSize( 250, 0 ); + LabelApp->setBuddy(ApplicationLine); + TopGroupLayout->addWidget( ApplicationLine, 0, 1 ); + + QLabel* LabelParams = new QLabel( tr( "MEN_EXTERNAL_BROWSER_PARAMS" ), TopGroup, "LabelParams" ); + TopGroupLayout->addWidget( LabelParams, 1, 0 ); + ParametersLine = new QLineEdit( TopGroup ); + ParametersLine->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); + ParametersLine->setMinimumSize( 250, 0 ); + LabelParams->setBuddy(ParametersLine); + TopGroupLayout->addWidget( ParametersLine, 1, 1 ); + + browseButton = new QPushButton( tr( "MEN_EXTERNAL_BROWSER_BROWSE" ) , TopGroup, "browseButton" ); + TopGroupLayout->addWidget( browseButton, 0, 2 ); + + QGroupBox* GroupButtons = new QGroupBox( this, "GroupButtons" ); + GroupButtons->setGeometry( QRect( 10, 10, 381, 48 ) ); + GroupButtons->setColumnLayout(0, Qt::Vertical ); + GroupButtons->layout()->setSpacing( 0 ); + GroupButtons->layout()->setMargin( 0 ); + QGridLayout* GroupButtonsLayout = new QGridLayout( GroupButtons->layout() ); + GroupButtonsLayout->setAlignment( Qt::AlignTop ); + GroupButtonsLayout->setSpacing( 6 ); + GroupButtonsLayout->setMargin( 11 ); + + QPushButton* buttonOk = new QPushButton( tr( "BUT_OK" ), GroupButtons, "buttonOk" ); + buttonOk->setAutoDefault( TRUE ); + buttonOk->setDefault( TRUE ); + GroupButtonsLayout->addWidget( buttonOk, 0, 0 ); + GroupButtonsLayout->addItem( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 ); + QPushButton* buttonCancel = new QPushButton( tr( "BUT_CANCEL" ) , GroupButtons, "buttonCancel" ); + buttonCancel->setAutoDefault( TRUE ); + GroupButtonsLayout->addWidget( buttonCancel, 0, 2 ); + + TopLayout->addWidget( TopGroup, 0, 0 ); + TopLayout->addWidget( GroupButtons, 1, 0 ); + + // signals and slots connections + connect( browseButton, SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) ); + connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) ); + connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) ); + +} + +void SALOMEGUI_ExternalBrowserDlg::onButtonClicked() +{ + QStringList flt; + flt.append( "ALL Files(*)" ); + QString aDir = QAD_Tools::getDirFromPath ( ApplicationLine->text() ); + QFileInfo aFileInfo = QAD_FileDlg::getFileName (this, aDir, flt, tr( "MEN_EXTERNAL_BROWSER_CHOOSEAPP" ), true); + if(aFileInfo.exists()) + ApplicationLine->setText(aFileInfo.filePath()); +} + +void SALOMEGUI_ExternalBrowserDlg::setSettings(const QString& AppString, const QString& ParamsString) +{ + ApplicationLine->setText(AppString); + ParametersLine->setText(ParamsString); +} + +QString SALOMEGUI_ExternalBrowserDlg::getApp() +{ + return ApplicationLine->text(); +} + +QString SALOMEGUI_ExternalBrowserDlg::getParams() +{ + return ParametersLine->text(); +} + +void SALOMEGUI_ExternalBrowserDlg::accept() { + + QFileInfo aFile = QFileInfo(ApplicationLine->text()); + + if (aFile.isFile() && !aFile.isExecutable()) + QMessageBox::warning ( this, tr( "Error" ) , tr ( "MEN_EXTERNAL_BROWSER_NOTEXECUTABLE" )); + else + QDialog::accept(); +} + +/* + * Destroys the object and frees any allocated resources + */ +SALOMEGUI_ExternalBrowserDlg::~SALOMEGUI_ExternalBrowserDlg() +{ + // no need to delete child widgets, Qt does it all for us +} + + diff --git a/src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.h b/src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.h new file mode 100644 index 000000000..95156994b --- /dev/null +++ b/src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.h @@ -0,0 +1,36 @@ +// File : SALOMEGUI_ExternalBrowserDlg.h +// Author : Michael Zorin +// Module : SALOME +// $Header: /dn05/salome/CVS/SALOME_ROOT/SALOME/src/SALOMEGUI/SALOMEGUI_ExternalBrowserDlg.h + +#ifndef SALOMEGUI_EXTERNAL_BROWSER_DLG_H +#define SALOMEGUI_EXTERNAL_BROWSER_DLG_H + +#include +#include + +class SALOMEGUI_ExternalBrowserDlg : public QDialog +{ + Q_OBJECT + + public: + + SALOMEGUI_ExternalBrowserDlg( QWidget* parent = 0 ); + ~SALOMEGUI_ExternalBrowserDlg(); + void setSettings(const QString& AppString, const QString& ParamsString); + QString getApp(); + QString getParams(); + + private slots: + + void onButtonClicked(); + void accept(); + + private: + + QPushButton* browseButton; + QLineEdit* ApplicationLine; + QLineEdit* ParametersLine; +}; + +#endif // SALOMEGUI_EXTERNAL_BROWSER_DLG_H diff --git a/src/SALOMELocalTrace/Makefile.in b/src/SALOMELocalTrace/Makefile.in new file mode 100644 index 000000000..6e3674a3e --- /dev/null +++ b/src/SALOMELocalTrace/Makefile.in @@ -0,0 +1,49 @@ +# SALOMELocalTrace : log on local machine +# +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +# +# +# +# File : Makefile.in +# Author : Paul RASCLE (EDF) +# Module : SALOME +# $Header$ + +top_srcdir=@top_srcdir@ +top_builddir=../.. +srcdir=@srcdir@ +VPATH=.:@srcdir@:@top_srcdir@/idl + + +@COMMENCE@ + +# header files +EXPORT_HEADERS= SALOME_Log.hxx + +EXPORT_PYSCRIPTS = + +# Libraries targets + +LIB = libSALOMELocalTrace.la +LIB_SRC = SALOME_Log.cxx + +LDFLAGS+= + +@CONCLUDE@ diff --git a/src/SALOMELocalTrace/SALOME_Log.cxx b/src/SALOMELocalTrace/SALOME_Log.cxx new file mode 100644 index 000000000..476d987f4 --- /dev/null +++ b/src/SALOMELocalTrace/SALOME_Log.cxx @@ -0,0 +1,57 @@ +// SALOME_LocalTrace : log on local machine +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOME_Log.hxx +// Author : Vasily Rusyaev, Paul RASCLE, EDF +// Module : KERNEL +// $Header$ + +#include +#include + +using namespace std; + +#include "SALOME_Log.hxx" + +SALOME_Log::SALOME_Log() +{ +} + +SALOME_Log::~SALOME_Log() +{ +} + +SALOME_Log& SALOME_Log::Instance() +{ + static SALOME_Log instance; + return instance; +} + +void SALOME_Log::putMessage(std::ostream& msg) +{ + cout << std::flush; + cerr <freeze(false); + seekp(0); +} + diff --git a/src/SALOMELocalTrace/SALOME_Log.hxx b/src/SALOMELocalTrace/SALOME_Log.hxx new file mode 100644 index 000000000..043d1e1c2 --- /dev/null +++ b/src/SALOMELocalTrace/SALOME_Log.hxx @@ -0,0 +1,85 @@ +// SALOME Utils : general SALOME's definitions and tools +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOME_Log.hxx +// Author : Vasily Rusyaev (OCN), Paul RASCLE (EDF) +// Module : KERNEL +// $Header$ + +#ifndef _SALOME_LOG_HXX_ +#define _SALOME_LOG_HXX_ + +//these declarations for files don't using OCC includes (for example HDF) +# ifdef WNT + +# ifndef Standard_EXPORT +# define Standard_EXPORT __declspec( dllexport ) +// For global variables : +# define Standard_EXPORTEXTERN __declspec( dllexport ) extern +# define Standard_EXPORTEXTERNC extern "C" __declspec( dllexport ) +# endif /* Standard_EXPORT */ + +# ifndef Standard_IMPORT +# define Standard_IMPORT __declspec( dllimport ) extern +# define Standard_IMPORTC extern "C" __declspec( dllimport ) +# endif /* Standard_IMPORT */ + +# else /* WNT */ + +# ifndef Standard_EXPORT +# define Standard_EXPORT +// For global variables : +# define Standard_EXPORTEXTERN extern +# define Standard_EXPORTEXTERNC extern "C" +# endif /* Standard_EXPORT */ + +# ifndef Standard_IMPORT +# define Standard_IMPORT extern +# define Standard_IMPORTC extern "C" +# endif /* Standard_IMPORT */ + +# endif /* WNT */ + + +using namespace std; + +#include +#include + + +class SALOME_Log : public ostrstream +{ +public: + virtual ~SALOME_Log(); + static Standard_EXPORT SALOME_Log& Instance(); + Standard_EXPORT void putMessage(std::ostream& msg); + +protected: + //disable creation of instances: force use static SALOME_Log& Instance() + SALOME_Log(); +}; + + +#define SLog SALOME_Log::Instance() + +#endif diff --git a/src/SALOMELogger/Makefile.in b/src/SALOMELogger/Makefile.in new file mode 100644 index 000000000..2a9f4f5e4 --- /dev/null +++ b/src/SALOMELogger/Makefile.in @@ -0,0 +1,50 @@ +# SALOMELogger : CORBA distributed log +# +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +# +# +# +# File : Makefile.in +# Author : Paul RASCLE (EDF) +# Module : SALOME +# $Header$ + +top_srcdir=@top_srcdir@ +top_builddir=../.. +srcdir=@srcdir@ +VPATH=.:@srcdir@:@top_srcdir@/idl + + +@COMMENCE@ + +# header files +EXPORT_HEADERS= + +EXPORT_PYSCRIPTS = + +# Libraries targets + +LIB = libSALOMELoggerClient.la +LIB_SRC = SALOME_LoggerClient.cxx +LIB_CLIENT_IDL = Logger.idl + +LDFLAGS+= + +@CONCLUDE@ diff --git a/src/SALOMELogger/SALOME_LoggerClient.cxx b/src/SALOMELogger/SALOME_LoggerClient.cxx new file mode 100644 index 000000000..70f765038 --- /dev/null +++ b/src/SALOMELogger/SALOME_LoggerClient.cxx @@ -0,0 +1,154 @@ +// SALOME_LoggerClient : CORBA distributed log +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SALOME_Loggerclient.hxx +// Author : Vasily Rusyaev, Paul RASCLE, EDF +// Module : KERNEL +// $Header$ + +#include +#include + +using namespace std; + +#include "SALOME_Log.hxx" + +#include +#include CORBA_CLIENT_HEADER(Logger) + +// class SALOME_LoggerClient : public SALOME_Log +// { +// protected: +// SALOME_Logger::Logger_var m_pInterfaceLogger; // object reference on Logger server +// }; + +SALOME_Logger::Logger_ptr m_pInterfaceLogger; // object reference on Logger server + +SALOME_Log::SALOME_Log() +{ + cout << "SALOME_LoggerClient: constructor" << endl; + //get reference on object reference from NS + //and initialize m_pInterfaceLogger + + int argc = 1; + char* argv[1] = {"application"}; + try + { + //NB. You can't use SALOME_NamingService class because it uses MESSAGE macro + //Otherwise, you will get segmentation fault. + + //Initialize the ORB + CORBA::ORB_var orb = CORBA::ORB_init(argc,argv); + long TIMESleep = 250000000; + int NumberOfTries = 40; + int a; + timespec ts_req; + ts_req.tv_nsec=TIMESleep; + ts_req.tv_sec=0; + timespec ts_rem; + ts_rem.tv_nsec=0; + ts_rem.tv_sec=0; + CosNaming::NamingContext_var inc; + CORBA::Object_var theObj; + CORBA::Object_var obj; + CosNaming::Name name; + name.length(1); + name[0].id = CORBA::string_dup("Logger"); + for (int i = 1; i<=NumberOfTries; i++) + { + if (i!=1) + a=nanosleep(&ts_req,&ts_rem); + try + { + if(!CORBA::is_nil(orb)) + theObj = orb->resolve_initial_references("NameService"); + if (!CORBA::is_nil(theObj)) + inc = CosNaming::NamingContext::_narrow(theObj); + } + catch( CORBA::COMM_FAILURE& ) + { + cout<<"SALOME_LoggerClient: CORBA::COMM_FAILURE: Unable to contact the Naming Service"<resolve(name); + m_pInterfaceLogger = SALOME_Logger::Logger::_narrow(obj); + if (!CORBA::is_nil(m_pInterfaceLogger)) + cout<<"SALOME_LoggerClient: Logger Server was found"<freeze(false); + seekp(0); + + if (CORBA::is_nil(m_pInterfaceLogger)) + cout << LogMsg << std::flush; + else + m_pInterfaceLogger-> putMessage (LogMsg) ; + } + diff --git a/src/VTKViewer/VTKViewer_Trihedron.cxx b/src/VTKViewer/VTKViewer_Trihedron.cxx new file mode 100644 index 000000000..be2d18894 --- /dev/null +++ b/src/VTKViewer/VTKViewer_Trihedron.cxx @@ -0,0 +1,390 @@ +// SALOME VTKViewer : +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : VTKViewer_Trihedron.cxx +// Author : Alexey PETROV +// Module : SALOME +// $Header: + +#include "VTKViewer_Trihedron.h" +#include "utilities.h" +#include "SALOME_Actor.h" + +// VTK Includes +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "VTKViewer_VectorText.h" + +using namespace std; + +//============================================================================== + +class VTKViewer_UnScaledActor: public vtkFollower{ + VTKViewer_UnScaledActor(const VTKViewer_UnScaledActor&); + +public: + vtkTypeMacro(VTKViewer_UnScaledActor,vtkFollower); + static VTKViewer_UnScaledActor *New(); + + virtual void SetSize(int theSize); + virtual void Render(vtkRenderer *theRenderer); + +protected: + VTKViewer_UnScaledActor(); + int mySize; +}; + +vtkStandardNewMacro(VTKViewer_UnScaledActor); + +VTKViewer_UnScaledActor::VTKViewer_UnScaledActor(){} + +void VTKViewer_UnScaledActor::Render(vtkRenderer *theRenderer){ + if(theRenderer){ + float P[2][3] = {{-1.0, -1.0, 0.0},{+1.0, +1.0, 0.0}}; + theRenderer->ViewToWorld(P[0][0],P[0][1],P[0][2]); + theRenderer->ViewToWorld(P[1][0],P[1][1],P[1][2]); + float aWorldDiag = sqrt((P[1][0]-P[0][0])*(P[1][0]-P[0][0])+ + (P[1][1]-P[0][1])*(P[1][1]-P[0][1])+ + (P[1][2]-P[0][2])*(P[1][2]-P[0][2])); + int* aSize = theRenderer->GetRenderWindow()->GetSize(); + float aWinDiag = sqrt(float(aSize[0]*aSize[0]+aSize[1]*aSize[1])); + vtkDataSet* aDataSet = GetMapper()->GetInput(); + float aLength = aDataSet->GetLength(); + float aScale = mySize*aWorldDiag/aWinDiag/aLength*sqrt(float(aSize[0])/float(aSize[1])); + SetScale(aScale); + } + vtkFollower::Render(theRenderer); +} + +void VTKViewer_UnScaledActor::SetSize(int theSize){ + mySize = theSize; +} + +//============================================================================== + +// The base class for concreate Axis +// Its only duty is to give correct initialization and destruction +// of its pipe-lines +class VTKViewer_Axis : public vtkObject{ +protected: + VTKViewer_Axis(); + VTKViewer_Axis(const VTKViewer_Axis&); + virtual ~VTKViewer_Axis(); + public: + vtkTypeMacro(VTKViewer_Axis,vtkObject); + + virtual void AddToRender(vtkRenderer* theRenderer){ + theRenderer->AddActor(myLabelActor); + theRenderer->AddActor(myArrowActor); + theRenderer->AddActor(myLineActor); + } + + virtual void SetVisibility(VTKViewer_Trihedron::TVisibility theVis); + virtual VTKViewer_Trihedron::TVisibility GetVisibility() { + return myVisibility; + } + + virtual void SetCamera(vtkCamera* theCamera){ + myLabelActor->SetCamera(theCamera); + } + + virtual void SetProperty(vtkProperty* theProperty){ + myLabelActor->SetProperty(theProperty); + myArrowActor->SetProperty(theProperty); + myLineActor->SetProperty(theProperty); + } + + virtual void SetSize(float theSize); + + virtual VTKViewer_UnScaledActor* GetLabel(){ + return myLabelActor; + } + + virtual VTKViewer_UnScaledActor* GetArrow(){ + return myArrowActor; + } + +protected: + VTKViewer_Trihedron::TVisibility myVisibility; + float myDir[3], myRot[3]; + + vtkActor *myLineActor; + VTKViewer_UnScaledActor *myArrowActor; + VTKViewer_UnScaledActor *myLabelActor; + + vtkPolyDataMapper *myMapper[3]; + vtkLineSource *myLineSource; + vtkConeSource *myConeSource; + VTKViewer_VectorText* myVectorText; +}; + +VTKViewer_Axis::VTKViewer_Axis(){ + // Initialize the Line pipe-line representation + myLineSource = vtkLineSource::New(); + myLineSource->SetPoint1(0.0,0.0,0.0); + + myMapper[0] = vtkPolyDataMapper::New(); + myMapper[0]->SetInput(myLineSource->GetOutput()); + + myLineActor = vtkActor::New(); + myLineActor->SetMapper(myMapper[0]); + myLineActor->PickableOff(); + + // Initialize the Arrow pipe-line representation + myConeSource = vtkConeSource::New(); + myConeSource->SetResolution(2); + myConeSource->SetAngle(10); + + myMapper[1] = vtkPolyDataMapper::New(); + myMapper[1]->SetInput(myConeSource->GetOutput()); + + myArrowActor = VTKViewer_UnScaledActor::New(); + myArrowActor->SetMapper(myMapper[1]); + static int aArrowActorSize = 24; + myArrowActor->SetSize(aArrowActorSize); + myArrowActor->PickableOff(); + + // Initialize the Label pipe-line representation + myVectorText = VTKViewer_VectorText::New(); + + myMapper[2] = vtkPolyDataMapper::New(); + myMapper[2]->SetInput(myVectorText->GetOutput()); + + myLabelActor = VTKViewer_UnScaledActor::New(); + myLabelActor->SetMapper(myMapper[2]); + static int aLabelActorSize = 12; + myLabelActor->SetSize(aLabelActorSize); + myLabelActor->PickableOff(); + + // Initialise visibility param. + myVisibility = VTKViewer_Trihedron::eOn; +} + +VTKViewer_Axis::~VTKViewer_Axis(){ + // Destroy of the Label pipe-line representation + myLabelActor->Delete(); + + myMapper[2]->RemoveAllInputs(); + myMapper[2]->Delete(); + + myVectorText->Delete(); + + // Destroy of the Arrow pipe-line representation + myArrowActor->Delete(); + + myMapper[1]->RemoveAllInputs(); + myMapper[1]->Delete(); + + myConeSource->Delete(); + + // Destroy of the Arrow pipe-line representation + myLineActor->Delete(); + + myMapper[2]->RemoveAllInputs(); + myMapper[2]->Delete(); + + myLineSource->Delete(); +} + +void VTKViewer_Axis::SetVisibility(VTKViewer_Trihedron::TVisibility theVis){ + switch(theVis){ + case VTKViewer_Trihedron::eOff: + case VTKViewer_Trihedron::eOn: + myLabelActor->SetVisibility(theVis); + myArrowActor->SetVisibility(theVis); + myLineActor->SetVisibility(theVis); + break; + case VTKViewer_Trihedron::eOnlyLineOn: + myLabelActor->VisibilityOff(); + myArrowActor->VisibilityOff(); + myLineActor->VisibilityOn(); + break; + default: + return; + } + myVisibility = theVis; +} + +void VTKViewer_Axis::SetSize(float theSize){ + float aPosition[3] = {myDir[0]*theSize, myDir[1]*theSize, myDir[2]*theSize}; + myLineSource->SetPoint2(aPosition); + + myArrowActor->SetPosition(0.0,0.0,0.0); + myArrowActor->AddPosition(aPosition); + myArrowActor->SetOrientation(myRot); + + myLabelActor->SetPosition(0.0,0.0,0.0); + myLabelActor->AddPosition(aPosition); +} + +//============================================================================== +class VTKViewer_XAxis : public VTKViewer_Axis{ +protected: + VTKViewer_XAxis(); + VTKViewer_XAxis(const VTKViewer_XAxis&); +public: + vtkTypeMacro(VTKViewer_XAxis,VTKViewer_Axis); + static VTKViewer_XAxis *New(); +}; + +vtkStandardNewMacro(VTKViewer_XAxis); + +VTKViewer_XAxis::VTKViewer_XAxis(){ + myDir[0] = 1.0; myDir[1] = 0.0; myDir[2] = 0.0; + myRot[0] = 0.0; myRot[1] = 0.0; myRot[2] = 0.0; + myVectorText->SetText("X"); + vtkProperty* aProperty = vtkProperty::New(); + aProperty->SetColor(1.0,0.0,0.0); + SetProperty(aProperty); + aProperty->Delete(); +} + +//============================================================================== +class VTKViewer_YAxis : public VTKViewer_Axis{ +protected: + VTKViewer_YAxis(); + VTKViewer_YAxis(const VTKViewer_YAxis&); +public: + vtkTypeMacro(VTKViewer_YAxis,VTKViewer_Axis); + static VTKViewer_YAxis *New(); +}; + +vtkStandardNewMacro(VTKViewer_YAxis); + +VTKViewer_YAxis::VTKViewer_YAxis(){ + myDir[0] = 0.0; myDir[1] = 1.0; myDir[2] = 0.0; + myRot[0] = 0.0; myRot[1] = 0.0; myRot[2] = 90.; + myVectorText->SetText("Y"); + vtkProperty* aProperty = vtkProperty::New(); + aProperty->SetColor(0.0,1.0,0.0); + SetProperty(aProperty); + aProperty->Delete(); +} + +//============================================================================== +class VTKViewer_ZAxis : public VTKViewer_Axis{ +protected: + VTKViewer_ZAxis(); + VTKViewer_ZAxis(const VTKViewer_ZAxis&); +public: + vtkTypeMacro(VTKViewer_ZAxis,VTKViewer_Axis); + static VTKViewer_ZAxis *New(); +}; + +vtkStandardNewMacro(VTKViewer_ZAxis); + +VTKViewer_ZAxis::VTKViewer_ZAxis(){ + myDir[0] = 0.0; myDir[1] = 0.0; myDir[2] = 1.0; + myRot[0] = 0.0; myRot[1] = -90; myRot[2] = 0.0; + myVectorText->SetText("Z"); + vtkProperty* aProperty = vtkProperty::New(); + aProperty->SetColor(0.0,0.0,1.0); + SetProperty(aProperty); + aProperty->Delete(); +} + +//============================================================================== + +vtkStandardNewMacro(VTKViewer_Trihedron); + +VTKViewer_Trihedron::VTKViewer_Trihedron(){ + myPresent = vtkActorCollection::New(); + myAxis[0] = VTKViewer_XAxis::New(); + myAxis[1] = VTKViewer_YAxis::New(); + myAxis[2] = VTKViewer_ZAxis::New(); + static float aSize = 100; + SetSize(aSize); +} + +VTKViewer_Trihedron::~VTKViewer_Trihedron(){ + myPresent->RemoveAllItems(); + myPresent->Delete(); + for(int i = 0; i < 3; i++) + myAxis[i]->Delete(); +} + +void VTKViewer_Trihedron::SetSize(float theSize){ + mySize = theSize; + for(int i = 0; i < 3; i++) + myAxis[i]->SetSize(theSize); +} + +void VTKViewer_Trihedron::SetVisibility(TVisibility theVis){ + for(int i = 0; i < 3; i++) + myAxis[i]->SetVisibility(theVis); +} + +VTKViewer_Trihedron::TVisibility VTKViewer_Trihedron::GetVisibility(){ + return myAxis[0]->GetVisibility(); +} + +void VTKViewer_Trihedron::AddToRender(vtkRenderer* theRenderer){ + vtkCamera* aCamera = theRenderer->GetActiveCamera(); + for(int i = 0; i < 3; i++){ + myAxis[i]->AddToRender(theRenderer); + myAxis[i]->SetCamera(aCamera); + } +} + +void VTKViewer_Trihedron::RemoveFromRender(vtkRenderer* theRenderer){ + myPresent->InitTraversal(); + while(vtkActor* anActor = myPresent->GetNextActor()) + theRenderer->RemoveActor(anActor); +} + +int VTKViewer_Trihedron::GetVisibleActorCount(vtkRenderer* theRenderer){ + //TVisibility aVis = GetVisibility(); + //SetVisibility(eOff); + vtkActorCollection* aCollection = theRenderer->GetActors(); + aCollection->InitTraversal(); + int aCount = 0; + while(vtkActor* prop = aCollection->GetNextActor()) + if( prop->GetVisibility()) + if(SALOME_Actor* anActor = SALOME_Actor::SafeDownCast(prop)) + if(!anActor->IsInfinitive()) + aCount++; + //int aCount = theRenderer->VisibleActorCount(); + //SetVisibility(aVis); + return aCount; +} + +void VTKViewer_Trihedron::Render(vtkRenderer* theRenderer){ + for(int i = 0; i < 3; i++) + { + myAxis[i]->GetLabel()->Render(theRenderer); + myAxis[i]->GetArrow()->Render(theRenderer); + } +} + diff --git a/src/VTKViewer/VTKViewer_Trihedron.h b/src/VTKViewer/VTKViewer_Trihedron.h new file mode 100644 index 000000000..056ea158f --- /dev/null +++ b/src/VTKViewer/VTKViewer_Trihedron.h @@ -0,0 +1,69 @@ +// SALOME VTKViewer : +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : VTKViewer_Trihedron.h +// Author : Alexey PETROV +// Module : SALOME +// $Header: + +#ifndef VTKViewer_Trihedron_H +#define VTKViewer_Trihedron_H + +#include + +class vtkActorCollection; +class VTKViewer_Axis; +class vtkRenderer; + +class VTKViewer_Trihedron : public vtkObject{ + protected: + VTKViewer_Trihedron(); + VTKViewer_Trihedron(const VTKViewer_Trihedron&); + virtual ~VTKViewer_Trihedron(); + public: + vtkTypeMacro(VTKViewer_Trihedron,vtkObject); + static VTKViewer_Trihedron *New(); + + virtual void SetSize(float theSize); + virtual float GetSize() { return mySize;} + + enum TVisibility{eOff, eOn, eOnlyLineOn}; + virtual void SetVisibility(TVisibility theVis); + virtual void VisibilityOff() { SetVisibility(eOff);} + virtual void VisibilityOn() { SetVisibility(eOn);} + virtual TVisibility GetVisibility(); + + virtual void AddToRender(vtkRenderer* theRenderer); + virtual void RemoveFromRender(vtkRenderer* theRenderer); + + virtual int GetVisibleActorCount(vtkRenderer* theRenderer); + + virtual void Render(vtkRenderer *theRenderer); + +protected: + vtkActorCollection* myPresent; + VTKViewer_Axis* myAxis[3]; + float mySize; +}; + +#endif diff --git a/src/VTKViewer/VTKViewer_Utilities.cxx b/src/VTKViewer/VTKViewer_Utilities.cxx new file mode 100644 index 000000000..ce64a1e4c --- /dev/null +++ b/src/VTKViewer/VTKViewer_Utilities.cxx @@ -0,0 +1,195 @@ +// SALOME VTKViewer : +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : VTKViewer_Utilities.cxx +// Author : Alexey PETROV +// Module : SALOME +// $Header: + +#include "VTKViewer_Utilities.h" +#include "utilities.h" +#include "SALOME_Actor.h" + +// VTK Includes +#include +#include +#include +#include + +using namespace std; + +//see vtkRenderer::ResetCamera(float bounds[6]) method +void ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint){ + if(!theRenderer) return; + float bounds[6]; + int aCount = ComputeVisiblePropBounds(theRenderer,bounds); + if(theUsingZeroFocalPoint || aCount){ + float aLength = bounds[1]-bounds[0]; + aLength = max((bounds[3]-bounds[2]),aLength); + aLength = max((bounds[5]-bounds[4]),aLength); + + double vn[3]; + if ( theRenderer->GetActiveCamera() != NULL ) + theRenderer->GetActiveCamera()->GetViewPlaneNormal(vn); + else{ + INFOS("Trying to reset non-existant camera"); + return; + } + + float center[3] = {0.0, 0.0, 0.0}; + if(!theUsingZeroFocalPoint){ + center[0] = (bounds[0] + bounds[1])/2.0; + center[1] = (bounds[2] + bounds[3])/2.0; + center[2] = (bounds[4] + bounds[5])/2.0; + } + theRenderer->GetActiveCamera()->SetFocalPoint(center[0],center[1],center[2]); + + float width = sqrt((bounds[1]-bounds[0])*(bounds[1]-bounds[0]) + + (bounds[3]-bounds[2])*(bounds[3]-bounds[2]) + + (bounds[5]-bounds[4])*(bounds[5]-bounds[4])); + + double ang = theRenderer->GetActiveCamera()->GetViewAngle(); + float distance = 2.0*width/tan(ang*vtkMath::Pi()/360.0); + + // check view-up vector against view plane normal + double *vup = theRenderer->GetActiveCamera()->GetViewUp(); + if ( fabs(vtkMath::Dot(vup,vn)) > 0.999 ){ + MESSAGE("Resetting view-up since view plane normal is parallel"); + theRenderer->GetActiveCamera()->SetViewUp(-vup[2], vup[0], vup[1]); + } + + // update the camera + theRenderer->GetActiveCamera()->SetPosition(center[0]+distance*vn[0], + center[1]+distance*vn[1], + center[2]+distance*vn[2]); + // find size of the window + int* winsize = theRenderer->GetSize(); + if(winsize[0] < winsize[1]) width *= float(winsize[1])/float(winsize[0]); + + if(theUsingZeroFocalPoint) width *= sqrt(2.0); + + theRenderer->GetActiveCamera()->SetParallelScale(width/2.0); + } + //workaround on VTK + //theRenderer->ResetCameraClippingRange(bounds); + ResetCameraClippingRange(theRenderer); +} + + +// Compute the bounds of the visible props +int ComputeVisiblePropBounds(vtkRenderer* theRenderer, float theBounds[6]){ + vtkProp *prop; + float *bounds; + int aCount=0; + + theBounds[0] = theBounds[2] = theBounds[4] = VTK_LARGE_FLOAT; + theBounds[1] = theBounds[3] = theBounds[5] = -VTK_LARGE_FLOAT; + + // loop through all props + vtkActorCollection* aCollection = theRenderer->GetActors(); + aCollection->InitTraversal(); + while (vtkActor* prop = aCollection->GetNextActor()) { + // if it's invisible, or has no geometry, we can skip the rest + if ( prop->GetVisibility() ) + { + if(SALOME_Actor* anActor = SALOME_Actor::SafeDownCast(prop)) + if(anActor->IsInfinitive()) continue; + bounds = prop->GetBounds(); + // make sure we haven't got bogus bounds + if ( bounds != NULL && + bounds[0] > -VTK_LARGE_FLOAT && bounds[1] < VTK_LARGE_FLOAT && + bounds[2] > -VTK_LARGE_FLOAT && bounds[3] < VTK_LARGE_FLOAT && + bounds[4] > -VTK_LARGE_FLOAT && bounds[5] < VTK_LARGE_FLOAT ) + { + aCount++; + + if (bounds[0] < theBounds[0]) + { + theBounds[0] = bounds[0]; + } + if (bounds[1] > theBounds[1]) + { + theBounds[1] = bounds[1]; + } + if (bounds[2] < theBounds[2]) + { + theBounds[2] = bounds[2]; + } + if (bounds[3] > theBounds[3]) + { + theBounds[3] = bounds[3]; + } + if (bounds[4] < theBounds[4]) + { + theBounds[4] = bounds[4]; + } + if (bounds[5] > theBounds[5]) + { + theBounds[5] = bounds[5]; + } + }//not bogus + } + } + return aCount; +} + + +//see vtkRenderer::ResetCameraClippingRange(float bounds[6]) method +void ResetCameraClippingRange(vtkRenderer* theRenderer){ + if(!theRenderer || !theRenderer->VisibleActorCount()) return; + + vtkCamera* anActiveCamera = theRenderer->GetActiveCamera(); + if( anActiveCamera == NULL ){ + MESSAGE("Trying to reset clipping range of non-existant camera"); + return; + } + + // Find the plane equation for the camera view plane + double vn[3]; + anActiveCamera->GetViewPlaneNormal(vn); + double position[3]; + anActiveCamera->GetPosition(position); + + float bounds[6]; + theRenderer->ComputeVisiblePropBounds(bounds); + + double center[3]; + center[0] = (bounds[0] + bounds[1])/2.0; + center[1] = (bounds[2] + bounds[3])/2.0; + center[2] = (bounds[4] + bounds[5])/2.0; + + double width = sqrt((bounds[1]-bounds[0])*(bounds[1]-bounds[0]) + + (bounds[3]-bounds[2])*(bounds[3]-bounds[2]) + + (bounds[5]-bounds[4])*(bounds[5]-bounds[4])); + + double distance = sqrt((position[0]-center[0])*(position[0]-center[0]) + + (position[1]-center[1])*(position[1]-center[1]) + + (position[2]-center[2])*(position[2]-center[2])); + + float range[2] = {distance - width/2.0, distance + width/2.0}; + + // Do not let the range behind the camera throw off the calculation. + if (range[0] < 0.0) range[0] = 0.0; + + anActiveCamera->SetClippingRange( range ); +} diff --git a/src/VTKViewer/VTKViewer_Utilities.h b/src/VTKViewer/VTKViewer_Utilities.h new file mode 100644 index 000000000..e297ce737 --- /dev/null +++ b/src/VTKViewer/VTKViewer_Utilities.h @@ -0,0 +1,39 @@ +// SALOME VTKViewer : +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : VTKViewer_Utilities.h +// Author : Alexey PETROV +// Module : SALOME +// $Header: + +#ifndef VTKViewer_Utilities_H +#define VTKViewer_Utilities_H + +class vtkRenderer; + +extern void ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint = false); +extern int ComputeVisiblePropBounds(vtkRenderer* theRenderer, float theBounds[6]); +extern void ResetCameraClippingRange(vtkRenderer* theRenderer); +extern float EPS_BNDBOX; + +#endif diff --git a/src/VTKViewer/VTKViewer_VectorText.cxx b/src/VTKViewer/VTKViewer_VectorText.cxx new file mode 100644 index 000000000..ae19d948d --- /dev/null +++ b/src/VTKViewer/VTKViewer_VectorText.cxx @@ -0,0 +1,1747 @@ +/*========================================================================= + + Program: Visualization Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen + All rights reserved. + See Copyright.txt or http://www.kitware.com/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notice for more information. + +=========================================================================*/ +// VTKViewer_VectorText.cxx is a copy of vtkVectorText.cxx file. +// Purpose of copying: to remove linking to libHybrid.so VTK library + +#include "VTKViewer_VectorText.h" + +#include "vtkCellArray.h" +#include "vtkObjectFactory.h" +#include "vtkPoints.h" +#include "vtkPolyData.h" + +vtkCxxRevisionMacro(VTKViewer_VectorText, "$Revision$"); +vtkStandardNewMacro(VTKViewer_VectorText); + +char *VTK_VECTOR_TEXT_33 = (char *) "11 0.438482 " +"0.28000 -0.07186 0.43164 -0.07143 0.27689 0.07714 0.43472 0.07714 0.32000 0.20134 " +"0.40000 0.20243 0.31429 0.20550 0.27277 0.76857 0.43848 0.76857 0.27693 1.02571 " +"0.43429 1.02615 7 2 1 3 2 0 1 7 6 5 6 4 5 8 " +"7 5 7 8 9 10 9 8 " +; + +char *VTK_VECTOR_TEXT_34 = (char *) "21 0.615625 " +"0.25714 0.63563 0.32571 0.63563 0.50286 0.63642 0.25143 0.63946 0.33143 0.63840 " +"0.33462 0.64286 0.49673 0.64286 0.57714 0.63757 0.58093 0.64286 0.21335 0.84286 " +"0.36680 0.84286 0.46177 0.84286 0.61522 0.84286 0.21295 1.02000 0.46134 1.02000 " +"0.61563 1.02000 0.36571 1.02307 0.46550 1.02571 0.21714 1.02615 0.36000 1.02723 " +"0.61143 1.02615 17 3 5 9 7 6 2 4 5 1 6 8 12 0 1 5 6 " +"12 11 3 0 5 7 8 6 11 12 14 13 9 10 10 9 5 15 14 12 19 " +"18 10 18 13 10 17 14 20 14 15 20 16 19 10 " +; + +char *VTK_VECTOR_TEXT_35 = (char *) "43 0.974539 " +"0.22286 -0.09100 0.32571 -0.09236 0.56832 -0.08857 0.67429 -0.09201 0.28193 0.22000 " +"0.39470 0.22000 0.63009 0.22000 0.15385 0.23143 0.27429 0.22723 0.40571 0.22723 " +"0.62286 0.22723 0.74857 0.22680 0.97454 0.23143 0.15385 0.33429 0.97454 0.33429 " +"0.30344 0.34000 0.65201 0.34000 0.77084 0.34000 0.42286 0.34010 0.42034 0.34571 " +"0.36041 0.60286 0.70748 0.60286 0.82034 0.60286 0.47429 0.60626 0.15385 0.61429 " +"0.35429 0.61009 0.70286 0.60951 0.82857 0.61009 0.97454 0.61429 0.15385 0.71714 " +"0.37714 0.72134 0.50286 0.72191 0.72571 0.72134 0.85143 0.72156 0.97143 0.72025 " +"0.38605 0.72857 0.49823 0.72857 0.73335 0.72857 0.84613 0.72857 0.45143 1.04160 " +"0.55735 1.04286 0.80000 1.04243 0.90521 1.04286 43 6 2 3 5 0 1 0 5 4 18 " +"9 10 11 6 3 4 9 8 13 8 15 17 6 11 9 4 5 13 7 8 17 " +"12 14 8 9 15 15 19 20 16 6 17 12 17 11 18 10 16 10 6 16 21 " +"16 17 18 19 9 15 9 19 20 30 25 23 20 19 34 33 28 29 24 25 29 " +"25 30 27 21 22 33 21 27 20 23 30 22 21 17 33 27 28 31 26 32 35 " +"30 23 32 38 37 31 35 23 21 32 26 26 31 23 32 21 38 41 37 38 36 " +"35 31 38 21 33 40 39 36 42 41 38 39 35 36 " +; + +char *VTK_VECTOR_TEXT_36 = (char *) "73 0.921518 " +"0.52571 -0.22882 0.59429 -0.22991 0.52000 -0.09942 0.60571 -0.09385 0.40571 -0.07057 " +"0.72730 -0.06571 0.33143 -0.03465 0.80571 -0.01813 0.51429 0.01891 0.52152 0.02571 " +"0.60571 0.02014 0.84571 0.02168 0.25669 0.04286 0.66857 0.03800 0.44571 0.04535 " +"0.70984 0.06571 0.74535 0.10571 0.74857 0.11079 0.74902 0.11143 0.37057 0.12857 " +"0.90538 0.12857 0.20823 0.15143 0.35748 0.16286 0.77395 0.16857 0.35429 0.17310 " +"0.35177 0.18000 0.78134 0.21429 0.92152 0.21429 0.19580 0.22571 0.33480 0.25429 " +"0.77395 0.29429 0.91177 0.32286 0.76000 0.32921 0.72571 0.36972 0.89355 0.37429 " +"0.64690 0.40857 0.65143 0.40706 0.64000 0.41109 0.60571 0.41986 0.52109 0.43714 " +"0.85714 0.43270 0.38857 0.49216 0.79429 0.48902 0.72571 0.52437 0.30454 0.54571 " +"0.60260 0.56286 0.52043 0.58571 0.26286 0.59570 0.46857 0.59800 0.39429 0.65095 " +"0.22857 0.67295 0.36823 0.70000 0.75429 0.77624 0.21907 0.78571 0.35891 0.78571 " +"0.89184 0.79714 0.37714 0.85001 0.72571 0.86144 0.87470 0.86571 0.24571 0.89016 " +"0.68571 0.90956 0.44000 0.92036 0.60571 0.94469 0.83179 0.94571 0.28000 0.94629 " +"0.51429 0.94891 0.34286 1.00607 0.75429 1.01579 0.38286 1.02784 0.52043 1.06571 " +"0.60260 1.06571 0.52260 1.12286 0.60043 1.12286 75 3 8 2 2 8 4 19 12 6 13 11 15 9 8 10 3 2 1 8 " +"3 10 5 13 10 15 11 16 7 13 5 4 14 6 2 0 1 5 10 3 12 " +"22 21 14 4 8 13 7 11 11 18 16 20 23 18 18 17 16 20 18 11 19 " +"6 14 28 21 29 26 23 20 12 19 22 25 22 24 21 22 25 21 25 29 26 " +"27 30 27 26 20 31 32 30 31 30 27 40 33 32 37 43 38 34 32 31 38 " +"39 9 40 32 34 38 9 10 43 33 42 37 36 43 39 38 43 42 33 40 35 " +"36 37 33 43 36 39 45 46 48 41 39 45 39 43 41 48 44 47 51 50 46 " +"62 65 48 39 46 44 49 47 49 44 48 54 53 50 51 47 49 53 56 59 53 " +"54 56 66 64 56 55 58 52 58 57 52 54 50 51 59 56 64 67 60 63 60 " +"57 63 66 61 68 61 66 56 68 65 69 65 62 69 62 46 45 63 57 58 62 " +"60 67 68 61 65 71 70 72 70 62 67 62 70 69 71 69 70 " +; + +char *VTK_VECTOR_TEXT_37 = (char *) "81 1.409911 " +"0.46713 -0.11143 0.57143 -0.11215 1.19429 -0.11252 1.10286 -0.10252 1.26444 -0.09429 " +"1.05143 -0.07759 1.31429 -0.06384 1.14857 -0.01538 1.18857 -0.01807 0.98857 -0.01364 " +"1.22286 -0.00771 1.36784 -0.00286 1.11302 0.00286 1.26436 0.03143 1.07787 0.04857 " +"0.95748 0.05429 1.39681 0.06571 1.28680 0.09429 1.05866 0.14000 1.40991 0.14571 " +"0.94134 0.15143 0.94134 0.21429 1.29295 0.21429 1.06134 0.23714 1.40723 0.23714 " +"0.95748 0.30000 1.39387 0.30000 1.07787 0.30571 1.27429 0.30371 1.09561 0.33429 " +"1.23429 0.35465 1.36616 0.36286 1.13143 0.36327 1.16571 0.37277 1.20571 0.36899 " +"1.00045 0.38571 1.32000 0.41543 1.06857 0.44498 1.24571 0.45681 0.48000 0.46420 " +"1.15429 0.46723 0.38857 0.47462 0.55016 0.48286 0.60000 0.51330 0.30286 0.52704 " +"0.43429 0.56177 0.47429 0.55907 0.26857 0.57284 0.50857 0.56943 0.65355 0.57429 " +"0.39873 0.58000 0.55007 0.60857 0.24530 0.62571 0.36359 0.62571 0.68252 0.64286 " +"0.56680 0.64857 0.23050 0.69429 0.34437 0.71714 0.57866 0.72286 0.69563 0.72286 " +"0.22705 0.79143 0.34705 0.81429 0.69295 0.81429 0.56891 0.85429 0.67959 0.87714 " +"0.24530 0.88286 0.36359 0.88286 0.38132 0.91143 0.54286 0.90975 0.52000 0.93179 " +"0.65465 0.93429 0.41714 0.94041 0.47429 0.94950 0.29143 0.96914 0.60571 0.99258 " +"0.32000 0.99868 0.38286 1.03395 0.53714 1.03184 1.06857 1.04249 1.17287 1.04286 " +"0.48000 1.04395 79 0 1 78 10 4 6 2 8 3 9 14 15 4 " +"10 8 3 7 5 7 3 8 10 6 13 12 5 7 5 12 9 4 8 2 13 " +"16 17 17 19 22 14 9 12 15 18 20 11 13 6 13 11 16 17 16 19 18 " +"15 14 21 20 18 21 23 25 22 26 28 23 21 18 24 22 19 25 27 35 35 " +"29 37 22 24 26 28 31 30 27 25 23 31 28 26 27 29 35 36 30 31 38 " +"34 30 38 33 34 37 32 40 32 33 40 38 30 36 32 37 29 40 33 38 42 " +"46 39 47 53 52 48 43 51 39 46 41 41 50 44 56 57 60 45 41 46 42 " +"48 46 48 42 43 50 41 45 53 47 44 51 49 55 54 55 49 53 44 50 49 " +"51 43 55 54 58 59 58 54 57 56 52 57 52 53 60 61 65 58 62 63 57 " +"61 60 62 64 63 65 66 73 66 65 61 73 66 75 58 59 62 63 64 68 70 " +"69 68 67 75 66 70 68 64 76 71 72 75 67 76 74 69 70 71 76 67 69 " +"77 72 72 77 80 77 69 74 76 72 80 79 78 1 " +; + +char *VTK_VECTOR_TEXT_38 = (char *) "76 1.126291 " +"0.58857 -0.08966 1.03429 -0.09235 0.48000 -0.08395 0.66286 -0.07673 0.40000 -0.05914 " +"0.72000 -0.05641 0.98286 -0.05473 0.35429 -0.03393 0.78857 -0.01678 1.12629 0.00857 " +"0.29143 0.02168 0.52571 0.02991 0.57714 0.02764 0.62286 0.03756 0.46857 0.04645 " +"0.87429 0.05495 0.69714 0.07393 0.42132 0.08286 1.04571 0.07868 0.24486 0.08857 " +"0.75011 0.11714 0.22327 0.14000 0.37927 0.14571 0.78349 0.16286 0.96893 0.16286 " +"0.96571 0.16717 0.96457 0.16857 0.95937 0.18000 0.35580 0.22571 0.20991 0.25429 " +"0.36319 0.28857 0.86286 0.29600 1.02437 0.31143 0.22645 0.32857 0.40418 0.36286 " +"0.40571 0.36454 0.41330 0.37429 1.05421 0.40857 0.28418 0.42571 0.92000 0.44119 " +"0.53714 0.46770 0.37143 0.50250 0.66758 0.54000 0.46406 0.55714 0.78704 0.62571 " +"0.59429 0.63146 0.37714 0.68444 0.69296 0.70000 0.85355 0.71714 0.35681 0.73429 " +"0.50200 0.75143 0.49756 0.76286 0.49502 0.76857 0.72891 0.76857 0.86966 0.76857 " +"0.34748 0.82000 0.73295 0.82000 0.48764 0.82571 0.87236 0.83143 0.49714 0.86089 " +"0.35849 0.87143 0.71429 0.87650 0.52000 0.89555 0.69714 0.89846 0.37964 0.91714 " +"0.84657 0.91714 0.55429 0.92073 0.65714 0.92498 0.60000 0.93277 0.81868 0.95714 " +"0.42857 0.97582 0.76571 1.00436 0.51429 1.02723 0.72000 1.02723 0.59429 1.04437 " +"0.64571 1.04395 78 7 17 10 3 13 0 " +"2 14 4 6 18 15 17 7 4 9 18 " +"6 9 6 1 8 16 5 0 12 2 " +"17 4 14 2 11 14 12 0 13 13 5 " +"16 15 24 20 16 8 20 13 3 5 " +"2 12 11 10 17 19 21 28 29 15 20 " +"8 20 24 23 40 23 31 24 25 26 " +"19 22 21 31 23 27 22 19 17 18 24 " +"15 28 21 22 29 30 33 31 32 39 " +"23 24 26 30 29 28 23 26 27 33 30 " +"38 32 31 27 38 36 41 38 34 36 " +"34 38 30 36 34 35 39 32 37 42 40 " +"31 40 41 36 42 44 47 45 43 40 " +"40 43 41 50 46 43 50 49 46 45 40 " +"42 48 53 47 45 42 47 49 52 55 " +"53 48 56 50 43 45 57 60 55 52 50 " +"51 49 50 52 48 47 44 54 56 48 " +"56 65 61 60 59 64 59 60 57 65 56 " +"58 52 57 55 64 59 70 58 56 54 " +"59 62 70 68 74 72 65 69 61 70 66 " +"72 63 71 67 63 61 69 70 62 66 " +"67 73 68 71 63 69 73 67 71 68 72 " +"66 74 68 75 75 68 73 " +; + +char *VTK_VECTOR_TEXT_39 = (char *) "10 0.364197 " +"0.25143 0.63563 0.24571 0.63946 0.32571 0.63757 0.32950 0.64286 0.21034 0.83714 " +"0.36379 0.83714 0.20991 1.02000 0.36420 1.02000 0.21408 1.02571 0.36000 1.02615 8 1 0 3 " +"2 3 0 1 3 4 7 6 4 5 4 " +"3 7 4 5 8 6 9 6 7 9 " +; + +char *VTK_VECTOR_TEXT_40 = (char *) "19 0.595731 " +"0.50857 -0.39522 0.59429 -0.39447 0.44000 -0.30784 0.51787 -0.24857 0.32530 -0.09429 " +"0.43748 -0.05429 0.26899 0.06571 0.38134 0.20286 0.23580 0.27714 0.37605 0.38000 " +"0.23848 0.41429 0.39320 0.53429 0.27177 0.59714 0.43748 0.71143 0.47216 0.80286 " +"0.36086 0.82000 0.45714 0.97936 0.59573 1.04286 0.50857 1.04395 17 2 3 4 0 3 2 3 " +"0 1 6 4 5 3 5 4 6 7 8 7 6 5 9 10 8 9 8 7 10 " +"11 12 10 9 11 12 13 15 12 11 13 14 15 13 16 15 14 17 18 16 17 " +"16 14 " +; + +char *VTK_VECTOR_TEXT_41 = (char *) "19 0.598482 " +"0.24000 -0.39447 0.33143 -0.39258 0.40616 -0.28857 0.31641 -0.24857 0.48784 -0.14000 " +"0.39681 -0.05429 0.55538 0.03143 0.45295 0.20286 0.59580 0.23714 0.59848 0.37429 " +"0.45823 0.38000 0.44723 0.49429 0.56252 0.59714 0.41714 0.64134 0.47343 0.82000 " +"0.34857 0.83301 0.37714 0.97936 0.23855 1.04286 0.32571 1.04395 17 0 1 3 2 3 1 3 " +"4 5 3 2 4 5 6 7 6 5 4 7 8 10 8 9 10 11 10 9 8 " +"7 6 11 12 13 13 14 15 12 11 9 14 13 12 15 16 17 16 15 14 16 " +"18 17 " +; + +char *VTK_VECTOR_TEXT_42 = (char *) "34 0.685300 " +"0.33143 0.58250 0.33714 0.58223 0.53714 0.58250 0.54286 0.58194 0.36213 0.61429 " +"0.25587 0.63714 0.25266 0.64286 0.62655 0.64286 0.25393 0.64857 0.43429 0.73293 " +"0.44000 0.73049 0.36715 0.78000 0.50714 0.78000 0.35429 0.78613 0.63429 0.80816 " +"0.19309 0.82571 0.68389 0.82571 0.19177 0.83143 0.68530 0.83143 0.38857 0.86213 " +"0.39523 0.86571 0.48000 0.86242 0.47660 0.86571 0.34657 0.88286 0.58857 0.90823 " +"0.22286 0.92522 0.22857 0.92848 0.64571 0.92816 0.65143 0.92675 0.49295 1.02000 " +"0.38134 1.03714 0.38550 1.04286 0.49143 1.04021 0.48571 1.04437 32 2 12 10 8 4 11 " +"8 5 4 8 6 5 4 0 1 2 3 " +"12 0 4 5 12 9 10 9 11 4 " +"19 11 21 14 24 12 26 25 17 16 18 " +"14 13 23 15 19 21 20 11 19 13 " +"33 31 30 24 21 12 12 21 9 21 11 " +"9 26 17 23 12 3 7 27 24 18 " +"13 19 23 23 17 15 20 21 22 18 24 " +"14 28 27 18 33 30 20 29 20 22 " +"29 33 20 32 33 29 " +; + +char *VTK_VECTOR_TEXT_43 = (char *) "20 0.952768 " +"0.52836 0.10571 0.64878 0.10571 0.52420 0.11143 0.65295 0.11143 0.52420 0.39714 " +"0.65295 0.39714 0.22857 0.40546 0.52000 0.40329 0.66286 0.40437 0.95168 0.40857 " +"0.22437 0.52286 0.95277 0.52286 0.22857 0.52900 0.52311 0.53429 0.65403 0.53429 " +"0.94857 0.52900 0.52528 0.82571 0.65186 0.82571 0.53143 0.82991 0.64571 0.82991 18 1 2 0 1 3 2 " +"4 2 3 5 4 3 12 6 7 14 4 " +"8 9 15 8 8 4 5 9 11 15 " +"12 7 13 6 12 10 7 4 13 14 8 " +"15 17 19 18 14 13 4 17 18 16 " +"17 16 13 17 13 14 " +; + +char *VTK_VECTOR_TEXT_44 = (char *) "23 0.432768 " +"0.30286 -0.28607 0.30857 -0.28726 0.33714 -0.27355 0.36571 -0.25275 0.27329 -0.23714 " +"0.38670 -0.23143 0.30286 -0.21582 0.39914 -0.21429 0.32115 -0.19714 0.41355 -0.18571 " +"0.33800 -0.16857 0.42327 -0.15714 0.34605 -0.14571 0.43277 -0.10000 0.35580 -0.08286 " +"0.35472 -0.07714 0.28571 -0.07295 0.34857 -0.07295 0.28000 -0.06878 0.27957 0.07714 " +"0.43168 0.07714 0.28571 0.08134 0.42857 0.08025 21 0 6 4 0 " +"1 2 0 2 6 3 6 2 8 5 10 5 7 10 6 5 8 5 6 3 10 " +"7 12 9 12 7 12 13 14 11 12 9 12 11 13 18 17 19 17 21 19 15 " +"14 13 15 13 17 21 17 22 17 20 22 18 16 17 20 17 13 " +; + +char *VTK_VECTOR_TEXT_45 = (char *) "8 0.606146 " +"0.19118 0.26000 0.19429 0.25689 0.60000 0.25580 0.60615 0.26000 0.19118 0.38571 " +"0.60615 0.38571 0.19429 0.38882 0.60000 0.38991 6 6 1 2 6 0 " +"1 6 2 7 6 4 0 7 2 3 " +"5 7 3 " +; + +char *VTK_VECTOR_TEXT_46 = (char *) "13 0.432768 " +"0.28571 -0.07295 0.42286 -0.07295 0.42857 -0.07186 0.27848 -0.06571 0.28000 -0.06878 " +"0.43277 -0.06571 0.27848 0.07143 0.43277 0.07143 0.27957 0.07714 0.43168 0.07714 " +"0.28571 0.08134 0.42286 0.08134 0.42857 0.08025 11 0 " +"3 4 3 0 1 8 6 10 5 1 2 3 1 5 6 3 5 6 7 11 6 " +"5 7 10 6 11 9 12 11 9 11 7 " +; + +char *VTK_VECTOR_TEXT_47 = (char *) "5 0.562348 " +"0.14389 -0.08857 0.14857 -0.09256 0.25004 -0.08857 0.56235 1.04286 0.46286 1.04358 3 2 0 1 4 0 2 3 " +"4 2 " +; + +char *VTK_VECTOR_TEXT_48 = (char *) "53 0.926804 " +"0.53714 -0.09009 0.59429 -0.09009 0.66857 -0.07673 0.43429 -0.06723 0.73143 -0.05070 " +"0.34286 -0.00972 0.80571 0.01025 0.54857 0.02152 0.61714 0.02891 0.30241 0.03714 " +"0.65714 0.04645 0.46857 0.05007 0.42473 0.08857 0.70286 0.08454 0.26645 0.10000 " +"0.86943 0.11143 0.39955 0.12286 0.73800 0.13429 0.23748 0.18000 0.37034 0.19714 " +"0.76252 0.20286 0.91236 0.26000 0.21866 0.26571 0.35621 0.26571 0.77823 0.28857 " +"0.34437 0.40286 0.92680 0.40286 0.20420 0.40857 0.78705 0.54000 0.20723 0.58000 " +"0.92420 0.58571 0.35277 0.64286 0.22177 0.69429 0.76571 0.72437 0.89966 0.74000 " +"0.37756 0.76286 0.74498 0.79143 0.26073 0.82571 0.85927 0.84857 0.42473 0.85429 " +"0.70439 0.85429 0.46286 0.88902 0.66286 0.89007 0.30241 0.90000 0.51009 0.91143 " +"0.58286 0.91823 0.80725 0.92857 0.77714 0.95829 0.38350 0.98000 0.71429 0.99927 " +"0.46286 1.01681 0.65714 1.01959 0.53714 1.02991 53 2 8 1 0 7 3 5 16 9 2 10 8 0 " +"1 8 7 0 8 12 16 5 11 3 7 3 12 5 15 20 17 11 12 3 13 " +"6 17 6 13 4 9 16 14 10 4 13 14 19 18 4 10 2 15 17 6 19 " +"14 16 21 24 20 23 18 19 22 25 27 24 26 28 23 22 18 21 20 15 26 " +"24 21 22 23 25 29 27 25 29 31 32 28 30 33 31 29 25 30 28 26 32 " +"35 37 46 40 36 30 34 33 32 31 35 43 39 48 43 37 35 38 36 33 38 " +"33 34 42 40 49 48 41 50 39 43 35 47 40 46 46 36 38 41 44 50 45 " +"52 44 42 51 45 41 48 39 49 40 47 50 44 52 52 45 51 42 49 51 " +; + +char *VTK_VECTOR_TEXT_49 = (char *) "11 0.708571 " +"0.58286 -0.07186 0.70857 -0.07186 0.30857 0.62908 0.31429 0.62657 0.38286 0.65641 " +"0.30785 0.75143 0.57714 0.77731 0.47429 0.85616 0.56384 0.94000 0.62857 1.02915 " +"0.70857 1.02882 9 6 0 1 2 4 5 7 5 4 2 3 4 6 " +"8 7 6 7 4 10 8 6 10 6 1 10 9 8 " +; + +char *VTK_VECTOR_TEXT_50 = (char *) "43 0.914286 " +"0.18857 -0.06878 0.91429 -0.06878 0.18748 -0.04286 0.19849 0.00857 0.91429 0.05164 " +"0.38142 0.06000 0.22943 0.07714 0.46286 0.15868 0.30286 0.17832 0.38286 0.25813 " +"0.58413 0.43143 0.78286 0.44454 0.67543 0.52286 0.85355 0.53429 0.72045 0.58000 " +"0.89756 0.62571 0.75470 0.64286 0.35168 0.70000 0.91236 0.70000 0.77295 0.71143 " +"0.21403 0.71714 0.77295 0.74571 0.22605 0.79143 0.37143 0.79804 0.90244 0.80857 " +"0.75429 0.81228 0.38902 0.83143 0.24359 0.84286 0.73143 0.84689 0.42454 0.87143 " +"0.86607 0.88857 0.68000 0.89070 0.28000 0.90629 0.49143 0.90823 0.58857 0.91866 " +"0.82857 0.93555 0.31597 0.94571 0.37714 0.98784 0.76000 0.98657 0.44571 1.01470 " +"0.69143 1.01470 0.53714 1.02991 0.62857 1.02723 41 3 2 0 3 5 6 1 5 0 5 " +"3 0 1 4 5 6 5 8 7 8 5 9 8 7 9 7 10 11 10 7 10 " +"11 12 12 11 14 16 15 18 16 18 19 13 14 11 14 13 16 21 24 25 15 " +"16 13 21 19 18 23 27 22 17 23 22 24 21 18 27 23 32 17 22 20 31 " +"42 34 30 28 25 26 32 23 40 31 38 35 28 30 36 32 26 29 36 26 34 " +"41 33 33 37 29 36 29 37 33 39 37 30 25 24 28 38 31 38 28 35 39 " +"33 41 31 40 42 41 34 42 " +; + +char *VTK_VECTOR_TEXT_51 = (char *) "68 0.927232 " +"0.52571 -0.09009 0.63429 -0.08395 0.45143 -0.07756 0.37143 -0.04498 0.74286 -0.04771 " +"0.30857 0.00132 0.81714 0.00439 0.54286 0.02152 0.60000 0.02420 0.64661 0.03714 " +"0.27429 0.03952 0.46857 0.04073 0.42857 0.06759 0.70857 0.07561 0.88213 0.08286 " +"0.23429 0.10772 0.38812 0.11714 0.74535 0.11714 0.91109 0.14571 0.77823 0.19143 " +"0.20764 0.20857 0.92723 0.22571 0.34286 0.23215 0.78437 0.27143 0.92723 0.27714 " +"0.75429 0.36430 0.89927 0.38571 0.72571 0.40132 0.86857 0.43270 0.67429 0.43927 " +"0.48000 0.45284 0.48571 0.44966 0.54857 0.46152 0.60000 0.46109 0.83429 0.46686 " +"0.72693 0.52286 0.49034 0.55714 0.49714 0.56395 0.78857 0.56473 0.58286 0.57109 " +"0.82857 0.60921 0.67429 0.61616 0.70400 0.64857 0.85294 0.65429 0.72680 0.70571 " +"0.87009 0.72286 0.35429 0.72298 0.22175 0.74571 0.72991 0.76286 0.72151 0.80286 " +"0.86244 0.80857 0.38857 0.82064 0.69143 0.85832 0.84571 0.85587 0.26241 0.87143 " +"0.43429 0.87829 0.64571 0.89641 0.48571 0.90723 0.29330 0.91714 0.60571 0.91252 " +"0.53143 0.91823 0.80384 0.92286 0.36000 0.97750 0.73143 0.98213 0.44571 1.01681 " +"0.65714 1.01470 0.52000 1.02991 0.60000 1.02723 66 3 11 " +"5 9 8 1 1 8 0 4 9 1 " +"9 4 13 7 0 8 6 13 4 17 13 " +"6 2 11 3 2 0 7 5 16 10 " +"12 5 11 10 16 15 11 2 7 16 5 " +"12 17 14 19 14 17 6 20 15 22 " +"19 18 23 22 15 16 14 18 19 21 23 " +"18 23 26 25 23 21 24 26 28 25 " +"30 32 36 25 34 27 35 32 33 35 29 " +"27 25 28 34 29 35 33 26 23 24 " +"37 36 32 39 32 35 35 27 34 37 32 " +"39 30 31 32 39 35 41 38 41 35 " +"38 42 41 40 42 38 42 40 44 40 43 " +"44 44 43 48 45 48 43 47 46 54 " +"49 48 50 50 48 45 49 53 52 63 52 " +"61 53 49 50 46 51 54 58 54 51 " +"58 55 62 62 55 64 66 57 60 61 52 " +"53 55 58 51 59 67 60 52 63 56 " +"56 65 59 55 57 64 64 57 66 65 56 " +"63 67 66 60 67 59 65 " +; + +char *VTK_VECTOR_TEXT_52 = (char *) "18 0.920000 " +"0.64571 -0.07295 0.64000 -0.06878 0.77143 -0.06878 0.77403 0.18571 0.16265 0.19143 " +"0.63429 0.18882 0.92000 0.19408 0.15891 0.31143 0.91735 0.31143 0.29653 0.31714 " +"0.63740 0.31714 0.77714 0.31403 0.16571 0.32228 0.16616 0.32286 0.63429 0.79380 " +"0.77186 1.02000 0.66857 1.02282 0.76571 1.02420 18 2 1 0 1 3 5 1 2 " +"3 3 10 5 9 4 5 4 9 7 " +"6 11 3 8 11 6 7 9 13 15 16 " +"14 9 5 10 7 13 12 13 14 16 " +"11 10 3 14 13 9 14 10 11 15 17 " +"16 15 14 11 " +; + +char *VTK_VECTOR_TEXT_53 = (char *) "54 0.932946 " +"0.52571 -0.09009 0.61714 -0.08665 0.44571 -0.07673 0.73143 -0.05179 0.35429 -0.03759 " +"0.78914 -0.01429 0.30286 0.00241 0.53714 0.02152 0.62857 0.03184 0.84115 0.03714 " +"0.46857 0.03927 0.66286 0.04645 0.26286 0.04921 0.42286 0.06759 0.71429 0.08439 " +"0.88045 0.09429 0.23343 0.10000 0.38812 0.10571 0.74535 0.12286 0.35748 0.16857 " +"0.77294 0.18000 0.91681 0.18000 0.20420 0.20857 0.34286 0.22376 0.78705 0.23714 " +"0.93295 0.27143 0.79009 0.31714 0.93252 0.33429 0.77714 0.38420 0.91681 0.42000 " +"0.34857 0.43034 0.75641 0.43143 0.23088 0.44857 0.72000 0.47868 0.40000 0.48400 " +"0.68000 0.50784 0.86902 0.51714 0.46857 0.52437 0.53143 0.53848 0.57714 0.53848 " +"0.58857 0.53621 0.60000 0.53580 0.82286 0.56972 0.38494 0.59714 0.77714 0.60535 " +"0.48571 0.64244 0.69714 0.64327 0.56571 0.65848 0.61714 0.65848 0.43891 0.87714 " +"0.44571 0.88395 0.88043 0.88857 0.88043 1.00857 0.33714 1.01182 52 7 1 " +"8 7 0 1 7 2 0 2 10 4 " +"6 13 12 3 8 1 3 11 8 10 2 " +"7 4 13 6 11 3 14 19 16 12 " +"3 5 14 9 14 5 10 13 4 22 19 " +"23 18 15 20 17 12 13 15 14 9 " +"14 15 18 19 12 17 25 26 24 20 21 " +"24 21 20 15 22 16 19 25 24 21 " +"26 25 27 29 28 26 29 26 27 43 37 " +"45 36 31 29 34 32 30 31 36 33 " +"31 28 29 32 34 43 48 47 41 45 38 " +"47 42 33 36 41 39 40 38 39 47 " +"37 38 45 47 39 41 44 33 42 43 34 " +"37 46 33 44 35 46 41 33 46 35 " +"46 48 41 32 43 53 43 49 53 49 50 " +"53 53 50 52 50 51 52 " +; + +char *VTK_VECTOR_TEXT_54 = (char *) "70 0.927232 " +"0.55429 -0.09009 0.66857 -0.08034 0.43429 -0.06213 0.75429 -0.04607 0.34857 -0.00972 " +"0.81143 -0.00439 0.59429 0.02152 0.51339 0.03143 0.85188 0.04286 0.67429 0.04645 " +"0.46286 0.05579 0.27384 0.07714 0.41714 0.09597 0.73143 0.09597 0.89355 0.11714 " +"0.38771 0.14000 0.91177 0.16857 0.77294 0.17429 0.22816 0.18571 0.36530 0.19714 " +"0.78705 0.24857 0.92680 0.25429 0.35320 0.26000 0.78665 0.30571 0.20420 0.31143 " +"0.35320 0.31143 0.92723 0.31714 0.36657 0.37429 0.77395 0.37429 0.75429 0.41841 " +"0.39179 0.42571 0.89756 0.44286 0.72000 0.46418 0.43429 0.47258 0.19891 0.50571 " +"0.33714 0.50495 0.48000 0.50213 0.66857 0.50086 0.86241 0.50571 0.55429 0.52134 " +"0.61143 0.51866 0.80403 0.56857 0.42286 0.58821 0.74286 0.60943 0.34134 0.63143 " +"0.50857 0.62823 0.68000 0.63252 0.57714 0.64134 0.21563 0.66000 0.77714 0.74697 " +"0.37502 0.75714 0.90966 0.76286 0.25673 0.80286 0.41901 0.83143 0.73143 0.85191 " +"0.45143 0.86686 0.87343 0.87714 0.30036 0.88286 0.68000 0.89514 0.50286 0.90086 " +"0.51429 0.90530 0.52000 0.90784 0.60571 0.91866 0.83846 0.92857 0.35429 0.94384 " +"0.40571 0.98150 0.76000 0.99229 0.49143 1.01748 0.68571 1.02041 0.56571 1.02991 70 " +"2 10 4 6 1 9 3 5 13 0 7 " +"2 3 9 1 1 6 0 9 3 13 " +"7 0 6 10 2 7 20 26 23 4 12 " +"11 13 8 17 4 10 12 11 19 18 " +"17 21 20 15 11 12 11 15 19 16 17 " +"14 18 22 24 8 14 17 8 13 5 " +"24 35 34 22 18 19 20 21 26 28 23 " +"26 21 17 16 24 27 35 24 22 25 " +"28 31 29 31 28 26 24 25 27 32 41 " +"37 30 35 27 34 44 48 35 33 42 " +"43 37 41 46 39 40 32 29 38 38 29 " +"31 33 35 30 33 36 42 42 36 45 " +"45 39 47 36 39 45 37 46 40 41 32 " +"38 46 37 43 47 39 46 44 34 35 " +"48 50 52 48 44 50 49 56 54 57 53 " +"64 57 52 50 54 66 58 51 56 49 " +"62 69 61 53 57 50 61 59 60 59 65 " +"55 65 64 55 58 68 62 55 64 53 " +"66 54 63 63 54 56 65 59 67 69 62 " +"68 67 59 61 69 67 61 68 58 66 " +; + +char *VTK_VECTOR_TEXT_55 = (char *) "17 0.923788 " +"0.37143 -0.07186 0.50286 -0.07186 0.36723 -0.06571 0.37335 0.02000 0.52991 0.11143 " +"0.40379 0.18571 0.59787 0.35143 0.47387 0.41429 0.66857 0.51873 0.53355 0.55143 " +"0.63384 0.72857 0.80893 0.76286 0.74359 0.88286 0.21714 0.88546 0.92379 0.91143 " +"0.21403 1.00857 0.92311 1.00857 15 3 0 1 2 0 3 3 4 5 4 3 1 6 7 5 6 5 4 9 " +"7 6 10 9 8 8 9 6 10 11 12 11 10 8 15 13 12 12 14 16 15 " +"12 16 11 14 12 " +; + +char *VTK_VECTOR_TEXT_56 = (char *) "83 0.926804 " +"0.53143 -0.08966 0.62857 -0.08665 0.45143 -0.07605 0.73714 -0.05641 0.38857 -0.05343 " +"0.34286 -0.02616 0.79429 -0.02250 0.28571 0.02445 0.58857 0.02152 0.50857 0.02823 " +"0.85258 0.03143 0.66937 0.04286 0.45143 0.05070 0.71429 0.07296 0.41143 0.07868 " +"0.24000 0.09016 0.89927 0.10571 0.37669 0.12286 0.76613 0.14000 0.21462 0.15714 " +"0.35849 0.16286 0.92109 0.17429 0.78705 0.22000 0.34437 0.22571 0.20420 0.27143 " +"0.92680 0.27143 0.78437 0.28286 0.34748 0.28857 0.77143 0.32947 0.91470 0.33429 " +"0.21714 0.34118 0.37502 0.36286 0.73296 0.39143 0.89057 0.39143 0.24359 0.40286 " +"0.41883 0.41429 0.69143 0.42722 0.27275 0.44286 0.85714 0.43841 0.46286 0.44371 " +"0.50286 0.45748 0.63429 0.45470 0.58286 0.46420 0.80507 0.48286 0.33143 0.49007 " +"0.40456 0.52286 0.72693 0.52286 0.32000 0.57616 0.54857 0.57580 0.62286 0.58319 " +"0.82082 0.58571 0.49714 0.58657 0.66286 0.60073 0.28527 0.61429 0.44571 0.61582 " +"0.70439 0.63714 0.85759 0.63714 0.25756 0.67143 0.72657 0.67143 0.39849 0.68286 " +"0.87470 0.68286 0.74134 0.72857 0.38705 0.73429 0.88109 0.76857 0.24764 0.77429 " +"0.73395 0.79714 0.39470 0.80286 0.87177 0.82000 0.71641 0.83714 0.27216 0.86571 " +"0.44000 0.87296 0.84486 0.88286 0.66286 0.89179 0.48000 0.90086 0.61714 0.91184 " +"0.54286 0.91823 0.31846 0.93429 0.80571 0.93555 0.38286 0.98616 0.72000 0.99800 " +"0.43429 1.01008 0.53143 1.02991 0.61714 1.02723 85 0 " +"9 2 12 4 2 1 8 0 6 11 3 5 14 7 9 0 8 8 1 11 4 " +"12 5 13 11 6 1 3 11 12 2 9 5 12 14 13 10 18 7 17 15 10 " +"13 6 15 20 19 7 14 17 18 16 22 16 18 10 20 15 17 19 23 24 16 " +"21 22 22 25 26 23 19 20 24 27 30 25 22 21 27 24 23 31 34 30 31 " +"37 34 29 28 26 31 30 27 29 26 25 33 28 29 28 33 32 36 32 43 37 " +"31 44 40 45 39 44 39 45 43 32 38 35 44 31 42 48 40 44 35 39 41 " +"46 42 36 46 41 32 33 38 48 42 49 46 36 43 48 45 40 42 46 49 51 " +"45 48 49 46 52 47 54 53 52 46 55 53 59 57 45 54 47 45 51 54 50 " +"55 46 59 53 54 50 58 55 58 50 61 57 62 64 61 63 65 56 61 50 57 " +"59 62 60 61 56 64 66 69 63 67 65 64 62 66 63 61 60 71 68 65 76 " +"69 66 72 68 77 71 65 67 76 70 78 70 76 66 74 82 75 80 78 70 79 " +"72 77 74 72 79 80 73 75 80 75 81 68 71 77 73 80 70 82 81 75 82 " +"74 79 " +; + +char *VTK_VECTOR_TEXT_57 = (char *) "72 0.927232 " +"0.50286 -0.09009 0.56000 -0.09009 0.42857 -0.07673 0.64571 -0.07395 0.36000 -0.04771 " +"0.74286 -0.02616 0.28759 0.01429 0.51429 0.02152 0.57143 0.02420 0.80115 0.02571 " +"0.47429 0.02891 0.42857 0.05007 0.64000 0.04943 0.24930 0.07714 0.39314 0.08286 " +"0.85229 0.10000 0.70902 0.11143 0.37057 0.12286 0.22177 0.17429 0.34857 0.18947 " +"0.75109 0.19714 0.89395 0.20286 0.75429 0.20739 0.75681 0.21429 0.90966 0.27143 " +"0.50286 0.30152 0.42857 0.31605 0.61714 0.31462 0.37714 0.33787 0.70286 0.35759 " +"0.78705 0.37429 0.32000 0.37846 0.58286 0.42152 0.50286 0.42891 0.63429 0.43184 " +"0.78286 0.43630 0.92723 0.43714 0.26286 0.44350 0.45143 0.45107 0.68571 0.45750 " +"0.41587 0.47714 0.23787 0.48857 0.74498 0.52286 0.36359 0.55143 0.21522 0.55714 " +"0.92680 0.56286 0.76571 0.57009 0.34437 0.63143 0.77823 0.63714 0.20462 0.69429 " +"0.77866 0.69429 0.91236 0.70000 0.35429 0.74118 0.76571 0.76404 0.21756 0.77429 " +"0.38286 0.80921 0.87343 0.82571 0.40759 0.84286 0.72571 0.84118 0.24527 0.84857 " +"0.69143 0.87527 0.84000 0.88221 0.47429 0.89641 0.28571 0.90975 0.63429 0.90784 " +"0.54857 0.91866 0.33143 0.95527 0.76000 0.96331 0.39629 0.99714 0.68571 1.00437 " +"0.49714 1.02723 0.57714 1.02991 72 3 8 1 2 11 4 0 7 2 " +"8 3 12 4 14 6 0 1 8 6 17 " +"13 10 2 7 7 0 8 5 12 3 " +"12 5 16 2 10 11 4 11 14 5 9 " +"16 18 13 19 16 15 20 15 23 20 " +"6 14 17 13 17 19 21 23 15 22 20 " +"23 23 24 30 16 9 15 23 21 24 " +"25 32 26 27 32 25 38 28 26 43 41 " +"37 34 29 39 33 26 32 29 34 27 " +"30 36 35 34 32 27 36 30 24 28 38 " +"31 31 38 37 35 39 29 38 26 33 " +"39 35 42 42 35 36 40 37 38 44 41 " +"43 42 36 46 44 47 49 43 37 40 " +"48 46 45 36 45 46 51 50 48 52 54 " +"49 47 44 43 50 51 53 51 48 45 " +"59 54 52 59 55 63 52 49 47 53 61 " +"58 56 53 51 55 59 52 53 56 61 " +"66 63 57 55 57 63 62 68 57 58 67 " +"60 67 58 61 68 66 57 60 69 64 " +"68 62 70 60 67 69 64 71 65 65 70 " +"62 70 65 71 64 69 71 " +; + +char *VTK_VECTOR_TEXT_58 = (char *) "14 0.432768 " +"0.28571 -0.07295 0.42857 -0.07186 0.28000 -0.06878 0.43277 -0.06571 0.27957 0.07714 " +"0.28571 0.08134 0.42857 0.08025 0.27957 0.57429 0.28571 0.57009 0.43168 0.57429 " +"0.27848 0.71714 0.43277 0.71714 0.28265 0.72286 0.42857 0.72329 10 " +"2 5 4 2 0 5 0 3 5 6 5 " +"3 0 1 3 7 8 10 10 11 13 " +"9 10 8 12 10 13 11 10 9 " +; + +char *VTK_VECTOR_TEXT_59 = (char *) "18 0.432768 " +"0.30857 -0.28726 0.36571 -0.25275 0.27323 -0.23714 0.39543 -0.22000 0.32384 -0.19143 " +"0.33756 -0.16857 0.42327 -0.15714 0.43277 -0.10000 0.35472 -0.07714 0.28571 -0.07295 " +"0.34857 -0.07295 0.28000 -0.06878 0.27957 0.07714 0.43168 0.07714 0.27957 0.57429 " +"0.43168 0.57429 0.28265 0.72286 0.42857 0.72329 14 2 1 4 5 4 3 0 1 " +"2 5 6 8 3 4 1 6 5 3 " +"6 7 8 11 10 12 12 10 13 8 7 " +"10 11 9 10 13 10 7 17 16 15 " +"15 16 14 " +; + +char *VTK_VECTOR_TEXT_60 = (char *) "11 0.952690 " +"0.94857 0.09939 0.95269 0.10571 0.95236 0.22571 0.22894 0.40857 0.38919 0.46571 " +"0.38919 0.47143 0.22748 0.52857 0.23192 0.53429 0.95098 0.70571 0.95216 0.83143 " +"0.94857 0.83523 9 4 0 2 5 7 6 4 3 0 0 1 2 7 " +"8 10 4 5 3 5 6 3 8 9 10 7 5 8 " +; + +char *VTK_VECTOR_TEXT_61 = (char *) "12 0.952768 " +"0.22857 0.23975 0.94857 0.23975 0.22437 0.35714 0.95277 0.35714 0.22857 0.36329 " +"0.94857 0.36329 0.22857 0.57385 0.94857 0.57385 0.22437 0.58000 0.95277 0.58000 " +"0.22857 0.69740 0.94857 0.69740 8 0 4 " +"2 0 1 5 4 0 5 3 5 1 " +"11 7 9 10 6 7 10 7 11 8 6 " +"10 " +; + +char *VTK_VECTOR_TEXT_62 = (char *) "11 0.952360 " +"0.23429 0.09914 0.22857 0.10169 0.22748 0.22571 0.23192 0.23143 0.95116 0.40857 " +"0.79073 0.46571 0.79073 0.47143 0.95236 0.52857 0.22897 0.70571 0.22857 0.83287 " +"0.23429 0.83563 9 1 0 2 3 2 0 3 0 5 4 7 5 4 " +"5 0 6 5 7 6 10 8 8 10 9 10 6 7 " +; + +char *VTK_VECTOR_TEXT_63 = (char *) "45 0.918074 " +"0.47429 -0.07186 0.62021 -0.07143 0.47118 0.07714 0.62329 0.07714 0.49979 0.19714 " +"0.62021 0.19714 0.49563 0.20286 0.49563 0.27714 0.63681 0.31714 0.50816 0.34571 " +"0.65714 0.36350 0.53669 0.41429 0.70857 0.42384 0.57868 0.47143 0.82857 0.53597 " +"0.86902 0.58571 0.73258 0.62000 0.90437 0.65429 0.76086 0.66000 0.77522 0.70000 " +"0.91580 0.70000 0.34857 0.71338 0.21034 0.73429 0.77866 0.75143 0.91807 0.76857 " +"0.22605 0.80857 0.76571 0.80375 0.38286 0.82144 0.73714 0.85191 0.25098 0.87143 " +"0.89143 0.86730 0.43597 0.88857 0.86812 0.90571 0.67429 0.90616 0.48571 0.91800 " +"0.62857 0.92538 0.29296 0.93429 0.54857 0.93277 0.81143 0.96670 0.35429 0.98821 " +"0.76571 0.99800 0.44571 1.02891 0.69714 1.02680 0.53143 1.04395 0.60000 1.04437 41 2 1 3 2 0 1 7 6 4 7 4 5 8 9 7 11 10 13 8 " +"7 5 8 10 11 9 8 11 13 12 16 12 13 10 14 16 12 14 15 16 16 " +"15 18 17 18 15 17 23 19 17 19 18 20 23 17 29 27 36 26 32 28 21 " +"25 22 26 23 24 27 29 25 24 23 20 36 31 39 28 40 33 30 26 24 35 " +"44 37 31 36 27 27 25 21 31 34 41 42 33 40 28 38 40 39 31 41 38 " +"28 32 26 30 32 42 35 33 41 34 43 43 37 44 34 37 43 44 35 42 " +; + +char *VTK_VECTOR_TEXT_64 = (char *) "114 1.632597 " +"0.92571 -0.39563 1.16571 -0.38109 0.74857 -0.37236 0.65143 -0.34613 1.33143 -0.33070 " +"0.54286 -0.29914 0.86286 -0.27866 1.06286 -0.28134 1.45650 -0.26000 0.73714 -0.25387 " +"1.21143 -0.25387 0.43429 -0.22384 0.62286 -0.21216 1.32144 -0.20857 1.55582 -0.17429 " +"0.53714 -0.16099 0.52571 -0.15258 0.53143 -0.15669 0.33714 -0.11650 1.45143 -0.11561 " +"0.46286 -0.09260 0.80000 -0.07295 1.20571 -0.07252 1.09714 -0.06891 0.71429 -0.06252 " +"1.49714 -0.06187 1.63260 -0.06000 0.29629 -0.04857 1.29714 -0.04498 0.90857 -0.03629 " +"1.03384 -0.02571 0.62857 -0.01582 0.40486 -0.00857 0.59429 0.01873 1.41143 0.03296 " +"0.82857 0.03907 0.77714 0.04327 1.01143 0.04414 1.20000 0.05050 1.16989 0.06571 " +"1.25143 0.06086 0.90857 0.06821 0.72000 0.07561 0.54771 0.09429 1.15580 0.09429 " +"0.24420 0.10000 0.35748 0.11143 0.96000 0.10725 0.68527 0.11714 1.33841 0.11714 " +"1.51579 0.15714 0.66177 0.17429 1.41355 0.20286 1.03514 0.20857 0.65295 0.23143 " +"0.22437 0.23714 0.51277 0.23714 0.33563 0.24857 1.45355 0.27714 1.07177 0.31143 " +"1.58478 0.31143 0.65966 0.32857 1.48319 0.36857 0.53184 0.39714 0.23277 0.40286 " +"0.34478 0.40857 1.60420 0.42571 1.08420 0.44286 0.71514 0.48857 0.25184 0.49429 " +"1.49295 0.49429 0.57229 0.50000 1.60109 0.52857 1.05714 0.54144 0.75846 0.55143 " +"0.38645 0.55714 1.47681 0.58571 1.01143 0.59527 0.81714 0.60331 1.58605 0.60857 " +"1.12878 0.61429 0.65714 0.62418 0.86286 0.62319 0.96571 0.62151 0.92571 0.62991 " +"0.42857 0.64350 1.44571 0.66730 0.32359 0.67714 1.06048 0.68286 0.74857 0.69641 " +"1.15429 0.71588 1.28235 0.71714 1.00571 0.71800 0.82857 0.73109 0.92000 0.74152 " +"1.52657 0.75143 0.51275 0.75714 0.37669 0.76286 1.38286 0.76132 0.59493 0.82571 " +"1.30857 0.82821 1.45561 0.84857 0.47429 0.87296 0.73143 0.89681 1.18286 0.89580 " +"1.08571 0.92395 1.37143 0.92400 0.92000 0.93580 0.58286 0.95188 1.30857 0.96371 " +"0.71429 1.00899 1.18286 1.01470 0.92000 1.04437 1.01143 1.04395 114 0 6 2 1 7 0 6 0 7 " +"7 1 10 2 9 3 3 12 5 9 2 " +"6 10 4 13 4 10 1 15 5 12 " +"5 15 11 13 8 19 12 3 9 8 13 " +"4 11 20 18 11 15 16 17 16 15 " +"14 19 8 26 25 14 20 11 16 22 38 " +"23 25 19 14 23 39 30 30 39 37 " +"27 46 45 18 32 27 32 18 20 21 36 " +"24 35 29 41 24 42 31 29 35 21 " +"22 28 40 38 22 40 34 49 40 33 31 " +"48 36 21 35 37 47 41 33 48 43 " +"43 51 56 44 37 39 34 40 28 47 37 " +"53 50 52 34 38 39 23 52 49 34 " +"37 44 53 27 32 46 42 24 36 48 31 " +"42 37 41 29 45 57 55 53 44 59 " +"51 54 56 52 50 58 58 60 62 43 48 " +"51 45 46 57 56 61 63 64 55 57 " +"91 80 44 60 58 50 62 66 70 56 54 " +"61 44 80 67 59 44 67 71 63 61 " +"64 65 69 67 80 73 65 64 57 66 62 " +"60 68 71 61 71 68 81 69 75 87 " +"72 70 66 74 81 68 77 73 80 70 79 " +"76 75 69 65 83 77 88 87 85 97 " +"81 74 89 89 78 93 86 76 79 70 72 " +"79 74 78 89 88 77 80 75 85 87 " +"82 84 94 91 90 80 86 95 98 78 82 " +"93 92 83 88 93 82 94 84 83 92 " +"94 84 92 97 96 102 95 86 79 102 99 " +"108 95 101 98 96 97 85 96 99 102 " +"98 101 100 103 108 99 100 109 104 106 100 " +"101 108 103 110 105 113 107 100 106 109 " +"104 111 105 107 112 110 111 104 109 113 105 " +"111 112 107 113 107 110 103 " +; + +char *VTK_VECTOR_TEXT_65 = (char *) "13 1.155731 " +"0.14455 -0.07143 1.00000 -0.07252 1.15573 -0.07143 0.29143 -0.07103 0.40981 0.25429 " +"0.86857 0.25754 0.45714 0.37713 0.82478 0.38000 0.45462 0.38571 0.58538 0.73429 " +"0.63429 0.90068 0.56000 1.02454 0.71429 1.02644 13 5 " +"1 2 0 8 11 6 4 5 12 10 7 0 3 4 0 4 8 6 5 7 6 " +"8 4 7 5 2 8 9 11 9 10 11 12 7 2 11 10 12 " +; + +char *VTK_VECTOR_TEXT_66 = (char *) "48 1.081090 " +"0.25714 -0.07186 0.78286 -0.06723 0.86857 -0.04899 0.93714 -0.02045 1.00725 0.03714 " +"0.39957 0.06000 0.73143 0.05621 0.80571 0.06891 1.04213 0.08857 0.87555 0.10571 " +"1.06437 0.14000 0.91070 0.15143 1.08109 0.22000 0.93295 0.22571 0.93252 0.26571 " +"1.07177 0.32286 0.90857 0.34064 1.04616 0.38571 0.86857 0.38686 0.79429 0.42252 " +"0.39957 0.43143 1.01296 0.43143 0.69714 0.43563 0.97143 0.46686 0.88197 0.51143 " +"0.40571 0.56437 0.72000 0.56705 0.39848 0.57429 0.96956 0.58571 0.80571 0.58930 " +"0.84686 0.62000 0.99641 0.62571 0.86943 0.65429 1.02437 0.70571 0.88420 0.71143 " +"1.02665 0.76857 0.87429 0.79232 1.01673 0.82000 0.84000 0.84984 0.77714 0.88538 " +"0.98607 0.88857 0.39957 0.89429 0.71429 0.89580 0.93143 0.95296 0.85714 0.99756 " +"0.80000 1.01470 0.25714 1.02615 0.70857 1.02680 50 1 6 0 2 7 1 " +"0 20 46 7 2 9 1 7 6 20 27 " +"46 9 4 11 4 9 3 2 3 9 " +"11 10 13 8 11 4 10 11 8 12 13 " +"10 14 17 16 14 15 17 16 21 18 " +"14 13 12 15 14 12 23 18 21 5 0 " +"6 19 26 22 18 24 19 16 17 21 " +"24 18 23 26 19 29 19 24 29 25 22 " +"26 22 25 20 30 29 24 32 28 31 " +"28 32 30 32 31 34 0 5 20 34 35 " +"36 33 34 31 28 30 24 36 40 38 " +"38 44 39 35 37 36 34 33 35 25 27 " +"20 27 41 46 40 36 37 43 38 40 " +"39 45 42 42 47 41 38 43 44 45 39 " +"44 47 46 41 47 42 45 " +; + +char *VTK_VECTOR_TEXT_67 = (char *) "56 1.186046 " +"0.69143 -0.08966 0.80000 -0.08705 0.60000 -0.07823 0.50857 -0.05070 0.93143 -0.05216 " +"0.45714 -0.02486 1.00000 -0.01473 0.39597 0.02000 0.69714 0.03563 0.74857 0.03563 " +"0.62286 0.04899 0.82286 0.04899 1.08000 0.05597 0.57143 0.06784 0.88000 0.07229 " +"0.32571 0.10064 0.93143 0.10759 0.49143 0.11901 1.13800 0.14000 0.45600 0.15714 " +"0.28930 0.16286 0.99641 0.18571 0.41502 0.22571 1.18605 0.27714 0.24319 0.28857 " +"1.04571 0.31105 0.38244 0.32857 0.22748 0.36286 0.36723 0.44286 0.21866 0.52857 " +"0.36991 0.55714 0.22705 0.60857 1.02857 0.69469 0.40657 0.71143 1.16694 0.72857 " +"0.26286 0.74089 0.44187 0.78000 1.13927 0.80857 0.97143 0.80914 0.48000 0.82725 " +"0.31750 0.84286 0.93714 0.85011 0.53143 0.86784 0.89143 0.88331 1.07582 0.90571 " +"0.64000 0.91252 0.64571 0.91335 0.65714 0.91563 0.38286 0.91868 0.78857 0.91823 " +"1.00571 0.96902 0.50286 0.99756 0.93143 1.01070 0.58286 1.02680 0.70286 1.04705 " +"0.80000 1.04437 54 " +"1 9 0 0 8 2 14 6 16 4 14 " +"11 24 20 22 7 17 15 2 10 3 " +"8 10 2 9 1 11 0 9 8 4 11 " +"1 3 13 5 12 16 6 10 13 3 " +"5 13 7 7 13 17 22 20 15 16 12 " +"21 14 4 6 19 15 17 23 25 18 " +"22 15 19 25 21 18 18 21 12 27 28 " +"29 27 24 26 26 24 22 28 27 26 " +"29 30 31 30 29 28 33 35 31 35 33 " +"40 33 31 30 34 37 32 48 42 51 " +"36 40 33 40 36 48 38 44 41 44 38 " +"37 32 37 38 48 39 42 36 39 48 " +"54 53 47 45 51 42 49 43 52 50 41 " +"44 47 45 46 41 50 43 45 53 51 " +"49 54 47 53 45 47 49 55 54 55 49 " +"52 52 43 50 " +; + +char *VTK_VECTOR_TEXT_68 = (char *) "34 1.167232 " +"0.26286 -0.07186 0.70286 -0.07252 0.80000 -0.06109 0.89714 -0.03355 0.99555 0.02571 " +"0.40528 0.06000 0.72571 0.05891 1.03582 0.06571 0.79547 0.07143 0.88000 0.10893 " +"1.08150 0.12857 0.92115 0.14571 0.96657 0.21429 1.13966 0.26571 0.99470 0.28857 " +"1.16420 0.39714 1.01823 0.43714 1.16723 0.52857 1.01823 0.53429 1.15277 0.64286 " +"1.00000 0.65848 0.97714 0.72375 1.11216 0.77429 0.94286 0.78057 0.87429 0.84902 " +"1.06607 0.85429 0.81714 0.87865 0.40528 0.89429 0.69143 0.89807 0.97714 0.94616 " +"0.90857 0.98657 0.81143 1.01580 0.26286 1.02615 0.70286 1.02680 34 2 6 1 5 0 1 " +"8 3 9 3 8 2 0 27 32 6 2 " +"8 5 1 6 4 7 11 4 9 3 " +"9 4 11 11 10 12 11 7 10 13 14 " +"12 14 15 16 13 12 10 16 17 18 " +"14 13 15 18 19 20 17 16 15 18 17 " +"19 22 21 20 21 22 23 29 24 23 " +"22 20 19 26 24 30 0 5 27 25 23 " +"22 29 23 25 30 24 29 26 31 28 " +"31 26 30 33 32 27 28 33 27 33 28 " +"31 " +; + +char *VTK_VECTOR_TEXT_69 = (char *) "15 1.080000 " +"0.26857 -0.07186 1.08000 -0.06878 1.08000 0.05164 0.41100 0.06000 0.41100 0.42571 " +"1.01143 0.43100 1.01563 0.55143 0.41714 0.55866 1.01143 0.55757 0.40991 0.56857 " +"0.41100 0.89429 1.05143 0.89957 1.05563 1.02000 0.26857 1.02615 1.05143 1.02615 13 0 4 13 1 3 0 1 2 3 0 " +"3 4 7 5 8 5 7 4 6 8 5 4 9 13 7 9 4 9 10 13 11 " +"14 10 14 13 10 12 14 11 " +; + +char *VTK_VECTOR_TEXT_70 = (char *) "12 1.005714 " +"0.26857 -0.07186 0.40571 -0.07186 0.40991 0.42000 0.41714 0.42723 0.92615 0.43143 " +"0.92615 0.55143 0.41714 0.55563 0.40991 0.56286 0.41100 0.89429 1.00571 0.90265 " +"1.00571 1.02307 0.26857 1.02615 10 0 2 " +"11 2 7 11 2 0 1 6 4 5 " +"4 6 3 3 6 2 7 2 6 7 8 " +"11 11 8 10 8 9 10 " +; + +char *VTK_VECTOR_TEXT_71 = (char *) "60 1.234286 " +"0.82286 -0.08966 0.65714 -0.07866 0.93143 -0.07335 0.56571 -0.05387 1.05143 -0.03355 " +"0.48000 -0.01514 1.12000 0.00073 0.74286 0.03866 0.83429 0.04177 0.38857 0.05044 " +"0.65143 0.05470 0.92571 0.06319 1.23260 0.07714 0.34857 0.09302 0.54286 0.10150 " +"1.03429 0.11229 0.50286 0.13044 1.09252 0.15714 0.44421 0.19714 0.27429 0.21629 " +"0.24252 0.31143 0.39320 0.31143 0.77714 0.36243 1.09143 0.35773 0.22748 0.39714 " +"0.37605 0.40286 0.77295 0.48286 0.77714 0.48900 1.23429 0.48900 0.22437 0.51143 " +"0.37295 0.51714 0.23320 0.59143 0.39748 0.65429 1.09143 0.68617 1.08571 0.69099 " +"0.42073 0.71714 1.21977 0.72286 0.27387 0.73429 1.06286 0.75301 0.30645 0.80286 " +"0.47616 0.80286 1.02286 0.82127 1.18498 0.82571 0.54286 0.86150 0.34857 0.86629 " +"0.94286 0.88371 1.14857 0.88793 0.61143 0.89580 0.86286 0.91184 0.40168 0.92286 " +"0.70857 0.91866 0.80000 0.92134 1.09714 0.94384 0.45714 0.96436 0.53714 1.00498 " +"1.00000 1.00371 0.93714 1.02613 0.62857 1.03252 0.73714 1.04705 0.84571 1.04395 58 0 7 1 14 5 3 5 14 " +"9 2 8 0 1 10 3 0 8 7 " +"8 2 11 18 13 9 17 6 12 10 1 " +"7 4 11 2 13 18 19 23 17 12 " +"15 6 17 4 6 15 16 9 14 11 4 " +"15 14 3 10 19 21 20 18 9 16 " +"30 31 29 23 27 22 25 24 20 22 27 " +"26 21 19 18 25 20 21 23 28 27 " +"28 23 12 29 24 25 30 29 25 31 32 " +"37 38 33 36 37 32 39 32 31 30 " +"35 39 32 34 33 38 39 40 44 38 46 " +"41 38 42 46 40 39 35 44 40 49 " +"53 43 54 43 49 40 42 38 36 43 47 " +"54 52 41 46 41 52 45 43 53 49 " +"54 47 57 50 57 47 45 56 48 55 45 " +"52 48 59 51 57 50 58 50 51 58 " +"56 45 55 58 51 59 59 48 56 " +; + +char *VTK_VECTOR_TEXT_72 = (char *) "16 1.125714 " +"0.26857 -0.07186 0.40571 -0.07186 0.98857 -0.07295 0.98286 -0.06878 1.12571 -0.06878 " +"0.40991 0.43714 0.41714 0.44437 0.97714 0.44329 0.41714 0.57277 0.97714 0.57385 " +"0.40991 0.58000 0.98550 1.02571 1.12571 1.02307 0.26857 1.02615 0.40571 1.02615 " +"1.12000 1.02723 14 4 9 7 0 5 13 5 10 13 " +"5 0 1 8 7 9 9 4 11 10 5 " +"8 6 8 5 4 3 2 7 8 6 " +"14 13 10 12 15 11 3 4 7 4 12 " +"11 " +; + +char *VTK_VECTOR_TEXT_73 = (char *) "4 0.428571 " +"0.42592 -0.07143 0.28571 -0.06878 0.28836 1.02571 0.42857 1.02307 2 1 3 2 3 1 0 " +; + +char *VTK_VECTOR_TEXT_74 = (char *) "27 0.790089 " +"0.45143 -0.09009 0.50857 -0.09009 0.37714 -0.07756 0.58404 -0.07714 0.33143 -0.06086 " +"0.64000 -0.05641 0.26489 -0.01429 0.71429 -0.00117 0.46286 0.03866 0.53714 0.04706 " +"0.74902 0.04857 0.41714 0.04899 0.57772 0.06571 0.21143 0.06772 0.37016 0.07714 " +"0.34498 0.11143 0.77252 0.11143 0.62371 0.11714 0.18705 0.16286 0.32462 0.17429 " +"0.64420 0.22571 0.79009 0.23143 0.18546 0.23714 0.31472 0.25429 0.64836 1.02571 " +"0.78857 1.02307 0.78286 1.02723 25 10 " +"12 7 4 2 11 0 1 8 3 8 1 11 2 8 0 8 2 8 3 9 9 " +"3 12 4 14 6 7 12 5 3 5 12 6 15 13 12 10 17 14 4 11 13 " +"19 18 6 14 15 22 19 23 17 16 20 13 15 19 16 17 10 22 18 19 21 " +"20 16 20 21 24 25 26 24 21 25 24 " +; + +char *VTK_VECTOR_TEXT_75 = (char *) "17 1.155019 " +"0.25714 -0.07186 0.39429 -0.07186 1.15502 -0.07143 0.97143 -0.07140 0.89527 0.28857 " +"0.89143 0.29371 0.89098 0.29429 0.39848 0.30000 0.57714 0.47913 0.40000 0.49126 " +"0.68956 0.56857 0.68571 0.57371 0.68527 0.57429 1.13216 1.02571 0.25714 1.02615 " +"0.39429 1.02615 0.94857 1.02680 15 0 9 14 0 7 9 3 10 8 3 6 10 9 8 16 4 5 6 7 " +"0 1 3 4 6 16 8 12 10 11 12 4 3 2 8 10 12 9 7 8 13 " +"16 12 15 14 9 " +; + +char *VTK_VECTOR_TEXT_76 = (char *) "7 0.941339 " +"0.25714 -0.07186 0.93714 -0.07186 0.94134 0.04857 0.39957 0.06000 0.93714 0.05472 " +"0.25714 1.02615 0.39429 1.02615 5 3 0 1 0 3 5 2 4 1 3 1 4 6 5 3 " +; + +char *VTK_VECTOR_TEXT_77 = (char *) "19 1.302857 " +"0.39164 -0.07143 0.71429 -0.07186 1.17143 -0.07295 0.25714 -0.06878 0.84000 -0.06947 " +"1.16571 -0.06878 1.30286 -0.06878 0.78286 0.09751 0.78857 0.09751 1.16000 0.83018 " +"0.40000 0.84467 0.52151 0.88286 0.52000 0.88739 0.51748 0.89429 0.47580 1.02000 " +"0.25979 1.02571 1.11429 1.02285 1.30286 1.02307 0.46857 1.02680 17 3 10 15 5 6 9 6 " +"5 2 1 11 10 4 8 1 1 7 11 9 16 8 1 8 7 9 8 4 10 " +"18 15 13 11 12 10 3 0 10 13 18 16 9 17 10 11 13 13 14 18 6 " +"17 9 " +; + +char *VTK_VECTOR_TEXT_78 = (char *) "14 1.125714 " +"0.26286 -0.07186 0.39429 -0.07186 0.98286 -0.07295 1.12571 -0.06878 0.98286 0.17231 " +"0.72045 0.31143 0.71678 0.31714 0.72000 0.31207 0.40000 0.78092 0.99122 1.02571 " +"1.12571 1.02307 0.26286 1.02615 0.40571 1.02644 1.12000 1.02723 12 " +"0 8 11 8 0 1 4 3 9 3 4 " +"2 4 5 2 6 7 5 12 6 4 " +"4 6 5 6 12 8 10 13 9 8 12 " +"11 3 10 9 " +; + +char *VTK_VECTOR_TEXT_79 = (char *) "63 1.267054 " +"0.70286 -0.08966 0.77714 -0.08966 0.61143 -0.07605 0.89714 -0.06823 0.97143 -0.04073 " +"0.49143 -0.03229 1.05650 0.00857 0.42286 0.01107 0.70857 0.03605 0.77143 0.03605 " +"0.63429 0.04899 0.84571 0.04899 1.12725 0.07143 0.35044 0.07714 0.92716 0.08286 " +"0.54857 0.08535 0.49143 0.12704 1.17465 0.13429 1.01296 0.15143 0.28571 0.17016 " +"0.43955 0.18571 1.21184 0.20286 0.40784 0.23714 1.08086 0.26000 1.24613 0.30000 " +"0.23109 0.31143 1.10665 0.34571 0.36764 0.36857 0.21295 0.43143 1.11848 0.43714 " +"1.26705 0.43714 0.36193 0.51143 1.11848 0.51714 0.21563 0.54571 0.36991 0.59143 " +"1.25522 0.61429 1.09966 0.63714 0.23236 0.64857 1.23681 0.68857 1.07070 0.71714 " +"0.41143 0.73016 0.26645 0.75143 1.20486 0.76857 0.45561 0.79714 1.02286 0.79270 " +"0.98857 0.82956 0.31429 0.83650 1.16045 0.84286 0.53143 0.86150 0.92000 0.87800 " +"0.35582 0.88857 0.63429 0.90764 0.85143 0.90613 1.10286 0.90956 0.71429 0.92134 " +"0.79429 0.91866 0.43493 0.95714 1.04000 0.95964 0.52000 1.00498 0.96000 1.00327 " +"0.89714 1.02613 0.63429 1.03866 0.77714 1.04705 63 0 8 2 1 9 0 8 10 2 2 10 5 9 1 11 5 " +"16 7 11 3 14 3 11 1 3 4 14 6 14 4 7 16 13 10 15 5 0 " +"9 8 16 5 15 14 6 18 13 20 19 12 18 6 18 17 23 17 21 23 20 " +"22 19 18 12 17 23 21 26 25 19 22 13 16 20 25 27 28 27 25 22 21 " +"24 26 30 29 26 32 35 36 30 26 24 33 34 37 32 29 30 28 31 33 31 " +"28 27 34 33 31 36 38 39 35 32 30 41 37 34 38 42 39 41 40 46 35 " +"38 36 39 47 44 40 43 46 53 45 44 46 43 50 45 57 49 40 41 34 56 " +"50 43 49 59 52 48 56 43 57 45 53 53 44 47 56 48 58 39 42 47 58 " +"51 61 59 49 57 51 58 48 55 52 60 62 54 55 59 60 52 61 54 62 54 " +"61 51 62 55 60 " +; + +char *VTK_VECTOR_TEXT_80 = (char *) "31 1.098661 " +"0.26286 -0.07186 0.40000 -0.07186 0.40420 0.36857 0.41143 0.37580 0.73714 0.37621 " +"0.88571 0.40034 0.98343 0.44857 0.41143 0.50420 0.72571 0.50420 0.40420 0.51143 " +"1.04045 0.51143 0.82947 0.52286 0.88571 0.55296 0.91678 0.58571 1.08252 0.59714 " +"0.93966 0.63143 1.09866 0.68286 0.94966 0.72857 0.93355 0.79143 1.08530 0.80857 " +"0.90857 0.83270 0.86857 0.86893 1.05927 0.87143 0.40528 0.89429 0.82286 0.88899 " +"0.74857 0.89807 1.02439 0.92286 0.96000 0.97641 0.89143 1.00538 0.26286 1.02615 " +"0.74286 1.02680 31 0 9 29 0 2 9 2 7 9 7 3 8 12 11 5 5 11 4 4 " +"8 3 3 7 2 2 0 1 11 8 4 13 12 6 10 13 6 6 12 5 14 " +"15 10 15 14 17 13 10 15 16 17 14 17 19 18 19 17 16 18 19 20 20 " +"27 21 22 20 19 9 23 29 30 25 24 25 30 23 27 20 26 20 22 26 28 " +"24 21 28 21 27 30 29 23 30 24 28 " +; + +char *VTK_VECTOR_TEXT_81 = (char *) "66 1.276398 " +"1.23429 -0.15444 1.13714 -0.11188 0.76571 -0.09009 0.64571 -0.08437 0.84000 -0.08034 " +"0.58286 -0.07034 1.27640 -0.06000 0.93143 -0.05470 0.46857 -0.02322 1.00000 -0.02293 " +"0.38857 0.03330 0.76000 0.03563 0.68000 0.03866 0.83547 0.04857 1.09814 0.04857 " +"0.61714 0.05177 0.87591 0.06571 0.55429 0.07800 0.80000 0.10784 0.49143 0.12132 " +"0.30857 0.12350 0.74115 0.12857 0.98286 0.13189 1.17355 0.14571 0.42857 0.19207 " +"0.86857 0.19927 0.26286 0.20486 1.05355 0.22000 0.77714 0.23134 0.39277 0.26000 " +"1.23177 0.27714 0.23387 0.28286 1.08823 0.30571 0.36420 0.36286 0.20991 0.40286 " +"0.35580 0.43714 1.25866 0.43714 1.11009 0.44286 0.20723 0.51714 1.25252 0.58000 " +"0.36420 0.59714 1.09823 0.60857 0.23470 0.67714 0.38857 0.68947 1.21184 0.73429 " +"1.05143 0.73841 0.42902 0.76857 0.28821 0.80286 1.00571 0.80413 1.17188 0.81429 " +"0.96000 0.84670 0.51429 0.85473 0.34473 0.88286 1.12000 0.88413 0.57714 0.89070 " +"0.88571 0.89070 0.64571 0.91252 0.76571 0.92093 0.42857 0.95759 1.03429 0.95864 " +"0.50286 0.99927 0.96571 0.99800 0.60000 1.03252 0.86857 1.03184 0.69714 1.04705 " +"0.77143 1.04665 66 0 6 1 " +"13 7 16 14 9 1 9 16 7 3 15 " +"5 16 9 14 11 4 13 11 2 4 " +"7 13 4 12 3 11 2 11 3 15 3 " +"12 5 17 8 8 19 10 10 19 20 " +"14 1 6 5 15 17 20 29 26 19 8 " +"17 21 18 28 22 16 14 16 25 18 " +"22 14 27 24 20 19 16 22 25 26 29 " +"31 18 25 28 14 23 27 27 30 32 " +"30 27 23 31 33 34 20 24 29 37 32 " +"30 33 31 29 34 33 38 36 37 30 " +"35 38 33 37 39 41 38 40 42 37 36 " +"39 41 44 45 40 38 35 42 43 47 " +"44 41 39 46 47 43 43 42 40 47 46 " +"52 45 49 48 59 50 48 52 51 58 " +"53 48 49 61 50 59 50 61 55 58 51 " +"60 51 52 46 49 45 44 59 48 53 " +"57 64 56 60 54 62 55 63 57 51 54 " +"60 54 56 62 62 56 64 63 55 61 " +"63 65 57 57 65 64 " +; + +char *VTK_VECTOR_TEXT_82 = (char *) "46 1.225355 " +"0.26857 -0.07186 0.40571 -0.07186 1.05143 -0.07215 1.22359 -0.07143 1.22535 -0.06571 " +"1.17465 0.01429 1.17143 0.01936 1.17098 0.02000 0.84571 0.24343 1.00571 0.27650 " +"0.76571 0.34698 0.91832 0.37429 0.73143 0.37678 0.40991 0.40857 0.68000 0.40437 " +"0.41714 0.41580 0.62286 0.41538 0.84226 0.42571 0.92571 0.44706 0.99429 0.47502 " +"1.07582 0.54000 0.41714 0.54420 0.40991 0.55143 0.80000 0.54764 0.88000 0.56538 " +"1.11641 0.60286 0.94286 0.60439 0.96784 0.63714 1.13823 0.67714 0.98966 0.69429 " +"0.99277 0.74571 1.14134 0.75143 0.97143 0.81493 1.12823 0.82000 0.93143 0.86115 " +"1.10498 0.87714 0.89143 0.88498 0.40991 0.90000 0.41714 0.90723 0.78857 0.90723 " +"1.07011 0.92857 1.01714 0.97579 0.97143 0.99865 0.87429 1.02109 0.26857 1.02615 " +"0.80571 1.02723 46 2 9 8 3 5 2 0 37 " +"44 5 7 2 5 6 7 3 4 5 " +"2 7 9 18 23 17 11 8 9 8 11 " +"10 0 22 37 11 17 10 21 16 23 " +"21 15 16 23 10 17 19 24 18 23 18 " +"24 23 12 10 15 21 13 0 21 22 " +"16 14 23 23 14 12 20 26 19 26 20 " +"27 24 19 26 27 25 29 28 30 29 " +"31 30 28 25 27 20 30 33 32 28 29 " +"25 33 30 31 32 40 34 35 32 33 " +"0 1 13 0 13 21 41 34 40 43 36 " +"42 38 39 45 32 35 40 42 34 41 " +"34 42 36 36 43 39 44 38 45 43 45 " +"39 37 38 44 " +; + +char *VTK_VECTOR_TEXT_83 = (char *) "69 1.081090 " +"0.71429 -0.08966 0.53714 -0.07866 0.82286 -0.07101 0.46286 -0.05959 0.38857 -0.02616 " +"0.94286 -0.01678 0.33714 0.01044 0.64000 0.03866 0.73143 0.04177 1.00571 0.03883 " +"0.56000 0.05177 0.28527 0.06571 0.50857 0.06930 0.83587 0.07143 1.04086 0.08857 " +"0.88127 0.10000 0.43429 0.11330 0.24486 0.13429 0.92613 0.15714 1.07177 0.16286 " +"0.38771 0.16857 0.94134 0.21429 0.36319 0.22571 0.21563 0.23714 1.08109 0.26571 " +"0.21403 0.27714 0.93294 0.27714 0.34857 0.28916 0.91011 0.31714 1.06816 0.32857 " +"0.84000 0.36943 1.04486 0.38000 0.76571 0.39673 0.98286 0.45241 0.53143 0.45748 " +"0.42857 0.49343 0.92571 0.49070 0.37143 0.52535 0.82857 0.53109 0.31044 0.58000 " +"0.53143 0.60899 0.43429 0.65616 0.26244 0.67143 0.39891 0.71143 0.90857 0.71084 " +"0.25295 0.72286 1.04615 0.72286 0.39320 0.76857 0.40359 0.80857 1.03109 0.81429 " +"0.26327 0.82000 0.87429 0.81493 0.45143 0.86956 0.82286 0.87258 0.28930 0.88286 " +"0.98812 0.90000 0.50857 0.90041 0.76571 0.90151 0.57714 0.91563 0.67429 0.91866 " +"0.95443 0.94000 0.35429 0.96099 0.89143 0.98784 0.40000 0.99188 0.83429 1.01470 " +"0.50286 1.03184 0.74857 1.03823 0.57143 1.04437 0.67429 1.04705 67 2 " +"8 0 0 7 1 6 4 16 6 16 11 0 8 7 7 10 1 8 2 13 5 " +"15 13 1 10 3 10 12 3 9 15 5 4 3 12 15 14 18 5 13 2 14 " +"15 9 16 4 12 21 24 26 18 19 21 11 20 17 20 11 16 17 22 23 19 " +"18 14 22 17 20 25 23 27 23 22 27 24 21 19 26 31 28 28 33 30 24 " +"29 26 30 38 32 26 29 31 34 32 38 33 28 31 34 40 35 33 36 30 39 " +"43 42 38 30 36 41 37 35 40 34 38 37 41 39 41 35 40 50 48 54 39 " +"41 43 44 46 49 45 42 43 45 47 50 48 50 47 60 51 55 47 45 43 51 " +"60 53 54 48 61 44 49 51 55 51 49 48 52 61 56 63 52 57 66 59 61 " +"52 63 63 56 65 62 53 60 53 64 57 53 62 64 59 66 58 65 58 67 58 " +"65 56 66 57 64 67 58 68 68 58 66 " +; + +char *VTK_VECTOR_TEXT_84 = (char *) "8 1.045714 " +"0.54286 -0.07186 0.68000 -0.07186 0.53757 0.89429 0.68528 0.89429 0.17714 0.90265 " +"1.04571 0.90265 0.17979 1.02571 1.04571 1.02307 6 0 3 2 3 0 " +"1 6 4 2 6 3 7 6 2 3 " +"3 5 7 " +; + +char *VTK_VECTOR_TEXT_85 = (char *) "32 1.126804 " +"0.65714 -0.09009 0.77143 -0.08705 0.53143 -0.07034 0.85714 -0.07101 0.47429 -0.05070 " +"0.94286 -0.03629 0.38286 0.00704 1.02286 0.02445 0.65714 0.04437 0.78857 0.05320 " +"0.33669 0.06000 0.58286 0.05748 0.84000 0.06823 0.52000 0.08535 1.07070 0.08857 " +"0.89714 0.10154 0.46857 0.13025 1.09966 0.15714 0.29143 0.15866 0.94899 0.17429 " +"0.43177 0.19714 0.27320 0.24286 0.97252 0.26000 1.12680 0.33429 0.26437 0.34000 " +"0.40991 0.34000 0.98134 0.34571 0.98550 1.02571 1.12571 1.02307 0.26857 1.02615 " +"0.40571 1.02615 1.12000 1.02723 30 3 9 1 10 20 18 8 0 " +"1 0 11 2 7 15 5 0 8 11 " +"8 1 9 9 3 12 13 4 2 5 12 " +"3 15 7 19 16 10 6 12 5 15 " +"4 13 6 13 2 11 21 18 20 13 16 " +"6 19 17 22 17 19 14 7 14 19 " +"10 16 20 25 24 21 23 26 22 23 22 " +"17 25 21 20 24 25 29 30 29 25 " +"28 31 27 26 23 27 23 28 27 " +; + +char *VTK_VECTOR_TEXT_86 = (char *) "8 1.148571 " +"0.57714 -0.07025 0.72571 -0.06947 0.64571 0.06079 0.65143 0.06062 0.15429 1.02560 " +"0.30286 1.02531 1.00571 1.02531 1.14857 1.02560 6 0 2 4 3 2 " +"0 3 7 6 1 3 0 3 1 7 " +"2 5 4 " +; + +char *VTK_VECTOR_TEXT_87 = (char *) "14 1.568063 " +"0.45143 -0.07186 0.60000 -0.07017 1.13143 -0.06912 1.27429 -0.06912 0.52571 0.09707 " +"1.20000 0.09787 1.13673 0.38000 0.86857 0.88103 0.16571 1.02562 0.78286 1.02446 " +"1.42857 1.02446 1.56806 1.02571 0.30857 1.02615 0.95429 1.02615 12 " +"2 6 7 6 2 5 1 4 0 7 9 " +"4 11 10 5 3 5 2 8 0 4 " +"13 7 6 9 7 13 7 4 1 11 5 " +"3 12 8 4 " +; + +char *VTK_VECTOR_TEXT_88 = (char *) "14 1.141168 " +"0.15194 -0.07143 1.14117 -0.07143 0.32000 -0.07106 0.97143 -0.07140 0.65143 0.37795 " +"0.74607 0.49429 0.56517 0.50000 0.74286 0.49909 0.74219 0.50000 0.65714 0.61727 " +"0.20016 1.02571 0.96000 1.02568 1.11260 1.02571 0.36571 1.02644 12 " +"0 2 6 3 5 4 5 6 4 5 8 " +"6 5 3 1 5 7 8 4 6 2 " +"9 6 8 12 11 8 6 13 10 13 6 " +"9 11 9 8 " +; + +char *VTK_VECTOR_TEXT_89 = (char *) "12 1.145205 " +"0.71164 -0.07143 0.57143 -0.06878 0.56891 0.39143 0.71787 0.39714 0.65143 0.51441 " +"0.43179 0.85429 0.42857 0.85936 0.42812 0.86000 0.15284 1.02571 0.32000 1.02535 " +"0.98286 1.02464 1.14521 1.02571 10 3 2 " +"1 3 1 0 4 2 3 2 9 8 " +"11 10 4 5 2 4 5 6 7 2 7 " +"9 2 5 7 11 4 3 " +; + +char *VTK_VECTOR_TEXT_90 = (char *) "11 1.040000 " +"0.17714 -0.07186 1.04000 -0.06878 1.04000 0.05164 0.17395 0.06000 0.34602 0.06000 " +"0.84777 0.89429 0.24000 0.89957 1.02395 0.90000 0.23580 1.02000 1.02286 1.02307 " +"0.24000 1.02615 9 0 4 3 1 4 0 1 2 4 3 4 5 5 " +"7 9 4 7 5 5 10 6 10 5 9 6 10 8 " +; + +char *VTK_VECTOR_TEXT_91 = (char *) "8 0.541339 " +"0.24528 -0.37429 0.54025 -0.37429 0.54025 -0.27143 0.38227 -0.26571 0.38286 0.91454 " +"0.54134 0.92286 0.24836 1.02571 0.53714 1.02615 6 0 4 6 3 1 " +"2 1 3 0 0 3 4 5 7 4 " +"6 4 7 " +; + +char *VTK_VECTOR_TEXT_92 = (char *) "5 0.564685 " +"0.46286 -0.09182 0.56000 -0.09256 0.56469 -0.08857 0.14713 1.04286 0.24571 1.04358 3 0 4 3 0 2 4 0 " +"1 2 " +; + +char *VTK_VECTOR_TEXT_93 = (char *) "9 0.465968 " +"0.17100 -0.37429 0.46597 -0.37429 0.17100 -0.27143 0.32571 -0.26723 0.33295 -0.26000 " +"0.33143 0.91201 0.17143 0.91979 0.16991 1.02000 0.46286 1.02615 7 2 0 3 1 " +"3 0 1 4 3 5 4 1 7 6 8 5 8 6 8 5 1 " +; + +char *VTK_VECTOR_TEXT_94 = (char *) "11 0.817005 " +"0.18389 0.44857 0.18857 0.44458 0.32000 0.44686 0.68571 0.44746 0.81143 0.44445 " +"0.81700 0.44857 0.49714 0.88224 0.50286 0.88224 0.44571 1.04090 0.55429 1.04168 " +"0.45143 1.04437 9 0 2 6 0 6 8 7 3 5 4 5 3 2 " +"0 1 10 7 9 10 8 6 10 6 7 9 7 5 " +; + +char *VTK_VECTOR_TEXT_95 = (char *) "4 1.011860 " +"0.11957 -0.37429 1.01186 -0.37429 0.11957 -0.28857 1.01186 -0.28857 2 2 1 3 2 0 1 " +; + +char *VTK_VECTOR_TEXT_96 = (char *) "11 0.486571 " +"0.38857 0.82420 0.48000 0.82420 0.48403 0.82571 0.37714 0.82989 0.38286 0.82575 " +"0.48657 0.83143 0.21296 1.02571 0.38771 1.02571 0.21412 1.03143 0.38286 1.03106 " +"0.37714 1.03295 9 5 1 2 0 3 4 3 10 6 0 1 5 7 " +"3 0 8 6 10 7 0 5 3 7 10 10 7 9 " +; + +char *VTK_VECTOR_TEXT_97 = (char *) "70 0.929303 " +"0.44000 -0.09009 0.50286 -0.08966 0.36571 -0.07756 0.57143 -0.07907 0.92716 -0.07143 " +"0.79429 -0.07106 0.92930 -0.06571 0.62857 -0.06151 0.30857 -0.05514 0.27429 -0.03258 " +"0.68000 -0.03629 0.90748 -0.00857 0.48000 0.01580 0.53143 0.01621 0.42768 0.02571 " +"0.76571 0.02129 0.22073 0.03143 0.61804 0.03714 0.89866 0.03714 0.37130 0.06000 " +"0.20613 0.06571 0.68000 0.07330 0.34538 0.10000 0.71429 0.10809 0.19580 0.11714 " +"0.89295 0.13429 0.33907 0.15714 0.74538 0.16857 0.20319 0.19714 0.36000 0.20914 " +"0.75580 0.22000 0.40000 0.24371 0.22812 0.25429 0.44571 0.26041 0.66286 0.29891 " +"0.28000 0.31258 0.75848 0.31714 0.75429 0.32399 0.33714 0.34657 0.38857 0.36538 " +"0.68571 0.41320 0.75772 0.43714 0.35289 0.48286 0.22093 0.50000 0.22857 0.49470 " +"0.89252 0.50571 0.75580 0.51143 0.22857 0.53547 0.37800 0.54571 0.74286 0.55301 " +"0.88680 0.56286 0.71429 0.58893 0.41714 0.59330 0.42228 0.59714 0.25800 0.60286 " +"0.42286 0.59759 0.65143 0.61959 0.48000 0.62193 0.86498 0.62571 0.53143 0.62950 " +"0.59429 0.62950 0.28187 0.63714 0.84571 0.65486 0.33714 0.68436 0.80571 0.69007 " +"0.37915 0.70571 0.72571 0.72538 0.45714 0.72966 0.54286 0.74152 0.62286 0.74152 70 " +"3 13 1 5 4 15 4 11 15 19 8 " +"2 13 3 7 13 0 1 14 0 12 " +"20 22 24 0 14 2 12 0 13 13 7 " +"17 11 4 6 19 2 14 17 10 21 " +"7 10 17 11 18 15 16 22 20 8 19 " +"9 15 23 21 15 21 10 23 25 27 " +"9 19 16 19 22 16 23 15 25 24 26 " +"28 27 25 30 25 15 18 30 25 36 " +"32 28 26 26 24 22 29 32 26 39 38 " +"31 38 35 29 32 29 35 31 38 29 " +"39 34 40 33 39 31 39 33 34 36 41 " +"37 40 37 41 37 40 34 41 36 25 " +"41 45 46 43 44 47 47 48 54 48 47 " +"44 50 49 46 41 25 45 50 46 45 " +"42 48 44 49 64 51 52 53 55 52 65 " +"63 65 52 55 52 61 48 52 63 61 " +"58 49 50 49 58 62 69 60 56 49 62 " +"64 54 48 61 57 67 65 57 65 55 " +"51 66 56 69 59 60 66 51 64 68 67 " +"57 59 69 57 69 68 57 69 56 66 " +; + +char *VTK_VECTOR_TEXT_98 = (char *) "49 0.932518 " +"0.61143 -0.09009 0.50286 -0.07823 0.36000 -0.07186 0.24000 -0.06878 0.72000 -0.06213 " +"0.45714 -0.05914 0.77143 -0.03188 0.36571 0.01806 0.59429 0.02193 0.83543 0.02571 " +"0.52000 0.02823 0.66857 0.04645 0.46857 0.05179 0.42704 0.08857 0.72956 0.10000 " +"0.88784 0.10571 0.39216 0.14000 0.75641 0.14000 0.91470 0.18000 0.37462 0.19143 " +"0.78665 0.23714 0.36152 0.28857 0.93252 0.29429 0.79236 0.36857 0.93252 0.37429 " +"0.36420 0.38000 0.77294 0.47714 0.39216 0.50000 0.90899 0.50000 0.42473 0.55143 " +"0.73143 0.55546 0.88657 0.55714 0.45883 0.58571 0.67429 0.60498 0.50857 0.61641 " +"0.63429 0.62252 0.56571 0.62991 0.37714 0.64118 0.83429 0.63841 0.37315 0.64857 " +"0.80571 0.66686 0.74286 0.70784 0.46857 0.71355 0.68571 0.72899 0.56571 0.74109 " +"0.61714 0.74152 0.24265 1.02571 0.37143 1.02307 0.36571 1.02723 49 3 25 46 5 1 10 5 12 7 8 0 4 11 6 14 11 " +"4 6 0 8 1 2 7 3 8 4 11 10 1 8 21 3 19 12 13 7 12 " +"5 10 14 9 17 9 14 6 17 15 20 16 7 13 15 18 20 15 17 9 3 " +"7 19 22 20 18 20 22 23 28 26 23 22 24 23 25 3 21 30 43 33 39 " +"46 25 28 23 24 27 39 25 26 31 30 7 16 19 31 26 28 37 32 42 39 " +"27 37 40 30 38 29 37 27 38 30 31 35 33 43 32 34 42 35 45 36 37 " +"29 32 42 34 36 45 35 43 43 30 41 41 30 40 36 45 44 42 36 44 47 " +"48 46 39 47 46 " +; + +char *VTK_VECTOR_TEXT_99 = (char *) "58 0.894057 " +"0.53143 -0.08966 0.59429 -0.08966 0.45714 -0.07673 0.68000 -0.07294 0.72571 -0.05343 " +"0.37714 -0.04331 0.33714 -0.01543 0.78857 -0.01011 0.58286 0.02152 0.29143 0.03016 " +"0.49625 0.03143 0.62857 0.03034 0.83107 0.03714 0.45714 0.04943 0.69270 0.06571 " +"0.26241 0.07143 0.85714 0.07873 0.40457 0.09429 0.72722 0.10571 0.37629 0.14000 " +"0.74437 0.14000 0.22899 0.14571 0.37184 0.15143 0.36930 0.15714 0.88571 0.15295 " +"0.89406 0.19714 0.76571 0.21540 0.21034 0.22571 0.34705 0.25429 0.20420 0.36286 " +"0.34478 0.36857 0.21673 0.45429 0.36252 0.47143 0.75429 0.47269 0.88058 0.48857 " +"0.88319 0.49429 0.38371 0.52286 0.23849 0.52857 0.72000 0.55200 0.86437 0.55714 " +"0.43025 0.58000 0.69714 0.58127 0.28527 0.61429 0.47429 0.60943 0.48571 0.61387 " +"0.83473 0.61429 0.49143 0.61641 0.63429 0.62041 0.54857 0.62950 0.58857 0.62991 " +"0.81296 0.64286 0.32168 0.65429 0.35429 0.67964 0.76571 0.68535 0.44571 0.72327 " +"0.67429 0.72816 0.53714 0.74109 0.60000 0.74109 56 2 13 5 0 8 2 11 4 14 " +"1 8 0 3 11 1 15 23 21 2 10 " +"13 11 8 1 11 3 4 7 14 4 " +"10 2 8 14 7 18 17 6 13 6 5 " +"13 17 15 9 18 12 20 7 12 18 " +"17 9 6 16 20 12 24 20 16 19 15 " +"17 15 19 23 23 19 22 27 28 29 " +"26 20 24 26 24 25 21 28 27 28 21 " +"23 29 30 31 28 30 29 31 32 37 " +"39 38 33 34 39 33 32 31 30 37 32 " +"36 55 49 47 37 36 42 51 42 36 " +"34 35 39 45 41 38 52 40 43 46 43 " +"44 50 41 45 56 49 57 40 51 36 " +"51 40 52 45 38 39 52 43 54 47 41 " +"53 54 46 48 56 48 49 53 41 50 " +"54 48 56 54 43 46 57 49 55 55 47 " +"53 " +; + +char *VTK_VECTOR_TEXT_100 = (char *) "48 0.885714 " +"0.51429 -0.09009 0.56571 -0.08966 0.62857 -0.07673 0.76571 -0.07186 0.88571 -0.06878 " +"0.41143 -0.06486 0.67429 -0.05641 0.36000 -0.03669 0.30286 0.01025 0.76000 0.01806 " +"0.53714 0.02152 0.49714 0.02891 0.60571 0.02891 0.68127 0.07143 0.41714 0.07561 " +"0.23787 0.10571 0.71579 0.11143 0.38241 0.11714 0.74135 0.16286 0.21395 0.16857 " +"0.74286 0.16739 0.74538 0.17429 0.34605 0.20286 0.76420 0.27714 0.19277 0.28857 " +"0.33295 0.28857 0.19277 0.36286 0.76152 0.38571 0.33563 0.39714 0.73355 0.50000 " +"0.22135 0.51143 0.36784 0.51714 0.69714 0.55841 0.42286 0.58686 0.26857 0.60793 " +"0.63429 0.60943 0.48571 0.62151 0.56571 0.62950 0.74857 0.64048 0.75269 0.64857 " +"0.30857 0.65582 0.65714 0.71355 0.40571 0.71756 0.50286 0.74109 0.55429 0.74152 " +"0.75693 1.02571 0.88571 1.02307 0.88000 1.02723 48 0 11 5 12 6 13 " +"1 2 12 7 14 8 10 0 1 14 7 " +"5 10 1 12 6 12 2 0 10 11 " +"8 17 15 9 16 13 14 5 11 4 9 " +"3 6 9 13 9 4 18 16 9 18 " +"15 22 19 17 8 14 22 15 17 20 18 " +"21 21 18 4 19 25 24 21 4 23 " +"25 19 22 26 24 25 26 28 30 39 27 " +"4 26 25 28 39 38 29 29 38 32 " +"27 39 29 30 31 34 32 38 35 31 30 " +"28 40 34 31 36 42 33 23 4 27 " +"35 41 37 33 40 31 40 33 42 41 35 " +"38 42 36 43 37 43 36 44 37 41 " +"37 44 43 46 47 45 39 4 45 4 46 " +"45 " +; + +char *VTK_VECTOR_TEXT_101 = (char *) "65 0.934539 " +"0.54857 -0.09009 0.61143 -0.09009 0.45714 -0.07462 0.71429 -0.07101 0.40571 -0.05641 " +"0.77714 -0.04331 0.33714 -0.01543 0.82857 -0.00670 0.29714 0.02154 0.56000 0.02152 " +"0.60571 0.02193 0.49714 0.03563 0.68159 0.04286 0.88150 0.05429 0.45714 0.05514 " +"0.26286 0.06636 0.72000 0.06759 0.40457 0.10000 0.91216 0.11143 0.77229 0.13429 " +"0.37057 0.15143 0.22034 0.15714 0.36613 0.16286 0.92834 0.16286 0.36359 0.16857 " +"0.91429 0.16966 0.79429 0.18111 0.35177 0.20286 0.20462 0.22571 0.33866 0.28286 " +"0.34286 0.28900 0.93454 0.29429 0.19848 0.35714 0.93295 0.39714 0.34857 0.40134 " +"0.78857 0.40134 0.34134 0.40857 0.79580 0.40857 0.20462 0.41429 0.35429 0.47261 " +"0.22327 0.49429 0.91429 0.48975 0.77143 0.50661 0.38857 0.54057 0.74857 0.54629 " +"0.40725 0.56286 0.25714 0.57001 0.71429 0.58154 0.87070 0.58571 0.45143 0.59759 " +"0.68000 0.60498 0.29296 0.62000 0.49143 0.61681 0.63429 0.62252 0.54857 0.62950 " +"0.59429 0.62991 0.33311 0.66000 0.81143 0.65543 0.77143 0.68607 0.41143 0.70930 " +"0.72000 0.71355 0.45714 0.72605 0.66857 0.73050 0.54286 0.74152 0.60000 0.74152 65 0 9 11 10 " +"1 3 10 3 12 5 12 3 17 8 6 10 0 1 0 11 2 4 14 6 0 " +"10 9 7 16 5 5 16 12 14 2 11 16 7 19 14 4 2 15 8 17 26 " +"18 25 17 6 14 15 27 21 7 13 19 23 25 18 20 15 17 26 19 18 18 " +"19 13 24 20 22 15 20 24 15 24 27 21 27 28 28 29 32 33 37 35 29 " +"28 27 32 29 38 35 34 30 40 39 46 33 35 30 31 33 30 36 38 29 36 " +"29 34 37 41 42 40 38 36 30 34 29 39 40 36 41 37 33 46 43 51 51 " +"49 56 42 48 44 48 42 41 44 48 47 49 51 45 43 46 39 56 49 59 50 " +"62 53 57 47 48 64 55 53 45 51 43 55 63 54 58 47 57 62 50 60 59 " +"52 61 59 49 52 47 60 50 61 54 63 60 47 58 61 52 54 64 53 62 55 " +"64 63 " +; + +char *VTK_VECTOR_TEXT_102 = (char *) "24 0.617143 " +"0.28000 -0.07186 0.40571 -0.07186 0.27472 0.61429 0.41100 0.61429 0.16571 0.61957 " +"0.56000 0.61957 0.56420 0.71714 0.16571 0.72329 0.27472 0.72857 0.41100 0.72857 " +"0.56000 0.72329 0.41034 0.83143 0.27580 0.86000 0.43429 0.89555 0.28613 0.91714 " +"0.46286 0.91294 0.50286 0.92134 0.60000 0.91830 0.31107 0.96857 0.34286 1.00099 " +"0.38857 1.02784 0.61714 1.03086 0.46286 1.04395 0.52571 1.04437 22 0 3 2 " +"3 0 1 4 8 7 9 3 5 2 3 " +"8 5 6 10 4 2 8 9 8 3 " +"8 11 12 11 8 9 12 11 14 9 5 " +"10 13 19 18 13 18 14 13 14 11 " +"23 15 16 15 23 22 21 23 17 15 20 " +"13 19 13 20 20 15 22 23 16 17 " +; + +char *VTK_VECTOR_TEXT_103 = (char *) "71 0.892518 " +"0.46857 -0.39295 0.56571 -0.39563 0.66286 -0.37959 0.35429 -0.36200 0.74286 -0.34616 " +"0.28571 -0.31868 0.80368 -0.30000 0.50857 -0.28437 0.62286 -0.27395 0.44571 -0.27101 " +"0.23387 -0.24286 0.84657 -0.24286 0.69200 -0.23714 0.38171 -0.23143 0.72150 -0.20286 " +"0.87177 -0.18000 0.34916 -0.15714 0.74899 -0.14000 0.22286 -0.13957 0.50857 -0.07295 " +"0.56000 -0.07295 0.43429 -0.05959 0.65143 -0.05070 0.37143 -0.03355 0.69714 -0.02527 " +"0.89252 -0.00857 0.74857 0.01873 0.75042 0.02000 0.75756 0.02000 0.75429 0.02333 " +"0.29143 0.03381 0.53143 0.03866 0.57143 0.03907 0.47429 0.05216 0.64000 0.05787 " +"0.41714 0.08704 0.68000 0.08439 0.23216 0.12857 0.38036 0.12857 0.72784 0.14000 " +"0.35277 0.18571 0.20530 0.20857 0.75538 0.20857 0.19320 0.28286 0.33295 0.29429 " +"0.76991 0.35714 0.19277 0.37429 0.33563 0.40857 0.75109 0.47143 0.35109 0.47714 " +"0.21143 0.47832 0.72784 0.52286 0.23787 0.55143 0.39044 0.55143 0.69868 0.56286 " +"0.66286 0.59393 0.27107 0.60857 0.45143 0.60498 0.48571 0.62041 0.56571 0.62991 " +"0.57714 0.62764 0.58286 0.62723 0.76571 0.63477 0.32000 0.66384 0.68571 0.70213 " +"0.39429 0.71229 0.77408 0.72286 0.88878 0.72286 0.62857 0.72816 0.46857 0.73580 " +"0.56000 0.74152 71 1 7 0 8 4 12 2 8 1 0 " +"9 3 7 1 8 5 13 10 9 0 7 13 5 3 8 2 4 6 14 12 6 " +"12 4 11 15 17 11 14 6 13 3 9 14 11 17 10 16 18 16 10 13 17 " +"25 28 23 21 33 22 32 20 32 19 20 35 23 33 19 31 21 23 35 30 31 " +"19 32 32 22 34 26 29 36 17 15 25 33 21 31 26 36 24 24 34 22 26 " +"27 29 36 34 24 36 29 39 30 38 37 39 28 25 39 29 28 37 40 41 38 " +"40 37 30 35 38 39 25 42 44 46 43 44 43 41 44 41 40 42 25 45 67 " +"51 48 46 47 50 67 48 45 47 46 44 50 49 52 49 50 47 67 62 51 62 " +"54 51 56 52 49 54 62 55 55 64 61 60 61 59 53 56 49 56 53 63 63 " +"57 65 65 58 69 65 57 58 70 59 61 59 69 58 64 55 62 67 45 25 67 " +"66 62 63 53 57 68 70 61 59 70 69 64 68 61 " +; + +char *VTK_VECTOR_TEXT_104 = (char *) "27 0.889502 " +"0.24571 -0.07186 0.37143 -0.07186 0.76000 -0.07186 0.88571 -0.07186 0.37605 0.40286 " +"0.37756 0.40857 0.75538 0.46000 0.88950 0.47714 0.38899 0.48286 0.74538 0.51714 " +"0.88152 0.54571 0.42439 0.55143 0.72000 0.56914 0.47429 0.59355 0.68000 0.60331 " +"0.85996 0.61429 0.53143 0.61748 0.61143 0.62379 0.37714 0.63983 0.81714 0.67296 " +"0.45714 0.70045 0.77714 0.70213 0.50857 0.72437 0.68571 0.73538 0.58857 0.74152 " +"0.24571 1.02615 0.37143 1.02615 25 0 " +"4 25 4 18 25 6 2 3 9 6 7 7 6 3 18 8 11 18 11 13 9 " +"15 12 12 19 14 10 9 7 18 13 20 8 4 5 15 9 10 4 0 1 18 " +"4 8 17 24 16 19 21 14 14 23 17 20 16 22 16 20 13 19 12 15 17 " +"23 24 23 14 21 24 22 16 18 26 25 " +; + +char *VTK_VECTOR_TEXT_105 = (char *) "8 0.377143 " +"0.25143 -0.07186 0.37714 -0.07186 0.25143 0.72329 0.37714 0.72329 0.25143 0.87403 " +"0.37714 0.87403 0.25143 1.02615 0.37714 1.02615 4 3 2 0 3 0 " +"1 4 5 6 7 6 5 " +; + +char *VTK_VECTOR_TEXT_106 = (char *) "18 0.375625 " +"0.14857 -0.39563 0.22286 -0.39252 0.07383 -0.38000 0.26857 -0.37914 0.31429 -0.34989 " +"0.34036 -0.31714 0.18857 -0.27462 0.10286 -0.26950 0.36109 -0.26571 0.22331 -0.24857 " +"0.37563 -0.16857 0.24152 -0.16286 0.24571 0.72329 0.37143 0.72329 0.24571 0.87403 " +"0.37143 0.87403 0.24571 1.02615 0.37143 1.02615 14 1 6 0 3 6 1 4 6 " +"3 9 10 11 7 0 6 7 2 0 " +"9 5 8 5 9 4 6 4 9 9 8 " +"10 11 10 12 13 12 10 14 15 16 " +"17 16 15 " +; + +char *VTK_VECTOR_TEXT_107 = (char *) "15 0.897876 " +"0.37450 -0.07143 0.89788 -0.07143 0.24571 -0.06878 0.73714 -0.07035 0.38004 0.24286 " +"0.68421 0.25429 0.68045 0.26000 0.68000 0.26064 0.46857 0.32924 0.38286 0.40888 " +"0.57152 0.42571 0.69714 0.72283 0.86359 0.72286 0.24836 1.02571 0.37714 1.02307 13 2 9 13 4 2 0 5 8 3 5 " +"3 1 5 6 7 9 14 13 11 9 10 5 7 8 7 10 8 8 9 4 12 " +"11 10 9 8 10 2 4 9 " +; + +char *VTK_VECTOR_TEXT_108 = (char *) "4 0.371429 " +"0.36878 -0.07143 0.24000 -0.06878 0.24265 1.02571 0.37143 1.02307 2 1 3 2 3 1 0 " +; + +char *VTK_VECTOR_TEXT_109 = (char *) "45 1.318074 " +"0.24571 -0.07186 0.37143 -0.07186 0.72000 -0.07295 1.18857 -0.07186 1.31429 -0.07186 " +"0.71429 -0.06878 0.84571 -0.06878 0.37866 0.37429 0.84723 0.40286 0.85335 0.46000 " +"0.39109 0.48286 0.71277 0.48286 1.18437 0.48286 1.31807 0.52286 0.87787 0.53429 " +"0.41143 0.53493 1.17395 0.54000 0.43582 0.56857 0.68784 0.56857 1.14857 0.58403 " +"0.93143 0.59188 0.66286 0.59829 0.82857 0.60801 0.51009 0.61429 0.36571 0.61924 " +"0.63429 0.61470 1.09714 0.61580 1.29355 0.62000 0.56000 0.62420 1.00571 0.62152 " +"1.06286 0.62379 0.41311 0.67143 0.78857 0.66975 1.25561 0.67714 0.90857 0.68902 " +"0.74286 0.70784 1.20571 0.71355 0.35735 0.72286 0.24571 0.72329 0.50286 0.72498 " +"0.99429 0.73109 1.16000 0.73109 0.67429 0.73470 0.57714 0.74109 1.05143 0.74152 43 6 5 2 0 7 38 8 11 5 7 0 1 8 5 6 12 3 4 12 " +"13 16 9 11 8 15 17 24 11 22 18 22 20 34 11 9 22 14 22 9 13 " +"12 4 24 17 31 7 10 38 10 15 24 16 27 19 32 21 18 24 37 38 20 " +"22 14 10 24 38 27 16 13 31 23 39 26 41 30 30 40 29 32 18 22 41 " +"19 36 34 29 40 19 41 26 36 19 33 23 31 17 35 21 32 29 34 20 39 " +"28 43 33 19 27 43 28 42 25 42 28 28 39 23 42 25 21 42 21 35 44 " +"30 41 30 44 40 " +; + +char *VTK_VECTOR_TEXT_110 = (char *) "38 0.889911 " +"0.24571 -0.07186 0.37143 -0.07186 0.75429 -0.07186 0.88571 -0.07186 0.24152 -0.06571 " +"0.37563 -0.06571 0.75009 -0.06571 0.88991 -0.06571 0.37605 0.40286 0.37866 0.41429 " +"0.38134 0.44857 0.74665 0.48286 0.88950 0.48286 0.39849 0.51143 0.73229 0.54000 " +"0.88420 0.54000 0.43011 0.56286 0.46286 0.58893 0.69714 0.58725 0.87008 0.59143 " +"0.51580 0.61429 0.65143 0.61343 0.36571 0.62031 0.56571 0.62420 0.60571 0.62379 " +"0.61714 0.62152 0.62286 0.62109 0.83955 0.64857 0.40725 0.66571 0.79429 0.69179 " +"0.45714 0.70213 0.24152 0.71714 0.75429 0.71355 0.35735 0.72286 0.24571 0.72329 " +"0.52571 0.73050 0.68571 0.73538 0.58857 0.74152 36 1 4 0 " +"3 6 2 1 5 4 3 7 6 6 12 " +"11 11 15 14 6 7 12 22 16 28 " +"10 8 9 13 22 10 10 22 8 8 4 " +"5 15 11 12 8 22 4 14 15 19 " +"14 19 18 25 26 24 16 22 13 16 17 " +"28 30 28 17 27 18 19 32 23 24 " +"29 18 27 30 20 35 18 32 21 31 4 " +"22 20 30 17 32 26 21 32 24 26 " +"32 18 29 34 31 33 33 31 22 35 23 " +"37 23 35 20 36 23 32 37 23 36 " +; + +char *VTK_VECTOR_TEXT_111 = (char *) "65 0.938661 " +"0.53143 -0.08966 0.59429 -0.09009 0.69143 -0.07101 0.41143 -0.06213 0.76571 -0.03759 " +"0.34857 -0.02821 0.81714 -0.00099 0.29143 0.02154 0.54286 0.02193 0.60571 0.02420 " +"0.50857 0.02823 0.64571 0.03563 0.86331 0.04857 0.45143 0.05216 0.25714 0.06636 " +"0.70857 0.07330 0.89229 0.09429 0.40000 0.09597 0.22771 0.12286 0.38036 0.12286 " +"0.37714 0.12793 0.37669 0.12857 0.75473 0.12857 0.76657 0.15143 0.77101 0.16286 " +"0.77355 0.16857 0.92319 0.18000 0.20764 0.18571 0.34816 0.19714 0.78605 0.20857 " +"0.33563 0.26000 0.19320 0.28286 0.93823 0.28857 0.79848 0.29429 0.33295 0.36286 " +"0.93866 0.37429 0.19580 0.39714 0.79538 0.39714 0.35277 0.47143 0.92319 0.47143 " +"0.21184 0.48286 0.77143 0.48947 0.23216 0.54000 0.38742 0.54000 0.89927 0.54000 " +"0.74286 0.54057 0.71429 0.57275 0.42286 0.57813 0.87678 0.58000 0.27429 0.60984 " +"0.48571 0.61580 0.64571 0.61580 0.54286 0.62950 0.58857 0.62950 0.60000 0.62723 " +"0.60571 0.62680 0.83225 0.63714 0.31025 0.64857 0.34857 0.67864 0.75429 0.69641 " +"0.40000 0.70784 0.45143 0.72605 0.68571 0.72538 0.53714 0.74152 0.60000 0.74109 65 11 4 15 8 " +"0 1 17 7 5 11 2 4 2 9 1 8 1 9 0 8 10 0 10 3 2 " +"11 9 3 13 5 10 13 3 6 12 22 6 15 4 15 6 22 18 28 27 17 " +"5 13 14 19 18 16 23 22 19 7 17 7 19 14 18 19 21 24 23 25 25 " +"23 16 19 20 21 16 22 12 26 29 25 27 30 31 26 25 16 28 18 21 29 " +"26 33 30 27 28 31 34 36 33 32 35 26 32 33 34 31 30 33 35 37 40 " +"36 34 37 39 41 40 38 42 39 37 35 47 57 43 38 40 34 43 49 42 46 " +"45 56 39 44 41 41 48 45 43 57 49 41 44 48 43 42 38 57 47 58 54 " +"55 53 56 45 48 50 60 47 64 63 53 64 55 62 53 63 52 59 62 51 61 " +"60 50 64 53 55 51 62 55 52 61 50 59 46 56 61 52 63 46 59 51 58 " +"47 60 " +; + +char *VTK_VECTOR_TEXT_112 = (char *) "49 0.935625 " +"0.24571 -0.37740 0.37454 -0.37429 0.56000 -0.08966 0.66857 -0.07966 0.47429 -0.06657 " +"0.75429 -0.04331 0.37584 -0.00286 0.80571 -0.00704 0.38286 0.00159 0.59429 0.02152 " +"0.52000 0.02891 0.63429 0.02992 0.85964 0.05429 0.45143 0.06725 0.70857 0.07330 " +"0.39787 0.13429 0.39514 0.14000 0.39216 0.14571 0.76213 0.14571 0.90538 0.14571 " +"0.37462 0.19714 0.78327 0.20857 0.92680 0.22571 0.36379 0.27143 0.36152 0.28286 " +"0.79580 0.29429 0.93563 0.30000 0.36379 0.36857 0.79580 0.36857 0.92680 0.43714 " +"0.78286 0.45547 0.38286 0.47232 0.75429 0.52921 0.41714 0.54057 0.88571 0.56444 " +"0.44571 0.57582 0.69143 0.59964 0.51429 0.62213 0.65143 0.62213 0.36571 0.63051 " +"0.56571 0.63563 0.82704 0.64857 0.45714 0.70784 0.74857 0.70657 0.24571 0.72329 " +"0.36000 0.72329 0.51429 0.73177 0.69143 0.72899 0.62286 0.74152 49 0 1 6 0 24 44 3 9 2 2 10 4 3 11 9 4 " +"13 8 10 2 9 11 5 14 11 3 5 7 14 5 4 10 13 14 12 18 14 " +"7 12 0 20 24 15 8 13 8 15 6 19 18 12 18 19 21 21 22 25 24 " +"27 44 17 15 16 22 21 19 28 25 26 22 26 25 6 15 17 29 30 28 23 " +"24 20 20 6 17 29 28 26 30 34 32 27 31 44 0 6 20 31 39 44 32 " +"41 36 41 32 34 31 33 39 42 37 46 39 35 42 34 30 29 39 33 35 38 " +"47 40 35 37 42 47 38 43 40 46 37 43 36 41 39 45 44 46 40 48 48 " +"40 47 38 36 43 " +; + +char *VTK_VECTOR_TEXT_113 = (char *) "52 0.885714 " +"0.76000 -0.37740 0.88571 -0.37740 0.56571 -0.09009 0.45143 -0.07673 0.65143 -0.06784 " +"0.36000 -0.03188 0.70857 -0.03465 0.75580 -0.00286 0.74857 0.00454 0.29714 0.02418 " +"0.54286 0.02152 0.57714 0.02193 0.58857 0.02420 0.59429 0.02462 0.47429 0.03927 " +"0.64571 0.04371 0.43302 0.06571 0.70670 0.09429 0.23914 0.11143 0.38607 0.11714 " +"0.38286 0.12221 0.38241 0.12286 0.75008 0.17429 0.21101 0.19143 0.34748 0.20857 " +"0.76723 0.25429 0.19848 0.26000 0.76723 0.27143 0.33605 0.28286 0.76991 0.28857 " +"0.19580 0.37429 0.33866 0.40286 0.75429 0.45277 0.21101 0.47143 0.35429 0.47832 " +"0.73143 0.51301 0.39846 0.56286 0.69296 0.56857 0.25669 0.58571 0.45143 0.60902 " +"0.61714 0.62213 0.49143 0.62723 0.76571 0.62602 0.29330 0.63714 0.56571 0.63522 " +"0.72403 0.67143 0.36571 0.69641 0.66286 0.71355 0.77408 0.72286 0.88571 0.72329 " +"0.44571 0.72966 0.56000 0.74152 52 29 27 25 " +"49 42 32 22 7 25 3 13 11 2 13 " +"3 4 13 2 6 15 4 11 13 12 " +"3 14 5 13 4 15 10 3 11 15 6 " +"8 14 3 10 15 8 17 24 23 18 " +"5 16 9 17 8 22 14 16 5 9 19 " +"18 19 20 21 18 19 21 42 35 32 " +"7 22 8 16 19 9 49 48 42 7 0 " +"1 24 18 21 23 24 26 26 28 30 " +"28 26 24 30 31 33 34 33 31 31 30 " +"28 33 34 38 49 29 25 36 43 38 " +"49 25 7 35 42 37 37 45 40 45 37 " +"42 29 49 32 45 47 40 39 43 36 " +"46 39 50 40 47 44 43 39 46 36 38 " +"34 41 44 51 41 50 39 49 7 1 " +"50 41 51 51 44 47 " +; + +char *VTK_VECTOR_TEXT_114 = (char *) "24 0.667686 " +"0.24571 -0.07186 0.37143 -0.07186 0.24152 -0.06571 0.37563 -0.06571 0.37563 0.38000 " +"0.39748 0.50000 0.41964 0.54571 0.44740 0.57429 0.61714 0.57787 0.62286 0.57880 " +"0.48000 0.59294 0.57714 0.59395 0.51429 0.60134 0.36571 0.61385 0.41868 0.68857 " +"0.66769 0.69429 0.66542 0.70000 0.24152 0.71714 0.35735 0.72286 0.24571 0.72329 " +"0.46286 0.72436 0.60000 0.73109 0.51429 0.74109 0.55429 0.74109 22 1 2 0 " +"1 3 2 4 2 3 5 6 13 5 13 " +"17 21 11 15 2 4 17 4 5 17 " +"6 7 13 18 17 13 7 10 14 13 7 " +"14 14 12 20 11 21 12 9 15 11 " +"12 14 10 19 17 18 20 12 22 8 9 " +"11 21 15 16 22 12 23 23 12 21 " +; + +char *VTK_VECTOR_TEXT_115 = (char *) "63 0.849502 " +"0.56000 -0.09009 0.46286 -0.08705 0.65143 -0.07395 0.37143 -0.06723 0.70444 -0.05429 " +"0.33143 -0.04943 0.76057 -0.02000 0.28571 -0.01813 0.79582 0.01429 0.50286 0.02152 " +"0.55429 0.02152 0.56571 0.02379 0.57714 0.02420 0.24571 0.02636 0.64000 0.04200 " +"0.41714 0.04371 0.22200 0.06571 0.38286 0.06725 0.68384 0.07714 0.83580 0.08286 " +"0.69927 0.10000 0.34200 0.12286 0.84950 0.14000 0.71009 0.15714 0.19109 0.16286 " +"0.19370 0.16857 0.32000 0.18615 0.69864 0.19143 0.84723 0.20286 0.65714 0.22784 " +"0.83641 0.24286 0.80956 0.28857 0.34286 0.32371 0.75429 0.33641 0.30286 0.34421 " +"0.69143 0.36327 0.25714 0.38445 0.22645 0.43714 0.41143 0.44538 0.37587 0.46571 " +"0.35885 0.48286 0.21295 0.49429 0.69143 0.50460 0.34478 0.51714 0.81977 0.52286 " +"0.67514 0.55143 0.35216 0.56286 0.22034 0.56857 0.64000 0.59465 0.38286 0.59829 " +"0.79429 0.61016 0.24000 0.61573 0.42857 0.62041 0.58286 0.62252 0.48571 0.62991 " +"0.74689 0.67143 0.28571 0.67258 0.70286 0.70045 0.33714 0.70613 0.38857 0.72538 " +"0.61714 0.73050 0.47429 0.74109 0.54286 0.74109 61 2 12 0 10 1 12 12 2 14 14 4 6 7 17 13 0 " +"12 1 4 14 2 11 10 12 15 3 1 3 15 5 9 1 10 14 6 18 15 " +"1 9 17 5 15 6 8 18 5 17 7 21 16 13 16 21 24 18 8 20 23 " +"28 27 21 13 17 19 22 23 26 25 21 21 25 24 20 19 23 19 20 8 28 " +"23 22 27 33 29 28 30 27 31 27 30 27 31 33 29 38 32 35 29 33 29 " +"35 38 34 38 36 32 38 34 36 40 37 39 36 38 41 43 47 43 41 37 36 " +"39 40 50 45 42 43 37 40 47 46 51 46 47 43 53 60 54 45 57 48 52 " +"58 49 45 55 57 51 49 56 49 51 46 50 42 44 48 57 53 56 49 58 55 " +"45 50 52 59 58 59 52 61 52 54 61 60 53 57 61 54 62 62 54 60 " +; + +char *VTK_VECTOR_TEXT_116 = (char *) "24 0.551972 " +"0.42286 -0.08395 0.48000 -0.08437 0.55197 -0.07143 0.33714 -0.05914 0.29901 -0.02571 " +"0.28041 0.00857 0.44571 0.04816 0.44453 0.04857 0.53714 0.04344 0.44000 0.05008 " +"0.41057 0.07714 0.26748 0.10000 0.40152 0.11714 0.26597 0.61429 0.40260 0.61429 " +"0.17143 0.61957 0.53450 0.62000 0.53866 0.71714 0.53450 0.72286 0.17143 0.72329 " +"0.26597 0.72857 0.40260 0.72857 0.26748 0.91714 0.40000 0.99545 22 10 5 4 " +"6 7 9 10 4 3 10 3 9 8 6 " +"1 6 9 1 5 10 11 8 1 2 " +"0 9 3 11 12 13 0 1 9 10 12 " +"11 17 18 16 14 13 12 21 14 16 " +"18 21 16 22 20 23 20 13 14 15 20 " +"19 15 13 20 20 14 21 23 20 21 " +; + +char *VTK_VECTOR_TEXT_117 = (char *) "38 0.884197 " +"0.48571 -0.09009 0.53714 -0.09009 0.41714 -0.07673 0.77143 -0.07295 0.88000 -0.07186 " +"0.63518 -0.06571 0.76571 -0.06878 0.88420 -0.06571 0.34857 -0.04771 0.70857 -0.01846 " +"0.29901 -0.00857 0.27429 0.02730 0.52000 0.02723 0.56000 0.02764 0.47339 0.03714 " +"0.76000 0.03684 0.61714 0.04135 0.43943 0.05429 0.65143 0.05787 0.41330 0.07714 " +"0.25143 0.08437 0.69143 0.08704 0.39343 0.10571 0.38899 0.11714 0.71473 0.11714 " +"0.38645 0.12286 0.73294 0.15714 0.23848 0.17429 0.37563 0.17429 0.75009 0.26000 " +"0.23848 0.71714 0.37295 0.71714 0.75009 0.71714 0.88420 0.71714 0.24265 0.72286 " +"0.36878 0.72286 0.75429 0.72329 0.88000 0.72329 36 6 3 15 " +"3 7 15 3 4 7 8 17 10 2 14 " +"17 2 17 8 5 13 1 19 11 10 " +"9 16 5 12 1 13 0 12 2 12 0 " +"1 9 18 16 13 5 16 14 2 12 " +"11 22 20 21 18 9 15 21 9 21 15 " +"24 20 28 27 11 19 22 24 7 26 " +"19 10 17 24 15 7 25 22 23 20 22 " +"25 20 25 28 26 7 29 31 30 27 " +"33 29 7 34 31 35 34 30 31 31 27 " +"28 36 33 37 32 29 33 36 32 33 " +; + +char *VTK_VECTOR_TEXT_118 = (char *) "12 0.884203 " +"0.45714 -0.06947 0.58857 -0.07103 0.52000 0.09808 0.52571 0.09808 0.47580 0.23714 " +"0.16151 0.71714 0.88420 0.71714 0.16427 0.72286 0.30286 0.71951 0.74857 0.72090 " +"0.88145 0.72286 0.29714 0.72395 10 4 0 " +"2 0 4 5 3 2 0 1 3 0 " +"3 6 9 8 11 5 9 6 10 7 5 " +"11 8 5 4 3 1 6 " +; + +char *VTK_VECTOR_TEXT_119 = (char *) "14 1.231638 " +"0.39429 -0.07215 0.52571 -0.07215 0.97714 -0.07252 0.84571 -0.06947 0.45714 0.10650 " +"0.46286 0.10650 0.92000 0.12073 0.69143 0.52785 0.15122 0.72286 0.28571 0.72090 " +"0.62857 0.72243 0.76193 0.72286 1.23164 0.72286 1.10857 0.72329 12 " +"2 6 3 0 4 8 3 6 7 5 0 " +"1 12 13 6 5 4 0 7 10 5 " +"11 10 7 7 5 1 11 7 6 4 9 " +"8 12 6 2 " +; + +char *VTK_VECTOR_TEXT_120 = (char *) "17 0.882498 " +"0.15697 -0.07143 0.88073 -0.07143 0.15473 -0.06571 0.31429 -0.07035 0.72571 -0.07140 " +"0.88250 -0.06571 0.52000 0.22529 0.52571 0.22529 0.60332 0.33429 0.43534 0.34000 " +"0.51429 0.45005 0.17188 0.71714 0.86812 0.71714 0.17412 0.72286 0.86588 0.72286 " +"0.32571 0.72395 0.71429 0.72395 15 1 5 4 2 6 9 8 6 7 3 2 0 4 8 7 6 2 3 4 " +"5 8 8 10 6 10 9 6 15 11 9 16 10 8 15 9 10 12 16 8 13 " +"11 15 16 12 14 " +; + +char *VTK_VECTOR_TEXT_121 = (char *) "16 0.888063 " +"0.34286 -0.39563 0.24000 -0.38043 0.41714 -0.37641 0.45714 -0.34956 0.50436 -0.29429 " +"0.32000 -0.26680 0.22286 -0.25766 0.36652 -0.25429 0.54371 -0.22000 0.41293 -0.21429 " +"0.46848 -0.07714 0.53714 0.09292 0.16998 0.72286 0.30857 0.71999 0.76000 0.72246 " +"0.88806 0.72286 14 2 7 0 0 5 1 5 0 7 " +"6 1 5 3 7 2 7 3 9 3 4 " +"9 9 8 10 9 4 8 10 11 12 " +"11 15 14 11 8 15 11 10 8 11 13 " +"12 " +; + +char *VTK_VECTOR_TEXT_122 = (char *) "17 0.872768 " +"0.17714 -0.07295 0.86857 -0.07186 0.17143 -0.06878 0.87277 -0.06571 0.17146 0.03714 " +"0.34212 0.03714 0.87277 0.03714 0.34132 0.04286 0.44000 0.04327 0.86857 0.04329 " +"0.20571 0.61689 0.67062 0.62000 0.84991 0.64286 0.20152 0.71714 0.84991 0.71714 " +"0.20571 0.72329 0.84571 0.72329 15 2 0 4 0 1 9 0 5 4 1 3 9 5 0 8 5 7 4 0 " +"9 8 3 6 9 12 14 11 11 14 16 11 16 10 12 11 7 11 4 7 10 " +"15 13 15 10 16 " +; + +char *VTK_VECTOR_TEXT_123 = (char *) "39 0.611429 " +"0.61143 -0.39454 0.46857 -0.38420 0.40000 -0.34154 0.61143 -0.27975 0.35748 -0.27143 " +"0.52000 -0.26992 0.47787 -0.23143 0.46748 -0.19143 0.34134 -0.18000 0.46395 0.04286 " +"0.33563 0.05429 0.45184 0.14571 0.32109 0.16286 0.29143 0.21832 0.42286 0.22716 " +"0.25143 0.24943 0.18857 0.26528 0.39429 0.26698 0.31413 0.32286 0.18857 0.38615 " +"0.25143 0.40073 0.41188 0.40286 0.29143 0.42775 0.43514 0.44286 0.32823 0.49429 " +"0.45866 0.52286 0.34134 0.60286 0.46705 0.80857 0.34478 0.84857 0.47748 0.87143 " +"0.35748 0.91143 0.50286 0.90821 0.50793 0.91143 0.50857 0.91188 0.61143 0.92814 " +"0.40571 0.99511 0.46857 1.03294 0.53143 1.04437 0.61143 1.04329 37 0 3 5 6 2 5 2 6 4 0 5 1 2 " +"1 5 4 7 8 7 4 6 8 9 10 10 11 12 9 8 7 11 10 9 12 " +"17 13 12 14 17 14 12 11 18 15 13 16 15 20 18 13 17 16 20 19 15 " +"18 20 21 22 18 22 21 24 22 20 18 24 25 26 23 24 21 25 24 23 26 " +"27 28 27 26 25 28 29 30 29 28 27 30 29 35 31 32 33 36 31 33 31 " +"36 29 36 33 37 34 38 37 35 29 36 34 37 33 " +; + +char *VTK_VECTOR_TEXT_124 = (char *) "4 0.388571 " +"0.28571 -0.39454 0.38857 -0.39563 0.28571 1.04329 0.38857 1.04437 2 3 2 0 3 0 1 " +; + +char *VTK_VECTOR_TEXT_125 = (char *) "35 0.606299 " +"0.17714 -0.39454 0.31429 -0.38613 0.39429 -0.33832 0.17714 -0.27975 0.27429 -0.26784 " +"0.43681 -0.26000 0.31070 -0.23714 0.44950 -0.19714 0.32723 -0.15714 0.45295 0.04857 " +"0.33295 0.11714 0.46857 0.16404 0.35387 0.19714 0.51429 0.23258 0.56000 0.25681 " +"0.39429 0.26403 0.60630 0.26571 0.47702 0.32857 0.41714 0.36742 0.60571 0.38615 " +"0.54857 0.39927 0.50171 0.43143 0.36086 0.43714 0.46748 0.50000 0.32991 0.56857 " +"0.45252 0.78571 0.32723 0.80286 0.31748 0.87143 0.29143 0.90893 0.43470 0.91714 " +"0.17714 0.92814 0.41629 0.95714 0.36571 1.01107 0.32000 1.03294 0.17714 1.04329 33 4 3 0 2 4 1 6 7 8 1 4 0 2 6 4 5 " +"6 2 6 5 7 8 9 10 9 8 7 10 11 12 15 13 17 11 10 9 12 " +"11 15 13 14 17 13 15 11 20 17 14 20 14 16 19 20 16 21 17 20 17 " +"21 18 22 23 24 22 18 21 23 22 21 25 26 24 25 24 23 29 27 26 29 " +"26 25 27 31 28 31 27 29 32 28 31 28 33 30 33 34 30 33 28 32 " +; + +char *VTK_VECTOR_TEXT_126 = (char *) "25 0.971429 " +"0.73714 0.34462 0.20759 0.35143 0.21143 0.34662 0.81143 0.34723 0.66857 0.35756 " +"0.86857 0.36135 0.25143 0.38115 0.90857 0.38086 0.52000 0.41580 0.32571 0.42723 " +"0.97140 0.43143 0.37143 0.43866 0.42286 0.44093 0.79429 0.49009 0.21028 0.50000 " +"0.72571 0.49681 0.86286 0.50930 0.25714 0.54115 0.92571 0.54759 0.32571 0.57470 " +"0.50286 0.57621 0.96571 0.58154 0.97143 0.58073 0.38857 0.58680 0.44000 0.58723 23 1 17 14 8 4 15 13 5 7 6 1 2 5 " +"13 3 1 6 17 3 13 0 16 10 18 15 4 0 13 7 16 15 0 13 8 " +"20 12 12 20 11 9 17 6 10 16 7 17 9 19 22 21 18 11 20 24 11 " +"19 9 20 8 15 11 24 23 22 18 10 11 23 19 " +; + + +// Construct object with no string set and backing enabled. +VTKViewer_VectorText::VTKViewer_VectorText() +{ + this->Text = NULL; + + this->Letters[33] = VTK_VECTOR_TEXT_33; + this->Letters[34] = VTK_VECTOR_TEXT_34; + this->Letters[35] = VTK_VECTOR_TEXT_35; + this->Letters[36] = VTK_VECTOR_TEXT_36; + this->Letters[37] = VTK_VECTOR_TEXT_37; + this->Letters[38] = VTK_VECTOR_TEXT_38; + this->Letters[39] = VTK_VECTOR_TEXT_39; + this->Letters[40] = VTK_VECTOR_TEXT_40; + this->Letters[41] = VTK_VECTOR_TEXT_41; + this->Letters[42] = VTK_VECTOR_TEXT_42; + this->Letters[43] = VTK_VECTOR_TEXT_43; + this->Letters[44] = VTK_VECTOR_TEXT_44; + this->Letters[45] = VTK_VECTOR_TEXT_45; + this->Letters[46] = VTK_VECTOR_TEXT_46; + this->Letters[47] = VTK_VECTOR_TEXT_47; + this->Letters[48] = VTK_VECTOR_TEXT_48; + this->Letters[49] = VTK_VECTOR_TEXT_49; + this->Letters[50] = VTK_VECTOR_TEXT_50; + this->Letters[51] = VTK_VECTOR_TEXT_51; + this->Letters[52] = VTK_VECTOR_TEXT_52; + this->Letters[53] = VTK_VECTOR_TEXT_53; + this->Letters[54] = VTK_VECTOR_TEXT_54; + this->Letters[55] = VTK_VECTOR_TEXT_55; + this->Letters[56] = VTK_VECTOR_TEXT_56; + this->Letters[57] = VTK_VECTOR_TEXT_57; + this->Letters[58] = VTK_VECTOR_TEXT_58; + this->Letters[59] = VTK_VECTOR_TEXT_59; + this->Letters[60] = VTK_VECTOR_TEXT_60; + this->Letters[61] = VTK_VECTOR_TEXT_61; + this->Letters[62] = VTK_VECTOR_TEXT_62; + this->Letters[63] = VTK_VECTOR_TEXT_63; + this->Letters[64] = VTK_VECTOR_TEXT_64; + this->Letters[65] = VTK_VECTOR_TEXT_65; + this->Letters[66] = VTK_VECTOR_TEXT_66; + this->Letters[67] = VTK_VECTOR_TEXT_67; + this->Letters[68] = VTK_VECTOR_TEXT_68; + this->Letters[69] = VTK_VECTOR_TEXT_69; + this->Letters[70] = VTK_VECTOR_TEXT_70; + this->Letters[71] = VTK_VECTOR_TEXT_71; + this->Letters[72] = VTK_VECTOR_TEXT_72; + this->Letters[73] = VTK_VECTOR_TEXT_73; + this->Letters[74] = VTK_VECTOR_TEXT_74; + this->Letters[75] = VTK_VECTOR_TEXT_75; + this->Letters[76] = VTK_VECTOR_TEXT_76; + this->Letters[77] = VTK_VECTOR_TEXT_77; + this->Letters[78] = VTK_VECTOR_TEXT_78; + this->Letters[79] = VTK_VECTOR_TEXT_79; + this->Letters[80] = VTK_VECTOR_TEXT_80; + this->Letters[81] = VTK_VECTOR_TEXT_81; + this->Letters[82] = VTK_VECTOR_TEXT_82; + this->Letters[83] = VTK_VECTOR_TEXT_83; + this->Letters[84] = VTK_VECTOR_TEXT_84; + this->Letters[85] = VTK_VECTOR_TEXT_85; + this->Letters[86] = VTK_VECTOR_TEXT_86; + this->Letters[87] = VTK_VECTOR_TEXT_87; + this->Letters[88] = VTK_VECTOR_TEXT_88; + this->Letters[89] = VTK_VECTOR_TEXT_89; + this->Letters[90] = VTK_VECTOR_TEXT_90; + this->Letters[91] = VTK_VECTOR_TEXT_91; + this->Letters[92] = VTK_VECTOR_TEXT_92; + this->Letters[93] = VTK_VECTOR_TEXT_93; + this->Letters[94] = VTK_VECTOR_TEXT_94; + this->Letters[95] = VTK_VECTOR_TEXT_95; + this->Letters[96] = VTK_VECTOR_TEXT_96; + this->Letters[97] = VTK_VECTOR_TEXT_97; + this->Letters[98] = VTK_VECTOR_TEXT_98; + this->Letters[99] = VTK_VECTOR_TEXT_99; + this->Letters[100] = VTK_VECTOR_TEXT_100; + this->Letters[101] = VTK_VECTOR_TEXT_101; + this->Letters[102] = VTK_VECTOR_TEXT_102; + this->Letters[103] = VTK_VECTOR_TEXT_103; + this->Letters[104] = VTK_VECTOR_TEXT_104; + this->Letters[105] = VTK_VECTOR_TEXT_105; + this->Letters[106] = VTK_VECTOR_TEXT_106; + this->Letters[107] = VTK_VECTOR_TEXT_107; + this->Letters[108] = VTK_VECTOR_TEXT_108; + this->Letters[109] = VTK_VECTOR_TEXT_109; + this->Letters[110] = VTK_VECTOR_TEXT_110; + this->Letters[111] = VTK_VECTOR_TEXT_111; + this->Letters[112] = VTK_VECTOR_TEXT_112; + this->Letters[113] = VTK_VECTOR_TEXT_113; + this->Letters[114] = VTK_VECTOR_TEXT_114; + this->Letters[115] = VTK_VECTOR_TEXT_115; + this->Letters[116] = VTK_VECTOR_TEXT_116; + this->Letters[117] = VTK_VECTOR_TEXT_117; + this->Letters[118] = VTK_VECTOR_TEXT_118; + this->Letters[119] = VTK_VECTOR_TEXT_119; + this->Letters[120] = VTK_VECTOR_TEXT_120; + this->Letters[121] = VTK_VECTOR_TEXT_121; + this->Letters[122] = VTK_VECTOR_TEXT_122; + this->Letters[123] = VTK_VECTOR_TEXT_123; + this->Letters[124] = VTK_VECTOR_TEXT_124; + this->Letters[125] = VTK_VECTOR_TEXT_125; + this->Letters[126] = VTK_VECTOR_TEXT_126; + +} + +void VTKViewer_VectorText::Execute() +{ + vtkPolyData *output = this->GetOutput(); + vtkPoints *newPoints; + vtkCellArray *newPolys; + int ptOffset = 0; + int aPoint, i; + int pos = 0; + float xpos = 0; + float ypos = 0; + int ptCount, triCount; + char *aLetter; + float width; + float ftmp[3]; + + if (this->Text == NULL) + { + vtkErrorMacro (<< "Text is not set!"); + return; + } + + // Set things up; allocate memory + newPoints = vtkPoints::New(); + newPolys = vtkCellArray::New(); + ftmp[2] = 0.0; + + // Create Text + while (this->Text[pos]) + { + switch (this->Text[pos]) + { + case 32: + xpos += 0.4; + break; + + case 10: + ypos -= 1.4; + xpos = 0; + break; + + default: + // if we have a valid character + if ((this->Text[pos] > 32)&&(this->Text[pos] < 127)) + { + // add the result to our output + aLetter = this->Letters[this->Text[pos]]; + ptCount = strtol(aLetter,&aLetter,10); + width = strtod(aLetter,&aLetter); + for (i = 0; i < ptCount; i++) + { + ftmp[0] = strtod(aLetter,&aLetter); + ftmp[1] = strtod(aLetter,&aLetter); + ftmp[0] += xpos; + ftmp[1] += ypos; + newPoints->InsertNextPoint(ftmp); + } + triCount = strtol(aLetter,&aLetter,10); + for (i = 0; i < triCount; i++) + { + newPolys->InsertNextCell(3); + aPoint = strtol(aLetter,&aLetter,10); + newPolys->InsertCellPoint(aPoint + ptOffset); + aPoint = strtol(aLetter,&aLetter,10); + newPolys->InsertCellPoint(aPoint + ptOffset); + aPoint = strtol(aLetter,&aLetter,10); + newPolys->InsertCellPoint(aPoint + ptOffset); + } + ptOffset += ptCount; + xpos += width; + } + break; + } + pos++; + } + + // + // Update ourselves and release memory + // + output->SetPoints(newPoints); + newPoints->Delete(); + + output->SetPolys(newPolys); + newPolys->Delete(); +} + +void VTKViewer_VectorText::PrintSelf(ostream& os, vtkIndent indent) +{ + this->Superclass::PrintSelf(os,indent); + + os << indent << "Text: " << (this->Text ? this->Text : "(none)") << "\n"; +} + +VTKViewer_VectorText::~VTKViewer_VectorText() +{ + if (this->Text) + { + delete [] this->Text; + } +} diff --git a/src/VTKViewer/VTKViewer_VectorText.h b/src/VTKViewer/VTKViewer_VectorText.h new file mode 100644 index 000000000..660257a35 --- /dev/null +++ b/src/VTKViewer/VTKViewer_VectorText.h @@ -0,0 +1,67 @@ +/*========================================================================= + + Program: Visualization Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen + All rights reserved. + See Copyright.txt or http://www.kitware.com/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notice for more information. + +=========================================================================*/ +// .NAME vtkVectorText - create polygonal text +// .SECTION Description + +// vtkVectorText generates vtkPolyData from an input text string. Besides the +// ASCII alphanumeric characters a-z, A-Z, 0-9, vtkVectorText also supports +// ASCII punctuation marks. (The supported ASCII character set are the codes +// (33-126) inclusive.) The only control character supported is the line feed +// character "\n", which advances to a new line. +// +// To use thie class, you normally couple it with a vtkPolyDataMapper and a +// vtkActor. In this case you would use the vtkActor's transformation methods +// to position, orient, and scale the text. You may also wish to use a +// vtkFollower to orient the text so that it always faces the camera. + +// .SECTION See Also +// vtkTextMapper vtkCaptionActor2D + +// VTKViewer_VectorText.h is a copy of vtkVectorText.h file. +// Purpose of copying: to remove linking to libHybrid.so VTK library + +#ifndef __VTKViewer_VectorText_h +#define __VTKViewer_VectorText_h + +#include "vtkPolyDataSource.h" + +class VTKViewer_VectorText : public vtkPolyDataSource +{ +public: + static VTKViewer_VectorText *New(); + vtkTypeRevisionMacro(VTKViewer_VectorText,vtkPolyDataSource); + void PrintSelf(ostream& os, vtkIndent indent); + + // Description: + // Set/Get the text to be drawn. + vtkSetStringMacro(Text); + vtkGetStringMacro(Text); + +protected: + VTKViewer_VectorText(); + ~VTKViewer_VectorText(); + + void Execute(); + char *Text; + char *Letters[127]; + +}; + +#endif + + -- 2.39.2