'BR-D5-38-2003_D2005-12-10'.
Sprout from BR-D5-38-2003 2005-10-12 12:05:24 UTC pkv <pkv@opencascade.com> 'Avoid the native vtkInteractorStyle tretment of OnChar event'
Delete:
LICENCE
adm_local/unix/config_files/README
adm_local/unix/make_omniorb.in
configure.in.base
idl/Makefile.in
idl/SALOME_Session.idl
resources/Tools_en.xml
resources/Tools_fr.xml
resources/back.xpm
resources/cascade.png
resources/channel.cfg
resources/close.png
resources/copy.png
resources/default.png
resources/dl_delete.png
resources/dl_insert.png
resources/dl_movedown.png
resources/dl_moveup.png
resources/forward.xpm
resources/help.png
resources/home.xpm
resources/new.png
resources/open.png
resources/paste.png
resources/plot2d_dump.png
resources/plot2d_fitall.png
resources/plot2d_fitarea.png
resources/plot2d_legend.png
resources/plot2d_linear.png
resources/plot2d_linear_y.png
resources/plot2d_lines.png
resources/plot2d_log.png
resources/plot2d_log_y.png
resources/plot2d_pan.png
resources/plot2d_points.png
resources/plot2d_settings.png
resources/plot2d_splines.png
resources/plot2d_zoom.png
resources/print.png
resources/reset.png
resources/save.png
resources/select1.png
resources/tile.png
resources/uc_add.png
resources/uc_clear.png
resources/uc_current.png
resources/uc_del.png
resources/uc_new.png
resources/view_back.png
resources/view_bottom.png
resources/view_camera_dump.png
resources/view_fitall.png
resources/view_fitarea.png
resources/view_front.png
resources/view_glpan.png
resources/view_left.png
resources/view_pan.png
resources/view_reset.png
resources/view_right.png
resources/view_rotate.png
resources/view_top.png
resources/view_triedre.png
resources/view_zoom.png
src/CAF/resources/CAF_images.po
src/CAF/resources/redo.png
src/CAF/resources/undo.png
src/CAM/Makefile.in
src/CAM/resources/CAM_msg_en.po
src/Event/Event.h
src/Event/Makefile.in
src/Event/SALOME_Event.cxx
src/Event/SALOME_Event.hxx
src/GLViewer/resources/GLViewer_images.po
src/GLViewer/resources/GLViewer_msg_en.po
src/GLViewer/resources/cursor_rotate.png
src/GLViewer/resources/cursor_sketch.png
src/GLViewer/resources/cursor_zoom.png
src/GLViewer/resources/view_dump.png
src/GLViewer/resources/view_fitall.png
src/GLViewer/resources/view_fitarea.png
src/GLViewer/resources/view_fitselect.png
src/GLViewer/resources/view_glpan.png
src/GLViewer/resources/view_pan.png
src/GLViewer/resources/view_reset.png
src/GLViewer/resources/view_zoom.png
src/LogWindow/LogWindow.cxx
src/LogWindow/LogWindow.h
src/LogWindow/Makefile.in
src/OBJECT/Handle_SALOME_AISObject.hxx
src/OBJECT/Handle_SALOME_AISShape.hxx
src/OBJECT/Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx
src/OBJECT/Handle_SALOME_Filter.hxx
src/OBJECT/Handle_SALOME_InteractiveObject.hxx
src/OBJECT/Handle_SALOME_ListNodeOfListIO.hxx
src/OBJECT/Handle_SALOME_TypeFilter.hxx
src/OBJECT/SALOME_AISObject.cxx
src/OBJECT/SALOME_AISObject.hxx
src/OBJECT/SALOME_AISObject.ixx
src/OBJECT/SALOME_AISObject.jxx
src/OBJECT/SALOME_AISShape.cxx
src/OBJECT/SALOME_AISShape.hxx
src/OBJECT/SALOME_AISShape.ixx
src/OBJECT/SALOME_AISShape.jxx
src/OBJECT/SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx
src/OBJECT/SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger_0.cxx
src/OBJECT/SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx
src/OBJECT/SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_0.cxx
src/OBJECT/SALOME_DataMapOfIOMapOfInteger.hxx
src/OBJECT/SALOME_DataMapOfIOMapOfInteger_0.cxx
src/OBJECT/SALOME_Filter.cxx
src/OBJECT/SALOME_Filter.hxx
src/OBJECT/SALOME_Filter.ixx
src/OBJECT/SALOME_Filter.jxx
src/OBJECT/SALOME_InteractiveObject.cxx
src/OBJECT/SALOME_InteractiveObject.hxx
src/OBJECT/SALOME_InteractiveObject.ixx
src/OBJECT/SALOME_InteractiveObject.jxx
src/OBJECT/SALOME_ListIO.hxx
src/OBJECT/SALOME_ListIO_0.cxx
src/OBJECT/SALOME_ListIteratorOfListIO.hxx
src/OBJECT/SALOME_ListIteratorOfListIO_0.cxx
src/OBJECT/SALOME_ListNodeOfListIO.hxx
src/OBJECT/SALOME_ListNodeOfListIO_0.cxx
src/OBJECT/SALOME_Selection.h
src/OBJECT/SALOME_TypeFilter.cxx
src/OBJECT/SALOME_TypeFilter.hxx
src/OBJECT/SALOME_TypeFilter.ixx
src/OBJECT/SALOME_TypeFilter.jxx
src/OCCViewer/resources/view_back.png
src/OCCViewer/resources/view_bottom.png
src/OCCViewer/resources/view_camera_dump.png
src/OCCViewer/resources/view_clone.png
src/OCCViewer/resources/view_fitall.png
src/OCCViewer/resources/view_fitarea.png
src/OCCViewer/resources/view_front.png
src/OCCViewer/resources/view_glpan.png
src/OCCViewer/resources/view_left.png
src/OCCViewer/resources/view_pan.png
src/OCCViewer/resources/view_presets.png
src/OCCViewer/resources/view_reset.png
src/OCCViewer/resources/view_right.png
src/OCCViewer/resources/view_rotate.png
src/OCCViewer/resources/view_shoot.png
src/OCCViewer/resources/view_top.png
src/OCCViewer/resources/view_triedre.png
src/OCCViewer/resources/view_zoom.png
src/ObjBrowser/Makefile.in
src/ObjBrowser/resources/OB_msg_en.po
src/Plot2d/Plot2d_Prs.cxx
src/Plot2d/Plot2d_SetupCurveDlg.h
src/Plot2d/resources/Plot2d_images.po
src/Plot2d/resources/plot2d_camera_dump.png
src/Plot2d/resources/plot2d_clone.png
src/Plot2d/resources/plot2d_fitall.png
src/Plot2d/resources/plot2d_fitarea.png
src/Plot2d/resources/plot2d_glpan.png
src/Plot2d/resources/plot2d_legend.png
src/Plot2d/resources/plot2d_linear.png
src/Plot2d/resources/plot2d_linear_y.png
src/Plot2d/resources/plot2d_lines.png
src/Plot2d/resources/plot2d_log.png
src/Plot2d/resources/plot2d_log_y.png
src/Plot2d/resources/plot2d_pan.png
src/Plot2d/resources/plot2d_points.png
src/Plot2d/resources/plot2d_rotate.png
src/Plot2d/resources/plot2d_settings.png
src/Plot2d/resources/plot2d_splines.png
src/Plot2d/resources/plot2d_zoom.png
src/PyInterp/PyInterp_Dispatcher.h
src/PythonConsole/Makefile.in
src/PythonConsole/PythonConsole_PyEditor.h
src/PythonConsole/PythonConsole_PyInterp.h
src/RegistryDisplay/HelpWindow.cxx
src/RegistryDisplay/HelpWindow.hxx
src/RegistryDisplay/IntervalWindow.cxx
src/RegistryDisplay/IntervalWindow.hxx
src/RegistryDisplay/RegWidget.cxx
src/RegistryDisplay/RegWidget.h
src/RegistryDisplay/RegWidgetFactory.cxx
src/ResExporter/Makefile.in
src/SALOME_PY/Makefile.in
src/SALOME_PYQT/Makefile.in
src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_GUI.sip
src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_SipDefs.h.in
src/SALOME_SWIG/Help.py
src/SALOME_SWIG/Makefile.in
src/SALOME_SWIG/PyInterp.py
src/SALOME_SWIG/SALOMEGUI_Swig.hxx
src/SALOME_SWIG/SALOMEGUI_Swig.i
src/SALOME_SWIG/examplevtk1.py
src/SALOME_SWIG/libSALOME_Swig.i
src/SALOME_SWIG/salome.py
src/SALOME_SWIG/supervisionexample.py
src/SALOME_SWIG/supervisionexample.py.in
src/SALOME_SWIG/supervisiongeomexample.py
src/SALOME_SWIG/supervisiongeomexample.py.in
src/SALOME_SWIG/test_big_table.py
src/SALOME_SWIG/test_many_objects.py
src/SALOME_SWIG/test_remove_ref.py
src/SALOME_SWIG/test_table.py
src/SALOME_SWIG/testattr.py
src/SOCC/SOCC_Prs.cxx
src/SOCC/SOCC_Prs.h
src/STD/Makefile.in
src/STD/resources/close.png
src/STD/resources/config
src/STD/resources/copy.png
src/STD/resources/cursor_rotate.png
src/STD/resources/cursor_zoom.png
src/STD/resources/cut.png
src/STD/resources/help.png
src/STD/resources/new.png
src/STD/resources/open.png
src/STD/resources/paste.png
src/STD/resources/print.png
src/STD/resources/redo.png
src/STD/resources/reset.png
src/STD/resources/save.png
src/STD/resources/std.ini
src/STD/resources/undo.png
src/STD/resources/undo_arrow.png
src/SUIT/SUIT_FileValidator.cxx
src/SUIT/SUIT_FileValidator.h
src/SUIT/SUIT_ParserSettings.cxx
src/SUIT/SUIT_ParserSettings.h
src/SUIT/resources/SUIT_images.po
src/SUIT/resources/SUIT_msg_en.po
src/SUIT/resources/cascade.png
src/SUIT/resources/htile.png
src/SUIT/resources/vtile.png
src/SUIT/utilities.h
src/SUITApp/Makefile.in
src/SUITApp/resources/SUITApp_msg_en.po
src/SUPERVGraph/SUPERVGraph.cxx
src/SVTK/SVTK_CubeAxesActor2D.cxx
src/SVTK/SVTK_CubeAxesActor2D.h
src/SVTK/SVTK_Functor.h
src/SVTK/SVTK_Prs.cxx
src/SVTK/SVTK_Prs.h
src/SalomeApp/SalomeApp.h
src/SalomeApp/SalomeApp_ImportOperation.cxx
src/SalomeApp/SalomeApp_ImportOperation.h
src/SalomeApp/SalomeApp_ListView.cxx
src/SalomeApp/SalomeApp_ListView.h
src/SalomeApp/SalomeApp_StudyPropertiesDlg.h
src/Session/InquireServersQThread.cxx
src/Session/InquireServersQThread.h
src/Session/SalomeApp_Engine_i.cxx
src/Session/SalomeApp_Engine_i.hxx
src/Session/Session_ServerLauncher.cxx
src/Session/Session_ServerLauncher.hxx
src/Session/Session_ServerThread.hxx
src/Session/Session_Session_i.hxx
src/Session/runSession
src/Style/Makefile.in
src/TOOLSGUI/ToolsGUI.cxx
src/TOOLSGUI/ToolsGUI.h
src/TOOLSGUI/ToolsGUI_CatalogGeneratorDlg.cxx
src/TOOLSGUI/ToolsGUI_CatalogGeneratorDlg.h
src/TOOLSGUI/ToolsGUI_HelpWindow.cxx
src/TOOLSGUI/ToolsGUI_HelpWindow.h
src/TOOLSGUI/ToolsGUI_IntervalWindow.cxx
src/TOOLSGUI/ToolsGUI_IntervalWindow.h
src/TOOLSGUI/ToolsGUI_RegWidget.cxx
src/TOOLSGUI/ToolsGUI_RegWidget.h
src/TOOLSGUI/resources/ToolsGUI_icons.po
src/TOOLSGUI/resources/ToolsGUI_msg_en.po
src/VTKViewer/VTKViewer.h
src/VTKViewer/VTKViewer_Actor.cxx
src/VTKViewer/VTKViewer_Actor.h
src/VTKViewer/VTKViewer_Algorithm.h
src/VTKViewer/VTKViewer_CellRectPicker.cxx
src/VTKViewer/VTKViewer_CellRectPicker.h
src/VTKViewer/VTKViewer_ConvexTool.h
src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.cxx
src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.h
src/VTKViewer/VTKViewer_Filter.cxx
src/VTKViewer/VTKViewer_Filter.h
src/VTKViewer/VTKViewer_Functor.h
src/VTKViewer/VTKViewer_GeometryFilter.h
src/VTKViewer/VTKViewer_InteractorStyle.h
src/VTKViewer/VTKViewer_PassThroughFilter.cxx
src/VTKViewer/VTKViewer_PassThroughFilter.h
src/VTKViewer/VTKViewer_RectPicker.cxx
src/VTKViewer/VTKViewer_RectPicker.h
src/VTKViewer/VTKViewer_RenderWindow.cxx
src/VTKViewer/VTKViewer_RenderWindow.h
src/VTKViewer/VTKViewer_RenderWindowInteractor.cxx
src/VTKViewer/VTKViewer_RenderWindowInteractor.h
src/VTKViewer/VTKViewer_ShrinkFilter.h
src/VTKViewer/VTKViewer_Transform.cxx
src/VTKViewer/VTKViewer_Transform.h
src/VTKViewer/VTKViewer_TransformFilter.cxx
src/VTKViewer/VTKViewer_TransformFilter.h
src/VTKViewer/VTKViewer_Utilities.cxx
src/VTKViewer/VTKViewer_Utilities.h
src/VTKViewer/VTKViewer_VectorText.cxx
src/VTKViewer/VTKViewer_VectorText.h
src/VTKViewer/VTKViewer_ViewManager.cxx
src/VTKViewer/VTKViewer_ViewManager.h
src/VTKViewer/VTKViewer_ViewModel.cxx
src/VTKViewer/VTKViewer_ViewModel.h
src/VTKViewer/VTKViewer_ViewWindow.cxx
src/VTKViewer/VTKViewer_ViewWindow.h
src/VTKViewer/resources/VTKViewer_images.po
src/VTKViewer/resources/VTKViewer_msg_en.po
src/VTKViewer/resources/view_back.png
src/VTKViewer/resources/view_bottom.png
src/VTKViewer/resources/view_camera_dump.png
src/VTKViewer/resources/view_fitall.png
src/VTKViewer/resources/view_fitarea.png
src/VTKViewer/resources/view_front.png
src/VTKViewer/resources/view_glpan.png
src/VTKViewer/resources/view_left.png
src/VTKViewer/resources/view_pan.png
src/VTKViewer/resources/view_reset.png
src/VTKViewer/resources/view_right.png
src/VTKViewer/resources/view_rotate.png
src/VTKViewer/resources/view_top.png
src/VTKViewer/resources/view_triedre.png
src/VTKViewer/resources/view_zoom.png
+++ /dev/null
- 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.
-\f
- 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.
-\f
- 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.
-\f
- 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.
-\f
- 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.
-\f
- 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.
-\f
- 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.
-\f
- 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.
-\f
- 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
-\f
- 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.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- 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.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
+++ /dev/null
-This file is only here for CVS:
-CVS does not always create empty directory, and adm_local/unix/config_file
-is needed by build_configure.
+++ /dev/null
-#=======================================================================
-# Begin specific part to omniorb
-# (include from file adm/unix/make_omniorb generated by
-# adm/unix/make_omniorb.in)
-#=======================================================================
-# -* Makefile *-
-#
-#
-
-# Client and server object are the same with omniorb
-# There are one header file and one source file generate
-
-#IDLOBJ=$(IDLSRC:%.idl=%$(IDL_CLN_OBJ))
-
-# dependancies between idl and it's generated files
-%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${KERNEL_ROOT_DIR}/idl/salome/%.idl
- $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
-
-%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${top_srcdir}/idl/%.idl
- $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
-
-# dependncies between idl files
-depend_idl: .depidl
-
-# we use cpp to generate dependencies between idl files.
-# we change cpp output to keep only idl file and transform it to get a suitable rule
-.depidl: $(IDL_FILES)
- @touch $@
- @for dep in $? dummy; do \
- if [ $$dep != "dummy" ]; then \
- echo Building dependencies for $$dep; \
- basedep=`basename $$dep .idl`; \
- header="$$basedep"$(IDL_CLN_H); \
- sed '\%^'"$$header"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \
- $(CPP) $(C_DEPEND_FLAG) -I$(srcdir) $$dep 2>/dev/null | \
- sed `echo "s%$$basedep\\.idl%$$header:%g"` | \
- sed 's% $(srcdir)/% %g' | \
- sed 's% $(top_srcdir)/% %g' | \
- sed 's% $(top_builddir)/% %g' | \
- sed 's%^.*:\.o: *%%' | sed 's%^ *\\ *%%'| sed 's%^ *\(.*\):%\1:%' | \
- sed 's/\.idl/$(IDL_CLN_H)/' >>$@; \
- echo '' >>$@; \
- fi; \
- done ;
-
--include .depidl
-
-#=======================================================================
-# End specific part to omniorb
-#=======================================================================
+++ /dev/null
-#
-# PLEASE DO NOT MODIFY configure.in FILE
-#
-# ALL CHANGES WILL BE DISCARDED BY THE NEXT
-# build_configure COMMAND
-#
-# CHANGES MUST BE MADE IN configure.in.base FILE
-#
-#
-# Author : Marc Tajchman (CEA)
-# Date : 28/06/2001
-# Modified by : Patrick GOLDBRONN (CEA)
-# Modified by : Marc Tajchman (CEA)
-#
-# Created from configure.in.base
-#
-
-
-AC_INIT(src)
-AC_CONFIG_AUX_DIR(${KERNEL_ROOT_DIR}/salome_adm/unix/config_files)
-AC_CANONICAL_HOST
-
-PACKAGE=salome
-AC_SUBST(PACKAGE)
-
-VERSION=0.0.1
-AC_SUBST(VERSION)
-
-dnl
-dnl Initialize source and build root directories
-dnl
-
-ROOT_BUILDDIR=`pwd`
-ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
-cd $ROOT_SRCDIR
-ROOT_SRCDIR=`pwd`
-cd $ROOT_BUILDDIR
-
-AC_SUBST(ROOT_SRCDIR)
-AC_SUBST(ROOT_BUILDDIR)
-
-echo
-echo Source root directory : $ROOT_SRCDIR
-echo Build root directory : $ROOT_BUILDDIR
-echo
-echo
-
-if test -z "$AR"; then
- AC_CHECK_PROGS(AR,ar xar,:,$PATH)
-fi
-AC_SUBST(AR)
-
-dnl Export the AR macro so that it will be placed in the libtool file
-dnl correctly.
-export AR
-
-echo
-echo ---------------------------------------------
-echo testing make
-echo ---------------------------------------------
-echo
-
-AC_PROG_MAKE_SET
-AC_PROG_INSTALL
-dnl
-dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques !
-
-AC_ENABLE_DEBUG(yes)
-AC_DISABLE_PRODUCTION
-
-echo ---------------------------------------------
-echo testing libtool
-echo ---------------------------------------------
-
-dnl first, we set static to no!
-dnl if we want it, use --enable-static
-AC_ENABLE_STATIC(no)
-
-AC_LIBTOOL_DLOPEN
-AC_PROG_LIBTOOL
-
-dnl Fix up the INSTALL macro if it s a relative path. We want the
-dnl full-path to the binary instead.
-case "$INSTALL" in
- *install-sh*)
- INSTALL='\${KERNEL_ROOT_DIR}'/salome_adm/unix/config_files/install-sh
- ;;
-esac
-
-echo
-echo ---------------------------------------------
-echo testing C/C++
-echo ---------------------------------------------
-echo
-
-cc_ok=no
-dnl inutil car libtool
-dnl AC_PROG_CC
-AC_PROG_CXX
-AC_CXX_WARNINGS
-AC_CXX_TEMPLATE_OPTIONS
-AC_DEPEND_FLAG
-# AC_CC_WARNINGS([ansi])
-cc_ok=yes
-
-dnl Library libdl :
-AC_CHECK_LIB(dl,dlopen)
-
-dnl add library libm :
-AC_CHECK_LIB(m,ceil)
-
-dnl
-dnl Well we use sstream which is not in gcc pre-2.95.3
-dnl We must test if it exists. If not, add it in include !
-dnl
-
-AC_CXX_HAVE_SSTREAM
-
-dnl
-dnl ---------------------------------------------
-dnl testing MPICH
-dnl ---------------------------------------------
-dnl
-
-CHECK_MPICH
-
-echo
-echo ---------------------------------------------
-echo testing LEX \& YACC
-echo ---------------------------------------------
-echo
-
-lex_yacc_ok=no
-AC_PROG_YACC
-AC_PROG_LEX
-lex_yacc_ok=yes
-
-echo
-echo ---------------------------------------------
-echo testing python
-echo ---------------------------------------------
-echo
-
-CHECK_PYTHON
-
-dnl echo
-dnl echo ---------------------------------------------
-dnl echo testing java
-dnl echo ---------------------------------------------
-dnl echo
-
-dnl CHECK_JAVA
-
-echo
-echo ---------------------------------------------
-echo testing swig
-echo ---------------------------------------------
-echo
-
-CHECK_SWIG
-
-echo
-echo ---------------------------------------------
-echo testing threads
-echo ---------------------------------------------
-echo
-
-ENABLE_PTHREADS
-
-echo
-echo ---------------------------------------------
-echo testing omniORB
-echo ---------------------------------------------
-echo
-
-CHECK_OMNIORB
-
-dnl echo
-dnl echo ---------------------------------------------
-dnl echo testing mico
-dnl echo ---------------------------------------------
-dnl echo
-
-dnl CHECK_MICO
-
-echo
-echo ---------------------------------------------
-echo default ORB : omniORB
-echo ---------------------------------------------
-echo
-
-DEFAULT_ORB=omniORB
-CHECK_CORBA
-
-AC_SUBST_FILE(CORBA)
-corba=make_$ORB
-CORBA=adm_local/unix/$corba
-
-echo
-echo ---------------------------------------------
-echo testing openGL
-echo ---------------------------------------------
-echo
-
-CHECK_OPENGL
-
-echo
-echo ---------------------------------------------
-echo testing QT
-echo ---------------------------------------------
-echo
-
-CHECK_QT
-
-echo
-echo ---------------------------------------------
-echo testing msg2qm
-echo ---------------------------------------------
-echo
-
-CHECK_MSG2QM
-
-echo
-echo ---------------------------------------------
-echo testing VTK
-echo ---------------------------------------------
-echo
-
-CHECK_VTK
-
-echo
-echo ---------------------------------------------
-echo testing HDF5
-echo ---------------------------------------------
-echo
-
-CHECK_HDF5
-
-echo
-echo ---------------------------------------------
-echo BOOST Library
-echo ---------------------------------------------
-echo
-
-CHECK_BOOST
-
-echo
-echo ---------------------------------------------
-echo Testing OpenCascade
-echo ---------------------------------------------
-echo
-
-CHECK_CAS
-
-echo
-echo ---------------------------------------------
-echo Testing sip
-echo ---------------------------------------------
-echo
-
-CHECK_SIP
-
-echo
-echo ---------------------------------------------
-echo Testing pyqt
-echo ---------------------------------------------
-echo
-
-CHECK_PYQT
-
-echo
-echo ---------------------------------------------
-echo Testing qwt
-echo ---------------------------------------------
-echo
-
-CHECK_QWT
-
-echo
-echo ---------------------------------------------
-echo Testing html generators
-echo ---------------------------------------------
-echo
-
-CHECK_HTML_GENERATORS
-
-echo
-echo ---------------------------------------------
-echo Testing Kernel
-echo ---------------------------------------------
-echo
-
-CHECK_KERNEL
-
-echo
-echo ---------------------------------------------
-echo Summary
-echo ---------------------------------------------
-echo
-
-echo Configure
-variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok msg2qm_ok vtk_ok hdf5_ok omniORB_ok boost_ok occ_ok sip_ok pyqt_ok qwt_ok doxygen_ok graphviz_ok Kernel_ok"
-
-for var in $variables
-do
- printf " %10s : " `echo \$var | sed -e "s,_ok,,"`
- eval echo \$$var
-done
-
-echo
-echo "Default ORB : $DEFAULT_ORB"
-echo
-
-dnl generals files which could be included in every makefile
-
-AC_SUBST_FILE(COMMENCE) COMMENCE=adm_local/unix/make_commence
-AC_SUBST_FILE(CONCLUDE) CONCLUDE=salome_adm/unix/make_conclude
-AC_SUBST_FILE(MODULE) MODULE=salome_adm/unix/make_module
-
-dnl les dependences
-AC_SUBST_FILE(DEPEND) DEPEND=salome_adm/unix/depend
-
-dnl We don t need to say when we re entering directories if we re using
-dnl GNU make becuase make does it for us.
-if test "X$GMAKE" = "Xyes"; then
- AC_SUBST(SETX) SETX=":"
-else
- AC_SUBST(SETX) SETX="set -x"
-fi
-
-# make other build directories
-for rep in salome_adm adm_local doc bin/salome include/salome lib/salome share/salome/resources idl
-do
-# if test ! -d $rep ; then
-# eval mkdir $rep
-# fi
- $INSTALL -d $rep
-done
-
-echo
-echo ---------------------------------------------
-echo copying resource files, shell scripts, and
-echo xml files
-echo ---------------------------------------------
-echo
-
-
-dnl copy resources directories
-
-#for i in `find $ROOT_SRCDIR -name 'resources' -print`
-#do
-# local_res=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
-# local_res_dir=`echo $local_res | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
-# mkdir -p $local_res_dir
-# cd $local_res_dir
-# ln -fs $i
-# echo $local_res
-# cd $ROOT_BUILDDIR
-#done
-
-dnl copy shells and utilities contained in the bin directory
-dnl excluding .in files (treated in AC-OUTPUT below) and CVS
-dnl directory
-
-mkdir -p bin/salome
-cd bin/salome
-
-for i in $ROOT_SRCDIR/bin/*
-do
- local_bin=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
- case "$local_bin" in
- *.in | *~) ;;
- ./bin/CVS | ./bin/salome) ;;
- *) $INSTALL $i . ; echo $local_bin ;;
- esac
-done
-cd $ROOT_BUILDDIR
-
-AC_SUBST_FILE(ENVSCRIPT) ENVSCRIPT=salome_adm/unix/envScript
-
-dnl copy xml files to the build tree (lib directory)
-dnl pourquoi ????
-
-#cd lib
-#for i in `find $ROOT_SRCDIR -name "*.xml" -print`
-#do
-# ln -fs $i
-# echo `echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
-#done
-#cd $ROOT_BUILDDIR
-
-
-echo
-echo ---------------------------------------------
-echo generating Makefiles and configure files
-echo ---------------------------------------------
-echo
-
-AC_OUTPUT_COMMANDS([ \
- chmod +x ./bin/* \
-])
-
-## do not delete this line
+++ /dev/null
-#
-# generate dependencies for idl file :
-#
-
-# source path
-top_srcdir=@top_srcdir@
-top_builddir=..
-srcdir=@srcdir@
-VPATH=.
-
-@COMMENCE@
-
-IDL_FILES = SALOME_Session.idl
-
-PY_CLIENT_IDL = $(IDL_FILES)
-
-# we copy all idl file in $(top_builddir)/idl
-inc: $(top_builddir)/idl/salome $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
-
-$(top_builddir)/idl/salome:
- mkdir -p $@
-
-$(IDL_FILES:%=$(top_builddir)/idl/salome/%):$(IDL_FILES:%=$(top_srcdir)/idl/%)
-# $(CP) $< $@
- cp -f $^ $(top_builddir)/idl/salome
-
-
-lib: pyidl
-
-PYTHON_BUILD_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/@PACKAGE@
-
-pyidl: $(PYTHON_BUILD_SITE) $(IDL_FILES:%.idl=$(PYTHON_BUILD_SITE)/%_idl.py)
-
-$(PYTHON_BUILD_SITE):
- $(INSTALL) -d $@
-
-$(PYTHON_BUILD_SITE)/%_idl.py: $(top_builddir)/idl/salome/%.idl
- $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(PYTHON_BUILD_SITE) $<
-
-
-# install python client (generated from idl file
-install: $(top_builddir)/idl/salome install-pyidl install-idl
-
-# create directory $(idldir) and copy idl files into it
-install-idl: $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
- $(INSTALL) -d $(idldir)
- cp -p -f $^ $(idldir)
-
-
-install-pyidl: $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
- $(INSTALL) -d $(PYTHON_SITE_INSTALL)
- @for file in $^ dummy; do \
- if [ $$file != "dummy" ]; then \
- $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(PYTHON_SITE_INSTALL) $$file ; \
- fi ; \
- done ;
-
-#@ CONCLUDE @
-
-cleandep:
- -$(RM) .dep*
-
-distclean:
- -$(RM) *.py
- -$(RM) $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
- -$(RM) Makefile
-
+++ /dev/null
-// 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_Session.idl
-// Author : Paul RASCLE, EDF
-// $Header$
-
-#include "SALOME_Component.idl"
-
-/*!
- This package contains interfaces used for management of the session in %SALOME application.
-*/
-module SALOME
-{
-/*! \brief State of the session
-
- This enumeration contains values defining the state of the session
-
-*/
- enum SessionState {asleep, /*! Session is inactive */
- running /*! Session is running */
- } ;
-
-/*! \brief %Session State and Statistics
-
-
- This struct contains a field list with general information about the session
-*/
-
- struct StatSession
- {
-/*! \brief State of the session
-
- It can be:
- * -# asleep : no running study
- * -# running : one or more running studies
-*/
- SessionState state ;
-/*! Number of running studies
-*/
- short runningStudies ;
-/*! It is True if GUI is active in the session
-*/
- boolean activeGUI ;
- } ;
-/*! \brief Interface of the session
-
- The %session Server launches and stops GUI (Graphical User Interface).
- The %session can be active without GUI (It can contain one or more running studies)
-*/
-
- interface Session
- {
-/*!
- This exception is raised when trying to stop the %session with active GUI
-*/
- exception GUIActive {} ;
-/*!
- This exception is raised when trying to stop the %session with a number of running studies.
-*/
- exception RunningStudies {} ;
-
-/*!
- Launches GUI in the session
-*/
- void GetInterface();
-
-/*!
- Returns a standalone component
-*/
- Engines::Component GetComponent(in string theLibraryName);
-
-/*!
- Stops the %Session (It must be idle)
-*/
- void StopSession() raises(GUIActive, RunningStudies) ;
-
-/*!
- Gets Session State
-*/
- StatSession GetStatSession() ;
-/*!
- Determines whether the server has already been loaded or not.
-*/
- void ping();
-/*!
- Get Active study ID
-*/
- long GetActiveStudyId();
- } ;
-
-} ;
+++ /dev/null
-<?xml version='1.0' encoding='us-ascii'?>
-<!DOCTYPE application PUBLIC "" "desktop.dtd">
-
-<!-- GUI customization -->
-
-<application
- title="SALOMEGUI Application "
- date="14 novembre 2001"
- author="Nicolas REJNERI"
- appId=""
- >
- <desktop>
- <menubar>
- <menu-item label-id="Tools" item-id="5" pos-id="">
- <popup-item item-id="5101" pos-id="2" label-id="Registry" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action="onDispatchTools" chaine="libRegistryDisplay.so"/>
- <popup-item item-id="5102" pos-id="3" label-id="Catalog Generator" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action="onDispatchTools" chaine=""/>
- </menu-item>
- </menubar>
- </desktop>
-</application>
-
+++ /dev/null
-<?xml version='1.0' encoding='us-ascii'?>
-<!DOCTYPE application PUBLIC "" "desktop.dtd">
-
-<!-- GUI customization -->
-
-<application
- title="SALOMEGUI Application "
- date="14 novembre 2001"
- author="Nicolas REJNERI"
- appId=""
- >
- <desktop>
- <menubar>
- <menu-item label-id="Tools" item-id="5" pos-id="">
- <popup-item item-id="5101" pos-id="2" label-id="Registry" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action="onDispatchTools" chaine="libRegistryDisplay.so"/>
- <popup-item item-id="5102" pos-id="3" label-id="Catalog Generator" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action="onDispatchTools" chaine=""/>
- </menu-item>
- </menubar>
- </desktop>
-</application>
-
+++ /dev/null
-/* XPM */
-/* Drawn by Mark Donohoe for the K Desktop Environment */
-/* See http://www.kde.org */
-static char*back[]={
-"16 16 5 1",
-"# c #000000",
-"a c #ffffff",
-"c c #808080",
-"b c #c0c0c0",
-". c None",
-"................",
-".......#........",
-"......##........",
-".....#a#........",
-"....#aa########.",
-"...#aabaaaaaaa#.",
-"..#aabbbbbbbbb#.",
-"...#abbbbbbbbb#.",
-"...c#ab########.",
-"....c#a#ccccccc.",
-".....c##c.......",
-"......c#c.......",
-".......cc.......",
-"........c.......",
-"................",
-"......................"};
-
+++ /dev/null
-# =================================================================
-# PARAM SETTINGS
-#
-# ** standard.cfg :
-# sets up the daemon with default params as given
-# in the CosNotification specification.
-#
-# ** channel.cfg :
-# sets up daemon with default params which we prefer.
-#
-# You can choose which one to use, or copy one and edit it
-# to suit your needs.
-#
-# There are only a couple of differences:
-#
-# standard.cfg channel.cfg
-#
-# PacingInterval 0 1000 (1 second)
-# MaximumBatchSize 1 8
-#
-
-# =================================================================
-# omniNotify Configuration (Startup) Properties
-#
-# You can modify startup properties in one of 3 ways
-#
-# 1. copy this file to create your own .cfg file and edit it. Use
-# promp> notifd -i -c myconfig.cfg
-# to start notifd using the config file myconfig.cfg
-#
-# 2. set an environment variable; this will override any
-# config file settings. e.g., for tcsh,
-# promp> setenv LocalClockTDF 0
-# promp> notifd -i -c channel.cfg
-# This uses channel.cfg but changes the time zone to GMT
-#
-# 3. use explicit command-line param definitions
-# these override both the config file and any env variable settings
-# promp> setenv LocalClockTDF 0
-# promp> notifd -i -c channel.cfg -DLocalClockTDF=-60
-# This would set the time zone to 1 hour earlier than GMT
-#
-# omniNotify manages 3 kinds of properties
-#
-# * ServerQOS properties are properties that all channels share;
-# they cannot be changed on a per-channel basis.
-#
-# * AdminQoS properties are properties that can only be
-# set at the channel factory / channel level.
-#
-# * NotifQoS properties are properties that can be set at
-# many levels: channel factory, channel, admin, proxy;
-# some of these can also be changed on a per-event basis.
-#
-# The channel factory's AdminQoS and NotifQoS property settings
-# are used as defaults: when creating a channel these property
-# values are used unless specific overrides are provided in
-# with the channel creation request. Once a channel is created,
-# its AdminQoS and NotifQoS properties can be modified; the
-# factory's properties can also be modified. Note that once a
-# channel is created, its properties are independent of the
-# factory -- modifications to the channel properties do not affect
-# the factory defaults, and modifications to the factory defaults
-# do not affect the properties of already-created channels.
-#
-# The settings specified in config files, environment
-# variables and/or command line param definitions are used to
-# set the initial values for the server's ServerQoS properties and
-# for the channel factory's AdminQoS and NotifQoS
-# default properties. Since the default channel is created on startup,
-# it also takes its AdminQoS and NotifQoS properties from
-# these initial settings.
-#
-#==================================================================
-
-#==================================================================
-# Misc Startup Properties
-# -- these are essentially ServerQoS properties,
-# but are not currently implemented that way
-#==================================================================
-
-# Names to be assigned to the channel factory and channel created by
-# the notifd channel daemon
-
-ChannelFactoryName ChannelFactory
-DefaultChannelName EventChannel
-
-# Path names of the files used to store the string representation of
-# the above channel factory IOR and channel object IOR
-
-FactoryIORFileName /tmp/rdifact.ior
-ChannelIORFileName /tmp/rdichan.ior
-
-# If a file path is given for the following parameter, the file is
-# used for storing debugging information. 'stderr' and 'stdout' can be
-# used to direct output to standard error / standard output.
-
-#DebugLogFile ./debug.log
-DebugLogFile stderr
-
-# If a file path is given for the following parameter, the file is
-# used for storing report information. 'stderr' and 'stdout' can be
-# used to direct output to standard error / standard output.
-
-#ReportLogFile ./report.log
-ReportLogFile stdout
-
-# debug flags -- 0 is "off", 1 is "on"
-DebugDaemon 0
-DebugChannelFactory 0
-DebugFilter 0
-DebugChannel 0
-DebugConsumerAdmin 0
-DebugSupplireAdmin 0
-DebugConsumerProxy 0
-DebugSupplierProxy 0
-DebugEventQueue 0
-DebugRDIEvent 0
-DebugFilterAdmin 0
-DebugFilterEval 0
-DebugCosConsumerProxies 0
-DebugCosSupplierProxies 0
-DebugNotifQoS 0
-DebugAdminQoS 0
-DebugNotifQueue 0
-
-# report flags -- 0 is "off", 1 is "on"
-ReportChannelStats 1
-ReportQueueSizeStats 1
-ReportConnectedConsumers 1
-ReportConnectedSuppliers 1
-ReportConnectedFilters 1
-ReportUnconnectedFilters 1
-ReportEventRejections 1
-ReportEventDrops 1
-ReportNotifQoS 1
-ReportAdminQoS 1
-ReportServerQoS 1
-
-#==================================================================
-# Initial ServerQoS Properties
-#==================================================================
-
-# Each ConsumerAdmin and SupplierAdmin object is assigned to a group
-# and each group is processed by only one thread. The number of such
-# groups and the number of threads that handle the groups have to be
-# at least 1. In addition, the number of threads should not exceed
-# the number of groups
-
-NumAdminGroups 2
-NumAdminThreads 2
-
-# notifd may split the filter evaluation processing in two stages. In
-# this case, a second thread pool is used for evaluating proxy-level
-# filters. The size of the pool is controled by the following
-
-NumProxyThreads 0
-
-# The following variables control the number of threads created for
-# pushing matched events to push-style consumers and pulling events
-# from pull-style suppliers. If these values are 0, each consumer
-# and supplier is assigned its own thread.
-
-NumPushThreads 4
-NumPullThreads 2
-
-# The following variables control the number of threads created for
-# notifying suppliers of subscription changes (using subscription_change)
-# and for notifying consumers of offer changes (using offer_change).
-# CAREFUL: Setting NumSChangeThreads to zero DISABLES
-# the sending of subscription_change messages!
-# CAREFUL: Setting NumOChangeThreads to zero DISABLES
-# the sending of offer_change messages
-
-NumOChangeThreads 1
-NumSChangeThreads 1
-
-# For pull style suppliers, the time period (milliseconds) between
-# pulls is controlled by the following variable.
-# A value of 0 corresponds to continuous pulling
-
-PullEventPeriod 100
-
-# Period in seconds used by the garbage collector of the event queue
-# The minimum number that can be used is 1
-
-QueueGCPeriod 300
-
-# The next entry specifies the time period (in seconds) between
-# each 'report' (the Report.. flags above control what gets reported).
-# The channel may have a built-in minimum, e.g, even if you say 0,
-# the channel may choose a 10 second period. (300 seconds = 5 mins)
-
-ReportingInterval 300
-
-# Description of local clock values returned from omnithread::get_time.
-# These values are here because we do not know a portable way to get
-# the clock accuracy and the time zone across all Unix flavors and
-# Windows. Let us know if you have a portable approach.
-#
-# LocalClockInaccLo/Hi: local clock inaccuracy in units of 100ns
-# (must fit in 48 bits, 32 for Lo, 16 for Hi)
-# LocalClockTDF: local time zone expressed in minutes west of
-# greenwhich meridian; 300=Eastern time zone, USA
-LocalClockInaccLo 0
-LocalClockInaccHi 0
-LocalClockTDF 300
-
-#==================================================================
-# Initial Default AdminQoS Properties
-#==================================================================
-
-# Maximum number of events that will be queued by the Channel before
-# before it begins discarding events or rejecting new ones. A value
-# of 0 does not place any upper limit.
-
-MaxQueueLength 0
-
-# The maximum number of Consumers that can be connected to a Channel
-# at any given time. A value of 0 does not place any upper limit.
-
-MaxConsumers 0
-
-# The maximum number of Suppliers that can be connected to a Channel
-# at any given time. A value of 0 does not place any upper limit.
-
-MaxSuppliers 0
-
-# If 1, newly announced events will be discarded when the number of
-# undelivered events in a Channel is equal to 'MaxQueueLength'. If
-# 0, newly announced events cause existing events to be discarded
-# according to the 'DiscardPolicy' QoS.
-
-RejectNewEvents 1
-
-#==================================================================
-# Initial Default NotifQoS Properties
-#==================================================================
-
-# EventReliability and ConnectionReliability can take the values:
-# 0 --> CosNotification::BestEffort
-# 1 --> CosNotification::Persistent
-# OrderPolicy can take the values:
-# 0 --> CosNotification::AnyOrder
-# 1 --> CosNotification::FifoOrder
-# 2 --> CosNotification::PriorityOrder
-# 3 --> CosNotification::DeadlineOrder
-# DiscardPolicy can take any of the above values and, in addition,
-# 4 --> CosNotification::LifoOrder
-# StartTimeSupported and StopTimeSupported are boolean and can take
-# the values
-# 0 --> FALSE
-# 1 --> TRUE
-#
-# NOTE: the current notifd implementation does NOT support all QoS
-# settings. In particular, it only supports the following:
-# EventReliability 0
-# ConnectionReliability 0
-# StartTimeSupported 0
-# StopTimeSupported 0
-
-# Note -- PacingInterval can be set programmatically to any
-# TimeBase::TimeT value (units = 100s of nanoseconds). Here you
-# set number of MILLISECONDS, e.g., a value of 1000 means send a batch
-# roughly every 1 second (or when MaxBatchSize is reached).
-
-EventReliability 0
-ConnectionReliability 0
-Priority 0
-Timeout 0
-StartTimeSupported 0
-StopTimeSupported 0
-OrderPolicy 0
-DiscardPolicy 0
-PacingInterval 1000
-MaxEventsPerConsumer 0
-MaximumBatchSize 8
-
+++ /dev/null
-/* XPM */
-/* Drawn by Mark Donohoe for the K Desktop Environment */
-/* See http://www.kde.org */
-static char*forward[]={
-"16 16 5 1",
-"# c #000000",
-"a c #ffffff",
-"c c #808080",
-"b c #c0c0c0",
-". c None",
-"................",
-"................",
-".........#......",
-".........##.....",
-".........#a#....",
-"..########aa#...",
-"..#aaaaaaabaa#..",
-"..#bbbbbbbbbaa#.",
-"..#bbbbbbbbba#..",
-"..########ba#c..",
-"..ccccccc#a#c...",
-"........c##c....",
-"........c#c.....",
-"........cc......",
-"........c.......",
-"................",
-"................"};
-
+++ /dev/null
-/* XPM */
-/* Drawn by Mark Donohoe for the K Desktop Environment */
-/* See http://www.kde.org */
-static char*home[]={
-"16 16 4 1",
-"# c #000000",
-"a c #ffffff",
-"b c #c0c0c0",
-". c None",
-"........... ....",
-" ....##.......",
-"..#...####......",
-"..#..#aabb#.....",
-"..#.#aaaabb#....",
-"..##aaaaaabb#...",
-"..#aaaaaaaabb#..",
-".#aaaaaaaaabbb#.",
-"###aaaaaaaabb###",
-"..#aaaaaaaabb#..",
-"..#aaa###aabb#..",
-"..#aaa#.#aabb#..",
-"..#aaa#.#aabb#..",
-"..#aaa#.#aabb#..",
-"..#aaa#.#aabb#..",
-"..#####.######..",
-"................"};
-
+++ /dev/null
-# This is a Qt message file in .po format. Each msgid starts with
-# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 1999-02-23 15:38+0200\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "ICON_APP_EDIT_UNDO"
-msgstr "undo.png"
-
-msgid "ICON_APP_EDIT_REDO"
-msgstr "redo.png"
+++ /dev/null
-# File : Makefile.in
-# Author : Vladimir Klyachin (OCN)
-# Module : CAM
-# $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@srcdir@/resources
-
-
-@COMMENCE@
-
-EXPORT_HEADERS= CAM_Application.h \
- CAM_DataModel.h \
- CAM_DataObject.h \
- CAM.h \
- CAM_Module.h \
- CAM_Study.h \
- CAM_RootObject.h
-
-PO_FILES = CAM_msg_en.po
-
-LIB = libCAM.la
-
-LIB_SRC= CAM_Application.cxx \
- CAM_DataModel.cxx \
- CAM_DataObject.cxx \
- CAM_Module.cxx \
- CAM_Study.cxx \
- CAM_RootObject.cxx
-
-LIB_MOC = CAM_Application.h \
- CAM_Module.h \
- CAM_Study.h \
- CAM_DataModel.h
-
-CPPFLAGS+=$(QT_INCLUDES)
-
-LDFLAGS+=$(QT_MT_LIBS)
-
-LIBS+= -lsuit -lstd
-LDFLAGSFORBIN= -lSUITApp
-
-@CONCLUDE@
-
-
+++ /dev/null
-# This is a Qt message file in .po format. Each msgid starts with
-# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 1999-02-23 15:38+0200\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "ERROR_TLT"
-msgstr "Error"
-
-msgid "ERROR_ACTIVATE_MODULE_MSG"
-msgstr "Failed to activate module %1"
-
-msgid "BUT_OK"
-msgstr "Ok"
+++ /dev/null
-// File: SalomeApp.h
-// Created: November, 2004
-// Author: OCC team
-// Copyright (C) CEA 2004
-
-
-// The following ifdef block is the standard way of creating macros which make exporting
-// from a DLL simpler. All files within this DLL are compiled with the SalomeApp_EXPORTS
-// symbol defined on the command line. this symbol should not be defined on any project
-// that uses this DLL. This way any other project whose source files include this file see
-// SalomeApp_API functions as being imported from a DLL, wheras this DLL sees symbols
-// defined with this macro as being exported.
-#ifdef WNT
-
-#ifdef EVENT_EXPORTS
-#define EVENT_EXPORT __declspec(dllexport)
-#else
-#define EVENT_EXPORT __declspec(dllimport)
-#endif
-
-#else
-#define EVENT_EXPORT
-#endif //WNT
-
-#define APP_VERSION "0.1"
-
-#if defined WNT
-#pragma warning ( disable: 4251 )
-#endif
-
+++ /dev/null
-# 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 : Makefile.in
-# Author : Marc Tajchman (CEA)
-# Module : SALOME
-# $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl
-
-
-@COMMENCE@
-
-# header files
-EXPORT_HEADERS= \
- Event.h \
- SALOME_Event.hxx
-
-EXPORT_PYSCRIPTS =
-# Libraries targets
-
-LIB = libEvent.la
-LIB_SRC = SALOME_Event.cxx
-
-CPPFLAGS+=$(QT_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS+=$(QT_MT_LIBS)
-
-@CONCLUDE@
-
-
+++ /dev/null
-// KERNEL SALOME_Event : Define event posting mechanism
-//
-// 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_Event.cxx
-// Author : Sergey ANIKIN
-// Module : KERNEL
-// $Header$
-
-#include "SALOME_Event.hxx"
-
-//#include "utilities.h"
-
-#include <qsemaphore.h>
-#include <qapplication.h>
-#include <qthread.h>
-
-// asv 21.02.05 : introducing multi-platform approach of thread comparison
-// on Unix using pthread_t type for storing ThreadId
-// on Win32 using integer type for storing ThreadId
-// NOT using integer ThreadId on both Unix and Win32 because (from documentation):
-// "...Do not allow your program to rely on the internal structure or size of the pthread_t..."
-
-#ifdef WIN32
-#include <windows.h>
-
-static DWORD myThread;
-#else
-#include <qthread.h>
-#include <pthread.h>
-
-static pthread_t myThread;
-#endif
-
-void SALOME_Event::GetSessionThread(){
-#ifdef WIN32
- myThread = ::GetCurrentThreadId();
-#else
- myThread = pthread_self();
-#endif
-}
-
-bool SALOME_Event::IsSessionThread(){
- bool aResult = false;
-#ifdef WIN32
- aResult = myThread == ::GetCurrentThreadId();
-#else
- aResult = myThread == pthread_self();
-#endif
-// if(MYDEBUG) INFOS("IsSessionThread() - "<<aResult);
- return aResult;
-}
-
-
-//===========================================================
-/*!
- * SALOME_Event::SALOME_Event
- * Constructor
- */
-//===========================================================
-SALOME_Event::SALOME_Event(){
-// if(MYDEBUG) MESSAGE( "SALOME_Event::SALOME_Event(): this = "<<this );
- // Prepare the semaphore
- mySemaphore = new QSemaphore( 2 );
- *mySemaphore += 2;
-}
-
-//===========================================================
-/*!
- * SALOME_Event::~SALOME_Event
- * Destructor
- */
-//===========================================================
-SALOME_Event::~SALOME_Event(){
-// if(MYDEBUG) MESSAGE( "SALOME_Event::~SALOME_Event(): this = "<<this );
- if ( mySemaphore->available() < mySemaphore->total() )
- *mySemaphore -= mySemaphore->total() - mySemaphore->available();
- delete mySemaphore;
-}
-
-//===========================================================
-/*!
- * SALOME_Event::process
- * Posts the event and optionally waits for its completion
- */
-//===========================================================
-void SALOME_Event::process()
-{
- QThread::postEvent( qApp, new QCustomEvent( SALOME_EVENT, (void*)this ) );
-// if(MYDEBUG) MESSAGE( "SALOME_Event::process(): this = "<<this<<", *mySemaphore += 1 " );
- *mySemaphore += 1;
-// if(MYDEBUG) MESSAGE( "SALOME_Event::process(): this = "<<this<<" - COMPLETED" );
-}
-
-//===========================================================
-/*!
- * SALOME_Event::processed
- * Signals that this event has been processed
- */
-//===========================================================
-void SALOME_Event::processed()
-{
-// if(MYDEBUG) MESSAGE( "SALOME_Event::processed(): this = "<<this );
- // process() takes control over mySemaphore after the next line is executed
- *mySemaphore -= 1;
-}
+++ /dev/null
-// KERNEL SALOME_Event : Define event posting mechanism
-//
-// 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_Event.hxx
-// Author : Sergey ANIKIN
-// Module : KERNEL
-// $Header$
-
-
-#ifndef SALOME_Event_HeaderFile
-#define SALOME_Event_HeaderFile
-
-#include <qevent.h>
-
-#define SALOME_EVENT QEvent::Type( QEvent::User + 10000 )
-
-class QSemaphore;
-
-//===========================================================
-/*!
- * Class: SALOME_Event
- * Description:
- * This class encapsulates data and functionality required for
- * posting component-specific events to perform arbitrary operations in main GUI thread.
- * SALOME_Event objects can be posted by any thread belonging to the GUI process.
- *
- * It is necessary to derive a custom event class from SALOME_Event and
- * re-implement virtual Execute() method. This method should actually perform
- * the desirable operation. To pass all the required data to Execute() and store a return value,
- * arbitrary data fields can be added to the custom event class. There is
- * no need to protect such fields with a mutex, for only one thread working with
- * a SALOME_Event object is active at any moment.
- *
- * Usage:
- * - create SALOME_Event.
- * Components can derive their own event class from SALOME_Event
- * in order to pass custom data to the event handler.
- * - call process() method to post the event. After process() execution
- * it is possible to examine fields of your custom event object.
- * - perform delete operator on the event to wake up the desktop (you can also set <autoRelease>
- * parameter to TRUE to automatically wake up desktop after process()
- *
- * processed() method is used by the desktop to signal that event processing
- * has been completed.
- *
- * Caveats:
- * There is no.
- */
-//===========================================================
-
-#include <Event.h>
-
-class EVENT_EXPORT SALOME_Event{
-public:
- SALOME_Event();
- virtual ~SALOME_Event();
-
- // To do real work
- virtual void Execute() = 0;
-
- static bool IsSessionThread();
- void process();
-
-protected:
- void processed();
- friend class SalomeApp_EventFilter;
-
- static void GetSessionThread();
- friend int main(int, char **);
-
-private:
- QSemaphore* mySemaphore;
-};
-
-
-// Template classes for member function
-//-------------------------------------
-template<class TObject, typename TRes>
-class EVENT_EXPORT TMemFunEvent: public SALOME_Event{
-public:
- typedef TRes TResult;
- TResult myResult;
- typedef TResult (TObject::* TAction)();
- TMemFunEvent(TObject* theObject, TAction theAction,
- TResult theResult = TResult()):
- myObject(theObject),
- myAction(theAction),
- myResult(theResult)
- {}
- virtual void Execute(){
- myResult = (myObject->*myAction)();
- }
-private:
- TObject* myObject;
- TAction myAction;
-};
-
-
-template<class TObject>
-class EVENT_EXPORT TVoidMemFunEvent: public SALOME_Event{
-public:
- typedef void (TObject::* TAction)();
- TVoidMemFunEvent(TObject* theObject, TAction theAction):
- myObject(theObject),
- myAction(theAction)
- {}
- virtual void Execute(){
- (myObject->*myAction)();
- }
-private:
- TObject* myObject;
- TAction myAction;
-};
-
-
-// Template for member function with one argument
-//-----------------------------------------------
-template<class TObject, typename TRes,
- typename TArg, typename TStoreArg = TArg>
-class EVENT_EXPORT TMemFun1ArgEvent: public SALOME_Event{
-public:
- typedef TRes TResult;
- TResult myResult;
- typedef TResult (TObject::* TAction)(TArg);
- TMemFun1ArgEvent(TObject* theObject, TAction theAction, TArg theArg,
- TResult theResult = TResult()):
- myObject(theObject),
- myAction(theAction),
- myResult(theResult),
- myArg(theArg)
- {}
- virtual void Execute(){
- myResult = (myObject->*myAction)(myArg);
- }
-private:
- TObject* myObject;
- TAction myAction;
- TStoreArg myArg;
-};
-
-
-template<class TObject, typename TArg, typename TStoreArg = TArg>
-class EVENT_EXPORT TVoidMemFun1ArgEvent: public SALOME_Event{
-public:
- typedef void (TObject::* TAction)(TArg);
- TVoidMemFun1ArgEvent(TObject* theObject, TAction theAction, TArg theArg):
- myObject(theObject),
- myAction(theAction),
- myArg(theArg)
- {}
- virtual void Execute(){
- (myObject->*myAction)(myArg);
- }
-private:
- TObject* myObject;
- TAction myAction;
- TStoreArg myArg;
-};
-
-
-// Template for member function with one argument
-//-----------------------------------------------
-template<class TObject, typename TRes,
- typename TArg, typename TArg1,
- typename TStoreArg = TArg, typename TStoreArg1 = TArg1>
-class EVENT_EXPORT TMemFun2ArgEvent: public SALOME_Event{
-public:
- typedef TRes TResult;
- TResult myResult;
- typedef TResult (TObject::* TAction)(TArg,TArg1);
- TMemFun2ArgEvent(TObject* theObject, TAction theAction,
- TArg theArg, TArg1 theArg1,
- TResult theResult = TResult()):
- myObject(theObject),
- myAction(theAction),
- myResult(theResult),
- myArg(theArg),
- myArg1(theArg1)
- {}
- virtual void Execute(){
- myResult = (myObject->*myAction)(myArg,myArg1);
- }
-private:
- TObject* myObject;
- TAction myAction;
- TStoreArg myArg;
- TStoreArg1 myArg1;
-};
-
-
-template<class TObject, typename TArg, typename TArg1,
- typename TStoreArg = TArg, typename TStoreArg1 = TArg1>
-class EVENT_EXPORT TVoidMemFun2ArgEvent: public SALOME_Event{
-public:
- typedef void (TObject::* TAction)(TArg,TArg1);
- TVoidMemFun2ArgEvent(TObject* theObject, TAction theAction, TArg theArg, TArg1 theArg1):
- myObject(theObject),
- myAction(theAction),
- myArg(theArg),
- myArg1(theArg1)
- {}
- virtual void Execute(){
- (myObject->*myAction)(myArg,myArg1);
- }
-private:
- TObject* myObject;
- TAction myAction;
- TStoreArg myArg;
- TStoreArg1 myArg1;
-};
-
-
-// Template function for processing events with result returing
-template<class TEvent> inline typename TEvent::TResult ProcessEvent(TEvent* theEvent){
- typename TEvent::TResult aResult;
- if(SALOME_Event::IsSessionThread()){
- theEvent->Execute();
- aResult = theEvent->myResult;
- }else{
- theEvent->process();
- aResult = theEvent->myResult;
- }
- delete theEvent;
- return aResult;
-}
-
-
-// Template function for processing events without result
-inline void ProcessVoidEvent(SALOME_Event* theEvent){
- if(SALOME_Event::IsSessionThread()){
- theEvent->Execute();
- }else{
- theEvent->process();
- }
- delete theEvent;
-}
-
-
-#endif
+++ /dev/null
-// File: GLViewer_images.po
-// Created: 10/25/2004 12:46:36 PM
-// Author: Sergey Anikin
-// Copyright (C) CEA 2004
-
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 2005-05-05 10:17+0400\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "ICON_GL_FITALL"
-msgstr "view_fitall.png"
-
-msgid "ICON_GL_FITAREA"
-msgstr "view_fitarea.png"
-
-msgid "ICON_GL_FITSELECT"
-msgstr "view_fitselect.png"
-
-msgid "ICON_GL_GLOBALPAN"
-msgstr "view_glpan.png"
-
-msgid "ICON_GL_PAN"
-msgstr "view_pan.png"
-
-msgid "ICON_GL_RESET"
-msgstr "view_reset.png"
-
-msgid "ICON_GL_ZOOM"
-msgstr "view_zoom.png"
-
-msgid "ICON_GL_DUMP"
-msgstr "view_dump.png"
-
-msgid "ICON_GL_CURSOR_ZOOM"
-msgstr "cursor_zoom.png"
-
-msgid "ICON_GL_CURSOR_ROTATE"
-msgstr "cursor_rotate.png"
-
-msgid "ICON_GL_CURSOR_SKETCH"
-msgstr "cursor_sketch.png"
+++ /dev/null
-// File: GLViewer_msg_en.po
-// Created: 10/25/2004 12:46:36 PM
-// Author: Sergey Anikin
-// Copyright (C) CEA 2004
-
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 1999-02-23 15:38+0200\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "LBL_TOOLBAR_LABEL"
-msgstr "View Operations"
-
-msgid "DSC_RESET_VIEW"
-msgstr "Reset View Point"
-
-msgid "MNU_RESET_VIEW"
-msgstr "Reset"
-
-msgid "DSC_FITALL"
-msgstr "Fit all objects inside the view frame"
-
-msgid "MNU_FITALL"
-msgstr "Fit All"
-
-msgid "DSC_FITRECT"
-msgstr "Fit area within the view frame"
-
-msgid "MNU_FITRECT"
-msgstr "Fit Area"
-
-msgid "DSC_FITSELECT"
-msgstr "Fit area of selection within the view frame"
-
-msgid "MNU_FITSELECT"
-msgstr "Fit Selection"
-
-msgid "DSC_ZOOM_VIEW"
-msgstr "Zoom the view"
-
-msgid "MNU_ZOOM_VIEW"
-msgstr "Zoom"
-
-msgid "DSC_PAN_VIEW"
-msgstr "Panning the view"
-
-msgid "MNU_PAN_VIEW"
-msgstr "Panning"
-
-msgid "DSC_GLOBALPAN_VIEW"
-msgstr "Selection of a new center of the view"
-
-msgid "MNU_GLOBALPAN_VIEW"
-msgstr "Global Panning"
-
-msgid "DSC_DUMP_VIEW"
-msgstr "Saves the active view in the image file"
-
-msgid "MNU_DUMP_VIEW"
-msgstr "Dump"
-
-msgid "GL_IMAGE_FILES"
-msgstr "Images Files (*.bmp *.png)"
-
-msgid "INF_APP_DUMP_VIEW"
-msgstr "Dump view"
-
-msgid "ERR_DOC_CANT_SAVE_FILE"
-msgstr "Cannot save file"
-
-msgid "ERROR"
-msgstr "Error"
-
-msgid "BUT_OK"
-msgstr "Ok"
-
-msgid "CHANGE_BGCOLOR"
-msgstr "Change background..."
-
-msgid "GLViewer_ViewFrame::DUMP_VIEW_SAVE_FILE_DLG_CAPTION"
-msgstr "Save Dump View in file"
-
-msgid "GLViewer_ViewFrame::DUMP_VIEW_ERROR_DLG_CAPTION"
-msgstr "Error"
-
-msgid "GLViewer_ViewFrame::DUMP_VIEW_ERROR_DLG_TEXT"
-msgstr "Can't save Dump View in file"
+++ /dev/null
-// KERNEL SALOME_Event : Define event posting mechanism
-//
-// 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
-
-#include "LogWindow.h"
-
-#include <qfile.h>
-#include <qlayout.h>
-#include <qaction.h>
-#include <qpopupmenu.h>
-#include <qtextbrowser.h>
-#include <qapplication.h>
-#include <qdatetime.h>
-
-#include <SUIT_Tools.h>
-#include <SUIT_Session.h>
-#include <SUIT_MessageBox.h>
-#include <SUIT_ResourceMgr.h>
-
-#define DEFAULT_SEPARATOR "***"
-
-//****************************************************************
-static QString plainText( const QString& richText )
-{
- QString aText = richText;
- int startTag = aText.find('<');
- while ( 1 ) {
- if ( startTag < 0 )
- break;
- int finishTag = aText.find('>',startTag);
- if (finishTag < 0)
- break;
- aText = aText.remove(startTag, finishTag-startTag+1);
- startTag = aText.find('<');
- }
- return aText;
-}
-
-//****************************************************************
-
-LogWindow::LogWindow( QWidget* parent )
-: QFrame( parent ),
-SUIT_PopupClient()
-{
- SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
-
- QString fntSet = resMgr ? resMgr->stringValue( "Log Window", "font", QString::null ) : QString::null;
-
- setFont( SUIT_Tools::stringToFont( fntSet ) );
-
- myView = new QTextBrowser(this,"myView");
-#if QT_VERSION>0x030007
- myView->setTextFormat( Qt::LogText );
-#endif
- myView->viewport()->installEventFilter( this );
-
- QVBoxLayout* main = new QVBoxLayout( this );
- main->addWidget( myView );
-
- myBannerSize = 0;
- myBanner = "<b>Message Log</b>\n********************";
- mySeparator = DEFAULT_SEPARATOR;
-
- clear();
-
- createActions();
-}
-
-LogWindow::~LogWindow()
-{
-}
-
-bool LogWindow::eventFilter( QObject* o, QEvent* e )
-{
- if ( o == myView->viewport() && e->type() == QEvent::ContextMenu )
- {
- contextMenuRequest( (QContextMenuEvent*)e );
- return true;
- }
- return QFrame::eventFilter( o, e );
-}
-
-void LogWindow::setBanner( const QString& banner )
-{
- myBanner = banner;
-
- clear( false );
-}
-
-void LogWindow::setSeparator( const QString& separator )
-{
- mySeparator = separator;
-
- clear( false );
-}
-
-void LogWindow::putMessage( const QString& message, bool addSeparator )
-{
- myView->append( message );
- myHistory.append( plainText( message ) );
-
- if ( addSeparator && !mySeparator.isNull() )
- {
- myView->append( mySeparator ); // add separator
- myHistory.append( plainText( mySeparator ) );
- }
- myView->scrollToBottom();
-}
-
-void LogWindow::clear( bool clearHistory )
-{
- myView->clear();
- if ( clearHistory )
- myHistory.clear();
-
- if ( !myBanner.isEmpty() )
- {
- myView->append( myBanner );
- myBannerSize = myView->paragraphs();
- }
- else
- myBannerSize = 0;
-}
-
-bool LogWindow::saveLog( const QString& fileName )
-{
- QFile file( fileName );
- if ( !file.open( IO_WriteOnly ) )
- return false;
-
- QTextStream stream( &file );
-
- stream << "*****************************************" << endl;
- stream << "Message Log" << endl;
- stream << QDate::currentDate().toString( "dd.MM:yyyy" ) << " ";
- stream << QTime::currentTime().toString( "hh:mm:ss" ) << endl;
- stream << "*****************************************" << endl;
-
- for ( uint i = 0; i < myHistory.count(); i++ )
- stream << myHistory[ i ] << endl;
-
- file.close();
- return true;
-}
-
-void LogWindow::createActions()
-{
- QAction* a = new QAction( "", tr( "&Copy" ), 0, this );
- a->setStatusTip( tr( "&Copy" ) );
- connect( a, SIGNAL( activated() ), SLOT( onCopy()));
- myActions.insert( CopyId, a );
-
- a = new QAction( "", tr( "Clea&r" ), 0, this );
- a->setStatusTip( tr( "Clea&r" ) );
- connect( a, SIGNAL( activated() ), SLOT( onClear()));
- myActions.insert( ClearId, a );
-
- a = new QAction( "", tr( "Select &All" ), 0, this );
- a->setStatusTip( tr( "Select &All" ) );
- connect( a, SIGNAL( activated() ), SLOT( onSelectAll()));
- myActions.insert( SelectAllId, a );
-
- a = new QAction( "", tr( "&Save log to file..." ), 0, this );
- a->setStatusTip( tr( "&Save log to file..." ) );
- connect( a, SIGNAL( activated() ), SLOT( onSaveToFile()));
- myActions.insert( SaveToFileId, a );
-}
-
-void LogWindow::contextMenuPopup( QPopupMenu* popup )
-{
- myActions[ CopyId ]->addTo( popup );
- myActions[ ClearId ]->addTo( popup );
-
- popup->insertSeparator();
-
- myActions[ SelectAllId ]->addTo( popup );
-
- popup->insertSeparator();
-
- myActions[ SaveToFileId ]->addTo( popup );
-
- updateActions();
-}
-
-void LogWindow::updateActions()
-{
- int paraFrom, paraTo, indexFrom, indexTo;
- myView->getSelection( ¶From, &indexFrom, ¶To, &indexTo );
- bool allSelected = myView->hasSelectedText() &&
- !paraFrom && paraTo == myView->paragraphs() - 1 &&
- !indexFrom && indexTo == myView->paragraphLength( paraTo );
- myActions[ CopyId ]->setEnabled( myView->hasSelectedText() );
- myActions[ ClearId ]->setEnabled( myView->paragraphs() > myBannerSize );
- myActions[ SelectAllId ]->setEnabled( !allSelected );
- myActions[ SaveToFileId ]->setEnabled( myHistory.count() > 0 );
-}
-
-void LogWindow::onSaveToFile()
-{
- SUIT_Application* app = SUIT_Session::session()->activeApplication();
- if ( !app )
- return;
-
- // call application-specific "Save file" dialog box
- QString aName = app->getFileName( false, QString::null, QString( "*.log" ), QString::null, 0 );
- if ( aName.isNull() )
- return;
-
- QApplication::setOverrideCursor( Qt::waitCursor );
-
- bool bOk = saveLog( aName );
-
- QApplication::restoreOverrideCursor();
-
- if ( !bOk )
- SUIT_MessageBox::error1( this, tr( "Error" ), tr( "Can't save file" ), tr( "OK" ) );
-}
-
-void LogWindow::onSelectAll()
-{
- if ( myView )
- myView->selectAll();
-}
-
-void LogWindow::onClear()
-{
- clear( false );
-}
-
-void LogWindow::onCopy()
-{
- if ( myView )
- myView->copy();
-}
+++ /dev/null
-// KERNEL SALOME_Event : Define event posting mechanism
-//
-// 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 : LogWindow.h
-// Author :
-// Module : KERNEL
-
-#ifndef LogWindow_HeaderFile
-#define LogWindow_HeaderFile
-
-#if defined LOGWINDOW_EXPORTS
-#if defined WIN32
-#define LOGWINDOW_EXPORT __declspec( dllexport )
-#else
-#define LOGWINDOW_EXPORT
-#endif
-#else
-#if defined WIN32
-#define LOGWINDOW_EXPORT __declspec( dllimport )
-#else
-#define LOGWINDOW_EXPORT
-#endif
-#endif
-
-#include <SUIT_PopupClient.h>
-
-#include <qframe.h>
-#include <qstringlist.h>
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QAction;
-class QTextBrowser;
-
-class LOGWINDOW_EXPORT LogWindow : public QFrame, public SUIT_PopupClient
-{
- Q_OBJECT
-
- enum { CopyId, ClearId, SelectAllId, SaveToFileId };
-
-public:
- LogWindow( QWidget* theParent );
- virtual ~LogWindow();
-
- virtual QString popupClientType() const { return QString( "LogWindow" ); }
- virtual void contextMenuPopup( QPopupMenu* );
-
- bool eventFilter( QObject* o, QEvent* e );
-
- void setBanner( const QString& banner );
- void setSeparator( const QString& separator );
-
- virtual void putMessage( const QString& message, bool addSeparator = true );
- void clear( bool clearHistory = false );
-
- bool saveLog( const QString& fileName );
-
-protected slots:
- void onSaveToFile();
- void onSelectAll();
- void onClear();
- void onCopy();
-
-private:
- void createActions();
- void updateActions();
-
-private:
- QTextBrowser* myView;
- QString myBanner;
- QString mySeparator;
- QStringList myHistory;
- int myBannerSize;
- QMap<int, QAction*> myActions;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
+++ /dev/null
-# File : Makefile.in
-# Author : Vladimir Klyachin (OCN)
-# Module : LogWindow
-# $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-@COMMENCE@
-
-# header files
-EXPORT_HEADERS= LogWindow.h
-
-# Libraries targets
-LIB = libLogWindow.la
-
-LIB_SRC= LogWindow.cxx
-
-LIB_MOC = LogWindow.h
-
-CPPFLAGS+=$(QT_INCLUDES)
-
-LDFLAGS+=$(QT_MT_LIBS)
-
-@CONCLUDE@
-
-
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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 : Handle_SALOME_AISObject.hxx
-// Module : SALOME
-
-#ifndef _Handle_SALOME_AISObject_HeaderFile
-#define _Handle_SALOME_AISObject_HeaderFile
-
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#ifndef _Handle_AIS_InteractiveObject_HeaderFile
-#include <Handle_AIS_InteractiveObject.hxx>
-#endif
-
-class Standard_Transient;
-class Handle_Standard_Type;
-class Handle(AIS_InteractiveObject);
-class SALOME_AISObject;
-Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_AISObject);
-
-class Handle(SALOME_AISObject) : public Handle(AIS_InteractiveObject) {
- public:
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- Handle(SALOME_AISObject)():Handle(AIS_InteractiveObject)() {}
- Handle(SALOME_AISObject)(const Handle(SALOME_AISObject)& aHandle) : Handle(AIS_InteractiveObject)(aHandle)
- {
- }
-
- Handle(SALOME_AISObject)(const SALOME_AISObject* anItem) : Handle(AIS_InteractiveObject)((AIS_InteractiveObject *)anItem)
- {
- }
-
- Handle(SALOME_AISObject)& operator=(const Handle(SALOME_AISObject)& aHandle)
- {
- Assign(aHandle.Access());
- return *this;
- }
-
- Handle(SALOME_AISObject)& operator=(const SALOME_AISObject* anItem)
- {
- Assign((Standard_Transient *)anItem);
- return *this;
- }
-
- SALOME_AISObject* operator->()
- {
- return (SALOME_AISObject *)ControlAccess();
- }
-
- SALOME_AISObject* operator->() const
- {
- return (SALOME_AISObject *)ControlAccess();
- }
-
- Standard_EXPORT ~Handle(SALOME_AISObject)();
-
- Standard_EXPORT static const Handle(SALOME_AISObject) DownCast(const Handle(Standard_Transient)& AnObject);
-};
-#endif
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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 : Handle_SALOME_AISShape.hxx
-// Module : SALOME
-
-#ifndef _Handle_SALOME_AISShape_HeaderFile
-#define _Handle_SALOME_AISShape_HeaderFile
-
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#ifndef _Handle_AIS_Shape_HeaderFile
-#include <Handle_AIS_Shape.hxx>
-#endif
-
-class Standard_Transient;
-class Handle_Standard_Type;
-class Handle(AIS_Shape);
-class SALOME_AISShape;
-Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_AISShape);
-
-class Handle(SALOME_AISShape) : public Handle(AIS_Shape) {
- public:
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- Handle(SALOME_AISShape)():Handle(AIS_Shape)() {}
- Handle(SALOME_AISShape)(const Handle(SALOME_AISShape)& aHandle) : Handle(AIS_Shape)(aHandle)
- {
- }
-
- Handle(SALOME_AISShape)(const SALOME_AISShape* anItem) : Handle(AIS_Shape)((AIS_Shape *)anItem)
- {
- }
-
- Handle(SALOME_AISShape)& operator=(const Handle(SALOME_AISShape)& aHandle)
- {
- Assign(aHandle.Access());
- return *this;
- }
-
- Handle(SALOME_AISShape)& operator=(const SALOME_AISShape* anItem)
- {
- Assign((Standard_Transient *)anItem);
- return *this;
- }
-
- SALOME_AISShape* operator->()
- {
- return (SALOME_AISShape *)ControlAccess();
- }
-
- SALOME_AISShape* operator->() const
- {
- return (SALOME_AISShape *)ControlAccess();
- }
-
- Standard_EXPORT ~Handle(SALOME_AISShape)();
-
- Standard_EXPORT static const Handle(SALOME_AISShape) DownCast(const Handle(Standard_Transient)& AnObject);
-};
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx
-// Module : SALOME
-
-#ifndef _Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_HeaderFile
-#define _Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_HeaderFile
-
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#ifndef _Handle_TCollection_MapNode_HeaderFile
-#include <Handle_TCollection_MapNode.hxx>
-#endif
-
-class Standard_Transient;
-class Handle_Standard_Type;
-class Handle(TCollection_MapNode);
-class SALOME_DataMapNodeOfDataMapOfIOMapOfInteger;
-Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger);
-
-class Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) : public Handle(TCollection_MapNode) {
- public:
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)():Handle(TCollection_MapNode)() {}
- Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)(const Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)& aHandle) : Handle(TCollection_MapNode)(aHandle)
- {
- }
-
- Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)(const SALOME_DataMapNodeOfDataMapOfIOMapOfInteger* anItem) : Handle(TCollection_MapNode)((TCollection_MapNode *)anItem)
- {
- }
-
- Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)& operator=(const Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)& aHandle)
- {
- Assign(aHandle.Access());
- return *this;
- }
-
- Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)& operator=(const SALOME_DataMapNodeOfDataMapOfIOMapOfInteger* anItem)
- {
- Assign((Standard_Transient *)anItem);
- return *this;
- }
-
- SALOME_DataMapNodeOfDataMapOfIOMapOfInteger* operator->()
- {
- return (SALOME_DataMapNodeOfDataMapOfIOMapOfInteger *)ControlAccess();
- }
-
- SALOME_DataMapNodeOfDataMapOfIOMapOfInteger* operator->() const
- {
- return (SALOME_DataMapNodeOfDataMapOfIOMapOfInteger *)ControlAccess();
- }
-
- Standard_EXPORT ~Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)();
-
- Standard_EXPORT static const Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) DownCast(const Handle(Standard_Transient)& AnObject);
-};
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : Handle_SALOME_Filter.hxx
-// Module : SALOME
-
-#ifndef _Handle_SALOME_Filter_HeaderFile
-#define _Handle_SALOME_Filter_HeaderFile
-
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#ifndef _Handle_MMgt_TShared_HeaderFile
-#include <Handle_MMgt_TShared.hxx>
-#endif
-
-class Standard_Transient;
-class Handle_Standard_Type;
-class Handle(MMgt_TShared);
-class SALOME_Filter;
-Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_Filter);
-
-class Handle(SALOME_Filter) : public Handle(MMgt_TShared) {
- public:
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- Handle(SALOME_Filter)():Handle(MMgt_TShared)() {}
- Handle(SALOME_Filter)(const Handle(SALOME_Filter)& aHandle) : Handle(MMgt_TShared)(aHandle)
- {
- }
-
- Handle(SALOME_Filter)(const SALOME_Filter* anItem) : Handle(MMgt_TShared)((MMgt_TShared *)anItem)
- {
- }
-
- Handle(SALOME_Filter)& operator=(const Handle(SALOME_Filter)& aHandle)
- {
- Assign(aHandle.Access());
- return *this;
- }
-
- Handle(SALOME_Filter)& operator=(const SALOME_Filter* anItem)
- {
- Assign((Standard_Transient *)anItem);
- return *this;
- }
-
- SALOME_Filter* operator->()
- {
- return (SALOME_Filter *)ControlAccess();
- }
-
- SALOME_Filter* operator->() const
- {
- return (SALOME_Filter *)ControlAccess();
- }
-
- Standard_EXPORT ~Handle(SALOME_Filter)();
-
- Standard_EXPORT static const Handle(SALOME_Filter) DownCast(const Handle(Standard_Transient)& AnObject);
-};
-#endif
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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 : Handle_SALOME_InteractiveObject.hxx
-// Module : SALOME
-
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#define _Handle_SALOME_InteractiveObject_HeaderFile
-
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#ifndef _Handle_MMgt_TShared_HeaderFile
-#include <Handle_MMgt_TShared.hxx>
-#endif
-
-class Standard_Transient;
-class Handle_Standard_Type;
-class Handle(MMgt_TShared);
-class SALOME_InteractiveObject;
-Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_InteractiveObject);
-
-class Handle(SALOME_InteractiveObject) : public Handle(MMgt_TShared) {
- 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(SALOME_InteractiveObject)():Handle(MMgt_TShared)() {}
- Handle(SALOME_InteractiveObject)(const Handle(SALOME_InteractiveObject)& aHandle) : Handle(MMgt_TShared)(aHandle)
- {
- }
-
- Handle(SALOME_InteractiveObject)(const SALOME_InteractiveObject* anItem) : Handle(MMgt_TShared)((MMgt_TShared *)anItem)
- {
- }
-
- Handle(SALOME_InteractiveObject)& operator=(const Handle(SALOME_InteractiveObject)& aHandle)
- {
- Assign(aHandle.Access());
- return *this;
- }
-
- Handle(SALOME_InteractiveObject)& operator=(const SALOME_InteractiveObject* anItem)
- {
- Assign((Standard_Transient *)anItem);
- return *this;
- }
-
- SALOME_InteractiveObject* operator->()
- {
- return (SALOME_InteractiveObject *)ControlAccess();
- }
-
- SALOME_InteractiveObject* operator->() const
- {
- return (SALOME_InteractiveObject *)ControlAccess();
- }
-
- Standard_EXPORT ~Handle(SALOME_InteractiveObject)();
-
- Standard_EXPORT static const Handle(SALOME_InteractiveObject) DownCast(const Handle(Standard_Transient)& AnObject);
-};
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : Handle_SALOME_ListNodeOfListIO.hxx
-// Module : SALOME
-
-#ifndef _Handle_SALOME_ListNodeOfListIO_HeaderFile
-#define _Handle_SALOME_ListNodeOfListIO_HeaderFile
-
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#ifndef _Handle_TCollection_MapNode_HeaderFile
-#include <Handle_TCollection_MapNode.hxx>
-#endif
-
-class Standard_Transient;
-class Handle_Standard_Type;
-class Handle(TCollection_MapNode);
-class SALOME_ListNodeOfListIO;
-Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_ListNodeOfListIO);
-
-class Handle(SALOME_ListNodeOfListIO) : public Handle(TCollection_MapNode) {
- 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(SALOME_ListNodeOfListIO)():Handle(TCollection_MapNode)() {}
- Handle(SALOME_ListNodeOfListIO)(const Handle(SALOME_ListNodeOfListIO)& aHandle) : Handle(TCollection_MapNode)(aHandle)
- {
- }
-
- Handle(SALOME_ListNodeOfListIO)(const SALOME_ListNodeOfListIO* anItem) : Handle(TCollection_MapNode)((TCollection_MapNode *)anItem)
- {
- }
-
- Handle(SALOME_ListNodeOfListIO)& operator=(const Handle(SALOME_ListNodeOfListIO)& aHandle)
- {
- Assign(aHandle.Access());
- return *this;
- }
-
- Handle(SALOME_ListNodeOfListIO)& operator=(const SALOME_ListNodeOfListIO* anItem)
- {
- Assign((Standard_Transient *)anItem);
- return *this;
- }
-
- SALOME_ListNodeOfListIO* operator->()
- {
- return (SALOME_ListNodeOfListIO *)ControlAccess();
- }
-
- SALOME_ListNodeOfListIO* operator->() const
- {
- return (SALOME_ListNodeOfListIO *)ControlAccess();
- }
-
- Standard_EXPORT ~Handle(SALOME_ListNodeOfListIO)();
-
- Standard_EXPORT static const Handle(SALOME_ListNodeOfListIO) DownCast(const Handle(Standard_Transient)& AnObject);
-};
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : Handle_SALOME_TypeFilter.hxx
-// Module : SALOME
-
-#ifndef _Handle_SALOME_TypeFilter_HeaderFile
-#define _Handle_SALOME_TypeFilter_HeaderFile
-
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#ifndef _Handle_SALOME_Filter_HeaderFile
-#include <Handle_SALOME_Filter.hxx>
-#endif
-
-class Standard_Transient;
-class Handle_Standard_Type;
-class Handle(SALOME_Filter);
-class SALOME_TypeFilter;
-Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_TypeFilter);
-
-class Handle(SALOME_TypeFilter) : public Handle(SALOME_Filter) {
- public:
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- Handle(SALOME_TypeFilter)():Handle(SALOME_Filter)() {}
- Handle(SALOME_TypeFilter)(const Handle(SALOME_TypeFilter)& aHandle) : Handle(SALOME_Filter)(aHandle)
- {
- }
-
- Handle(SALOME_TypeFilter)(const SALOME_TypeFilter* anItem) : Handle(SALOME_Filter)((SALOME_Filter *)anItem)
- {
- }
-
- Handle(SALOME_TypeFilter)& operator=(const Handle(SALOME_TypeFilter)& aHandle)
- {
- Assign(aHandle.Access());
- return *this;
- }
-
- Handle(SALOME_TypeFilter)& operator=(const SALOME_TypeFilter* anItem)
- {
- Assign((Standard_Transient *)anItem);
- return *this;
- }
-
- SALOME_TypeFilter* operator->()
- {
- return (SALOME_TypeFilter *)ControlAccess();
- }
-
- SALOME_TypeFilter* operator->() const
- {
- return (SALOME_TypeFilter *)ControlAccess();
- }
-
- Standard_EXPORT ~Handle(SALOME_TypeFilter)();
-
- Standard_EXPORT static const Handle(SALOME_TypeFilter) DownCast(const Handle(Standard_Transient)& AnObject);
-};
-#endif
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_AISObject.hxx
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-//using namespace std;
-#include "SALOME_AISObject.ixx"
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_AISObject.hxx
-// Module : SALOME
-
-#ifndef _SALOME_AISObject_HeaderFile
-#define _SALOME_AISObject_HeaderFile
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Handle_SALOME_AISObject_HeaderFile
-#include <Handle_SALOME_AISObject.hxx>
-#endif
-
-#ifndef _AIS_InteractiveObject_HeaderFile
-#include <AIS_InteractiveObject.hxx>
-#endif
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include <Standard_Boolean.hxx>
-#endif
-#ifndef _Standard_CString_HeaderFile
-#include <Standard_CString.hxx>
-#endif
-class SALOME_InteractiveObject;
-
-
-class SALOME_AISObject : public AIS_InteractiveObject {
-
-public:
-
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- // Methods PUBLIC
- //
-Standard_EXPORT virtual Handle_SALOME_InteractiveObject getIO() = 0;
-Standard_EXPORT virtual Standard_Boolean hasIO() = 0;
-Standard_EXPORT virtual Standard_CString getName() = 0;
-Standard_EXPORT virtual void setName(const Standard_CString aName) = 0;
-Standard_EXPORT ~SALOME_AISObject();
-
-
-
-
- // Type management
- //
- Standard_EXPORT friend Handle_Standard_Type& SALOME_AISObject_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
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_AISObject.ixx
-// Module : SALOME
-
-#include "SALOME_AISObject.jxx"
-
-#ifndef _Standard_TypeMismatch_HeaderFile
-#include <Standard_TypeMismatch.hxx>
-#endif
-
-SALOME_AISObject::~SALOME_AISObject() {}
-
-
-
-Standard_EXPORT Handle_Standard_Type& SALOME_AISObject_Type_()
-{
-
- static Handle_Standard_Type aType1 = STANDARD_TYPE(AIS_InteractiveObject);
- if ( aType1.IsNull()) aType1 = STANDARD_TYPE(AIS_InteractiveObject);
- static Handle_Standard_Type aType2 = STANDARD_TYPE(SelectMgr_SelectableObject);
- if ( aType2.IsNull()) aType2 = STANDARD_TYPE(SelectMgr_SelectableObject);
- static Handle_Standard_Type aType3 = STANDARD_TYPE(PrsMgr_PresentableObject);
- if ( aType3.IsNull()) aType3 = STANDARD_TYPE(PrsMgr_PresentableObject);
- static Handle_Standard_Type aType4 = STANDARD_TYPE(MMgt_TShared);
- if ( aType4.IsNull()) aType4 = STANDARD_TYPE(MMgt_TShared);
- static Handle_Standard_Type aType5 = STANDARD_TYPE(Standard_Transient);
- if ( aType5.IsNull()) aType5 = STANDARD_TYPE(Standard_Transient);
-
-
- static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,aType4,aType5,NULL};
- static Handle_Standard_Type _aType = new Standard_Type("SALOME_AISObject",
- sizeof(SALOME_AISObject),
- 1,
- (Standard_Address)_Ancestors,
- (Standard_Address)NULL);
-
- return _aType;
-}
-
-
-// DownCast method
-// allow safe downcasting
-//
-const Handle(SALOME_AISObject) Handle(SALOME_AISObject)::DownCast(const Handle(Standard_Transient)& AnObject)
-{
- Handle(SALOME_AISObject) _anOtherObject;
-
- if (!AnObject.IsNull()) {
- if (AnObject->IsKind(STANDARD_TYPE(SALOME_AISObject))) {
- _anOtherObject = Handle(SALOME_AISObject)((Handle(SALOME_AISObject)&)AnObject);
- }
- }
-
- return _anOtherObject ;
-}
-const Handle(Standard_Type)& SALOME_AISObject::DynamicType() const
-{
- return STANDARD_TYPE(SALOME_AISObject) ;
-}
-Standard_Boolean SALOME_AISObject::IsKind(const Handle(Standard_Type)& AType) const
-{
- return (STANDARD_TYPE(SALOME_AISObject) == AType || AIS_InteractiveObject::IsKind(AType));
-}
-Handle_SALOME_AISObject::~Handle_SALOME_AISObject() {}
-
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_AISObject.jxx
-// Module : SALOME
-
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#include "SALOME_InteractiveObject.hxx"
-#endif
-#ifndef _SALOME_AISObject_HeaderFile
-#include "SALOME_AISObject.hxx"
-#endif
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_AISShape.hxx
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-//using namespace std;
-#include "SALOME_AISShape.ixx"
-
-SALOME_AISShape::SALOME_AISShape(const TopoDS_Shape& shape): AIS_Shape(shape) {
-}
-
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_AISShape.hxx
-// Module : SALOME
-
-#ifndef _SALOME_AISShape_HeaderFile
-#define _SALOME_AISShape_HeaderFile
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Handle_SALOME_AISShape_HeaderFile
-#include <Handle_SALOME_AISShape.hxx>
-#endif
-
-#ifndef _Standard_CString_HeaderFile
-#include <Standard_CString.hxx>
-#endif
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-#ifndef _AIS_Shape_HeaderFile
-#include <AIS_Shape.hxx>
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include <Standard_Boolean.hxx>
-#endif
-class SALOME_InteractiveObject;
-class TopoDS_Shape;
-class TColStd_IndexedMapOfInteger;
-
-
-class SALOME_AISShape : public AIS_Shape {
-
-public:
-
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- // Methods PUBLIC
- //
-Standard_EXPORT SALOME_AISShape(const TopoDS_Shape& shape);
-Standard_EXPORT virtual Handle_SALOME_InteractiveObject getIO() = 0;
-Standard_EXPORT virtual Standard_Boolean hasIO() = 0;
-Standard_EXPORT virtual Standard_CString getName() = 0;
-Standard_EXPORT virtual void setName(const Standard_CString aName) = 0;
-Standard_EXPORT virtual void highlightSubShapes(const TColStd_IndexedMapOfInteger& aIndexMap, const Standard_Boolean aHighlight ) = 0;
-Standard_EXPORT ~SALOME_AISShape();
-
-
-
-
- // Type management
- //
- Standard_EXPORT friend Handle_Standard_Type& SALOME_AISShape_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
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_AISShape.ixx
-// Module : SALOME
-
-#include "SALOME_AISShape.jxx"
-
-#ifndef _Standard_TypeMismatch_HeaderFile
-#include <Standard_TypeMismatch.hxx>
-#endif
-
-SALOME_AISShape::~SALOME_AISShape() {}
-
-
-
-Standard_EXPORT Handle_Standard_Type& SALOME_AISShape_Type_()
-{
-
- static Handle_Standard_Type aType1 = STANDARD_TYPE(AIS_Shape);
- if ( aType1.IsNull()) aType1 = STANDARD_TYPE(AIS_Shape);
- static Handle_Standard_Type aType2 = STANDARD_TYPE(AIS_InteractiveObject);
- if ( aType2.IsNull()) aType2 = STANDARD_TYPE(AIS_InteractiveObject);
- static Handle_Standard_Type aType3 = STANDARD_TYPE(SelectMgr_SelectableObject);
- if ( aType3.IsNull()) aType3 = STANDARD_TYPE(SelectMgr_SelectableObject);
- static Handle_Standard_Type aType4 = STANDARD_TYPE(PrsMgr_PresentableObject);
- if ( aType4.IsNull()) aType4 = STANDARD_TYPE(PrsMgr_PresentableObject);
- static Handle_Standard_Type aType5 = STANDARD_TYPE(MMgt_TShared);
- if ( aType5.IsNull()) aType5 = STANDARD_TYPE(MMgt_TShared);
- static Handle_Standard_Type aType6 = STANDARD_TYPE(Standard_Transient);
- if ( aType6.IsNull()) aType6 = STANDARD_TYPE(Standard_Transient);
-
-
- static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,aType4,aType5,aType6,NULL};
- static Handle_Standard_Type _aType = new Standard_Type("SALOME_AISShape",
- sizeof(SALOME_AISShape),
- 1,
- (Standard_Address)_Ancestors,
- (Standard_Address)NULL);
-
- return _aType;
-}
-
-
-// DownCast method
-// allow safe downcasting
-//
-const Handle(SALOME_AISShape) Handle(SALOME_AISShape)::DownCast(const Handle(Standard_Transient)& AnObject)
-{
- Handle(SALOME_AISShape) _anOtherObject;
-
- if (!AnObject.IsNull()) {
- if (AnObject->IsKind(STANDARD_TYPE(SALOME_AISShape))) {
- _anOtherObject = Handle(SALOME_AISShape)((Handle(SALOME_AISShape)&)AnObject);
- }
- }
-
- return _anOtherObject ;
-}
-const Handle(Standard_Type)& SALOME_AISShape::DynamicType() const
-{
- return STANDARD_TYPE(SALOME_AISShape) ;
-}
-Standard_Boolean SALOME_AISShape::IsKind(const Handle(Standard_Type)& AType) const
-{
- return (STANDARD_TYPE(SALOME_AISShape) == AType || AIS_Shape::IsKind(AType));
-}
-Handle_SALOME_AISShape::~Handle_SALOME_AISShape() {}
-
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_AISShape.jxx
-// Module : SALOME
-
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#include "SALOME_InteractiveObject.hxx"
-#endif
-#ifndef _TopoDS_Shape_HeaderFile
-#include <TopoDS_Shape.hxx>
-#endif
-#ifndef _SALOME_AISShape_HeaderFile
-#include "SALOME_AISShape.hxx"
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx
-// Module : SALOME
-
-#ifndef _SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger_HeaderFile
-#define _SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger_HeaderFile
-
-#ifndef _TCollection_BasicMapIterator_HeaderFile
-#include <TCollection_BasicMapIterator.hxx>
-#endif
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-#ifndef _Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_HeaderFile
-#include <Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx>
-#endif
-class Standard_NoSuchObject;
-class SALOME_InteractiveObject;
-class TColStd_IndexedMapOfInteger;
-class TColStd_MapTransientHasher;
-class SALOME_DataMapOfIOMapOfInteger;
-class SALOME_DataMapNodeOfDataMapOfIOMapOfInteger;
-
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-
-class SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger : public TCollection_BasicMapIterator {
-
-public:
-
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- // Methods PUBLIC
- //
-Standard_EXPORT SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger();
-Standard_EXPORT SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger(const SALOME_DataMapOfIOMapOfInteger& aMap);
-Standard_EXPORT void Initialize(const SALOME_DataMapOfIOMapOfInteger& aMap) ;
-Standard_EXPORT const Handle_SALOME_InteractiveObject& Key() const;
-Standard_EXPORT const TColStd_IndexedMapOfInteger& Value() const;
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- //
-
-
- // Fields PROTECTED
- //
-
-
-private:
-
- // Methods PRIVATE
- //
-
-
- // Fields PRIVATE
- //
-
-
-};
-
-
-
-
-
-// other inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_DataMapIteratorOfDataMapOfIOMapOfInteger_0.cxx
-// Module : SALOME
-
-#include "SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx"
-
-#ifndef _Standard_NoSuchObject_HeaderFile
-#include <Standard_NoSuchObject.hxx>
-#endif
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#include "SALOME_InteractiveObject.hxx"
-#endif
-#ifndef _TColStd_IndexedMapOfInteger_HeaderFile
-#include <TColStd_IndexedMapOfInteger.hxx>
-#endif
-#ifndef _TColStd_MapTransientHasher_HeaderFile
-#include <TColStd_MapTransientHasher.hxx>
-#endif
-#ifndef _SALOME_DataMapOfIOMapOfInteger_HeaderFile
-#include "SALOME_DataMapOfIOMapOfInteger.hxx"
-#endif
-#ifndef _SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_HeaderFile
-#include "SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx"
-#endif
-using namespace std;
-
-
-#define TheKey Handle_SALOME_InteractiveObject
-#define TheKey_hxx "SALOME_InteractiveObject.hxx"
-#define TheItem TColStd_IndexedMapOfInteger
-#define TheItem_hxx <TColStd_IndexedMapOfInteger.hxx>
-#define Hasher TColStd_MapTransientHasher
-#define Hasher_hxx <TColStd_MapTransientHasher.hxx>
-#define TCollection_DataMapNode SALOME_DataMapNodeOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapNode_hxx "SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx"
-#define TCollection_DataMapIterator SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapIterator_hxx "SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx"
-#define Handle_TCollection_DataMapNode Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapNode_Type_() SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_Type_()
-#define TCollection_DataMap SALOME_DataMapOfIOMapOfInteger
-#define TCollection_DataMap_hxx "SALOME_DataMapOfIOMapOfInteger.hxx"
-#include <TCollection_DataMapIterator.gxx>
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_DataMapNodeOfDataMapOfIOMapOfInteger.hxx
-// Module : SALOME
-
-#ifndef _SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_HeaderFile
-#define _SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_HeaderFile
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_HeaderFile
-#include <Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx>
-#endif
-
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-#ifndef _TColStd_IndexedMapOfInteger_HeaderFile
-#include <TColStd_IndexedMapOfInteger.hxx>
-#endif
-#ifndef _TCollection_MapNode_HeaderFile
-#include <TCollection_MapNode.hxx>
-#endif
-#ifndef _TCollection_MapNodePtr_HeaderFile
-#include <TCollection_MapNodePtr.hxx>
-#endif
-class SALOME_InteractiveObject;
-class TColStd_IndexedMapOfInteger;
-class TColStd_MapTransientHasher;
-class SALOME_DataMapOfIOMapOfInteger;
-class SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger;
-
-
-class SALOME_DataMapNodeOfDataMapOfIOMapOfInteger : public TCollection_MapNode {
-
-public:
-
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- // Methods PUBLIC
- //
-Standard_EXPORT inline SALOME_DataMapNodeOfDataMapOfIOMapOfInteger(const Handle(SALOME_InteractiveObject)& K,const TColStd_IndexedMapOfInteger& I,const TCollection_MapNodePtr& n);
-Standard_EXPORT inline Handle_SALOME_InteractiveObject& Key() const;
-Standard_EXPORT inline TColStd_IndexedMapOfInteger& Value() const;
-Standard_EXPORT ~SALOME_DataMapNodeOfDataMapOfIOMapOfInteger();
-
-
-
-
- // Type management
- //
- Standard_EXPORT friend Handle_Standard_Type& SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_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
- //
-Handle_SALOME_InteractiveObject myKey;
-TColStd_IndexedMapOfInteger myValue;
-
-
-};
-
-#define TheKey Handle_SALOME_InteractiveObject
-#define TheKey_hxx "SALOME_InteractiveObject.hxx"
-#define TheItem TColStd_IndexedMapOfInteger
-#define TheItem_hxx <TColStd_IndexedMapOfInteger.hxx>
-#define Hasher TColStd_MapTransientHasher
-#define Hasher_hxx <TColStd_MapTransientHasher.hxx>
-#define TCollection_DataMapNode SALOME_DataMapNodeOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapNode_hxx "SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx"
-#define TCollection_DataMapIterator SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapIterator_hxx "SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx"
-#define Handle_TCollection_DataMapNode Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapNode_Type_() SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_Type_()
-#define TCollection_DataMap SALOME_DataMapOfIOMapOfInteger
-#define TCollection_DataMap_hxx "SALOME_DataMapOfIOMapOfInteger.hxx"
-
-#include <TCollection_DataMapNode.lxx>
-
-#undef TheKey
-#undef TheKey_hxx
-#undef TheItem
-#undef TheItem_hxx
-#undef Hasher
-#undef Hasher_hxx
-#undef TCollection_DataMapNode
-#undef TCollection_DataMapNode_hxx
-#undef TCollection_DataMapIterator
-#undef TCollection_DataMapIterator_hxx
-#undef Handle_TCollection_DataMapNode
-#undef TCollection_DataMapNode_Type_
-#undef TCollection_DataMap
-#undef TCollection_DataMap_hxx
-
-
-// other inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_DataMapNodeOfDataMapOfIOMapOfInteger_0.cxx
-// Module : SALOME
-
-#include "SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx"
-
-#ifndef _Standard_TypeMismatch_HeaderFile
-#include <Standard_TypeMismatch.hxx>
-#endif
-
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#include "SALOME_InteractiveObject.hxx"
-#endif
-#ifndef _TColStd_IndexedMapOfInteger_HeaderFile
-#include <TColStd_IndexedMapOfInteger.hxx>
-#endif
-#ifndef _TColStd_MapTransientHasher_HeaderFile
-#include <TColStd_MapTransientHasher.hxx>
-#endif
-#ifndef _SALOME_DataMapOfIOMapOfInteger_HeaderFile
-#include "SALOME_DataMapOfIOMapOfInteger.hxx"
-#endif
-#ifndef _SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger_HeaderFile
-#include "SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx"
-#endif
-using namespace std;
-SALOME_DataMapNodeOfDataMapOfIOMapOfInteger::~SALOME_DataMapNodeOfDataMapOfIOMapOfInteger() {}
-
-
-
-Standard_EXPORT Handle_Standard_Type& SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_Type_()
-{
-
- static Handle_Standard_Type aType1 = STANDARD_TYPE(TCollection_MapNode);
- if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TCollection_MapNode);
- static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
- if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared);
- static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
- if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient);
-
-
- static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
- static Handle_Standard_Type _aType = new Standard_Type("SALOME_DataMapNodeOfDataMapOfIOMapOfInteger",
- sizeof(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger),
- 1,
- (Standard_Address)_Ancestors,
- (Standard_Address)NULL);
-
- return _aType;
-}
-
-
-// DownCast method
-// allow safe downcasting
-//
-const Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)::DownCast(const Handle(Standard_Transient)& AnObject)
-{
- Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) _anOtherObject;
-
- if (!AnObject.IsNull()) {
- if (AnObject->IsKind(STANDARD_TYPE(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger))) {
- _anOtherObject = Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)((Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)&)AnObject);
- }
- }
-
- return _anOtherObject ;
-}
-const Handle(Standard_Type)& SALOME_DataMapNodeOfDataMapOfIOMapOfInteger::DynamicType() const
-{
- return STANDARD_TYPE(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) ;
-}
-Standard_Boolean SALOME_DataMapNodeOfDataMapOfIOMapOfInteger::IsKind(const Handle(Standard_Type)& AType) const
-{
- return (STANDARD_TYPE(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) == AType || TCollection_MapNode::IsKind(AType));
-}
-Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger::~Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger() {}
-#define TheKey Handle_SALOME_InteractiveObject
-#define TheKey_hxx "SALOME_InteractiveObject.hxx"
-#define TheItem TColStd_IndexedMapOfInteger
-#define TheItem_hxx <TColStd_IndexedMapOfInteger.hxx>
-#define Hasher TColStd_MapTransientHasher
-#define Hasher_hxx <TColStd_MapTransientHasher.hxx>
-#define TCollection_DataMapNode SALOME_DataMapNodeOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapNode_hxx "SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx"
-#define TCollection_DataMapIterator SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapIterator_hxx "SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx"
-#define Handle_TCollection_DataMapNode Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapNode_Type_() SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_Type_()
-#define TCollection_DataMap SALOME_DataMapOfIOMapOfInteger
-#define TCollection_DataMap_hxx "SALOME_DataMapOfIOMapOfInteger.hxx"
-#include <TCollection_DataMapNode.gxx>
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_DataMapOfIOMapOfInteger.hxx
-// Module : SALOME
-
-#ifndef _SALOME_DataMapOfIOMapOfInteger_HeaderFile
-#define _SALOME_DataMapOfIOMapOfInteger_HeaderFile
-
-#ifndef _TCollection_BasicMap_HeaderFile
-#include <TCollection_BasicMap.hxx>
-#endif
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-#ifndef _Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_HeaderFile
-#include <Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx>
-#endif
-#ifndef _Standard_Integer_HeaderFile
-#include <Standard_Integer.hxx>
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include <Standard_Boolean.hxx>
-#endif
-class Standard_DomainError;
-class Standard_NoSuchObject;
-class SALOME_InteractiveObject;
-class TColStd_IndexedMapOfInteger;
-class TColStd_MapTransientHasher;
-class SALOME_DataMapNodeOfDataMapOfIOMapOfInteger;
-class SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger;
-
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-
-class SALOME_DataMapOfIOMapOfInteger : public TCollection_BasicMap {
-
-public:
-
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- // Methods PUBLIC
- //
-Standard_EXPORT SALOME_DataMapOfIOMapOfInteger(const Standard_Integer NbBuckets = 1);
-Standard_EXPORT SALOME_DataMapOfIOMapOfInteger& Assign(const SALOME_DataMapOfIOMapOfInteger& Other) ;
- SALOME_DataMapOfIOMapOfInteger& operator =(const SALOME_DataMapOfIOMapOfInteger& Other)
-{
- return Assign(Other);
-}
-
-Standard_EXPORT void ReSize(const Standard_Integer NbBuckets) ;
-Standard_EXPORT void Clear() ;
-~SALOME_DataMapOfIOMapOfInteger()
-{
- Clear();
-}
-
-Standard_EXPORT Standard_Boolean Bind(const Handle(SALOME_InteractiveObject)& K,const TColStd_IndexedMapOfInteger& I) ;
-Standard_EXPORT Standard_Boolean IsBound(const Handle(SALOME_InteractiveObject)& K) const;
-Standard_EXPORT Standard_Boolean UnBind(const Handle(SALOME_InteractiveObject)& K) ;
-Standard_EXPORT const TColStd_IndexedMapOfInteger& Find(const Handle(SALOME_InteractiveObject)& K) const;
- const TColStd_IndexedMapOfInteger& operator()(const Handle(SALOME_InteractiveObject)& K) const
-{
- return Find(K);
-}
-
-Standard_EXPORT TColStd_IndexedMapOfInteger& ChangeFind(const Handle(SALOME_InteractiveObject)& K) ;
- TColStd_IndexedMapOfInteger& operator()(const Handle(SALOME_InteractiveObject)& K)
-{
- return ChangeFind(K);
-}
-
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- //
-
-
- // Fields PROTECTED
- //
-
-
-private:
-
- // Methods PRIVATE
- //
-Standard_EXPORT SALOME_DataMapOfIOMapOfInteger(const SALOME_DataMapOfIOMapOfInteger& Other);
-
-
- // Fields PRIVATE
- //
-
-
-};
-
-
-
-
-
-// other inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_DataMapOfIOMapOfInteger_0.cxx
-// Module : SALOME
-
-#include "SALOME_DataMapOfIOMapOfInteger.hxx"
-
-#ifndef _Standard_DomainError_HeaderFile
-#include <Standard_DomainError.hxx>
-#endif
-#ifndef _Standard_NoSuchObject_HeaderFile
-#include <Standard_NoSuchObject.hxx>
-#endif
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#include "SALOME_InteractiveObject.hxx"
-#endif
-#ifndef _TColStd_IndexedMapOfInteger_HeaderFile
-#include <TColStd_IndexedMapOfInteger.hxx>
-#endif
-#ifndef _TColStd_MapTransientHasher_HeaderFile
-#include <TColStd_MapTransientHasher.hxx>
-#endif
-#ifndef _SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_HeaderFile
-#include "SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx"
-#endif
-#ifndef _SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger_HeaderFile
-#include "SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx"
-#endif
-using namespace std;
-
-
-#define TheKey Handle_SALOME_InteractiveObject
-#define TheKey_hxx "SALOME_InteractiveObject.hxx"
-#define TheItem TColStd_IndexedMapOfInteger
-#define TheItem_hxx <TColStd_IndexedMapOfInteger.hxx>
-#define Hasher TColStd_MapTransientHasher
-#define Hasher_hxx <TColStd_MapTransientHasher.hxx>
-#define TCollection_DataMapNode SALOME_DataMapNodeOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapNode_hxx "SALOME_DataMapNodeOfDataMapOfIOMapOfInteger.hxx"
-#define TCollection_DataMapIterator SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapIterator_hxx "SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx"
-#define Handle_TCollection_DataMapNode Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger
-#define TCollection_DataMapNode_Type_() SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_Type_()
-#define TCollection_DataMap SALOME_DataMapOfIOMapOfInteger
-#define TCollection_DataMap_hxx "SALOME_DataMapOfIOMapOfInteger.hxx"
-#include <TCollection_DataMap.gxx>
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_Filter.cxx
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#include "SALOME_Filter.ixx"
-using namespace std;
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_Filter.hxx
-// Module : SALOME
-
-#ifndef _SALOME_Filter_HeaderFile
-#define _SALOME_Filter_HeaderFile
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Handle_SALOME_Filter_HeaderFile
-#include <Handle_SALOME_Filter.hxx>
-#endif
-
-#ifndef _MMgt_TShared_HeaderFile
-#include <MMgt_TShared.hxx>
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include <Standard_Boolean.hxx>
-#endif
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-
-class SALOME_Filter : public MMgt_TShared {
-
-public:
-
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- // Methods PUBLIC
- //
-Standard_EXPORT virtual Standard_Boolean IsOk(const Handle(SALOME_InteractiveObject)& anObj) const = 0;
-Standard_EXPORT ~SALOME_Filter();
-
-
-
-
- // Type management
- //
- Standard_EXPORT friend Handle_Standard_Type& SALOME_Filter_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
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_Filter.ixx
-// Module : SALOME
-
-#include "SALOME_Filter.jxx"
-
-#ifndef _Standard_TypeMismatch_HeaderFile
-#include <Standard_TypeMismatch.hxx>
-#endif
-
-SALOME_Filter::~SALOME_Filter() {}
-
-
-
-Standard_EXPORT Handle_Standard_Type& SALOME_Filter_Type_()
-{
-
- static Handle_Standard_Type aType1 = STANDARD_TYPE(MMgt_TShared);
- if ( aType1.IsNull()) aType1 = STANDARD_TYPE(MMgt_TShared);
- static Handle_Standard_Type aType2 = STANDARD_TYPE(Standard_Transient);
- if ( aType2.IsNull()) aType2 = STANDARD_TYPE(Standard_Transient);
-
-
- static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,NULL};
- static Handle_Standard_Type _aType = new Standard_Type("SALOME_Filter",
- sizeof(SALOME_Filter),
- 1,
- (Standard_Address)_Ancestors,
- (Standard_Address)NULL);
-
- return _aType;
-}
-
-
-// DownCast method
-// allow safe downcasting
-//
-const Handle(SALOME_Filter) Handle(SALOME_Filter)::DownCast(const Handle(Standard_Transient)& AnObject)
-{
- Handle(SALOME_Filter) _anOtherObject;
-
- if (!AnObject.IsNull()) {
- if (AnObject->IsKind(STANDARD_TYPE(SALOME_Filter))) {
- _anOtherObject = Handle(SALOME_Filter)((Handle(SALOME_Filter)&)AnObject);
- }
- }
-
- return _anOtherObject ;
-}
-const Handle(Standard_Type)& SALOME_Filter::DynamicType() const
-{
- return STANDARD_TYPE(SALOME_Filter) ;
-}
-Standard_Boolean SALOME_Filter::IsKind(const Handle(Standard_Type)& AType) const
-{
- return (STANDARD_TYPE(SALOME_Filter) == AType || MMgt_TShared::IsKind(AType));
-}
-Handle_SALOME_Filter::~Handle_SALOME_Filter() {}
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_Filter.jxx
-// Module : SALOME
-
-#ifndef _SALOME_Filter_HeaderFile
-#include "SALOME_Filter.hxx"
-#endif
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_InteractiveObject.cxx
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-//using namespace std;
-/*!
- \class SALOME_InteractiveObject SALOME_InteractiveObject.hxx
- \brief ...
-*/
-
-#include "SALOME_InteractiveObject.ixx"
-
-SALOME_InteractiveObject::SALOME_InteractiveObject()
-{
- myEntry = "";
- myName = "";
- myComponentDataType = "";
- myReference = "";
-}
-
-SALOME_InteractiveObject::SALOME_InteractiveObject(const char* anEntry,
- const char* aComponentDataType,
- const char* aName):
- myEntry(anEntry),
- myName(aName),
- myComponentDataType(aComponentDataType),
- myReference("")
-{}
-
-void SALOME_InteractiveObject::setEntry(const char* anEntry){
- myEntry = anEntry;
-}
-
-const char* SALOME_InteractiveObject::getEntry(){
- return myEntry.c_str();
-}
-
-void SALOME_InteractiveObject::setComponentDataType(const char* aComponentDataType){
- myComponentDataType = aComponentDataType;
-}
-
-const char* SALOME_InteractiveObject::getComponentDataType(){
- return myComponentDataType.c_str();
-}
-
-void SALOME_InteractiveObject::setName(const char* aName){
- myName = aName;
-}
-
-const char* SALOME_InteractiveObject::getName(){
- return myName.c_str();
-}
-
-Standard_Boolean SALOME_InteractiveObject::hasEntry(){
- return myEntry != "";
-}
-
-Standard_Boolean SALOME_InteractiveObject::isSame(const Handle(SALOME_InteractiveObject)& anIO ){
- if ( anIO->hasEntry() && this->hasEntry() ) {
- if ( myEntry == anIO->getEntry() )
- return Standard_True;
- }
-
- return Standard_False;
-}
-
-Standard_Boolean SALOME_InteractiveObject::isComponentType(const char* ComponentDataType){
- if ( myComponentDataType == ComponentDataType )
- return Standard_True;
- else
- return Standard_False;
-}
-
-Standard_Boolean SALOME_InteractiveObject::hasReference()
-{
- return myReference != "";
-}
-
-const char* SALOME_InteractiveObject::getReference()
-{
- return myReference.c_str();
-}
-
-void SALOME_InteractiveObject::setReference(const char* aReference)
-{
- myReference = aReference;
-}
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_InteractiveObject.hxx
-// Module : SALOME
-
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#define _SALOME_InteractiveObject_HeaderFile
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-
-#ifndef _Standard_CString_HeaderFile
-#include <Standard_CString.hxx>
-#endif
-#ifndef _MMgt_TShared_HeaderFile
-#include <MMgt_TShared.hxx>
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include <Standard_Boolean.hxx>
-#endif
-
-#include <string>
-
-class SALOME_InteractiveObject : public MMgt_TShared {
-
-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 SALOME_InteractiveObject();
-Standard_EXPORT SALOME_InteractiveObject(const char* anEntry,
- const char* aComponentDataType,
- const char* aName = "");
-Standard_EXPORT void setEntry(const char* anEntry) ;
-Standard_EXPORT const char* getEntry() ;
-Standard_EXPORT void setName(const char* aName) ;
-Standard_EXPORT const char* getName() ;
-Standard_EXPORT Standard_Boolean hasEntry() ;
-Standard_EXPORT virtual Standard_Boolean isSame(const Handle(SALOME_InteractiveObject)& anIO) ;
-
-Standard_EXPORT Standard_Boolean hasReference() ;
-Standard_EXPORT const char* getReference() ;
-Standard_EXPORT void setReference(const char* aReference) ;
-
-Standard_EXPORT void setComponentDataType(const char* ComponentDataType) ;
-Standard_EXPORT const char* getComponentDataType() ;
-Standard_EXPORT Standard_Boolean isComponentType(const char* ComponentDataType) ;
- //Standard_EXPORT Standard_Boolean isComponentType(std::string ComponentDataType) ;
-Standard_EXPORT virtual ~SALOME_InteractiveObject();
-
-// Must be defined for using by NCollection for ceratin of data map
-friend Standard_Boolean IsEqual(const Handle(SALOME_InteractiveObject)& anIO1,
- const Handle(SALOME_InteractiveObject)& anIO2)
-{ return anIO1->isSame( anIO2 ); }
-
-
-
-
-
- // Type management
- //
- Standard_EXPORT friend Handle_Standard_Type& SALOME_InteractiveObject_Type_();
- Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
- Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const;
-
-protected:
-
- // Methods PROTECTED
- //
-
-
- // Fields PROTECTED
- //
- std::string myReference;
- std::string myEntry;
- std::string myName;
- std::string myComponentDataType;
-
-private:
-
- // Methods PRIVATE
- //
-
-
- // Fields PRIVATE
- //
-
-
-};
-
-
-
-
-
-// other Inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_InteractiveObject.ixx
-// Module : SALOME
-
-#include "SALOME_InteractiveObject.jxx"
-
-#ifndef _Standard_TypeMismatch_HeaderFile
-#include <Standard_TypeMismatch.hxx>
-#endif
-
-SALOME_InteractiveObject::~SALOME_InteractiveObject() {}
-
-
-
-Standard_EXPORT Handle_Standard_Type& SALOME_InteractiveObject_Type_()
-{
-
- static Handle_Standard_Type aType1 = STANDARD_TYPE(MMgt_TShared);
- if ( aType1.IsNull()) aType1 = STANDARD_TYPE(MMgt_TShared);
- static Handle_Standard_Type aType2 = STANDARD_TYPE(Standard_Transient);
- if ( aType2.IsNull()) aType2 = STANDARD_TYPE(Standard_Transient);
-
-
- static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,NULL};
- static Handle_Standard_Type _aType = new Standard_Type("SALOME_InteractiveObject",
- sizeof(SALOME_InteractiveObject),
- 1,
- (Standard_Address)_Ancestors,
- (Standard_Address)NULL);
-
- return _aType;
-}
-
-
-// DownCast method
-// allow safe downcasting
-//
-const Handle(SALOME_InteractiveObject) Handle(SALOME_InteractiveObject)::DownCast(const Handle(Standard_Transient)& AnObject)
-{
- Handle(SALOME_InteractiveObject) _anOtherObject;
-
- if (!AnObject.IsNull()) {
- if (AnObject->IsKind(STANDARD_TYPE(SALOME_InteractiveObject))) {
- _anOtherObject = Handle(SALOME_InteractiveObject)((Handle(SALOME_InteractiveObject)&)AnObject);
- }
- }
-
- return _anOtherObject ;
-}
-const Handle(Standard_Type)& SALOME_InteractiveObject::DynamicType() const
-{
- return STANDARD_TYPE(SALOME_InteractiveObject) ;
-}
-Standard_Boolean SALOME_InteractiveObject::IsKind(const Handle(Standard_Type)& AType) const
-{
- return (STANDARD_TYPE(SALOME_InteractiveObject) == AType || MMgt_TShared::IsKind(AType));
-}
-Handle_SALOME_InteractiveObject::~Handle_SALOME_InteractiveObject() {}
-
+++ /dev/null
-// SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
-//
-// 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_InteractiveObject.jxx
-// Module : SALOME
-
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#include "SALOME_InteractiveObject.hxx"
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_ListIO.hxx
-// Module : SALOME
-
-#ifndef _SALOME_ListIO_HeaderFile
-#define _SALOME_ListIO_HeaderFile
-
-#ifndef _Standard_Address_HeaderFile
-#include <Standard_Address.hxx>
-#endif
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-#ifndef _Handle_SALOME_ListNodeOfListIO_HeaderFile
-#include <Handle_SALOME_ListNodeOfListIO.hxx>
-#endif
-#ifndef _Standard_Integer_HeaderFile
-#include <Standard_Integer.hxx>
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include <Standard_Boolean.hxx>
-#endif
-class Standard_NoSuchObject;
-class SALOME_ListIteratorOfListIO;
-class SALOME_InteractiveObject;
-class SALOME_ListNodeOfListIO;
-
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-
-class SALOME_ListIO {
-
-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 SALOME_ListIO();
-Standard_EXPORT void Assign(const SALOME_ListIO& Other) ;
- void operator=(const SALOME_ListIO& Other)
-{
- Assign(Other);
-}
-
-Standard_EXPORT Standard_Integer Extent() const;
-Standard_EXPORT void Clear() ;
-~SALOME_ListIO()
-{
- Clear();
-}
-
-Standard_EXPORT Standard_Boolean IsEmpty() const;
-Standard_EXPORT void Prepend(const Handle(SALOME_InteractiveObject)& I) ;
-Standard_EXPORT void Prepend(SALOME_ListIO& Other) ;
-Standard_EXPORT void Prepend(const Handle(SALOME_InteractiveObject)& I, SALOME_ListIteratorOfListIO& It) ;
-Standard_EXPORT void Append(const Handle(SALOME_InteractiveObject)& I) ;
-Standard_EXPORT void Append(SALOME_ListIO& Other) ;
-Standard_EXPORT void Append(const Handle(SALOME_InteractiveObject)& I, SALOME_ListIteratorOfListIO& It) ;
-Standard_EXPORT Handle_SALOME_InteractiveObject& First() const;
-Standard_EXPORT Handle_SALOME_InteractiveObject& Last() const;
-Standard_EXPORT void RemoveFirst() ;
-Standard_EXPORT void Remove(SALOME_ListIteratorOfListIO& It) ;
-Standard_EXPORT void InsertBefore(const Handle(SALOME_InteractiveObject)& I,SALOME_ListIteratorOfListIO& It) ;
-Standard_EXPORT void InsertBefore(SALOME_ListIO& Other,SALOME_ListIteratorOfListIO& It) ;
-Standard_EXPORT void InsertAfter(const Handle(SALOME_InteractiveObject)& I,SALOME_ListIteratorOfListIO& It) ;
-Standard_EXPORT void InsertAfter(SALOME_ListIO& Other,SALOME_ListIteratorOfListIO& It) ;
-
-
-friend class SALOME_ListIteratorOfListIO;
-
-
-
-protected:
-
- // Methods PROTECTED
- //
-
-
- // Fields PROTECTED
- //
-
-
-private:
-
- // Methods PRIVATE
- //
-Standard_EXPORT SALOME_ListIO(const SALOME_ListIO& Other);
-
-
- // Fields PRIVATE
- //
-Standard_Address myFirst;
-Standard_Address myLast;
-
-
-};
-
-#define Item Handle_SALOME_InteractiveObject
-#define Item_hxx "SALOME_InteractiveObject.hxx"
-#define TCollection_ListNode SALOME_ListNodeOfListIO
-#define TCollection_ListNode_hxx "SALOME_ListNodeOfListIO.hxx"
-#define TCollection_ListIterator SALOME_ListIteratorOfListIO
-#define TCollection_ListIterator_hxx "SALOME_ListIteratorOfListIO.hxx"
-#define Handle_TCollection_ListNode Handle_SALOME_ListNodeOfListIO
-#define TCollection_ListNode_Type_() SALOME_ListNodeOfListIO_Type_()
-#define TCollection_List SALOME_ListIO
-#define TCollection_List_hxx "SALOME_ListIO.hxx"
-
-#include <TCollection_List.lxx>
-
-#undef Item
-#undef Item_hxx
-#undef TCollection_ListNode
-#undef TCollection_ListNode_hxx
-#undef TCollection_ListIterator
-#undef TCollection_ListIterator_hxx
-#undef Handle_TCollection_ListNode
-#undef TCollection_ListNode_Type_
-#undef TCollection_List
-#undef TCollection_List_hxx
-
-
-// other Inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_ListIO_0.cxx
-// Module : SALOME
-
-#include "SALOME_ListIO.hxx"
-
-#ifndef _Standard_NoSuchObject_HeaderFile
-#include <Standard_NoSuchObject.hxx>
-#endif
-#ifndef _SALOME_ListIteratorOfListIO_HeaderFile
-#include "SALOME_ListIteratorOfListIO.hxx"
-#endif
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#include "SALOME_InteractiveObject.hxx"
-#endif
-#ifndef _SALOME_ListNodeOfListIO_HeaderFile
-#include "SALOME_ListNodeOfListIO.hxx"
-#endif
-using namespace std;
-
-
-#define Item Handle_SALOME_InteractiveObject
-#define Item_hxx "SALOME_InteractiveObject.hxx"
-#define TCollection_ListNode SALOME_ListNodeOfListIO
-#define TCollection_ListNode_hxx "SALOME_ListNodeOfListIO.hxx"
-#define TCollection_ListIterator SALOME_ListIteratorOfListIO
-#define TCollection_ListIterator_hxx "SALOME_ListIteratorOfListIO.hxx"
-#define Handle_TCollection_ListNode Handle_SALOME_ListNodeOfListIO
-#define TCollection_ListNode_Type_() SALOME_ListNodeOfListIO_Type_()
-#define TCollection_List SALOME_ListIO
-#define TCollection_List_hxx "SALOME_ListIO.hxx"
-#include <TCollection_List.gxx>
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_ListIteratorOfListIO.hxx
-// Module : SALOME
-
-#ifndef _SALOME_ListIteratorOfListIO_HeaderFile
-#define _SALOME_ListIteratorOfListIO_HeaderFile
-
-#ifndef _Standard_Address_HeaderFile
-#include <Standard_Address.hxx>
-#endif
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-#ifndef _Handle_SALOME_ListNodeOfListIO_HeaderFile
-#include <Handle_SALOME_ListNodeOfListIO.hxx>
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include <Standard_Boolean.hxx>
-#endif
-class Standard_NoMoreObject;
-class Standard_NoSuchObject;
-class SALOME_ListIO;
-class SALOME_InteractiveObject;
-class SALOME_ListNodeOfListIO;
-
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-
-class SALOME_ListIteratorOfListIO {
-
-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 SALOME_ListIteratorOfListIO();
-Standard_EXPORT SALOME_ListIteratorOfListIO(const SALOME_ListIO& L);
-Standard_EXPORT void Initialize(const SALOME_ListIO& L) ;
-Standard_EXPORT Standard_Boolean More() const;
-Standard_EXPORT void Next() ;
-Standard_EXPORT Handle_SALOME_InteractiveObject& Value() const;
-
-
-friend class SALOME_ListIO;
-
-
-
-protected:
-
- // Methods PROTECTED
- //
-
-
- // Fields PROTECTED
- //
-
-
-private:
-
- // Methods PRIVATE
- //
-
-
- // Fields PRIVATE
- //
-Standard_Address current;
-Standard_Address previous;
-
-
-};
-
-#define Item Handle_SALOME_InteractiveObject
-#define Item_hxx "SALOME_InteractiveObject.hxx"
-#define TCollection_ListNode SALOME_ListNodeOfListIO
-#define TCollection_ListNode_hxx "SALOME_ListNodeOfListIO.hxx"
-#define TCollection_ListIterator SALOME_ListIteratorOfListIO
-#define TCollection_ListIterator_hxx "SALOME_ListIteratorOfListIO.hxx"
-#define Handle_TCollection_ListNode Handle_SALOME_ListNodeOfListIO
-#define TCollection_ListNode_Type_() SALOME_ListNodeOfListIO_Type_()
-#define TCollection_List SALOME_ListIO
-#define TCollection_List_hxx "SALOME_ListIO.hxx"
-
-#include <TCollection_ListIterator.lxx>
-
-#undef Item
-#undef Item_hxx
-#undef TCollection_ListNode
-#undef TCollection_ListNode_hxx
-#undef TCollection_ListIterator
-#undef TCollection_ListIterator_hxx
-#undef Handle_TCollection_ListNode
-#undef TCollection_ListNode_Type_
-#undef TCollection_List
-#undef TCollection_List_hxx
-
-
-// other Inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_ListIteratorOfListIO_0.cxx
-// Module : SALOME
-
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#ifndef _Standard_NoMoreObject_HeaderFile
-#include <Standard_NoMoreObject.hxx>
-#endif
-#ifndef _Standard_NoSuchObject_HeaderFile
-#include <Standard_NoSuchObject.hxx>
-#endif
-#ifndef _SALOME_ListIO_HeaderFile
-#include "SALOME_ListIO.hxx"
-#endif
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#include "SALOME_InteractiveObject.hxx"
-#endif
-#ifndef _SALOME_ListNodeOfListIO_HeaderFile
-#include "SALOME_ListNodeOfListIO.hxx"
-#endif
-using namespace std;
-
-
-#define Item Handle_SALOME_InteractiveObject
-#define Item_hxx "SALOME_InteractiveObject.hxx"
-#define TCollection_ListNode SALOME_ListNodeOfListIO
-#define TCollection_ListNode_hxx "SALOME_ListNodeOfListIO.hxx"
-#define TCollection_ListIterator SALOME_ListIteratorOfListIO
-#define TCollection_ListIterator_hxx "SALOME_ListIteratorOfListIO.hxx"
-#define Handle_TCollection_ListNode Handle_SALOME_ListNodeOfListIO
-#define TCollection_ListNode_Type_() SALOME_ListNodeOfListIO_Type_()
-#define TCollection_List SALOME_ListIO
-#define TCollection_List_hxx "SALOME_ListIO.hxx"
-#include <TCollection_ListIterator.gxx>
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_ListNodeOfListIO.hxx
-// Module : SALOME
-
-#ifndef _SALOME_ListNodeOfListIO_HeaderFile
-#define _SALOME_ListNodeOfListIO_HeaderFile
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Handle_SALOME_ListNodeOfListIO_HeaderFile
-#include <Handle_SALOME_ListNodeOfListIO.hxx>
-#endif
-
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-#ifndef _TCollection_MapNode_HeaderFile
-#include <TCollection_MapNode.hxx>
-#endif
-#ifndef _TCollection_MapNodePtr_HeaderFile
-#include <TCollection_MapNodePtr.hxx>
-#endif
-class SALOME_InteractiveObject;
-class SALOME_ListIO;
-class SALOME_ListIteratorOfListIO;
-
-
-class SALOME_ListNodeOfListIO : public TCollection_MapNode {
-
-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
- //
-SALOME_ListNodeOfListIO(const Handle(SALOME_InteractiveObject)& I,const TCollection_MapNodePtr& n);
- Handle_SALOME_InteractiveObject& Value() const;
-Standard_EXPORT ~SALOME_ListNodeOfListIO();
-
-
-
-
- // Type management
- //
- Standard_EXPORT friend Handle_Standard_Type& SALOME_ListNodeOfListIO_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
- //
-Handle_SALOME_InteractiveObject myValue;
-
-
-};
-
-#define Item Handle_SALOME_InteractiveObject
-#define Item_hxx "SALOME_InteractiveObject.hxx"
-#define TCollection_ListNode SALOME_ListNodeOfListIO
-#define TCollection_ListNode_hxx "SALOME_ListNodeOfListIO.hxx"
-#define TCollection_ListIterator SALOME_ListIteratorOfListIO
-#define TCollection_ListIterator_hxx "SALOME_ListIteratorOfListIO.hxx"
-#define Handle_TCollection_ListNode Handle_SALOME_ListNodeOfListIO
-#define TCollection_ListNode_Type_() SALOME_ListNodeOfListIO_Type_()
-#define TCollection_List SALOME_ListIO
-#define TCollection_List_hxx "SALOME_ListIO.hxx"
-
-#include <TCollection_ListNode.lxx>
-
-#undef Item
-#undef Item_hxx
-#undef TCollection_ListNode
-#undef TCollection_ListNode_hxx
-#undef TCollection_ListIterator
-#undef TCollection_ListIterator_hxx
-#undef Handle_TCollection_ListNode
-#undef TCollection_ListNode_Type_
-#undef TCollection_List
-#undef TCollection_List_hxx
-
-
-// other Inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_ListNodeOfListIO_0.cxx
-// Module : SALOME
-
-#include "SALOME_ListNodeOfListIO.hxx"
-
-#ifndef _Standard_TypeMismatch_HeaderFile
-#include <Standard_TypeMismatch.hxx>
-#endif
-
-#ifndef _SALOME_InteractiveObject_HeaderFile
-#include "SALOME_InteractiveObject.hxx"
-#endif
-#ifndef _SALOME_ListIO_HeaderFile
-#include "SALOME_ListIO.hxx"
-#endif
-#ifndef _SALOME_ListIteratorOfListIO_HeaderFile
-#include "SALOME_ListIteratorOfListIO.hxx"
-#endif
-using namespace std;
-SALOME_ListNodeOfListIO::~SALOME_ListNodeOfListIO() {}
-
-
-
-Standard_EXPORT Handle_Standard_Type& SALOME_ListNodeOfListIO_Type_()
-{
-
- static Handle_Standard_Type aType1 = STANDARD_TYPE(TCollection_MapNode);
- if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TCollection_MapNode);
- static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
- if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared);
- static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
- if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient);
-
-
- static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
- static Handle_Standard_Type _aType = new Standard_Type("SALOME_ListNodeOfListIO",
- sizeof(SALOME_ListNodeOfListIO),
- 1,
- (Standard_Address)_Ancestors,
- (Standard_Address)NULL);
-
- return _aType;
-}
-
-
-// DownCast method
-// allow safe downcasting
-//
-const Handle(SALOME_ListNodeOfListIO) Handle(SALOME_ListNodeOfListIO)::DownCast(const Handle(Standard_Transient)& AnObject)
-{
- Handle(SALOME_ListNodeOfListIO) _anOtherObject;
-
- if (!AnObject.IsNull()) {
- if (AnObject->IsKind(STANDARD_TYPE(SALOME_ListNodeOfListIO))) {
- _anOtherObject = Handle(SALOME_ListNodeOfListIO)((Handle(SALOME_ListNodeOfListIO)&)AnObject);
- }
- }
-
- return _anOtherObject ;
-}
-const Handle(Standard_Type)& SALOME_ListNodeOfListIO::DynamicType() const
-{
- return STANDARD_TYPE(SALOME_ListNodeOfListIO) ;
-}
-Standard_Boolean SALOME_ListNodeOfListIO::IsKind(const Handle(Standard_Type)& AType) const
-{
- return (STANDARD_TYPE(SALOME_ListNodeOfListIO) == AType || TCollection_MapNode::IsKind(AType));
-}
-Handle_SALOME_ListNodeOfListIO::~Handle_SALOME_ListNodeOfListIO() {}
-#define Item Handle_SALOME_InteractiveObject
-#define Item_hxx "SALOME_InteractiveObject.hxx"
-#define TCollection_ListNode SALOME_ListNodeOfListIO
-#define TCollection_ListNode_hxx "SALOME_ListNodeOfListIO.hxx"
-#define TCollection_ListIterator SALOME_ListIteratorOfListIO
-#define TCollection_ListIterator_hxx "SALOME_ListIteratorOfListIO.hxx"
-#define Handle_TCollection_ListNode Handle_SALOME_ListNodeOfListIO
-#define TCollection_ListNode_Type_() SALOME_ListNodeOfListIO_Type_()
-#define TCollection_List SALOME_ListIO
-#define TCollection_List_hxx "SALOME_ListIO.hxx"
-#include <TCollection_ListNode.gxx>
-
+++ /dev/null
-// SALOME Selection : description of enumeration Selection_Mode
-//
-// 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_Selection.h
-// Author :
-// Module : SALOME
-// $Header$
-
-#ifndef SALOME_SELECTION_H
-#define SALOME_SELECTION_H
-
-enum Selection_Mode {
- NodeSelection,
- CellSelection,
- EdgeOfCellSelection,
- EdgeSelection,
- FaceSelection,
- VolumeSelection,
- ActorSelection };
-
-#endif
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_TypeFilter.cxx
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#include "SALOME_TypeFilter.ixx"
-#include "SALOME_InteractiveObject.hxx"
-using namespace std;
-
-SALOME_TypeFilter::SALOME_TypeFilter(const Standard_CString TheKind):
-myKind(TheKind){}
-
-Standard_Boolean SALOME_TypeFilter::IsOk(const Handle(SALOME_InteractiveObject)& anObj) const
-{
- return anObj->isComponentType( myKind );
-}
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_TypeFilter.hxx
-// Module : SALOME
-
-#ifndef _SALOME_TypeFilter_HeaderFile
-#define _SALOME_TypeFilter_HeaderFile
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Handle_SALOME_TypeFilter_HeaderFile
-#include <Handle_SALOME_TypeFilter.hxx>
-#endif
-
-#ifndef _Standard_CString_HeaderFile
-#include <Standard_CString.hxx>
-#endif
-#ifndef _SALOME_Filter_HeaderFile
-#include "SALOME_Filter.hxx"
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include <Standard_Boolean.hxx>
-#endif
-#ifndef _Handle_SALOME_InteractiveObject_HeaderFile
-#include <Handle_SALOME_InteractiveObject.hxx>
-#endif
-
-class SALOME_TypeFilter : public SALOME_Filter {
-
-public:
-
- inline void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- inline void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- inline void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
-// inline void operator delete(void *anAddress, size_t size)
-// {
-// if (anAddress) Standard::Free((Standard_Address&)anAddress,size);
-// }
- // Methods PUBLIC
- //
-Standard_EXPORT SALOME_TypeFilter(const Standard_CString aGivenKind);
-Standard_EXPORT virtual Standard_Boolean IsOk(const Handle(SALOME_InteractiveObject)& anobj) const;
-Standard_EXPORT ~SALOME_TypeFilter();
-
-
-
-
- // Type management
- //
- Standard_EXPORT friend Handle_Standard_Type& SALOME_TypeFilter_Type_();
- Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
- Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const;
-
-protected:
-
- // Methods PROTECTED
- //
-
-
- // Fields PROTECTED
- //
-Standard_CString myKind;
-
-
-private:
-
- // Methods PRIVATE
- //
-
-
- // Fields PRIVATE
- //
-
-
-};
-
-
-
-
-
-// other inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_TypeFilter.ixx
-// Module : SALOME
-
-#include "SALOME_TypeFilter.jxx"
-
-#ifndef _Standard_TypeMismatch_HeaderFile
-#include <Standard_TypeMismatch.hxx>
-#endif
-
-SALOME_TypeFilter::~SALOME_TypeFilter() {}
-
-
-
-Standard_EXPORT Handle_Standard_Type& SALOME_TypeFilter_Type_()
-{
-
- static Handle_Standard_Type aType1 = STANDARD_TYPE(SALOME_Filter);
- if ( aType1.IsNull()) aType1 = STANDARD_TYPE(SALOME_Filter);
- static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
- if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared);
- static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
- if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient);
-
-
- static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
- static Handle_Standard_Type _aType = new Standard_Type("SALOME_TypeFilter",
- sizeof(SALOME_TypeFilter),
- 1,
- (Standard_Address)_Ancestors,
- (Standard_Address)NULL);
-
- return _aType;
-}
-
-
-// DownCast method
-// allow safe downcasting
-//
-const Handle(SALOME_TypeFilter) Handle(SALOME_TypeFilter)::DownCast(const Handle(Standard_Transient)& AnObject)
-{
- Handle(SALOME_TypeFilter) _anOtherObject;
-
- if (!AnObject.IsNull()) {
- if (AnObject->IsKind(STANDARD_TYPE(SALOME_TypeFilter))) {
- _anOtherObject = Handle(SALOME_TypeFilter)((Handle(SALOME_TypeFilter)&)AnObject);
- }
- }
-
- return _anOtherObject ;
-}
-const Handle(Standard_Type)& SALOME_TypeFilter::DynamicType() const
-{
- return STANDARD_TYPE(SALOME_TypeFilter) ;
-}
-Standard_Boolean SALOME_TypeFilter::IsKind(const Handle(Standard_Type)& AType) const
-{
- return (STANDARD_TYPE(SALOME_TypeFilter) == AType || SALOME_Filter::IsKind(AType));
-}
-Handle_SALOME_TypeFilter::~Handle_SALOME_TypeFilter() {}
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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_TypeFilter.jxx
-// Module : SALOME
-
-#ifndef _SALOME_TypeFilter_HeaderFile
-#include "SALOME_TypeFilter.hxx"
-#endif
+++ /dev/null
-# File : Makefile.in
-# Author : Vladimir Klyachin (OCN)
-# Module : ObjectBrowser
-# $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@srcdir@/resources
-
-
-@COMMENCE@
-
-# header files
-EXPORT_HEADERS= OB.h \
- OB_Browser.h \
- OB_ListItem.h \
- OB_ListView.h \
- OB_Filter.h
-
-# Libraries targets
-LIB = libObjBrowser.la
-
-LIB_SRC= OB_Browser.cxx \
- OB_ListItem.cxx \
- OB_ListView.cxx \
- OB_Filter.cxx
-
-LIB_MOC = OB_Browser.h \
- OB_ListView.h
-
-# .po files to transform in .qm
-PO_FILES = OB_msg_en.po
-
-CPPFLAGS+=$(QT_INCLUDES)
-
-LDFLAGS+=$(QT_MT_LIBS)
-LIBS+= -lsuit
-
-@CONCLUDE@
-
-
+++ /dev/null
-# This is a Qt message file in .po format. Each msgid starts with
-# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 1999-02-23 15:38+0200\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "MEN_EXPAND_ALL"
-msgstr "Expand All"
-
+++ /dev/null
-// SALOME OCCViewer : build OCC Viewer into Salome desktop
-//
-// Copyright (C) 2004 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.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-// File : Plot2d_Prs.cxx
-// Author : Sergey ANIKIN
-// Module : SALOME
-// $Header$
-
-#include <qwt_plot.h>
-#include "Plot2d_Prs.h"
-
-//==========================================================
-/*!
- * Plot2d_Prs::Plot2d_Prs
- * Default constructor
- */
-//==========================================================
-Plot2d_Prs::Plot2d_Prs( bool theDelete )
-: mySecondY( false)
-{
- setAutoDel(theDelete);
-}
-
-//==========================================================
-/*!
- * Plot2d_Prs::Plot2d_Prs
- * Standard constructor
- */
-//==========================================================
-Plot2d_Prs::Plot2d_Prs( const Plot2d_Curve* obj, bool theDelete )
-: mySecondY( false)
-{
- setAutoDel(theDelete);
- AddObject( obj );
-}
-
-//==========================================================
-/*!
- * Plot2d_Prs::~Plot2d_Prs
- * Destructor
- */
-//==========================================================
-Plot2d_Prs::~Plot2d_Prs()
-{
-}
-
-//==========================================================
-/*!
- * Plot2d_Prs::GetObjects
- * Get curves list
- */
-//==========================================================
-curveList Plot2d_Prs::getCurves() const
-{
- return myCurves;
-}
-
-//==========================================================
-/*!
- * Plot2d_Prs::AddObject
- * Add curbe
- */
-//==========================================================
-void Plot2d_Prs::AddObject( const Plot2d_Curve* obj )
-{
- myCurves.append((Plot2d_Curve*)obj);
-
- if (obj->getYAxis() == QwtPlot::yRight)
- mySecondY = true;
-}
-
-//==========================================================
-/*!
- * Plot2d_Prs::IsNull
- * Return 0 if list of the curves is empty
- * [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
-bool Plot2d_Prs::IsNull() const
-{
- return myCurves.isEmpty();
-}
-
-//==========================================================
-/*!
- * Plot2d_Prs::IsSecondY
- * Return 1 if in the list of curves exist at least one curve
- * with axis Qwt::yRight
- * [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
-bool Plot2d_Prs::isSecondY() const
-{
- return mySecondY;
-}
-
-//==========================================================
-/*!
- * Plot2d_Prs::IsNull
- * Return 0 if list of the curves is empty
- * [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
-void Plot2d_Prs::setAutoDel(bool theDel)
-{
- myCurves.setAutoDelete(theDel);
-}
+++ /dev/null
-// SALOME Plot2d : implementation of desktop and GUI kernel
-//
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : Plot2d_SetupCurveDlg.h
-// Author : Vadim SANDLER
-// Module : SALOME
-// $Header$
-
-#ifndef Plot2d_SetupCurveDlg_H
-#define Plot2d_SetupCurveDlg_H
-
-#include <qdialog.h>
-
-//=================================================================================
-// class : Plot2d_SetupCurveDlg
-// purpose : Dialog box for setup Plot2d curve
-//=================================================================================
-
-class QPushButton;
-class QComboBox;
-class QSpinBox;
-class QToolButton;
-
-class Plot2d_SetupCurveDlg : public QDialog
-{
- Q_OBJECT
-
-public:
- Plot2d_SetupCurveDlg( QWidget* parent = 0 );
- ~Plot2d_SetupCurveDlg();
-
-public:
- void setLine( const int line, const int width );
- int getLine() const;
- int getLineWidth() const;
- void setMarker( const int marker );
- int getMarker() const ;
- void setColor( const QColor& color );
- QColor getColor() const;
-
-protected slots:
- void onColorChanged();
-
-private:
- QPushButton* myOkBtn;
- QPushButton* myCancelBtn;
- QComboBox* myLineCombo;
- QSpinBox* myLineSpin;
- QComboBox* myMarkerCombo;
- QToolButton* myColorBtn;
-};
-
-#endif // Plot2d_SetupCurveDlg_H
-
+++ /dev/null
-# This is a Qt message file in .po format. Each msgid starts with
-# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 1999-02-23 15:38+0200\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "ICON_PLOT2D_DUMP"
-msgstr "plot2d_camera_dump.png"
-
-msgid "ICON_PLOT2D_FIT_ALL"
-msgstr "plot2d_fitall.png"
-
-msgid "ICON_PLOT2D_FIT_AREA"
-msgstr "plot2d_fitarea.png"
-
-msgid "ICON_PLOT2D_ZOOM"
-msgstr "plot2d_zoom.png"
-
-msgid "ICON_PLOT2D_PAN"
-msgstr "plot2d_pan.png"
-
-msgid "ICON_PLOT2D_GLOBALPAN"
-msgstr "plot2d_glpan.png"
-
-msgid "ICON_PLOT2D_CLONE_VIEW"
-msgstr "plot2d_clone.png"
-
-msgid "ICON_PLOT2D_MODE_LINEAR_HOR"
-msgstr "plot2d_linear.png"
-
-msgid "ICON_PLOT2D_MODE_LOGARITHMIC_HOR"
-msgstr "plot2d_log.png"
-
-msgid "ICON_PLOT2D_MODE_LINEAR_VER"
-msgstr "plot2d_linear_y.png"
-
-msgid "ICON_PLOT2D_MODE_LOGARITHMIC_VER"
-msgstr "plot2d_log_y.png"
-
-msgid "ICON_PLOT2D_SHOW_LEGEND"
-msgstr "plot2d_legend.png"
-
-msgid "ICON_PLOT2D_CURVES_POINTS"
-msgstr "plot2d_points.png"
-
-msgid "ICON_PLOT2D_CURVES_LINES"
-msgstr "plot2d_lines.png"
-
-msgid "ICON_PLOT2D_CURVES_SPLINES"
-msgstr "plot2d_splines.png"
-
-msgid "ICON_PLOT2D_SETTINGS"
-msgstr "plot2d_settings.png"
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// Copyright (C) 2005 CEA/DEN, EDF R&D
-//
-//
-//
-// File : PyInterp_Dispatcher.h
-// Author : Sergey Anikin, OCC
-// Module : SALOME
-// $Header$
-
-#ifndef _PYINTERP_DISPATCHER_H_
-#define _PYINTERP_DISPATCHER_H_
-
-#include "PyInterp.h"
-
-#include <qthread.h>
-#include <qevent.h>
-
-#include <list>
-
-class QObject;
-
-class PyInterp_base;
-class PyInterp_Watcher;
-class PyInterp_Dispatcher;
-
-//////////////////////////////////////////////////////////
-// class : PyInterp_Request
-//////////////////////////////////////////////////////////
-class PYINTERP_EXPORT PyInterp_Request
-{
- friend class PyInterp_Dispatcher;
-
- PyInterp_Request();
- PyInterp_Request( const PyInterp_Request& );
-
-protected:
- virtual ~PyInterp_Request() {};
- // protected destructor - to control deletion of requests
-
-public:
- PyInterp_Request( QObject* listener, bool sync = false )
- : myIsSync( sync ), myListener( listener ), myEvent( 0 ) {};
-
- static void Destroy( PyInterp_Request* );
- // Deletes a request
-
- bool IsSync() const { return myIsSync; }
- // Returns true if this request should be processed synchronously,
- // without putting it to a queue
-
-protected:
- virtual void safeExecute();
-
- virtual void execute() = 0;
- // Should be redefined in successors, contains actual request code
-
- virtual QEvent* createEvent() const;
- // This method can be overridden to customize notification event creation
-
-private:
- void process();
- QObject* getListener() const { return myListener; }
- void setListener( QObject* );
- QEvent* getEvent();
- void postEvent();
-
-private:
- bool myIsSync;
- QObject* myListener;
- QEvent* myEvent;
- QMutex myMutex;
-};
-
-class PYINTERP_EXPORT PyInterp_LockRequest : public PyInterp_Request
-{
-public:
- PyInterp_LockRequest( PyInterp_base* interp, QObject* listener = 0, bool sync = false )
- : PyInterp_Request( listener, sync ), myInterp( interp ) {}
-
-protected:
- PyInterp_base* getInterp() const { return myInterp; }
-
- virtual void safeExecute();
-
-private:
- PyInterp_base* myInterp;
-};
-
-//////////////////////////////////////////////////////////
-// class : PyInterp_Event
-//////////////////////////////////////////////////////////
-class PYINTERP_EXPORT PyInterp_Event : public QCustomEvent
-{
- PyInterp_Event();
- PyInterp_Event( const PyInterp_Event& );
-
-public:
- enum { NOTIFY = QEvent::User + 5000, OK, ERROR, INCOMPLETE, LAST };
-
- PyInterp_Event( int type, PyInterp_Request* request )
- : QCustomEvent( (QEvent::Type)type ), myRequest( request ) {}
-
- virtual ~PyInterp_Event();
-
- PyInterp_Request* GetRequest() const { return myRequest; }
- operator PyInterp_Request*() const { return myRequest; }
-
-private:
- PyInterp_Request* myRequest;
-};
-
-//////////////////////////////////////////////////////////
-// class : PyInterp_Dispatcher
-//////////////////////////////////////////////////////////
-class PYINTERP_EXPORT PyInterp_Dispatcher : protected QThread
-{
- PyInterp_Dispatcher(); // private constructor
-
-public:
- static PyInterp_Dispatcher* Get();
-
- virtual ~PyInterp_Dispatcher();
-
- bool IsBusy() const;
- void Exec( PyInterp_Request* );
-
-private:
- virtual void run();
- void processRequest( PyInterp_Request* );
- void objectDestroyed( const QObject* );
-
-private:
- typedef PyInterp_Request* RequestPtr;
-
- std::list<RequestPtr> myQueue;
- QMutex myQueueMutex;
- PyInterp_Watcher* myWatcher;
-
- static PyInterp_Dispatcher* myInstance;
-
- friend class PyInterp_Watcher;
-};
-
-#endif
+++ /dev/null
-# File : Makefile.in
-# Author : Vladimir Klyachin (OCN)
-# Module : PythonConsole
-# $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-
-@COMMENCE@
-
-# header files
-EXPORT_HEADERS= PythonConsole.h \
- PythonConsole_PyConsole.h \
- PythonConsole_PyEditor.h \
- PythonConsole_PyInterp.h
-
-# Libraries targets
-LIB = libPythonConsole.la
-
-LIB_SRC= PythonConsole_PyConsole.cxx \
- PythonConsole_PyEditor.cxx \
- PythonConsole_PyInterp.cxx
-
-LIB_MOC = \
- PythonConsole_PyEditor.h \
- PythonConsole_PyConsole.h
-
-CPPFLAGS+= $(PYTHON_INCLUDES) $(QT_INCLUDES)
-
-LDFLAGS+= $(PYTHON_LIBS) $(QT_MT_LIBS)
-
-@CONCLUDE@
-
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : PythonConsole_PyEditor.h
-// Author : Nicolas REJNERI
-// Module : SALOME
-
-#ifndef PythonConsole_PyEditor_H
-#define PythonConsole_PyEditor_H
-
-#include "PythonConsole_PyInterp.h" // this include must be first (see PyInterp_base.h)!
-
-#include <qevent.h>
-#include <qtextedit.h>
-
-class PythonConsole_PyInterp;
-
-class PYCONSOLE_EXPORT PythonConsole_PyEditor : public QTextEdit
-{
- Q_OBJECT;
-
-public:
- PythonConsole_PyEditor(PyInterp_base* theInterp, QWidget *theParent = 0, const char* theName = "");
- ~PythonConsole_PyEditor();
-
- virtual void setText(QString s);
- bool isCommand(const QString& str) const;
-
- virtual void exec( const QString& command );
-
-protected:
- virtual void contentsDropEvent( QDropEvent* event );
- virtual void contentsMouseReleaseEvent( QMouseEvent* event );
- virtual void keyPressEvent (QKeyEvent* event);
- virtual void mousePressEvent (QMouseEvent* event);
- virtual void customEvent (QCustomEvent* event);
-
-public slots:
- void handleReturn();
- void onPyInterpChanged( PyInterp_base* );
-
- virtual QPopupMenu* createPopupMenu( const QPoint& );
-
-private:
- QString _buf;
- QString _currentCommand;
- QString _currentPrompt;
- bool _isInHistory;
-
- PyInterp_base* myInterp;
-
- QString myBanner;
- QString myOutput;
- QString myError;
-};
-
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : PythonConsole_PyInterp.h
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#ifndef _PythonConsole_PYINTERP_H_
-#define _PythonConsole_PYINTERP_H_
-
-#include "PythonConsole.h"
-
-#include <PyInterp_base.h> // this include must be first (see PyInterp_base.h)!
-
-class PYCONSOLE_EXPORT PythonConsole_PyInterp : public PyInterp_base
-{
-public:
- PythonConsole_PyInterp();
- ~PythonConsole_PyInterp();
-
-protected:
- virtual bool initState();
- virtual bool initContext();
-};
-
-#endif
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// 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 : HelpWindow.cxx
-// Author : Pascale NOYRET, EDF
-// Module : SALOME
-// $Header$
-
-# include "HelpWindow.hxx"
-# include "utilities.h"
-
-# include <qtextview.h>
-# include <qpushbutton.h>
-# include <qtextstream.h>
-# include <qfile.h>
-
-using namespace std;
-
-HelpWindow::HelpWindow(QWidget* parent, const char* name )
- : QMainWindow( parent, name, WType_TopLevel | WDestructiveClose )
-{
- BEGIN_OF("Constructeur HelpWindow");
-
- setCaption( tr( "Help" ) );
-
- myTextView = new QTextView( this, "myTextView" );
- QPalette pal = myTextView->palette();
- QColorGroup cg = pal.active();
- cg.setColor( QColorGroup::Highlight, QColor( 0, 0, 128) );
- cg.setColor( QColorGroup::HighlightedText, Qt::white );
- cg.setColor( QColorGroup::Base, QColor( 255,255,220 ) );
- cg.setColor( QColorGroup::Text, Qt::black );
- pal.setActive ( cg );
- cg = pal.inactive();
- cg.setColor( QColorGroup::Highlight, QColor( 0, 0, 128) );
- cg.setColor( QColorGroup::HighlightedText, Qt::white );
- cg.setColor( QColorGroup::Base, QColor( 255,255,220 ) );
- cg.setColor( QColorGroup::Text, Qt::black );
- pal.setInactive( cg );
- cg = pal.disabled();
- cg.setColor( QColorGroup::Highlight, QColor( 0, 0, 128) );
- cg.setColor( QColorGroup::HighlightedText, Qt::white );
- cg.setColor( QColorGroup::Base, QColor( 255,255,220 ) );
- cg.setColor( QColorGroup::Text, Qt::black );
- pal.setDisabled( cg );
- myTextView->setPalette( pal );
-
- setCentralWidget( myTextView );
- setMinimumSize( 450, 250 );
-
- QFile f ( "tmp.txt" );
- if ( f.open( IO_ReadOnly ) )
- {
- QTextStream t( &f );
- while ( !t.eof() )
- {
- myTextView->append(t.readLine());
- }
- }
- f.close();
-
- END_OF("Constructeur HelpWindow");
-}
-
-/*!
- Destructor
-*/
-HelpWindow::~HelpWindow()
-{
- BEGIN_OF("Destructeur HelpWindow");
- END_OF("Destructeur HelpWindow");
-};
-
-/*!
- Sets text
-*/
-void HelpWindow::setText( const QString& text )
-{
- myTextView->setText( text );
-}
-
-
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// 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 : HelpWindow.hxx
-// Author : Pascale NOYRET, EDF
-// Module : SALOME
-// $Header$
-
-# ifndef __HELPWINDOW_H__
-# define __HELPWINDOW_H__
-
-# include <qapplication.h>
-# include <qmainwindow.h>
-
-class QTextView;
-
-class HelpWindow : public QMainWindow
-{
-public:
- HelpWindow( QWidget* parent = 0, const char* name = 0);
- ~HelpWindow();
-
- void setText( const QString& text );
- QTextView* textView() const { return myTextView; }
-
-private:
- QTextView* myTextView;
-};
-# endif /* __HELPWINDOW_H__ */
-
-
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : IntervalWindow.cxx
-// Author : Oksana TCHEBANOVA
-// Module : SALOME
-
-#include <IntervalWindow.hxx>
-
-#include <qbuttongroup.h>
-#include <qlabel.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-# include "utilities.h"
-
-#define MARGIN_SIZE 11
-#define SPACING_SIZE 6
-#define MIN_SPIN_WIDTH 100
-
-IntervalWindow::IntervalWindow ( QWidget* parent )
- : QDialog( parent, "IntervalWindow" , true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose )
-{
- BEGIN_OF("IntervalWindow constructor")
- setCaption( tr( "Refresh Interval" ) );
- setSizeGripEnabled( true );
-
- QGridLayout* topLayout = new QGridLayout( this );
- topLayout->setSpacing( SPACING_SIZE );
- topLayout->setMargin( MARGIN_SIZE );
-
- QGroupBox* intervalGrp = new QGroupBox( this, "intervalGrp" );
- intervalGrp->setColumnLayout( 0, Qt::Horizontal );//Vertical
- intervalGrp->layout()->setSpacing( 0 );
- intervalGrp->layout()->setMargin( 0 );
- QGridLayout* intervalGrpLayout = new QGridLayout( intervalGrp->layout() );
- intervalGrpLayout->setAlignment( Qt::AlignTop );
- intervalGrpLayout->setSpacing( SPACING_SIZE );
- intervalGrpLayout->setMargin( MARGIN_SIZE );
-
- QHBoxLayout* aBtnLayout = new QHBoxLayout;
- aBtnLayout->setSpacing( SPACING_SIZE );
- aBtnLayout->setMargin( 0 );
-
- myButtonOk = new QPushButton( this, "buttonOk" );
- myButtonOk->setText( tr( "BUT_OK" ) );
- myButtonOk->setAutoDefault( TRUE );
- myButtonOk->setDefault( TRUE );
-
- myButtonCancel = new QPushButton( this, "buttonCancel" );
- myButtonCancel->setText( tr( "BUT_CANCEL" ) );
- myButtonCancel->setAutoDefault( TRUE );
-
- QLabel* TextLabel = new QLabel( intervalGrp, "TextLabel" );
- TextLabel->setText( tr( "Please, enter a number of seconds:" ) );
-
- mySpinBox = new QSpinBox( 1, 999999999, 1, intervalGrp, "SpinBox" );
- mySpinBox->setValue( 100 );
- mySpinBox->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
- mySpinBox->setMinimumWidth(MIN_SPIN_WIDTH);
-
- intervalGrpLayout->addWidget(TextLabel, 0, 0);
- intervalGrpLayout->addWidget(mySpinBox, 0, 1);
-
- aBtnLayout->addWidget( myButtonOk );
- aBtnLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ) );
- aBtnLayout->addWidget( myButtonCancel );
-
- topLayout->addWidget( intervalGrp, 0, 0 );
- topLayout->addLayout( aBtnLayout, 1, 0 );
-
- END_OF("IntervalWindow constructor")
-}
-IntervalWindow::~IntervalWindow() {}
-/*
- Sets start interval size
-*/
-void IntervalWindow::setValue(const int size)
-{
- mySpinBox->setValue(size);
-}
-
-/*
- Gets interval size
-*/
-int IntervalWindow::getValue()
-{
- return mySpinBox->value();
-}
-
-/*
- gets a pointer to myButtonOk
-*/
-QPushButton* IntervalWindow::Ok()
-{
- return myButtonOk;
-}
-
-/*
- gets a pointer to myButtonCancel
-*/
-QPushButton* IntervalWindow::Cancel()
-{
- return myButtonCancel;
-}
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : IntervalWindow.hxx
-// Author : Oksana TCHEBANOVA
-// Module : SALOME
-
-#ifndef IntervalWindow_HeaderFile
-#define IntervalWindow_HeaderFile
-
-# include <qwidget.h>
-# include <qdialog.h>
-# include <qpushbutton.h>
-# include <qspinbox.h>
-
-#ifndef WNT
-using namespace std;
-#endif
-
-class IntervalWindow : public QDialog
-{
-public:
- IntervalWindow( QWidget* parent = 0 );
- ~IntervalWindow();
-
- QPushButton* Ok();
- QPushButton* Cancel();
-
- int getValue();
- void setValue( int );
-
-private:
- QSpinBox* mySpinBox;
- QPushButton* myButtonOk;
- QPushButton* myButtonCancel;
-};
-
-#endif
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// 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 : RegWidget.cxx
-// Author : Pascale NOYRET, EDF
-// Module : SALOME
-// $Header$
-
-# include <qpushbutton.h>
-# include <qlistview.h>
-# include <qtabwidget.h>
-# include <qstatusbar.h>
-# include <qtextview.h>
-# include <qtimer.h>
-# include <qinputdialog.h>
-# include <qtoolbar.h>
-# include <qdir.h>
-# include <qtooltip.h>
-
-# include "SALOME_NamingService.hxx"
-# include "ServiceUnreachable.hxx"
-# include "Utils_SINGLETON.hxx"
-# include "Utils_CommException.hxx"
-
-# include "utilities.h"
-# include "OpUtil.hxx"
-
-# include "RegWidget.h"
-# include "HelpWindow.hxx"
-# include "IntervalWindow.hxx"
-using namespace std;
-
-typedef int PIXELS;
-RegWidget* RegWidget::myRegWidgetPtr = 0;
-QString addSlash( const QString& );
-QString findFile( QString filename );
-
-#define BOLD( text ) ( QString( "<b>" ) + QString( text ) + QString( "</b>" ) )
-
-static const char* const time_data[] = {
-"16 16 6 1",
-". c None",
-"b c None",
-"# c #000000",
-"a c #4c4c4c",
-"d c #878787",
-"c c #ffffff",
-".....#####ab....",
-"...##cc#dc##ab..",
-"..#ccc###dcc#ab.",
-".#ccccc#dcccc#a.",
-".#ccccc#dcccc#ab",
-"#cccccc#dccccc#a",
-"#cccccc#dccc#c#a",
-"#c##ccc########a",
-"#ccddcccdddd#d#a",
-"#cccccccccccdc#a",
-".#ccccccccccc#aa",
-".#ccccc#ccccc#a.",
-"..#cccc#dccc#aa.",
-"...##cccdc##aa..",
-".....#####aaa...",
-"......aaaaa....."};
-
-static const char* const close_data[] = {
-"16 16 6 1",
-"d c None",
-". c None",
-"# c #000000",
-"a c #4c4c4c",
-"c c #5b5b5b",
-"b c #ffffff",
-".....#####a.....",
-"...##bbbbb##a...",
-"..#bbbbbbbbb#a..",
-".#b#cbbbbbb#d#a.",
-".#bc#cbbbb#cb#a.",
-"#bbbc#cbb#cbbb#a",
-"#bbbbc#c#cbbbb#a",
-"#bbbbbc#cbbbbb#a",
-"#bbbbc#c#cbbbb#a",
-"#bbb#ccbb##bbb#a",
-".#b#c#bbbbc#b#aa",
-".#bc#bbbbbb#c#a.",
-"..#bbbbbbbbb#aa.",
-"...##bbbbb##aa..",
-".....#####aaa...",
-"......aaaaa....."};
-
-static const char* const refresh_data[] = {
-"16 16 5 1",
-". c None",
-"# c #000000",
-"a c #4c4c4c",
-"c c #878787",
-"b c #ffffff",
-".....#####a.....",
-"...##bb#bb##a...",
-"..#bbbbc#bbb#a..",
-".#bbbb####cbb#a.",
-".#bbb#cc#cbbb#a.",
-"#bbb#cb#cbbbbb#a",
-"#bb#cbbbbbb#bb#a",
-"#bb#cbbbbbb#cb#a",
-"#bb#cbbbbbb#cb#a",
-"#bbbbbb#bb#cbb#a",
-".#bbbb#cb#cbb#aa",
-".#bbb####cbbb#a.",
-"..#bbb#cbbbb#aa.",
-"...##bb#cb##aa..",
-".....#####aaa...",
-"......aaaaa....."};
-
-/*!
- Creates components list
-*/
-
-Registry::Components_var MakeRegistry( CORBA::ORB_var &orb )
-{
-
- const char *registryName="Registry" ;
-
- SALOME_NamingService &naming = *SINGLETON_<SALOME_NamingService>::Instance() ;
- naming.init_orb( orb ) ;
-
- // Recuperation de la reference de l'objet
- CORBA::Object_var object = 0 ;
- try
- {
- SCRUTE(registryName) ;
- object = naming.Resolve( registryName ) ;
- if(CORBA::is_nil(object)) throw CommException( "unable to find the RegistryService" ) ;
- }
- catch( const ServiceUnreachable &ex )
- {
- MESSAGE( ex.what() )
- exit( EXIT_FAILURE ) ;
- }
- catch( const CORBA::Exception &exx )
- {
- exit( EXIT_FAILURE ) ;
- }
-
- // Specialisation de l'objet generique
-
- return Registry::Components::_narrow( object ) ;
-}
-
-/*!
- Only one global registry window should exist at the moment
- This method creates registry window if necessary and returns it
- [ static ]
-*/
-RegWidget* RegWidget::GetRegWidget( CORBA::ORB_var &orb , QWidget *parent, const char *name )
-{
- if ( !myRegWidgetPtr )
- myRegWidgetPtr = new RegWidget( orb, parent, name );
- return myRegWidgetPtr;
-}
-
-/*!
- Constructor
-*/
-RegWidget::RegWidget(CORBA::ORB_var &orb, QWidget *parent, const char *name )
- : QMainWindow( parent, name, WType_TopLevel | WDestructiveClose ),
- _VarComponents( MakeRegistry(orb) ),
- _clients(0), _history(0), _parent( parent ),
- _tabWidget(0), _refresh(0), _interval(0),
- myInfoWindow(0), myHelpWindow(0), myIntervalWindow(0)
-{
- QString aFile = findFile("default.png");
- /* char* dir = getenv( "CSF_ResourcesDefaults" );
- QString path( "" );
- if ( dir ) {
- QDir qDir( dir );
- path = qDir.filePath( "default.png" );
- }*/
- QPixmap pm ( aFile );
- if ( !pm.isNull() )
- setIcon( pm );
-
- // pixmap for buttons
- QPixmap image_refresh ( ( const char** ) refresh_data );
- QPixmap image_interval( ( const char** ) time_data );
- QPixmap image_close ( ( const char** ) close_data );
-
- // Buttons definition
- QToolBar* topbar = new QToolBar( tr("Toolbar"), this );
- setDockEnabled( topbar, DockTornOff, false );
- setDockMenuEnabled( false );
-
- _refresh = new QPushButton( tr( "Refresh" ), topbar );
- _refresh->setIconSet( image_refresh );
- _refresh->setFocusPolicy( NoFocus );
- connect( _refresh, SIGNAL( clicked() ), this, SLOT( slotListeSelect() ) );
- QToolTip::add( _refresh, "", toolTipGroup(), tr("Immediately updates list of components") );
-
- /* PAL5540 - this button is needless
- QPushButton* help = new QPushButton( tr( "Help" ), topbar );
- connect( help, SIGNAL( clicked() ), this, SLOT( slotHelp() ) );
- QToolTip::add( help, "", toolTipGroup(), tr("Opens Help window") );
- */
-
- _interval = new QPushButton( tr( "Interval" ), topbar );
- _interval->setIconSet( image_interval );
- _interval->setFocusPolicy( NoFocus );
- connect( _interval, SIGNAL( clicked() ), this, SLOT( slotSelectRefresh() ) );
- QToolTip::add( _interval, "", toolTipGroup(), tr("Changes refresh interval") );
-
- topbar->addSeparator();
- _close = new QPushButton( tr("Close"), topbar );
- _close->setIconSet( image_close );
- _close->setFocusPolicy( NoFocus );
- connect( _close, SIGNAL( clicked() ), this, SLOT( close() ) );
- QToolTip::add( _close, "", toolTipGroup(), tr("Closes Registry window") );
-
- // Display area and associated slots definition
- _tabWidget = new QTabWidget( this );
- _clients = new QListView( _tabWidget );
- SetListe();
- _history = new QListView( _tabWidget );
- SetListeHistory();
-
- _tabWidget->addTab( _clients, tr( "Running" ) );
- _tabWidget->addTab( _history, tr( "History" ) );
- connect( _tabWidget, SIGNAL( currentChanged( QWidget* )), this, SLOT( slotListeSelect() ) );
- connect( _clients, SIGNAL( clicked( QListViewItem* ) ), this, SLOT( slotClientChanged( QListViewItem* ) ) );
- connect( _history, SIGNAL( clicked( QListViewItem* ) ), this, SLOT( slotHistoryChanged( QListViewItem* ) ) );
- setCentralWidget( _tabWidget );
-
- // Timer definition (used to automaticaly refresh the display area)
- _counter = new QTimer( this );
- connect( _counter, SIGNAL( timeout() ), this, SLOT( slotListeSelect() ) );
- myRefreshInterval = 10;
- _counter->start( myRefreshInterval * 1000 );
-
- PIXELS xpos = 160 ;
- PIXELS ypos = 100 ;
- PIXELS largeur = 800 ;
- PIXELS hauteur = 350 ;
- setGeometry( xpos, ypos, largeur, hauteur ) ;
- setCaption( name ) ;
- statusBar()->message(" ");
-}
-
-/*!
- Destructor
-*/
-RegWidget::~RegWidget()
-{
- MESSAGE("Debut du Destructeur");
- _counter->stop();
- myRegWidgetPtr = 0;
-};
-
-/*!
- Event filter
-*/
-bool RegWidget::eventFilter( QObject* object, QEvent* event )
-{
- if ( object ) {
- if ( object == myHelpWindow && event->type() == QEvent::Close ) {
- myHelpWindow = 0;
- }
- else if ( object == myInfoWindow && event->type() == QEvent::Close ) {
- myInfoWindow = 0;
- }
- else if ( object == myIntervalWindow && event->type() == QEvent::Close ) {
- myIntervalWindow = 0;
- }
- else if ( object == _clients && event->type() == QEvent::KeyPress ) {
- QKeyEvent* ke = (QKeyEvent*)event;
- if ( ke->key() == Key_Enter || ke->key() == Key_Return ) {
- slotClientChanged( _clients->currentItem() );
- }
- }
- else if ( object == _history && event->type() == QEvent::KeyPress ) {
- QKeyEvent* ke = (QKeyEvent*)event;
- if ( ke->key() == Key_Enter || ke->key() == Key_Return ) {
- slotHistoryChanged( _history->currentItem() );
- }
- }
- }
- return QMainWindow::eventFilter( object, event );
-}
-
-/*!
- Searches item in the list and returns it's index or -1 if not found
-*/
-int RegWidget::numitem(const QString &name, const QString &pid, const QString &machine,const Registry::AllInfos *listclient)
-{
- BEGIN_OF("numitem");
- for (CORBA::ULong i=0; i<listclient->length(); i++)
- {
- const Registry::Infos & c_info=(*listclient)[i];
- ASSERT( c_info.name!=NULL);
- QString b;
- b.setNum(int(c_info.pid));
- if ( (name.compare(QString(c_info.name)) == 0) &&
- (machine.compare(QString(c_info.machine)) == 0) &&
- (pid.compare(b) == 0) )
- {
- END_OF("numitem");
- return i;
- }
- }
- END_OF("numitem");
- return -1;
-}
-
-/*!
- Returns text, containing information about client [ static ]
-*/
-QString RegWidget::setlongText( const Registry::Infos &c_info)
-{
- BEGIN_OF("setlongText");
- ASSERT( c_info.name != NULL );
- QString a = QString( "<hr><h2>" ) + tr( "Code" ) + QString( " : " );
- a.append( QString( c_info.name ) );
- a.append( "</h1><hr><br>" );
- a.append( tr( "Process Id" ) + QString( " : " ) );
- a.append( BOLD( QString::number( int( c_info.pid ) ) ) );
- a.append( QString( " " ) + tr( "on machine" ) + QString( " " ) );
- a.append( BOLD( c_info.machine ) );
- a.append( QString( " " ) + tr( "ip address" ) + QString( " : " ) );
- a.append( BOLD( c_info.adip ) );
- a.append( "<br>" );
-
- a.append( tr( "launched by user" ) + QString( " " ) );
- a.append( BOLD( c_info.pwname ) );
- a.append( QString( " ( " ) + tr( "pid" ) + QString( " : " ) );
- a.append( BOLD( QString::number( int( c_info.uid ) ) ) );
- a.append( QString( " )<br> " ) + tr( "in directory" ) + QString( " " ));
- a.append( BOLD( c_info.cdir ) );
-
- a.append( QString( "<br>" ) + tr( "begins" ) + QString( " " ) );
- char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
- t1 [strlen(t1) -1 ] = ' ';
- a.append( BOLD( t1 ) );
- delete [] t1;
- a.append( "<br>" );
-
- if (c_info.tc_hello != 0 )
- {
- char * t2 = (char * )duplicate(ctime(&c_info.tc_hello));
- t2 [strlen(t2) -1 ] = ' ';
- a.append( tr( "last signal" ) + QString(" : ") );
- a.append( BOLD( t2 ) );
- a.append( "<br>" );
- delete [] t2;
- }
- if ((c_info.tc_end - c_info.difftime) != 0)
- {
- char * t3 = (char * )duplicate(ctime(&c_info.tc_end));
- t3 [strlen(t3) -1 ] = ' ';
- a.append( tr( "ends" ) + QString( " " ) );
- a.append( BOLD( t3 ) );
- a.append( "<br>" );
- delete [] t3;
- }
- else
- {
- a.append( tr( "still running" ) + QString( "<br>" ) );
- }
-
- SCRUTE(c_info.difftime);
- if (c_info.difftime!= 0)
- {
- a.append( QString( "(" ) + tr( "Time on" ) + QString( " " ) );
- a.append( BOLD( c_info.machine ) );
- a.append( QString( " " ) + tr( "differs from server's time. The difference is" ) + QString( " " ));
- a.append( BOLD( QString::number( int( c_info.difftime ) ) ) );
- a.append( QString( " " ) + tr( "seconds" ) + QString( ")<br>" ) );
- }
- END_OF("setlongText");
- return a;
-
-}
-
-/*!
- Close event
-*/
-void RegWidget::closeEvent( QCloseEvent *e)
-{
- BEGIN_OF("closeEvent");
- if ( myInfoWindow )
- myInfoWindow->close();
- if ( myHelpWindow )
- myHelpWindow->close();
- if (myIntervalWindow)
- myIntervalWindow->close();
- e->accept();
- END_OF("closeEvent");
-};
-
-/*!
- Setups Clients list
-*/
-void RegWidget::SetListe()
-{
- BEGIN_OF("SetListe");
- _clients->installEventFilter( this );
- _clients->setAllColumnsShowFocus( true );
- _clients->addColumn( tr( "Component" ), -1);
- _clients->addColumn( tr( "PID" ), -1 );
- _clients->addColumn( tr( "User Name" ), -1 );
- _clients->addColumn( tr( "Machine" ), -1 );
- _clients->addColumn( tr( "begins" ), -1 );
- _clients->addColumn( tr( "hello" ) , -1 );
- _clients->setColumnAlignment( 1, Qt::AlignRight );
- END_OF("SetListe");
-}
-
-/*!
- Setups History list
-*/
-void RegWidget::SetListeHistory()
-{
- BEGIN_OF("SetListeHistory")
- _history->installEventFilter( this );
- _history->setAllColumnsShowFocus( true );
- _history->addColumn( tr( "Component" ), -1);
- _history->addColumn( tr( "PID" ), -1 );
- _history->addColumn( tr( "User Name" ), -1 );
- _history->addColumn( tr( "Machine" ), -1 );
- _history->addColumn( tr( "begins" ), -1 );
- _history->addColumn( tr( "ends" ), -1 );
- _history->setColumnAlignment( 1, Qt::AlignRight );
- END_OF("SetListeHistory")
-}
-
-/*!
- Updates History list
-*/
-void RegWidget::InfoHistory()
-{
-
- BEGIN_OF("InfoHistory")
- _history->clear();
- try
- {
- _serverhistory = _VarComponents->history();
- for (CORBA::ULong i=0; i<_serverhistory->length(); i++)
- {
- const Registry::Infos & c_info=(*_serverhistory)[i];
- ASSERT( c_info.name!=NULL);
- QString a;
- a.setNum(int(c_info.pid));
- char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
- t1 [strlen(t1) -1 ] = ' ';
- char * t2 = (char * )duplicate(ctime(&c_info.tc_end));
- t2 [strlen(t2) -1 ] = ' ';
- QListViewItem * item = new QListViewItem(_history, QString(c_info.name),\
- a, QString(c_info.pwname), QString(c_info.machine), \
- QString(t1), QString(t2));
- item=0 ;
- delete [] t1;
- delete [] t2;
-
- }
- }
- catch( ... )
- {
- _interval->setDisabled( TRUE ) ;
- _refresh->setDisabled( TRUE ) ;
- _counter->stop();
- MESSAGE("Sorry, No more Registry Server") ;
- statusBar()->message( tr( "Sorry, No more Registry Server" ) ) ;
- }
- END_OF("InfoHistory")
-}
-
-/*!
- Updates clients list
-*/
-void RegWidget::InfoReg()
-{
- BEGIN_OF("InfoReg")
- _clients->clear();
- try
- {
- _serverclients = _VarComponents->getall();
- for (CORBA::ULong i=0; i<_serverclients->length(); i++)
- {
- const Registry::Infos & c_info=(*_serverclients)[i];
- ASSERT( c_info.name!=NULL);
- QString a;
- a.setNum(int(c_info.pid));
- char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
- t1 [strlen(t1) -1 ] = ' ';
- char * t2 = (char * )duplicate(ctime(&c_info.tc_hello));
- t2 [strlen(t2) -1 ] = ' ';
- QListViewItem * item = new QListViewItem(_clients, QString(c_info.name),\
- a, QString(c_info.pwname), QString(c_info.machine), \
- QString(t1), QString(t2));
- item=0 ;
- delete [] t1;
- delete [] t2;
-
- }
- }
- catch( ... )
- {
- _interval->setDisabled( TRUE ) ;
- _refresh->setDisabled( TRUE ) ;
- _counter->stop();
- MESSAGE("Sorry, No more Registry Server") ;
- statusBar()->message( tr( "Sorry, No more Registry Server" ) ) ;
- }
- END_OF("InfoReg")
-}
-
-/*!
- Called when <Refresh> button is clicked
-*/
-void RegWidget::slotListeSelect()
-{
- try
- {
- ASSERT(_tabWidget->currentPage() != NULL);
- if (_tabWidget->currentPage () == _clients) InfoReg();
- else if (_tabWidget->currentPage () == _history) InfoHistory();
- }
- catch( ... )
- {
- MESSAGE("Sorry, No more Registry Server") ;
- statusBar()->message( tr( "Sorry, No more Registry Server" ) ) ;
- }
-}
-
-/*!
- Called when <Interval> button is clicked (changing refresh interval)
-*/
-void RegWidget::slotSelectRefresh()
-{
- BEGIN_OF("slotSelectRefresh");
- myIntervalWindow = new IntervalWindow(this);
- myIntervalWindow->installEventFilter( this );
- myIntervalWindow->setValue(myRefreshInterval);
- myIntervalWindow->show();
- connect( myIntervalWindow->Cancel(), SIGNAL( clicked() ), myIntervalWindow, SLOT( close() ) );
- connect( myIntervalWindow->Ok(), SIGNAL( clicked() ), this, SLOT( slotIntervalOk() ) );
- END_OF("slotSelectRefresh");
-}
-
-void RegWidget::slotIntervalOk()
-{
- BEGIN_OF("slotIntervalOk");
- myRefreshInterval = myIntervalWindow->getValue();
- _counter->changeInterval( myRefreshInterval * 1000 );
- SCRUTE(myRefreshInterval);
- myIntervalWindow->close();
- END_OF("slotIntervalOk");
-}
-/*!
- Called when <Help> button is clicked
-*/
-void RegWidget::slotHelp()
-{
- BEGIN_OF("slotHelp()");
-
- if ( !myHelpWindow ) {
- myHelpWindow = new HelpWindow( this );
- myHelpWindow->installEventFilter( this );
- }
- myHelpWindow->show();
- myHelpWindow->raise();
- myHelpWindow->setActiveWindow();
-
- END_OF("slotHelp()") ;
-}
-
-/*!
- Called when user clicks on item in <Running> list
-*/
-void RegWidget::slotClientChanged( QListViewItem* item )
-{
- BEGIN_OF("slotClientChanged()") ;
-
- if ( item <= 0)
- return;
-
- blockSignals( true ); // for sure that item will not be deleted when refreshing
-
- int numeroItem = numitem(item->text(0), item->text(1), item->text(3), _serverclients);
- SCRUTE(numeroItem) ;
- SCRUTE(item->text(1)) ;
-
- ASSERT(numeroItem>=0) ;
- ASSERT((size_t)numeroItem<_serverclients->length()) ;
- const Registry::Infos & c_info=(*_serverclients)[numeroItem];
- ASSERT( c_info.name!=NULL);
-
- if ( !myInfoWindow ) {
- myInfoWindow = new InfoWindow( this );
- myInfoWindow->installEventFilter( this );
- }
- QString a = tr( "More about" ) + QString( " " ) + QString( c_info.name );
- myInfoWindow->setCaption(a);
- myInfoWindow->setText( RegWidget::setlongText( c_info) );
- myInfoWindow->show();
- myInfoWindow->raise();
- myInfoWindow->setActiveWindow();
-
- blockSignals( false ); // enabling signals again
-
- END_OF("slotClientChanged()") ;
- return ;
-}
-
-/*!
- Called when user clicks on item in <History> list
-*/
-void RegWidget::slotHistoryChanged( QListViewItem* item )
-{
-
- BEGIN_OF("slotHistoryChanged()") ;
-
- if ( item <= 0)
- return;
-
- blockSignals( true ); // for sure that item will not be deleted when refreshing
-
- int numeroItem = numitem(item->text(0), item->text(1), item->text(3), _serverhistory);
-
- SCRUTE(numeroItem) ;
- SCRUTE(item->text(1)) ;
- ASSERT(numeroItem>=0) ;
- ASSERT((size_t)numeroItem<_serverhistory->length()) ;
- const Registry::Infos & c_info=(*_serverhistory)[numeroItem];
- ASSERT( c_info.name!=NULL);
-
- if ( !myInfoWindow ) {
- myInfoWindow = new InfoWindow( this );
- myInfoWindow->installEventFilter( this );
- }
- QString a = tr( "More about" ) + QString( " " ) + QString( c_info.name );
- myInfoWindow->setCaption(a);
- myInfoWindow->setText( RegWidget::setlongText( c_info ) );
- myInfoWindow->show();
- myInfoWindow->raise();
- myInfoWindow->setActiveWindow();
-
- blockSignals( false ); // enabling signals again
-
- END_OF("slotHistoryChanged()") ;
- return ;
-}
-
-/*!
- Constructor
-*/
-InfoWindow::InfoWindow( QWidget* parent, const char* name )
- : QMainWindow( parent, name, WType_TopLevel | WDestructiveClose )
-{
- BEGIN_OF("InfoWindow");
- myTextView = new QTextView( this, "myTextView" );
- setCentralWidget( myTextView );
- setMinimumSize( 450, 250 );
- END_OF("InfoWindow");
-}
-
-/*!
- Sets text
-*/
-void InfoWindow::setText( const QString& text )
-{
- myTextView->setText( text );
-}
-
-/*!
- Key press event
-*/
-void InfoWindow::keyPressEvent( QKeyEvent * e )
-{
- QMainWindow::keyPressEvent( e );
- if ( e->key() == Key_Escape )
- close();
-}
-
-static const char* SEPARATOR = ":";
-
-QString findFile( QString filename )
-{
- QString dir;
- char* cenv;
-
- // Try ${HOME}/.salome/resources directory
- cenv = getenv( "HOME" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- dir = addSlash(dir) ;
- dir = dir + ".salome" ;
- dir = addSlash(dir) ;
- dir = dir + "resources" ;
- dir = addSlash(dir) ;
- QFileInfo fileInfo( dir + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
- // Try ${SALOME_SITE_DIR}/share/salome/resources directory
- cenv = getenv( "SALOME_SITE_DIR" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- dir = addSlash(dir) ;
- dir = dir + "share" ;
- dir = addSlash(dir) ;
- cenv = getenv("SALOME_SITE_NAME");
- if (cenv) dir = dir + cenv;
- else dir = dir + "salome" ;
- dir = addSlash(dir) ;
- dir = dir + "resources" ;
- dir = addSlash(dir) ;
- QFileInfo fileInfo( dir + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
- // Try ${KERNEL_ROOT_DIR}/share/salome/resources directory
- cenv = getenv( "KERNEL_ROOT_DIR" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- dir = addSlash(dir) ;
- dir = dir + "share" ;
- dir = addSlash(dir) ;
- dir = dir + "salome" ;
- dir = addSlash(dir) ;
- dir = dir + "resources" ;
- dir = addSlash(dir) ;
- QFileInfo fileInfo( dir + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
-
- //SRN Added support for SALOMEGUI
- cenv = getenv( "SALOMEGUI_ROOT_DIR" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- dir = addSlash(dir) ;
- dir = dir + "share" ;
- dir = addSlash(dir) ;
- dir = dir + "salome" ;
- dir = addSlash(dir) ;
- dir = dir + "resources" ;
- dir = addSlash(dir) ;
- QFileInfo fileInfo( dir + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
-
- // Try CSF_SaloameResources env.var directory ( or directory list )
- cenv = getenv( "CSF_SalomeResources" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- QStringList dirList = QStringList::split( SEPARATOR, dir, false ); // skip empty entries
- for ( int i = 0; i < dirList.count(); i++ ) {
- QFileInfo fileInfo( addSlash( dirList[ i ] ) + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
- }
- return filename;
-}
-QString addSlash( const QString& path )
-{
- if (!path.isNull()) {
-#ifdef WNT
- QChar slash ('\\');
-#else
- QChar slash ('/');
-#endif
- if ( path.at(path.length()-1) != slash )
- return path + slash;
- }
- return path;
-}
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// 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 : RegWidget.h
-// Author : Pascale NOYRET, EDF
-// Module : SALOME
-// $Header$
-
-# ifndef __REGWIDGET_H__
-# define __REGWIDGET_H__
-# include <qapplication.h>
-# include <qmainwindow.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_CLIENT_HEADER(SALOME_Registry)
-
-#include <IntervalWindow.hxx>
-
-class QTabWidget;
-class QListView;
-class QListViewItem;
-class QWidget;
-class QTimer;
-class QCloseEvent;
-class QTextView;
-#if QT_VERSION > 300
-class QPushButton;
-#endif
-class HelpWindow;
-class InfoWindow;
-
-class RegWidget : public QMainWindow
-{
-
- Q_OBJECT
-
-public:
- RegWidget( CORBA::ORB_var &orb , QWidget *parent = 0, const char *name = 0 );
- ~RegWidget();
- void SetListe();
- void SetListeHistory();
- void InfoReg();
- void InfoHistory();
-
- bool eventFilter( QObject* object, QEvent* event );
-
- static RegWidget* GetRegWidget( CORBA::ORB_var &orb , QWidget *parent = 0, const char *name = 0 );
-
-public slots:
- void slotHelp();
- void slotListeSelect();
- void slotClientChanged( QListViewItem* );
- void slotHistoryChanged( QListViewItem* );
- void slotSelectRefresh();
- void slotIntervalOk();
-protected:
- static QString setlongText( const Registry::Infos &c_info );
- int numitem( const QString& name, const QString& pid, const QString& machine, const Registry::AllInfos* c_info );
- void closeEvent( QCloseEvent *e);
-
-protected :
- QListView* _clients;
- QListView* _history;
- QWidget* _parent;
- QTabWidget* _tabWidget;
- QPushButton* _refresh;
- QPushButton* _interval;
- QPushButton* _close;
- QTimer* _counter;
- Registry::AllInfos* _serverhistory;
- Registry::AllInfos* _serverclients;
- InfoWindow* myInfoWindow;
- HelpWindow* myHelpWindow;
- IntervalWindow* myIntervalWindow;
- int myRefreshInterval;
-
-private:
- const Registry::Components_var _VarComponents;
- static RegWidget* myRegWidgetPtr;
-};
-
-class InfoWindow : public QMainWindow {
-public:
- InfoWindow( QWidget* parent = 0, const char* name = 0);
-
- void setText( const QString& text );
- QTextView* textView() const { return myTextView; }
-
-protected:
- void keyPressEvent( QKeyEvent * e );
-
-private:
- QTextView* myTextView;
-
-};
-
-# endif /* # ifndef __REGWIDGET_H__ */
-
-
-
-
-
-
-
-
-
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// 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 : RegWidgetFactory.cxx
-// Author : Pascale NOYRET, EDF
-// Module : SALOME
-// $Header$
-
-# include "RegWidget.h"
-# include "utilities.h"
-
-using namespace std;
-
-extern "C"
-{
-
-void OnGUIEvent( CORBA::ORB_var &orb, QWidget *parent, const char *name )
-{
- // N.B. parent can be 0
- RegWidget* ptrRegWidget = RegWidget::GetRegWidget( orb, parent, name );
- //ASSERT ( !ptrRegWidget );
- ptrRegWidget->show();
- ptrRegWidget->raise();
- ptrRegWidget->setActiveWindow();
- return;
-}
-
-}
+++ /dev/null
-# File : Makefile.in
-# Author : Vadim SANDLER (OCN)
-# Module : SalomeApp
-# $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@srcdir@/resources
-
-
-@COMMENCE@
-
-
-BIN = ResourceExporter
-BIN_SRC =
-
-CPPFLAGS += $(QT_INCLUDES)
-
-LDFLAGS += $(QT_MT_LIBS)
-LIBS += -lsuit -lqtx
-
-LDFLAGSFORBIN = ${LDFLAGS}
-LIBSFORBIN = $(LIBS)
-@CONCLUDE@
-
-
-
-
-
+++ /dev/null
-# SALOME SALOME_PY : binding of VTK graphics and Python
-#
-# 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@
-
-# Libraries targets
-
-LIB = libSalomePy.la
-LIB_SRC = SalomePy.cxx
-
-LIB_CLIENT_IDL = SALOMEDS.idl \
- SALOMEDS_Attributes.idl \
- SALOME_Exception.idl \
- SALOME_GenericObj.idl
-
-CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(BOOST_CPPFLAGS) -I${KERNEL_ROOT_DIR}/include/salome -DHAVE_CONFIG_H
-LDFLAGS+= $(PYTHON_LIBS) $(QT_MT_LIBS) $(VTK_LIBS) $(OGL_LIBS) -lSalomeApp -lvtkCommonPython -lvtkGraphicsPython -lvtkImagingPython
-# -lVTKViewer
-
-
-@CONCLUDE@
+++ /dev/null
-# 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 : Patrick GOLDBRONN (CEA)
-# Module : SALOME
-# $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@
-
-
-@COMMENCE@
-
-SUBDIRS = SALOME_PYQT_GUI SalomePyQt
-
-@MODULE@
+++ /dev/null
-%Module SalomePyQtGUI
-
-%Import qtmod.sip
-
+++ /dev/null
-#define SIP_VERS_@SIP_VERS@
+++ /dev/null
-# 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 : Help.py
-# Author : Paul RASCLE, EDF
-# Module : SALOME
-# $Header$
-
-class SalomeDoc:
- def __init__(self, aDoc):
- self.doc = aDoc
- def __repr__(self):
- print self.doc
- return "---"
- def salome(self):
- doc_salome = '''
-MODULE : salome
----------------
-module salome gives access to Salome ressources:
-variables:
-
- salome:orb : CORBA
- salome.naming_service : instance of naming Service class
- methods:
- Resolve(name) : find a CORBA object (ior) by its pathname
- Register(name) : register a CORBA object under a pathname
- salome.lcc : instance of lifeCycleCORBA class
- methods:
- FindOrLoadComponent(server,name) :
- obtain an Engine (CORBA object)
- or launch the Engine if not found,
- with a Server name and an Engine name
- salome.sg
- methods:
- updateObjBrowser(bool):
- getActiveStudyId():
- getActiveStudyName():
-
- SelectedCount(): returns number of selected objects
- getSelected(i): returns entry of selected object number i
- getAllSelected(): returns list of entry of selected objects
- AddIObject(Entry): select an existing Interactive object
- RemoveIObject(Entry): remove object from selection
- ClearIObjects(): clear selection
-
- Display(*Entry):
- DisplayOnly(Entry):
- Erase(Entry):
- DisplayAll():
- EraseAll():
-
- IDToObject(Entry): returns CORBA reference from entry
-
- salome.myStudyName : active Study Name
- salome.myStudyId : active Study Id
- salome.myStudy : the active Study itself (CORBA ior)
- methods : defined in SALOMEDS.idl
-
-methods:
- salome.DumpStudy(study) : Dump a study, given the ior
----
-'''
- print doc_salome
-
- def geompy(self):
- doc_geompy = '''
-MODULE : geompy
----------------
-module geompy provides an encapsulation of GEOM Engine methods
-variables:
- geompy.geom : a Geometry Engine, found or loaded
- at first import of module geompy.
- methods : defined in GEOM_Gen.idl
- geompy.myBuilder : a study builder
- geompy.father : GEOM root in current study (salome.myStudy)
-
-methods:
- addToStudy(aShape, aName) : add the shape into the current study
- --- all methods of GEOM_Gen.idl that returns a shape are encapsulated,
- with the same interface : shapes are named with their ior
-'''
- print doc_geompy
-
- def supervision(self):
- doc_supervision = '''
-MODULES : SALOME_SuperVisionEditor and SALOME_SuperVisionExecutor
------------------------------------------------------------------
-this modules provide access to Editor and Executor Engine methods
-
-See SUPERV.idl
-
-In order to run the example (supervisionexample.py)
-
- Type : from supervisionexample import *
- supervisionexample.py contains comments
-
-A new python example avoids references to LifeCycleCORBA
- avoids references to NamingService
- avoids references to ModuleCatalog
- avoids SuperVisionComponent creation
- allows G.Input(...) instead of AddInput(G,...)
- replaces Editor/Executor with Graph
- allows Nodes, Ports and Links CORBA objects
- shortens methods names
- ...
-
- See /SuperVisionTest/resources/GraphExample.py
- and GraphExample.xml
----
-'''
- print doc_supervision
-
-
-
-help = SalomeDoc('''
-Availables modules:
- salome : gives access to Salome ressources
- geompy : encapsulation of GEOM Engine methods
- supervision : gives access to SuperVision Engine
-To obtain specific help on a module "truc", type: help.truc()
-To run an example, type: import example3
-''')
-
+++ /dev/null
-# 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= SALOMEGUI_Swig.hxx \
- SALOMEGUI_Swig.i
-
-# Libraries targets
-
-LIB = libSALOME_Swigcmodule.la
-LIB_SRC = SALOMEGUI_Swig.cxx
-
-LIB_CLIENT_IDL = SALOMEDS.idl \
- SALOME_Exception.idl \
- SALOME_GenericObj.idl
-
-SWIG_DEF = libSALOME_Swig.i
-EXPORT_PYSCRIPTS = libSALOME_Swig.py Help.py PyInterp.py examplevtk1.py supervisionexample.py supervisiongeomexample.py test_table.py test_big_table.py test_many_objects.py salome_test.py test_remove_ref.py
-
-EXPORT_SHAREDPYSCRIPTS=SALOMEGUI_shared_modules.py
-
-CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(BOOST_CPPFLAGS) -DHAVE_CONFIG_H -I${KERNEL_ROOT_DIR}/include/salome
-LIBS+= $(PYTHON_LIBS)
-LDFLAGS+= -lSalomeApp
-
-@CONCLUDE@
+++ /dev/null
-# 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 : PyInterp.py
-# Author : Paul RASCLE, EDF
-# Module : SALOME
-# $Header$
-
-import sys
-from omniORB import CORBA
-from LifeCycleCORBA import *
-from libSALOME_Swig import *
-import SALOMEDS
-from SALOME_NamingServicePy import *
-
- #--------------------------------------------------------------------------
-
-def DumpComponent(Study, SO, offset):
- it = Study.NewChildIterator(SO)
- Builder = Study.NewBuilder()
- while it.More():
- CSO = it.Value()
- it.Next()
- anAttr = Builder.FindOrCreateAttribute(CSO, "AttributeName")
- AtName = anAttr._narrow(SALOMEDS.AttributeName)
- t_name = AtName.Value()
- if t_name[0] == 1:
- ofs = 1
- a = ""
- while ofs <= offset:
- a = a + "--"
- ofs = ofs +1
- print a + ">" + CSO.GetID() + " " + t_name[1]
- t_RefSO = CSO.ReferencedObject()
- if t_RefSO[0] == 1:
- RefSO = t_RefSO[1]
- ofs = 1
- a = ""
- while ofs <= offset:
- a = a + " "
- ofs = ofs +1
- print a + ">" + RefSO.GetID()
- DumpComponent(Study, CSO, offset+2)
-
- #--------------------------------------------------------------------------
-
-def DumpStudy(Study):
- itcomp = Study.NewComponentIterator()
- while itcomp.More():
- SC = itcomp.Value()
- itcomp.Next()
- name = SC.ComponentDataType()
- print "-> ComponentDataType is " + name
- DumpComponent(Study, SC, 1)
-
-
- #--------------------------------------------------------------------------
-
-# initialise the ORB
-orb = CORBA.ORB_init([''], CORBA.ORB_ID)
-
-# create an LifeCycleCORBA instance
-lcc = LifeCycleCORBA(orb)
-
-# create an SALOMEGUI_Swig instance
-sg = SALOMEGUI_Swig()
-
-#create an naming service instance
-naming_service = SALOME_NamingServicePy_i(orb)
-
-# get active study name and id
-myStudyName = sg.getActiveStudyName()
-print myStudyName
-
-myStudyId = sg.getActiveStudyId()
-print myStudyId
-
-# get Study Manager reference
-obj = naming_service.Resolve('myStudyManager')
-myStudyManager = obj._narrow(SALOMEDS.StudyManager)
-
-# get active study
-myStudy = myStudyManager.GetStudyByName(myStudyName)
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : SALOMEGUI_Swig.hxx
-// Author : Vadim SANDLER
-// Module : SALOME
-// $Header$
-
-#ifndef SALOMEGUI_SWIG_HXX
-#define SALOMEGUI_SWIG_HXX
-
-class SALOMEGUI_Swig
-{
-public:
- /* construction/destruction */
- SALOMEGUI_Swig();
- ~SALOMEGUI_Swig();
-
- /* check GUI */
- bool hasDesktop();
-
- /* update object browser*/
- void updateObjBrowser( bool updateSelection );
-
- /* get active study */
- int getActiveStudyId();
- const char* getActiveStudyName();
-
- /* selection processing */
- int SelectedCount();
- const char* getSelected(int i);
- void AddIObject( const char *Entry );
- void RemoveIObject( const char *Entry );
- void ClearIObjects();
-
- /* display/erase */
- void Display( const char *Entry );
- void DisplayOnly( const char *Entry );
- void Erase( const char *Entry );
- void DisplayAll();
- void EraseAll();
- bool IsInCurrentView( const char *Entry );
-
- /* get component name/username */
- const char* getComponentName( const char* ComponentUserName );
- const char* getComponentUserName( const char* ComponentName );
-};
-
-#endif // SALOMEGUI_SWIG_HXX
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : SALOMEGUI_Swig.i
-// Author : Paul RASCLE, EDF
-// Module : SALOME
-// $Header$
-
-%{
-#include "SALOMEGUI_Swig.hxx"
-%}
-
-%include "pointer.i"
-
-class SALOMEGUI_Swig
-{
- public:
-/* construction/destruction */
- SALOMEGUI_Swig();
- ~SALOMEGUI_Swig();
-
-/* check GUI */
- bool hasDesktop();
-
-/* update object browser*/
- void updateObjBrowser(bool);
-
-/* get active study */
- int getActiveStudyId();
- const char *getActiveStudyName();
-
-/* selection processing */
- int SelectedCount();
- const char *getSelected(int i);
- void AddIObject(const char *Entry);
- void RemoveIObject(const char *Entry);
- void ClearIObjects();
-
-/* display/erase */
- void Display(const char *Entry);
- void DisplayOnly(const char *Entry);
- void Erase(const char *Entry);
- void DisplayAll();
- void EraseAll();
- bool IsInCurrentView(const char *Entry);
-
-/* get component name/username */
- const char* getComponentName( const char* ComponentUserName );
- const char* getComponentUserName( const char* ComponentName );
-};
+++ /dev/null
-# 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 : examplevtk1.py
-# Module : SALOME
-
-import libSalomePy
-ren=libSalomePy.renderer
-#iren=libSalomePy.interactor
-
-from libVTKCommonPython import *
-from libVTKGraphicsPython import *
-cone = vtkConeSource()
-cone.SetResolution(8)
-coneMapper = vtkPolyDataMapper()
-coneMapper.SetInput(cone.GetOutput())
-coneActor = vtkActor()
-coneActor.SetMapper(coneMapper)
-
-ren.AddActor(coneActor)
-iren = vtkRenderWindowInteractor()
-
+++ /dev/null
-// 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 : libSALOME_Swig.i
-// Author : Paul RASCLE, EDF
-// Module : SALOME
-// $Header$
-
-%module libSALOME_Swig
-
-//%include "SALOME_NamingService.i"
-%include "SALOMEGUI_Swig.i"
-
+++ /dev/null
-# 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.py
-# Author : Paul RASCLE, EDF
-# Module : SALOME
-# $Header$
-
-from omniORB import CORBA
-from LifeCycleCORBA import *
-from libSALOME_Swig import *
-import SALOMEDS
-from SALOME_NamingServicePy import *
-
-from SALOME_utilities import *
-
-#--------------------------------------------------------------------------
-
-def DumpComponent(Study, SO, offset):
- it = Study.NewChildIterator(SO)
- Builder = Study.NewBuilder()
- while it.More():
- CSO = it.Value()
- it.Next()
- anAttr = Builder.FindOrCreateAttribute(CSO, "AttributeName")
- AtName = anAttr._narrow(SALOMEDS.AttributeName)
- t_name = AtName.Value()
- if t_name[0] == 1:
- ofs = 1
- a = ""
- while ofs <= offset:
- a = a + "--"
- ofs = ofs +1
- MESSAGE( a + ">" + str(CSO.GetID()) + " " + str(t_name[1]) )
- t_RefSO = CSO.ReferencedObject()
- if t_RefSO[0] == 1:
- RefSO = t_RefSO[1]
- ofs = 1
- a = ""
- while ofs <= offset:
- a = a + " "
- ofs = ofs +1
- MESSAGE( a + ">" + str(RefSO.GetID()) )
- DumpComponent(Study, CSO, offset+2)
-
- #--------------------------------------------------------------------------
-
-def DumpStudy(Study):
- itcomp = Study.NewComponentIterator()
- while itcomp.More():
- SC = itcomp.Value()
- itcomp.Next()
- name = SC.ComponentDataType()
- MESSAGE( "-> ComponentDataType is " + name )
- DumpComponent(Study, SC, 1)
-
-
- #--------------------------------------------------------------------------
-
-def ImportComponentGUI(ComponentName):
- libName = "lib" + ComponentName + "_Swig"
- command = "from " + libName + " import *"
- exec ( command )
- constructor = ComponentName + "_Swig()"
- command = "gui = " + constructor
- exec ( command )
- return gui
-
- #--------------------------------------------------------------------------
-
-def SalomeGUIgetAllSelected(self):
- selNumber = self.SelectedCount()
- listSelected = []
- for i in range(selNumber):
- listSelected.append(self.getSelected(i))
- return listSelected
-
-class SalomeGUI(SALOMEGUI_Swig):
- getAllSelected = SalomeGUIgetAllSelected
-
- #--------------------------------------------------------------------------
-
-def IDToObject(id):
- myObj = None
- mySO = myStudy.FindObjectID(id);
- if mySO is not None:
- ok, anAttr = mySO.FindAttribute("AttributeIOR")
- if ok:
- AtIOR = anAttr._narrow(SALOMEDS.AttributeIOR)
- if AtIOR.Value() != "":
- myObj = orb.string_to_object(AtIOR.Value())
- return myObj
-
-def ObjectToSObject(obj):
- mySO = None
- if obj is not None:
- ior = orb.object_to_string(obj)
- if ior != "":
- mySO = myStudy.FindObjectIOR(ior)
- return mySO
-
-def ObjectToID(obj):
- mySO = ObjectToSObject(obj)
- if mySO:
- return mySO.GetID()
- return ""
-
-def IDToSObject(id):
- mySO = myStudy.FindObjectID(id);
- return mySO
-
- #--------------------------------------------------------------------------
-
-# initialise the ORB
-orb = CORBA.ORB_init([''], CORBA.ORB_ID)
-
-# create an LifeCycleCORBA instance
-lcc = LifeCycleCORBA(orb)
-
-# create an SALOMEGUI_Swig instance
-sg = SalomeGUI()
-
-#create an naming service instance
-naming_service = SALOME_NamingServicePy_i(orb)
-
-# get active study name and id
-myStudyName = sg.getActiveStudyName()
-MESSAGE( myStudyName )
-
-myStudyId = sg.getActiveStudyId()
-MESSAGE( str(myStudyId) )
-
-# get Study Manager reference
-obj = naming_service.Resolve('myStudyManager')
-myStudyManager = obj._narrow(SALOMEDS.StudyManager)
-
-# get active study
-myStudy = myStudyManager.GetStudyByName(myStudyName)
-
+++ /dev/null
-#==============================================================================
-# File : supervisionexample.py
-# Created : 23 nov 2001
-# Author : Jean Rahuel
-# Project : SALOME
-# Copyright : CEA
-#==============================================================================
-
-from SuperV import *
-
-
-
-# load this object with Nodes, Links and Datas stored in GraphEssai.xml
-# (GraphEssai.xml was created with python in SuperVisionTest and GraphEssai.py)
-myGraph = Graph("@ROOT_BUILDDIR@/share/salome/resources/GraphEssai.xml")
-
-#myGraph = Graph("/home/data/jr_HEAD/build/share/salome/resources/GraphEssai.xml")
-# This DataFlow is "valid" : no loop, correct links between Nodes etc...
-
-print myGraph.IsValid()
-
-# Get Nodes
-myGraph.PrintNodes()
-Add,Sub,Mul,Div = myGraph.Nodes()
-
-# Load Datas
-Addx = Add.Input("x",3.)
-Addy = Add.Input("y",4.5)
-Subx = Sub.Input("x",1.5)
-
-# Get Output Port
-Addz = Add.Port('z')
-Subz = Sub.Port('z')
-Mulz = Mul.Port('z')
-Divz = Div.Port('z')
-
-# This DataFlow is "executable" : all pending Ports are defined with Datas
-print myGraph.IsExecutable()
-
-# Starts only execution of that DataFlow and gets control immediatly
-print myGraph.Run()
-
-# That DataFlow is running ==> 0 (false)
-print myGraph.IsDone()
-
-# Events of execution :
-aStatus,aNode,anEvent,aState = myGraph.Event()
-while aStatus :
- print aNode.Thread(),aNode.SubGraph(),aNode.Name(),anEvent,aState
- aStatus,aNode,anEvent,aState = myGraph.Event()
-print myGraph.IsDone()
-
-# Wait for Completion (but it is already done after event loop ...)
-print "Done : ",myGraph.DoneW()
-
-# Get result
-print "Result : ",Divz.ToString()
-
-# Intermediate results :
-print "Intermediate Result Add\z : ",Addz.ToString()
-print "Intermediate Result Sub\z : ",Subz.ToString()
-print "Intermediate Result Mul\z : ",Mulz.ToString()
-
-print " "
-print "Type : print myGraph.IsDone()"
-print " If execution is finished ==> 1 (true)"
-print " "
-print "Type : print Divz.ToString()"
-print " You will get the result"
-print " "
-print "Type : myGraph.PrintPorts()"
-print " to see input and output values of the graph"
-print " "
-print "Type : Add.PrintPorts()"
-print "Type : Sub.PrintPorts()"
-print "Type : Mul.PrintPorts()"
-print "Type : Div.PrintPorts()"
-print " to see input and output values of nodes"
-
-# Export will create newsupervisionexample.xml and the corresponding .py file
-print myGraph.Export("@ROOT_BUILDDIR@/share/salome/resources/newsupervisionexample.xml")
-
-print " "
-print "See file @ROOT_BUILDDIR@/share/salome/resources/newsupervisionexample.xml"
-print "See file @ROOT_BUILDDIR@/share/salome/resources/newsupervisionexample.py"
+++ /dev/null
-#==============================================================================
-# File : supervisionexample.py
-# Created : 23 nov 2001
-# Author : Jean Rahuel
-# Project : SALOME
-# Copyright : CEA
-#==============================================================================
-
-from SuperV import *
-
-
-
-# load this object with Nodes, Links and Datas stored in GraphEssai.xml
-# (GraphEssai.xml was created with python in SuperVisionTest and GraphEssai.py)
-myGraph = Graph("@ROOT_BUILDDIR@/share/salome/resources/GraphEssai.xml")
-
-#myGraph = Graph("/home/data/jr_HEAD/build/share/salome/resources/GraphEssai.xml")
-# This DataFlow is "valid" : no loop, correct links between Nodes etc...
-
-print myGraph.IsValid()
-
-# Get Nodes
-myGraph.PrintNodes()
-Add,Sub,Mul,Div = myGraph.Nodes()
-
-# Load Datas
-Addx = Add.Input("x",3.)
-Addy = Add.Input("y",4.5)
-Subx = Sub.Input("x",1.5)
-
-# Get Output Port
-Addz = Add.Port('z')
-Subz = Sub.Port('z')
-Mulz = Mul.Port('z')
-Divz = Div.Port('z')
-
-# This DataFlow is "executable" : all pending Ports are defined with Datas
-print myGraph.IsExecutable()
-
-# Starts only execution of that DataFlow and gets control immediatly
-print myGraph.Run()
-
-# That DataFlow is running ==> 0 (false)
-print myGraph.IsDone()
-
-# Events of execution :
-aStatus,aNode,anEvent,aState = myGraph.Event()
-while aStatus :
- print aNode.Thread(),aNode.SubGraph(),aNode.Name(),anEvent,aState
- aStatus,aNode,anEvent,aState = myGraph.Event()
-print myGraph.IsDone()
-
-# Wait for Completion (but it is already done after event loop ...)
-print "Done : ",myGraph.DoneW()
-
-# Get result
-print "Result : ",Divz.ToString()
-
-# Intermediate results :
-print "Intermediate Result Add\z : ",Addz.ToString()
-print "Intermediate Result Sub\z : ",Subz.ToString()
-print "Intermediate Result Mul\z : ",Mulz.ToString()
-
-print " "
-print "Type : print myGraph.IsDone()"
-print " If execution is finished ==> 1 (true)"
-print " "
-print "Type : print Divz.ToString()"
-print " You will get the result"
-print " "
-print "Type : myGraph.PrintPorts()"
-print " to see input and output values of the graph"
-print " "
-print "Type : Add.PrintPorts()"
-print "Type : Sub.PrintPorts()"
-print "Type : Mul.PrintPorts()"
-print "Type : Div.PrintPorts()"
-print " to see input and output values of nodes"
-
-# Export will create newsupervisionexample.xml and the corresponding .py file
-print myGraph.Export("@ROOT_BUILDDIR@/share/salome/resources/newsupervisionexample.xml")
-
-print " "
-print "See file @ROOT_BUILDDIR@/share/salome/resources/newsupervisionexample.xml"
-print "See file @ROOT_BUILDDIR@/share/salome/resources/newsupervisionexample.py"
+++ /dev/null
-
-# Generated python file of Graph GraphGeom2Essai
-
-from SuperV import *
-
-import salome
-
-import geompy
-
-
-geom = lcc.FindOrLoadComponent("FactoryServer", "Geometry")
-geom.GetCurrentStudy(salome.myStudyId)
-
-myBuilder = salome.myStudy.NewBuilder()
-
-# Graph creation
-GraphGeom2Essai = Graph( 'GraphGeom2Essai' )
-print GraphGeom2Essai.SetAuthor( '' )
-print GraphGeom2Essai.SetComment( '' )
-GraphGeom2Essai.Coords( 0 , 0 )
-
-# Creation of Nodes
-MakeSphere = GraphGeom2Essai.Node( 'Geometry' , 'Geometry' , 'MakeSphere' )
-print MakeSphere.SetAuthor( '' )
-print MakeSphere.SetContainer( 'FactoryServer' )
-print MakeSphere.SetComment( '' )
-MakeSphere.Coords( 26 , 13 )
-MakeCopy = GraphGeom2Essai.Node( 'Geometry' , 'Geometry' , 'MakeCopy' )
-print MakeCopy.SetAuthor( '' )
-print MakeCopy.SetContainer( 'FactoryServer' )
-print MakeCopy.SetComment( '' )
-MakeCopy.Coords( 219 , 12 )
-MakeTranslation = GraphGeom2Essai.Node( 'Geometry' , 'Geometry' , 'MakeTranslation' )
-print MakeTranslation.SetAuthor( '' )
-print MakeTranslation.SetContainer( 'FactoryServer' )
-print MakeTranslation.SetComment( '' )
-MakeTranslation.Coords( 219 , 159 )
-MakeFuse = GraphGeom2Essai.Node( 'Geometry' , 'Geometry' , 'MakeFuse' )
-print MakeFuse.SetAuthor( '' )
-print MakeFuse.SetContainer( 'FactoryServer' )
-print MakeFuse.SetComment( '' )
-MakeFuse.Coords( 465 , 106 )
-
-# Creation of intermediate Output variables and of links
-MakeSphereshape = MakeSphere.Port( 'shape' )
-MakeCopyshape1 = GraphGeom2Essai.Link( MakeSphereshape , MakeCopy.Port( 'shape1' ) )
-MakeTranslationshape1 = GraphGeom2Essai.Link( MakeSphereshape , MakeTranslation.Port( 'shape1' ) )
-MakeCopyshape = MakeCopy.Port( 'shape' )
-MakeFuseshape1 = GraphGeom2Essai.Link( MakeCopyshape , MakeFuse.Port( 'shape1' ) )
-MakeTranslationshape = MakeTranslation.Port( 'shape' )
-MakeFuseshape2 = GraphGeom2Essai.Link( MakeTranslationshape , MakeFuse.Port( 'shape2' ) )
-
-# Creation of Input datas
-MakeSpherex1 = MakeSphere.Input( 'x1' , 0)
-MakeSpherey1 = MakeSphere.Input( 'y1' , 0)
-MakeSpherez1 = MakeSphere.Input( 'z1' , 0)
-MakeSphereradius = MakeSphere.Input( 'radius' , 50)
-MakeTranslationx1 = MakeTranslation.Input( 'x1' , 80)
-MakeTranslationy1 = MakeTranslation.Input( 'y1' , 0)
-MakeTranslationz1 = MakeTranslation.Input( 'z1' , 0)
-
-# Missing Input datas : None
-
-# Creation of Output variables
-MakeFuseshape = MakeFuse.Port( 'shape' )
-
-# State of Ports of the Graph
-GraphGeom2Essai.PrintPorts()
-
-# Start asynchronous run
-print GraphGeom2Essai.Run()
-
-# Done ?
-print GraphGeom2Essai.IsDone()
-
-# Events of execution :
-aStatus,aNode,anEvent,aState = GraphGeom2Essai.Event()
-while aStatus :
- print aNode.Thread(),aNode.SubGraph(),aNode.Name(),anEvent,aState
- aStatus,aNode,anEvent,aState = GraphGeom2Essai.Event()
-print GraphGeom2Essai.IsDone()
-
-# Waiting end of execution :
-print GraphGeom2Essai.DoneW()
-
-print " "
-print "Type print GraphGeom2Essai.IsDone()"
-print "1 <==> It's done"
-print " "
-print "Type print GraphGeom2Essai.DoneW()"
-print "Wait until end of execution : 1(success)"
-print " "
-print "Type GraphGeom2Essai.PrintPorts()"
-print " to see input and output values of the graph"
-print " "
-print "Type MakeSphere.PrintPorts()"
-print "Type MakeCopy.PrintPorts()"
-print "Type MakeTranslation.PrintPorts()"
-print "Type MakeFuse.PrintPorts()"
-print " to see input and output values of nodes"
-print " "
-print "Type print GraphGeom2Essai.Export('File-Name')"
-print "You will get a .py and a .xml file of this graph"
+++ /dev/null
-
-# Generated python file of Graph GraphGeom2Essai
-
-from SuperV import *
-
-import salome
-
-import geompy
-
-
-geom = lcc.FindOrLoadComponent("FactoryServer", "Geometry")
-geom.GetCurrentStudy(salome.myStudyId)
-
-myBuilder = salome.myStudy.NewBuilder()
-
-# Graph creation
-GraphGeom2Essai = Graph( 'GraphGeom2Essai' )
-print GraphGeom2Essai.SetAuthor( '' )
-print GraphGeom2Essai.SetComment( '' )
-GraphGeom2Essai.Coords( 0 , 0 )
-
-# Creation of Nodes
-MakeSphere = GraphGeom2Essai.Node( 'Geometry' , 'Geometry' , 'MakeSphere' )
-print MakeSphere.SetAuthor( '' )
-print MakeSphere.SetContainer( 'FactoryServer' )
-print MakeSphere.SetComment( '' )
-MakeSphere.Coords( 26 , 13 )
-MakeCopy = GraphGeom2Essai.Node( 'Geometry' , 'Geometry' , 'MakeCopy' )
-print MakeCopy.SetAuthor( '' )
-print MakeCopy.SetContainer( 'FactoryServer' )
-print MakeCopy.SetComment( '' )
-MakeCopy.Coords( 219 , 12 )
-MakeTranslation = GraphGeom2Essai.Node( 'Geometry' , 'Geometry' , 'MakeTranslation' )
-print MakeTranslation.SetAuthor( '' )
-print MakeTranslation.SetContainer( 'FactoryServer' )
-print MakeTranslation.SetComment( '' )
-MakeTranslation.Coords( 219 , 159 )
-MakeFuse = GraphGeom2Essai.Node( 'Geometry' , 'Geometry' , 'MakeFuse' )
-print MakeFuse.SetAuthor( '' )
-print MakeFuse.SetContainer( 'FactoryServer' )
-print MakeFuse.SetComment( '' )
-MakeFuse.Coords( 465 , 106 )
-
-# Creation of intermediate Output variables and of links
-MakeSphereshape = MakeSphere.Port( 'shape' )
-MakeCopyshape1 = GraphGeom2Essai.Link( MakeSphereshape , MakeCopy.Port( 'shape1' ) )
-MakeTranslationshape1 = GraphGeom2Essai.Link( MakeSphereshape , MakeTranslation.Port( 'shape1' ) )
-MakeCopyshape = MakeCopy.Port( 'shape' )
-MakeFuseshape1 = GraphGeom2Essai.Link( MakeCopyshape , MakeFuse.Port( 'shape1' ) )
-MakeTranslationshape = MakeTranslation.Port( 'shape' )
-MakeFuseshape2 = GraphGeom2Essai.Link( MakeTranslationshape , MakeFuse.Port( 'shape2' ) )
-
-# Creation of Input datas
-MakeSpherex1 = MakeSphere.Input( 'x1' , 0)
-MakeSpherey1 = MakeSphere.Input( 'y1' , 0)
-MakeSpherez1 = MakeSphere.Input( 'z1' , 0)
-MakeSphereradius = MakeSphere.Input( 'radius' , 50)
-MakeTranslationx1 = MakeTranslation.Input( 'x1' , 80)
-MakeTranslationy1 = MakeTranslation.Input( 'y1' , 0)
-MakeTranslationz1 = MakeTranslation.Input( 'z1' , 0)
-
-# Missing Input datas : None
-
-# Creation of Output variables
-MakeFuseshape = MakeFuse.Port( 'shape' )
-
-# State of Ports of the Graph
-GraphGeom2Essai.PrintPorts()
-
-# Start asynchronous run
-print GraphGeom2Essai.Run()
-
-# Done ?
-print GraphGeom2Essai.IsDone()
-
-# Events of execution :
-aStatus,aNode,anEvent,aState = GraphGeom2Essai.Event()
-while aStatus :
- print aNode.Thread(),aNode.SubGraph(),aNode.Name(),anEvent,aState
- aStatus,aNode,anEvent,aState = GraphGeom2Essai.Event()
-print GraphGeom2Essai.IsDone()
-
-# Waiting end of execution :
-print GraphGeom2Essai.DoneW()
-
-print " "
-print "Type print GraphGeom2Essai.IsDone()"
-print "1 <==> It's done"
-print " "
-print "Type print GraphGeom2Essai.DoneW()"
-print "Wait until end of execution : 1(success)"
-print " "
-print "Type GraphGeom2Essai.PrintPorts()"
-print " to see input and output values of the graph"
-print " "
-print "Type MakeSphere.PrintPorts()"
-print "Type MakeCopy.PrintPorts()"
-print "Type MakeTranslation.PrintPorts()"
-print "Type MakeFuse.PrintPorts()"
-print " to see input and output values of nodes"
-print " "
-print "Type print GraphGeom2Essai.Export('File-Name')"
-print "You will get a .py and a .xml file of this graph"
+++ /dev/null
-# Copyright (C) 2003 CEA/DEN, EDF R&D
-#
-#
-#
-# File : test_big_table.py
-# Author : Vadim SANDLER
-# Module : SALOME
-# $Header$
-
-import salome
-import math
-import SALOMEDS
-
-# >>> Getting study builder ==================================================
-myStudy = salome.myStudy
-myBuilder = myStudy.NewBuilder()
-
-# >>> Creating virtual component =============================================
-myComponent = myStudy.FindComponent("VirtualComponent")
-if not myComponent:
- myComponent = myBuilder.NewComponent("VirtualComponent")
- aName = myBuilder.FindOrCreateAttribute(myComponent, "AttributeName")
- aName.SetValue("VirtualComponent")
-
-# >>> Creating object with Table of real[ 200 * 20 ] ========================
-myTRealObject = myBuilder.NewObject(myComponent)
-AName = myBuilder.FindOrCreateAttribute(myTRealObject, "AttributeName")
-AName.SetValue("Table Of Real")
-ARealTable = myBuilder.FindOrCreateAttribute(myTRealObject, "AttributeTableOfReal")
-myHorNb = 10
-myVerNb = 200
-
-k={}
-for j in range(0,myHorNb):
- k[j] = j*10+1
-ARealTable.AddRow(k.values())
-ARealTable.SetRowTitle(1, "Frequency")
-ARealTable.SetRowUnit(1, "Hz")
-
-for i in range(1,myVerNb+1):
- for j in range(0,myHorNb):
- if j % 2 == 1:
- k[j] = math.log10(j*30*math.pi/180) * 20 + i * 15 + j*5
- else:
- k[j] = math.sin(j*30*math.pi/180) * 20 + i * 15 + j*5
- ARealTable.AddRow(k.values())
- ARealTable.SetRowTitle(i+1, "Power " + str(i))
- ARealTable.SetRowUnit(i+1, "Wt")
-ARealTable.SetTitle("Very useful data")
-
-# >>> Updating Object Browser ================================================
-salome.sg.updateObjBrowser(1)
-
-# ============================================================================
+++ /dev/null
-# Copyright (C) 2003 CEA/DEN, EDF R&D
-#
-#
-#
-# File : visu_many_objects.py
-# Author : Vadim SANDLER
-# Module : SALOME
-# $Header$
-
-import salome
-import SALOMEDS
-
-# >>> Getting study builder ==================================================
-myStudy = salome.myStudy
-myBuilder = myStudy.NewBuilder()
-
-# >>> Creating virtual component =============================================
-myComponent = myBuilder.NewComponent("VIRTUAL")
-AName = myBuilder.FindOrCreateAttribute(myComponent, "AttributeName")
-AName.SetValue("Virtual")
-ACmt = myBuilder.FindOrCreateAttribute(myComponent, "AttributeComment")
-ACmt.SetValue("Virtual")
-
-# >>> Creating objects =======================================================
-# TO CHANGE TOTAL NUMBER OF OBJECTS, SET PROPER <myNb1>, <myNb2>, <myNb3>
-# IF YOU DON'T WANT TO ADD REFERENCES, SET <myAddRef> = 0
-myNb1 = 20
-myNb2 = 5
-myNb3 = 3
-myAddRef = 1
-
-if myAddRef == 1:
- myContainer = myBuilder.NewObject(myComponent)
- AName = myBuilder.FindOrCreateAttribute(myContainer, "AttributeName")
- AName.SetValue("References")
- ACmt = myBuilder.FindOrCreateAttribute(myContainer, "AttributeComment")
- ACmt.SetValue("Container for objects")
-
-for i in range(0,myNb1):
- myObject1 = myBuilder.NewObject(myComponent)
- AName = myBuilder.FindOrCreateAttribute(myObject1, "AttributeName")
- AName.SetValue("Object "+str(i))
- ACmt = myBuilder.FindOrCreateAttribute(myObject1, "AttributeComment")
- ACmt.SetValue("Virtual object "+str(i))
- if myAddRef == 1:
- myRefObject = myBuilder.NewObject(myContainer)
- myBuilder.Addreference(myRefObject,myObject1);
-
- for j in range(0,myNb2):
- myObject2 = myBuilder.NewObject(myObject1)
- AName = myBuilder.FindOrCreateAttribute(myObject2, "AttributeName")
- AName.SetValue("Object "+str(i)+"-"+str(j))
- ACmt = myBuilder.FindOrCreateAttribute(myObject2, "AttributeComment")
- ACmt.SetValue("Virtual object "+str(i)+"-"+str(j))
- if myAddRef == 1:
- myRefObject = myBuilder.NewObject(myContainer)
- myBuilder.Addreference(myRefObject,myObject2);
-
- for k in range(0,myNb3):
- myObject3 = myBuilder.NewObject(myObject2)
- AName = myBuilder.FindOrCreateAttribute(myObject3, "AttributeName")
- AName.SetValue("Object "+str(i)+"-"+str(j)+"-"+str(k))
- ACmt = myBuilder.FindOrCreateAttribute(myObject3, "AttributeComment")
- ACmt.SetValue("Virtual object "+str(i)+"-"+str(j)+"-"+str(k))
- if myAddRef == 1:
- myRefObject = myBuilder.NewObject(myContainer)
- myBuilder.Addreference(myRefObject,myObject3);
-
-# >>> Updating Object Browser ================================================
-salome.sg.updateObjBrowser(1)
-
-# ============================================================================
-
-
+++ /dev/null
-# 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 : test_remove_ref.py
-# Module : SALOMEDS
-
-from salome import *
-
-myBuilder = myStudy.NewBuilder()
-
-
-obj1 = myStudy.FindObjectID("0:1")
-if obj1 is None: print "Is null obj1 "
-else: print obj1.GetID()
-
-obj2 = myBuilder.NewObject(obj1)
-print "Obj2 ID = "+obj2.GetID()
-
-myBuilder.Addreference(obj1, obj2)
-
-(f, obj3) = obj1.ReferencedObject()
-
-print "Ref obj ID = "+obj3.GetID()
-
-
-myBuilder.RemoveReference(obj1)
-
-(f, obj4) = obj1.ReferencedObject()
-
-print "Ref is found ", f
-
\ No newline at end of file
+++ /dev/null
-# Copyright (C) 2003 CEA/DEN, EDF R&D
-#
-#
-#
-# File : test_table.py
-# Author : Vadim SANDLER
-# Module : SALOME
-# $Header$
-
-import salome
-import math
-import SALOMEDS
-
-# >>> Getting study builder ==================================================
-myStudy = salome.myStudy
-myBuilder = myStudy.NewBuilder()
-
-# >>> Creating virtual component =============================================
-myComponent = myStudy.FindComponent("VirtualComponent")
-if not myComponent:
- myComponent = myBuilder.NewComponent("VirtualComponent")
- aName = myBuilder.FindOrCreateAttribute(myComponent, "AttributeName")
- aName.SetValue("VirtualComponent")
-
-# >>> Creating object with Table of integer ==================================
-myTIntObject = myBuilder.NewObject(myComponent)
-AName = myBuilder.FindOrCreateAttribute(myTIntObject, "AttributeName")
-AName.SetValue("Table Of Integer")
-AIntTable = myBuilder.FindOrCreateAttribute(myTIntObject, "AttributeTableOfInteger")
-
-a=[1,2,3,4,5,6,7,8,9,10]
-AIntTable.AddRow(a)
-a=[110,120,130,140,150,160,170,180,190,200]
-AIntTable.AddRow(a)
-a=[-1,272,0,0,-642,10000,13,578,-578,99]
-AIntTable.AddRow(a)
-AIntTable.SetTitle("TEST table of integer")
-AIntTable.SetRowTitle(1,"FR")
-AIntTable.SetRowUnit(1,"m/h")
-AIntTable.SetRowTitle(2,"SR")
-AIntTable.SetRowUnit(2,"s")
-AIntTable.SetRowTitle(3,"TR")
-AIntTable.SetRowUnit(3,"$")
-c=["C1","C2","C3","C4","C5","C6","C7","C8","C9","C10"]
-AIntTable.SetColumnTitles(c)
-
-# >>> Creating object with Table of real =====================================
-myTRealObject = myBuilder.NewObject(myComponent)
-AName = myBuilder.FindOrCreateAttribute(myTRealObject, "AttributeName")
-AName.SetValue("Table Of Real")
-ARealTable = myBuilder.FindOrCreateAttribute(myTRealObject, "AttributeTableOfReal")
-
-k={}
-l={}
-for j in range(0,20):
- k[j] = j*10+1
- l[j] = "C"+str(j+1)
-ARealTable.AddRow(k.values())
-ARealTable.SetRowTitle(1, "Row 0")
-ARealTable.SetRowUnit(1, "Hz")
-ARealTable.SetColumnTitles(l.values())
-for i in range(1,11):
- for j in range(1,21):
- if j % 2 == 1:
- k[j] = math.log10(j*30*math.pi/180) * 20 + i * 15 + j*5
- else:
- k[j] = math.sin(j*30*math.pi/180) * 20 + i * 15 + j*5
- ARealTable.AddRow(k.values())
- ARealTable.SetRowTitle(i+1, "Row " + str(i))
- ARealTable.SetRowUnit(i+1, "Wt")
-ARealTable.SetTitle("TEST table of real")
-
-# >>> Creating object with integer attribute =================================
-myIntObject = myBuilder.NewObject(myComponent)
-AName = myBuilder.FindOrCreateAttribute(myIntObject, "AttributeName")
-AName.SetValue("Integer")
-AInt = myBuilder.FindOrCreateAttribute(myIntObject, "AttributeInteger")
-AInt.SetValue(123)
-
-# >>> Creating object with real attribute ====================================
-myRealObject = myBuilder.NewObject(myComponent)
-AName = myBuilder.FindOrCreateAttribute(myRealObject, "AttributeName")
-AName.SetValue("Real")
-AReal = myBuilder.FindOrCreateAttribute(myRealObject, "AttributeReal")
-AReal.SetValue(-56.9634)
-
-# >>> Creating object with comment attribute =================================
-myCmtObject = myBuilder.NewObject(myComponent)
-AName = myBuilder.FindOrCreateAttribute(myCmtObject, "AttributeName")
-AName.SetValue("Comment")
-ACmt = myBuilder.FindOrCreateAttribute(myCmtObject, "AttributeComment")
-ACmt.SetValue("Just a comment")
-
-# >>> Updating Object Browser ================================================
-salome.sg.updateObjBrowser(1)
-
-# ============================================================================
-
-
-
+++ /dev/null
-# 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 : testattr.py
-# Module : SALOME
-
-import SALOMEDS
-#import SALOMEDS_Attributes_idl
-import geompy
-import salome
-# ===============================================================
-
-# creating new object ===========================================
-obj = geompy.myBuilder.NewObject(geompy.father)
-
-# adding Name attribute =========================================
-A1 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeName")
-name = A1._narrow(SALOMEDS.AttributeName)
-name.SetValue("First Object")
-
-# adding Comment attribute ======================================
-A2 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeComment")
-comment = A2._narrow(SALOMEDS.AttributeComment)
-comment.SetValue("This is Comment attribute")
-
-# adding IOR attribute ==========================================
-#A3 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeIOR")
-# ...
-
-# adding integer attribute ======================================
-A4 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeInteger")
-integer = A4._narrow(SALOMEDS.AttributeInteger)
-integer.SetValue(12)
-
-# adding real attribute =========================================
-A5 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeReal")
-real = A5._narrow(SALOMEDS.AttributeReal)
-real.SetValue(0.25)
-
-# adding sequence of integer attribute ==========================
-A6 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeSequenceOfInteger")
-intseq = A6._narrow(SALOMEDS.AttributeSequenceOfInteger)
-intseq.Add(1)
-intseq.Add(2)
-intseq.Add(3)
-
-
-# adding sequence of real attribute =============================
-A7 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeSequenceOfReal")
-realseq = A7._narrow(SALOMEDS.AttributeSequenceOfReal)
-realseq.Add(0.001)
-realseq.Add(0.002)
-realseq.Add(0.003)
-
-# adding PersistentRef attribute ================================
-#A8 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributePersistentRef")
-# ...
-
-# adding Drawable attribute =====================================
-A9 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeDrawable")
-drawable = A9._narrow(SALOMEDS.AttributeDrawable)
-drawable.SetDrawable(1)
-
-# adding Selectable attribute ===================================
-#A10 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeSelectable")
-# ...
-
-# adding Expandable attribute ===================================
-#A11 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeExpandable")
-# ...
-
-# adding Opened attribute =======================================
-#A12 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeOpened")
-# ...
-
-# adding TextColor attribute ====================================
-A13 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeTextColor")
-textcolor = A13._narrow(SALOMEDS.AttributeTextColor)
-
-# ...
-
-# adding TextHighlightColor of real attribute ===================
-#A14 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributeTextHighlightColor")
-# ...
-
-# adding PixMap of real attribute ===============================
-#A15 = geompy.myBuilder.FindOrCreateAttribute(obj,"AttributePixMap")
-# ...
-
-# opening OCAF Browser ==========================================
-# result = salome.myStudy.OCAFBrowser()
+++ /dev/null
-// SALOME OCCViewer : build OCC Viewer into Salome desktop
-//
-// Copyright (C) 2004 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.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-// File : SOCC_Prs.cxx
-// Author : Sergey ANIKIN
-// Module : SALOME
-// $Header$
-
-#include "SOCC_Prs.h"
-using namespace std;
-
-//==========================================================
-/*!
- * SOCC_Prs::SOCC_Prs
- * Default constructor
- */
-//==========================================================
-SOCC_Prs::SOCC_Prs()
-{
- myToActivate = true;
-}
-
-//==========================================================
-/*!
- * SOCC_Prs::SOCC_Prs
- * Standard constructor
- */
-//==========================================================
-SOCC_Prs::SOCC_Prs( const Handle(AIS_InteractiveObject)& obj )
-{
- AddObject( obj );
-}
-
-//==========================================================
-/*!
- * SOCC_Prs::~SOCC_Prs
- * Destructor
- */
-//==========================================================
-SOCC_Prs::~SOCC_Prs()
-{
- myObjects.Clear();
-}
-
-//==========================================================
-/*!
- * SOCC_Prs::GetObjects
- * Get interactive objects list
- */
-//==========================================================
-void SOCC_Prs::GetObjects( AIS_ListOfInteractive& list ) const
-{
- list = myObjects;
-}
-
-//==========================================================
-/*!
- * SOCC_Prs::AddObject
- * Add interactive object
- */
-//==========================================================
-void SOCC_Prs::AddObject( const Handle(AIS_InteractiveObject)& obj )
-{
- myObjects.Append( obj );
-}
-
-//==========================================================
-/*!
- * SOCC_Prs::IsNull
- * Return 0 if list of the interactive objects is empty
- * [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
-bool SOCC_Prs::IsNull() const
-{
- return myObjects.IsEmpty();
-}
-
-//=================================================================
-/*!
- * GEOM_Displayer::SetToActivate
- * This method is used for activisation/deactivisation of
- * objects in the moment of displaying
-*/
-//=================================================================
-void SOCC_Prs::SetToActivate( const bool toActivate )
-{
- myToActivate = toActivate;
-}
-bool SOCC_Prs::ToActivate() const
-{
- return myToActivate;
-}
+++ /dev/null
-// SALOME OCCViewer : build OCC Viewer into Salome desktop
-//
-// Copyright (C) 2004 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.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-// File : SOCC_Prs.h
-// Author : Sergey ANIKIN
-// Module : SALOME
-// $Header$
-
-#ifndef SOCC_Prs_H
-#define SOCC_Prs_H
-
-#include "SOCC.h"
-
-#include <SALOME_Prs.h>
-
-#include <AIS_InteractiveObject.hxx>
-#include <AIS_ListOfInteractive.hxx>
-
-class SOCC_EXPORT SOCC_Prs : public SALOME_OCCPrs
-{
-public:
- SOCC_Prs();
- // Default constructor
- SOCC_Prs( const Handle(AIS_InteractiveObject)& obj );
- // Standard constructor
- ~SOCC_Prs();
- // Destructor
-
- void GetObjects( AIS_ListOfInteractive& list ) const;
- // Get interactive objects list
- void AddObject( const Handle(AIS_InteractiveObject)& obj );
- // Add interactive object
-
- bool IsNull() const;
- // Reimplemented from SALOME_Prs
-
- /* This method is used for activisation/deactivisation of
- objects in the moment of displaying */
- void SetToActivate( const bool );
- bool ToActivate() const;
-
-private:
- AIS_ListOfInteractive myObjects; // list of interactive objects
- bool myToActivate;
-};
-
-#endif
-
-
-
-
+++ /dev/null
-# File : Makefile.in
-# Author : Vladimir Klyachin (OCN)
-# Module : STD
-# $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@srcdir@/resources
-
-
-@COMMENCE@
-
-# header files
-EXPORT_HEADERS= STD_Application.h \
- STD.h \
- STD_MDIDesktop.h \
- STD_SDIDesktop.h \
- STD_TabDesktop.h \
- STD_CloseDlg.h \
- STD_LoadStudiesDlg.h
-
-# .po files to transform in .qm
-PO_FILES = STD_images.po \
- STD_msg_en.po
-
-# Libraries targets
-LIB = libstd.la
-
-LIB_SRC= STD_Application.cxx \
- STD_MDIDesktop.cxx \
- STD_SDIDesktop.cxx \
- STD_TabDesktop.cxx \
- STD_CloseDlg.cxx \
- STD_LoadStudiesDlg.cxx
-
-LIB_MOC = STD_Application.h \
- STD_MDIDesktop.h \
- STD_SDIDesktop.h \
- STD_TabDesktop.h \
- STD_CloseDlg.h \
- STD_LoadStudiesDlg.h
-
-RESOURCES_FILES = \
-config \
-cut.png \
-copy.png \
-close.png \
-cursor_rotate.png \
-cursor_zoom.png \
-help.png \
-new.png \
-open.png \
-print.png \
-paste.png \
-redo.png \
-reset.png \
-save.png \
-undo_arrow.png \
-undo.png \
-std.ini
-
-CPPFLAGS+=$(QT_INCLUDES)
-
-LDFLAGS+=$(QT_MT_LIBS)
-LIBS+= -lsuit
-
-@CONCLUDE@
+++ /dev/null
-language=en
+++ /dev/null
-# The resources mapping file for std application
-
-[language]
-language = en
-
-[resources]
-STD = $(CSF_stdResources)
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : SUIT_FileValidator.cxx
-// Author :
-// Module : SALOME
-// $Header$
-
-#include "SUIT_FileValidator.h"
-#include "SUIT_MessageBox.h"
-#include "SUIT_Session.h"
-
-#include <qfile.h>
-#include <qfileinfo.h>
-
-/*! constructor */
-SUIT_FileValidator::SUIT_FileValidator(QWidget* parent) :
-myParent(parent)
-{
-}
-
-/*! returns false if can't open file */
-bool SUIT_FileValidator::canOpen( const QString& file )
-{
- if ( !QFile::exists( file ) ) {
- SUIT_MessageBox::error1( myParent,
- QObject::tr( "ERR_ERROR" ),
- QObject::tr( "ERR_FILE_NOT_EXIST" ).arg( file ),
- QObject::tr( "BUT_OK" ) );
- return false;
- }
- if ( !QFileInfo( file ).isReadable() ) {
- SUIT_MessageBox::error1( myParent,
- QObject::tr( "ERR_ERROR" ),
- QObject::tr( "ERR_PERMISSION_DENIED" ).arg( file ),
- QObject::tr( "BUT_OK" ) );
- return false;
- }
- return true;
-}
-
-/*! returns false if can't save file */
-bool SUIT_FileValidator::canSave( const QString& file )
-{
- if ( QFile::exists( file ) ) {
- // if file exists - raise warning...
- if ( SUIT_MessageBox::warn2( myParent,
- QObject::tr( "WRN_WARNING" ),
- QObject::tr( "QUE_DOC_FILEEXISTS" ).arg( file ),
- QObject::tr( "BUT_YES" ),
- QObject::tr( "BUT_NO" ),
- SUIT_YES,
- SUIT_NO,
- SUIT_NO ) == SUIT_NO ) {
- return false;
- }
- // ... and if user wants to overwrite file, check it for writeability
- if ( !QFileInfo( file ).isWritable() ) {
- SUIT_MessageBox::error1( myParent,
- QObject::tr( "ERR_ERROR" ),
- QObject::tr( "ERR_PERMISSION_DENIED" ).arg( file ),
- QObject::tr( "BUT_OK" ) );
- return false;
- }
- }
- else {
- // if file doesn't exist - try to create it
- QFile qf( file );
- if ( !qf.open( IO_WriteOnly ) ) {
- SUIT_MessageBox::error1( myParent,
- QObject::tr( "ERR_ERROR" ),
- QObject::tr( "ERR_PERMISSION_DENIED" ).arg( file ),
- QObject::tr( "BUT_OK" ) );
- return false;
- }
- else {
- // remove just created file
- qf.close();
- qf.remove();
- }
- }
- return true;
-}
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : SUIT_FileValidator.h
-// Author :
-// Module : SALOME
-// $Header$
-
-#ifndef SUIT_FILEVALIDATOR_H
-#define SUIT_FILEVALIDATOR_H
-
-#include <qwidget.h>
-#include "SUIT.h"
-
-class SUIT_EXPORT SUIT_FileValidator
-{
-public:
- SUIT_FileValidator(QWidget* parent = 0);
-
- virtual bool canOpen( const QString& file );
- virtual bool canSave( const QString& file );
-
- //! Return parent widget
- QWidget* parent() const { return myParent; }
-
- private:
-
- QWidget* myParent;
-};
-
-#endif
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : SUIT_ParserSettings.cxx
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#include "SUIT_ParserSettings.h"
-
-#include <stdio.h>
-
-// QT Includes
-#include <qfile.h>
-#include <qfileinfo.h>
-#include <qtextstream.h>
-
-
-/*! Constructor. Do nothing.*/
-SUIT_ParserSettings::SUIT_ParserSettings()
-{
-}
-
-
-/*!
- Destructor. Do nothing.
-*/
-SUIT_ParserSettings::~SUIT_ParserSettings()
-{
-}
-
-
-/*!
- Gets the contents of a file.
-*/
-QString SUIT_ParserSettings::getContents(QString fileName, bool comments,
- bool sections, bool whiteSpace,
- bool htmlComments)
-{
- QFileInfo fi(fileName);
- QFile f(fi.absFilePath());
- QString s=""; // Buffer for the whole file
-
- if(f.open(IO_ReadOnly)) { // file opened successfully
- QTextStream t(&f); // use a text stream
-
- s = t.read(); // The whole file in a string
- f.close();
-
- if(!comments) s = SUIT_ParserSettings::removeComments(s);
- if(!sections) s = SUIT_ParserSettings::removeSections(s);
- if(!whiteSpace) s = s.simplifyWhiteSpace();
- if(!htmlComments) s = SUIT_ParserSettings::removeHtmlComments(s);
- }
- else {
- // Can't open file
- }
-
- return s;
-}
-
-
-/*!
- Gets the body of a section from a string.
-*/
-QString SUIT_ParserSettings::getSection(QString s, QString sectionName)
-{
- QString result="";
-
- QChar ch; // A single byte of the file
- int bracketCounter=1; // Bracket counter (increase on '{' and decrese on '}'.
- int i; // Current index
- int l=0; // Length of current part we must have
-
- if((i=s.find(sectionName, 0, false)) >= 0 && // Jump to section [styles]
- (i=s.find('{', i)) >= 0 ) {
-
- ++i;
-
- while(i+l<(int)s.length()) {
- ch = s.at(i+l); // Single byte
-
- ++l;
-
- if(ch=='{') ++bracketCounter;
- if(ch=='}') --bracketCounter;
-
- if(bracketCounter==0) break;
- }
-
- result = s.mid(i, l-1);
- }
-
- return result;
-}
-
-
-
-/*!
- Gets the HTML comments out of a file.
-*/
-QString SUIT_ParserSettings::getHtmlComment(QString s)
-{
- QString result="";
- int length; // length of the sub string
- int ind=0;
-
- if((ind =s.find("<!--", ind))>=0 &&
- (ind+=4) &&
- (length=s.find("-->", ind)-ind)!=0) {
-
- result=s.mid(ind, length-3);
- }
-
- return result;
-}
-
-
-
-/*!
- Gets the next String between two given characters. The index-parameter gets moved to the character after
- the stopper or to -1 if the starter / stopper were not found.
-*/
-QString SUIT_ParserSettings::getNextStringBetween(QString s, int& startIndex,
- QChar starter, QChar stopper)
-{
- QString result="";
- int length=0; // length of the sub string
-
- if((startIndex =s.find(starter, startIndex))>=0 &&
- (length=s.find(stopper, startIndex+1)-startIndex)!=0) {
-
- result=s.mid(startIndex+1, length-1);
- startIndex+=2;
- }
-
- return result;
-}
-
-
-/*!
- Gets the next String between the given index and a given stopper character. The index-parameter gets moved to
- the character after the stopper or to -1 if the stopper was not found.
-*/
-QString SUIT_ParserSettings::getNextStringUntil(QString s, int& startIndex, QChar stopper)
-{
- QString result="";
- int length; // length of the sub string
-
- if((length=s.find(stopper, startIndex)-startIndex)!=0) {
- result=s.mid(startIndex, length);
- startIndex++;
- }
-
- return result;
-}
-
-
-/*!
- Removes all comments (between '/ *' and '* /').
-*/
-QString SUIT_ParserSettings::removeComments(QString s)
-{
- QString result="";
- int i1=0, i2;
-
- while((i2=s.find("/*", i1))>=0) {
- result += s.mid(i1, i2-i1);
-
- i1+=2;
- i1=s.find("*/", i1);
- i1+=2;
- }
-
- result += s.mid(i1, s.length()-i1);
-
- return result;
-}
-
-
-
-/*!
- Removes all HTML comments (between '<!--' and '-->') \image html html_comments.gif
-*/
-QString SUIT_ParserSettings::removeHtmlComments(QString s)
-{
- QString result="";
- int i1=0, i2;
-
- while((i2=s.find("<!--", i1))>=0) {
- result += s.mid(i1, i2-i1);
-
- i1+=4;
- i1=s.find("-->", i1);
- i1+=3;
- }
-
- result += s.mid(i1, s.length()-i1);
-
- return result;
-}
-
-
-
-/*!
- Removes all sections ('[section] { }').
-*/
-QString SUIT_ParserSettings::removeSections(QString s)
-{
- QString result="";
-
- QChar ch; // A single byte of the file
- int bracketCounter; // Bracket counter (increase on '{' and decrese on '}'.
- int i=0; // Current index
-
- while(i<(int)s.length()) {
- ch = s.at(i); // Single byte
-
- if(ch=='[') {
- bracketCounter=1;
- while(i<(int)s.length() && ch!=']') { ch = s.at(i); ++i; }
- ++i;
- while(i<(int)s.length() && ch!='{') { ch = s.at(i); ++i; }
- ++i;
-
- while(i<(int)s.length() && bracketCounter!=0) {
- ch = s.at(i);
- if(ch=='{') ++bracketCounter;
- if(ch=='}') --bracketCounter;
- ++i;
- }
- ++i;
- }
- else {
- result+=ch;
- }
-
- ++i;
- }
-
- return result;
-}
-
-
-/*!
- Format plain text into HTML-code with a given maximal width.
- Spaces get replaced with non breaking spaces. Tabulators get filled up
- with non breaking spaces.
-*/
-QString SUIT_ParserSettings::plainTextToHtml(QString s, int autoBreak)
-{
- QString result="\n";
-
- if(!s.isEmpty()) {
- int col=1, i;
-
- for(i=0; i<(int)s.length(); ++i) {
- // Line feed:
- //
- if(s[i]=='\n') {
- result+="<BR>\n";
- col=1;
- }
-
- // Auto break:
- //
- else if(col==autoBreak && autoBreak!=0) {
- result+="<BR>\n";
- result+=s[i];
- col=1;
- }
-
- // Tab:
- //
- else if(s[i]=='\t') {
- while(col%8!=0) { result+=" "; ++col; }
- result+=" ";
- ++col;
- }
-
- // Space:
- //
- else if(s[i]==' ') {
- result+=" ";
- ++col;
- }
-
- // Normal char / special code:
- //
- else {
- if(s[i].isLetter() || s[i].isNumber()) {
- result+=s[i];
- }
- else {
- result+=charToHtml(s[i]);
- }
- ++col;
- }
- }
-
- result+="\n";
- }
-
- return result;
-}
-
-
-/*!
- Converts a special character to html code (e.g.: '»' to "»")
-*/
-QString SUIT_ParserSettings::charToHtml(QChar c)
-{
- QString s;
- QString uc;
- uc.setNum(c.unicode());
- s = "&#" + uc + ";";
- return s;
-}
-
-
-// EOF
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : SUIT_ParserSettings.h
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#ifndef SUIT_PARSERSETTINGS_H
-#define SUIT_PARSERSETTINGS_H
-
-#include <qstring.h>
-#include "SUIT.h"
-/*! \brief Text Parser.*/
-class SUIT_EXPORT SUIT_ParserSettings
-{
-public:
- SUIT_ParserSettings();
- ~SUIT_ParserSettings();
-
- static QString getContents(QString fileName, bool comments=true,
- bool sections=true, bool whitespace=true,
- bool htmlComments=true);
- static QString getSection(QString s, QString sectionName);
- static QString getHtmlComment(QString s);
- static QString getNextStringBetween(QString s, int& startIndex, QChar starter, QChar stopper);
- static QString getNextStringUntil(QString s, int& startIndex, QChar stopper);
- static QString removeComments(QString s);
- static QString removeHtmlComments(QString s);
- static QString removeSections(QString s);
- static QString plainTextToHtml(QString s, int autoBreak);
- static QString charToHtml(QChar c);
-
-};
-
-#endif
+++ /dev/null
-# This is a Qt message file in .po format. Each msgid starts with
-# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 1999-02-23 15:38+0200\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "ICON_DESK_WINDOW_CASCADE"
-msgstr "cascade.png"
-
-msgid "ICON_DESK_WINDOW_VTILE"
-msgstr "vtile.png"
-
-msgid "ICON_DESK_WINDOW_TILE"
-msgstr "htile.png"
-
+++ /dev/null
-# This is a Qt message file in .po format. Each msgid starts with
-# a scope. This scope should *NOT* be translated - eg. "Foo::Bar"
-# would be translated to "Pub", not "Foo::Pub".
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 1999-02-23 15:38+0200\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "MEN_DESK_WINDOW"
-msgstr "&Window"
-
-msgid "MEN_DESK_WINDOW_CASCADE"
-msgstr "&Cascade"
-
-msgid "PRP_DESK_WINDOW_CASCADE"
-msgstr "Arranges the windows as overlapping tiles"
-
-msgid "MEN_DESK_WINDOW_TILE"
-msgstr "&Tile"
-
-msgid "PRP_DESK_WINDOW_TILE"
-msgstr "Arranges the windows as nonoverlapping tiles"
-
-msgid "MEN_DESK_WINDOW_VTILE"
-msgstr "Tile &Vertically"
-
-msgid "PRP_DESK_WINDOW_VTILE"
-msgstr "Arranges the windows as nonoverlapping vertical tiles"
-
-msgid "PRP_DESK_WINDOW_ACTIVATE"
-msgstr "Activates this window"
-
-msgid "LAB_QUICK_PATH"
-msgstr "Quick path:"
-
-msgid "BUT_ADD_PATH"
-msgstr "Add path"
-
-msgid "INF_DESK_DOC_OPEN"
-msgstr "Open File"
-
-msgid "INF_DESK_DOC_SAVE"
-msgstr "Save File"
-
-msgid "ERR_ERROR"
-msgstr "Error"
-
-msgid "WRN_WARNING"
-msgstr "Warning"
-
-msgid "ERR_DIR_NOT_EXIST"
-msgstr "The directory \"%1\" does not exist!"
-
-msgid "ERR_FILE_NOT_EXIST"
-msgstr "The file \"%1\" does not exist!"
-
-msgid "ERR_PERMISSION_DENIED"
-msgstr "Can't save file \"%1\".\nPermission denied."
-
-msgid "BUT_OK"
-msgstr "&OK"
-
-msgid "BUT_YES"
-msgstr "&Yes"
-
-msgid "BUT_NO"
-msgstr "&No"
-
-msgid "INF_DIRECTORIES_FILTER"
-msgstr "Directories"
-
-msgid "QUE_FILE_EXISTS"
-msgstr "The file \"%1\" already exists.\nDo you want to overwrite it?"
-
-msgid "TLT_DUMP_VIEW"
-msgstr "Dump View to File"
-
-msgid "TLT_IMAGE_FILES"
-msgstr "Images Files (*.bmp *.png *.jpg *.jpeg)""
-
-msgid "ERR_CANT_DUMP_VIEW"
-msgstr "Can't dump view contents to the file."
-
-msgid "CONTINUE"
-msgstr "Continue"
-
-msgid "CANCEL"
-msgstr "Cancel"
-
-#======================================================================
-
-msgid "SUIT_Study::OPERATION_LAUNCH"
-msgstr "Operation launch"
-
-msgid "SUIT_Study::PREVIOUS_NOT_FINISHED"
-msgstr "Previous operation is not finished and will be aborted"
-
-#======================================================================
-
-
-
-
-
-
-
-
\ No newline at end of file
+++ /dev/null
-// 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 : utilities.h
-// Author : Antoine YESSAYAN, Paul RASCLE, EDF
-// Module : SALOME
-// $Header$
-
-/* --- Definition macros file to print informations if _DEBUG_ is defined --- */
-
-#ifndef UTILITIES_H
-#define UTILITIES_H
-
-#include <iostream>
-#include <sstream>
-#include <cstdlib>
-
-
-#include "LocalTraceBufferPool.hxx"
-
-/** \file utilities.h
- * For each message to put in the trace, a specific ostingstream object is \n
- * created and destroyed automatically at the end of the message macro. \n
- * The insert function of LocalTraceBufferPool class gets a buffer in a \n
- * buffer pool (unique with the help of mutexes and semaphores) and copy the \n
- * message in the buffer.\n
- * This buffer is read later by a specific thread in charge of trace print.\n
- * Order of trace entries is globally respected. Nevertheless, if there are \n
- * several threads waiting for a free buffer to trace, the order of \n
- * thread waken up is not garanteed (no fifo or priority rules in Linux Kernel)
- */
-
-#define MESS_INIT(deb) std::ostringstream os; os<<deb
-#define MESS_BEGIN(deb) MESS_INIT(deb)<<__FILE__ <<" ["<<__LINE__<<"] : "
-#define MESS_END std::endl; LocalTraceBufferPool::instance()->insert(NORMAL_MESS, os.str().c_str());
-#define MESS_ABORT std::endl; LocalTraceBufferPool::instance()->insert(ABORT_MESS, os.str().c_str());
-
-// --- Some macros are always defined (without _DEBUG_): for use with release version
-
-#define INFOS(msg) {MESS_BEGIN("- Trace ") << msg << MESS_END}
-#define PYSCRIPT(msg) {MESS_INIT("---PYSCRIPT--- ") << msg << MESS_END}
-#define INTERRUPTION(msg) {MESS_BEGIN("- INTERRUPTION: ")<< msg << MESS_ABORT}
-#define IMMEDIATE_ABORT(code) {std::cout <<std::flush; \
- std::cerr << "- ABORT " << __FILE__ << " [" <<__LINE__<< "] : " << flush; \
- std::cerr << "ABORT return code= "<< code << std::endl; \
- std::exit(code);}
-
-/* --- To print date and time of compilation of current source --- */
-
-#if defined ( __GNUC__ )
-#define COMPILER "g++"
-#elif defined ( __sun )
-#define COMPILER "CC"
-#elif defined ( __KCC )
-#define COMPILER "KCC"
-#elif defined ( __PGI )
-#define COMPILER "pgCC"
-#elif defined ( __alpha )
-#define COMPILER "cxx"
-#else
-#define COMPILER "undefined"
-#endif
-
-#ifdef INFOS_COMPILATION
-#error INFOS_COMPILATION already defined
-#endif
-
-#define INFOS_COMPILATION { MESS_BEGIN("COMPILED with ") << COMPILER \
- << ", " << __DATE__ \
- << " at " << __TIME__ << MESS_END }
-#ifdef _DEBUG_
-
-/** @name the following MACROS are useful at debug time*/
-//@{
-#define MESSAGE(msg) {MESS_BEGIN("- Trace ") << msg << MESS_END}
-#define SCRUTE(var) {MESS_BEGIN("- Trace ") << #var << "=" << var <<MESS_END}
-
-#define REPERE ("------- ")
-#define BEGIN_OF(msg) {MESS_BEGIN(REPERE) << "Begin of: " << msg << MESS_END}
-#define END_OF(msg) {MESS_BEGIN(REPERE) << "Normal end of: " << msg << MESS_END}
-
-#ifndef ASSERT
-#define ASSERT(condition) \
- if (!(condition)){INTERRUPTION("CONDITION "<<#condition<<" NOT VERIFIED")}
-#endif /* ASSERT */
-//@}
-
-#else /* ifdef _DEBUG_*/
-
-#define MESSAGE(msg) {}
-#define SCRUTE(var) {}
-#define REPERE
-#define BEGIN_OF(msg) {}
-#define END_OF(msg) {}
-
-#ifndef ASSERT
-#define ASSERT(condition) {}
-#endif /* ASSERT */
-
-#endif /* ifdef _DEBUG_*/
-
-#endif /* ifndef UTILITIES_H */
+++ /dev/null
-# File : Makefile.in
-# Author : Vladimir Klyachin (OCN)
-# Module : suitApp
-# $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@srcdir@/resources
-
-
-@COMMENCE@
-
-# header files
-EXPORT_HEADERS= SUITApp_Application.h
-
-# .po files to transform in .qm
-PO_FILES = SUITApp_msg_en.po
-
-LIB_SRC= SUITApp.cxx \
- SUITApp_Application.cxx
-
-LIB_MOC = SUITApp_Application.h
-
-# Libraries targets
-LIB = libSUITApp.la
-
-# Executables targets
-BIN = SUITApp
-BIN_SRC =
-
-CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES)
-
-LDFLAGS+=$(QT_MT_LIBS)
-
-LIBS+= -Xlinker -export-dynamic $(PYTHON_LIBS)
-LIBS+= -lsuit -lqtx
-LIBSFORBIN+= -lsuit -lqtx
-
-@CONCLUDE@
-
-
+++ /dev/null
-
-msgid "APP_ERROR"
-msgstr "Error"
-
-msgid "APP_OK"
-msgstr "Ok"
-
-msgid "APP_UNK_EXCEPTION"
-msgstr "Unknown exception"
+++ /dev/null
-// SALOME SUPERVGraph : build Supervisor viewer into desktop
-//
-// 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 : SUPERVGraph.cxx
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#include "SUPERVGraph.h"
-#include "SUPERVGraph_ViewFrame.h"
-
-using namespace std;
-
-SUIT_ViewWindow* SUPERVGraph::createView(SUIT_Desktop* parent)
-{
- return new SUPERVGraph_ViewFrame( parent/*, "vtkView"*/ );
-}
-
-extern "C"
-{
- SUIT_ViewWindow* createView(SUIT_Desktop* parent)
- {
- return SUPERVGraph::createView(parent);
- }
-}
+++ /dev/null
-// SALOME OBJECT : kernel of SALOME component
-//
-// 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 : SVTK_CubeAxesActor2D.cxx
-// Author : Eugeny Nikolaev
-// Module : SALOME
-// $Header$
-
-#include "SVTK_CubeAxesActor2D.h"
-#include "VTKViewer_Transform.h"
-
-#include <vtkPolyDataMapper.h>
-#include <vtkRectilinearGridGeometryFilter.h>
-#include <vtkActor.h>
-#include <vtkCubeAxesActor2D.h>
-#include <vtkAxisActor2D.h>
-#include <vtkCamera.h>
-#include <vtkDataSet.h>
-#include <vtkMath.h>
-#include <vtkObjectFactory.h>
-#include <vtkTextProperty.h>
-#include <vtkViewport.h>
-#include <vtkFloatArray.h>
-#include <vtkRectilinearGrid.h>
-#include <vtkProperty.h>
-#include <vtkProperty2D.h>
-
-vtkCxxRevisionMacro(SVTK_CubeAxesActor2D, "$Revision$");
-vtkStandardNewMacro(SVTK_CubeAxesActor2D);
-
-//----------------------------------------------------------------------------
-// Instantiate this object.
-SVTK_CubeAxesActor2D::SVTK_CubeAxesActor2D()
-{
- this->wireActorXY = vtkActor::New();
- this->wireActorYZ = vtkActor::New();
- this->wireActorXZ = vtkActor::New();
-
- this->planeXY = vtkRectilinearGridGeometryFilter::New();
- this->planeYZ = vtkRectilinearGridGeometryFilter::New();
- this->planeXZ = vtkRectilinearGridGeometryFilter::New();
-
- this->rgridMapperXY = vtkPolyDataMapper::New();
- this->rgridMapperYZ = vtkPolyDataMapper::New();
- this->rgridMapperXZ = vtkPolyDataMapper::New();
-
- this->rgridMapperXY->SetInput(this->planeXY->GetOutput());
- this->rgridMapperYZ->SetInput(this->planeYZ->GetOutput());
- this->rgridMapperXZ->SetInput(this->planeXZ->GetOutput());
-
- this->wireActorXY->SetMapper(rgridMapperXY);
- this->wireActorYZ->SetMapper(rgridMapperYZ);
- this->wireActorXZ->SetMapper(rgridMapperXZ);
-
- this->wireActorXY->GetProperty()->SetRepresentationToWireframe();
- this->wireActorYZ->GetProperty()->SetRepresentationToWireframe();
- this->wireActorXZ->GetProperty()->SetRepresentationToWireframe();
-
- // setting ambient to 1 (if no - incorrect reaction on light)
- this->wireActorXY->GetProperty()->SetAmbient(1);
- this->wireActorYZ->GetProperty()->SetAmbient(1);
- this->wireActorXZ->GetProperty()->SetAmbient(1);
-
- this->XAxis->SetTitle(this->XLabel);
- this->YAxis->SetTitle(this->YLabel);
- this->ZAxis->SetTitle(this->ZLabel);
-
- this->XAxis->SetNumberOfLabels(this->NumberOfLabels);
- this->YAxis->SetNumberOfLabels(this->NumberOfLabels);
- this->ZAxis->SetNumberOfLabels(this->NumberOfLabels);
-
- this->XAxis->SetLabelFormat(this->LabelFormat);
- this->YAxis->SetLabelFormat(this->LabelFormat);
- this->ZAxis->SetLabelFormat(this->LabelFormat);
-
- this->XAxis->SetFontFactor(this->FontFactor);
- this->YAxis->SetFontFactor(this->FontFactor);
- this->ZAxis->SetFontFactor(this->FontFactor);
-
- this->XAxis->SetProperty(this->GetProperty());
- this->YAxis->SetProperty(this->GetProperty());
- this->ZAxis->SetProperty(this->GetProperty());
-
- vtkTextProperty* aTLProp = vtkTextProperty::New();
- aTLProp->SetBold(0);
- aTLProp->SetItalic(0);
- aTLProp->SetShadow(0);
- aTLProp->SetFontFamilyToArial();
- aTLProp->SetColor(1,0,0);
- if (this->XAxis->GetLabelTextProperty())
- this->XAxis->GetLabelTextProperty()->ShallowCopy(aTLProp);
- aTLProp->SetColor(0,1,0);
- if (this->YAxis->GetLabelTextProperty())
- this->YAxis->GetLabelTextProperty()->ShallowCopy(aTLProp);
- aTLProp->SetColor(0,0,1);
- if (this->ZAxis->GetLabelTextProperty())
- this->ZAxis->GetLabelTextProperty()->ShallowCopy(aTLProp);;
-
- aTLProp->SetColor(1,0,0);
- if (this->XAxis->GetLabelTextProperty())
- this->XAxis->GetTitleTextProperty()->ShallowCopy(aTLProp);
- aTLProp->SetColor(0,1,0);
- if (this->YAxis->GetLabelTextProperty())
- this->YAxis->GetTitleTextProperty()->ShallowCopy(aTLProp);
- aTLProp->SetColor(0,0,1);
- if (this->ZAxis->GetLabelTextProperty())
- this->ZAxis->GetTitleTextProperty()->ShallowCopy(aTLProp);
-
- aTLProp->Delete();
-
-}
-
-//----------------------------------------------------------------------------
-SVTK_CubeAxesActor2D::~SVTK_CubeAxesActor2D()
-{
- this->wireActorXY->Delete();
- this->wireActorYZ->Delete();
- this->wireActorXZ->Delete();
-
- this->planeXY->Delete();
- this->planeYZ->Delete();
- this->planeXZ->Delete();
-
- this->rgridMapperXY->Delete();
- this->rgridMapperYZ->Delete();
- this->rgridMapperXZ->Delete();
-}
-
-//----------------------------------------------------------------------------
-// Static variable describes connections in cube.
-static int Conn[8][3] = {{1,2,4}, {0,3,5}, {3,0,6}, {2,1,7},
- {5,6,0}, {4,7,1}, {7,4,2}, {6,5,3}};
-
-//----------------------------------------------------------------------------
-// Project the bounding box and compute edges on the border of the bounding
-// cube. Determine which parts of the edges are visible via intersection
-// with the boundary of the viewport (minus borders).
-int SVTK_CubeAxesActor2D::RenderOverlay(vtkViewport *viewport)
-{
- int renderedSomething=0;
-
- // Initialization
- if ( ! this->RenderSomething )
- {
- return 0;
- }
-
- //Render the axes
- if ( this->XAxisVisibility )
- {
- renderedSomething += this->XAxis->RenderOverlay(viewport);
- }
- if ( this->YAxisVisibility )
- {
- renderedSomething += this->YAxis->RenderOverlay(viewport);
- }
- if ( this->ZAxisVisibility )
- {
- renderedSomething += this->ZAxis->RenderOverlay(viewport);
- }
-
- bool RX=false,RY=false;
- if (this->XAxisVisibility){
- this->wireActorXY->RenderOverlay(viewport);
- this->wireActorXZ->RenderOverlay(viewport);
- RX = true;
- }
- if (this->YAxisVisibility){
- if(!RX) this->wireActorXY->RenderOverlay(viewport);
- this->wireActorYZ->RenderOverlay(viewport);
- RY = true;
- }
- if (this->ZAxisVisibility){
- if(!RX) this->wireActorXZ->RenderOverlay(viewport);
- if(!RY) this->wireActorYZ->RenderOverlay(viewport);
- }
-
- return renderedSomething;
-}
-
-static void ChangeValues(float* aArray1,float* aArray2,float *aRange1,float* aRange2,bool theY){
- float tmp=-1000;
- if (!theY){
- for (int i=0; i<4; i++){
- tmp = aArray1[i]; aArray1[i] = aArray2[i]; aArray2[i] = tmp;
- }
-#ifndef WNT
- for(int i=0;i<2; i++){
-#else
- for(i=0;i<2; i++){
-#endif
- tmp = aRange1[i]; aRange1[i] = aRange2[i]; aRange2[i] = tmp;
- }
- }
- else{
- tmp = aArray1[2]; aArray1[2] = aArray2[0]; aArray2[0] = tmp;
- tmp = aArray1[3]; aArray1[3] = aArray2[1]; aArray2[1] = tmp;
- tmp = aArray1[0]; aArray1[0] = aArray2[2]; aArray2[2] = tmp;
- tmp = aArray1[1]; aArray1[1] = aArray2[3]; aArray2[3] = tmp;
-
- tmp = aRange1[0]; aRange1[0] = aRange2[1]; aRange2[1] = tmp;
- tmp = aRange1[1]; aRange1[1] = aRange2[0]; aRange2[0] = tmp;
- }
-}
-
-static void ChangeArrays(float* xCoords,float* yCoords,float* zCoords,
- float* xRange,float* yRange,float* zRange,
- const int xAxes,const int yAxes, const int zAxes)
-{
- if ( xAxes == 0 && yAxes == 2 && zAxes == 1)
- ChangeValues(yCoords,zCoords,yRange,zRange,true);
- else if (xAxes == 1 && yAxes == 0 && zAxes == 2)
- ChangeValues(xCoords,yCoords,xRange,yRange,true);
- else if (xAxes == 1 && yAxes == 2 && zAxes == 0){
- ChangeValues(xCoords,zCoords,xRange,zRange,false);
- // xAxes == 0 && yAxes == 2 && zAxes == 1
- ChangeValues(yCoords,zCoords,yRange,zRange,true);
- } else if (xAxes == 2 && yAxes == 0 && zAxes == 1){
- ChangeValues(xCoords,yCoords,xRange,yRange,true);
- // xAxes == 0 && yAxes == 2 && zAxes == 1
- ChangeValues(zCoords,yCoords,zRange,yRange,true);
- } else if (xAxes == 2 && yAxes == 1 && zAxes == 0)
- ChangeValues(zCoords,xCoords,zRange,xRange,false);
-}
-
-//----------------------------------------------------------------------------
-// Project the bounding box and compute edges on the border of the bounding
-// cube. Determine which parts of the edges are visible via intersection
-// with the boundary of the viewport (minus borders).
-int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
-{
- float bounds[6], slope = 0.0, minSlope, num, den;
- float pts[8][3], d2, d2Min, min;
- int i, idx = 0;
- int xIdx, yIdx = 0, zIdx = 0, zIdx2, renderedSomething=0;
- int xAxes = 0, yAxes, zAxes;
-
- // Initialization
- if ( !this->Camera )
- {
- vtkErrorMacro(<<"No camera!");
- this->RenderSomething = 0;
- return 0;
- }
-
- this->RenderSomething = 1;
-
- // determine the bounds to use
- this->GetBounds(bounds);
-
- // Build the axes (almost always needed so we don't check mtime)
- // Transform all points into display coordinates
- this->TransformBounds(viewport, bounds, pts);
-
- // Find the portion of the bounding box that fits within the viewport,
- if ( this->ClipBounds(viewport, pts, bounds) == 0 )
- {
- this->RenderSomething = 0;
- return 0;
- }
-
- // Take into account the inertia. Process only so often.
- if ( this->RenderCount++ == 0 || !(this->RenderCount % this->Inertia) )
- {
- // Okay, we have a bounding box, maybe clipped and scaled, that is visible.
- // We setup the axes depending on the fly mode.
- if ( this->FlyMode == VTK_FLY_CLOSEST_TRIAD )
- {
- // Loop over points and find the closest point to the camera
- min = VTK_LARGE_FLOAT;
- for (i=0; i < 8; i++)
- {
- if ( pts[i][2] < min )
- {
- idx = i;
- min = pts[i][2];
- }
- }
-
- // Setup the three axes to be drawn
- xAxes = 0;
- xIdx = Conn[idx][0];
- yAxes = 1;
- yIdx = Conn[idx][1];
- zAxes = 2;
- zIdx = idx;
- zIdx2 = Conn[idx][2];
- }
- else
- {
- float e1[2], e2[2], e3[2];
-
- // Find distance to origin
- d2Min = VTK_LARGE_FLOAT;
- for (i=0; i < 8; i++)
- {
- d2 = pts[i][0]*pts[i][0] + pts[i][1]*pts[i][1];
- if ( d2 < d2Min )
- {
- d2Min = d2;
- idx = i;
- }
- }
-
- // find minimum slope point connected to closest point and on
- // right side (in projected coordinates). This is the first edge.
- minSlope = VTK_LARGE_FLOAT;
- for (xIdx=0, i=0; i<3; i++)
- {
- num = (pts[Conn[idx][i]][1] - pts[idx][1]);
- den = (pts[Conn[idx][i]][0] - pts[idx][0]);
- if ( den != 0.0 )
- {
- slope = num / den;
- }
- if ( slope < minSlope && den > 0 )
- {
- xIdx = Conn[idx][i];
- yIdx = Conn[idx][(i+1)%3];
- zIdx = Conn[idx][(i+2)%3];
- xAxes = i;
- minSlope = slope;
- }
- }
-
- // find edge (connected to closest point) on opposite side
- for ( i=0; i<2; i++)
- {
- e1[i] = (pts[xIdx][i] - pts[idx][i]);
- e2[i] = (pts[yIdx][i] - pts[idx][i]);
- e3[i] = (pts[zIdx][i] - pts[idx][i]);
- }
- vtkMath::Normalize2D(e1);
- vtkMath::Normalize2D(e2);
- vtkMath::Normalize2D(e3);
-
- if ( vtkMath::Dot2D(e1,e2) < vtkMath::Dot2D(e1,e3) )
- {
- yAxes = (xAxes + 1) % 3;
- }
- else
- {
- yIdx = zIdx;
- yAxes = (xAxes + 2) % 3;
- }
-
- // Find the final point by determining which global x-y-z axes have not
- // been represented, and then determine the point closest to the viewer.
- zAxes = (xAxes != 0 && yAxes != 0 ? 0 :
- (xAxes != 1 && yAxes != 1 ? 1 : 2));
- if ( pts[Conn[xIdx][zAxes]][2] < pts[Conn[yIdx][zAxes]][2] )
- {
- zIdx = xIdx;
- zIdx2 = Conn[xIdx][zAxes];
- }
- else
- {
- zIdx = yIdx;
- zIdx2 = Conn[yIdx][zAxes];
- }
- }//else boundary edges fly mode
- this->InertiaAxes[0] = idx;
- this->InertiaAxes[1] = xIdx;
- this->InertiaAxes[2] = yIdx;
- this->InertiaAxes[3] = zIdx;
- this->InertiaAxes[4] = zIdx2;
- this->InertiaAxes[5] = xAxes;
- this->InertiaAxes[6] = yAxes;
- this->InertiaAxes[7] = zAxes;
- } //inertia
- else
- {
- idx = this->InertiaAxes[0];
- xIdx = this->InertiaAxes[1];
- yIdx = this->InertiaAxes[2];
- zIdx = this->InertiaAxes[3];
- zIdx2 = this->InertiaAxes[4];
- xAxes = this->InertiaAxes[5];
- yAxes = this->InertiaAxes[6];
- zAxes = this->InertiaAxes[7];
- }
-
- // Setup the axes for plotting
- float xCoords[4], yCoords[4], zCoords[4], xRange[2], yRange[2], zRange[2];
- this->AdjustAxes(pts, bounds, idx, xIdx, yIdx, zIdx, zIdx2,
- xAxes, yAxes, zAxes,
- xCoords, yCoords, zCoords, xRange, yRange, zRange);
-
- // Upate axes
- this->Labels[0] = this->XLabel;
- this->Labels[1] = this->YLabel;
- this->Labels[2] = this->ZLabel;
-
- // correct XAxis, YAxis, ZAxis, which must be
- // parallel OX, OY, OZ system coordinates
- // if xAxes=0 yAxes=1 zAxes=2 - good situation
- if (!(xAxes == 0 && yAxes == 1 && zAxes == 2))
- ChangeArrays(xCoords,yCoords,zCoords,
- xRange,yRange,zRange,
- xAxes,yAxes,zAxes);
-
- double aTScale[3];
- if(m_Transform.GetPointer() != NULL)
- m_Transform->GetMatrixScale(aTScale);
-
- this->XAxis->GetPositionCoordinate()->SetValue(xCoords[0], xCoords[1]);
- this->XAxis->GetPosition2Coordinate()->SetValue(xCoords[2], xCoords[3]);
- if(m_Transform.GetPointer() != NULL) this->XAxis->SetRange(xRange[0]/aTScale[0], xRange[1]/aTScale[0]);
- else this->XAxis->SetRange(xRange[0], xRange[1]);
-
- this->YAxis->GetPositionCoordinate()->SetValue(yCoords[2], yCoords[3]);
- this->YAxis->GetPosition2Coordinate()->SetValue(yCoords[0], yCoords[1]);
- if(m_Transform.GetPointer() != NULL) this->YAxis->SetRange(yRange[1]/aTScale[1], yRange[0]/aTScale[1]);
- else this->YAxis->SetRange(yRange[1], yRange[0]);
-
- this->ZAxis->GetPositionCoordinate()->SetValue(zCoords[0], zCoords[1]);
- this->ZAxis->GetPosition2Coordinate()->SetValue(zCoords[2], zCoords[3]);
- if(m_Transform.GetPointer() != NULL) this->ZAxis->SetRange(zRange[0]/aTScale[2], zRange[1]/aTScale[2]);
- else this->ZAxis->SetRange(zRange[0], zRange[1]);
-
- int numOfLabelsX = this->XAxis->GetNumberOfLabels();
- int numOfLabelsY = this->YAxis->GetNumberOfLabels();
- int numOfLabelsZ = this->ZAxis->GetNumberOfLabels();
-
- // XCoords coordinates for X grid
- vtkFloatArray *XCoords = vtkFloatArray::New();
-#ifndef WNT
- for(int i=0;i<numOfLabelsX;i++){
-#else
- for(i=0;i<numOfLabelsX;i++){
-#endif
- float val = bounds[0]+i*(bounds[1]-bounds[0])/(numOfLabelsX-1);
- XCoords->InsertNextValue(val);
- }
- // YCoords coordinates for Y grid
- vtkFloatArray *YCoords = vtkFloatArray::New();
-#ifndef WNT
- for(int i=0;i<numOfLabelsX;i++){
-#else
- for(i=0;i<numOfLabelsX;i++){
-#endif
- float val = bounds[2]+i*(bounds[3]-bounds[2])/(numOfLabelsY-1);
- YCoords->InsertNextValue(val);
- }
- // ZCoords coordinates for Z grid
- vtkFloatArray *ZCoords = vtkFloatArray::New();
-#ifndef WNT
- for(int i=0;i<numOfLabelsZ;i++){
-#else
- for(i=0;i<numOfLabelsZ;i++){
-#endif
- float val = bounds[4]+i*(bounds[5]-bounds[4])/(numOfLabelsZ-1);
- ZCoords->InsertNextValue(val);
- }
-
- vtkRectilinearGrid *rgrid = vtkRectilinearGrid::New();
- rgrid->SetDimensions(numOfLabelsX,numOfLabelsY,numOfLabelsZ);
- rgrid->SetXCoordinates(XCoords);
- rgrid->SetYCoordinates(YCoords);
- rgrid->SetZCoordinates(ZCoords);
-
- this->planeXY->SetInput(rgrid);
- this->planeYZ->SetInput(rgrid);
- this->planeXZ->SetInput(rgrid);
-
- rgrid->Delete();
-
- float aCPosition[3];
- float aCDirection[3];
- this->Camera->GetPosition(aCPosition);
- this->Camera->GetDirectionOfProjection(aCDirection);
-
- // culculate placement of XY
- bool replaceXY=false;
- bool replaceYZ=false;
- bool replaceXZ=false;
- float p[6][3]; // centers of planes
- float vecs[6][3]; // 6 vectors from camera position to centers
-
- float aMiddleX = (XCoords->GetValue(0) + XCoords->GetValue(numOfLabelsX-1))/2;
- float aMiddleY = (YCoords->GetValue(0) + YCoords->GetValue(numOfLabelsY-1))/2;
- float aMiddleZ = (ZCoords->GetValue(0) + ZCoords->GetValue(numOfLabelsZ-1))/2;
-
- // plane XY
- p[0][0] = aMiddleX; // plane X=0.5 Y=0.5 Z=0
- p[0][1] = aMiddleY;
- p[0][2] = ZCoords->GetValue(0);
-
- p[1][0] = aMiddleX; // plane X=0.5 Y=0.5 Z=1
- p[1][1] = aMiddleY;
- p[1][2] = ZCoords->GetValue(numOfLabelsZ-1);
-
- // plane YZ
- p[2][0] = XCoords->GetValue(0); // plane X=0 Y=0.5 Z=0.5
- p[2][1] = aMiddleY;
- p[2][2] = aMiddleZ;
-
- p[3][0] = XCoords->GetValue(numOfLabelsX-1);
- p[3][1] = aMiddleY;
- p[3][2] = aMiddleZ;
-
- // plane XZ
- p[4][0] = aMiddleX; // plane X=0.5 Y=0 Z=0.5
- p[4][1] = YCoords->GetValue(0);
- p[4][2] = aMiddleZ;
-
- p[5][0] = aMiddleX; // plane X=0.5 Y=1 Z=0.5
- p[5][1] = YCoords->GetValue(numOfLabelsY-1);
- p[5][2] = aMiddleZ;
-
-#ifndef WNT
- for(int i=0;i<3;i++)
-#else
- for(i=0;i<3;i++)
-#endif
- for(int j=0;j<6;j++) vecs[j][i] = p[j][i] - aCPosition[i];
-
- if ( vtkMath::Dot(vecs[0],aCDirection) < vtkMath::Dot(vecs[1],aCDirection))
- replaceXY = true;
- if ( vtkMath::Dot(vecs[2],aCDirection) < vtkMath::Dot(vecs[3],aCDirection))
- replaceYZ = true;
- if ( vtkMath::Dot(vecs[4],aCDirection) < vtkMath::Dot(vecs[5],aCDirection))
- replaceXZ = true;
-
- if(replaceXY) this->planeXY->SetExtent(0,numOfLabelsX, 0,numOfLabelsY, numOfLabelsZ,numOfLabelsZ);
- else this->planeXY->SetExtent(0,numOfLabelsX, 0,numOfLabelsY, 0,0);
-
- if(replaceYZ) this->planeYZ->SetExtent(numOfLabelsX,numOfLabelsX, 0,numOfLabelsY, 0,numOfLabelsZ);
- else this->planeYZ->SetExtent(0,0, 0,numOfLabelsY, 0,numOfLabelsZ);
-
- if(replaceXZ) this->planeXZ->SetExtent(0,numOfLabelsX, numOfLabelsY,numOfLabelsY, 0,numOfLabelsZ);
- else this->planeXZ->SetExtent(0,numOfLabelsX, 0,0, 0,numOfLabelsZ);
-
- XCoords->Delete();
- YCoords->Delete();
- ZCoords->Delete();
-
- float color[3];
-
- this->GetProperty()->GetColor(color);
- this->wireActorXY->GetProperty()->SetColor(color);
- this->wireActorYZ->GetProperty()->SetColor(color);
- this->wireActorXZ->GetProperty()->SetColor(color);
-
- /*
- // Rebuid text props
- // Perform shallow copy here since each individual axis can be
- // accessed through the class API (i.e. each individual axis text prop
- // can be changed). Therefore, we can not just assign pointers otherwise
- // each individual axis text prop would point to the same text prop.
-
- if (this->AxisLabelTextProperty &&
- this->AxisLabelTextProperty->GetMTime() > this->BuildTime)
- {
- if (this->XAxis->GetLabelTextProperty())
- {
- this->XAxis->GetLabelTextProperty()->ShallowCopy(
- this->AxisLabelTextProperty);
- }
- if (this->YAxis->GetLabelTextProperty())
- {
- this->YAxis->GetLabelTextProperty()->ShallowCopy(
- this->AxisLabelTextProperty);
- }
- if (this->ZAxis->GetLabelTextProperty())
- {
- this->ZAxis->GetLabelTextProperty()->ShallowCopy(
- this->AxisLabelTextProperty);
- }
- }
-
- if (this->AxisTitleTextProperty &&
- this->AxisTitleTextProperty->GetMTime() > this->BuildTime)
- {
- if (this->XAxis->GetLabelTextProperty())
- {
- this->XAxis->GetTitleTextProperty()->ShallowCopy(
- this->AxisTitleTextProperty);
- }
- if (this->YAxis->GetLabelTextProperty())
- {
- this->YAxis->GetTitleTextProperty()->ShallowCopy(
- this->AxisTitleTextProperty);
- }
- if (this->ZAxis->GetLabelTextProperty())
- {
- this->ZAxis->GetTitleTextProperty()->ShallowCopy(
- this->AxisTitleTextProperty);
- }
- }
- */
- this->BuildTime.Modified();
-
- //Render the axes
- if ( this->XAxisVisibility )
- {
- renderedSomething += this->XAxis->RenderOpaqueGeometry(viewport);
- }
- if ( this->YAxisVisibility )
- {
- renderedSomething += this->YAxis->RenderOpaqueGeometry(viewport);
- }
- if ( this->ZAxisVisibility )
- {
- renderedSomething += this->ZAxis->RenderOpaqueGeometry(viewport);
- }
-
- bool RX=false,RY=false;
- if (this->XAxisVisibility){
- this->wireActorXY->RenderOpaqueGeometry(viewport);
- this->wireActorXZ->RenderOpaqueGeometry(viewport);
- RX = true;
- }
- if (this->YAxisVisibility){
- if(!RX) this->wireActorXY->RenderOpaqueGeometry(viewport);
- this->wireActorYZ->RenderOpaqueGeometry(viewport);
- RY = true;
- }
- if (this->ZAxisVisibility){
- if(!RX) this->wireActorXZ->RenderOpaqueGeometry(viewport);
- if(!RY) this->wireActorYZ->RenderOpaqueGeometry(viewport);
- }
-
- return renderedSomething;
-}
-
-//----------------------------------------------------------------------------
-// Release any graphics resources that are being consumed by this actor.
-// The parameter window could be used to determine which graphic
-// resources to release.
-void SVTK_CubeAxesActor2D::ReleaseGraphicsResources(vtkWindow *win)
-{
- this->XAxis->ReleaseGraphicsResources(win);
- this->YAxis->ReleaseGraphicsResources(win);
- this->ZAxis->ReleaseGraphicsResources(win);
-
- this->wireActorXY->ReleaseGraphicsResources(win);
- this->wireActorYZ->ReleaseGraphicsResources(win);
- this->wireActorXZ->ReleaseGraphicsResources(win);
-}
-
-void SVTK_CubeAxesActor2D::SetTransform(VTKViewer_Transform* theTransform){
- this->m_Transform = theTransform;
-}
-
-VTKViewer_Transform* SVTK_CubeAxesActor2D::GetTransform(){
- return (this->m_Transform.GetPointer());
-}
+++ /dev/null
-// SALOME OBJECT : kernel of SALOME component
-//
-// 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 : SVTK_CubeAxesActor2D.h
-// Author : Eugeny Nikolaev
-// Module : SALOME
-// $Header$
-
-#ifndef __SVTK_CubeAxesActor2D_h
-#define __SVTK_CubeAxesActor2D_h
-
-#include <vtkCubeAxesActor2D.h>
-#include <vtkSmartPointer.h>
-
-class vtkActor;
-class vtkAxisActor2D;
-class vtkCamera;
-class vtkDataSet;
-class vtkTextProperty;
-class vtkPolyDataMapper;
-class vtkRectilinearGridGeometryFilter;
-class VTKViewer_Transform;
-
-#include <SVTK.h>
-
-#ifndef WNT
-class VTK_HYBRID_EXPORT SVTK_CubeAxesActor2D : public vtkCubeAxesActor2D
-#else
-class SVTK_EXPORT SVTK_CubeAxesActor2D : public vtkCubeAxesActor2D
-#endif
-{
-public:
- vtkTypeRevisionMacro(SVTK_CubeAxesActor2D,vtkCubeAxesActor2D);
-
- // Description:
- // Instantiate object with bold, italic, and shadow enabled; font family
- // set to Arial; and label format "6.3g". The number of labels per axis
- // is set to 3.
- static SVTK_CubeAxesActor2D *New();
-
- // Description:
- // Draw the axes as per the vtkProp superclass' API.
- int RenderOverlay(vtkViewport*);
- int RenderOpaqueGeometry(vtkViewport*);
-
- // Description:
- // Release any graphics resources that are being consumed by this actor.
- // The parameter window could be used to determine which graphic
- // resources to release.
- void ReleaseGraphicsResources(vtkWindow *);
-
- // Description:
-
- vtkActor* GetWireActorXY(){return this->wireActorXY;}
- vtkActor* GetWireActorYZ(){return this->wireActorYZ;}
- vtkActor* GetWireActorXZ(){return this->wireActorXZ;}
-
- void SetTransform(VTKViewer_Transform* theTransform);
- VTKViewer_Transform* GetTransform();
-
-protected:
- SVTK_CubeAxesActor2D();
- ~SVTK_CubeAxesActor2D();
-
- vtkActor* wireActorXY;
- vtkActor* wireActorYZ;
- vtkActor* wireActorXZ;
-
-private:
- // hide the superclass' ShallowCopy() from the user and the compiler.
- void ShallowCopy(vtkProp *prop) { this->vtkProp::ShallowCopy( prop ); };
-
- vtkRectilinearGridGeometryFilter *planeXY; // rectilinear grid XY
- vtkPolyDataMapper *rgridMapperXY;
-
- vtkRectilinearGridGeometryFilter *planeYZ; // rectilinear grid YZ
- vtkPolyDataMapper *rgridMapperYZ;
-
- vtkRectilinearGridGeometryFilter *planeXZ; // rectilinear grid XZ
- vtkPolyDataMapper *rgridMapperXZ;
-
- vtkSmartPointer<VTKViewer_Transform> m_Transform;
-private:
- SVTK_CubeAxesActor2D(const SVTK_CubeAxesActor2D&); // Not implemented.
- void operator=(const SVTK_CubeAxesActor2D&); // Not implemented.
-};
-
-#endif
+++ /dev/null
-#ifndef SVTK_Functor_H
-#define SVTK_Functor_H
-
-#include <functional>
-
-#include <string>
-
-#include <VTKViewer_Functor.h>
-
-#include "SALOME_InteractiveObject.hxx"
-
-namespace VTK
-{
- template<class TActor>
- struct TIsSameEntry
- {
- std::string myEntry;
- TIsSameEntry(const char* theEntry): myEntry(theEntry) {}
- bool operator()(TActor* theActor)
- {
- if ( theActor->hasIO() )
- {
- Handle(SALOME_InteractiveObject) anIO = theActor->getIO();
- if ( anIO->hasEntry() )
- return myEntry == anIO->getEntry();
- }
- return false;
- }
- };
-
-
- //----------------------------------------------------------------
- template<class TActor>
- struct TIsSameIObject
- {
- Handle(SALOME_InteractiveObject) myIObject;
- TIsSameIObject(const Handle(SALOME_InteractiveObject)& theIObject):
- myIObject(theIObject)
- {}
- bool operator()(TActor* theActor)
- {
- if(theActor->hasIO())
- {
- Handle(SALOME_InteractiveObject) anIO = theActor->getIO();
- return myIObject->isSame(anIO);
- }
- return false;
- }
- };
-
-
- //----------------------------------------------------------------
- template<class TActor>
- struct THighlight
- {
- bool myIsHighlight;
- THighlight(bool theIsHighlight): myIsHighlight( theIsHighlight ) {}
- void operator()(TActor* theActor)
- {
- if(theActor->GetVisibility() && theActor->GetMapper())
- theActor->highlight( myIsHighlight );
- }
- };
-
-}
-
-
-#endif
+++ /dev/null
-// SALOME VTKViewer : build VTK viewer into Salome desktop
-//
-// Copyright (C) 2004 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.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-// File : SVTK_Prs.cxx
-// Author : Sergey ANIKIN
-// Module : SALOME
-// $Header$
-
-#include "SVTK_Prs.h"
-using namespace std;
-
-//==========================================================
-/*!
- * SVTK_Prs::SVTK_Prs
- * Default constructor
- */
-//==========================================================
-SVTK_Prs::SVTK_Prs() : myObjects( 0 )
-{
-}
-
-//==========================================================
-/*!
- * SVTK_Prs::SVTK_Prs
- * tandard constructora
- */
-//==========================================================
-SVTK_Prs::SVTK_Prs( const vtkActor* obj )
-{
- AddObject( obj );
-}
-
-//==========================================================
-/*!
- * SVTK_Prs::~SVTK_Prs
- * Destructor
- */
-//==========================================================
-SVTK_Prs:: ~SVTK_Prs()
-{
- if ( myObjects ) myObjects->Delete();
-}
-
-//==========================================================
-/*!
- * SVTK_Prs::GetObjects
- * Get actors list
- */
-//==========================================================
-vtkActorCollection* SVTK_Prs::GetObjects() const
-{
- return myObjects;
-}
-
-//==========================================================
-/*!
- * SVTK_Prs::AddObject
- * Add actor
- */
-//==========================================================
-void SVTK_Prs::AddObject( const vtkActor* obj )
-{
- if ( !myObjects)
- myObjects = vtkActorCollection::New();
- myObjects->AddItem( (vtkActor*)obj );
-}
-
-//==========================================================
-/*!
- * SVTK_Prs::IsNull
- * Return 0 if list of the actors is empty
- * [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
-bool SVTK_Prs::IsNull() const
-{
- return !myObjects || myObjects->GetNumberOfItems() <= 0;
-}
+++ /dev/null
-// SALOME VTKViewer : build VTK viewer into Salome desktop
-//
-// Copyright (C) 2004 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.salome-platform.org or email : webmaster.salome@opencascade.org
-//
-//
-//
-// File : SVTK_Prs.h
-// Author : Sergey ANIKIN
-// Module : SALOME
-// $Header$
-
-#ifndef SVTK_Prs_H
-#define SVTK_Prs_H
-
-#include <SVTK.h>
-#include "SALOME_Prs.h"
-
-#include <vtkActorCollection.h>
-
-class SVTK_EXPORT SVTK_Prs : public SALOME_VTKPrs
-{
-public:
- SVTK_Prs();
- // Default constructor
- SVTK_Prs( const vtkActor* obj );
- // Standard constructor
- ~SVTK_Prs();
- // Destructor
-
- vtkActorCollection* GetObjects() const;
- // Get actors list
- void AddObject( const vtkActor* obj );
- // Add actor
-
- bool IsNull() const;
- // Reimplemented from SALOME_Prs
-
-private:
- vtkActorCollection* myObjects; // list of actors
-};
-
-#endif
+++ /dev/null
-// File: SalomeApp.h
-// Created: November, 2004
-// Author: OCC team
-// Copyright (C) CEA 2004
-
-
-// The following ifdef block is the standard way of creating macros which make exporting
-// from a DLL simpler. All files within this DLL are compiled with the SalomeApp_EXPORTS
-// symbol defined on the command line. this symbol should not be defined on any project
-// that uses this DLL. This way any other project whose source files include this file see
-// SalomeApp_API functions as being imported from a DLL, wheras this DLL sees symbols
-// defined with this macro as being exported.
-#ifdef WNT
-
-#ifdef SALOMEAPP_EXPORTS
-#define SALOMEAPP_EXPORT __declspec(dllexport)
-#else
-#define SALOMEAPP_EXPORT __declspec(dllimport)
-#endif
-
-#else
-#define SALOMEAPP_EXPORT
-#endif //WNT
-
-#define APP_VERSION "0.1"
-
-#if defined WNT
-#pragma warning ( disable: 4251 )
-#endif
-
+++ /dev/null
-// SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-// 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 : SALOMEGUI_ImportOperation.cxx
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#include "SalomeApp_ImportOperation.h"
-#include <SUIT_Application.h>
-
-#ifndef WNT
-using namespace std;
-#endif
-
-/*!Constructor. Do nothing.*/
-SalomeApp_ImportOperation::SalomeApp_ImportOperation( SUIT_Application* app ) :
-SUIT_Operation( app )
-{
-}
+++ /dev/null
-// SALOME SALOMEAPP : implementation of desktop and GUI kernel
-//
-// 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 : SalomeApp_ImportOperation.h
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#if !defined SALOMEAPP_IMPORTOPERATION
-#define SALOMEAPP_IMPORTOPERATION
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include <SUIT_Operation.h>
-
-class SUIT_Application;
-
-class SalomeApp_ImportOperation : public SUIT_Operation
-{
-public:
- SalomeApp_ImportOperation( SUIT_Application* );
-};
-
-#endif
+++ /dev/null
-// SALOME SalomeApp
-//
-// Copyright (C) 2005 CEA/DEN, EDF R&D
-//
-//
-//
-// File : SalomeApp_ListView.cxx
-// Author : Vadim SANDLER
-// Module : SALOME
-// $Header$
-
-#include "SalomeApp_ListView.h"
-#include "SalomeApp_Application.h"
-
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_Session.h"
-
-#include <qheader.h>
-#include <qvalidator.h>
-#include <qapplication.h>
-#include <qtoolbutton.h>
-
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-#include <TColStd_ListIteratorOfListOfReal.hxx>
-
-#include "utilities.h"
-
-using namespace std;
-
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_ListView class implementation
-//////////////////////////////////////////////////////////////////////
-
-//================================================================
-// Function : computeEditGeometry
-/*! Purpose : static function - used for resizing editing widget*/
-//================================================================
-void computeEditGeometry(SalomeApp_ListViewItem* theItem,
- SalomeApp_EntityEdit* theWidget)
-{
- if (!theItem)
- return;
- QListView* aListView = theItem->listView();
- int anEditColumn = theItem->getEditedColumn();
- if (anEditColumn < 0)
- return;
-
- int aX = 0, aY = 0, aW = 0, aH = 0;
-
- QRect aRect = aListView->itemRect(theItem);
- aListView->contentsToViewport(aListView->header()->sectionPos(anEditColumn), 0, aX, aY);
- if (aX < 0)
- aX = 0; // THIS CAN BE REMOVED
- QSize aSize = theWidget->getControl()->sizeHint();
- aH = QMAX(aSize.height() , aRect.height() );
- aY = aRect.y() - ((aH - aRect.height()) / 2);
- //aW = aListView->columnWidth(anEditColumn); // CAN SUBSTITUTE NEXT 3 ROWS
- aW = aListView->viewport()->width() - aX;
- if (aW < 0)
- aW = 0;
- theWidget->setGeometry(aX, aY, aW, aH);
-}
-
-//================================================================
-// Function : SalomeApp_ListView::SalomeApp_ListView
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListView::SalomeApp_ListView( QWidget* parent )
-: QtxListView( parent )
-{
- myMouseEnabled = true;
- myEditingEnabled = false;
- setSelectionMode(Single);
- setSorting(-1);
- setRootIsDecorated(false);
- setAllColumnsShowFocus(false);
-// header()->setClickEnabled(false);
- header()->setMovingEnabled(false);
-
- myEditedItem = 0;
- myEdit = 0;
-
- viewport()->installEventFilter(this);
-
- connect(this, SIGNAL(selectionChanged()),
- this, SLOT(onSelectionChanged()));
- connect(header(), SIGNAL(sizeChange(int, int, int)),
- this, SLOT(onHeaderSizeChange(int, int, int)));
-}
-
-//================================================================
-// Function : SalomeApp_ListView::~SalomeApp_ListView
-/*! Purpose : destructor*/
-//================================================================
-SalomeApp_ListView::~SalomeApp_ListView()
-{
- if (myEdit) {
- delete myEdit;
- }
- myEdit = 0;
- myEditedItem = 0;
-}
-
-//================================================================
-// Function : SalomeApp_ListView::updateViewer
-/*! Purpose : updates all data viewer*/
-//================================================================
-void SalomeApp_ListView::updateViewer()
-{
- // temporary disconnecting selection changed SIGNAL
- blockSignals(true);
- SalomeApp_ListViewItem* aRoot = (SalomeApp_ListViewItem*)firstChild();
- if (aRoot)
- aRoot->updateAllLevels();
- updateContents();
- // connecting again selection changed SIGNAL
- blockSignals(false);
- emit selectionChanged();
-}
-
-//================================================================
-// Function : SalomeApp_ListView::updateSelected
-/*! Purpose : updates currently selected item(s)*/
-//================================================================
-void SalomeApp_ListView::updateSelected()
-{
- // temporary disconnecting selection changed SIGNAL
- blockSignals(true);
- SalomeApp_ListViewItem* aChild = (SalomeApp_ListViewItem*)selectedItem();
- if (aChild)
- aChild->updateAllLevels();
- updateContents();
- // connecting again selection changed SIGNAL
- blockSignals(false);
- emit selectionChanged();
-}
-
-//================================================================
-// Function : SalomeApp_ListView::popupClientType
-/*! Purpose : returns popup client type*/
-//================================================================
-QString SalomeApp_ListView::popupClientType() const
-{
- return "SalomeApp_ListView";
-}
-
-//================================================================
-// Function : SalomeApp_ListView::contextMenuPopup
-/*! Purpose : fills popup menu with items*/
-//================================================================
-void SalomeApp_ListView::contextMenuPopup( QPopupMenu* aPopup )
-{
- if (aPopup) {
- // add items here...
- }
-}
-
-//================================================================
-// Function : SalomeApp_ListView::clear
-/*! Purpose : clears view*/
-//================================================================
-void SalomeApp_ListView::clear()
-{
- if (myEdit) {
- delete myEdit;
- myEdit = 0;
- myEditedItem = 0;
- }
- QListView::clear();
-}
-
-//================================================================
-// Function : SalomeApp_ListView::isMouseEnabled
-/*! Purpose : returms true if mouse events are enabled*/
-//================================================================
-bool SalomeApp_ListView::isMouseEnabled()
-{
- return myMouseEnabled;
-}
-
-//================================================================
-// Function : SalomeApp_ListView::enableMouse
-// Purpose : enabled/disables mouse events (excluding MouseMove)
-//================================================================
-void SalomeApp_ListView::enableMouse(bool enable)
-{
- myMouseEnabled = enable;
-}
-
-//================================================================
-// Function : SalomeApp_ListView::eventFilter
-/*! Purpose : event filter*/
-//================================================================
-bool SalomeApp_ListView::eventFilter(QObject* object, QEvent* event)
-{
- if (object == viewport() &&
- (event->type() == QEvent::MouseButtonPress ||
- event->type() == QEvent::MouseButtonRelease ||
- event->type() == QEvent::MouseButtonDblClick) &&
- !isMouseEnabled())
- return true;
- else
- return QListView::eventFilter(object, event);
-}
-
-//================================================================
-// Function : SalomeApp_ListView::enableEditing
-/*! Purpose : setting editing of items availbale/not available*/
-//================================================================
-void SalomeApp_ListView::enableEditing(bool theFlag)
-{
- myEditingEnabled = theFlag;
- if (!myEditingEnabled) {
- if (myEdit) {
- delete myEdit;
- myEdit = 0;
- myEditedItem = 0;
- }
- }
-}
-
-//================================================================
-// Function : SalomeApp_ListView::isEnableEditing
-/*! Purpose : says if editing is enabled*/
-//================================================================
-bool SalomeApp_ListView::isEnableEditing()
-{
- return myEditingEnabled;
-}
-
-//================================================================
-// Function : SalomeApp_ListView::accept
-/*! Purpose : calls finishEditing(true)...*/
-//================================================================
-void SalomeApp_ListView::accept()
-{
- finishEditing(true);
-}
-
-//================================================================
-// Function : QAD_ListView::onSelectionChanged
-/*! Purpose : slot, called when selection changed in List Viewer*/
-//================================================================
-void SalomeApp_ListView::onSelectionChanged()
-{
- if (myEdit) {
- finishEditing(true);
- delete myEdit;
- myEdit = 0;
- if (myEditedItem && !myEditedItem->isAccepted()) {
- delete myEditedItem;
- updateContents();
- }
- myEditedItem = 0;
- }
- // editing is allowed in Single Selection Mode only
- if (selectionMode() != Single || !isEnableEditing())
- return;
- SalomeApp_ListViewItem* anItem = (SalomeApp_ListViewItem*)selectedItem();
- if (anItem) {
- if (!anItem->isEditable())
- return;
- myEdit = anItem->startEditing();
- if (myEdit) {
- connect(myEdit, SIGNAL(returnPressed()), this, SLOT(onEditOk()));
- connect(myEdit, SIGNAL(escapePressed()), this, SLOT(onEditCancel()));
- myEditedItem = anItem;
- myEdit->show();
- myEdit->setFocus();
- }
- }
-}
-
-//================================================================
-// Function : SalomeApp_ListView::resizeEvent
-/*! Purpose : called when Data Viewer is resized*/
-//================================================================
-void SalomeApp_ListView::resizeEvent( QResizeEvent * e)
-{
- QListView::resizeEvent(e);
- int aW = columnWidth(columns()-1);
- int aX = header()->sectionPos(columns()-1);
- if (aW < width() - frameWidth() * 2 - aX - 1)
- setColumnWidth(columns()-1, width() - frameWidth() * 2 - aX - 1);
- updateContents();
-}
-
-//================================================================
-// Function : SalomeApp_ListView::onHeaderSizeChange
-/*! Purpose : slot, called when columns sizes are changed*/
-//================================================================
-void SalomeApp_ListView::onHeaderSizeChange(int, int, int)
-{
- int aW = columnWidth(columns()-1);
- int aX = header()->sectionPos(columns()-1);
- if (aW < width() - frameWidth() * 2 - aX - 1)
- setColumnWidth(columns()-1, width() - frameWidth() * 2 - aX - 1);
-}
-
-//================================================================
-// Function : SalomeApp_ListView::viewportPaintEvent
-/*! Purpose : handler for paint event*/
-//================================================================
-void SalomeApp_ListView::viewportPaintEvent(QPaintEvent* e)
-{
- QListView::viewportPaintEvent(e);
- if (myEditedItem && myEdit) {
- computeEditGeometry(myEditedItem, myEdit);
- }
-}
-
-//================================================================
-// Function : SalomeApp_ListView::onEditOk
-/*! Purpose : called when user finishes in editing of item*/
-//================================================================
-void SalomeApp_ListView::onEditOk()
-{
- finishEditing(true);
-}
-
-//================================================================
-// Function : SalomeApp_ListView::onEditCancel
-/*! Purpose : called when user cancels item editing*/
-//================================================================
-void SalomeApp_ListView::onEditCancel()
-{
- finishEditing(false);
-}
-
-//================================================================
-// Function : SalomeApp_ListView::finishEditing
-/*! Purpose : finishes editing of entity*/
-//================================================================
-UpdateType SalomeApp_ListView::finishEditing(bool ok)
-{
- UpdateType aNeedsUpdate = utCancel;
- if (myEditedItem && myEdit)
- {
- disconnect(myEdit, SIGNAL(returnPressed()), this, SLOT(onEditOk()));
- disconnect(myEdit, SIGNAL(escapePressed()), this, SLOT(onEditCancel()));
- myEditedItem->setAccepted(true);
- if (ok) {
- aNeedsUpdate = myEditedItem->finishEditing(myEdit);
- if (aNeedsUpdate == utCancel) {
- // something to do here on Cancel...
- }
- else {
- // something to do here on OK...
- }
- // updating contents
- switch (aNeedsUpdate) {
- case utUpdateItem:
- {
- if (myEditedItem)
- myEditedItem->updateAllLevels();
- break;
- }
- case utUpdateParent:
- {
- if (myEditedItem) {
- SalomeApp_ListViewItem* aParent = (SalomeApp_ListViewItem*)(myEditedItem->parent());
- if (aParent)
- aParent->updateAllLevels();
- else
- myEditedItem->updateAllLevels();
- }
- break;
- }
- case utUpdateViewer:
- {
- updateViewer();
- break;
- }
- case utUpdateAll:
- {
- // doing the same as for utUpdateViewer here
- // descendants can add extra processing
- updateViewer();
- break;
- }
- default:
- break;
- }
- }
- }
-
- // hide <myEdit> widget
- if (myEdit) {
- myEdit->hide();
- }
-
- return aNeedsUpdate;
-}
-
-//================================================================
-// Function : SalomeApp_ListView::tip
-/*! Purpose : gets current tooltip for list view
- * \retval valid rect in success
- */
-//================================================================
-QRect SalomeApp_ListView::tip(QPoint aPos,
- QString& aText,
- QRect& dspRect,
- QFont& dspFnt) const
-{
- QRect result( -1, -1, -1, -1 );
- SalomeApp_ListViewItem* aItem = (SalomeApp_ListViewItem*)itemAt( aPos );
- if ( aItem ) {
- for (int i = 0; i < columns(); i++) {
- QRect aItemRect = aItem->itemRect(i);
- QRect aTextRect = aItem->textRect(i);
- if ( !aItem->text(i).isEmpty() &&
- ( aItemRect.width() > header()->sectionSize(i) ||
- aTextRect.left() < 0 ||
- aTextRect.top() < 0 ||
- aTextRect.right() > viewport()->width() ||
- aTextRect.bottom() > viewport()->height() ) ) {
- // calculating tip data
- aText = aItem->tipText();
- dspRect = aItem->tipRect();
- dspFnt = font();
- if (dspRect.isValid()) {
- result = QRect(QPoint(0, aItemRect.top()),
- QSize(viewport()->width(), aItemRect.height()));
- }
- }
- }
- }
- return result;
-}
-
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_ListViewItem Class Implementation
-//////////////////////////////////////////////////////////////////////
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView* parent) :
-QListViewItem( parent )
-{
- init();
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView* parent,
- SalomeApp_ListViewItem* after) :
-QListViewItem( parent, after )
-{
- init();
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView* parent,
- const QString& theName,
- const bool theEditable) :
-QListViewItem(parent, theName)
-{
- init();
- setEditable(theEditable);
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView* parent,
- const QString& theName,
- const QString& theValue,
- const bool theEditable) :
-QListViewItem(parent, theName, theValue)
-{
- init();
- setEditable(theEditable);
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListViewItem* parent,
- const QString& theName,
- const bool theEditable) :
-QListViewItem(parent, theName)
-{
- init();
- setEditable(theEditable);
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListViewItem* parent,
- SalomeApp_ListViewItem* after,
- const QString& theName,
- const bool theEditable) :
-QListViewItem(parent, after, theName)
-{
- init();
- setEditable(theEditable);
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView* parent,
- SalomeApp_ListViewItem* after,
- const QString& theName,
- const bool theEditable) :
-QListViewItem(parent, after, theName)
-{
- init();
- setEditable(theEditable);
-}
-
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListViewItem* parent,
- const QString& theName,
- const QString& theValue,
- const bool theEditable) :
-QListViewItem(parent, theName, theValue)
-{
- init();
- setEditable(theEditable);
-}
-
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListViewItem* parent,
- SalomeApp_ListViewItem* after,
- const QString& theName,
- const QString& theValue,
- const bool theEditable) :
-QListViewItem(parent, after, theName, theValue)
-{
- init();
- setEditable(theEditable);
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView* parent,
- SalomeApp_ListViewItem* after,
- const QString& theName,
- const QString& theValue,
- const bool theEditable) :
-QListViewItem(parent, after, theName, theValue)
-{
- init();
- setEditable(theEditable);
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::~SalomeApp_ListViewItem
-/*! Purpose : destructor*/
-//================================================================
-SalomeApp_ListViewItem::~SalomeApp_ListViewItem()
-{
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::init
-/*! Purpose : initialization*/
-//================================================================
-void SalomeApp_ListViewItem::init()
-{
- myEditable = false;
- myAccepted = true;
- myEditingType = (int)SalomeApp_EntityEdit::etLineEdit;
- myValueType = (int)SalomeApp_EntityEdit::vtString;
- myButtons = 0;
- myUserType = -1;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::getName
-/*! Purpose : as default returns text in the first column*/
-//================================================================
-QString SalomeApp_ListViewItem::getName() const
-{
- return ( listView()->columns() > 0 ) ? text(0) : QString("");
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::setName
-/*! Purpose : as default sets text in the first column*/
-//================================================================
-UpdateType SalomeApp_ListViewItem::setName(const QString& theName)
-{
- UpdateType aNeedsUpdate = utCancel;
- if (listView()->columns() > 0) {
- setText(0, theName);
- aNeedsUpdate = utNone;
- }
- return aNeedsUpdate;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::getValue
-/*! Purpose : as default returns text in the second column*/
-//================================================================
-QString SalomeApp_ListViewItem::getValue() const
-{
- return ( listView()->columns() > 1 ) ? text(1) : QString("");
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::setValue
-/*! Purpose : as default sets text in the second column*/
-//================================================================
-UpdateType SalomeApp_ListViewItem::setValue(const QString& theValue)
-{
- UpdateType aNeedsUpdate = utCancel;
- if (listView()->columns() > 1) {
- setText(1, theValue);
- aNeedsUpdate = utNone;
- }
- return aNeedsUpdate;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::fullName
-/*! Purpose : returns full path to the entity from the root*/
-//================================================================
-QString SalomeApp_ListViewItem::fullName()
-{
- QString aFullName = getName();
- SalomeApp_ListViewItem* aParent = (SalomeApp_ListViewItem*)parent();
- while(aParent != NULL) {
- aFullName = aParent->getName() + QString(".") + aFullName;
- aParent = (SalomeApp_ListViewItem*)(aParent->parent());
- }
- return aFullName;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::openAllLevels
-/*! Purpose : expands all entities beginning from this level*/
-//================================================================
-void SalomeApp_ListViewItem::openAllLevels()
-{
- setOpen(true);
- SalomeApp_ListViewItem* aChild = (SalomeApp_ListViewItem*)firstChild();
- while( aChild ) {
- aChild->openAllLevels();
- aChild = (SalomeApp_ListViewItem*)(aChild->nextSibling());
- }
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::updateAllLevels
-/*! Purpose : update all entites beginning from this level*/
-//================================================================
-void SalomeApp_ListViewItem::updateAllLevels()
-{
- SalomeApp_ListViewItem* aChild = (SalomeApp_ListViewItem*)firstChild();
- while( aChild ) {
- aChild->updateAllLevels();
- aChild = (SalomeApp_ListViewItem*)(aChild->nextSibling());
- }
-}
-
-//================================================================
-// Function : SalomeApp_EditBox::isEditable
-/*! Purpose : return true if entity is editable*/
-//================================================================
-bool SalomeApp_ListViewItem::isEditable() const
-{
- return myEditable;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::setEditable
-/*! Purpose : sets editable flag fo the entity*/
-//================================================================
-void SalomeApp_ListViewItem::setEditable(bool theEditable)
-{
- myEditable = theEditable;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::isAccepted
-/*! Purpose : returns true if entitiy is accepted after editing*/
-//================================================================
-bool SalomeApp_ListViewItem::isAccepted() const
-{
- return myAccepted;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::setAccepted
-/*! Purpose : set entitiy accepted or not after editing*/
-//================================================================
-void SalomeApp_ListViewItem::setAccepted(bool theAccepted)
-{
- myAccepted = theAccepted;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::getEditingType
-/*! Purpose :
- * \retval type of edit control (default is edit box)
- * \li 0 - edit box
- * \li 1 - combo box
- * \li 2 - editable combo box
- */
-//================================================================
-int SalomeApp_ListViewItem::getEditingType()
-{
- return myEditingType;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::setEditingType
-/*! Purpose :
- * \retval type of edit control (negative value means none)
- * \li 0 - edit box
- * \li 1 - combo box
- * \li 2 - editable combo box
- */
-//================================================================
-void SalomeApp_ListViewItem::setEditingType(const int type)
-{
- myEditingType = type;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::getEditedColumn
-// Purpose :
-/*! \retval edited column, default is last column
- * negative value means there are no editable columns
- */
-//================================================================
-int SalomeApp_ListViewItem::getEditedColumn()
-{
- return listView()->columns()-1;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::getValueType
-// Purpose :
-/*!\retval type of edited value (string, int, double)
- * default is string
- */
-//================================================================
-int SalomeApp_ListViewItem::getValueType()
-{
- return myValueType;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::setValueType
-/*! Purpose : sets type of edited value*/
-//================================================================
-void SalomeApp_ListViewItem::setValueType(const int valueType)
-{
- myValueType = valueType;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::getUserType
-/*! Purpose : sets type of edited value*/
-//================================================================
-int SalomeApp_ListViewItem::getUserType()
-{
- return myUserType;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::setUserType
-/*! Purpose : sets type of edited value*/
-//================================================================
-void SalomeApp_ListViewItem::setUserType(const int userType)
-{
- myUserType = userType;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::getButtons
-/*! Purpose : returns buttons for editing widget (Apply (V), Cancel (X))
- * default is both buttons
- */
-//================================================================
-int SalomeApp_ListViewItem::getButtons()
-{
- return myButtons;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::getButtons
-/*! Purpose : sets buttons for editing widget (Apply (V), Cancel (X))*/
-//================================================================
-void SalomeApp_ListViewItem::setButtons(const int buttons)
-{
- myButtons = buttons;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::startEditing
-/*! Purpose : creates control for editing and fills it with values*/
-//================================================================
-SalomeApp_EntityEdit* SalomeApp_ListViewItem::startEditing()
-{
- SalomeApp_EntityEdit* aWidget = 0;
- QListView* aListView = listView();
- if (aListView) {
- if (!isEditable())
- return 0;
- int anEditType = getEditingType();
- int aValueType = getValueType();
- int aButtons = getButtons();
- int anEditColumn = getEditedColumn();
- if (anEditColumn < 0 || anEditType < 0)
- return 0;
- aWidget = new SalomeApp_EntityEdit(aListView->viewport(),
- anEditType,
- aValueType,
- aButtons & SalomeApp_EntityEdit::btApply,
- aButtons & SalomeApp_EntityEdit::btCancel);
- computeEditGeometry(this, aWidget);
-
- fillWidgetWithValues(aWidget);
- }
- return aWidget;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::fillWidgetWithValues
-/*! Purpose : fills widget with initial values (list or single value)*/
-//================================================================
-void SalomeApp_ListViewItem::fillWidgetWithValues(SalomeApp_EntityEdit* theWidget)
-{
- int anEditColumn = getEditedColumn();
- if (theWidget && anEditColumn >= 0 && !text(anEditColumn).isEmpty())
- theWidget->insertItem(text(anEditColumn), true);
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::finishEditing
-/*! Purpose : finishes editing of entity*/
-//================================================================
-UpdateType SalomeApp_ListViewItem::finishEditing(SalomeApp_EntityEdit* theWidget)
-{
- UpdateType aNeedsUpdate = utCancel;
- try {
- if (theWidget) {
- int anEditColumn = getEditedColumn();
- switch (anEditColumn) {
- case 0:
- aNeedsUpdate = setName(theWidget->getText());
- break;
- case 1:
- aNeedsUpdate = setValue(theWidget->getText());
- break;
- default:
- break;
- }
- }
- }
- catch (...) {
- MESSAGE( "System error has been caught - SalomeApp_ListViewItem::finishEditing" )
- }
- return aNeedsUpdate;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::tipRect
-/*! Purpose : calculates rectangle which should contain item's tip*/
-//================================================================
-QRect SalomeApp_ListViewItem::tipRect()
-{
- QRect aRect = QRect(-1, -1, -1, -1);
- QRect aItemRect = listView()->itemRect(this);
- if ( !aItemRect.isValid() )
- return aItemRect;
-
- QString aTip = tipText();
- if (!aTip.isEmpty()) {
- QRect aRect0 = textRect(0);
- QFont aFont(listView()->font());
- QFontMetrics fm(aFont);
- int iw = fm.width(aTip);
- aRect = QRect(QPoint(aRect0.x() < 0 ? 0 : aRect0.x(),
- aRect0.y()),
- QSize (iw,
- aRect0.height()));
- }
- return aRect;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::tipText
-/*! Purpose : returns text for tooltip*/
-//================================================================
-QString SalomeApp_ListViewItem::tipText()
-{
- QString aText = getName();
- if (!getValue().isEmpty())
- aText += QString(" : ") + getValue();
- return aText;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::textRect
-/*! Purpose : calculates rect of item text in viewport coordinates*/
-//================================================================
-QRect SalomeApp_ListViewItem::textRect(const int column) const
-{
- QRect aItemRect = listView()->itemRect( this );
- if ( !aItemRect.isValid() )
- return aItemRect;
-
- QFont aFont(listView()->font());
- QFontMetrics fm(aFont);
-
- int decorWidth = ( listView()->rootIsDecorated() ) ?
- ( listView()->treeStepSize() * (depth() + 1) ) :
- ( listView()->treeStepSize() * depth() );
- int pixmapWidth = ( pixmap(column) ) ?
- pixmap(column)->width() + listView()->itemMargin() * 2 :
- listView()->itemMargin();
- int prevWidth = 0;
- for (int i = 0; i < column; i++)
- prevWidth += listView()->header()->sectionSize(i);
- int ix = prevWidth +
- pixmapWidth +
- ((column == 0) ? decorWidth : 0);
- int iy = aItemRect.y();
- int iw = fm.width(text(column));
- int ih = aItemRect.height();
- if (pixmap(column)) {
- iy += listView()->itemMargin();
- ih -= listView()->itemMargin() * 2;
- }
- ix -= listView()->contentsX();
-
- QRect theResult(QPoint(ix, iy), QSize(iw, ih));
- return theResult;
-}
-
-//================================================================
-// Function : SalomeApp_ListViewItem::itemRect
-/*! Purpose : calculates rect of item data in viewport coordinates*/
-//================================================================
-QRect SalomeApp_ListViewItem::itemRect(const int column) const
-{
- QRect aItemRect = listView()->itemRect( this );
- if ( !aItemRect.isValid() )
- return aItemRect;
-
- QFont aFont(listView()->font());
- QFontMetrics fm(aFont);
-
- int decorWidth = ( listView()->rootIsDecorated() ) ?
- ( listView()->treeStepSize() * (depth() + 1) ) :
- ( listView()->treeStepSize() * depth() );
- int pixmapWidth = ( pixmap(column) ) ?
- pixmap(column)->width() + listView()->itemMargin() * 2 :
- 0;
- int prevWidth = 0;
- for (int i = 0; i < column; i++)
- prevWidth += listView()->header()->sectionSize(i);
- int ix = prevWidth;
- int iy = aItemRect.y();
- int iw = pixmapWidth +
- listView()->itemMargin() * 2 +
- ((column == 0) ? decorWidth : 0) +
- fm.width(text(column));
- int ih = aItemRect.height();
- ix -= listView()->contentsX();
-
- QRect theResult(QPoint(ix, iy), QSize(iw, ih));
- return theResult;
-}
-
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_EditBox class implementation
-//////////////////////////////////////////////////////////////////////
-
-//================================================================
-// Function : SalomeApp_EditBox::SalomeApp_EditBox
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_EditBox::SalomeApp_EditBox(QWidget* parent) :
-QLineEdit(parent)
-{
-}
-
-//================================================================
-// Function : SalomeApp_EditBox::keyPressEvent
-/*! Purpose : event filter for key pressing*/
-//================================================================
-void SalomeApp_EditBox::keyPressEvent( QKeyEvent *e )
-{
- if ( e->key() == Key_Escape )
- emit escapePressed();
- else
- QLineEdit::keyPressEvent( e );
- e->accept();
-}
-
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_ComboBox class implementation
-//////////////////////////////////////////////////////////////////////
-
-//================================================================
-// Function : SalomeApp_ComboBox::SalomeApp_ComboBox
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_ComboBox::SalomeApp_ComboBox(bool rw, QWidget* parent, const char* name) :
-QComboBox(rw, parent, name)
-{
-}
-
-//================================================================
-// Function : SalomeApp_ComboBox::findItem
-/*! Purpose : searches item in list and returns its index*/
-//================================================================
-int SalomeApp_ComboBox::findItem(const QString& theText)
-{
- for (int i = 0; i < count(); i++)
- if (text(i) == theText)
- return i;
- return -1;
-}
-
-//================================================================
-// Function : SalomeApp_ComboBox::insertItem
-/*! Purpose : adds item in combo box*/
-//================================================================
-void SalomeApp_ComboBox::insertItem(const QString& theValue,
- int theIndex)
-{
- if (duplicatesEnabled() || findItem(theValue) < 0)
- QComboBox::insertItem(theValue, theIndex);
-}
-
-//================================================================
-// Function : SalomeApp_ComboBox::insertList
-/*! Purpose : adds list of items in combo box*/
-//================================================================
-void SalomeApp_ComboBox::insertList(const QStringList& theList)
-{
- for (unsigned i = 0; i < theList.count(); i++)
- insertItem(theList[i]);
-}
-
-//================================================================
-// Function : SalomeApp_ComboBox::insertItem
-/*! Purpose : adds item in combo box*/
-//================================================================
-void SalomeApp_ComboBox::insertItem(const int theValue)
-{
- int aNum;
- bool bOk;
- for (int i = 0; i < count(); i++) {
- aNum = text(i).toInt(&bOk);
- if (bOk) {
- if (aNum > theValue || (aNum == theValue && duplicatesEnabled())) {
- insertItem(QString::number(theValue), i);
- return;
- }
- }
- }
- insertItem(QString::number(theValue));
-}
-
-//================================================================
-// Function : SalomeApp_ComboBox::insertList
-/*! Purpose : adds list of items in combo box*/
-//================================================================
-void SalomeApp_ComboBox::insertList(const TColStd_ListOfInteger& theList)
-{
- for (TColStd_ListIteratorOfListOfInteger aIter(theList); aIter.More(); aIter.Next())
- insertItem(aIter.Value());
-}
-
-//================================================================
-// Function : SalomeApp_ComboBox::insertItem
-/*! Purpose : adds item in combo box*/
-//================================================================
-void SalomeApp_ComboBox::insertItem(const double theValue)
-{
- double aNum;
- bool bOk;
- for (int i = 0; i < count(); i++) {
- aNum = text(i).toDouble(&bOk);
- if (bOk) {
- if (aNum > theValue || (aNum == theValue && duplicatesEnabled())) {
- insertItem(QString::number(theValue), i);
- return;
- }
- }
- }
- insertItem(QString::number(theValue));
-}
-
-//================================================================
-// Function : SalomeApp_ComboBox::insertList
-/*! Purpose : adds list of items in combo box*/
-//================================================================
-void SalomeApp_ComboBox::insertList(const TColStd_ListOfReal& theList)
-{
- for (TColStd_ListIteratorOfListOfReal aIter(theList); aIter.More(); aIter.Next())
- insertItem(aIter.Value());
-}
-
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_EntityEdit class implementation
-//////////////////////////////////////////////////////////////////////
-
-#include <qlayout.h>
-
-#define MIN_COMBO_WIDTH 1
-#define MIN_EDIT_WIDTH 1
-
-//================================================================
-// Function : SalomeApp_EntityEdit::SalomeApp_EntityEdit
-/*! Purpose : constructor*/
-//================================================================
-SalomeApp_EntityEdit::SalomeApp_EntityEdit(QWidget* parent,
- int controlType,
- int valueType,
- bool butApply,
- bool butCancel) :
-QWidget(parent),
-myEdit(0),
-myCombo(0),
-myApplyBtn(0),
-myCancelBtn(0)
-{
- SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
- SUIT_ResourceMgr* mgr = app ? app->resourceMgr() : NULL;
-
- QHBoxLayout* aTopLayout = new QHBoxLayout(this);
- aTopLayout->setAlignment( Qt::AlignTop );
- aTopLayout->setSpacing( 0 );
- aTopLayout->setMargin( 1 );
- if (controlType != etLineEdit &&
- controlType != etComboBox &&
- controlType != etComboEdit)
- controlType = etLineEdit;
- if (controlType == etComboBox || controlType == etComboEdit) {
- // this is an editable combo box
- myCombo = new SalomeApp_ComboBox(controlType == etComboEdit, this);
- myCombo->setMinimumSize(MIN_COMBO_WIDTH, 0);
- myCombo->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,
- QSizePolicy::Fixed));
- // no insertions
- myCombo->setInsertionPolicy(QComboBox::NoInsertion);
- // no duplicates enabled by default
- myCombo->setDuplicatesEnabled(false);
- aTopLayout->addWidget(myCombo);
- // connect signals
- connect(myCombo, SIGNAL(activated(const QString&)), this, SLOT(onComboActivated(const QString&)));
- connect(myCombo, SIGNAL(textChanged(const QString&)), this, SLOT(onTextChanged(const QString&)));
- }
- else {
- // and this is an edit box
- myEdit = new SalomeApp_EditBox(this);
- myEdit->setMinimumSize(MIN_EDIT_WIDTH, 0);
- myEdit->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,
- QSizePolicy::Fixed));
- aTopLayout->addWidget(myEdit);
- connect(myEdit, SIGNAL(textChanged(const QString&)), this, SLOT(onTextChanged(const QString&)));
- connect(myEdit, SIGNAL(returnPressed()), this, SLOT(onApply()));
- connect(myEdit, SIGNAL(escapePressed()), this, SLOT(onCancel()));
- }
- if (valueType != vtString &&
- valueType != vtInteger &&
- valueType != vtDouble)
- valueType = vtString;
- if (valueType == vtInteger)
- setValidator(new QIntValidator(this));
- else if (valueType == vtDouble)
- setValidator(new QDoubleValidator(this));
- if (butApply) {
- // Apply button (V)
- myApplyBtn = new QToolButton(this);
-
- QPixmap anIcon;
- if( mgr )
- anIcon = mgr->loadPixmap( "STD", tr( "ICON_APPLY" ), false );
-
- myApplyBtn->setPixmap(anIcon);
- myApplyBtn->setEnabled(false);
- myApplyBtn->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
- myApplyBtn->setMinimumSize(16, 16);
- myApplyBtn->setMaximumSize(16, 20);
- aTopLayout->addWidget(myApplyBtn);
- connect(myApplyBtn, SIGNAL(clicked()), this, SLOT(onApply()));
- }
- if (butCancel) {
- // Cancel button (X)
- myCancelBtn = new QToolButton(this);
- QPixmap anIcon;
- if( mgr )
- anIcon = mgr->loadPixmap( "STD", tr( "ICON_CANCEL" ), false );
- myCancelBtn->setPixmap(anIcon);
- myCancelBtn->setEnabled(false);
- myCancelBtn->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
- myCancelBtn->setMinimumSize(16, 16);
- myCancelBtn->setMaximumSize(16, 20);
- aTopLayout->addWidget(myCancelBtn);
- connect(myCancelBtn, SIGNAL(clicked()), this, SLOT(onCancel()));
- }
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::~SalomeApp_EntityEdit
-/*! Purpose : destructor*/
-//================================================================
-SalomeApp_EntityEdit::~SalomeApp_EntityEdit()
-{
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::clear
-/*! Purpose : clears edit/combo box*/
-//================================================================
-void SalomeApp_EntityEdit::clear()
-{
- if (myEdit)
- myEdit->clear();
- if (myCombo)
- myCombo->clear();
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::getText
-/*! Purpose : returns current text in edit box or combo box*/
-//================================================================
-QString SalomeApp_EntityEdit::getText()
-{
- if (myEdit)
- return myEdit->text();
- else if (myCombo)
- return myCombo->currentText();
- else
- return "";
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::setText
-/*! Purpose : sets text*/
-//================================================================
-void SalomeApp_EntityEdit::setText(const QString& theText)
-{
- myString = theText;
- if (myEdit)
- myEdit->setText(theText);
- if (myCombo) {
- int aFound = myCombo->findItem(theText);
- if (aFound >= 0) {
- myCombo->setCurrentItem(aFound);
- onTextChanged(theText);
- }
- }
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::insertItem
-/*! Purpose : adds item in combo box,
- * sets it current if theSetCurrent is true
- */
-//================================================================
-void SalomeApp_EntityEdit::insertItem(const QString& theValue,
- bool theSetCurrent,
- int theOrder)
-{
- if (myCombo) {
- int aIndexAt = -1;
- if (theOrder == atTop)
- aIndexAt = 0;
- else if (theOrder == atBeforeCurrent && myCombo->count() > 0)
- aIndexAt = myCombo->currentItem();
- else if (theOrder == atAfterCurrent &&
- myCombo->count() > 0 &&
- myCombo->currentItem() < myCombo->count()-1)
- aIndexAt = myCombo->currentItem() + 1;
- myCombo->insertItem(theValue, aIndexAt);
- }
- if (theSetCurrent)
- setText(theValue);
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::insertList
-/*! Purpose : adds items in combo box,
- * sets item theCurrent as current
- */
-//================================================================
-void SalomeApp_EntityEdit::insertList(const QStringList& theList,
- const int theCurrent)
-{
- if (myCombo)
- myCombo->insertList(theList);
- if (theCurrent >= 0 && theCurrent < (int)theList.count())
- setText(theList[theCurrent]);
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::insertItem
-/*! Purpose : adds item in combo box,
- * sets it current if theSetCurrent is true
- */
-//================================================================
-void SalomeApp_EntityEdit::insertItem(const int theValue,
- bool theSetCurrent)
-{
- if (myCombo) {
- myCombo->insertItem(theValue);
- }
- if (theSetCurrent)
- setText(QString::number(theValue));
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::insertList
-/*! Purpose : adds items in combo box,
- * sets item theCurrent as current
- */
-//================================================================
-void SalomeApp_EntityEdit::insertList(const TColStd_ListOfInteger& theList,
- const int theCurrent)
-{
- if (myCombo)
- myCombo->insertList(theList);
-
- TColStd_ListIteratorOfListOfInteger aIter(theList);
- for (unsigned i = 0; aIter.More(); aIter.Next(), i++) {
- if (theCurrent == i) {
- setText(QString::number(aIter.Value()));
- break;
- }
- }
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::insertItem
-// Purpose : adds item in combo box,
-// sets it current if theSetCurrent is true
-//================================================================
-void SalomeApp_EntityEdit::insertItem(const double theValue,
- bool theSetCurrent)
-{
- if (myCombo) {
- myCombo->insertItem(theValue);
- }
- if (theSetCurrent)
- setText(QString::number(theValue));
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::insertList
-/*! Purpose : adds items in combo box,
- * sets item theCurrent as current
- */
-//================================================================
-void SalomeApp_EntityEdit::insertList(const TColStd_ListOfReal& theList,
- const int theCurrent)
-{
- if (myCombo)
- myCombo->insertList(theList);
-
- TColStd_ListIteratorOfListOfReal aIter(theList);
- for (unsigned i = 0; aIter.More(); aIter.Next(), i++) {
- if (theCurrent == i) {
- setText(QString::number(aIter.Value()));
- break;
- }
- }
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::getControl
-/*! Purpose : gets actual widget*/
-//================================================================
-QWidget* SalomeApp_EntityEdit::getControl()
-{
- if (myEdit)
- return myEdit;
- else if (myCombo)
- return myCombo;
- else
- return 0;
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::setFocus
-/*! Purpose : redirect focus to corresponding widget*/
-//================================================================
-void SalomeApp_EntityEdit::setFocus()
-{
- if (myEdit) {
- myEdit->setFocus();
- //myEdit->selectAll();
- }
- else if (myCombo && myCombo->editable()) {
- myCombo->setFocus();
- //myCombo->lineEdit()->selectAll();
- }
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::setValidator
-/*! Purpose : sets validator for the control*/
-//================================================================
-void SalomeApp_EntityEdit::setValidator(const QValidator* theValidator)
-{
- if (myEdit)
- myEdit->setValidator(theValidator);
- if (myCombo)
- myCombo->setValidator(theValidator);
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::keyPressEvent
-/*! Purpose : event filter for KeyPress event*/
-//================================================================
-void SalomeApp_EntityEdit::keyPressEvent( QKeyEvent * e)
-{
- if ( (e->key() == Key_Enter ||
- e->key() == Key_Return ) )
- onApply();
- else if (e->key() == Key_Escape)
- onCancel();
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::onComboActivated
-/*! Purpose : called when item activated in combo box*/
-//================================================================
-void SalomeApp_EntityEdit::onComboActivated(const QString& theText)
-{
- onTextChanged(theText);
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::onTextChanged
-/*! Purpose : slot, called when text changed in line edit*/
-//================================================================
-void SalomeApp_EntityEdit::onTextChanged(const QString& theText)
-{
- if (myApplyBtn)
- myApplyBtn->setEnabled(!(theText == myString));
- if (myCancelBtn)
- myCancelBtn->setEnabled(!(theText == myString));
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::onCancel
-/*! Purpose : slot, called when user presses Cancel button*/
-//================================================================
-void SalomeApp_EntityEdit::onCancel()
-{
- setText(myString);
- if (myApplyBtn)
- myApplyBtn->setEnabled(false);
- if (myCancelBtn)
- myCancelBtn->setEnabled(false);
- emit escapePressed();
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::onApply
-/*! Purpose : slot, called when user presses Apply button*/
-//================================================================
-void SalomeApp_EntityEdit::onApply()
-{
- myString = getText();
- if (myApplyBtn)
- myApplyBtn->setEnabled(false);
- if (myCancelBtn)
- myCancelBtn->setEnabled(false);
- emit returnPressed();
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::showButtons
-/*! Purpose : shows/hides buttons*/
-//================================================================
-void SalomeApp_EntityEdit::showButtons(bool show)
-{
- if (myApplyBtn)
- show ? myApplyBtn->show() : myApplyBtn->hide();
- if (myCancelBtn)
- show ? myCancelBtn->show() : myCancelBtn->hide();
-}
-
-//================================================================
-// Function : SalomeApp_EntityEdit::setDuplicatesEnabled
-/*! Purpose : enables/disables data duplication (for combo box)*/
-//================================================================
-void SalomeApp_EntityEdit::setDuplicatesEnabled(bool enabled)
-{
- if (myCombo)
- myCombo->setDuplicatesEnabled(enabled);
-}
+++ /dev/null
-// SALOME SalomeApp
-//
-// Copyright (C) 2005 CEA/DEN, EDF R&D
-//
-//
-//
-// File : SalomeApp_ListView.h
-// Author : Vadim SANDLER
-// Module : SALOME
-// $Header$
-
-#ifndef SALOMEAPP_LISTVIEW_H
-#define SALOMEAPP_LISTVIEW_H
-
-#include <QtxListView.h>
-
-#include <qlist.h>
-#include <qstring.h>
-#include <qpixmap.h>
-#include <qlineedit.h>
-#include <qcombobox.h>
-
-//VRV: porting on Qt 3.0.5
-#if QT_VERSION >= 0x030005
-#include <qtoolbutton.h>
-#endif
-//VRV: porting on Qt 3.0.5
-
-#include <TColStd_ListOfInteger.hxx>
-#include <TColStd_ListOfReal.hxx>
-
-#include <SUIT_PopupClient.h>
-
-// enumeration for ListView updating mode
-enum UpdateType {
- utCancel = -1, // cancel updating
- utNone = 0, // needs no any update
- utUpdateItem, // update one item
- utUpdateParent, // update parent item too
- utUpdateViewer, // update all viewer
- utUpdateAll // strong update
-};
-
-class SalomeApp_ListViewItem;
-class SalomeApp_EntityEdit;
-
-//================================================================
-// Class : SalomeApp_ListView
-// Description : parent class for Data Viewer and Properties Viewer
-//================================================================
-class SalomeApp_ListView : public QtxListView , public SUIT_PopupClient {
-
- Q_OBJECT
-
-public:
-// constructor
- SalomeApp_ListView(QWidget *parent);
-// destructor
- virtual ~SalomeApp_ListView();
-
-// updates list viewer
- virtual void updateViewer();
-// updtes currently selected item(s)
- virtual void updateSelected();
-
-// fills popup with items
- virtual QString popupClientType() const;
- virtual void contextMenuPopup( QPopupMenu* );
-
-// setting editing of items availbale/not available
- void enableEditing(bool theFlag);
-// says if editing is enabled
- bool isEnableEditing();
-// accepts user input by calling finishEditing(true)
- void accept();
-
-// clears view
- void clear();
-
-// event filter
- bool eventFilter(QObject* object, QEvent* event) ;
-
-// gets current tooltip for list view
-// returns valid rect in success
- QRect tip(QPoint aPos, QString& aText, QRect& dspRect, QFont& dspFnt) const;
-
-protected:
-// handler for resize event
- void resizeEvent(QResizeEvent* e);
-// handler for paint event
- void viewportPaintEvent(QPaintEvent* e);
-// finishes editing of entity
- virtual UpdateType finishEditing(bool ok);
-
-// returns true if mouse events are enabled
- bool isMouseEnabled();
-// enables/disables mouse events (excluding MouseMove)
- void enableMouse(bool enable);
-
-protected slots:
-// called when selection changed in list
- virtual void onSelectionChanged();
-// called when user finishes in editing of item
- void onEditOk();
-// called when user cancels item editing
- void onEditCancel();
-// called when columns sizes are changed
- void onHeaderSizeChange(int, int, int);
-
-protected:
- SalomeApp_EntityEdit* myEdit;
- SalomeApp_ListViewItem* myEditedItem;
- bool myEditingEnabled;
- bool myMouseEnabled;
-};
-
-
-class SalomeApp_EditBox: public QLineEdit
-{
- Q_OBJECT
-
-public:
- SalomeApp_EditBox(QWidget* parent);
-
-protected:
- void keyPressEvent(QKeyEvent* e);
-
-signals:
- void escapePressed();
-};
-
-class SalomeApp_ComboBox: public QComboBox
-{
- Q_OBJECT
-
-public:
- SalomeApp_ComboBox(bool rw, QWidget* parent = 0, const char* name = 0);
-
- int findItem(const QString& theText);
- void insertItem(const QString& theValue, int theIndex = -1);
- void insertList(const QStringList& theList);
- void insertItem(const int theValue);
- void insertList(const TColStd_ListOfInteger& theList);
- void insertItem(const double theValue);
- void insertList(const TColStd_ListOfReal& theList);
-};
-
-class SalomeApp_EntityEdit : public QWidget
-{
- Q_OBJECT
-
-public:
- // enum for edit control type
- enum {
- etLineEdit, // simple edit box
- etComboBox, // non-editable combo box
- etComboEdit // editable combo box
- };
- // enum for value type
- enum {
- vtString, // string
- vtInteger, // integer value
- vtDouble // double value
- };
- // enum for insertion order
- enum {
- atBottom,
- atTop,
- atBeforeCurrent,
- atAfterCurrent
- };
- // enum for edit box buttons (Apply = Cancel)
- enum {
- btApply = 0x0001,
- btCancel = 0x0002
- };
-
-public:
- SalomeApp_EntityEdit( QWidget* parent,
- int controlType = etLineEdit,
- int valueType = vtString,
- bool butApply = false,
- bool butCancel = false);
- ~SalomeApp_EntityEdit();
-
- void finishEditing();
- void clear();
- QString getText();
- void setText(const QString& theText );
- void insertItem( const QString& theValue,
- bool theSetCurrent = false,
- int theOrder = atBottom );
- void insertList( const QStringList& theList,
- const int theCurrent = -1 );
- void insertItem( const int theValue,
- bool theSetCurrent = false );
- void insertList( const TColStd_ListOfInteger& theList,
- const int theCurrent = -1 );
- void insertItem( const double theValue,
- bool theSetCurrent = false );
- void insertList( const TColStd_ListOfReal& theList,
- const int theCurrent = -1 );
- QWidget* getControl();
- void setFocus();
- void setValidator(const QValidator*);
- void showButtons(bool show);
- void setDuplicatesEnabled(bool enabled);
-
-protected:
- void keyPressEvent ( QKeyEvent * e);
-
-private slots:
- void onComboActivated(const QString&);
- void onTextChanged(const QString&);
- void onApply();
- void onCancel();
-signals:
- void returnPressed();
- void escapePressed();
-
-private:
- // Widgets
- SalomeApp_EditBox* myEdit;
- SalomeApp_ComboBox* myCombo;
- QToolButton* myApplyBtn;
- QToolButton* myCancelBtn;
- QString myString;
-};
-
-class SalomeApp_ListViewItem : public QListViewItem
-{
-public:
- SalomeApp_ListViewItem( SalomeApp_ListView* );
- SalomeApp_ListViewItem( SalomeApp_ListView*,
- SalomeApp_ListViewItem* );
- SalomeApp_ListViewItem( SalomeApp_ListView*,
- const QString&,
- const bool = false );
- SalomeApp_ListViewItem( SalomeApp_ListView*,
- const QString& theName,
- const QString& theValue,
- const bool = false );
- SalomeApp_ListViewItem( SalomeApp_ListViewItem* theParent,
- const QString&,
- const bool = false );
- SalomeApp_ListViewItem( SalomeApp_ListView*,
- SalomeApp_ListViewItem*,
- const QString&,
- const bool = false );
- SalomeApp_ListViewItem( SalomeApp_ListViewItem*,
- SalomeApp_ListViewItem*,
- const QString&,
- const bool = false);
- SalomeApp_ListViewItem( SalomeApp_ListViewItem*,
- const QString& theName,
- const QString& theValue,
- const bool = false);
- SalomeApp_ListViewItem( SalomeApp_ListView*,
- SalomeApp_ListViewItem*,
- const QString& theName,
- const QString& theValue,
- const bool = false);
- SalomeApp_ListViewItem( SalomeApp_ListViewItem*,
- SalomeApp_ListViewItem*,
- const QString&,
- const QString&,
- const bool = false);
- ~SalomeApp_ListViewItem();
-
- QString fullName();
- void openAllLevels();
- virtual void updateAllLevels();
- bool isEditable() const;
- void setEditable(bool theEditable);
-
- // returns true if entitiy is accepted after editing
- bool isAccepted() const;
- // set entity accepted or not after editing
- void setAccepted(bool theAccepted);
-
- // returns name of entity (as default it is text in first column)
- virtual QString getName() const;
- // sets name of entity (as default it is text in first column)
- virtual UpdateType setName(const QString& theName);
-
- // returns value of entity (as default it is text in second column)
- virtual QString getValue() const;
- // sets value of entity (as default it is text in second column)
- virtual UpdateType setValue(const QString& theValue);
-
- // creates control for editing and fills it with values
- SalomeApp_EntityEdit* startEditing();
- // fills widget with initial values (list or single value)
- virtual void fillWidgetWithValues(SalomeApp_EntityEdit* theWidget);
- // finishes editing of entity
- virtual UpdateType finishEditing(SalomeApp_EntityEdit* theWidget);
-
- // returns type of edit control (0 - edit box, 1 - combo box, 2 - editable combo box)
- virtual int getEditingType();
- // sets type of edit control (0 - edit box, 1 - combo box, 2 - editable combo box)
- virtual void setEditingType(const int);
- // returns edited column
- virtual int getEditedColumn();
- // returns type of edited value (string, int, double)
- virtual int getValueType();
- // sets type of edited value (string, int, double)
- virtual void setValueType(const int);
-
- // gets user type
- virtual int getUserType();
- // sets user type
- virtual void setUserType(const int);
-
- // returns buttons for editing widget
- virtual int getButtons();
- // sets buttons for editing widget
- virtual void setButtons(const int);
- // returns text for tooltip
- QString tipText();
- // calculates rectangle which should contain items tip
- QRect tipRect();
- // calculates rect of item text in viewport coordinates
- QRect textRect(const int column) const;
- // calculates full rect of item data in viewport coordinates
- QRect itemRect(const int column) const;
-
-protected:
- // initialization
- void init();
-
-private:
- bool myEditable;
- bool myAccepted;
- int myEditingType;
- int myValueType;
- int myButtons;
- int myUserType; // user are welcome to put additional data here and use it in fillWidgetWithValues()
-};
-
-
-#endif
+++ /dev/null
-// SALOME SalomeApp
-//
-// Copyright (C) 2005 CEA/DEN, EDF R&D
-//
-//
-//
-// File : SalomeApp_StudyPropertiesDlg.h
-// Author : Sergey ANIKIN
-// Module : SALOME
-// $Header$
-
-#ifndef SALOMEAPP_STUDY_PROPERTIES_DLG_H
-#define SALOMEAPP_STUDY_PROPERTIES_DLG_H
-
-#include "SalomeApp.h"
-#include <SALOMEDSClient_definitions.hxx>
-#include <qdialog.h>
-#include <qlineedit.h>
-#include <qcombobox.h>
-#include <qlistview.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SALOMEDS)
-
-#include <SALOMEDSClient_Study.hxx>
-
-class SalomeApp_ListView;
-class QPushButton;
-class QToolButton;
-
-class SALOMEAPP_EXPORT SalomeApp_StudyPropertiesDlg : public QDialog
-{
- Q_OBJECT
-
-public:
- enum {
- prpAuthorId,
- prpModeId,
- prpDateId,
- prpSavedId,
- prpLockedId,
- prpModificationsId,
- prpLastId
- };
-
-public:
- SalomeApp_StudyPropertiesDlg( QWidget* parent = 0 );
- ~SalomeApp_StudyPropertiesDlg();
-
- bool isChanged() { return myChanged; }
-
-public slots:
- void onOK();
-
-private:
- void initData();
- bool acceptData();
- bool propChanged();
-
-private:
- SalomeApp_ListView* myPropList;
- QPushButton* myOKBtn;
- QPushButton* myCancelBtn;
- bool myChanged;
-
- _PTR(Study) myStudyDoc;
-};
-
-#endif // SALOMEAPP_STUDY_PROPERTIES_DLG_H
+++ /dev/null
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : InquireServersQThread.cxx
-// Author : Vasily RUSYAEV
-// Module : SALOME
-// $Header$
-
-#include "InquireServersQThread.h"
-
-#include <qapplication.h>
-#include <qpushbutton.h>
-#include <qabstractlayout.h>
-#include <qlayout.h>
-#include <qevent.h>
-#include <qfont.h>
-#include <qmessagebox.h>
-#include <qdir.h>
-#include <qfileinfo.h>
-#include <qstringlist.h>
-#include <qlabel.h>
-#include <qprogressbar.h>
-
-//VRV: porting on Qt 3.0.5
-#if QT_VERSION >= 0x030005
-#include <qdesktopwidget.h>
-#endif
-//VRV: porting on Qt 3.0.5
-
-#include <qsize.h>
-
-#include <SALOMEconfig.h>
-
-#include "Utils_ORB_INIT.hxx"
-#include "Utils_SINGLETON.hxx"
-#include "SALOME_NamingService.hxx"
-#include "utilities.h"
-#include "OpUtil.hxx"
-
-using namespace std;
-
-#include CORBA_CLIENT_HEADER(SALOME_Session)
-#include CORBA_CLIENT_HEADER(SALOME_Registry)
-#include CORBA_CLIENT_HEADER(SALOMEDS)
-#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
-#include CORBA_CLIENT_HEADER(SALOME_Component)
-
-#define MARGIN_SIZE 5
-#define SPACING_SIZE 3
-
-InquireServersGUI::InquireServersGUI()
- : QVBox(0, "SFA splash", Qt::WDestructiveClose | Qt::WStyle_Customize | Qt::WStyle_NoBorder | WType_TopLevel | WStyle_StaysOnTop | WX11BypassWM )
-{
- // myGUI = false;
- myThread = new InquireServersQThread( this );
-
- // 1. Polish the appearance
- setMargin( MARGIN_SIZE );
- setSpacing( SPACING_SIZE );
- setFrameStyle( QFrame::Plain | QFrame::Box );
- setLineWidth( 2 );
- setMinimumSize( 200, 150 );
-
- // 2. Set palette
- QPalette pal = palette();
- QColorGroup cg = pal.active();
- cg.setColor( QColorGroup::Foreground, Qt::darkBlue );
- cg.setColor( QColorGroup::Background, Qt::white );
- pal.setActive( cg ); pal.setInactive( cg ); pal.setDisabled( cg );
- setPalette( pal );
-
- // 2. Splash image
- mySplashFrame = new QFrame( this );
- mySplashFrame->setFrameStyle( QFrame::Box | QFrame::Raised );
- QHBoxLayout* frmLayout = new QHBoxLayout( mySplashFrame );
- frmLayout->setMargin( MARGIN_SIZE );
- mySplash = new QLabel( mySplashFrame, "splash" );
- frmLayout->addWidget( mySplash );
-
- // setting pixmap
- //QPixmap pix = SUIT_ResourceMgr( "SalomeApp" ).loadPixmap( "SalomeApp", tr( "ABOUT" ) );
- //splash->setPixmap( pix );
-
- // 3. Progress bar
- myPrgBar = new QProgressBar( this, "QProgressBar" );
- myPrgBar->setFixedWidth( 180 );
- //Sets the total number of steps .
- myPrgBar->setPercentageVisible( false );
- myPrgBar->setIndicatorFollowsStyle( false );
- myPrgBar->setFixedHeight( 8 );
- myPrgBar->setFrameStyle( QFrame::Box | QFrame::Plain );
- myPrgBar->setMargin( 0 );
- pal = myPrgBar->palette(); cg = pal.active();
- cg.setColor( QColorGroup::Highlight, Qt::red );
- pal.setActive( cg ); pal.setInactive( cg ); pal.setDisabled( cg ); myPrgBar->setPalette( pal );
- myPrgBar->setTotalSteps ( myThread->getInquiredServers() );
- myPrgBar->setProgress( 0 );
-
- // 4. Info label
- QWidget* aWgt1 = new QWidget( this );
- QHBoxLayout* aHBoxLayout1 = new QHBoxLayout( aWgt1 );
- myLabel = new QLabel( tr( "Loading:" ), aWgt1 );
- myLabel->setFixedWidth( 180 );
- myLabel->setAlignment( AlignLeft );
- QFont theFont = myLabel->font();
- theFont.setBold(true);
- myLabel->setFont( theFont );
- aHBoxLayout1->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ) );
- aHBoxLayout1->addWidget( myLabel );
- aHBoxLayout1->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ) );
-
- // 5. <Cancel> button
- QWidget* aWgt = new QWidget( this );
- QHBoxLayout* aHBoxLayout = new QHBoxLayout( aWgt );
- QPushButton* myCancelBtn = new QPushButton( tr( "Cancel" ), aWgt );
- connect( myCancelBtn, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ) ;
- aHBoxLayout->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ) );
- aHBoxLayout->addWidget( myCancelBtn );
- aHBoxLayout->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ) );
-
- //Center widget
-#if QT_VERSION >= 0x030005
- QDesktopWidget *d = QApplication::desktop();
-#else
- QWidget *d = QApplication::desktop();
-#endif
-//VRV: porting on Qt 3.0.5
-
- int w = d->width(); // returns desktop width
- int h = d->height(); // returns desktop height
- QSize mySize = sizeHint (); // returns widget size
- int Xc = ( w - mySize.width() ) / 2;
- int Yc = ( h - mySize.height() ) / 2;
- move( Xc, Yc );
-
- myThread->start();
-}
-
-void InquireServersGUI::setPixmap( QPixmap pix )
-{
- if ( !pix.isNull() )
- {
- mySplash->setPixmap( pix );
- int w = mySplash->sizeHint().width() + MARGIN_SIZE*2;
- myPrgBar->setFixedWidth( w );
- myLabel->setFixedWidth( w );
- }
-}
-
-InquireServersGUI::~InquireServersGUI()
-{
- delete myThread;
-}
-
-void InquireServersGUI::getArgs( int& _argc, char *** _argv)
-{
- _argc = qApp->argc();
- *_argv = qApp->argv();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose : cancel loading of SALOME
-//=================================================================================
-void InquireServersGUI::ClickOnCancel()
-{
- myThread->stop(); //it's necessary to stop asking servers
- hide();
- qApp->exit( 1 );
-}
-
-void InquireServersGUI::customEvent( QCustomEvent* pe )
-{
- switch( pe->type() )
- {
- case InquireEvent::ProgressEvent:
- {
- int* value = ( int* )(( InquireEvent*)pe)->data();
- myPrgBar->setProgress( *value );
- break;
- }
- case InquireEvent::ProgressEventLabel:
- {
- QString* myString = ( QString* )(( InquireEvent*)pe)->data();
- myLabel->setText( *myString );
- break;
- }
- case InquireEvent::ProgressEventError:
- {
- QString* myErrDesc = ( QString* )(( InquireEvent*)pe)->data();
- QString appName = "SALOME Professional";
- QString error = "An internal error occurred.\n"+ *myErrDesc + "\n";
- QMessageBox myMsgBox(appName,error,QMessageBox::Critical,QMessageBox::Ok,QMessageBox::NoButton,
- QMessageBox::NoButton,0,"MY",TRUE,WStyle_DialogBorder|WStyle_StaysOnTop);
- myMsgBox.exec();
- ClickOnCancel();
- break;
- }
- default:
- {
- ;
- }
- }
-}
-
-int InquireServersGUI::getExitStatus()
-{
- return myThread->getExitStatus();
-}
-
-InquireServersQThread::InquireServersQThread( InquireServersGUI* r )
- : receiver(r), myExitStatus(0)
-{
- char* cenv;
-
- IsChecking = true;
- myServersCount = 5;
- //how many times we should repeat attempts to get response from all needed for launching SALOME servers
- myRepeat = 30; // default value, user can change it by setting CSF_RepeatServerRequest env.variable
- cenv = getenv( "CSF_RepeatServerRequest" );
- if ( cenv ) {
- int val = atoi( cenv );
- if ( val > 0 )
- myRepeat = val;
- }
- //define delay time between two attempts
- myDelay = 1000000; // 1 second
- QString str = "Loading: ";
- myMessages[0] = "Checking naming service...";
- myMessages[1] = str + "SALOME_Registry_Server" + "...";
- myMessages[2] = str + "SALOMEDS_Server" + "...";
- myMessages[3] = str + "SALOME_ModuleCatalog_Server" + "...";
- myMessages[4] = str + "SALOME_Session_Server" + "...";
- myMessages[5] = "";
- myMessages[6] = "";
- myMessages[7] = "";
-
- r->getArgs( _argc, &_argv);
-
- // NRI : Temporary solution for SuperVisionContainer
- for ( int i=1; i<=(_argc-1); i++) {
- if (strcmp(_argv[i],"CPP")==0) {
- myMessages[5] = str + "SALOME_Container FactoryServer" + "...";
- myServersCount++;
- }
- if (strcmp(_argv[i],"PY")==0) {
- myMessages[6] = str + "SALOME_ContainerPy.py FactoryServerPy" + "...";
- myServersCount++;
- }
- if (strcmp(_argv[i],"SUPERV")==0) {
- myMessages[7] = str + "SALOME_Container SuperVisionContainer" + "...";
- myServersCount++;
- }
-// if (strcmp(_argv[i],"GUI")==0) {
-// r->withGUI(true);
-// }
- }
-}
-
-void InquireServersQThread::run()
-{
- while ( IsChecking && receiver )
- {
- for (int i=1; i<=8; i++)
- {
- if ( myMessages[i-1].isEmpty() )
- {
- if ( i==8 )
- {
- IsChecking = false;
- myExitStatus = 0; //myExitStatus should be 0 because all servers exist and work
- sleep( 1 ); // sleep( 1 second ) in order to see 100%. in other case it closes on 85%..
- break;
- }
- else
- continue;
- }
- QString *message = new QString(myMessages[i-1]);
- QThread::postEvent( receiver, new InquireEvent( ( QEvent::Type )InquireEvent::ProgressEventLabel, message ) );
- QThread::usleep(200000);
- QString *errMsg;
- bool result = AskServer(i,&errMsg);
- if (result)
- {
- QThread::postEvent( receiver, new InquireEvent( ( QEvent::Type )InquireEvent::ProgressEvent, new int( i ) ) );
- if ( i==8 )
- {
- IsChecking = false;
- myExitStatus = 0; //myExitStatus should be 0 because all servers exist and work
- sleep( 1 ); // sleep( 1 second ) in order to see 100%. in other case it closes on 85%..
- break;
- }
- }
- else
- {
- QThread::postEvent( receiver, new InquireEvent( ( QEvent::Type )InquireEvent::ProgressEventError, errMsg ) );
- stop();
- break;
- }
- }
- }
-
- receiver->hide();
- qApp->exit( myExitStatus );
-}
-
-void InquireServersQThread::stop()
-{
- IsChecking = false;
- myExitStatus = 1;
-}
-
-InquireServersQThread::~InquireServersQThread()
-{
-}
-
-bool InquireServersQThread::AskServer(int iteration, QString ** errMessage)
-{
- if ( iteration > myServersCount )
- return true; // we did not launch server with number iteration, so checking for it is not neccessary
-
- ASSERT(iteration<=myServersCount);
-
- //will be set true if we get response from server
- bool IsPassed = false;
- QString errDescription;
-#ifdef WNT
- int i;
-#endif
- switch (iteration)
- {
- case 1:
- //First checking - existence of Naming Service
-#ifndef WNT
- for (int i = myRepeat; i ; i--)
-#else
- for (i = myRepeat; i ; i--)
-#endif
- {
- try
- {
- CORBA::ORB_var orb = CORBA::ORB_init(_argc,_argv) ;
- CORBA::Object_var obj = orb->resolve_initial_references("NameService");
- CosNaming::NamingContext_var _root_context = CosNaming::NamingContext::_narrow(obj);
- if (CORBA::is_nil(_root_context))
- continue;
- else
- IsPassed = true;
- break;
- }
- catch(CORBA::COMM_FAILURE&)
- {
- MESSAGE("CORBA::COMM_FAILURE: unable to contact the naming service");
- }
- catch(...)
- {
- MESSAGE("Unknown Exception: unable to contact the naming service");
- }
- QThread::usleep(myDelay);
- }
- if (!IsPassed)
- *errMessage = new QString("unable to contact the naming service");
- break;
- case 2:
- //checking - existence of SALOME_Registry_Server
- case 3:
- //checking - existence of SALOMEDS_Server
- case 4:
- //checking - existence of SALOME_ModuleCatalog_Server
- case 5:
- //checking - existence of SALOME_Session_Server
- case 6:
- //checking - existence of SALOME_Container FactoryServer
- case 7:
- //checking - existence of SALOME_ContainerPy.py FactoryServerPy
- case 8:
- //checking - existence of SALOME_Container SuperVisionContainer
-
-
- IsPassed = pingServer(iteration, errDescription);
- if (!IsPassed)
- *errMessage = new QString(errDescription);
- break;
- }
-return IsPassed;
-}
-
-bool InquireServersQThread::pingServer(int iteration, QString& errMessage)
-{
- ASSERT(iteration<=myServersCount);
- bool result = false;
- QString errorDescr;
- for (int i = myRepeat; i ; i--)
- {
- try
- {
- CORBA::ORB_var orb = CORBA::ORB_init(_argc,_argv) ;
- SALOME_NamingService &NS = *SINGLETON_<SALOME_NamingService>::Instance() ;
- ASSERT(SINGLETON_<SALOME_NamingService>::IsAlreadyExisting()) ;
- NS.init_orb( orb ) ;
- switch (iteration)
- {
- case 2:
- {
- CORBA::Object_var obj = NS.Resolve("/Registry");
- Registry::Components_var registry = Registry::Components::_narrow(obj) ;
- if (!CORBA::is_nil(registry))
- {
- MESSAGE("/Registry is found");
- registry->ping();
- result = true;
- MESSAGE("Registry was activated");
- return result;
- }
- }
- break;
- case 3:
- {
- CORBA::Object_var obj = NS.Resolve("/myStudyManager");
- SALOMEDS::StudyManager_var studyManager = SALOMEDS::StudyManager::_narrow(obj) ;
- if (!CORBA::is_nil(studyManager))
-
-
-
-
-
- {
- MESSAGE("/myStudyManager is found");
- studyManager->ping();
- result = true;
- MESSAGE("StudyManager was activated");
- return result;
- }
- }
- break;
- case 4:
- {
- CORBA::Object_var obj = NS.Resolve("/Kernel/ModulCatalog");
- SALOME_ModuleCatalog::ModuleCatalog_var catalog = SALOME_ModuleCatalog::ModuleCatalog::_narrow(obj) ;
- if (!CORBA::is_nil(catalog))
- {
- MESSAGE("/Kernel/ModulCatalog is found");
- catalog->ping();
- result = true;
- MESSAGE("ModuleCatalog was activated");
- return result;
- }
- }
- break;
- case 5:
- {
- CORBA::Object_var obj = NS.Resolve("/Kernel/Session");
- SALOME::Session_var session = SALOME::Session::_narrow(obj) ;
- if (!CORBA::is_nil(session))
- {
- MESSAGE("/Kernel/Session is found");
- session->ping();
- result = true;
- MESSAGE("SALOME_Session was activated");
- return result;
- }
- }
- break;
- case 6:
- {
- string hostname = GetHostname();
- string containerName = "/Containers/";
- containerName += hostname;
- containerName += "/FactoryServer";
-
- CORBA::Object_var obj = NS.Resolve(containerName.c_str());
- Engines::Container_var FScontainer = Engines::Container::_narrow(obj) ;
- if (!CORBA::is_nil(FScontainer))
- {
- FScontainer->ping();
- result = true;
- MESSAGE("FactoryServer container was activated");
- return result;
- }
- }
- break;
- case 7:
- {
- string hostname = GetHostname();
- string containerName = "/Containers/";
- containerName += hostname;
- containerName += "/FactoryServerPy";
-
- CORBA::Object_var obj = NS.Resolve(containerName.c_str());
- Engines::Container_var FSPcontainer = Engines::Container::_narrow(obj) ;
- if (!CORBA::is_nil(FSPcontainer))
- {
- FSPcontainer->ping();
- result = true;
- MESSAGE("FactoryServerPy container was activated");
- return result;
- }
- }
- break;
- case 8:
- {
- string hostname = GetHostname();
- string containerName = "/Containers/";
- containerName += hostname;
- containerName += "/SuperVisionContainer";
-
- CORBA::Object_var obj = NS.Resolve(containerName.c_str());
- Engines::Container_var SVcontainer = Engines::Container::_narrow(obj) ;
- if (!CORBA::is_nil(SVcontainer))
- {
- SVcontainer->ping();
-
- result = true;
- MESSAGE("SuperVisionContainer container was activated");
- return result;
- }
- }
- break;
- }
- }
- catch (ServiceUnreachable&)
- {
- MESSAGE("Caught exception: Naming Service Unreachable");
- errorDescr = "Caught exception: Naming Service Unreachable";
- }
- catch (CORBA::COMM_FAILURE&)
- {
- MESSAGE("Caught CORBA::SystemException CommFailure.");
- errorDescr = "Caught CORBA::SystemException CommFailure";
- }
- catch (CORBA::SystemException&)
- {
- MESSAGE("Caught CORBA::SystemException.");
- errorDescr = "Caught CORBA::SystemException";
- }
- catch (CORBA::Exception&)
- {
- MESSAGE("Caught CORBA::Exception.");
- errorDescr = "Caught CORBA::Exception";
- }
- catch (...)
- {
- MESSAGE("Caught unknown exception.");
- errorDescr = "Caught unknown exception";
- }
- QThread::usleep(myDelay);
- }
- if (!result)
- {
- QString serverName;
- switch (iteration)
- {
- case 2:
- serverName = "SALOME_Registry_Server is not loaded. ";
- break;
- case 3:
- serverName = "SALOMEDS_Server is not loaded. ";
- break;
- case 4:
- serverName = "SALOME_ModuleCatalog_Server is not loaded. ";
- break;
- case 5:
- serverName = "SALOME_Session_Server is not loaded. ";
- break;
- case 6:
- serverName = "SALOME_Container FactoryServer is not loaded. ";
- break;
- case 7:
- serverName = "SALOME_ContainerPy.py FactoryServerPy is not loaded. ";
- break;
- case 8:
- serverName = "SALOME_Container SuperVisionContainer is not loaded. ";
- break;
- }
- errMessage = serverName + errorDescr;
- }
- return result;
-}
-
+++ /dev/null
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : InquireServersQThread.h
-// Author : Vasily RUSYAEV
-// Module : SALOME
-// $Header$
-
-#include <qthread.h>
-#include <qvbox.h>
-#include <qguardedptr.h>
-
-#ifdef WNT
-#include <SALOME_WNT.hxx>
-#else
-#define SALOME_WNT_EXPORT
-#endif
-
-/**********************************************************
-** Class: InquireEvent
-** Descr: Contains QCustomEvents for posting to InquireServersQThread
-** Level: Private
-***********************************************************/
-class SALOME_WNT_EXPORT InquireEvent : public QCustomEvent
-{
-public:
-
- enum myCustomEvents{ ProgressEvent = QEvent::User + 10, ProgressEventLabel, ProgressEventError };
-
- InquireEvent( QEvent::Type type , void* data = 0 )
- : QCustomEvent( type, data ) {}
- ~InquireEvent()
- {
- type() == (QEvent::Type)ProgressEvent ?
- delete ( int* )data() : delete ( QString* )data();
- }
-};
-
-class InquireServersGUI;
-
-class SALOME_WNT_EXPORT InquireServersQThread : public QThread
-{
-public:
- InquireServersQThread( InquireServersGUI* r );
- virtual ~InquireServersQThread();
-
- //the main loop of this thread
- virtual void run() ;
- //stop to ask servers
- void stop();
- //return exit status: 0 - OK, >0 - BAD (some servers doesn't exists or user click cancel button)
- int getExitStatus() { return myExitStatus;}
- //return count of inquired servers
- int getInquiredServers() { return myServersCount; }
-
-private:
-
-//functions:
-
- bool AskServer(int iteration, QString ** message);
- bool pingServer(int iteration, QString& errMessage);
-
-//variables:
-
- QGuardedPtr<InquireServersGUI> receiver;
- int _argc ;
- char ** _argv;
- //this variable is true if we are checking servers
- bool IsChecking;
- //count of inquired servers
- int myServersCount;
- //how many times we should repeat attempt to get response from all needed for launching SALOME servers
- int myRepeat;
- //define delay time between two attempts in microseconds
- int myDelay;
- //this strings' array contains messages for each server (e.g. "Loading: SALOMEDS_Server")
- QString myMessages[8];
- //exit status: 0 - OK, >0 - BAD (some servers doesn't exists or user click cancel button)
- int myExitStatus;
-
-} ;
-
-class QLabel;
-class QFrame;
-class QProgressBar;
-class SALOME_WNT_EXPORT InquireServersGUI : public QVBox
-{
- Q_OBJECT
-
-public:
- InquireServersGUI() ;
- ~InquireServersGUI();
-
- //returns arguments of QApplication
- //they are needed for CORBA servers initialization
- void getArgs( int& _argc, char *** _argv);
- //return exit status: 0 - OK, >0 - BAD (some servers doesn't exists or user click cancel button)
- int getExitStatus();
- //launch IAPP
- // bool withGUI() { return myGUI; }
- // void withGUI(bool gui) { myGUI = gui; }
-
- void setPixmap( QPixmap );
-
-protected:
- virtual void customEvent( QCustomEvent* );
-
-private:
- InquireServersQThread* myThread;
- QProgressBar* myPrgBar;
- //this string contains description of currently asked server
- QLabel* myLabel;
- QLabel* mySplash;
- QFrame* mySplashFrame;
- // bool myGUI;
-
-private slots:
-
- void ClickOnCancel();
-} ;
+++ /dev/null
-// SalomeApp_Engine_i : implementation of SalomeApp_Engine.idl
-//
-// 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 : SalomeApp_Engine_i.cxx
-// Author : Alexander SLADKOV
-// Module : SALOME
-// $Header$
-
-#include "SalomeApp_Engine_i.hxx"
-
-#include "SALOMEDS_Tool.hxx"
-
-#include "utilities.h"
-
-#include <iostream>
-
-using namespace std;
-
-SalomeApp_Engine_i* SalomeApp_Engine_i::myInstance = NULL;
-
-SalomeApp_Engine_i::SalomeApp_Engine_i()
-{
- myInstance = this;
-}
-
-SalomeApp_Engine_i::~SalomeApp_Engine_i()
-{
-}
-
-SALOMEDS::TMPFile* SalomeApp_Engine_i::Save (SALOMEDS::SComponent_ptr theComponent,
- const char* theURL,
- bool isMultiFile)
-{
- SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile;
-
- cout << "SalomeApp_Engine_i::Save() isMultiFile = " << isMultiFile << endl;
- if (CORBA::is_nil(theComponent) || CORBA::is_nil(theComponent->GetStudy()))
- return aStreamFile._retn();
-
- const int studyId = theComponent->GetStudy()->StudyId();
- cout << "SalomeApp_Engine_i::Save() - studyId = " << studyId << endl;
-
- // Get a temporary directory to store a file
- //std::string aTmpDir = isMultiFile ? theURL : SALOMEDS_Tool::GetTmpDir();
-
- if (myMap.count(studyId)) {
- cout << "SalomeApp_Engine_i::Save() - myMap.count(studyId)" << endl;
- MapOfListOfFiles mapOfListOfFiles = myMap[studyId];
- std::string componentName (theComponent->ComponentDataType());
- cout << "SalomeApp_Engine_i::Save() - componentName = " << componentName << endl;
- ListOfFiles listOfFiles = mapOfListOfFiles[componentName];
-
- // listOfFiles must contain temporary directory name in its first item
- // and names of files (relatively the temporary directory) in the others
- const int n = listOfFiles.size() - 1;
-
- if (n > 0) { // there are some files, containing persistent data of the component
- std::string aTmpDir = listOfFiles[0];
- cout << "SalomeApp_Engine_i::Save() - aTmpDir = " << aTmpDir << endl;
-
- // Create a list to store names of created files
- SALOMEDS::ListOfFileNames_var aSeq = new SALOMEDS::ListOfFileNames;
- aSeq->length(n);
- for (int i = 0; i < n; i++)
- aSeq[i] = CORBA::string_dup(listOfFiles[i + 1].c_str());
-
- // Convert a file to the byte stream
- aStreamFile = SALOMEDS_Tool::PutFilesToStream(aTmpDir.c_str(), aSeq.in(), isMultiFile);
-
- // Remove the files and tmp directory, created by the component storage procedure
- if (!isMultiFile) SALOMEDS_Tool::RemoveTemporaryFiles(aTmpDir.c_str(), aSeq.in(), true);
- }
- }
-
- return aStreamFile._retn();
-}
-
-CORBA::Boolean SalomeApp_Engine_i::Load (SALOMEDS::SComponent_ptr theComponent,
- const SALOMEDS::TMPFile& theFile,
- const char* theURL,
- bool isMultiFile)
-{
- cout << "SalomeApp_Engine_i::Load() isMultiFile = " << isMultiFile << endl;
- if (CORBA::is_nil(theComponent) || CORBA::is_nil(theComponent->GetStudy()))
- return false;
-
- const int studyId = theComponent->GetStudy()->StudyId();
-
- // Create a temporary directory for the component's data files
- std::string aTmpDir = isMultiFile ? theURL : SALOMEDS_Tool::GetTmpDir();
-
- // Convert the byte stream theStream to a files and place them in the tmp directory.
- // The files and temporary directory must be deleted by the component loading procedure.
- SALOMEDS::ListOfFileNames_var aSeq =
- SALOMEDS_Tool::PutStreamToFiles(theFile, aTmpDir.c_str(), isMultiFile);
-
- // Store list of file names to be used by the component loading procedure
- const int n = aSeq->length() + 1;
- ListOfFiles listOfFiles (n);
- listOfFiles[0] = aTmpDir;
- for (int i = 1; i < n; i++)
- listOfFiles[i] = std::string(aSeq[i - 1]);
-
- //MapOfListOfFiles mapOfListOfFiles;
- //if (myMap.count(studyId))
- // mapOfListOfFiles = myMap[studyId];
- //std::string componentName (theComponent->ComponentDataType());
- //mapOfListOfFiles[componentName] = listOfFiles;
- //myMap[studyId] = mapOfListOfFiles;
-
- SetListOfFiles(listOfFiles, studyId, theComponent->ComponentDataType());
-
- return true;
-}
-
-SalomeApp_Engine_i::ListOfFiles SalomeApp_Engine_i::GetListOfFiles (const int theStudyId,
- const char* theComponentName)
-{
- ListOfFiles aListOfFiles;
-
- if (myMap.count(theStudyId))
- {
- MapOfListOfFiles mapOfListOfFiles = myMap[theStudyId];
- std::string componentName (theComponentName);
- if (mapOfListOfFiles.count(componentName))
- aListOfFiles = mapOfListOfFiles[componentName];
- }
-
- return aListOfFiles;
-}
-
-void SalomeApp_Engine_i::SetListOfFiles (const ListOfFiles theListOfFiles,
- const int theStudyId,
- const char* theComponentName)
-{
- //if (!myMap.count(theStudyId)) {
- // MapOfListOfFiles mapOfListOfFiles;
- // myMap[theStudyId] = mapOfListOfFiles;
- //}
-
- MapOfListOfFiles& mapOfListOfFiles = myMap[theStudyId];
- std::string componentName (theComponentName);
- mapOfListOfFiles[componentName] = theListOfFiles;
-}
-
-SalomeApp_Engine_i* SalomeApp_Engine_i::GetInstance()
-{
- return myInstance;
-}
+++ /dev/null
-// SalomeApp_Engine_i : implementation of SalomeApp_Engine.idl
-//
-// 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 : SalomeApp_Engine_i.hxx
-// Author : Alexander SLADKOV
-// Module : SALOME
-// $Header$
-
-#ifndef _SALOMEAPP_ENGINE_I_HXX_
-#define _SALOMEAPP_ENGINE_I_HXX_
-
-#include "SALOME_Component_i.hxx"
-
-#include <vector>
-#include <map>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SalomeApp_Engine)
-
-#ifdef WNT
-#include <SALOME_WNT.hxx>
-#else
-#define SALOME_WNT_EXPORT
-#endif
-
-class SALOME_WNT_EXPORT SalomeApp_Engine_i: public POA_SalomeApp::Engine,
- public Engines_Component_i
-{
-public:
- SalomeApp_Engine_i();
- ~SalomeApp_Engine_i();
-
- SALOMEDS::TMPFile* Save( SALOMEDS::SComponent_ptr theComponent,
- const char* theURL,
- bool isMultiFile );
-
- CORBA::Boolean Load( SALOMEDS::SComponent_ptr theComponent,
- const SALOMEDS::TMPFile& theFile,
- const char* theURL,
- bool isMultiFile );
-
-public:
- typedef std::vector<std::string> ListOfFiles;
-
- ListOfFiles GetListOfFiles (const int theStudyId,
- const char* theComponentName);
-
- void SetListOfFiles (const ListOfFiles theListOfFiles,
- const int theStudyId,
- const char* theComponentName);
-
- static SalomeApp_Engine_i* GetInstance();
-
-public:
- // methods from SALOMEDS::Driver without implementation. Must be redefined because
- // there is no default implementation of SALOMEDS::Driver interface
- SALOMEDS::TMPFile* SaveASCII( SALOMEDS::SComponent_ptr, const char*, bool ) {return 0;}
- CORBA::Boolean LoadASCII( SALOMEDS::SComponent_ptr, const SALOMEDS::TMPFile&, const char*, bool ) {return 0;}
- void Close( SALOMEDS::SComponent_ptr ) {}
- char* ComponentDataType() {return 0;}
- char* IORToLocalPersistentID( SALOMEDS::SObject_ptr, const char*, CORBA::Boolean, CORBA::Boolean ) {return 0;}
- char* LocalPersistentIDToIOR( SALOMEDS::SObject_ptr, const char*, CORBA::Boolean, CORBA::Boolean ) {return 0;}
- bool CanPublishInStudy( CORBA::Object_ptr ) {return 0;}
- SALOMEDS::SObject_ptr PublishInStudy(SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr, CORBA::Object_ptr, const char* ) throw (SALOME::SALOME_Exception) {return 0;}
- CORBA::Boolean CanCopy( SALOMEDS::SObject_ptr ) {return 0;}
- SALOMEDS::TMPFile* CopyFrom( SALOMEDS::SObject_ptr, CORBA::Long& ) {return 0;}
- CORBA::Boolean CanPaste( const char*, CORBA::Long ) {return 0;}
- SALOMEDS::SObject_ptr PasteInto( const SALOMEDS::TMPFile&, CORBA::Long, SALOMEDS::SObject_ptr ) {return 0;}
-
-private:
- typedef std::map<std::string, ListOfFiles> MapOfListOfFiles;
- typedef std::map<int, MapOfListOfFiles> MapOfMapOfListOfFiles;
- MapOfMapOfListOfFiles myMap;
-
- static SalomeApp_Engine_i* myInstance;
-};
-
-#endif
-
+++ /dev/null
-// SALOME Session : implementation of Session_ServerLauncher.cxx
-//
-// 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 : Session_ServerLauncher.xx
-// Author : Paul RASCLE, EDF
-// Module : SALOME
-// $Header$
-
-#include "Session_ServerLauncher.hxx"
-
-#include "Utils_SALOME_Exception.hxx"
-#include "utilities.h"
-using namespace std;
-//=============================================================================
-/*!
- * default constructor not for use
- */
-//=============================================================================
-
-Session_ServerLauncher::Session_ServerLauncher()
-{
- ASSERT(0); // must not be called
-}
-
-//=============================================================================
-/*!
- * constructor
- */
-//=============================================================================
-
-Session_ServerLauncher::Session_ServerLauncher(int argc,
- char ** argv,
- CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa,
- QMutex *GUIMutex,
- QWaitCondition *ServerLaunch,
- QWaitCondition *SessionStarted)
-{
- _argc = argc;
- _argv = argv;
- _orb = CORBA::ORB::_duplicate(orb);
- _root_poa = PortableServer::POA::_duplicate(poa);
- _GUIMutex = GUIMutex;
- _ServerLaunch = ServerLaunch;
- _SessionStarted = SessionStarted;
-}
-
-//=============================================================================
-/*!
- * destructor
- */
-//=============================================================================
-
-Session_ServerLauncher::~Session_ServerLauncher()
-{
-}
-
-//=============================================================================
-/*!
- * Check args and activate servers
- */
-//=============================================================================
-
-void Session_ServerLauncher::run()
-{
- _GUIMutex->lock(); // lock released by calling thread when ready: wait(mutex)
- _GUIMutex->unlock();
- _ServerLaunch->wakeAll();
-
- CheckArgs();
- ActivateAll();
-
- _SessionStarted->wakeAll(); // wake main thread
-
- _orb->run(); // this thread wait, during omniORB process events
-}
-
-//=============================================================================
-/*!
- * controls and dispatchs arguments given with command
- */
-//=============================================================================
-
-void Session_ServerLauncher::CheckArgs()
-{
- int argState = 0;
- ServArg aServArg(0,0,0);
- _argCopy.reserve(_argc);
- for (int iarg=0; iarg <_argc; iarg++)
- {
- SCRUTE(iarg);
- SCRUTE(_argv[iarg]);
- _argCopy.push_back(_argv[iarg]);
- switch (argState)
- {
- case 0: // looking for "--with"
- {
- if (strcmp(_argv[iarg],"--with")==0)
- argState = 1;
- break;
- }
- case 1: // looking for server type
- {
- for (int i=0; i<Session_ServerThread::NB_SRV_TYP; i++)
- if (strcmp(_argv[iarg],Session_ServerThread::_serverTypes[i])==0)
- {
- aServArg._servType = i;
- argState = 2;
- break;
- }
- break;
- }
- case 2: // looking for "("
- {
- if (strcmp(_argv[iarg],"(")!=0)
- {
- INFOS("parenthesis '(' is required here...");
- for (int i=0; i<iarg; i++)
- cerr << _argv[i] << " ";
- cerr << endl;
- throw SALOME_Exception(LOCALIZED("Error in command arguments, missing prenthesis"));
- }
- else
- {
- aServArg._firstArg=iarg+1; // arg after '('
- argState = 3;
- }
- break;
- }
- case 3: // looking for arguments
- {
- if (strcmp(_argv[iarg],")")==0) // end of arguments = ')'
- {
- aServArg._lastArg=iarg-1; // arg before ')'
- MESSAGE("server : "<< Session_ServerThread::_serverTypes[aServArg._servType]);
- for (int i=aServArg._firstArg; i<=aServArg._lastArg; i++)
- MESSAGE(" arg : " << _argCopy[i]);
- _argServToLaunch.push_back(aServArg);
- argState = 0;
- }
- break;
- }
- default:
- {
- ASSERT(0);
- break;
- }
- }
- }
- if (argState == 1)
- throw SALOME_Exception(LOCALIZED("Error in command arguments, missing server type"));
- if (argState == 2)
- throw SALOME_Exception(LOCALIZED("Error in command arguments, missing parenthesis '('"));
- if (argState == 3)
- throw SALOME_Exception(LOCALIZED("Error in command arguments, missing parenthesis ')'"));
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void Session_ServerLauncher::ActivateAll()
-{
- list<ServArg>::iterator itServ;
- for (itServ = _argServToLaunch.begin(); itServ !=_argServToLaunch.end(); itServ++)
- {
- int argc = 2 + (*itServ)._lastArg - (*itServ)._firstArg;
- char** argv = new char*[argc+1];
- argv[argc]=0; // for Engines_Container_i constructor...
- int servType = (*itServ)._servType;
- argv[0]=strdup(Session_ServerThread::_serverTypes[servType]);
- if (argc>1)
- {
- for (int i=0; i<argc-1; i++)
- //argv[i+1] = _argCopy[(*itServ)._firstArg + i].c_str();
- argv[i+1] = _argv[(*itServ)._firstArg + i];
- }
-
- std::cout << "*** activating [" << argc << "] : " << argv[0] << std::endl;
-
- Session_ServerThread* aServerThread
- = new Session_ServerThread(argc, argv, _orb,_root_poa,_GUIMutex);
- _serverThreads.push_front(aServerThread);
-
- aServerThread->Init();
- }
-
- // Always launch Session Server
- std::cout << "*** activating [ SESSION ] " << std::endl;
-
- int argc=1;
- char** argv = new char*[argc];
- argv[0] = "Session";
- Session_SessionThread* aServerThread
- = new Session_SessionThread(argc, argv, _orb,_root_poa,_GUIMutex,_ServerLaunch);
- _serverThreads.push_front(aServerThread);
-
- aServerThread->Init();
-}
-
-//=============================================================================
-/*!
- * Destruction des classes serveur dans l'ordre inverse de creation
- */
-//=============================================================================
-
-void Session_ServerLauncher::KillAll()
-{
- MESSAGE("Session_ServerLauncher::KillAll()");
- list<Session_ServerThread*>::reverse_iterator itServ;
- for (itServ = _serverThreads.rbegin(); itServ !=_serverThreads.rend(); itServ++)
- {
- delete (*itServ);
- }
-}
+++ /dev/null
-// SALOME Session : implementation of Session_ServerLauncher.hxx
-//
-// 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 : Session_ServerLauncher.hxx
-// Author : Paul RASCLE, EDF
-// Module : SALOME
-// $Header$
-
-#ifndef _SESSION_SERVERLAUNCHER_HXX_
-#define _SESSION_SERVERLAUNCHER_HXX_
-
-#include "Session_ServerThread.hxx"
-
-#include <CORBA.h>
-#include <list>
-#include <vector>
-#include <string>
-#include <qthread.h>
-#include <qwaitcondition.h>
-
-
-#ifdef WNT
-#include <SALOME_WNT.hxx>
-#else
-#define SALOME_WNT_EXPORT
-#endif
-
-using namespace std;
-
-class ServArg
- {
- public:
- int _servType;
- int _firstArg;
- int _lastArg;
- inline ServArg(int servType=0, int firstArg=0, int lastArg=0);
-};
-
-inline ServArg::ServArg(int servType, int firstArg, int lastArg):
- _servType(servType),_firstArg(firstArg),_lastArg(lastArg)
-{}
-
-class SALOME_WNT_EXPORT Session_ServerLauncher: public QThread
-{
-public:
- Session_ServerLauncher();
- Session_ServerLauncher(int argc,
- char ** argv,
- CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa,
- QMutex *GUIMutex,
- QWaitCondition *ServerLaunch,
- QWaitCondition *SessionStarted);
- virtual ~Session_ServerLauncher();
- void run();
- void KillAll();
-
-protected:
- void CheckArgs();
- void ActivateAll();
-
-private:
- int _argc;
- char ** _argv;
- CORBA::ORB_var _orb;
- PortableServer::POA_var _root_poa;
- QMutex* _GUIMutex;
- QWaitCondition *_ServerLaunch;
- QWaitCondition *_SessionStarted;
- list<ServArg> _argServToLaunch;
- vector<string> _argCopy;
- list<Session_ServerThread*> _serverThreads;
-};
-
-#endif
-
+++ /dev/null
-// SALOME Session : implementation of Session_ServerThread.hxx
-//
-// 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 : Session_ServerThread.hxx
-// Author : Paul RASCLE, EDF
-// Module : SALOME
-// $Header$
-
-#ifndef _SESSION_SERVERTHREAD_HXX_
-#define _SESSION_SERVERTHREAD_HXX_
-
-#include <CORBA.h>
-#include <string>
-
-#include "SALOME_NamingService.hxx"
-#include <qthread.h>
-
-using namespace std;
-
-void WaitForServerReadiness(string serverName);
-
-
-class Session_ServerThread
-{
-public:
- static const int NB_SRV_TYP;
- static const char* _serverTypes[];
-
- Session_ServerThread();
- Session_ServerThread(int argc,
- char ** argv,
- CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa,
- QMutex *GUIMutex);
- virtual ~Session_ServerThread();
- void Init();
-protected:
- void ActivateModuleCatalog ( int argc, char ** argv );
- void ActivateSALOMEDS ( int argc, char ** argv );
- void ActivateRegistry ( int argc, char ** argv );
- void ActivateContainer ( int argc, char ** argv );
- virtual void ActivateSession ( int argc, char ** argv );
- void ActivateEngine ( int argc, char ** argv );
- void ActivateContainerManager( int argc, char ** argv );
-protected:
- int _argc;
- char ** _argv;
- int _servType;
- CORBA::ORB_var _orb;
- PortableServer::POA_var _root_poa;
- QMutex* _GUIMutex;
- SALOME_NamingService * _NS;
-};
-
-
-class Session_SessionThread : public Session_ServerThread
-{
-public:
- Session_SessionThread() {}
- Session_SessionThread(int argc,
- char** argv,
- CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa,
- QMutex* GUIMutex,
- QWaitCondition* GUILauncher);
- virtual ~Session_SessionThread();
-
-protected:
- virtual void ActivateSession ( int argc, char ** argv );
-private:
- QWaitCondition* _GUILauncher;
-};
-
-#endif
-
+++ /dev/null
-// SALOME Session : implementation of Session.idl
-//
-// 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 : Session_Session_i.hxx
-// Author : Paul RASCLE, EDF
-// Module : SALOME
-// $Header$
-
-#ifndef _SESSION_SESSION_I_HXX_
-#define _SESSION_SESSION_I_HXX_
-
-#include <qthread.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SALOME_Component)
-#include CORBA_SERVER_HEADER(SALOME_Session)
-class SALOME_NamingService;
-
-class SALOME_Session_i: public virtual POA_SALOME::Session,
- public virtual PortableServer::RefCountServantBase
-{
-public:
- SALOME_Session_i(int argc,
- char ** argv,
- CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa,
- QMutex* GUIMutex,
- QWaitCondition* GUILauncher);
- ~SALOME_Session_i();
-
- //! Launch Graphical User Interface
- void GetInterface();
-
- //! Return VISU component
- Engines::Component_ptr GetComponent(const char* theLibraryName);
-
- //! Stop the Session (must be idle): kill servant & server
- void StopSession();
-
- //! Get session state
- SALOME::StatSession GetStatSession();
-
- //! Register the servant to Naming Service
- void NSregister();
-
- CORBA::Long GetActiveStudyId();
-
- void ping(){};
-
-protected:
-
- //! Naming service interface
- SALOME_NamingService *_NS;
-
- int _argc ;
- char **_argv;
- CORBA::Boolean _isGUI ;
- QMutex* _GUIMutex ;
- QWaitCondition* _GUILauncher;
- int _runningStudies ;
- CORBA::ORB_var _orb;
- PortableServer::POA_var _poa;
-};
-
-#endif
-
+++ /dev/null
-export SALOME_HOME_DIR=`pwd`
-export ORB_HOME_DIR=${HOME}/public/omni
-
-# OCAF
-export CSF_PluginDefaults=${SALOME_HOME_DIR}/../resources
-export CSF_ResourcesDefaults=${SALOME_HOME_DIR}/../resources
-
-export CSF_SALOMEGUIResources=${SALOME_HOME_DIR}/../SALOME/resources
-export CSF_SALOMEGUILanguage=en
-export CSF_QADResources=${SALOME_HOME_DIR}/../SALOME/resources
-export CSF_QADLanguage=en
-
-export CSF_CatalogueResources=${SALOME_HOME_DIR}/../resources
-
-export CSF_GeometryResources=${SALOME_HOME_DIR}/../GEOM/resources
-
-export CSF_MeshResources=${SALOME_HOME_DIR}/../MESH/resources
-
-export CSF_PATHComponents=${SALOME_HOME_DIR}/../lib
-
-export LD_LIBRARY_PATH=${SALOME_HOME_DIR}/../lib/:${LD_LIBRARY_PATH}
-
-runNS.sh
-geom&
-mesh&
-SALOME_Session_Server
-
+++ /dev/null
-# File : Makefile.in
-# Author : Vladimir Klyachin (OCN)
-# Module : SalomeApp
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@srcdir@/resources
-
-
-@COMMENCE@
-
-# header files
-EXPORT_HEADERS=
-
-# .po files to transform in .qm
-PO_FILES =
-
-# Libraries targets
-LIB = libSalomeStyle.la
-
-LIB_SRC= SalomeStyle.cxx
-
-LIB_MOC =
-
-LIB_CLIENT_IDL =
-
-RESOURCES_FILES =
-
-CPPFLAGS+=$(QT_INCLUDES)
-
-LDFLAGS+=$(QT_MT_LIBS)
-LIBS+=
-
-# create $(top_builddir)/src/Session/styles directory and copy libSalomeStyle.so there
-LIB_PLUGINDIR = $(top_builddir)/src/Session/styles
-LIB_PLUGINLIB = $(patsubst %.la, $(LIB_PLUGINDIR)/%.so, $(filter %.la, $(LIB)))
-
-lib: $(LIB) $(LIB_PLUGINDIR) $(LIB_PLUGINLIB)
-
-$(LIB_PLUGINDIR):
- mkdir -p $@
-
-$(LIB_PLUGINLIB): $(LIB_PLUGINDIR)/%.so: .libs/%.so
- -$(RM) $@
- ln -sf $(CURDIR)/$< $@ || true
-
-# do the same in install step
-INSTALL_PLUGINDIR = $(bindir)/styles
-INSTALL_COPYLIB = $(patsubst %.la, $(INSTALL_PLUGINDIR)/%.so, $(filter %.la, $(LIB)))
-
-install: $(INSTALL_PLUGINDIR) $(INSTALL_COPYLIB)
-
-$(INSTALL_PLUGINDIR):
- mkdir -p $@
-
-$(INSTALL_COPYLIB):
- (cd $(bindir)/styles; ln -sf $(patsubst %.la, ../../../lib/salome/%.so, $(filter %.la, $(LIB))) $@) || true
-
-@CONCLUDE@
-
+++ /dev/null
-// SALOME TOOLSGUI : implementation of desktop "Tools" optioins
-//
-// 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 : ToolsGUI.cxx
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#include "ToolsGUI.h"
-
-//=======================================================================
-// name : GetVisibility
-// Purpose : Verify whether object is visible or not
-//=======================================================================
-bool ToolsGUI::GetVisibility( _PTR(Study) theStudy,
- _PTR(SObject) theObj,
- void* theId )
-{
- _PTR(GenericAttribute) anAttr;
- if ( theObj && theObj->FindAttribute( anAttr, "AttributeGraphic" ) )
- {
- _PTR(AttributeGraphic) aGraphic (anAttr);
- return aGraphic->GetVisibility( (unsigned long)theId );
- }
-
- return false;
-}
-
-//=======================================================================
-// name : SetVisibility
-// Purpose : Set flag visibility of object
-//=======================================================================
-bool ToolsGUI::SetVisibility( _PTR(Study) theStudy,
- const char* theEntry,
- const bool theValue,
- void* theId )
-{
- _PTR(SObject) anObj ( theStudy->FindObjectID( theEntry ) );
-
- if ( anObj )
- {
- _PTR(GenericAttribute) aGAttr;
- if ( anObj->FindAttribute( aGAttr, "AttributeGraphic" ) )
- {
- _PTR(AttributeGraphic) anAttr ( aGAttr );
- anAttr->SetVisibility( (unsigned long)theId, theValue );
- }
- else if ( theValue )
- {
- _PTR(StudyBuilder) aBuilder (theStudy->NewBuilder());
- _PTR(AttributeGraphic) anAttr (aBuilder->FindOrCreateAttribute(anObj, "AttributeGraphic"));
- anAttr->SetVisibility( (unsigned long)theId, theValue );
- }
- return true;
- }
-
- return false;
-}
-
-
-
-
-
-
+++ /dev/null
-// SALOME TOOLSGUI : implementation of desktop "Tools" optioins
-//
-// 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 : ToolsGUI.h
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#ifndef ToolsGUI_HeaderFile
-#define ToolsGUI_HeaderFile
-
-#include "utilities.h"
-
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#include "SALOMEDSClient.hxx"
-
-class Standard_EXPORT ToolsGUI
-{
-public :
- static bool GetVisibility( _PTR(Study) theStudy,
- _PTR(SObject) theObj,
- void* theId );
- static bool SetVisibility( _PTR(Study) theStudy,
- const char* theEntry,
- const bool theValue,
- void* theId );
-};
-
-#endif
+++ /dev/null
-// SALOME TOOLSGUI : implementation of desktop "Tools" optioins
-//
-// 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 : ToolsGUI_CatalogGeneratorDlg.cxx
-// Author : Nicolas REJNERI
-// Modified : Marc TAJCHMAN
-// Module : SALOME
-// $Header$
-
-#include "ToolsGUI_CatalogGeneratorDlg.h"
-
-#include "SUIT_Application.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_MessageBox.h"
-#include "SUIT_Tools.h"
-#include "SUIT_Session.h"
-
-#include <stdlib.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qgroupbox.h>
-#include <qstringlist.h>
-#include <qregexp.h>
-#include <qvalidator.h>
-#include <qfile.h>
-
-#include <OSD_Process.hxx>
-#include <OSD_Path.hxx>
-#include <TCollection_AsciiString.hxx>
-#include <Standard_CString.hxx>
-
-#include "utilities.h"
-
-using namespace std;
-
-#define SPACING_SIZE 6
-#define MARGIN_SIZE 11
-#define MIN_EDIT_SIZE 250
-
-//=================================================================================
-// class : ToolsGUI_CatalogGeneratorDlg()
-// purpose : Constructor
-//=================================================================================
-ToolsGUI_CatalogGeneratorDlg::ToolsGUI_CatalogGeneratorDlg( QWidget* parent, const char* name )
- : QDialog( parent, name, TRUE, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
-{
- if ( !name )
- setName( "ToolsGUI_CatalogGeneratorDlg" );
- resize( 322, 120 );
- setCaption( tr( "TOOLS_CATALOG_GENERATOR" ) );
- setSizeGripEnabled( TRUE );
-
- QGridLayout* aTopLayout = new QGridLayout(this);
- aTopLayout->setMargin(MARGIN_SIZE);
- aTopLayout->setSpacing(SPACING_SIZE);
-
- QGroupBox* filesGrp = new QGroupBox( tr( "TOOLS_FILES") , this, "filesGrp" );
- filesGrp->setColumnLayout( 0, Qt::Vertical );
- filesGrp->layout()->setSpacing( 0 );
- filesGrp->layout()->setMargin( 0 );
- QGridLayout* filesGrpLayout = new QGridLayout( filesGrp->layout() );
- filesGrpLayout->setAlignment( Qt::AlignTop );
- filesGrpLayout->setSpacing( SPACING_SIZE );
- filesGrpLayout->setMargin( MARGIN_SIZE );
-
- myIdlEdit = new QLineEdit( filesGrp, "myIdlEdit" );
- myIdlEdit->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- myIdlEdit->setMinimumSize( MIN_EDIT_SIZE, 0 );
- myXmlEdit = new QLineEdit( filesGrp, "myXmlEdit" );
- myXmlEdit->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- myXmlEdit->setMinimumSize( MIN_EDIT_SIZE, 0 );
-
- myBrowseIdlBtn = new QPushButton( tr( "TOOLS_BUT_BROWSE" ), filesGrp, "myBrowseIdlBtn" );
- myBrowseXmlBtn = new QPushButton( tr( "TOOLS_BUT_BROWSE" ), filesGrp, "myBrowseXmlBtn" );
-// QFontMetrics fm(myBrowseIdlBtn->font());
-// myBrowseIdlBtn->setFixedWidth(fm.width(myBrowseIdlBtn->text()) + 10);
-// myBrowseXmlBtn->setFixedWidth(fm.width(myBrowseXmlBtn->text()) + 10);
-
- filesGrpLayout->addWidget( new QLabel( tr( "TOOLS_IDL_FILE" ), filesGrp ), 0, 0);
- filesGrpLayout->addWidget( myIdlEdit, 0, 1 );
- filesGrpLayout->addWidget( myBrowseIdlBtn, 0, 2 );
- filesGrpLayout->addWidget( new QLabel( tr( "TOOLS_XML_FILE" ), filesGrp ), 1, 0);
- filesGrpLayout->addWidget( myXmlEdit, 1, 1 );
- filesGrpLayout->addWidget( myBrowseXmlBtn, 1, 2 );
-
- QGroupBox* supplGrp = new QGroupBox(tr( "TOOLS_SUPPLEMENT" ) , this, "SupplGrp" );
- supplGrp->setColumnLayout( 0, Qt::Vertical );
- supplGrp->layout()->setSpacing( 0 );
- supplGrp->layout()->setMargin( 0 );
- QGridLayout* supplGrpLayout = new QGridLayout( supplGrp->layout() );
- supplGrpLayout->setAlignment( Qt::AlignTop );
- supplGrpLayout->setSpacing( SPACING_SIZE );
- supplGrpLayout->setMargin( MARGIN_SIZE );
-
- QSize myMinimumSize(int(MIN_EDIT_SIZE*0.3), 0);
-
- myAuthorEdit = new QLineEdit( supplGrp , "myAuthorEdit" );
- myAuthorEdit->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- myAuthorEdit->setMinimumSize( myMinimumSize );
-
- OSD_Process aProcess;
- myAuthorEdit->setText(aProcess.UserName().ToCString());
-
- myVersionEdit = new QLineEdit(supplGrp , "myVersion" );
- myVersionEdit->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- myVersionEdit->setMinimumSize( myMinimumSize );
- QStringList aList = QStringList::split(QRegExp("\\s+"),tr( "INF_VERSION" ));
- myVersionEdit->setText(aList.last());
-
- myPngEdit = new QLineEdit(supplGrp , "myCompIcon" );
- myPngEdit->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- myPngEdit->setMinimumSize( MIN_EDIT_SIZE, 0 );
-
- myBrowsePngBtn = new QPushButton( tr( "TOOLS_BUT_BROWSE" ), supplGrp, "myBrowsePngBtn" );
-
- myCompName = new QLineEdit(supplGrp , "myCompName");
- myCompName->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- myCompName->setMinimumSize( myMinimumSize );
-
- myCompUserName = new QLineEdit(supplGrp , "myCompUserName");
- myCompUserName->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- myCompUserName->setMinimumSize( (int)(MIN_EDIT_SIZE*0.3), 0 );
-
- myCompType = new QLineEdit(supplGrp , "myCompType");
- myCompType->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- myCompType->setMinimumSize( myMinimumSize );
- myCompType->setText("OTHER");
-
- myCompMultiStd = new QLineEdit(supplGrp , "myCompMultiStd");
- myCompMultiStd->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- myCompMultiStd->setMinimumSize( myMinimumSize );
- myCompMultiStd->setText("1");
- QIntValidator *ivalidator = new QIntValidator(myVersionEdit);
- myCompMultiStd->setValidator(ivalidator);
-
- supplGrpLayout->addWidget( new QLabel( tr( "TOOLS_AUTHOR" ), supplGrp ), 0, 0);
- supplGrpLayout->addWidget( myAuthorEdit, 0, 1 );
- supplGrpLayout->addWidget( new QLabel( tr( "TOOLS_COMP_NAME" ), supplGrp ), 0, 2);
- supplGrpLayout->addWidget(myCompName,0,3);
- supplGrpLayout->addWidget( new QLabel( tr( "TOOLS_COMP_USERNAME" ), supplGrp ), 0, 4);
- supplGrpLayout->addWidget(myCompUserName,0,5);
- supplGrpLayout->addWidget( new QLabel( tr( "TOOLS_VERSION" ), supplGrp ), 1, 0);
- supplGrpLayout->addWidget( myVersionEdit, 1, 1);
- supplGrpLayout->addWidget( new QLabel( tr( "TOOLS_COMP_MULTISTD" ), supplGrp ), 1, 2);
- supplGrpLayout->addWidget(myCompMultiStd,1,3);
- supplGrpLayout->addWidget( new QLabel( tr( "TOOLS_COMP_TYPE" ), supplGrp ), 1, 4);
- supplGrpLayout->addWidget(myCompType,1,5);
- supplGrpLayout->addWidget( new QLabel( tr( "TOOLS_PNG_FILE" ), supplGrp ), 2, 0);
- supplGrpLayout->addMultiCellWidget( myPngEdit, 2,2,1,4 );
- supplGrpLayout->addWidget( myBrowsePngBtn, 2, 5 );
-
-
- QHBoxLayout* aBtnLayout = new QHBoxLayout;
- aBtnLayout->setSpacing( SPACING_SIZE );
- aBtnLayout->setMargin( 0 );
-
- myApplyBtn = new QPushButton( tr( "TOOLS_BUT_APPLY" ), this, "myApplyBtn" );
- myApplyBtn->setAutoDefault( true );
- myApplyBtn->setDefault( true );
- myCloseBtn = new QPushButton( tr( "TOOLS_BUT_CLOSE" ), this, "myCloseBtn" );
- myCloseBtn->setAutoDefault( true );
-
- aBtnLayout->addWidget( myApplyBtn );
- aBtnLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ) );
- aBtnLayout->addWidget( myCloseBtn );
-
- aTopLayout->addWidget( filesGrp, 0, 0 );
- aTopLayout->addWidget( supplGrp, 1, 0 );
- aTopLayout->addLayout( aBtnLayout, 2, 0 );
-
- /* signals and slots connections */
- connect( myApplyBtn, SIGNAL( clicked() ), this, SLOT( onApply() ) );
- connect( myCloseBtn, SIGNAL( clicked() ), this, SLOT( reject() ) );
- connect( myBrowseIdlBtn, SIGNAL( clicked() ), this, SLOT( onBrowseBtnClicked() ) );
- connect( myBrowseXmlBtn, SIGNAL( clicked() ), this, SLOT( onBrowseBtnClicked() ) );
- connect( myBrowsePngBtn, SIGNAL( clicked() ), this, SLOT( onBrowseBtnClicked() ) );
- connect( myIdlEdit, SIGNAL( textChanged( const QString& ) ), this, SLOT( updateButtonState() ) );
- connect( myXmlEdit, SIGNAL( textChanged( const QString& ) ), this, SLOT( updateButtonState() ) );
-
- updateButtonState();
-}
-
-//=================================================================================
-// function : ~ToolsGUI_CatalogGeneratorDlg()
-// purpose : destructor
-//=================================================================================
-ToolsGUI_CatalogGeneratorDlg::~ToolsGUI_CatalogGeneratorDlg()
-{
-}
-
-//=================================================================================
-// function : getIdlFile()
-// purpose : gets IDL file name entered
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getIdlFile()
-{
- return myIdlEdit->text().stripWhiteSpace();
-}
-
-//=================================================================================
-// function : getXmlFile()
-// purpose : gets XML file name entered
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getXmlFile()
-{
- return myXmlEdit->text().stripWhiteSpace();
-}
-
-//=================================================================================
-// function : getPngFile()
-// purpose : gets PNG file name entered
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getPngFile()
-{
- return myPngEdit->text().stripWhiteSpace();
-}
-
-//=================================================================================
-// function : getAuthor()
-// purpose : gets author
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getAuthor()
-{
- return myAuthorEdit->text().stripWhiteSpace();
-}
-
-//=================================================================================
-// function : getVersion()
-// purpose : gets version number
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getVersion()
-{
- return myVersionEdit->text().stripWhiteSpace();
-}
-
-//=================================================================================
-// function : getCompName()
-// purpose : gets name of the component
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getCompName()
-{
- return myCompName->text().stripWhiteSpace();
-}
-
-//=================================================================================
-// function : getCompUserName()
-// purpose : gets username of the component
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getCompUserName()
-{
- return myCompUserName->text().stripWhiteSpace();
-}
-
-//=================================================================================
-// function : getCompType()
-// purpose : gets type of the component
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getCompMultiStd()
-{
- return myCompMultiStd->text().stripWhiteSpace();
-}
-//=================================================================================
-// function : getComptype()
-// purpose : gets type of the component
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getCompType()
-{
- return myCompType->text().stripWhiteSpace();
-}
-
-//=================================================================================
-// function : getIdlPath()
-// purpose : gets IDL path of modules
-//=================================================================================
-QString ToolsGUI_CatalogGeneratorDlg::getIdlPath()
-{
- cout << "QAD_Desktop::getCatalogue() is not implemented!!";
- if ( true )
- return QString( "" );
-/*
- SALOME_ModuleCatalog::ModuleCatalog_var aCatalog =
- SALOME_ModuleCatalog::ModuleCatalog::_narrow( QAD_Application::getDesktop()->getCatalogue() );
-
- SALOME_ModuleCatalog::ListOfIAPP_Affich_var list_composants =
- aCatalog->GetComponentIconeList();
-
- QString IDLpath = "";
-
- for (unsigned int ind = 0; ind < list_composants->length();ind++) {
- QString modulename = CORBA::string_dup(list_composants[ind].modulename) ;
-
- QCString dir;
- if (dir = getenv( modulename + "_ROOT_DIR")) {
- IDLpath = IDLpath + "-I" + SUIT_Tools::addSlash( SUIT_Tools::addSlash(dir) +
- SUIT_Tools::addSlash("idl") +
- SUIT_Tools::addSlash("salome")) + " ";
- }
- }
-
- // MESSAGE ( " IDLpath = " << IDLpath);
-
- return IDLpath;
-*/
-}
-
-//=================================================================================
-// function : onBrowseBtnClicked()
-// purpose : <...> (Browse) buttons slot
-//=================================================================================
-void ToolsGUI_CatalogGeneratorDlg::onBrowseBtnClicked()
-{
- QPushButton* send = (QPushButton*)sender();
-
- SUIT_Application* app = SUIT_Session::session()->activeApplication();
-
- if ( send == myBrowseIdlBtn ) {
- QString file = app->getFileName( true, myIdlEdit->text().stripWhiteSpace(), tr("TOOLS_MEN_IMPORT_IDL"), tr("TOOLS_MEN_IMPORT"), 0 );
- if ( !file.isEmpty() ) {
- myIdlEdit->setText(file);
- }
- }
- else if ( send == myBrowseXmlBtn ) {
- QString file = app->getFileName( false, myXmlEdit->text().stripWhiteSpace(), tr("TOOLS_MEN_EXPORT_XML"), tr("TOOLS_MEN_EXPORT"), 0 );
- if ( !file.isEmpty() ) {
- myXmlEdit->setText(file);
- }
- } else if ( send == myBrowsePngBtn ) {
- QString file = app->getFileName( true, myPngEdit->text().stripWhiteSpace(), tr("TOOLS_MEN_IMPORT_PNG"), tr("TOOLS_MEN_IMPORT"), 0 );
- if ( !file.isEmpty() ) {
- myPngEdit->setText(file);
-
- }
- }
- updateButtonState();
-}
-
-//=================================================================================
-// function : updateButtonState()
-// purpose : Updates <OK> button's state
-//=================================================================================
-void ToolsGUI_CatalogGeneratorDlg::updateButtonState()
-{
- myApplyBtn->setEnabled( !myIdlEdit->text().stripWhiteSpace().isEmpty() &&
- !myXmlEdit->text().stripWhiteSpace().isEmpty() );
-}
-
-//=================================================================================
-// function : onApply()
-// purpose : <Apply> button slot, performs IDL->XML conversion
-//=================================================================================
-void ToolsGUI_CatalogGeneratorDlg::onApply()
-{
- QString IDLpath = getIdlPath();
- QString XmlFile = getXmlFile();
- QString IdlFile = getIdlFile();
- QString Author = getAuthor();
- QString Version = getVersion();
- QString PngFile = getPngFile();
- QString CompName = getCompName(); //gets component name
- QString CompUserName = getCompUserName(); //gets component username
- QString CompType = getCompType(); //gets component type
- QString CompMultiStd = getCompMultiStd();
-
- if ( !XmlFile.isEmpty() && !IdlFile.isEmpty() ) {
- if ( !QFile::exists( IdlFile ) ) {
- SUIT_MessageBox::error1( this,
- tr("TOOLS_ERR_ERROR"),
- tr("TOOLS_ERR_FILE_NOT_EXIST").arg(IdlFile),
- tr ("TOOLS_BUT_OK") );
- }
- else {
- QString command = "";
- if ( getenv("KERNEL_ROOT_DIR") )
- command = QString( getenv( "KERNEL_ROOT_DIR" ) ) + "/bin/salome/runIDLparser -K " + IDLpath + " -Wbcatalog=" + XmlFile;
- else {
- SUIT_MessageBox::error1( this,
- tr("TOOLS_ERR_ERROR"),
- tr("KERNEL_ROOT_DIR variable is not defined"),
- tr("TOOLS_BUT_OK") );
- }
-
- if (!Author.isEmpty()) command += ",author=" + Author;
- if (!Version.isEmpty()) command += ",version=" + Version;
- if (!PngFile.isEmpty()) {
- OSD_Path aPath((Standard_CString)PngFile.latin1());
- TCollection_AsciiString aFile = aPath.Name() + aPath.Extension();
- command += QString(",icon=") + QString(aFile.ToCString());
- }
- if (!CompName.isEmpty()) command += ",name=" + CompName;
- if (!CompUserName.isEmpty()) command += ",username=" + CompUserName;
- if (!CompType.isEmpty()) command += ",type=" + CompType;
- if (!CompMultiStd.isEmpty()) command += ",multistudy=" + CompMultiStd;
- command += " " + IdlFile;
- MESSAGE( "shell command is : " << command );
- int res;
- res = system( ( char* )( command.latin1() ) );
- if ( res == -1 ) {
- MESSAGE( "work failed (system command result = " << res );
- } else if (res == 217) {
- MESSAGE( "shell exec failed (system command result = " << res );
- }
- }
- }
-}
+++ /dev/null
-// SALOME TOOLSGUI : implementation of desktop "Tools" optioins
-//
-// 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 : ToolsGUI_CatalogGeneratorDlg.h
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#ifndef DIALOGBOX_TOOLSGUI_CATALOGGENERATORDLG_H
-#define DIALOGBOX_TOOLSGUI_CATALOGGENERATORDLG_H
-
-#include <qdialog.h>
-
-#include <Standard_Macro.hxx>
-
-class QLineEdit;
-class QPushButton;
-
-//=================================================================================
-// class : ToolsGUI_CatalogGeneratorDlg
-// purpose :
-//=================================================================================
-class Standard_EXPORT ToolsGUI_CatalogGeneratorDlg : public QDialog
-{
- Q_OBJECT
-
-public:
- ToolsGUI_CatalogGeneratorDlg( QWidget* parent = 0, const char* name = 0 );
- ~ToolsGUI_CatalogGeneratorDlg();
-
- QString getIdlPath();
- QString getIdlFile();
- QString getXmlFile();
- QString getPngFile();
- QString getAuthor();
- QString getVersion();
- QString getCompName();
- QString getCompUserName();
- QString getCompType();
- QString getCompMultiStd();
-
-protected slots:
- void onBrowseBtnClicked();
- void updateButtonState();
- void onApply();
-
-private:
- QLineEdit* myIdlEdit;
- QLineEdit* myXmlEdit;
- QLineEdit* myPngEdit;
- QLineEdit* myVersionEdit;
- QLineEdit* myAuthorEdit;
- QLineEdit* myCompName;
- QLineEdit* myCompUserName;
- QLineEdit* myCompType;
- QLineEdit* myCompMultiStd;
- QPushButton* myBrowseIdlBtn;
- QPushButton* myBrowseXmlBtn;
- QPushButton* myBrowsePngBtn;
-
- QPushButton* myApplyBtn;
- QPushButton* myCloseBtn;
-};
-
-#endif // DIALOGBOX_TOOLSGUI_CATALOGGENERATORDLG_H
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// 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 : ToolsGUI_HelpWindow.cxx
-// Author : Pascale NOYRET, EDF
-// Module : SALOME
-// $Header$
-
-# include "ToolsGUI_HelpWindow.h"
-# include "utilities.h"
-
-# include <qtextview.h>
-# include <qpushbutton.h>
-# include <qtextstream.h>
-# include <qfile.h>
-
-using namespace std;
-
-ToolsGUI_HelpWindow::ToolsGUI_HelpWindow(QWidget* parent, const char* name )
- : QMainWindow( parent, name, WType_TopLevel | WDestructiveClose )
-{
- BEGIN_OF("Constructeur ToolsGUI_HelpWindow");
-
- setCaption( tr( "Help" ) );
-
- myTextView = new QTextView( this, "myTextView" );
- QPalette pal = myTextView->palette();
- QColorGroup cg = pal.active();
- cg.setColor( QColorGroup::Highlight, QColor( 0, 0, 128) );
- cg.setColor( QColorGroup::HighlightedText, Qt::white );
- cg.setColor( QColorGroup::Base, QColor( 255,255,220 ) );
- cg.setColor( QColorGroup::Text, Qt::black );
- pal.setActive ( cg );
- cg = pal.inactive();
- cg.setColor( QColorGroup::Highlight, QColor( 0, 0, 128) );
- cg.setColor( QColorGroup::HighlightedText, Qt::white );
- cg.setColor( QColorGroup::Base, QColor( 255,255,220 ) );
- cg.setColor( QColorGroup::Text, Qt::black );
- pal.setInactive( cg );
- cg = pal.disabled();
- cg.setColor( QColorGroup::Highlight, QColor( 0, 0, 128) );
- cg.setColor( QColorGroup::HighlightedText, Qt::white );
- cg.setColor( QColorGroup::Base, QColor( 255,255,220 ) );
- cg.setColor( QColorGroup::Text, Qt::black );
- pal.setDisabled( cg );
- myTextView->setPalette( pal );
-
- setCentralWidget( myTextView );
- setMinimumSize( 450, 250 );
-
- QFile f ( "tmp.txt" );
- if ( f.open( IO_ReadOnly ) )
- {
- QTextStream t( &f );
- while ( !t.eof() )
- {
- myTextView->append(t.readLine());
- }
- }
- f.close();
-
- END_OF("Constructeur ToolsGUI_HelpWindow");
-}
-
-/*!
- Destructor
-*/
-ToolsGUI_HelpWindow::~ToolsGUI_HelpWindow()
-{
- BEGIN_OF("Destructeur ToolsGUI_HelpWindow");
- END_OF("Destructeur ToolsGUI_HelpWindow");
-};
-
-/*!
- Sets text
-*/
-void ToolsGUI_HelpWindow::setText( const QString& text )
-{
- myTextView->setText( text );
-}
-
-
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// 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 : HelpWindow.hxx
-// Author : Pascale NOYRET, EDF
-// Module : SALOME
-// $Header$
-
-# ifndef __HELPWINDOW_H__
-# define __HELPWINDOW_H__
-
-# include <qapplication.h>
-# include <qmainwindow.h>
-
-class QTextView;
-
-class ToolsGUI_HelpWindow : public QMainWindow
-{
-public:
- ToolsGUI_HelpWindow( QWidget* parent = 0, const char* name = 0);
- ~ToolsGUI_HelpWindow();
-
- void setText( const QString& text );
- QTextView* textView() const { return myTextView; }
-
-private:
- QTextView* myTextView;
-};
-# endif /* __HELPWINDOW_H__ */
-
-
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : ToolsGUI_IntervalWindow.cxx
-// Author : Oksana TCHEBANOVA
-// Module : SALOME
-
-#include "ToolsGUI_IntervalWindow.h"
-
-#include <qbuttongroup.h>
-#include <qlabel.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-# include "utilities.h"
-
-#define MARGIN_SIZE 11
-#define SPACING_SIZE 6
-#define MIN_SPIN_WIDTH 100
-
-ToolsGUI_IntervalWindow::ToolsGUI_IntervalWindow ( QWidget* parent )
- : QDialog( parent, "ToolsGUI_IntervalWindow" , true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose )
-{
- BEGIN_OF("ToolsGUI_IntervalWindow constructor")
- setCaption( tr( "Refresh Interval" ) );
- setSizeGripEnabled( true );
-
- QGridLayout* topLayout = new QGridLayout( this );
- topLayout->setSpacing( SPACING_SIZE );
- topLayout->setMargin( MARGIN_SIZE );
-
- QGroupBox* intervalGrp = new QGroupBox( this, "intervalGrp" );
- intervalGrp->setColumnLayout( 0, Qt::Horizontal );//Vertical
- intervalGrp->layout()->setSpacing( 0 );
- intervalGrp->layout()->setMargin( 0 );
- QGridLayout* intervalGrpLayout = new QGridLayout( intervalGrp->layout() );
- intervalGrpLayout->setAlignment( Qt::AlignTop );
- intervalGrpLayout->setSpacing( SPACING_SIZE );
- intervalGrpLayout->setMargin( MARGIN_SIZE );
-
- QHBoxLayout* aBtnLayout = new QHBoxLayout;
- aBtnLayout->setSpacing( SPACING_SIZE );
- aBtnLayout->setMargin( 0 );
-
- myButtonOk = new QPushButton( this, "buttonOk" );
- myButtonOk->setText( tr( "BUT_OK" ) );
- myButtonOk->setAutoDefault( TRUE );
- myButtonOk->setDefault( TRUE );
-
- myButtonCancel = new QPushButton( this, "buttonCancel" );
- myButtonCancel->setText( tr( "BUT_CANCEL" ) );
- myButtonCancel->setAutoDefault( TRUE );
-
- QLabel* TextLabel = new QLabel( intervalGrp, "TextLabel" );
- TextLabel->setText( tr( "Please, enter a number of seconds:" ) );
-
- mySpinBox = new QSpinBox( 1, 999999999, 1, intervalGrp, "SpinBox" );
- mySpinBox->setValue( 100 );
- mySpinBox->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
- mySpinBox->setMinimumWidth(MIN_SPIN_WIDTH);
-
- intervalGrpLayout->addWidget(TextLabel, 0, 0);
- intervalGrpLayout->addWidget(mySpinBox, 0, 1);
-
- aBtnLayout->addWidget( myButtonOk );
- aBtnLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ) );
- aBtnLayout->addWidget( myButtonCancel );
-
- topLayout->addWidget( intervalGrp, 0, 0 );
- topLayout->addLayout( aBtnLayout, 1, 0 );
-
- END_OF("ToolsGUI_IntervalWindow constructor")
-}
-ToolsGUI_IntervalWindow::~ToolsGUI_IntervalWindow() {}
-/*
- Sets start interval size
-*/
-void ToolsGUI_IntervalWindow::setValue(const int size)
-{
- mySpinBox->setValue(size);
-}
-
-/*
- Gets interval size
-*/
-int ToolsGUI_IntervalWindow::getValue()
-{
- return mySpinBox->value();
-}
-
-/*
- gets a pointer to myButtonOk
-*/
-QPushButton* ToolsGUI_IntervalWindow::Ok()
-{
- return myButtonOk;
-}
-
-/*
- gets a pointer to myButtonCancel
-*/
-QPushButton* ToolsGUI_IntervalWindow::Cancel()
-{
- return myButtonCancel;
-}
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : IntervalWindow.hxx
-// Author : Oksana TCHEBANOVA
-// Module : SALOME
-
-#ifndef IntervalWindow_HeaderFile
-#define IntervalWindow_HeaderFile
-
-# include <qwidget.h>
-# include <qdialog.h>
-# include <qpushbutton.h>
-# include <qspinbox.h>
-
-#ifndef WNT
-using namespace std;
-#endif
-
-class ToolsGUI_IntervalWindow : public QDialog
-{
-public:
- ToolsGUI_IntervalWindow( QWidget* parent = 0 );
- ~ToolsGUI_IntervalWindow();
-
- QPushButton* Ok();
- QPushButton* Cancel();
-
- int getValue();
- void setValue( int );
-
-private:
- QSpinBox* mySpinBox;
- QPushButton* myButtonOk;
- QPushButton* myButtonCancel;
-};
-
-#endif
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// 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 : ToolsGUI_RegWidget.cxx
-// Author : Pascale NOYRET, EDF
-// Module : SALOME
-// $Header$
-
-# include <qpushbutton.h>
-# include <qlistview.h>
-# include <qtabwidget.h>
-# include <qstatusbar.h>
-# include <qtextview.h>
-# include <qtimer.h>
-# include <qinputdialog.h>
-# include <qtoolbar.h>
-# include <qdir.h>
-# include <qtooltip.h>
-
-# include "SALOME_NamingService.hxx"
-# include "ServiceUnreachable.hxx"
-# include "Utils_SINGLETON.hxx"
-# include "Utils_CommException.hxx"
-
-# include "utilities.h"
-# include "OpUtil.hxx"
-
-# include "ToolsGUI_RegWidget.h"
-# include "ToolsGUI_HelpWindow.h"
-# include "ToolsGUI_IntervalWindow.h"
-
-# include "Qtx.h"
-
-using namespace std;
-
-typedef int PIXELS;
-ToolsGUI_RegWidget* ToolsGUI_RegWidget::myRegWidgetPtr = 0;
-
-QString addSlash( const QString& );
-QString findFile( QString filename );
-
-#define BOLD( text ) ( QString( "<b>" ) + QString( text ) + QString( "</b>" ) )
-
-static const char* const time_data[] = {
-"16 16 6 1",
-". c None",
-"b c None",
-"# c #000000",
-"a c #4c4c4c",
-"d c #878787",
-"c c #ffffff",
-".....#####ab....",
-"...##cc#dc##ab..",
-"..#ccc###dcc#ab.",
-".#ccccc#dcccc#a.",
-".#ccccc#dcccc#ab",
-"#cccccc#dccccc#a",
-"#cccccc#dccc#c#a",
-"#c##ccc########a",
-"#ccddcccdddd#d#a",
-"#cccccccccccdc#a",
-".#ccccccccccc#aa",
-".#ccccc#ccccc#a.",
-"..#cccc#dccc#aa.",
-"...##cccdc##aa..",
-".....#####aaa...",
-"......aaaaa....."};
-
-static const char* const close_data[] = {
-"16 16 6 1",
-"d c None",
-". c None",
-"# c #000000",
-"a c #4c4c4c",
-"c c #5b5b5b",
-"b c #ffffff",
-".....#####a.....",
-"...##bbbbb##a...",
-"..#bbbbbbbbb#a..",
-".#b#cbbbbbb#d#a.",
-".#bc#cbbbb#cb#a.",
-"#bbbc#cbb#cbbb#a",
-"#bbbbc#c#cbbbb#a",
-"#bbbbbc#cbbbbb#a",
-"#bbbbc#c#cbbbb#a",
-"#bbb#ccbb##bbb#a",
-".#b#c#bbbbc#b#aa",
-".#bc#bbbbbb#c#a.",
-"..#bbbbbbbbb#aa.",
-"...##bbbbb##aa..",
-".....#####aaa...",
-"......aaaaa....."};
-
-static const char* const refresh_data[] = {
-"16 16 5 1",
-". c None",
-"# c #000000",
-"a c #4c4c4c",
-"c c #878787",
-"b c #ffffff",
-".....#####a.....",
-"...##bb#bb##a...",
-"..#bbbbc#bbb#a..",
-".#bbbb####cbb#a.",
-".#bbb#cc#cbbb#a.",
-"#bbb#cb#cbbbbb#a",
-"#bb#cbbbbbb#bb#a",
-"#bb#cbbbbbb#cb#a",
-"#bb#cbbbbbb#cb#a",
-"#bbbbbb#bb#cbb#a",
-".#bbbb#cb#cbb#aa",
-".#bbb####cbbb#a.",
-"..#bbb#cbbbb#aa.",
-"...##bb#cb##aa..",
-".....#####aaa...",
-"......aaaaa....."};
-
-/*!
- Creates components list
-*/
-
-Registry::Components_var MakeRegistry( CORBA::ORB_var &orb )
-{
-
- const char *registryName="Registry" ;
-
- SALOME_NamingService &naming = *SINGLETON_<SALOME_NamingService>::Instance() ;
- naming.init_orb( orb ) ;
-
- // Recuperation de la reference de l'objet
- CORBA::Object_var object = 0 ;
- try
- {
- SCRUTE(registryName) ;
- object = naming.Resolve( registryName ) ;
- if(CORBA::is_nil(object)) throw CommException( "unable to find the RegistryService" ) ;
- }
- catch( const ServiceUnreachable &ex )
- {
- MESSAGE( ex.what() )
- exit( EXIT_FAILURE ) ;
- }
- catch( const CORBA::Exception &exx )
- {
- exit( EXIT_FAILURE ) ;
- }
-
- // Specialisation de l'objet generique
-
- return Registry::Components::_narrow( object ) ;
-}
-
-/*!
- Only one global registry window should exist at the moment
- This method creates registry window if necessary and returns it
- [ static ]
-*/
-ToolsGUI_RegWidget* ToolsGUI_RegWidget::GetRegWidget( CORBA::ORB_var &orb , QWidget *parent, const char *name )
-{
- if ( !myRegWidgetPtr )
- myRegWidgetPtr = new ToolsGUI_RegWidget( orb, parent, name );
- return myRegWidgetPtr;
-}
-
-/*!
- Constructor
-*/
-ToolsGUI_RegWidget::ToolsGUI_RegWidget(CORBA::ORB_var &orb, QWidget *parent, const char *name )
- : QMainWindow( parent, name, WType_TopLevel | WDestructiveClose ),
- _VarComponents( MakeRegistry(orb) ),
- _clients(0), _history(0), _parent( parent ),
- _tabWidget(0), _refresh(0), _interval(0),
- myInfoWindow(0), myHelpWindow(0), myIntervalWindow(0)
-{
- QString aFile = findFile("default.png");
- /* char* dir = getenv( "CSF_ResourcesDefaults" );
- QString path( "" );
- if ( dir ) {
- QDir qDir( dir );
- path = qDir.filePath( "default.png" );
- }*/
- QPixmap pm ( aFile );
- if ( !pm.isNull() )
- setIcon( pm );
-
- // pixmap for buttons
- QPixmap image_refresh ( ( const char** ) refresh_data );
- QPixmap image_interval( ( const char** ) time_data );
- QPixmap image_close ( ( const char** ) close_data );
-
- // Buttons definition
- QToolBar* topbar = new QToolBar( tr("Toolbar"), this );
- setDockEnabled( topbar, DockTornOff, false );
- setDockMenuEnabled( false );
-
- _refresh = new QPushButton( tr( "Refresh" ), topbar );
- _refresh->setIconSet( image_refresh );
- _refresh->setFocusPolicy( NoFocus );
- connect( _refresh, SIGNAL( clicked() ), this, SLOT( slotListeSelect() ) );
- QToolTip::add( _refresh, "", toolTipGroup(), tr("Immediately updates list of components") );
-
- /* PAL5540 - this button is needless
- QPushButton* help = new QPushButton( tr( "Help" ), topbar );
- connect( help, SIGNAL( clicked() ), this, SLOT( slotHelp() ) );
- QToolTip::add( help, "", toolTipGroup(), tr("Opens Help window") );
- */
-
- _interval = new QPushButton( tr( "Interval" ), topbar );
- _interval->setIconSet( image_interval );
- _interval->setFocusPolicy( NoFocus );
- connect( _interval, SIGNAL( clicked() ), this, SLOT( slotSelectRefresh() ) );
- QToolTip::add( _interval, "", toolTipGroup(), tr("Changes refresh interval") );
-
- topbar->addSeparator();
- _close = new QPushButton( tr("Close"), topbar );
- _close->setIconSet( image_close );
- _close->setFocusPolicy( NoFocus );
- connect( _close, SIGNAL( clicked() ), this, SLOT( close() ) );
- QToolTip::add( _close, "", toolTipGroup(), tr("Closes Registry window") );
-
- // Display area and associated slots definition
- _tabWidget = new QTabWidget( this );
- _clients = new QListView( _tabWidget );
- SetListe();
- _history = new QListView( _tabWidget );
- SetListeHistory();
-
- _tabWidget->addTab( _clients, tr( "Running" ) );
- _tabWidget->addTab( _history, tr( "History" ) );
- connect( _tabWidget, SIGNAL( currentChanged( QWidget* )), this, SLOT( slotListeSelect() ) );
- connect( _clients, SIGNAL( clicked( QListViewItem* ) ), this, SLOT( slotClientChanged( QListViewItem* ) ) );
- connect( _history, SIGNAL( clicked( QListViewItem* ) ), this, SLOT( slotHistoryChanged( QListViewItem* ) ) );
- setCentralWidget( _tabWidget );
-
- // Timer definition (used to automaticaly refresh the display area)
- _counter = new QTimer( this );
- connect( _counter, SIGNAL( timeout() ), this, SLOT( slotListeSelect() ) );
- myRefreshInterval = 10;
- _counter->start( myRefreshInterval * 1000 );
-
- PIXELS xpos = 160 ;
- PIXELS ypos = 100 ;
- PIXELS largeur = 800 ;
- PIXELS hauteur = 350 ;
- setGeometry( xpos, ypos, largeur, hauteur ) ;
- setCaption( name ) ;
- statusBar()->message(" ");
-}
-
-/*!
- Destructor
-*/
-ToolsGUI_RegWidget::~ToolsGUI_RegWidget()
-{
- MESSAGE("Debut du Destructeur");
- _counter->stop();
- myRegWidgetPtr = 0;
-};
-
-/*!
- Event filter
-*/
-bool ToolsGUI_RegWidget::eventFilter( QObject* object, QEvent* event )
-{
- if ( object ) {
- if ( object == myHelpWindow && event->type() == QEvent::Close ) {
- myHelpWindow = 0;
- }
- else if ( object == myInfoWindow && event->type() == QEvent::Close ) {
- myInfoWindow = 0;
- }
- else if ( object == myIntervalWindow && event->type() == QEvent::Close ) {
- myIntervalWindow = 0;
- }
- else if ( object == _clients && event->type() == QEvent::KeyPress ) {
- QKeyEvent* ke = (QKeyEvent*)event;
- if ( ke->key() == Key_Enter || ke->key() == Key_Return ) {
- slotClientChanged( _clients->currentItem() );
- }
- }
- else if ( object == _history && event->type() == QEvent::KeyPress ) {
- QKeyEvent* ke = (QKeyEvent*)event;
- if ( ke->key() == Key_Enter || ke->key() == Key_Return ) {
- slotHistoryChanged( _history->currentItem() );
- }
- }
- }
- return QMainWindow::eventFilter( object, event );
-}
-
-/*!
- Searches item in the list and returns it's index or -1 if not found
-*/
-int ToolsGUI_RegWidget::numitem(const QString &name, const QString &pid, const QString &machine,const Registry::AllInfos *listclient)
-{
- BEGIN_OF("numitem");
- for (CORBA::ULong i=0; i<listclient->length(); i++)
- {
- const Registry::Infos & c_info=(*listclient)[i];
- ASSERT( c_info.name!=NULL);
- QString b;
- b.setNum(int(c_info.pid));
- if ( (name.compare(QString(c_info.name)) == 0) &&
- (machine.compare(QString(c_info.machine)) == 0) &&
- (pid.compare(b) == 0) )
- {
- END_OF("numitem");
- return i;
- }
- }
- END_OF("numitem");
- return -1;
-}
-
-/*!
- Returns text, containing information about client [ static ]
-*/
-QString ToolsGUI_RegWidget::setlongText( const Registry::Infos &c_info)
-{
- BEGIN_OF("setlongText");
- ASSERT( c_info.name != NULL );
- QString a = QString( "<hr><h2>" ) + tr( "Code" ) + QString( " : " );
- a.append( QString( c_info.name ) );
- a.append( "</h1><hr><br>" );
- a.append( tr( "Process Id" ) + QString( " : " ) );
- a.append( BOLD( QString::number( int( c_info.pid ) ) ) );
- a.append( QString( " " ) + tr( "on machine" ) + QString( " " ) );
- a.append( BOLD( c_info.machine ) );
- a.append( QString( " " ) + tr( "ip address" ) + QString( " : " ) );
- a.append( BOLD( c_info.adip ) );
- a.append( "<br>" );
-
- a.append( tr( "launched by user" ) + QString( " " ) );
- a.append( BOLD( c_info.pwname ) );
- a.append( QString( " ( " ) + tr( "pid" ) + QString( " : " ) );
- a.append( BOLD( QString::number( int( c_info.uid ) ) ) );
- a.append( QString( " )<br> " ) + tr( "in directory" ) + QString( " " ));
- a.append( BOLD( c_info.cdir ) );
-
- a.append( QString( "<br>" ) + tr( "begins" ) + QString( " " ) );
- char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
- t1 [strlen(t1) -1 ] = ' ';
- a.append( BOLD( t1 ) );
- delete [] t1;
- a.append( "<br>" );
-
- if (c_info.tc_hello != 0 )
- {
- char * t2 = (char * )duplicate(ctime(&c_info.tc_hello));
- t2 [strlen(t2) -1 ] = ' ';
- a.append( tr( "last signal" ) + QString(" : ") );
- a.append( BOLD( t2 ) );
- a.append( "<br>" );
- delete [] t2;
- }
- if ((c_info.tc_end - c_info.difftime) != 0)
- {
- char * t3 = (char * )duplicate(ctime(&c_info.tc_end));
- t3 [strlen(t3) -1 ] = ' ';
- a.append( tr( "ends" ) + QString( " " ) );
- a.append( BOLD( t3 ) );
- a.append( "<br>" );
- delete [] t3;
- }
- else
- {
- a.append( tr( "still running" ) + QString( "<br>" ) );
- }
-
- SCRUTE(c_info.difftime);
- if (c_info.difftime!= 0)
- {
- a.append( QString( "(" ) + tr( "Time on" ) + QString( " " ) );
- a.append( BOLD( c_info.machine ) );
- a.append( QString( " " ) + tr( "differs from server's time. The difference is" ) + QString( " " ));
- a.append( BOLD( QString::number( int( c_info.difftime ) ) ) );
- a.append( QString( " " ) + tr( "seconds" ) + QString( ")<br>" ) );
- }
- END_OF("setlongText");
- return a;
-
-}
-
-/*!
- Close event
-*/
-void ToolsGUI_RegWidget::closeEvent( QCloseEvent *e)
-{
- BEGIN_OF("closeEvent");
- if ( myInfoWindow )
- myInfoWindow->close();
- if ( myHelpWindow )
- myHelpWindow->close();
- if (myIntervalWindow)
- myIntervalWindow->close();
- e->accept();
- END_OF("closeEvent");
-};
-
-/*!
- Setups Clients list
-*/
-void ToolsGUI_RegWidget::SetListe()
-{
- BEGIN_OF("SetListe");
- _clients->installEventFilter( this );
- _clients->setAllColumnsShowFocus( true );
- _clients->addColumn( tr( "Component" ), -1);
- _clients->addColumn( tr( "PID" ), -1 );
- _clients->addColumn( tr( "User Name" ), -1 );
- _clients->addColumn( tr( "Machine" ), -1 );
- _clients->addColumn( tr( "begins" ), -1 );
- _clients->addColumn( tr( "hello" ) , -1 );
- _clients->setColumnAlignment( 1, Qt::AlignRight );
- END_OF("SetListe");
-}
-
-/*!
- Setups History list
-*/
-void ToolsGUI_RegWidget::SetListeHistory()
-{
- BEGIN_OF("SetListeHistory")
- _history->installEventFilter( this );
- _history->setAllColumnsShowFocus( true );
- _history->addColumn( tr( "Component" ), -1);
- _history->addColumn( tr( "PID" ), -1 );
- _history->addColumn( tr( "User Name" ), -1 );
- _history->addColumn( tr( "Machine" ), -1 );
- _history->addColumn( tr( "begins" ), -1 );
- _history->addColumn( tr( "ends" ), -1 );
- _history->setColumnAlignment( 1, Qt::AlignRight );
- END_OF("SetListeHistory")
-}
-
-/*!
- Updates History list
-*/
-void ToolsGUI_RegWidget::InfoHistory()
-{
-
- BEGIN_OF("InfoHistory")
- _history->clear();
- try
- {
- _serverhistory = _VarComponents->history();
- for (CORBA::ULong i=0; i<_serverhistory->length(); i++)
- {
- const Registry::Infos & c_info=(*_serverhistory)[i];
- ASSERT( c_info.name!=NULL);
- QString a;
- a.setNum(int(c_info.pid));
- char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
- t1 [strlen(t1) -1 ] = ' ';
- char * t2 = (char * )duplicate(ctime(&c_info.tc_end));
- t2 [strlen(t2) -1 ] = ' ';
- QListViewItem * item = new QListViewItem(_history, QString(c_info.name),\
- a, QString(c_info.pwname), QString(c_info.machine), \
- QString(t1), QString(t2));
- item=0 ;
- delete [] t1;
- delete [] t2;
-
- }
- }
- catch( ... )
- {
- _interval->setDisabled( TRUE ) ;
- _refresh->setDisabled( TRUE ) ;
- _counter->stop();
- MESSAGE("Sorry, No more Registry Server") ;
- statusBar()->message( tr( "Sorry, No more Registry Server" ) ) ;
- }
- END_OF("InfoHistory")
-}
-
-/*!
- Updates clients list
-*/
-void ToolsGUI_RegWidget::InfoReg()
-{
- BEGIN_OF("InfoReg")
- _clients->clear();
- try
- {
- _serverclients = _VarComponents->getall();
- for (CORBA::ULong i=0; i<_serverclients->length(); i++)
- {
- const Registry::Infos & c_info=(*_serverclients)[i];
- ASSERT( c_info.name!=NULL);
- QString a;
- a.setNum(int(c_info.pid));
- char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
- t1 [strlen(t1) -1 ] = ' ';
- char * t2 = (char * )duplicate(ctime(&c_info.tc_hello));
- t2 [strlen(t2) -1 ] = ' ';
- QListViewItem * item = new QListViewItem(_clients, QString(c_info.name),\
- a, QString(c_info.pwname), QString(c_info.machine), \
- QString(t1), QString(t2));
- item=0 ;
- delete [] t1;
- delete [] t2;
-
- }
- }
- catch( ... )
- {
- _interval->setDisabled( TRUE ) ;
- _refresh->setDisabled( TRUE ) ;
- _counter->stop();
- MESSAGE("Sorry, No more Registry Server") ;
- statusBar()->message( tr( "Sorry, No more Registry Server" ) ) ;
- }
- END_OF("InfoReg")
-}
-
-/*!
- Called when <Refresh> button is clicked
-*/
-void ToolsGUI_RegWidget::slotListeSelect()
-{
- try
- {
- ASSERT(_tabWidget->currentPage() != NULL);
- if (_tabWidget->currentPage () == _clients) InfoReg();
- else if (_tabWidget->currentPage () == _history) InfoHistory();
- }
- catch( ... )
- {
- MESSAGE("Sorry, No more Registry Server") ;
- statusBar()->message( tr( "Sorry, No more Registry Server" ) ) ;
- }
-}
-
-/*!
- Called when <Interval> button is clicked (changing refresh interval)
-*/
-void ToolsGUI_RegWidget::slotSelectRefresh()
-{
- BEGIN_OF("slotSelectRefresh");
- myIntervalWindow = new ToolsGUI_IntervalWindow(this);
- myIntervalWindow->installEventFilter( this );
- myIntervalWindow->setValue(myRefreshInterval);
- myIntervalWindow->show();
- connect( myIntervalWindow->Cancel(), SIGNAL( clicked() ), myIntervalWindow, SLOT( close() ) );
- connect( myIntervalWindow->Ok(), SIGNAL( clicked() ), this, SLOT( slotIntervalOk() ) );
- END_OF("slotSelectRefresh");
-}
-
-void ToolsGUI_RegWidget::slotIntervalOk()
-{
- BEGIN_OF("slotIntervalOk");
- myRefreshInterval = myIntervalWindow->getValue();
- _counter->changeInterval( myRefreshInterval * 1000 );
- SCRUTE(myRefreshInterval);
- myIntervalWindow->close();
- END_OF("slotIntervalOk");
-}
-/*!
- Called when <Help> button is clicked
-*/
-void ToolsGUI_RegWidget::slotHelp()
-{
- BEGIN_OF("slotHelp()");
-
- if ( !myHelpWindow ) {
- myHelpWindow = new ToolsGUI_HelpWindow( this );
- myHelpWindow->installEventFilter( this );
- }
- myHelpWindow->show();
- myHelpWindow->raise();
- myHelpWindow->setActiveWindow();
-
- END_OF("slotHelp()") ;
-}
-
-/*!
- Called when user clicks on item in <Running> list
-*/
-void ToolsGUI_RegWidget::slotClientChanged( QListViewItem* item )
-{
- BEGIN_OF("slotClientChanged()") ;
-
- if ( item <= 0)
- return;
-
- blockSignals( true ); // for sure that item will not be deleted when refreshing
-
- int numeroItem = numitem(item->text(0), item->text(1), item->text(3), _serverclients);
- SCRUTE(numeroItem) ;
- SCRUTE(item->text(1)) ;
-
- ASSERT(numeroItem>=0) ;
- ASSERT((size_t)numeroItem<_serverclients->length()) ;
- const Registry::Infos & c_info=(*_serverclients)[numeroItem];
- ASSERT( c_info.name!=NULL);
-
- if ( !myInfoWindow ) {
- myInfoWindow = new ToolsGUI_InfoWindow( this );
- myInfoWindow->installEventFilter( this );
- }
- QString a = tr( "More about" ) + QString( " " ) + QString( c_info.name );
- myInfoWindow->setCaption(a);
- myInfoWindow->setText( ToolsGUI_RegWidget::setlongText( c_info) );
- myInfoWindow->show();
- myInfoWindow->raise();
- myInfoWindow->setActiveWindow();
-
- blockSignals( false ); // enabling signals again
-
- END_OF("slotClientChanged()") ;
- return ;
-}
-
-/*!
- Called when user clicks on item in <History> list
-*/
-void ToolsGUI_RegWidget::slotHistoryChanged( QListViewItem* item )
-{
-
- BEGIN_OF("slotHistoryChanged()") ;
-
- if ( item <= 0)
- return;
-
- blockSignals( true ); // for sure that item will not be deleted when refreshing
-
- int numeroItem = numitem(item->text(0), item->text(1), item->text(3), _serverhistory);
-
- SCRUTE(numeroItem) ;
- SCRUTE(item->text(1)) ;
- ASSERT(numeroItem>=0) ;
- ASSERT((size_t)numeroItem<_serverhistory->length()) ;
- const Registry::Infos & c_info=(*_serverhistory)[numeroItem];
- ASSERT( c_info.name!=NULL);
-
- if ( !myInfoWindow ) {
- myInfoWindow = new ToolsGUI_InfoWindow( this );
- myInfoWindow->installEventFilter( this );
- }
- QString a = tr( "More about" ) + QString( " " ) + QString( c_info.name );
- myInfoWindow->setCaption(a);
- myInfoWindow->setText( ToolsGUI_RegWidget::setlongText( c_info ) );
- myInfoWindow->show();
- myInfoWindow->raise();
- myInfoWindow->setActiveWindow();
-
- blockSignals( false ); // enabling signals again
-
- END_OF("slotHistoryChanged()") ;
- return ;
-}
-
-/*!
- Constructor
-*/
-ToolsGUI_InfoWindow::ToolsGUI_InfoWindow( QWidget* parent, const char* name )
- : QMainWindow( parent, name, WType_TopLevel | WDestructiveClose )
-{
- BEGIN_OF("InfoWindow");
- myTextView = new QTextView( this, "myTextView" );
- setCentralWidget( myTextView );
- setMinimumSize( 450, 250 );
- END_OF("InfoWindow");
-}
-
-/*!
- Sets text
-*/
-void ToolsGUI_InfoWindow::setText( const QString& text )
-{
- myTextView->setText( text );
-}
-
-/*!
- Key press event
-*/
-void ToolsGUI_InfoWindow::keyPressEvent( QKeyEvent * e )
-{
- QMainWindow::keyPressEvent( e );
- if ( e->key() == Key_Escape )
- close();
-}
-
-static const char* SEPARATOR = ":";
-
-QString findFile( QString filename )
-{
- QString dir;
- char* cenv;
-
- // Try ${HOME}/.salome/resources directory
- cenv = getenv( "HOME" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- dir = addSlash(dir) ;
- dir = dir + ".salome" ;
- dir = addSlash(dir) ;
- dir = dir + "resources" ;
- dir = addSlash(dir) ;
- QFileInfo fileInfo( dir + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
- // Try ${SALOME_SITE_DIR}/share/salome/resources directory
- cenv = getenv( "SALOME_SITE_DIR" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- dir = addSlash(dir) ;
- dir = dir + "share" ;
- dir = addSlash(dir) ;
- cenv = getenv("SALOME_SITE_NAME");
- if (cenv) dir = dir + cenv;
- else dir = dir + "salome" ;
- dir = addSlash(dir) ;
- dir = dir + "resources" ;
- dir = addSlash(dir) ;
- QFileInfo fileInfo( dir + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
- // Try ${KERNEL_ROOT_DIR}/share/salome/resources directory
- cenv = getenv( "KERNEL_ROOT_DIR" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- dir = addSlash(dir) ;
- dir = dir + "share" ;
- dir = addSlash(dir) ;
- dir = dir + "salome" ;
- dir = addSlash(dir) ;
- dir = dir + "resources" ;
- dir = addSlash(dir) ;
- QFileInfo fileInfo( dir + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
-
- //SRN Added support for SALOMEGUI
- cenv = getenv( "SALOMEGUI_ROOT_DIR" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- dir = addSlash(dir) ;
- dir = dir + "share" ;
- dir = addSlash(dir) ;
- dir = dir + "salome" ;
- dir = addSlash(dir) ;
- dir = dir + "resources" ;
- dir = addSlash(dir) ;
- QFileInfo fileInfo( dir + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
-
- // Try CSF_SaloameResources env.var directory ( or directory list )
- cenv = getenv( "CSF_SalomeResources" );
- if ( cenv ) {
- dir.sprintf( "%s", cenv );
- if ( !dir.isEmpty() ) {
- QStringList dirList = QStringList::split( SEPARATOR, dir, false ); // skip empty entries
- for ( int i = 0; i < dirList.count(); i++ ) {
- QFileInfo fileInfo( addSlash( dirList[ i ] ) + filename );
- if ( fileInfo.isFile() && fileInfo.exists() )
- return fileInfo.filePath();
- }
- }
- }
- return filename;
-}
-QString addSlash( const QString& path )
-{
- return Qtx::addSlash( path );
-// if (!path.isNull()) {
-//#ifdef WNT
-// QChar slash ('\\');
-//#else
-// QChar slash ('/');
-//#endif
-// if ( path.at(path.length()-1) != slash )
-// return path + slash;
-// }
-// return path;
-}
+++ /dev/null
-// SALOME RegistryDisplay : GUI for Registry server implementation
-//
-// 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 : RegWidget.h
-// Author : Pascale NOYRET, EDF
-// Module : SALOME
-// $Header$
-
-# ifndef __REGWIDGET_H__
-# define __REGWIDGET_H__
-# include <qapplication.h>
-# include <qmainwindow.h>
-
-#include <SALOMEconfig.h>
-#include CORBA_CLIENT_HEADER(SALOME_Registry)
-
-class QTabWidget;
-class QListView;
-class QListViewItem;
-class QWidget;
-class QTimer;
-class QCloseEvent;
-class QTextView;
-#if QT_VERSION > 300
-class QPushButton;
-#endif
-
-#include <Standard_Macro.hxx>
-
-class ToolsGUI_HelpWindow;
-class ToolsGUI_IntervalWindow;
-
-class Standard_EXPORT ToolsGUI_InfoWindow : public QMainWindow {
-public:
- ToolsGUI_InfoWindow( QWidget* parent = 0, const char* name = 0);
-
- void setText( const QString& text );
- QTextView* textView() const { return myTextView; }
-
-protected:
- void keyPressEvent( QKeyEvent * e );
-
-private:
- QTextView* myTextView;
-};
-
-class Standard_EXPORT ToolsGUI_RegWidget : public QMainWindow
-{
-
- Q_OBJECT
-
-public:
- ToolsGUI_RegWidget( CORBA::ORB_var &orb , QWidget *parent = 0, const char *name = 0 );
- ~ToolsGUI_RegWidget();
- void SetListe();
- void SetListeHistory();
- void InfoReg();
- void InfoHistory();
-
- bool eventFilter( QObject* object, QEvent* event );
-
- static ToolsGUI_RegWidget* GetRegWidget( CORBA::ORB_var &orb , QWidget *parent = 0, const char *name = 0 );
-
-public slots:
- void slotHelp();
- void slotListeSelect();
- void slotClientChanged( QListViewItem* );
- void slotHistoryChanged( QListViewItem* );
- void slotSelectRefresh();
- void slotIntervalOk();
-protected:
- static QString setlongText( const Registry::Infos &c_info );
- int numitem( const QString& name, const QString& pid, const QString& machine, const Registry::AllInfos* c_info );
- void closeEvent( QCloseEvent *e);
-
-protected :
- QListView* _clients;
- QListView* _history;
- QWidget* _parent;
- QTabWidget* _tabWidget;
- QPushButton* _refresh;
- QPushButton* _interval;
- QPushButton* _close;
- QTimer* _counter;
- Registry::AllInfos* _serverhistory;
- Registry::AllInfos* _serverclients;
- ToolsGUI_InfoWindow* myInfoWindow;
- ToolsGUI_HelpWindow* myHelpWindow;
- ToolsGUI_IntervalWindow* myIntervalWindow;
- int myRefreshInterval;
-
-private:
- const Registry::Components_var _VarComponents;
- static ToolsGUI_RegWidget* myRegWidgetPtr;
-};
-
-# endif /* # ifndef __REGWIDGET_H__ */
-
-
-
-
-
-
-
-
-
+++ /dev/null
-# SALOME TOOLSGUI : implementation of desktop "Tools" optioins
-#
-# 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 : ToolsGUI_icons.po
-# Module : SALOME
-
-msgid ""
-msgstr ""
-"Project-Id-Version: SALOME VERSION 0.4\n"
-"POT-Creation-Date: 2002-04-25 10:04:12 PM CEST\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: Nicolas REJNERI\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-#
-#==============================================================================
-#
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:50
-msgid "ToolsGUI_CatalogGeneratorDlg::ICON_SELECT"
-msgstr "select1.png"
+++ /dev/null
-# SALOME TOOLSGUI : implementation of desktop "Tools" optioins
-#
-# 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 : ToolsGUI_msg_en.po
-# Module : SALOME
-
-msgid ""
-msgstr ""
-"Project-Id-Version: SALOME VERSION 0.4\n"
-"POT-Creation-Date: 2002-04-25 10:04:12 PM CEST\n"
-"PO-Revision-Date: YYYY-MM-DD\n"
-"Last-Translator: Nicolas REJNERI\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-#
-#==============================================================================
-#
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:58
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_FILES"
-msgstr "Files"
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:58
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_SUPPLEMENT"
-msgstr "Component supplementary data"
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:150
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_MEN_EXPORT"
-msgstr "Export"
-
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_MEN_IMPORT"
-msgstr "Import"
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:47
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_CATALOG_GENERATOR"
-msgstr "Catalog generator"
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:82
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_IDL_FILE"
-msgstr "IDL : "
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:88
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_XML_FILE"
-msgstr "XML : "
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:88
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_PNG_FILE"
-msgstr "Icon : "
-
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_AUTHOR"
-msgstr "Author : "
-
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_VERSION"
-msgstr "Version : "
-
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_COMP_NAME"
-msgstr "Name : "
-
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_COMP_USERNAME"
-msgstr "UserName : "
-
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_COMP_TYPE"
-msgstr "Type : "
-
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_COMP_MULTISTD"
-msgstr "Multistudy : "
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:153
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_MEN_EXPORT_XML"
-msgstr "XML Files ( *.xml )"
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:154
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_MEN_IMPORT_IDL"
-msgstr "IDL Files ( *.idl )"
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:154
-msgid "ToolsGUI_CatalogGeneratorDlg::TOOLS_MEN_IMPORT_PNG"
-msgstr "PNG Files ( *.png )"
-
-#
-#==============================================================================
-#
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:107
-msgid "TOOLS_BUT_CLOSE"
-msgstr "&Close"
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:113
-msgid "TOOLS_BUT_OK"
-msgstr "&Ok"
-
-msgid "TOOLS_BUT_BROWSE"
-msgstr "Browse..."
-
-msgid "TOOLS_BUT_APPLY"
-msgstr "&Apply"
-
-#
-#==============================================================================
-#
-
-#: ToolsGUI_CatalogGeneratorDlg.cxx:53
-msgid "TOOLS_WRN_WARNING"
-msgstr "Warning"
-
-msgid "TOOLS_ERR_ERROR"
-msgstr "Error"
-
-msgid "TOOLS_ERR_FILE_NOT_EXIST"
-msgstr "%1\nFile doesn't exist"
+++ /dev/null
-#ifdef WNT
-#ifdef VTKVIEWER_EXPORTS
-#define VTKVIEWER_EXPORT __declspec( dllexport )
-#else
-#define VTKVIEWER_EXPORT __declspec( dllimport )
-#endif
-#else
-#define VTKVIEWER_EXPORT
-#endif
+++ /dev/null
-#include "VTKViewer_Actor.h"
-#include "VTKViewer_Transform.h"
-#include "VTKViewer_GeometryFilter.h"
-#include "VTKViewer_TransformFilter.h"
-#include "VTKViewer_PassThroughFilter.h"
-
-// VTK Includes
-#include <vtkObjectFactory.h>
-#include <vtkDataSetMapper.h>
-#include <vtkPolyDataMapper.h>
-#include <vtkRenderer.h>
-#include <vtkMapper.h>
-#include <vtkPolyData.h>
-#include <vtkCell.h>
-
-
-/*
-static void CopyPoints(vtkUnstructuredGrid* theGrid, vtkDataSet *theSourceDataSet){
- vtkPoints *aPoints = vtkPoints::New();
- vtkIdType iEnd = theSourceDataSet->GetNumberOfPoints();
- aPoints->SetNumberOfPoints(iEnd);
- for(vtkIdType i = 0; i < iEnd; i++){
- aPoints->SetPoint(i,theSourceDataSet->GetPoint(i));
- }
- theGrid->SetPoints(aPoints);
- aPoints->Delete();
-}
-*/
-
-
-
-vtkStandardNewMacro(VTKViewer_Actor);
-
-
-/*!Constructor.Initialize default parameters.*/
-VTKViewer_Actor::VTKViewer_Actor(){
- myIsHighlighted = myIsPreselected = false;
-
- myRepresentation = 1;
- myDisplayMode = myRepresentation - 1;
-
- myProperty = vtkProperty::New();
- PreviewProperty = NULL;
-
- myIsInfinite = false;
- myIsResolveCoincidentTopology = true;
-
- vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(myPolygonOffsetFactor,
- myPolygonOffsetUnits);
- myStoreMapping = false;
- myGeomFilter = VTKViewer_GeometryFilter::New();
-
- myTransformFilter = VTKViewer_TransformFilter::New();
-
- for(int i = 0; i < 6; i++)
- myPassFilter.push_back(VTKViewer_PassThroughFilter::New());
-
- Visibility = Pickable = true;
-}
-
-
-/*!Destructor.*/
-VTKViewer_Actor::~VTKViewer_Actor(){
- SetPreviewProperty(NULL);
-
- myGeomFilter->UnRegisterAllOutputs();
- myGeomFilter->Delete();
-
- myTransformFilter->UnRegisterAllOutputs();
- myTransformFilter->Delete();
-
- for(int i = 0, iEnd = myPassFilter.size(); i < iEnd; i++){
- if(myPassFilter[i]){
- myPassFilter[i]->UnRegisterAllOutputs();
- myPassFilter[i]->Delete();
- }
- }
- myProperty->Delete();
-}
-
-/*!Add VTKViewer_Actor to renderer.
- *\param theRenderer - vtkRenderer
- */
-void VTKViewer_Actor::AddToRender(vtkRenderer* theRenderer){
- theRenderer->AddActor(this);
-}
-
-/*!Remove VTKViewer_Actor from renderer.
- *\param theRenderer - vtkRenderer
- */
-void VTKViewer_Actor::RemoveFromRender(vtkRenderer* theRenderer){
- theRenderer->RemoveActor(this);
-}
-
-/*!Add transformation to transform filter.
- *\param theTransform - transformation.
- */
-void VTKViewer_Actor::SetTransform(VTKViewer_Transform* theTransform){
- myTransformFilter->SetTransform(theTransform);
-}
-
-/*!Set mapper to pipeline.\n
- *Call method for pipeline initialization.
- *\param theMapper - mapper
- */
-void VTKViewer_Actor::SetMapper(vtkMapper* theMapper){
- InitPipeLine(theMapper);
-}
-
-/*!Initialize sequence of filters for mapper, if \a theMapper is not null.
- *\param theMapper - mapper
- */
-void VTKViewer_Actor::InitPipeLine(vtkMapper* theMapper){
- if(theMapper){
- int anId = 0;
- myPassFilter[ anId ]->SetInput( theMapper->GetInput() );
- myPassFilter[ anId + 1]->SetInput( myPassFilter[ anId ]->GetOutput() );
-
- anId++; // 1
- myGeomFilter->SetStoreMapping( myStoreMapping );
- myGeomFilter->SetInput( myPassFilter[ anId ]->GetOutput() );
-
- anId++; // 2
- myPassFilter[ anId ]->SetInput( myGeomFilter->GetOutput() );
- myPassFilter[ anId + 1 ]->SetInput( myPassFilter[ anId ]->GetOutput() );
-
- anId++; // 3
- myTransformFilter->SetInput( myPassFilter[ anId ]->GetPolyDataOutput() );
-
- anId++; // 4
- myPassFilter[ anId ]->SetInput( myTransformFilter->GetOutput() );
- myPassFilter[ anId + 1 ]->SetInput( myPassFilter[ anId ]->GetOutput() );
-
- anId++; // 5
- if(vtkDataSetMapper* aMapper = dynamic_cast<vtkDataSetMapper*>(theMapper)){
- aMapper->SetInput(myPassFilter[anId]->GetOutput());
- }else if(vtkPolyDataMapper* aMapper = dynamic_cast<vtkPolyDataMapper*>(theMapper)){
- aMapper->SetInput(myPassFilter[anId]->GetPolyDataOutput());
- }
- }
- vtkLODActor::SetMapper(theMapper);
-}
-
-/*!*/
-void VTKViewer_Actor::Render(vtkRenderer *ren, vtkMapper* m){
- if(myIsResolveCoincidentTopology){
- int aResolveCoincidentTopology = vtkMapper::GetResolveCoincidentTopology();
- float aFactor, aUnit;
- vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(aFactor,aUnit);
-
- vtkMapper::SetResolveCoincidentTopologyToPolygonOffset();
- vtkMapper::SetResolveCoincidentTopologyPolygonOffsetParameters(myPolygonOffsetFactor,
- myPolygonOffsetUnits);
- vtkLODActor::Render(ren,m);
-
- vtkMapper::SetResolveCoincidentTopologyPolygonOffsetParameters(aFactor,aUnit);
- vtkMapper::SetResolveCoincidentTopology(aResolveCoincidentTopology);
- }else{
- vtkLODActor::Render(ren,m);
- }
-}
-
-/*!Set flag myIsResolveCoincidentTopology to \a theIsResolve.
- *\param theIsResolve - bool flag.
- */
-void VTKViewer_Actor::SetResolveCoincidentTopology(bool theIsResolve) {
- myIsResolveCoincidentTopology = theIsResolve;
-}
-
-/*!Sets polygon offset factor and polygon offset units.
- *\param factor - float factor
- *\param units - float units
- */
-void VTKViewer_Actor::SetPolygonOffsetParameters(float factor, float units){
- myPolygonOffsetFactor = factor;
- myPolygonOffsetUnits = units;
-}
-
-/*!Gets polygon offset factor and polygon offset units.
- *\param factor - output float
- *\param units - output float
- */
-void VTKViewer_Actor::GetPolygonOffsetParameters(float& factor, float& units){
- factor = myPolygonOffsetFactor;
- units = myPolygonOffsetUnits;
-}
-
-
-/*!Get input data set.
- *\retval vtkDataSet pointer.
- */
-vtkDataSet* VTKViewer_Actor::GetInput(){
- return myPassFilter.front()->GetOutput();
-}
-
-/*!Get modification time.
- *\retval time - unsigned long.
- */
-unsigned long int VTKViewer_Actor::GetMTime(){
- unsigned long mTime = this->Superclass::GetMTime();
- unsigned long time = myTransformFilter->GetMTime();
- mTime = ( time > mTime ? time : mTime );
- if(vtkDataSet *aDataSet = myPassFilter[0]->GetInput()){
- time = aDataSet->GetMTime();
- mTime = ( time > mTime ? time : mTime );
- }
- return mTime;
-}
-
-/*!Set representation mode.
- *\param theMode - int.
- */
-void VTKViewer_Actor::SetRepresentation(int theMode) {
- switch(myRepresentation){
- case VTK_POINTS :
- case VTK_SURFACE :
- myProperty->DeepCopy(GetProperty());
- }
- switch(theMode){
- case VTK_POINTS :
- case VTK_SURFACE :
- GetProperty()->DeepCopy(myProperty);
- break;
- default:
- break;
- GetProperty()->SetAmbient(1.0);
- GetProperty()->SetDiffuse(0.0);
- GetProperty()->SetSpecular(0.0);
- }
- switch(theMode){
- case 3 :
- myGeomFilter->SetInside(true);
- GetProperty()->SetRepresentation(1);
- break;
- case VTK_POINTS :
- GetProperty()->SetPointSize(VTKViewer_POINT_SIZE);
- default :
- GetProperty()->SetRepresentation(theMode);
- myGeomFilter->SetInside(false);
- }
- myRepresentation = theMode;
-}
-
-/*!Get representation.
- *\retval representation mode.
- */
-int VTKViewer_Actor::GetRepresentation(){
- return myRepresentation;
-}
-
-/*!Get VTK cell by object ID.
- *\param theObjID - object ID.
- *\retval vtkCell pointer.
- */
-vtkCell* VTKViewer_Actor::GetElemCell(int theObjID){
- return GetInput()->GetCell(theObjID);
-}
-
-/*!Get node coordinates by node ID.
- *\param theObjID - node ID.
- *\retval float array of coordinates.
- * \li array[0] - X coordinate.
- * \li array[1] - Y coordinate.
- * \li array[2] - Z coordinate.
- */
-float* VTKViewer_Actor::GetNodeCoord(int theObjID){
- return GetInput()->GetPoint(theObjID);
-}
-
-
-//=================================================================================
-// function : GetObjDimension
-/*! purpose : Return object dimension.\n
- * Virtual method shoulb be redifined by derived classes
- *\param theObjId - object ID.
- */
-//=================================================================================
-int VTKViewer_Actor::GetObjDimension( const int theObjId )
-{
- if ( vtkCell* aCell = GetElemCell(theObjId) )
- return aCell->GetCellDimension();
- return 0;
-}
-
-/*!Get infinite flag*/
-bool VTKViewer_Actor::IsInfinitive(){
- return myIsInfinite;
-}
-
-/*!Set property - opacity.
- *\param theOpacity - new apacity
- */
-void VTKViewer_Actor::SetOpacity(float theOpacity){
- myOpacity = theOpacity;
- GetProperty()->SetOpacity(theOpacity);
-}
-
-/*!Get property - opacity.
- *\retval float value.
- */
-float VTKViewer_Actor::GetOpacity(){
- return myOpacity;
-}
-
-/*!Set property - color
- *\param r - float Red value
- *\param g - float Green value
- *\param b - float Blue value
- */
-void VTKViewer_Actor::SetColor(float r,float g,float b){
- GetProperty()->SetColor(r,g,b);
-}
-
-/*!Get property - color
- *\param r - output float Red value
- *\param g - output float Green value
- *\param b - output float Blue value
- */
-void VTKViewer_Actor::GetColor(float& r,float& g,float& b){
- float aColor[3];
- GetProperty()->GetColor(aColor);
- r = aColor[0];
- g = aColor[1];
- b = aColor[2];
-}
-
-/*!Get display mode.
- *\retval int value
- */
-int VTKViewer_Actor::getDisplayMode(){
- return myDisplayMode;
-}
-
-/*!Set display mode
- *\param theMode - integer value.
- */
-void VTKViewer_Actor::setDisplayMode(int theMode){
- SetRepresentation(theMode+1);
- myDisplayMode = GetRepresentation() - 1;
-}
-
+++ /dev/null
-#ifndef VTKVIEVER_ACTOR_H
-#define VTKVIEVER_ACTOR_H
-
-#include "VTKViewer.h"
-
-#include <vtkLODActor.h>
-#include <vtkProperty.h>
-#include <vtkShrinkFilter.h>
-#include <vtkDataSetMapper.h>
-#include <vtkUnstructuredGrid.h>
-
-#include <vector>
-
-class vtkCell;
-class vtkDataSet;
-class vtkPolyData;
-
-class VTKViewer_Transform;
-class VTKViewer_GeometryFilter;
-class VTKViewer_TransformFilter;
-class VTKViewer_PassThroughFilter;
-
-#define VTKViewer_POINT_SIZE 3
-/*! \class vtkLODActor
- * \brief For more information see <a href="http://www.vtk.org/">VTK documentation</a>
- */
-class VTKVIEWER_EXPORT VTKViewer_Actor : public vtkLODActor
-{
-public:
- /*!Create new instance of actor.*/
- static VTKViewer_Actor* New();
-
- vtkTypeMacro( VTKViewer_Actor, vtkLODActor );
-
- /*!Get name of the actor*/
- virtual const char* getName() { return myName.c_str(); }
- /*!Set name of the actor*/
- virtual void setName(const char* theName){ myName = theName;}
-
- //! To generate highlight automaticaly
- virtual bool hasHighlight() { return false; }
- //! Sets highlight.
- virtual void highlight(bool theHighlight) { myIsHighlighted = theHighlight; }
- //! Check highlight.
- virtual bool isHighlighted() { return myIsHighlighted; }
-
- virtual void SetOpacity(float theOpacity);
- virtual float GetOpacity();
-
- virtual void SetColor(float r,float g,float b);
- virtual void GetColor(float& r,float& g,float& b);
- void SetColor(const float theRGB[3]){ SetColor(theRGB[0],theRGB[1],theRGB[2]); }
-
- vtkSetObjectMacro(PreviewProperty,vtkProperty);
-
- virtual void SetPreSelected(bool thePreselect = false) { myIsPreselected = thePreselect;}
-
- //! Used to obtain all dependent actors
- virtual void GetChildActors(vtkActorCollection*) {};
-
- virtual void AddToRender(vtkRenderer* theRenderer);
- virtual void RemoveFromRender(vtkRenderer* theRenderer);
-
-
- /** @name For selection mapping purpose */
- //@{
- virtual int GetNodeObjId(int theVtkID) { return theVtkID;}
- virtual float* GetNodeCoord(int theObjID);
-
- virtual int GetElemObjId(int theVtkID) { return theVtkID;}
- virtual vtkCell* GetElemCell(int theObjID);
- //@}
-
- virtual int GetObjDimension( const int theObjId );
-
- virtual void SetMapper(vtkMapper* theMapper);
- virtual vtkDataSet* GetInput();
-
- virtual void SetTransform(VTKViewer_Transform* theTransform);
- virtual unsigned long int GetMTime();
-
- virtual void SetRepresentation(int theMode);
- virtual int GetRepresentation();
-
- virtual int getDisplayMode();
- virtual void setDisplayMode(int theMode);
-
- /*! Infinitive means actor without size (point for example), \n
- * which is not taken into account in calculation of boundaries of the scene
- */
- void SetInfinitive(bool theIsInfinite) { myIsInfinite = theIsInfinite; }
- virtual bool IsInfinitive();
-
- void SetResolveCoincidentTopology(bool theIsResolve);
- void SetPolygonOffsetParameters(float factor, float units);
- void GetPolygonOffsetParameters(float& factor, float& units);
-
- virtual void Render(vtkRenderer *, vtkMapper *);
-
-protected:
- /*!resolve coincedent topology flag*/
- bool myIsResolveCoincidentTopology;
- /*!polygon offset factor*/
- float myPolygonOffsetFactor;
- /*!polygon offset units*/
- float myPolygonOffsetUnits;
-
- /*!Actor name.*/
- std::string myName;
-
- /*!preview property*/
- vtkProperty *PreviewProperty;
- /*!preselected flag*/
- bool myIsPreselected;
-
- /*!opacity*/
- float myOpacity;
- /*!highlighted flag*/
- bool myIsHighlighted;
- /*!display mode*/
- int myDisplayMode;
- /*!infinite flag*/
- bool myIsInfinite;
-
- /*!store mapping flag*/
- bool myStoreMapping;
- /*!geometry filter*/
- VTKViewer_GeometryFilter *myGeomFilter;
- /*!transform filter*/
- VTKViewer_TransformFilter *myTransformFilter;
- /*!vector of passive filters(siz filters used)*/
- std::vector<VTKViewer_PassThroughFilter*> myPassFilter;
-
- /*!presentation mode*/
- int myRepresentation;
- /*!property*/
- vtkProperty *myProperty;
-
- //! Main method, which calculate output.
- void InitPipeLine(vtkMapper* theMapper);
-
- VTKViewer_Actor();
- ~VTKViewer_Actor();
-};
-
-#endif
+++ /dev/null
-// SALOME VTKViewer : build VTK viewer into Salome desktop
-//
-// 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_ViewFrame.h
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#ifndef VTKViewer_Algorithm_H
-#define VTKViewer_Algorithm_H
-
-#include <vtkActorCollection.h>
-
-class vtkActor;
-
-namespace VTK
-{
- /*!For each actor(for ex: someActor) from \a theCollection(that can be dynamic cast to type TActor)\n
- * Call method \a theFun(someActor)
- */
- template<typename TActor, typename TFunction>
- TFunction ForEach(vtkActorCollection *theCollection, TFunction theFun)
- {
- if(theCollection){
- theCollection->InitTraversal();
- while(vtkActor *anAct = theCollection->GetNextActor())
- if(TActor *anActor = dynamic_cast<TActor*>(anAct))
- theFun(anActor);
- }
- return theFun;
- }
-
- /*!For each actor(for ex: someActor) from \a theCollection(that can be dynamic cast to type TActor and \n
- * method \a thePredicate(someActor) return true) \n
- * Call method \a theFun(someActor)
- */
- template<typename TActor, typename TPredicate, typename TFunction>
- TFunction ForEachIf(vtkActorCollection *theCollection,
- TPredicate thePredicate,
- TFunction theFun)
- {
- if(theCollection){
- theCollection->InitTraversal();
- while(vtkActor *anAct = theCollection->GetNextActor())
- if(TActor *anActor = dynamic_cast<TActor*>(anAct))
- if(thePredicate(anActor))
- theFun(anActor);
- }
- return theFun;
- }
-
- /*!Find actor from collection, that can be dynamicaly cast to \a TActor, \n
- *and method \a thePredicate(someActor) return true) \n
- *\retval someActor
- */
- template<typename TActor, typename TPredicate>
- TActor* Find(vtkActorCollection *theCollection, TPredicate thePredicate)
- {
- if(theCollection){
- theCollection->InitTraversal();
- while(vtkActor *anAct = theCollection->GetNextActor())
- if(TActor *anActor = dynamic_cast<TActor*>(anAct))
- if(thePredicate(anActor))
- return anActor;
- }
- return NULL;
- }
-
-}
-
-#endif
+++ /dev/null
-#include <VTKViewer_CellRectPicker.h>
-
-#include "vtkGenericCell.h"
-#include "vtkAssemblyNode.h"
-#include "vtkAssemblyPath.h"
-#include "vtkObjectFactory.h"
-#include "vtkImageData.h"
-#include "vtkMapper.h"
-#include "vtkVolumeMapper.h"
-#include "vtkMath.h"
-#include "vtkLine.h"
-#include "vtkQuad.h"
-#include "vtkPoints.h"
-#include "vtkPlane.h"
-#include "vtkActor.h"
-
-vtkStandardNewMacro(VTKViewer_CellRectPicker);
-
-/*!Constructor.\n
- * \li create instance of generic cell
- * \li create two instances of Quad.
- */
-VTKViewer_CellRectPicker::VTKViewer_CellRectPicker()
-{
- this->Cell = vtkGenericCell::New();
- this->Quad1 = vtkQuad::New();
- this->Quad2 = vtkQuad::New();
-}
-
-/*!Destructor.
- * \li Delete generic cell
- * \li Delete two quads.
- */
-VTKViewer_CellRectPicker::~VTKViewer_CellRectPicker()
-{
- this->Cell->Delete();
- this->Quad1->Delete();
- this->Quad2->Delete();
-}
-
-/*!Clear \a ActorData and call VTKViewer_RectPicker::Initialize() method*/
-void VTKViewer_CellRectPicker::Initialize()
-{
- ActorData.clear();
- this->VTKViewer_RectPicker::Initialize();
-}
-
-/*!*/
-float VTKViewer_CellRectPicker::IntersectWithHex(float p1[4][4], float p2[4][4], float tol,
- vtkAssemblyPath *path, vtkProp3D *prop3D,
- vtkAbstractMapper3D *m)
-{
- vtkDataSet *input;
- vtkMapper *mapper;
- vtkVolumeMapper *volumeMapper;
-
- // Get the underlying dataset
- if ( (mapper=vtkMapper::SafeDownCast(m)) != NULL ) {
- input = mapper->GetInput();
- }
- else if ( (volumeMapper=vtkVolumeMapper::SafeDownCast(m)) != NULL ) {
- input = volumeMapper->GetInput();
- }
- else {
- return VTK_LARGE_FLOAT;
- }
-
- vtkIdType numCells;
- if ( (numCells = input->GetNumberOfCells()) < 1 ) {
- return 2.0;
- }
-
- int i, k, subId;
- float bounds[6], center[3], cp1[3], cp2[3];
- float pcoord[3], weight[4], dist;
- float t1[2], t2[2], x[3], t;
-
- for (k = 0; k < 4; k++) {
- this->Quad1->PointIds->SetId(k, k);
- this->Quad1->Points->SetPoint(k, p1[k]);
- this->Quad2->PointIds->SetId(k, k);
- this->Quad2->Points->SetPoint(k, p2[k]);
- }
-
- /*
- cout << "---> Selection area:" << endl;
- for (k = 0; k < 4; k++)
- cout << "\t(" << p1[k][0] << ", " << p1[k][1] << ", " << p1[k][2] << ")";
- cout << endl;
- for (k = 0; k < 4; k++)
- cout << "\t(" << p2[k][0] << ", " << p2[k][1] << ", " << p2[k][2] << ")";
- cout << endl;
- */
-
- vtkIdType cellId;
- VTKViewer_CellData cellData;
- VTKViewer_CellDataSet dataList;
-
- char inside; int n; float *point;
- float tMin = VTK_LARGE_FLOAT, xMin[3];
- for (cellId = 0; cellId < numCells; cellId++) {
- input->GetCell(cellId, this->Cell);
-
- this->Cell->GetBounds(bounds);
- for (i = 0; i < 3; i++)
- center[i] = (bounds[2*i]+bounds[2*i+1])/2;
-
- /*
- if (!VTKViewer_RectPicker::PointInside(center, p1, p2, 0.01))
- continue;
- */
-
- inside = 1;
- n = this->Cell->Points->GetNumberOfPoints();
- //cout << "---> Info cell " << cellId << " (" << n << "): " << endl;
- for (k = 0; k < n; k++) {
- point = this->Cell->Points->GetPoint(k);
- //cout << " P (" << point[0] << ", " << point[1] << ", " << point[2] << ")";
- if (!VTKViewer_RectPicker::PointInside(point, p1, p2)) {
- inside = 0; break;
- }
- }
- //cout << endl;
- if (!inside) continue;
-
- //cout << "---> Inside cell " << cellId << endl;
-
- this->Quad1->EvaluatePosition(center, 0, subId, pcoord, dist, weight);
- t1[0] = pcoord[0]; t1[1] = pcoord[1];
- this->Quad2->EvaluatePosition(center, 0, subId, pcoord, dist, weight);
- t2[0] = pcoord[0]; t2[1] = pcoord[1];
-
- pcoord[0] = (t1[0]+t2[0])/2; pcoord[1] = (t1[1]+t2[1])/2; pcoord[2] = 0;
-
- this->Quad1->EvaluateLocation(subId, pcoord, cp1, weight);
- this->Quad2->EvaluateLocation(subId, pcoord, cp2, weight);
-
- if (this->Cell->IntersectWithLine(cp1, cp2, tol, t, x, pcoord, subId)) {
- cellData.cellId = cellId;
- cellData.subId = subId;
- cellData.depth = t;
- for (i = 0; i < 3; i++) {
- cellData.p1[i] = cp1[i];
- cellData.p2[i] = cp2[i];
- }
- /*
- cout << "---> Include cell " << cellId << ", depth = " << t << endl;
- cout << " P1 = (" << cp1[0] << ", " << cp1[1] << ", " << cp1[2] << ")" << endl;
- cout << " P2 = (" << cp2[0] << ", " << cp2[1] << ", " << cp2[2] << ")" << endl;
- */
- IncludeCell(input, cellData, dataList);
- if (t < tMin) {
- tMin = t;
- for (i = 0; i < 3; i++)
- xMin[i] = x[i];
- }
- }
- }
-
- if (!dataList.empty()) {
- // compare against other actors
- IncludeActor(prop3D, input, dataList);
- if (tMin < this->GlobalTMin) {
- this->MarkPicked(path, prop3D, m, tMin, xMin);
- }
- }
-
- return tMin;
-}
-
-/*!*/
-void VTKViewer_CellRectPicker::IncludeCell(vtkDataSet* input,
- VTKViewer_CellData cellData,
- VTKViewer_CellDataSet& dataList)
-{
- vtkGenericCell* cell1 = vtkGenericCell::New();
- vtkGenericCell* cell2 = vtkGenericCell::New();
- vtkCell* sub1 = 0;
- vtkCell* sub2 = 0;
-
- input->GetCell(cellData.cellId, cell1);
- if (cell1->GetNumberOfFaces() > 0)
- sub1 = cell1->GetFace(cellData.subId);
-
- int i, result;
- float p1[3], p2[3], dir[3];
- char add = 1;
-
- VTKViewer_CellData curData;
- VTKViewer_CellDataSet::iterator it;
- for (it = dataList.begin(); it != dataList.end();) {
- curData = *it;
- for (i = 0; i < 3; i++) {
- p1[i] = (cellData.p1[i]+curData.p1[i])/2;
- p2[i] = (cellData.p2[i]+curData.p2[i])/2;
- dir[i] = p2[i] - p1[i];
- }
-
- input->GetCell(curData.cellId, cell2);
- sub2 = 0;
- if (cell2->GetNumberOfFaces() > 0)
- sub2 = cell2->GetFace(curData.subId);
-
- if (sub1) {
- if (sub2)
- result = IntersectCells(sub1, cellData.depth,
- sub2, curData.depth, dir);
- else
- result = IntersectCells(sub1, cellData.depth,
- cell2, curData.depth, dir);
- }
- else {
- if (sub2)
- result = IntersectCells(cell1, cellData.depth,
- sub2, curData.depth, dir);
- else
- result = IntersectCells(cell1, cellData.depth,
- cell2, curData.depth, dir);
- }
- /*
- cout << " Direction = (" << dir[0] << ", " << dir[1] << ", " << dir[2] << ")";
- cout << " depth = " << cellData.depth << ", " << curData.depth << ", " << result << endl;
- */
- if (result > 0) {
- if (result == 1) {
- it = dataList.erase(it);
- continue;
- }
- else {
- add = 0;
- break;
- }
- }
- ++it;
- }
- if (add) {
- //cout << " add " << endl;
- dataList.push_back(cellData);
- }
-
- cell1->Delete();
- cell2->Delete();
-}
-
-/*!*/
-void VTKViewer_CellRectPicker::IncludeActor(vtkProp3D* prop,
- vtkDataSet* input,
- VTKViewer_CellDataSet& dataList)
-{
- vtkGenericCell* cell1 = vtkGenericCell::New();
- vtkGenericCell* cell2 = vtkGenericCell::New();
-
- int i, result;
- float p1[3], p2[3], dir[3];
- char removed;
-
- VTKViewer_CellDataSet actorData;
- VTKViewer_CellData curData, cellData;
- VTKViewer_CellDataSet::iterator it1, it2;
- VTKViewer_ActorDataMap::iterator it;
-
- for (it1 = dataList.begin(); it1 != dataList.end();) {
- cellData = *it1;
- input->GetCell(cellData.cellId, cell1);
- removed = 0;
-
- for (it = ActorData.begin(); it != ActorData.end(); ++it) {
- //vtkActor* actor = (*it).first;
- actorData = (*it).second;
-
- for (it2 = actorData.begin(); it2 != actorData.end();) {
- curData = *it2;
- for (i = 0; i < 3; i++) {
- p1[i] = (cellData.p1[i]+curData.p1[i])/2;
- p2[i] = (cellData.p2[i]+curData.p2[i])/2;
- dir[i] = p2[i] - p1[i];
- }
-
- input->GetCell(curData.cellId, cell2);
- result = IntersectCells(cell1, cellData.depth,
- cell2, curData.depth, dir);
- if (result > 0) {
- if (result == 1) {
- it2 = actorData.erase(it2);
- continue;
- }
- else {
- removed = 1;
- it1 = dataList.erase(it1);
- break;
- }
- break;
- }
- ++it2;
- }
- if (removed) break;
- } // by actors
- if (!removed) ++it1;
- }
-
- if (!dataList.empty()) {
- vtkActor* actor;
- if ((actor = vtkActor::SafeDownCast(prop)) != NULL)
- ActorData[actor] = dataList;
- }
-
- cell1->Delete();
- cell2->Delete();
-}
-
-/*! The method returns a non-zero value, if the cells intersect each other
- * in the direction dir[3].
- * \param c1 - first vtkCell pointer
- * \param d1 -
- * \param c2 - second vtkCell pointer
- * \param d2 -
- * \param dir[3] - direction
- * \retval integer - Returned value is 1 if the first cell is top of
- * the second one according to direction and 2 if the second cell is top.
- */
-int VTKViewer_CellRectPicker::IntersectCells(vtkCell* c1, float d1, vtkCell* c2, float d2, float dir[3])
-{
- int i, k;
- float *orig, cp[3], bounds[6];
- vtkCell* cell = 0;
- vtkCell* tcell = 0;
-
- // define the central point and cell for projection
- if (fabs(d1-d2) < 1.e-7) return 0;
-
- if (d1 < d2) {
- orig = c1->Points->GetPoint(0);
- cell = c1;
- tcell = c2;
- c2->GetBounds(bounds);
- for (i = 0; i < 3; i++)
- cp[i] = (bounds[2*i] + bounds[2*i+1])/2;
- }
- else if (d1 > d2) {
- orig = c2->Points->GetPoint(0);
- cell = c2;
- tcell = c1;
- c1->GetBounds(bounds);
- for (i = 0; i < 3; i++)
- cp[i] = (bounds[2*i] + bounds[2*i+1])/2;
- }
-
- float proj[3];
- vtkPlane::GeneralizedProjectPoint(cp, orig, dir, proj);
-
- float *p, pp[3];
- vtkPoints* aPoints = vtkPoints::New();
- for (k = 0; k < cell->Points->GetNumberOfPoints(); k++) {
- p = cell->Points->GetPoint(k);
- vtkPlane::GeneralizedProjectPoint(p, orig, dir, pp);
- aPoints->InsertNextPoint(pp[0], pp[1], pp[2]);
- }
-
- int result = 0;
- if (PointInside(proj, aPoints)) {
- result = (d1<d2) ? 1 : 2;
- }
-
- if (result == 0) {
- // test for boundary cells
- for (k = 0; k < tcell->Points->GetNumberOfPoints(); k++) {
- p = tcell->Points->GetPoint(k);
- vtkPlane::GeneralizedProjectPoint(p, orig, dir, pp);
- if (PointInside(pp, aPoints)) {
- result = 1; break;
- }
- }
- if (result && d2<d1) result = 2;
- }
-
- aPoints->Delete();
- return result;
-}
-
-/*! Check point position.
- * \param point[3] - point
- * \param list - point data set
- * \retval 0 or 1 - The method returns a non-zero value, if the point is inlide point data set
- */
-char VTKViewer_CellRectPicker::PointInside(float point[3], vtkPoints* list)
-{
- int i, k, l, n;
- float x[3], *a1, *a2, v[3], p[3], q[3];
-
- n = list->GetNumberOfPoints();
- if (n < 3) return 0;
-
- for (k = 0; k < n; k++) {
- l = k+1; if (l == n) l = 0;
- a1 = list->GetPoint(k);
- a2 = list->GetPoint(l);
-
- // compute vectors
- for (i = 0; i < 3; i++) {
- x[i] = point[i] - a1[i];
- v[i] = a2[i]-a1[i];
- }
-
- // check if point coincides with vertex
- if (x[0]*x[0] + x[1]*x[1] + x[2]*x[2] < 1.e-7) return 0;
-
- // compute normal
- vtkMath::Cross(x, v, p);
-
- // check if point lays on edge
- if (p[0]*p[0] + p[1]*p[1] + p[2]*p[2] < 1.e-7) return 0;
-
- // check if normals are in the same direction
- if (k > 0) {
- if (vtkMath::Dot(p, q) < 0.0) return 0;
- }
-
- // remember normal direction
- for (i = 0; i < 3; i++) {
- q[i] = p[i];
- }
- }
-
- return 1;
-}
+++ /dev/null
-// SALOME VTKViewer : build VTK viewer into Salome desktop
-//
-// 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_CellRectPicker.h
-// Author : Natalia KOPNOVA
-// Module : SALOME
-
-
-#ifndef __VTKViewer_CellRectPicker_h
-#define __VTKViewer_CellRectPicker_h
-
-#include "VTKViewer_RectPicker.h"
-#include <map>
-#include <vector>
-
-/*! \brief Cell data structure*/
-typedef struct {
- vtkIdType cellId;
- int subId;
- float depth;
- float p1[3];
- float p2[3];
-} VTKViewer_CellData;
-
-typedef std::vector<VTKViewer_CellData> VTKViewer_CellDataSet;
-typedef std::map<vtkActor*, VTKViewer_CellDataSet> VTKViewer_ActorDataMap;
-
-class vtkCell;
-class vtkGenericCell;
-class vtkQuad;
-/*!Rectangular cell picker class.*/
-class VTK_EXPORT VTKViewer_CellRectPicker : public VTKViewer_RectPicker
-{
-public:
- /*!Create new instance of CellRectPicker class.*/
- static VTKViewer_CellRectPicker *New();
-
- /*! \fn vtkTypeMacro(VTKViewer_CellRectPicker,VTKViewer_RectPicker);
- * \brief VTK type macros.
- */
- vtkTypeMacro(VTKViewer_CellRectPicker,VTKViewer_RectPicker);
-
- /*! \fn VTKViewer_CellDataSet GetCellData(vtkActor* actor)
- * \brief Get the id of the picked cells.
- * \brief (Notes: use GetActors() to get picked actors list)
- * \param actor - vtkActor pointer
- */
- VTKViewer_CellDataSet GetCellData(vtkActor* actor)
- { return this->ActorData[actor]; }
-
- static int IntersectCells(vtkCell* c1, float d1, vtkCell* c2, float d2, float dir[3]);
-
- static char PointInside(float point[3], vtkPoints* list);
-
-protected:
-
- VTKViewer_CellRectPicker();
- ~VTKViewer_CellRectPicker();
-
- VTKViewer_ActorDataMap ActorData;
-
- virtual float IntersectWithHex(float p1[4][4], float p2[4][4], float tol,
- vtkAssemblyPath *path, vtkProp3D *p,
- vtkAbstractMapper3D *m);
-
- void Initialize();
-
-
- void IncludeCell(vtkDataSet* input, VTKViewer_CellData cellData, VTKViewer_CellDataSet& dalaList);
- void IncludeActor(vtkProp3D* prop, vtkDataSet* input, VTKViewer_CellDataSet& dataList);
-
-private:
- vtkGenericCell *Cell;
- vtkQuad* Quad1;
- vtkQuad* Quad2;
-};
-
-#endif
-
-
+++ /dev/null
-// 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
-//
-
-#ifndef _VTKViewer_ConvexTool_H
-#define _VTKViewer_ConvexTool_H
-
-#include <vtkUnstructuredGrid.h>
-#include <vector>
-#include <map>
-
-typedef std::vector<vtkIdType> TCell; // ptsIds
-typedef std::map<vtkIdType,TCell> TCellArray; // CellId, TCell
-
-/*! This package \namespace CONVEX_TOOL used for:
- * calculation of VTK_POLYGON cell array from VTK_TRIANGLE (triangulation)
- * of VTK_CONVEX_POINT_SET cell type.
- */
-namespace CONVEX_TOOL
-{
- /*! \fn void CONVEX_TOOL::GetPolygonalFaces(vtkUnstructuredGrid* theCell,int cellId,TCellArray &outputCellArray)
- * \brief Main function.
- * \param theCell - vtkUnstructuredGrid cell pointer
- * \param cellId - id of cell type VTK_CONVEX_POINT_SET
- * \retval outputCellArray - output array with new cells types VTK_POLYGON
- */
- void GetPolygonalFaces(vtkUnstructuredGrid* theCell,int cellId,TCellArray &outputCellArray);
-}
-
-#endif // _VTKViewer_ConvexTool_H
+++ /dev/null
-// VISU CONVERTOR :
-//
-// 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: VISU_ExtractUnstructuredGrid.cxx
-// Author: Alexey PETROV
-// Module : VISU
-
-
-#include "VTKViewer_ExtractUnstructuredGrid.h"
-//#include "utilities.h"
-
-#include <vtkUnsignedCharArray.h>
-#include <vtkUnstructuredGrid.h>
-#include <vtkObjectFactory.h>
-#include <vtkCellArray.h>
-#include <vtkIntArray.h>
-#include <vtkIdList.h>
-#include <vtkCell.h>
-
-using namespace std;
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
-#if defined __GNUC__
- #if __GNUC__ == 2
- #define __GNUC_2__
- #endif
-#endif
-
-vtkStandardNewMacro(VTKViewer_ExtractUnstructuredGrid);
-
-
-VTKViewer_ExtractUnstructuredGrid::VTKViewer_ExtractUnstructuredGrid():
- myExtractionMode(eCells), myChangeMode(ePassAll)
-{}
-
-
-VTKViewer_ExtractUnstructuredGrid::~VTKViewer_ExtractUnstructuredGrid(){}
-
-
-void VTKViewer_ExtractUnstructuredGrid::RegisterCell(vtkIdType theCellId){
-// if(0 && MYDEBUG) MESSAGE("RegisterCell - theCellId = "<<theCellId);
- myCellIds.insert(theCellId);
- Modified();
-}
-
-
-void VTKViewer_ExtractUnstructuredGrid::RegisterCellsWithType(vtkIdType theCellType){
-// if(0 && MYDEBUG) MESSAGE("RegisterCellsWithType - theCellType = "<<theCellType);
- myCellTypes.insert(theCellType);
- Modified();
-}
-
-
-void VTKViewer_ExtractUnstructuredGrid::SetStoreMapping(int theStoreMapping){
- myStoreMapping = theStoreMapping != 0;
- this->Modified();
-}
-
-vtkIdType VTKViewer_ExtractUnstructuredGrid::GetInputId(int theOutId) const{
- if(myCellIds.empty() && myCellTypes.empty()) return theOutId;
- if(myOut2InId.empty() || theOutId > myOut2InId.size()) return -1;
-#if defined __GNUC_2__
- return myOut2InId[theOutId];
-#else
- return myOut2InId.at(theOutId);
-#endif
-}
-
-vtkIdType VTKViewer_ExtractUnstructuredGrid::GetOutputId(int theInId) const{
- if(myCellIds.empty() && myCellTypes.empty()) return theInId;
- TMapId::const_iterator anIter = myIn2OutId.find(theInId);
- if(anIter == myIn2OutId.end()) return -1;
- return anIter->second;
-}
-
-
-inline void InsertCell(vtkUnstructuredGrid *theInput,
- vtkCellArray *theConnectivity,
- vtkUnsignedCharArray* theCellTypesArray,
- vtkIdType theCellId,
- vtkIdList *theIdList,
- bool theStoreMapping,
- vtkIdType theOutId,
- VTKViewer_ExtractUnstructuredGrid::TVectorId& theOut2InId,
- VTKViewer_ExtractUnstructuredGrid::TMapId& theIn2OutId)
-{
- vtkCell *aCell = theInput->GetCell(theCellId);
- vtkIdList *aPntIds = aCell->GetPointIds();
- vtkIdType aNbIds = aPntIds->GetNumberOfIds();
- theIdList->SetNumberOfIds(aNbIds);
- for(vtkIdType i = 0; i < aNbIds; i++){
- theIdList->SetId(i,aPntIds->GetId(i));
- }
- theConnectivity->InsertNextCell(theIdList);
-
- vtkIdType aCellType = aCell->GetCellType();
- theCellTypesArray->InsertNextValue(aCellType);
- if(theStoreMapping){
- theOut2InId.push_back(theCellId);
- theIn2OutId[theCellId] = theOutId;
- }
-}
-
-inline void InsertPointCell(vtkCellArray *theConnectivity,
- vtkUnsignedCharArray* theCellTypesArray,
- vtkIdType theCellId,
- vtkIdList *theIdList,
- bool theStoreMapping,
- vtkIdType theOutId,
- VTKViewer_ExtractUnstructuredGrid::TVectorId& theOut2InId,
- VTKViewer_ExtractUnstructuredGrid::TMapId& theIn2OutId)
-{
- theIdList->SetId(0,theCellId);
- theConnectivity->InsertNextCell(theIdList);
- theCellTypesArray->InsertNextValue(VTK_VERTEX);
- if(theStoreMapping){
- theOut2InId.push_back(theCellId);
- theIn2OutId[theCellId] = theOutId;
- }
-}
-
-void VTKViewer_ExtractUnstructuredGrid::Execute(){
- vtkUnstructuredGrid *anInput = this->GetInput();
- vtkUnstructuredGrid *anOutput = this->GetOutput();
- myOut2InId.clear(); myIn2OutId.clear();
-
-/* if(MYDEBUG){
- MESSAGE("Execute - anInput->GetNumberOfCells() = "<<anInput->GetNumberOfCells());
- MESSAGE("Execute - myCellTypes.size() = "<<myCellTypes.size());
- MESSAGE("Execute - myCellIds.size() = "<<myCellIds.size());
- MESSAGE("Execute - myExtractionMode = "<<myExtractionMode);
- MESSAGE("Execute - myChangeMode = "<<myChangeMode);
- }*/
- if(myExtractionMode == eCells){
- if(myChangeMode == ePassAll || myCellIds.empty() && myCellTypes.empty() && myChangeMode == eRemoving){
- if(vtkIdType aNbElems = anInput->GetNumberOfCells()){
- if(myStoreMapping) myOut2InId.reserve(aNbElems);
- anOutput->ShallowCopy(anInput);
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- if(myStoreMapping){
- myOut2InId.push_back(aCellId);
- myIn2OutId[aCellId] = anOutId;
- }
- }
- }
- }else{
- vtkIdList *anIdList = vtkIdList::New();
- vtkCellArray *aConnectivity = vtkCellArray::New();
- vtkIdType aNbElems = anInput->GetNumberOfCells();
- aConnectivity->Allocate(2*aNbElems,0);
- vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
- aCellTypesArray->SetNumberOfComponents(1);
- aCellTypesArray->Allocate(aNbElems*aCellTypesArray->GetNumberOfComponents());
- if(!myCellIds.empty() && myCellTypes.empty()){
- if(myStoreMapping) myOut2InId.reserve(myCellIds.size());
- if(myChangeMode == eAdding){
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- if(myCellIds.find(aCellId) != myCellIds.end()){
- InsertCell(anInput,aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }else{
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- if(myCellIds.find(aCellId) == myCellIds.end()){
- InsertCell(anInput,aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }
- }else if(myCellIds.empty() && !myCellTypes.empty()){
- if(myChangeMode == eAdding){
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- vtkIdType aType = anInput->GetCellType(aCellId);
- if(myCellTypes.find(aType) != myCellTypes.end()){
- InsertCell(anInput,aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }else{
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- vtkIdType aType = anInput->GetCellType(aCellId);
- if(myCellTypes.find(aType) == myCellTypes.end()){
- InsertCell(anInput,aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }
- }else if(!myCellIds.empty() && !myCellTypes.empty()){
- if(myChangeMode == eAdding){
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- vtkIdType aType = anInput->GetCellType(aCellId);
- if(myCellTypes.find(aType) != myCellTypes.end()){
- if(myCellIds.find(aCellId) != myCellIds.end()){
- InsertCell(anInput,aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }
- }else{
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- vtkIdType aType = anInput->GetCellType(aCellId);
- if(myCellTypes.find(aType) == myCellTypes.end()){
- if(myCellIds.find(aCellId) == myCellIds.end()){
- InsertCell(anInput,aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }
- }
- }
- if((aNbElems = aConnectivity->GetNumberOfCells())){
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
- aCellLocationsArray->SetNumberOfComponents(1);
- aCellLocationsArray->SetNumberOfTuples(aNbElems);
- aConnectivity->InitTraversal();
- for(vtkIdType i = 0, *pts, npts; aConnectivity->GetNextCell(npts,pts); i++){
- aCellLocationsArray->SetValue(i,aConnectivity->GetTraversalLocation(npts));
- }
- anOutput->SetCells(aCellTypesArray,aCellLocationsArray,aConnectivity);
- anOutput->SetPoints(anInput->GetPoints());
- aCellLocationsArray->Delete();
- }
- aCellTypesArray->Delete();
- aConnectivity->Delete();
- anIdList->Delete();
- }
- }else{
- vtkIdList *anIdList = vtkIdList::New();
- anIdList->SetNumberOfIds(1);
- vtkCellArray *aConnectivity = vtkCellArray::New();
- vtkIdType aNbElems = anInput->GetNumberOfPoints();
- aConnectivity->Allocate(2*aNbElems,0);
- vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
- aCellTypesArray->SetNumberOfComponents(1);
- aCellTypesArray->Allocate(aNbElems*aCellTypesArray->GetNumberOfComponents());
- if(myChangeMode == ePassAll || myCellIds.empty() && myCellTypes.empty() && myChangeMode == eRemoving){
- if(myStoreMapping) myOut2InId.reserve(aNbElems);
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- InsertPointCell(aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }else if(!myCellIds.empty() && myCellTypes.empty()){
- if(myStoreMapping) myOut2InId.reserve(myCellIds.size());
- if(myChangeMode == eAdding){
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- if(myCellIds.find(aCellId) != myCellIds.end()){
- InsertPointCell(aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }else{
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- if(myCellIds.find(aCellId) == myCellIds.end()){
- InsertPointCell(aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }
- }else if(myCellIds.empty() && !myCellTypes.empty()){
- if(myChangeMode == eAdding){
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- vtkIdType aType = anInput->GetCellType(aCellId);
- if(myCellTypes.find(aType) != myCellTypes.end()){
- InsertPointCell(aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }else{
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- vtkIdType aType = anInput->GetCellType(aCellId);
- if(myCellTypes.find(aType) == myCellTypes.end()){
- InsertPointCell(aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }
- }else if(!myCellIds.empty() && !myCellTypes.empty()){
- if(myChangeMode == eAdding){
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- vtkIdType aType = anInput->GetCellType(aCellId);
- if(myCellTypes.find(aType) != myCellTypes.end()){
- if(myCellIds.find(aCellId) != myCellIds.end()){
- InsertPointCell(aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }
- }else{
- for(vtkIdType aCellId = 0, anOutId = 0; aCellId < aNbElems; aCellId++,anOutId++){
- vtkIdType aType = anInput->GetCellType(aCellId);
- if(myCellTypes.find(aType) == myCellTypes.end()){
- if(myCellIds.find(aCellId) == myCellIds.end()){
- InsertPointCell(aConnectivity,aCellTypesArray,aCellId,anIdList,
- myStoreMapping,anOutId,myOut2InId,myIn2OutId);
- }
- }
- }
- }
- }
- if((aNbElems = aConnectivity->GetNumberOfCells())){
- vtkIntArray* aCellLocationsArray = vtkIntArray::New();
- aCellLocationsArray->SetNumberOfComponents(1);
- aCellLocationsArray->SetNumberOfTuples(aNbElems);
- aConnectivity->InitTraversal();
- for(vtkIdType i = 0, *pts, npts; aConnectivity->GetNextCell(npts,pts); i++){
- aCellLocationsArray->SetValue(i,aConnectivity->GetTraversalLocation(npts));
- }
- anOutput->SetCells(aCellTypesArray,aCellLocationsArray,aConnectivity);
- anOutput->SetPoints(anInput->GetPoints());
- aCellLocationsArray->Delete();
- }
- aCellTypesArray->Delete();
- aConnectivity->Delete();
- anIdList->Delete();
- }
-/* if(MYDEBUG){
- MESSAGE("Execute - anOutput->GetNumberOfCells() = "<<anOutput->GetNumberOfCells());
- if(myStoreMapping){
- MESSAGE("Execute - myOut2InId.size() = "<<myOut2InId.size());
- MESSAGE("Execute - myIn2OutId.size() = "<<myIn2OutId.size());
- }
- }*/
-}
+++ /dev/null
-#ifndef VTKVIEWER_EXTRACTUNSTRUCTUREDGRID_H
-#define VTKVIEWER_EXTRACTUNSTRUCTUREDGRID_H
-
-#include "VTKViewer.h"
-
-#include <vtkUnstructuredGridToUnstructuredGridFilter.h>
-
-#include <set>
-#include <map>
-#include <vector>
-/*! \class vtkUnstructuredGridToUnstructuredGridFilter
- * \brief For more information see <a href="http://www.vtk.org/">VTK documentation</a>
- */
-/*! \class vtkUnstructuredGridToUnstructuredGridFilter
- * \brief For more information see VTK documentation.
- */
-class VTKVIEWER_EXPORT VTKViewer_ExtractUnstructuredGrid : public vtkUnstructuredGridToUnstructuredGridFilter
-{
-public:
- //! VTK type macros.
- vtkTypeMacro( VTKViewer_ExtractUnstructuredGrid, vtkUnstructuredGridToUnstructuredGridFilter );
-
- //! \brief Construct with all types of clipping turned off.
- static VTKViewer_ExtractUnstructuredGrid *New();
-
- enum EExtraction{ eCells, ePoints};
- //! Sets mode of extraction to \a theExtractionMode
- void SetModeOfExtraction(EExtraction theExtractionMode){
- myExtractionMode = theExtractionMode; Modified();
- }
- //! Get Extraction mode (Return: \a myExtractionMode field)
- EExtraction GetModeOfExtraction(){ return myExtractionMode;}
-
- enum EChanging{ ePassAll, eAdding, eRemoving};
- //! Sets mode of changing to \a theChangeMode
- void SetModeOfChanging(EChanging theChangeMode){
- myChangeMode = theChangeMode;
- Modified();
- }
- //! Return \a myChangeMode field
- EChanging GetModeOfChanging(){ return myChangeMode;}
-
- //! Add cell id to \a myCellIds std::set
- void RegisterCell(vtkIdType theCellId);
- //! Check if myCellIds is empty.
- int IsCellsRegistered() { return !myCellIds.empty();}
- //! Remove the cell from the output
- void ClearRegisteredCells() {
- myCellIds.clear();
- Modified();
- }
-
- //! Add cell type to \a myCellTypes std::set
- void RegisterCellsWithType(vtkIdType theCellType);
- //! Check if myCellTypes is empty.
- int IsCellsWithTypeRegistered() { return !myCellTypes.empty();}
- //! Remove every cells with the type from the output
- void ClearRegisteredCellsWithType() {
- myCellTypes.clear();
- Modified();
- }
-
- //! \brief Do the filter do some real work
- int IsChanging() { return IsCellsRegistered() || IsCellsWithTypeRegistered();}
-
- //! \brief Do it keep the mapping between input's and output's UnstructuredGrid
- void SetStoreMapping(int theStoreMapping);
- //! Get \a myStoreMapping
- int GetStoreMapping(){ return myStoreMapping;}
-
- //! Gets the input id by output id.
- vtkIdType GetInputId(int theOutId) const;
- //! Gets the output id by input id.
- vtkIdType GetOutputId(int theInId) const;
-
- typedef std::vector<vtkIdType> TVectorId;
- typedef std::map<vtkIdType,vtkIdType> TMapId;
-
-protected:
- VTKViewer_ExtractUnstructuredGrid();
- ~VTKViewer_ExtractUnstructuredGrid();
-
- //! Main method, which calculate output
- void Execute();
-
- EExtraction myExtractionMode;
-
- EChanging myChangeMode;
- typedef std::set<vtkIdType> TSetId;
- TSetId myCellIds;
- TSetId myCellTypes;
-
- bool myStoreMapping;
- TVectorId myOut2InId;
- TMapId myIn2OutId;
-
-private:
- //! Not implemented.
- VTKViewer_ExtractUnstructuredGrid(const VTKViewer_ExtractUnstructuredGrid&);
- //! Not implemented.
- void operator=(const VTKViewer_ExtractUnstructuredGrid&);
-};
-
-#endif
+++ /dev/null
-// VTKViewer_Filter : Filter for VTK viewer
-//
-// 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_Filter.cxx
-// Author : Sergey LITONIN
-// Module : SALOME
-
-#include "VTKViewer_Filter.h"
-using namespace std;
-
-IMPLEMENT_STANDARD_HANDLE(VTKViewer_Filter, MMgt_TShared)
-IMPLEMENT_STANDARD_RTTIEXT(VTKViewer_Filter, MMgt_TShared)
-
-/*!
- * \class VTKViewer_Filter
- * Description : Base class of filters of for <a href="http://www.vtk.org/">VTK</a> viewer. Method IsValid \n
- * should be redefined in derived classes
- */
-
-/*!Constructor.*/
-VTKViewer_Filter::VTKViewer_Filter()
-{
- myActor = 0;
-}
-
-/*!Virtual Destructor.*/
-VTKViewer_Filter::~VTKViewer_Filter()
-{
-}
-
-/*!Check correctness of \a theCellId for actor \a theActor by
- * call virtual method IsValid( const int theId ).
- * \param theActor - actor
- * \param theCellId - cell id.
- * \retval TRUE - if cell id is valid, else false.
- */
-bool VTKViewer_Filter::IsValid( VTKViewer_Actor* theActor, const int theCellId )
-{
- SetActor( theActor );
- return IsValid( theCellId );
-}
-
-/*!Virtual method.Set actor to \a theActor.
- * \param theActor - actor.
- */
-void VTKViewer_Filter::SetActor( VTKViewer_Actor* theActor )
-{
- myActor = theActor;
-}
+++ /dev/null
-// SMESHGUI_Filter : Filter for VTK viewer
-//
-// 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_Filter.h
-// Author : Sergey LITONIN
-// Module : SALOME
-
-#ifndef VTKViewer_Filter_HeaderFile
-#define VTKViewer_Filter_HeaderFile
-
-#include "VTKViewer.h"
-
-#include <MMgt_TShared.hxx>
-#include <Standard_DefineHandle.hxx>
-
-class VTKViewer_Actor;
-
-DEFINE_STANDARD_HANDLE(VTKViewer_Filter, MMgt_TShared);
-
-/*
- Class : VTKViewer_Filter
- Description : Base class of filters of for <a href="http://www.vtk.org/">VTK</a> viewer. Method IsValid
- should be redefined in derived classes
-*/
-
-class VTKViewer_Filter : public MMgt_TShared
-{
-
-public:
- VTKVIEWER_EXPORT VTKViewer_Filter();
- VTKVIEWER_EXPORT virtual ~VTKViewer_Filter();
-
- VTKVIEWER_EXPORT bool IsValid( VTKViewer_Actor*, const int theId );
- VTKVIEWER_EXPORT virtual bool IsValid( const int theId ) const = 0;
- VTKVIEWER_EXPORT virtual int GetId() const = 0;
- VTKVIEWER_EXPORT virtual bool IsNodeFilter() const = 0;
-
- VTKVIEWER_EXPORT virtual void SetActor( VTKViewer_Actor* );
-
-protected:
- VTKViewer_Actor* myActor;
-
-public:
- DEFINE_STANDARD_RTTI(VTKViewer_Filter)
-};
-
-#endif
+++ /dev/null
-// SALOME VTKViewer : build VTK viewer into Salome desktop
-//
-// 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_ViewFrame.h
-// Author : Nicolas REJNERI
-// Module : SALOME
-// $Header$
-
-#ifndef VTKViewer_Functor_H
-#define VTKViewer_Functor_H
-
-#include <functional>
-
-#include <string>
-
-namespace VTK
-{
- template<class TActor, class TArg, class TStoreArg = TArg> struct TSetFunction
- {
- typedef void (TActor::* TAction)(TArg);
- TAction myAction;
- TStoreArg myArg;
- TSetFunction(TAction theAction, TArg theArg) : myAction(theAction), myArg(theArg)
- {}
- void operator()(TActor* theActor)
- {
- (theActor->*myAction)(myArg);
- }
- };
-
- template<class TActor, class TArg = int> struct TSetVisibility: TSetFunction<TActor,TArg>
- {
- TSetVisibility(TArg theArg):
- TSetFunction<TActor,TArg>(&TActor::SetVisibility,theArg)
- {}
- };
-}
-
-#endif
+++ /dev/null
-#ifndef VTKVIEWER_GEOMETRYFILTER_H
-#define VTKVIEWER_GEOMETRYFILTER_H
-
-#include "VTKViewer.h"
-
-#include <vtkGeometryFilter.h>
-
-#include <vector>
-/*! \brief This class used same as vtkGeometryFilter. See documentation on VTK for more information.
- */
-class VTKVIEWER_EXPORT VTKViewer_GeometryFilter : public vtkGeometryFilter
-{
-public:
- /*! \fn static VTKViewer_GeometryFilter *New()
- */
- static VTKViewer_GeometryFilter *New();
-
- /*! \fn vtkTypeRevisionMacro(VTKViewer_GeometryFilter, vtkGeometryFilter)
- * \brief VTK type revision macros.
- */
- vtkTypeRevisionMacro(VTKViewer_GeometryFilter, vtkGeometryFilter);
- /*! \fn void SetInside(int theShowInside)
- * \brief Sets \a myShowInside flag. \a myShowInside is changed, call this->Modified().
- * \param theShowInside - used for changing value of \a myShowInside variable.
- */
- void SetInside(int theShowInside);
- /*! \fn int GetInside()
- * \brief Return value of \a myShowInside
- * \retval myShowInside
- */
- int GetInside();
- /*! \fn void SetStoreMapping(int theStoreMapping);
- * \brief Sets \a myStoreMapping flag and call this->Modified()
- * \param theStoreMapping - used for changing value of \a myStoreMapping variable.
- */
- void SetStoreMapping(int theStoreMapping);
- /*! \fn int GetStoreMapping()
- * \brief Return value of \a myStoreMapping
- * \retval myStoreMapping
- */
- int GetStoreMapping(){ return myStoreMapping;}
- /*! \fn virtual vtkIdType GetNodeObjId(int theVtkID)
- * \brief Return input value theVtkID
- * \retval theVtkID
- */
- virtual vtkIdType GetNodeObjId(int theVtkID) { return theVtkID;}
- /*! \fn virtual vtkIdType GetElemObjId(int theVtkID);
- * \brief Return object ID by VTK ID cell
- * \retval myVTK2ObjIds[theVtkID]
- */
- virtual vtkIdType GetElemObjId(int theVtkID);
-
-protected:
- /*! \fn VTKViewer_GeometryFilter();
- * \brief Constructor which sets \a myShowInside = 0 and \a myStoreMapping = 0
- */
- VTKViewer_GeometryFilter();
- /*! \fn ~VTKViewer_GeometryFilter();
- * \brief Destructor.
- */
- ~VTKViewer_GeometryFilter();
- /*! \fn void Execute();
- * \brief Filter culculation method.
- */
- void Execute();
- /*! \fn void UnstructuredGridExecute();
- * \brief Filter culculation method for data object type is VTK_UNSTRUCTURED_GRID.
- */
- void UnstructuredGridExecute();
-
-private:
- typedef std::vector<vtkIdType> TVectorId;
-
-private:
- TVectorId myVTK2ObjIds;
- int myShowInside;
- int myStoreMapping;
-};
-
-#endif
+++ /dev/null
-// SALOME VTKViewer : build VTK viewer into Salome desktop
-//
-// 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_InteractorStyle.h
-// Author : Christophe ATTANASIO
-// Module : SALOME
-
-#ifndef __VTKViewer_InteractorStyle_h
-#define __VTKViewer_InteractorStyle_h
-
-#include <vtkInteractorStyle.h>
-
-class vtkCell;
-class vtkRenderWindowInteractor;
-
-#include <qobject.h>
-#include <qcursor.h>
-
-#include <map>
-
-#include "VTKViewer.h"
-
-#include "VTKViewer_Filter.h"
-
-class VTKViewer_Actor;
-class VTKViewer_Trihedron;
-class VTKViewer_ViewWindow;
-class VTKViewer_RenderWindowInteractor;
-
-#define VTK_INTERACTOR_STYLE_CAMERA_NONE 0
-#define VTK_INTERACTOR_STYLE_CAMERA_ROTATE 1
-#define VTK_INTERACTOR_STYLE_CAMERA_PAN 2
-#define VTK_INTERACTOR_STYLE_CAMERA_ZOOM 3
-#define VTK_INTERACTOR_STYLE_CAMERA_SPIN 4
-#define VTK_INTERACTOR_STYLE_CAMERA_FIT 5
-#define VTK_INTERACTOR_STYLE_CAMERA_SELECT 6
-#define VTK_INTERACTOR_STYLE_CAMERA_GLOBAL_PAN 7
-
-/*! Description:\n
- * This class must be supplied with a vtkRenderWindowInteractor wrapper or\n
- * parent. This class should not normally be instantiated by application\n
- * programmers.
- */
-class VTKVIEWER_EXPORT VTKViewer_InteractorStyle : public QObject, public vtkInteractorStyle
-{
- public:
- static VTKViewer_InteractorStyle *New();
- vtkTypeMacro(VTKViewer_InteractorStyle, vtkInteractorStyle);
-
- virtual void SetInteractor(vtkRenderWindowInteractor *theInteractor);
- void setViewWnd(VTKViewer_ViewWindow* theViewWnd);
- void setGUIWindow(QWidget* theWindow);
-
- void setTriedron(VTKViewer_Trihedron* theTrihedron);
- void setPreselectionProp(const double& theRed = 0, const double& theGreen = 1,
- const double& theBlue = 1, const int& theWidth = 5);
-
- // Generic event bindings must be overridden in subclasses
- void OnMouseMove (int ctrl, int shift, int x, int y);
- void OnLeftButtonDown(int ctrl, int shift, int x, int y);
- void OnLeftButtonUp (int ctrl, int shift, int x, int y);
- void OnMiddleButtonDown(int ctrl, int shift, int x, int y);
- void OnMiddleButtonUp (int ctrl, int shift, int x, int y);
- void OnRightButtonDown(int ctrl, int shift, int x, int y);
- void OnRightButtonUp (int ctrl, int shift, int x, int y);
-
- void OnSelectionModeChanged();
-
- void ViewFitAll();
-
- void SetFilter( const Handle( VTKViewer_Filter)& );
- Handle(VTKViewer_Filter) GetFilter( const int );
- bool IsFilterPresent( const int );
- void RemoveFilter( const int );
- bool IsValid( VTKViewer_Actor* theActor,
- const int theId,
- const bool theIsNode = false );
-
- void IncrementalPan ( const int incrX, const int incrY );
- void IncrementalZoom ( const int incr );
- void IncrementalRotate( const int incrX, const int incrY );
-
- int CurrentState() const { return State; }
-
- protected:
- VTKViewer_InteractorStyle();
- ~VTKViewer_InteractorStyle();
- VTKViewer_InteractorStyle(const VTKViewer_InteractorStyle&) {};
- void operator=(const VTKViewer_InteractorStyle&) {};
-
- void RotateXY(int dx, int dy);
- void PanXY(int x, int y, int oldX, int oldY);
- void DollyXY(int dx, int dy);
- void SpinXY(int dx, int dy, int oldX, int oldY);
- void fitRect(const int left, const int top, const int right, const int bottom);
- void Place(const int theX, const int theY);
- void TranslateView(int toX, int toY, int fromX, int fromY);
- bool IsInRect(vtkActor* theActor,
- const int left, const int top,
- const int right, const int bottom);
- bool IsInRect(vtkCell* theCell,
- const int left, const int top,
- const int right, const int bottom);
- bool IsInRect(float* thePoint,
- const int left, const int top,
- const int right, const int bottom);
-
- int State;
- float MotionFactor;
- float RadianToDegree; // constant: for conv from deg to rad
- double myScale;
-
- VTKViewer_Actor *myPreViewActor, *myPreSelectionActor, *mySelectedActor;
-
- int myElemId;
- int myEdgeId;
- int myNodeId;
-
- public:
- bool eventFilter(QObject* object, QEvent* event);
- void startZoom();
- void startPan();
- void startGlobalPan();
- void startRotate();
- void startFitArea();
- void startSpin();
- bool needsRedrawing();
-
- protected:
- void loadCursors();
- void startOperation(int operation);
- virtual void onStartOperation();
- virtual void onFinishOperation();
- virtual void onOperation(QPoint mousePos);
- virtual void onCursorMove(QPoint mousePos);
- virtual void setCursor(const int operation);
-
-
- protected:
- QCursor myDefCursor;
- QCursor myPanCursor;
- QCursor myZoomCursor;
- QCursor myRotateCursor;
- QCursor mySpinCursor;
- QCursor myHandCursor;
- QCursor myGlobalPanCursor;
- QPoint myPoint;
- QPoint myOtherPoint;
- bool myCursorState;
- bool myShiftState;
- int ForcedState;
-
- VTKViewer_RenderWindowInteractor* m_Interactor;
- VTKViewer_ViewWindow* m_ViewWnd;
- VTKViewer_Trihedron* m_Trihedron;
- QWidget* myGUIWindow;
-
- std::map<int, Handle(VTKViewer_Filter) > myFilters;
-
- /** @name members from old version*/
- //@{
- double DeltaElevation;
- double DeltaAzimuth;
- int LastPos[2];
- //@}
-};
-
-#endif
+++ /dev/null
-// SALOME FILTER : interactive object for VISU entities implementation
-//
-// 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_PassThroughFilter.cxx
-// Author : Laurent CORNABE with help of Nicolas REJNERI
-// Module : SALOME
-
-
-#include "VTKViewer_PassThroughFilter.h"
-
-#include <vtkCellData.h>
-#include <vtkDataSet.h>
-#include <vtkObjectFactory.h>
-#include <vtkPointData.h>
-
-vtkCxxRevisionMacro(VTKViewer_PassThroughFilter, "$Revision$");
-vtkStandardNewMacro(VTKViewer_PassThroughFilter);
-
-/*! \class VTKViewer_PassThroughFilter
- * Passive filter take a dataset as input and create a dataset as output.\n
- * The form of the input geometry is not changed in these filters, \n
- * only the point attributes (e.g. scalars, vectors, etc.).
- */
-
-/*!Execute method.Output calculation.*/
-void VTKViewer_PassThroughFilter::Execute()
-{
- vtkDataSet *input = static_cast<vtkDataSet*>(this->GetInput());
- vtkDataSet *output = static_cast<vtkDataSet*>(this->GetOutput());
-
- // This has to be here because it initialized all field datas.
- output->CopyStructure( input );
-
- //! Pass all. (data object's field data is passed by the
- //! superclass after this method)
- output->GetPointData()->PassData( input->GetPointData() );
- output->GetCellData()->PassData( input->GetCellData() );
-
-}
-
-/*!Methods invoked by print to print information about the object including superclasses.\n
- * Typically not called by the user (use Print() instead) but used in the hierarchical \n
- * print process to combine the output of several classes.
- *\param os - output stream.
- */
-void VTKViewer_PassThroughFilter::PrintSelf(ostream& os, vtkIndent indent)
-{
- this->Superclass::PrintSelf(os,indent);
-}
+++ /dev/null
-#ifndef VTKVIEWER_PASSTHROUGHFILTER_H
-#define VTKVIEWER_PASSTHROUGHFILTER_H
-
-#include "VTKViewer.h"
-
-#include <vtkDataSetToDataSetFilter.h>
-
-class VTKVIEWER_EXPORT VTKViewer_PassThroughFilter : public vtkDataSetToDataSetFilter
-{
-public:
- vtkTypeRevisionMacro( VTKViewer_PassThroughFilter, vtkDataSetToDataSetFilter );
- void PrintSelf( ostream& os, vtkIndent indent );
-
- /*!Create a new VTKViewer_PassThroughFilter.*/
- static VTKViewer_PassThroughFilter *New();
-
-protected:
- VTKViewer_PassThroughFilter() {};//!< Null body.
- virtual ~VTKViewer_PassThroughFilter() {};//!< Null body.
-
- void Execute();
-
-private:
- VTKViewer_PassThroughFilter( const VTKViewer_PassThroughFilter& ); //!< Not implemented.
- void operator=( const VTKViewer_PassThroughFilter& ); //!< Not implemented.
-};
-
-#endif
+++ /dev/null
-// SALOME VTKViewer : build VTK viewer into Salome desktop
-//
-// 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_RectPicker.cxx
-// Author : Natalia KOPNOVA
-// Module : SALOME
-
-#include <VTKViewer_RectPicker.h>
-
-#include "vtkActor.h"
-#include "vtkAssemblyNode.h"
-#include "vtkAssemblyPath.h"
-#include "vtkCamera.h"
-#include "vtkCommand.h"
-#include "vtkImageData.h"
-#include "vtkLODProp3D.h"
-#include "vtkMapper.h"
-#include "vtkMath.h"
-#include "vtkObjectFactory.h"
-#include "vtkPoints.h"
-#include "vtkProp3DCollection.h"
-#include "vtkProperty.h"
-#include "vtkRenderWindow.h"
-#include "vtkRenderer.h"
-#include "vtkTransform.h"
-#include "vtkVertex.h"
-#include "vtkVolume.h"
-#include "vtkVolumeMapper.h"
-
-using namespace std;
-
-//----------------------------------------------------------------------------
-vtkStandardNewMacro(VTKViewer_RectPicker);
-
-//----------------------------------------------------------------------------
-/*!Constructor. Do nothing*/
-VTKViewer_RectPicker::VTKViewer_RectPicker()
-{
-}
-
-//----------------------------------------------------------------------------
-/*!Perform pick operation with selection rectangle provided. Normally the
- * first two values for the selection top-left and right-bottom points are
- * x-y pixel coordinate, and the third value is =0.
- * \retval Return non-zero if something was successfully picked.
- */
-int VTKViewer_RectPicker::Pick(float selectionX1, float selectionY1, float selectionZ1,
- float selectionX2, float selectionY2, float selectionZ2,
- vtkRenderer *renderer)
-{
- int k, i;
- vtkProp *prop;
- vtkCamera *camera;
- vtkAbstractMapper3D *mapper = NULL;
- float p1World[4][4], p2World[4][4], p1Mapper[4][4], p2Mapper[4][4];
- float c1[3], c2[3];
- int picked=0;
- int *winSize;
- float x, y, t, p;
- float *viewport;
- float cameraPos[4], cameraFP[4];
- float *displayCoords, *worldCoords;
- float pickPosition[4][3];
- double *clipRange;
- float ray[4][3], rayLength[4];
- int pickable;
- int LODId;
- float windowLowerLeft[4], windowUpperRight[4];
- float bounds[6], tol;
- float tF, tB;
- float hitPosition[3];
- float cameraDOP[3];
-
- // Initialize picking process
- this->Initialize();
- this->Renderer = renderer;
-
- /* Selection point is not defined for the rectangle
- this->SelectionPoint[0] =
- this->SelectionPoint[1] =
- this->SelectionPoint[2] =
- */
-
- // Invoke start pick method if defined
- this->InvokeEvent(vtkCommand::StartPickEvent,NULL);
-
- if ( renderer == NULL )
- {
- vtkErrorMacro(<<"Must specify renderer!");
- return 0;
- }
-
- // Get camera focal point and position. Convert to display (screen)
- // coordinates. We need a depth value for z-buffer.
- //
- camera = renderer->GetActiveCamera();
- camera->GetPosition((float *)cameraPos); cameraPos[3] = 1.0;
- camera->GetFocalPoint((float *)cameraFP); cameraFP[3] = 1.0;
-
- renderer->SetWorldPoint(cameraFP);
- renderer->WorldToDisplay();
- displayCoords = renderer->GetDisplayPoint();
- selectionZ1 = selectionZ2 = displayCoords[2];
-
- // Convert the selection rectangle into world coordinates.
- //
- renderer->SetDisplayPoint(selectionX1, selectionY1, selectionZ1);
- renderer->DisplayToWorld();
- worldCoords = renderer->GetWorldPoint();
- if ( worldCoords[3] == 0.0 )
- {
- vtkErrorMacro(<<"Bad homogeneous coordinates");
- return 0;
- }
- for (i=0; i < 3; i++)
- {
- pickPosition[0][i] = worldCoords[i] / worldCoords[3];
- }
-
- renderer->SetDisplayPoint(selectionX1, selectionY2, (selectionZ1+selectionZ2)/2);
- renderer->DisplayToWorld();
- worldCoords = renderer->GetWorldPoint();
- if ( worldCoords[3] == 0.0 )
- {
- vtkErrorMacro(<<"Bad homogeneous coordinates");
- return 0;
- }
- for (i=0; i < 3; i++)
- {
- pickPosition[1][i] = worldCoords[i] / worldCoords[3];
- }
-
- renderer->SetDisplayPoint(selectionX2, selectionY2, selectionZ2);
- renderer->DisplayToWorld();
- worldCoords = renderer->GetWorldPoint();
- if ( worldCoords[3] == 0.0 )
- {
- vtkErrorMacro(<<"Bad homogeneous coordinates");
- return 0;
- }
- for (i=0; i < 3; i++)
- {
- pickPosition[2][i] = worldCoords[i] / worldCoords[3];
- }
-
- renderer->SetDisplayPoint(selectionX2, selectionY1, (selectionZ1+selectionZ2)/2);
- renderer->DisplayToWorld();
- worldCoords = renderer->GetWorldPoint();
- if ( worldCoords[3] == 0.0 )
- {
- vtkErrorMacro(<<"Bad homogeneous coordinates");
- return 0;
- }
- for (i=0; i < 3; i++)
- {
- pickPosition[3][i] = worldCoords[i] / worldCoords[3];
- }
-
- // Compute the ray endpoints. The ray is along the line running from
- // the camera position to the selection point, starting where this line
- // intersects the front clipping plane, and terminating where this
- // line intersects the back clipping plane.
- for (k=0; k < 4; k++) {
- for (i=0; i<3; i++)
- {
- ray[k][i] = pickPosition[k][i] - cameraPos[i];
- }
- }
- for (i=0; i<3; i++)
- {
- cameraDOP[i] = cameraFP[i] - cameraPos[i];
- }
-
- vtkMath::Normalize(cameraDOP);
-
- for (k=0; k < 4; k++) {
- if (( rayLength[k] = vtkMath::Dot(cameraDOP,ray[k])) == 0.0 )
- {
- vtkWarningMacro("Cannot process points");
- return 0;
- }
- }
-
- clipRange = camera->GetClippingRange();
-
- if ( camera->GetParallelProjection() )
- {
- for (k=0; k < 4; k++) {
- tF = clipRange[0] - rayLength[k];
- tB = clipRange[1] - rayLength[k];
- for (i=0; i<3; i++)
- {
- p1World[k][i] = pickPosition[k][i] + tF*cameraDOP[i];
- p2World[k][i] = pickPosition[k][i] + tB*cameraDOP[i];
- }
- p1World[k][3] = p2World[k][3] = 1.0;
- }
- }
- else
- {
- for (k=0; k < 4; k++) {
- tF = clipRange[0] / rayLength[k];
- tB = clipRange[1] / rayLength[k];
- for (i=0; i<3; i++)
- {
- p1World[k][i] = cameraPos[i] + tF*ray[k][i];
- p2World[k][i] = cameraPos[i] + tB*ray[k][i];
- }
- p1World[k][3] = p2World[k][3] = 1.0;
- }
- }
-
- // Compute the center points of ray rectangle
- for (i=0; i<3; i++) {
- c1[i] = c2[i] = 0;
- for (k=0; k<4; k++) {
- c1[i] += p1World[k][i];
- c2[i] += p2World[k][i];
- }
- c1[i] = c1[i]/4;
- c2[i] = c2[i]/4;
- }
-
- // Compute the tolerance in world coordinates. Do this by
- // determining the world coordinates of the diagonal points of the
- // window, computing the width of the window in world coordinates, and
- // multiplying by the tolerance.
- //
- viewport = renderer->GetViewport();
- winSize = renderer->GetRenderWindow()->GetSize();
- x = winSize[0] * viewport[0];
- y = winSize[1] * viewport[1];
- renderer->SetDisplayPoint(x, y, selectionZ1);
- renderer->DisplayToWorld();
- renderer->GetWorldPoint(windowLowerLeft);
-
- x = winSize[0] * viewport[2];
- y = winSize[1] * viewport[3];
- renderer->SetDisplayPoint(x, y, selectionZ2);
- renderer->DisplayToWorld();
- renderer->GetWorldPoint(windowUpperRight);
-
- for (tol=0.0,i=0; i<3; i++)
- {
- tol += (windowUpperRight[i] - windowLowerLeft[i]) *
- (windowUpperRight[i] - windowLowerLeft[i]);
- }
-
- tol = sqrt (tol) * this->Tolerance;
-
- // Loop over all props. Transform ray (defined from position of
- // camera to selection point) into coordinates of mapper (not
- // transformed to actors coordinates! Reduces overall computation!!!).
- // Note that only vtkProp3D's can be picked by vtkPicker.
- //
- vtkPropCollection *props;
- vtkProp *propCandidate;
- if ( this->PickFromList )
- {
- props = this->GetPickList();
- }
- else
- {
- props = renderer->GetProps();
- }
-
- vtkActor *actor;
- vtkLODProp3D *prop3D;
- vtkVolume *volume;
- vtkAssemblyPath *path;
- vtkProperty *tempProperty;
- this->Transform->PostMultiply();
- for ( props->InitTraversal(); (prop=props->GetNextProp()); )
- {
- for ( prop->InitPathTraversal(); (path=prop->GetNextPath()); )
- {
- pickable = 0;
- actor = NULL;
- propCandidate = path->GetLastNode()->GetProp();
- if ( propCandidate->GetPickable() && propCandidate->GetVisibility() )
- {
- pickable = 1;
- if ( (actor=vtkActor::SafeDownCast(propCandidate)) != NULL )
- {
- mapper = actor->GetMapper();
- if ( actor->GetProperty()->GetOpacity() <= 0.0 )
- {
- pickable = 0;
- }
- }
- else if ( (prop3D=vtkLODProp3D::SafeDownCast(propCandidate)) != NULL )
- {
- LODId = prop3D->GetPickLODID();
- mapper = prop3D->GetLODMapper(LODId);
-
- // if the mapper is a vtkMapper (as opposed to a vtkVolumeMapper),
- // then check the transparency to see if the object is pickable
- if ( vtkMapper::SafeDownCast(mapper) != NULL)
- {
- prop3D->GetLODProperty(LODId, &tempProperty);
- if ( tempProperty->GetOpacity() <= 0.0 )
- {
- pickable = 0;
- }
- }
- }
- else if ( (volume=vtkVolume::SafeDownCast(propCandidate)) != NULL )
- {
- mapper = volume->GetMapper();
- }
- else
- {
- pickable = 0; //only vtkProp3D's (actors and volumes) can be picked
- }
- }
- // If actor can be picked, get its composite matrix, invert it, and
- // use the inverted matrix to transform the ray points into mapper
- // coordinates.
- if ( pickable && mapper != NULL )
- {
- vtkMatrix4x4 *LastMatrix = path->GetLastNode()->GetMatrix();
- if (LastMatrix == NULL)
- {
- vtkErrorMacro (<< "Pick: Null matrix.");
- return 0;
- }
- this->Transform->SetMatrix(LastMatrix);
- this->Transform->Push();
- this->Transform->Inverse();
-
- for (k=0; k < 4; k++) {
- this->Transform->TransformPoint(p1World[k],p1Mapper[k]);
- this->Transform->TransformPoint(p2World[k],p2Mapper[k]);
-
- for (i=0; i<3; i++)
- {
- ray[k][i] = p2Mapper[k][i] - p1Mapper[k][i];
- }
- }
-
- this->Transform->Pop();
-
- // Have the ray endpoints in mapper space, now need to compare this
- // with the mapper bounds to see whether intersection is possible.
- //
- // Get the bounding box of the modeller. Note that the tolerance is
- // added to the bounding box to make sure things on the edge of the
- // bounding box are picked correctly.
- mapper->GetBounds(bounds);
- bounds[0] -= tol; bounds[1] += tol;
- bounds[2] -= tol; bounds[3] += tol;
- bounds[4] -= tol; bounds[5] += tol;
- if ( HitBBox(bounds, p1Mapper, ray) ) {
- t = this->IntersectWithHex(p1Mapper, p2Mapper, tol, path,
- (vtkProp3D *)propCandidate, mapper);
- if ( t >= 0.0 && t <= 1.0 /*t < VTK_LARGE_FLOAT*/ ) {
- picked = 1;
- this->Prop3Ds->AddItem((vtkProp3D *)prop);
- this->PickedPositions->InsertNextPoint
- ((1.0 - t)*c1[0] + t*c2[0],
- (1.0 - t)*c1[1] + t*c2[1],
- (1.0 - t)*c1[2] + t*c2[2]);
-
- // backwards compatibility: also add to this->Actors
- if (actor) {
- this->Actors->AddItem(actor);
- }
- }
- }
-
- }//if visible and pickable not transparent and has mapper
- }//for all parts
- }//for all actors
-
- // Invoke end pick method if defined
- this->InvokeEvent(vtkCommand::EndPickEvent,NULL);
-
- return picked;
-}
-
-#define SIDE_LEFT 0
-#define SIDE_RIGHT 1
-#define SIDE_MIDDLE 2
-
-float GetParameterValue(float start, float end, float point)
-{
- if (start == end) return -VTK_LARGE_FLOAT;
- return (point-start)/(end-start);
-}
-
-void GetPointCoord(const float start[3], const float end[3], float t, float point[3])
-{
- int i;
- for (i = 0; i < 3; i++) {
- point[i] = start[i] + t*(end[i]-start[i]);
- }
-}
-
-char GetIntersectionPoint(const float start[3], const float end[3],
- const int& index, const float p, float point[3])
-{
- float t = GetParameterValue(start[index], end[index], p);
- char result = 0;
- if (t >= 0.0 && t <= 1.0) {
- result = 1;
- GetPointCoord(start, end, t, point);
- }
- return result;
-}
-
-//----------------------------------------------------------------------------
-/*! Bounding box intersection with hexahedron. Origin[4][4] starts the ray from corner points,
- * dir[4][3] is the vector components of the ray in the x-y-z directions.
- * (Notes: the intersection ray dir[4][3] is NOT normalized.)
- * \retval The method returns a non-zero value, if the bounding box is hit.
- */
-char VTKViewer_RectPicker::HitBBox (float bounds[6], float origin[4][4], float dir[4][3])
-{
- int i, j, k, n;
- float endray[4][3];
-
- for (k = 0; k < 4; k++) {
- for (i = 0; i < 3; i++) {
- endray[k][i] = origin[k][i] + dir[k][i];
- }
- }
-
- // Compute hex bounding box, center point and center direction
- float hbounds[6], center[3], ray[3];
- for (i = 0; i < 3; i++) {
- hbounds[2*i] = hbounds[2*i+1] = origin[0][i];
- center[i] = ray[i] = 0;
- for (k = 0; k < 4; k++) {
- center[i] += origin[k][i];
- ray[i] += endray[k][i];
- if (origin[k][i] < hbounds[2*i]) {
- hbounds[2*i] = origin[k][i];
- }
- else if (origin[k][i] > hbounds[2*i+1])
- hbounds[2*i+1] = origin[k][i];
- if (endray[k][i] < hbounds[2*i])
- hbounds[2*i] = endray[k][i];
- else if (endray[k][i] > hbounds[2*i+1])
- hbounds[2*i+1] = endray[k][i];
- }
- center[i] = center[i]/4;
- ray[i] = ray[i]/4;
- ray[i] = ray[i] - center[i];
- }
-
- // Check for intersection between bouning boxes
- for (i = 0; i < 3; i++) {
- if (bounds[2*i+1] < hbounds[2*i] || bounds[2*i] > hbounds[2*i+1])
- return 0;
- }
-
- // Check if one of the origin point lays inside bbox
- char inside;
- for (k = 0; k < 4; k++) {
- inside = 1;
- for (i = 0; i < 3; i++) {
- if (origin[k][i] < bounds[2*i] || origin[k][i] > bounds[2*i+1]) {
- inside = 0;
- break;
- }
- }
- if (inside) return 1;
- }
-
- // Find the closest coord plane for the center point
- char side[3];
- float coordPlane[3];
- inside = 1;
- for (i = 0; i < 3; i++) {
- if (center[i] < bounds[2*i]) {
- inside = 0;
- coordPlane[i] = bounds[2*i];
- side[i] = SIDE_LEFT;
- }
- else if (center[i] > bounds[2*i+1]) {
- inside = 0;
- coordPlane[i] = bounds[2*i+1];
- side[i] = SIDE_RIGHT;
- }
- else {
- coordPlane[i] = (ray[i]<0.0) ? bounds[2*i] : bounds[2*i+1];
- side[i] = SIDE_MIDDLE;
- }
- }
- if (inside) return 1;
-
- // Calculate parametric distances to the planes and find the max
- float maxT[3];
- int whichPlane = 0;
- char defined = 0;
- for (i = 0; i < 3; i++) {
- if (side[i] != SIDE_MIDDLE && ray[i] != 0.0) {
- maxT[i] = (coordPlane[i]-center[i])/ray[i];
- defined = 1;
- }
- else
- maxT[i] = -1.0;
- }
- for (i = 0; i < 3; i++) {
- if (maxT[whichPlane] < maxT[i])
- whichPlane = i;
- }
-
- // Check for intersection along the center ray
- float coord;
- if (maxT[whichPlane] <= 1.0 && maxT[whichPlane] >= 0.0) {
- inside = 1;
- for (i = 0; i < 3; i++) {
- if (i != whichPlane) {
- coord = center[i] + maxT[whichPlane]*ray[i];
- if (coord < bounds[2*i] || coord > bounds[2*i+1])
- inside = 0;
- }
- }
- if (inside) return 1;
- }
-
- // Define the intersection plane
- if (!defined) {
- for (i = 0; i < 3; i++) {
- if (ray[i] != 0.0) {
- maxT[i] = (coordPlane[i]-center[i])/ray[i];
- }
- else
- maxT[i] = VTK_LARGE_FLOAT;
- }
- for (i = 0; i < 3; i++) {
- if (maxT[whichPlane] > maxT[i])
- whichPlane = i;
- }
- }
-
- // Compute the intersection between hex and coord plane
- float t[4];
- for (k = 0; k < 4; k++) {
- if (dir[k][whichPlane] != 0.0) {
- t[k] = (coordPlane[whichPlane]-origin[k][whichPlane])/dir[k][whichPlane];
- }
- else {
- t[k] = VTK_LARGE_FLOAT;
- }
- }
-
- vtkPoints* aPoints = vtkPoints::New();
- float p[3], q[3], t1;
- for (k = 0; k < 4; k++) {
- n = (k+1)%4; // next point
- if (t[k] > 1.0) {
- if (t[n] < 1.0) {
- // find intersection point
- t1 = GetParameterValue(endray[k][whichPlane], endray[n][whichPlane], coordPlane[whichPlane]);
- if (t1 > 0.0 && t1 < 1.0) {
- GetPointCoord(endray[k], endray[n], t1, p);
- aPoints->InsertNextPoint(p[0], p[1], p[2]);
- }
- }
- if (t[n] < 0.0) {
- // find second intersection point
- t1 = GetParameterValue(origin[k][whichPlane], origin[n][whichPlane], coordPlane[whichPlane]);
- if (t1 > 0.0 && t1 < 1.0) {
- GetPointCoord(origin[k], origin[n], t1, p);
- aPoints->InsertNextPoint(p[0], p[1], p[2]);
- }
- }
- }
- else if (t[k] < 0.0) {
- if (t[n] > 0.0) {
- // find intersection point
- t1 = GetParameterValue(origin[k][whichPlane], origin[n][whichPlane], coordPlane[whichPlane]);
- if (t1 > 0.0 && t1 < 1.0) {
- GetPointCoord(origin[k], origin[n], t1, p);
- aPoints->InsertNextPoint(p[0], p[1], p[2]);
- }
- }
- }
- else {
- // find intersection point
- GetPointCoord(origin[k], endray[k], t[k], p);
- aPoints->InsertNextPoint(p[0], p[1], p[2]);
-
- if (t[n] < 0.0) {
- // find second intersection point
- t1 = GetParameterValue(origin[k][whichPlane], origin[n][whichPlane], coordPlane[whichPlane]);
- if (t1 > 0.0 && t1 < 1.0) {
- GetPointCoord(origin[k], origin[n], t1, p);
- aPoints->InsertNextPoint(p[0], p[1], p[2]);
- }
- }
- else if (t[n] > 1.0) {
- // find second intersection point
- t1 = GetParameterValue(endray[k][whichPlane], endray[n][whichPlane], coordPlane[whichPlane]);
- if (t1 > 0.0 && t1 < 1.0) {
- GetPointCoord(endray[k], endray[n], t1, p);
- aPoints->InsertNextPoint(p[0], p[1], p[2]);
- }
- }
- }
- }
- n = aPoints->GetNumberOfPoints();
- if (n == 0) {
- aPoints->Delete();
- return 0;
- }
-
- if (n == 1) {
- aPoints->GetPoint(0, p);
- inside = 1;
- for (i = 0; i < 3; i++) {
- if (i != whichPlane) {
- if (p[i] < bounds[2*i] || p[i] > bounds[2*i+1]) {
- inside = 0; break;
- }
- }
- }
- aPoints->Delete();
- return inside;
- }
-
- // Analize intersection
- int nearPlane, boundPlane = -1;
- float boundCoord, boundMin, boundMax;
- char intersect = 0;
- for (k = 0; k < n; k++) {
- aPoints->GetPoint(k, p);
- j = k+1; if (j == n) j = 0;
- aPoints->GetPoint(j, q);
- inside = 1;
- nearPlane = 0;
- // if the point is inside bbox
- for (i = 0; i < 3; i++) {
- if (i != whichPlane) {
- if (p[i] < bounds[2*i]) {
- side[i] = SIDE_LEFT;
- maxT[i] = GetParameterValue(p[i], q[i], bounds[2*i]);
- inside = 0;
- }
- else if (p[i] > bounds[2*i+1]) {
- side[i] = SIDE_RIGHT;
- maxT[i] = GetParameterValue(p[i], q[i], bounds[2*i+1]);
- inside = 0;
- }
- else {
- side[i] = SIDE_MIDDLE;
- maxT[i] = -1.0;
- }
- }
- else maxT[i] = -1.0;
- if (maxT[i] > maxT[nearPlane]) nearPlane = i;
- }
- if (inside) break;
- // if segment intersects bbox
- if (maxT[nearPlane] >= 0.0 && maxT[nearPlane] <= 1.0) {
- for (i = 0; i < 3; i++) {
- if (i != whichPlane && i != nearPlane) {
- coord = p[i] + maxT[nearPlane]*(q[i]-p[i]);
- if (coord >= bounds[2*i] && coord <= bounds[2*i+1]) {
- intersect = 1; break;
- }
- }
- }
- // intersect with boundPlane
- if (boundPlane == -1) {
- boundCoord = p[nearPlane] + maxT[nearPlane]*(q[nearPlane]-p[nearPlane]);
- boundPlane = nearPlane;
- for (i = 0; i < 3; i++) {
- if (i != whichPlane && i != boundPlane) {
- coord = p[i] + maxT[nearPlane]*(q[i]-p[i]);
- boundMin = boundMax = coord;
- }
- }
- }
- else {
- t1 = GetParameterValue(p[boundPlane], q[boundPlane], boundCoord);
- if (t1 >= 0.0 && t1 <= 1.0) {
- for (i = 0; i < 3; i++) {
- if (i != whichPlane && i != boundPlane) {
- coord = p[i] + t1*(q[i]-p[i]);
- if (coord < boundMin) boundMin = coord;
- if (coord > boundMax) boundMax = coord;
- }
- }
- }
- }
- }
- if (intersect) break;
- }
- aPoints->Delete();
- if (inside || intersect) {
- return 1;
- }
-
- inside = 1;
- for (i = 0; i < 3; i++) {
- if (i != whichPlane && i != boundPlane) {
- if (boundMin > bounds[2*i+1] || boundMax < bounds[2*i])
- inside = 0;
- }
- }
-
- return inside;
-}
-
-//----------------------------------------------------------------------------
-/*! Position of point relative to hexahedron. p1[4][4] is the corner points of top face,
- * p2[4][4] is the corner points of bottom face.
- * \retval The method returns a non-zero value, if the point is inside.
- */
-char VTKViewer_RectPicker::PointInside (float p[3], float p1[4][4], float p2[4][4], float tol)
-{
- int i, j, k;
- float t, coord[3];
-
- // Fix one coordinate (x, for example) and
- // compute intersection with coordinate plane
- vtkPoints* aPoints = vtkPoints::New();
- int mode = 0;
- for (k = 0; k < 4; k++) {
- j = k+1; if (j == 4) j = 0;
- switch (mode) {
- case 0:
- if (GetIntersectionPoint(p1[k], p1[j], 0, p[0], coord)) {
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- mode = 0;
- }
- if (GetIntersectionPoint(p1[k], p2[k], 0, p[0], coord)) {
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- mode = 1;
- }
- if (GetIntersectionPoint(p2[k], p2[j], 0, p[0], coord)) {
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- mode = 2;
- }
- /*
- if ((p1[k][0]-p[0])*(p2[k][0]-p[0]) <= 0) {
- t = GetParameterValue(p1[k][0], p2[k][0], p[0]);
- if (t >= 0.0 && t <= 1.0) {
- GetPointCoord(p1[k], p2[k], t, coord);
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- }
- }
- */
- break;
- case 1:
- if (GetIntersectionPoint(p1[k], p2[k], 0, p[0], coord)) {
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- mode = 1;
- }
- if (GetIntersectionPoint(p2[k], p2[j], 0, p[0], coord)) {
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- mode = 2;
- }
- if (GetIntersectionPoint(p1[k], p1[j], 0, p[0], coord)) {
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- mode = 0;
- }
- /*
- if ((p1[k][0]-p[0])*(p1[j][0]-p[0]) <= 0) {
- t = GetParameterValue(p1[k][0], p1[j][0], p[0]);
- if (t > 0.0 && t < 1.0) {
- GetPointCoord(p1[k], p1[j], t, coord);
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- }
- }
- */
- break;
- case 2:
- if (GetIntersectionPoint(p2[k], p2[j], 0, p[0], coord)) {
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- mode = 2;
- }
- if (GetIntersectionPoint(p1[k], p2[k], 0, p[0], coord)) {
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- mode = 1;
- }
- if (GetIntersectionPoint(p1[k], p1[j], 0, p[0], coord)) {
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- mode = 0;
- }
- /*
- if ((p2[k][0]-p[0])*(p2[j][0]-p[0]) <= 0) {
- t = GetParameterValue(p2[k][0], p2[j][0], p[0]);
- if (t > 0.0 && t < 1.0) {
- GetPointCoord(p2[k], p2[j], t, coord);
- aPoints->InsertNextPoint(coord[0], coord[1], coord[2]);
- }
- }
- */
- break;
- }
- }
- int n = aPoints->GetNumberOfPoints();
- //cout << "---> Points in X projection " << n << endl;
- if (n == 0) {
- aPoints->Delete();
- return 0;
- }
-
- // Fix the second coord and define bounds
- float zMin = VTK_LARGE_FLOAT, zMax = -VTK_LARGE_FLOAT, z, ncoord[3];
- char inside = 0;
- for (k = 0; k < n; k++) {
- aPoints->GetPoint(k, coord);
- //cout << " P" << k << " (" << coord[0] << ", " << coord[1] << ", " << coord[2] << ")";
- j = k+1; if (j == n) j = 0;
- if (j == k) {
- if (p[1] == coord[1] && p[2] == coord[2]) {
- inside = 1;
- }
- break;
- }
- aPoints->GetPoint(j, ncoord);
- t = GetParameterValue(coord[1], ncoord[1], p[1]);
- if (t >= 0.0 && t <= 1) {
- z = coord[2] + t*(ncoord[2]-coord[2]);
- if (z < zMin) zMin = z;
- if (z > zMax) zMax = z;
- }
- }
- //cout << endl << " Zmin = " << zMin << ", Zmax = " << zMax << endl;
- if (!inside) {
- if (p[2] <= (zMax+tol) && p[2] >= (zMin-tol))
- inside = 1;
- }
-
- aPoints->Delete();
- return inside;
-}
-
-//----------------------------------------------------------------------------
-float VTKViewer_RectPicker::IntersectWithHex(float p1[4][4], float p2[4][4], float tol,
- vtkAssemblyPath *path, vtkProp3D *prop3D,
- vtkAbstractMapper3D *mapper)
-{
- int i, k;
- float *center, p0[3], ray[3], rayFactor, t;
-
- // Get the data from the modeler
- //
- center = mapper->GetCenter();
-
- if (!PointInside(center, p1, p2)) {
- return 2.0;
- }
-
- // Determine appropriate info
- //
- for (i = 0; i < 3; i++) {
- p0[i] = ray[i] = 0;
- for (k = 0; k < 4; k++) {
- p0[i] += p1[k][i];
- ray[i] += p2[k][i];
- }
- p0[i] = p0[i]/4;
- ray[i] = ray[i]/4;
- ray[i] = ray[i] - p0[i];
- }
- if (( rayFactor = vtkMath::Dot(ray,ray)) == 0.0 ) {
- vtkErrorMacro("Cannot process points");
- return 2.0;
- }
-
- // Project the center point onto the ray and determine its parametric value
- //
- t = (ray[0]*(center[0]-p0[0]) + ray[1]*(center[1]-p0[1])
- + ray[2]*(center[2]-p0[2])) / rayFactor;
-
- if ( t >= 0.0 && t <= 1.0 && t < this->GlobalTMin ) {
- this->MarkPicked(path, prop3D, mapper, t, center);
- }
- return t;
-}
+++ /dev/null
-// SALOME VTKViewer : build VTK viewer into Salome desktop
-//
-// 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_RectPicker.h
-// Author : Natalia KOPNOVA
-// Module : SALOME
-
-#ifndef __VTKViewer_RectPicker_h
-#define __VTKViewer_RectPicker_h
-
-#include <vtkPicker.h>
-
-/*! \class vtkPicker
- * \brief For more information see <a href="http://www.vtk.org/">VTK documentation
- */
-/*! \class VTKViewer_RectPicker
- * \brief Rectangular picker class.
- */
-class VTK_EXPORT VTKViewer_RectPicker : public vtkPicker
-{
-public:
- /*!Create new instance of VTKViewer_RectPicker.*/
- static VTKViewer_RectPicker *New();
- vtkTypeMacro(VTKViewer_RectPicker,vtkPicker);
-
- virtual int Pick(float selectionX1, float selectionY1, float selectionZ1,
- float selectionX2, float selectionY2, float selectionZ2,
- vtkRenderer *renderer);
-
- /*!
- * Perform pick operation with selection rectangle provided. Normally the first
- * two values for the selection top-left and right-bottom points are x-y pixel
- * coordinate, and the third value is =0.
- * \retval Return non-zero if something was successfully picked.
- */
- int Pick(float selectionPt1[3], float selectionPt2[3], vtkRenderer *ren)
- {return this->Pick(selectionPt1[0], selectionPt1[1], selectionPt1[2],
- selectionPt2[0], selectionPt2[1], selectionPt2[2],
- ren);};
-
- static char HitBBox(float bounds[6], float origin[4][4], float dir[4][3]);
-
- static char PointInside(float point[3], float p1[4][4], float p2[4][4], float tol=0);
-
-protected:
- VTKViewer_RectPicker();
- ~VTKViewer_RectPicker() {};
-
- virtual float IntersectWithHex(float p1[4][4], float p2[4][4], float tol,
- vtkAssemblyPath *path, vtkProp3D *p,
- vtkAbstractMapper3D *m);
-
-private:
-};
-
-#endif
-
-
+++ /dev/null
-#include "VTKViewer_RenderWindow.h"
-
-#include <qcolordialog.h>
-#include <qpopupmenu.h>
-
-#include <stdlib.h>
-#include <math.h>
-
-#include <vtkRenderWindowInteractor.h>
-#include <vtkRendererCollection.h>
-#include <vtkCamera.h>
-#ifndef WNT
-#include <vtkXOpenGLRenderWindow.h>
-//#include <GL/gl.h>
-//#include <GL/glu.h>
-//#include <qgl.h>
-#endif
-
-#if QT_VERSION > 300
-#include <qcursor.h>
-#endif
-
-/*!Constructor. Create render window with parant \a parent and name \a name.
- *\param parent - parent window
- *\param name - render window name.
- */
-VTKViewer_RenderWindow::VTKViewer_RenderWindow(QWidget* parent, const char* name) :
-QWidget(parent, name,
- Qt::WStyle_NoBorder | Qt::WDestructiveClose |
- Qt::WResizeNoErase | Qt::WRepaintNoErase)
-{
- myRW = vtkRenderWindow::New();
-#ifndef WNT
- myRW->SetDisplayId((void*)x11Display());
-#endif
- myRW->SetWindowId((void*)winId());
- myRW->DoubleBufferOn();
- setMouseTracking(true);
-}
-
-/*!Destructor.*/
-VTKViewer_RenderWindow::~VTKViewer_RenderWindow()
-{
- myRW->Delete();
-}
-
-/*!Call Render method for render window field.*/
-void VTKViewer_RenderWindow::paintEvent(QPaintEvent* theEvent)
-{
- myRW->Render();
-}
-
-/*!Resize render window.*/
-void VTKViewer_RenderWindow::resizeEvent(QResizeEvent* theEvent)
-{
- int aWidth = myRW->GetSize()[0], aHeight = myRW->GetSize()[1];
- if(vtkRenderWindowInteractor* aRWI = myRW->GetInteractor())
- aRWI->UpdateSize(width(), height());
- if(aWidth != width() || aHeight != height()){
- vtkRendererCollection * aRenderers = myRW->GetRenderers();
- aRenderers->InitTraversal();
- double aCoeff = 1.0;
- if(vtkRenderer *aRenderer = aRenderers->GetNextItem()){
- vtkCamera *aCamera = aRenderer->GetActiveCamera();
- double aScale = aCamera->GetParallelScale();
- if((aWidth - width())*(aHeight - height()) > 0)
- aCoeff = sqrt(double(aWidth)/double(width())*double(height())/double(aHeight));
- else
- aCoeff = double(aWidth)/double(width());
- aCamera->SetParallelScale(aScale*aCoeff);
- }
- }
-}
-
-/*!Emit mouse move event.*/
-void VTKViewer_RenderWindow::mouseMoveEvent(QMouseEvent* event)
-{
- emit MouseMove(event) ;
-}
-
-/*!Emit mouse button press event.*/
-void VTKViewer_RenderWindow::mousePressEvent(QMouseEvent* event)
-{
- emit MouseButtonPressed( event );
-}
-
-/*!Emit mouse button release event.*/
-void VTKViewer_RenderWindow::mouseReleaseEvent( QMouseEvent *event )
-{
- emit MouseButtonReleased( event );
-}
-
-/*!Emit mouse button double click event.*/
-void VTKViewer_RenderWindow::mouseDoubleClickEvent( QMouseEvent* event )
-{
- emit MouseDoubleClicked( event );
-}
-
-/*!Emit key pressed event.*/
-void VTKViewer_RenderWindow::keyPressEvent (QKeyEvent* event)
-{
- emit KeyPressed(event) ;
-}
-
-/*!Emit key release event.*/
-void VTKViewer_RenderWindow::keyReleaseEvent (QKeyEvent * event)
-{
- emit KeyReleased(event) ;
-}
-
-/*!Emit wheel move event.*/
-void VTKViewer_RenderWindow::wheelEvent(QWheelEvent* event)
-{
- emit WheelMoved(event) ;
-}
-
-/*!Reaction on change background color.*/
-void VTKViewer_RenderWindow::onChangeBackgroundColor()
-{
- //float red, green, blue;
- float backint[3];
-
- vtkRendererCollection * theRenderers = myRW->GetRenderers();
- theRenderers->InitTraversal();
- vtkRenderer * theRenderer = theRenderers->GetNextItem();
- theRenderer->GetBackground(backint);
-
- QColor selColor = QColorDialog::getColor ( QColor(int(backint[0]*255), int(backint[1]*255), int(backint[2]*255)), NULL );
- if ( selColor.isValid() ) {
- theRenderer->SetBackground( selColor.red()/255., selColor.green()/255., selColor.blue()/255. );
- /* VSR : PAL5420 ---------------------------------------------------
- SUIT_CONFIG->addSetting( "VTKViewer:BackgroundColorRed", selColor.red() );
- SUIT_CONFIG->addSetting( "VTKViewer:BackgroundColorGreen", selColor.green() );
- SUIT_CONFIG->addSetting( "VTKViewer:BackgroundColorBlue", selColor.blue() );
- VSR : PAL5420 --------------------------------------------------- */
- }
-}
-
-/*!Emit content menu requested.*/
-void VTKViewer_RenderWindow::contextMenuEvent ( QContextMenuEvent * e )
-{
- if ( e->reason() != QContextMenuEvent::Mouse )
- emit contextMenuRequested( e );
-}
+++ /dev/null
-#ifndef VTKVIEWER_RENDERWINDOW_H
-#define VTKVIEWER_RENDERWINDOW_H
-
-#include "VTKViewer.h"
-
-#include <vtkRenderWindow.h>
-
-#include <qwidget.h>
-
-class VTKVIEWER_EXPORT VTKViewer_RenderWindow : public QWidget
-{
- Q_OBJECT
-
-public:
- /* popup management */
- //void onCreatePopup();
-
-// const char *GetClassName() {return "VTKViewer_RenderWindow";};
-
-public:
- VTKViewer_RenderWindow(QWidget *parent, const char *name);
- virtual ~VTKViewer_RenderWindow() ;
-
- /*!Get render window pointer.*/
- vtkRenderWindow* getRenderWindow() { return myRW; }
-
- protected:
- virtual void mouseMoveEvent( QMouseEvent* );
- virtual void mousePressEvent( QMouseEvent* );
- virtual void mouseReleaseEvent( QMouseEvent* );
- virtual void mouseDoubleClickEvent( QMouseEvent* );
- virtual void wheelEvent( QWheelEvent* );
- virtual void keyPressEvent( QKeyEvent* );
- virtual void keyReleaseEvent( QKeyEvent* );
- virtual void paintEvent( QPaintEvent* );
- virtual void resizeEvent( QResizeEvent* );
- virtual void onChangeBackgroundColor();
- virtual void contextMenuEvent( QContextMenuEvent * e );
-
- signals:
- /*!On mouse move signal.*/
- void MouseMove( QMouseEvent* );
- /*!On mouse button pressed signal.*/
- void MouseButtonPressed( QMouseEvent* );
- /*!On mouse button released signal.*/
- void MouseButtonReleased( QMouseEvent* );
- /*!On mouse double click signal.*/
- void MouseDoubleClicked( QMouseEvent* );
- /*!On wheel moved signal.*/
- void WheelMoved( QWheelEvent* );
- /*!On left button pressed signal.*/
- void LeftButtonPressed(const QMouseEvent *event) ;
- /*!On left button released signal.*/
- void LeftButtonReleased(const QMouseEvent *event) ;
- /*!On middle button pressed signal.*/
- void MiddleButtonPressed(const QMouseEvent *event) ;
- /*!On middle button released signal.*/
- void MiddleButtonReleased(const QMouseEvent *event) ;
- /*!On right button pressed signal.*/
- void RightButtonPressed(const QMouseEvent *event) ;
- /*!On right button released signal.*/
- void RightButtonReleased(const QMouseEvent *event) ;
-
- /*!On button pressed signal.*/
- void ButtonPressed(const QMouseEvent *event);
- /*!On button released signal.*/
- void ButtonReleased(const QMouseEvent *event);
- /*!On key pressed signal.*/
- void KeyPressed( QKeyEvent* );
- /*!On key released signal.*/
- void KeyReleased( QKeyEvent* );
- /*!On content menu requested signal.*/
- void contextMenuRequested( QContextMenuEvent *e );
-
- protected:
- vtkRenderWindow* myRW;
-};
-
-#endif
+++ /dev/null
-#include "VTKViewer_RenderWindowInteractor.h"
-#include "VTKViewer_RenderWindow.h"
-#include "VTKViewer_InteractorStyle.h"
-#include "SUIT_ViewModel.h"
-#include "VTKViewer_ViewWindow.h"
-
-//#include "SUIT_Application.h"
-//#include "SUIT_Desktop.h"
-
-//#include "SALOME_Selection.h"
-#include "VTKViewer_Actor.h"
-#include "VTKViewer_Algorithm.h"
-#include "VTKViewer_Functor.h"
-
-//#include <stdio.h>
-//#include <stdlib.h>
-//#include <string.h>
-//#include <math.h>
-
-// VTK Includes
-#include <vtkAssemblyNode.h>
-#include <vtkActor.h>
-#include <vtkInteractorStyle.h>
-#include <vtkObjectFactory.h>
-#include <vtkPicker.h>
-#include <vtkCellPicker.h>
-#include <vtkPointPicker.h>
-#include <vtkUnstructuredGrid.h>
-#include <vtkPolyDataMapper.h>
-#include <vtkSphereSource.h>
-#include <vtkDataSet.h>
-#include <vtkMaskPoints.h>
-#include <vtkVertex.h>
-#include <vtkRendererCollection.h>
-#include <vtkPolyDataWriter.h>
-
-// QT Includes
-#include <qkeycode.h>
-
-/*! Create new instance of VTKViewer_RenderWindowInteractor*/
-VTKViewer_RenderWindowInteractor* VTKViewer_RenderWindowInteractor::New()
-{
- vtkObject *ret = vtkObjectFactory::CreateInstance("VTKViewer_RenderWindowInteractor") ;
- if( ret ) {
- return dynamic_cast<VTKViewer_RenderWindowInteractor *>(ret) ;
- }
- return new VTKViewer_RenderWindowInteractor;
-}
-
-/*!Constructor.*/
-VTKViewer_RenderWindowInteractor::VTKViewer_RenderWindowInteractor()
-{
- this->Enabled = 0 ;
- this->mTimer = new QTimer( this ) ;
- myDisplayMode = 0;
-
- myBasicPicker = vtkPicker::New();
- myCellPicker = vtkCellPicker::New();
- myPointPicker = vtkPointPicker::New();
-
- myCellActor = VTKViewer_Actor::New();
- myCellActor->PickableOff();
- myCellActor->GetProperty()->SetColor(1,1,0);
- myCellActor->GetProperty()->SetLineWidth(5);
- myCellActor->GetProperty()->SetRepresentationToSurface();
-
- myEdgeActor = VTKViewer_Actor::New();
- myEdgeActor->PickableOff();
- myEdgeActor->GetProperty()->SetColor(1,0,0);
- myEdgeActor->GetProperty()->SetLineWidth(5);
- myEdgeActor->GetProperty()->SetRepresentationToWireframe();
-
- myPointActor = VTKViewer_Actor::New();
- myPointActor->PickableOff();
- myPointActor->GetProperty()->SetColor(1,1,0);
- myPointActor->GetProperty()->SetPointSize(5);
- myPointActor->GetProperty()->SetRepresentationToPoints();
-
- connect(mTimer, SIGNAL(timeout()), this, SLOT(TimerFunc())) ;
-}
-
-/*!Destructor.*/
-VTKViewer_RenderWindowInteractor::~VTKViewer_RenderWindowInteractor()
-{
- delete mTimer ;
-
- if ( GetRenderWindow() ) {
- myViewWnd->RemoveActor(myCellActor);
- myViewWnd->RemoveActor(myEdgeActor);
- myViewWnd->RemoveActor(myPointActor);
- }
-
- myCellActor->Delete();
- myEdgeActor->Delete();
- myPointActor->Delete();
-
- myBasicPicker->Delete();
- myCellPicker->Delete();
- myPointPicker->Delete();
-}
-
-void VTKViewer_RenderWindowInteractor::PrintSelf(ostream& os, vtkIndent indent)
-{
- vtkRenderWindowInteractor::PrintSelf(os, indent) ;
- //
- // :NOTE: Fri Apr 21 21:51:05 2000 Pagey
- // QGL specific stuff goes here. One should add output
- // lines here if any protected members are added to
- // the class.
- //
-}
-
-/*!Description:\n
- * Initializes the event handlers without an XtAppContext. This is \n
- * good for when you don`t have a user interface, but you still \n
- * want to have mouse interaction.\n
- * We never allow the VTKViewer_RenderWindowInteractor to control \n
- * the event loop. The application always has the control.
- */
-void VTKViewer_RenderWindowInteractor::Initialize()
-{
- //
- // We cannot do much unless there is a render window
- // associated with this interactor.
- //
- if( ! RenderWindow ) {
- vtkErrorMacro(<< "VTKViewer_RenderWindowInteractor::Initialize(): No render window attached!") ;
- return ;
- }
-
- //
- // We cannot hand a render window which is not a VTKViewer_RenderWindow.
- // One way to force this is to use dynamic_cast and hope that
- // it works. If the dynamic_cast does not work, we flag an error
- // and get the hell out.
- //
- vtkRenderWindow *my_render_win = dynamic_cast<vtkRenderWindow *>(RenderWindow) ;
- if( !my_render_win ) {
- vtkErrorMacro(<< "VTKViewer_RenderWindowInteractor::Initialize() can only handle VTKViewer_RenderWindow.") ;
- return ;
- }
-
- //
- // If the render window has zero size, then set it to a default
- // value of 300x300.
- //
- int* aSize = my_render_win->GetSize();
- this->Size[0] = ((aSize[0] > 0) ? aSize[0] : 300);
- this->Size[1] = ((aSize[1] > 0) ? aSize[1] : 300);
-
- this->SetPicker(myBasicPicker);
-
- SetSelectionTolerance();
-
- //
- // Enable the interactor.
- //
- this->Enable() ;
-
- //
- // Start the rendering of the window.
- //
- my_render_win->Start() ;
-
- //
- // The interactor has been initialized.
- //
- this->Initialized = 1 ;
-
- return ;
-}
-
-/*!Sets view window and add to it selection actors.*/
-void VTKViewer_RenderWindowInteractor::setViewWindow(VTKViewer_ViewWindow* theViewWnd){
- myViewWnd = theViewWnd;
-
- if ( myViewWnd ) {
- myViewWnd->InsertActor(myCellActor);
- myViewWnd->InsertActor(myEdgeActor);
- myViewWnd->InsertActor(myPointActor);
- }
-}
-
-/*!Move selection actors to view window.*/
-void VTKViewer_RenderWindowInteractor::MoveInternalActors()
-{
- myViewWnd->MoveActor(myCellActor);
- myViewWnd->MoveActor(myEdgeActor);
- myViewWnd->MoveActor(myPointActor);
-}
-
-/*!Sets interactor style.*/
-void VTKViewer_RenderWindowInteractor::SetInteractorStyle(vtkInteractorObserver *theInteractor){
- myInteractorStyle = dynamic_cast<VTKViewer_InteractorStyle*>(theInteractor);
- vtkRenderWindowInteractor::SetInteractorStyle(theInteractor);
-}
-
-
-/*
-void VTKViewer_RenderWindowInteractor::SetSelectionMode(Selection_Mode theMode)
-{
- myCellActor->SetVisibility(false);
- myEdgeActor->SetVisibility(false);
- myPointActor->SetVisibility(false);
-
- switch(theMode){
- case ActorSelection:
- this->SetPicker(myBasicPicker);
- break;
- case NodeSelection:
- this->SetPicker(myPointPicker);
- break;
- case CellSelection:
- case EdgeSelection:
- case FaceSelection:
- case VolumeSelection:
- case EdgeOfCellSelection:
- this->SetPicker(myCellPicker);
- break;
- }
-
- myInteractorStyle->OnSelectionModeChanged();
-}
-*/
-
-/*!Sets selection properties.
- *\param theRed - red component of color
- *\param theGreen - green component of color
- *\param theBlue - blue component of color
- *\param theWidth - point size and line width
- */
-void VTKViewer_RenderWindowInteractor::SetSelectionProp(const double& theRed, const double& theGreen,
- const double& theBlue, const int& theWidth)
-{
- myCellActor->GetProperty()->SetColor(theRed, theGreen, theBlue);
- myCellActor->GetProperty()->SetLineWidth(theWidth);
-
- myPointActor->GetProperty()->SetColor(theRed, theGreen, theBlue);
- myPointActor->GetProperty()->SetPointSize(theWidth);
-}
-
-/*!Sets selection tolerance
- *\param theTolNodes - nodes selection tolerance
- *\param theTolItems - selection tolerance for basic and cell pickers.
- */
-void VTKViewer_RenderWindowInteractor::SetSelectionTolerance(const double& theTolNodes, const double& theTolItems)
-{
- myTolNodes = theTolNodes;
- myTolItems = theTolItems;
-
- myBasicPicker->SetTolerance(myTolItems);
- myCellPicker->SetTolerance(myTolItems);
- myPointPicker->SetTolerance(myTolNodes);
-
-}
-
-/*! Description:\n
- * Enable/Disable interactions. By default interactors are enabled when \n
- * initialized. Initialize() must be called prior to enabling/disabling \n
- * interaction. These methods are used when a window/widget is being \n
- * shared by multiple renderers and interactors. This allows a "modal" \n
- * display where one interactor is active when its data is to be displayed \n
- * and all other interactors associated with the widget are disabled \n
- * when their data is not displayed.
- */
-void VTKViewer_RenderWindowInteractor::Enable()
-{
- //
- // Do not need to do anything if already enabled.
- //
- if( this->Enabled ) {
- return ;
- }
-
- this->Enabled = 1 ;
- this->Modified() ;
-}
-
-/*!See Enable().*/
-void VTKViewer_RenderWindowInteractor::Disable()
-{
- if( ! this->Enabled ) {
- return ;
- }
-
- this->Enabled = 0 ;
- this->Modified() ;
-}
-
-/*!Description:\n
- * This will start up the X event loop and never return. If you \n
- * call this method it will loop processing X events until the \n
- * application is exited.
- */
-void VTKViewer_RenderWindowInteractor::Start()
-{
- //
- // We do not allow this interactor to control the
- // event loop. Only the QtApplication objects are
- // allowed to do that.
- //
- vtkErrorMacro(<<"VTKViewer_RenderWindowInteractor::Start() not allowed to start event loop.") ;
-}
-
-/*! Description:\n
- * Event loop notification member for Window size change
- */
-void VTKViewer_RenderWindowInteractor::UpdateSize(int w, int h)
-{
- // if the size changed send this on to the RenderWindow
- if ((w != this->Size[0])||(h != this->Size[1])) {
- this->Size[0] = w;
- this->Size[1] = h;
- this->RenderWindow->SetSize(w,h);
- }
-}
-
-/*! Description:
- * Timer methods must be overridden by platform dependent subclasses.
- * flag is passed to indicate if this is first timer set or an update
- * as Win32 uses repeating timers, whereas X uses One shot more timer
- * if flag == VTKXI_TIMER_FIRST Win32 and X should createtimer
- * otherwise Win32 should exit and X should perform AddTimeOut
- * \retval 1
- */
-int VTKViewer_RenderWindowInteractor::CreateTimer(int vtkNotUsed(timertype))
-{
- ///
- /// Start a one-shot timer for 10ms.
- ///
- mTimer->start(10, TRUE) ;
- return 1 ;
-}
-
-/**@see CreateTimer(int )
- *\retval 1
- */
-int VTKViewer_RenderWindowInteractor::DestroyTimer(void)
-{
- //
- // :TRICKY: Tue May 2 00:17:32 2000 Pagey
- //
- /*! QTimer will automatically expire after 10ms. So
- * we do not need to do anything here. In fact, we
- * should not even Stop() the QTimer here because doing
- * this will skip some of the processing that the TimerFunc()
- * does and will result in undesirable effects. For
- * example, this will result in vtkLODActor to leave
- * the models in low-res mode after the mouse stops
- * moving.
- */
- return 1 ;
-}
-
-/*! Not all of these slots are needed in VTK_MAJOR_VERSION=3,\n
- * but moc does not understand "#if VTK_MAJOR_VERSION". Hence, \n
- * we have to include all of these for the time being. Once,\n
- * this bug in MOC is fixed, we can separate these.
- */
-void VTKViewer_RenderWindowInteractor::TimerFunc()
-{
- if( ! this->Enabled ) {
- return ;
- }
-
- ((vtkInteractorStyle*)this->InteractorStyle)->OnTimer() ;
- emit RenderWindowModified() ;
-}
-
-/*!Emit render window modified on mouse move,\n
- *if interactor style needs redrawing and render window enabled.*/
-void VTKViewer_RenderWindowInteractor::MouseMove(QMouseEvent *event) {
- if( ! this->Enabled ) {
- return ;
- }
- myInteractorStyle->OnMouseMove(0, 0, event->x(), event->y()/*this->Size[1] - event->y() - 1*/) ;
- if (myInteractorStyle->needsRedrawing() )
- emit RenderWindowModified() ;
-}
-
-/*!Reaction on left button pressed.\n
- *Same as left button down for interactor style.\n
- *If render window enabled.
- */
-void VTKViewer_RenderWindowInteractor::LeftButtonPressed(const QMouseEvent *event) {
- if( ! this->Enabled ) {
- return ;
- }
- myInteractorStyle->OnLeftButtonDown((event->state() & ControlButton),
- (event->state() & ShiftButton),
- event->x(), event->y());
-}
-
-/*!Reaction on left button releases.\n
- *Same as left button up for interactor style.\n
- *If render window enabled.
- */
-void VTKViewer_RenderWindowInteractor::LeftButtonReleased(const QMouseEvent *event) {
- if( ! this->Enabled ) {
- return ;
- }
- myInteractorStyle->OnLeftButtonUp( (event->state() & ControlButton),
- (event->state() & ShiftButton),
- event->x(), event->y() ) ;
-}
-
-/*!Reaction on middle button pressed.\n
- *Same as middle button down for interactor style.\n
- *If render window enabled.
- */
-void VTKViewer_RenderWindowInteractor::MiddleButtonPressed(const QMouseEvent *event) {
- if( ! this->Enabled ) {
- return ;
- }
- myInteractorStyle->OnMiddleButtonDown((event->state() & ControlButton),
- (event->state() & ShiftButton),
- event->x(), event->y() ) ;
-}
-
-/*!Reaction on middle button released.\n
- *Same as middle button up for interactor style.\n
- *If render window enabled.
- */
-void VTKViewer_RenderWindowInteractor::MiddleButtonReleased(const QMouseEvent *event) {
- if( ! this->Enabled ) {
- return ;
- }
- myInteractorStyle->OnMiddleButtonUp( (event->state() & ControlButton),
- (event->state() & ShiftButton),
- event->x(), event->y() ) ;
-}
-
-/*!Reaction on right button pressed.\n
- *Same as right button down for interactor style.\n
- *If render window enabled.
- */
-void VTKViewer_RenderWindowInteractor::RightButtonPressed(const QMouseEvent *event) {
- if( ! this->Enabled ) {
- return ;
- }
- myInteractorStyle->OnRightButtonDown( (event->state() & ControlButton),
- (event->state() & ShiftButton),
- event->x(), event->y() ) ;
-}
-
-/*!Reaction on right button released.\n
- *Same as right button up for interactor style.If render window enabled.\n
- *Emit context menu requested, if interactor style state equal VTK_INTERACTOR_STYLE_CAMERA_NONE.
- */
-void VTKViewer_RenderWindowInteractor::RightButtonReleased(const QMouseEvent *event) {
- if( ! this->Enabled ) {
- return ;
- }
- bool isOperation = myInteractorStyle->CurrentState() != VTK_INTERACTOR_STYLE_CAMERA_NONE;
- myInteractorStyle->OnRightButtonUp( (event->state() & ControlButton),
- (event->state() & ShiftButton),
- event->x(), event->y() );
- if ( !isOperation )
- {
- QContextMenuEvent aEvent( QContextMenuEvent::Mouse,
- event->pos(), event->globalPos(),
- event->state() );
- emit contextMenuRequested( &aEvent );
- }
-}
-
-/*!Reaction on button pressed.
- *\warning Do nothing.
- */
-void VTKViewer_RenderWindowInteractor::ButtonPressed(const QMouseEvent *event) {
- return ;
-}
-
-/*!Reaction on button released..
- *\warning Do nothing.
- */
-void VTKViewer_RenderWindowInteractor::ButtonReleased(const QMouseEvent *event) {
- return ;
-}
-
-/*!Gets display mode.*/
-int VTKViewer_RenderWindowInteractor::GetDisplayMode() {
- return myDisplayMode;
-}
-
-/*!Sets display mode.*/
-void VTKViewer_RenderWindowInteractor::SetDisplayMode(int theMode) {
- if(theMode == 0)
- ChangeRepresentationToWireframe();
- else
- ChangeRepresentationToSurface();
- myDisplayMode = theMode;
-}
-
-/*!Change all actors to wireframe*/
-void VTKViewer_RenderWindowInteractor::ChangeRepresentationToWireframe()
-{
- ChangeRepresentationToWireframe(GetRenderer()->GetActors());
-}
-
-/*!Change all actors to surface*/
-void VTKViewer_RenderWindowInteractor::ChangeRepresentationToSurface()
-{
- ChangeRepresentationToSurface(GetRenderer()->GetActors());
-}
-
-/*!Change all actors from \a theCollection to wireframe and
- * emit render window modified.
- */
-void VTKViewer_RenderWindowInteractor::ChangeRepresentationToWireframe(vtkActorCollection* theCollection)
-{
- using namespace VTK;
- ForEach<VTKViewer_Actor>(theCollection,
- TSetFunction<VTKViewer_Actor,int>
- (&VTKViewer_Actor::setDisplayMode,0));
- emit RenderWindowModified();
-}
-
-/*!Change all actors from \a theCollection to surface and
- * emit render window modified.
- */
-void VTKViewer_RenderWindowInteractor::ChangeRepresentationToSurface(vtkActorCollection* theCollection)
-{
- using namespace VTK;
- ForEach<VTKViewer_Actor>(theCollection,
- TSetFunction<VTKViewer_Actor,int>
- (&VTKViewer_Actor::setDisplayMode,1));
- emit RenderWindowModified();
-}
-
-/*!Gets renderer.*/
-vtkRenderer* VTKViewer_RenderWindowInteractor::GetRenderer()
-{
- vtkRendererCollection * theRenderers = this->RenderWindow->GetRenderers();
- theRenderers->InitTraversal();
- return theRenderers->GetNextItem();
-}
-
-/*!Do nothing*/
-void VTKViewer_RenderWindowInteractor::EraseAll()
-{
-}
-
-/*!Display all actors.
- *Sets visible for all actors from renderer collection and emit render window modified.
- */
-void VTKViewer_RenderWindowInteractor::DisplayAll()
-{
- using namespace VTK;
- vtkActorCollection* aCollection = GetRenderer()->GetActors();
- ForEach<VTKViewer_Actor>(aCollection,TSetVisibility<VTKViewer_Actor>(true));
-
- emit RenderWindowModified() ;
-}
-
-/*!Do nothing*/
-void VTKViewer_RenderWindowInteractor::Erase( VTKViewer_Actor* SActor, bool update)
-{
-}
-
-/*!Remove \a SActor from renderer and emit update window, if \a updateViewer - true*/
-void VTKViewer_RenderWindowInteractor::Remove( VTKViewer_Actor* SActor, bool updateViewer )
-{
- if ( SActor != 0 )
- {
- GetRenderer()->RemoveProp( SActor );
- if ( updateViewer )
- emit RenderWindowModified();
- }
-}
-
-/*!Remove actors from render window collection(not implemented).
- *Emit render window modified, if \a updateViewer - true.
- */
-void VTKViewer_RenderWindowInteractor::RemoveAll( const bool updateViewer )
-{
- vtkRenderer* aRenderer = GetRenderer();
- vtkActorCollection* anActors = aRenderer->GetActors();
- if ( anActors )
- {
- anActors->InitTraversal();
- while ( vtkActor *anAct = anActors->GetNextActor() )
- {
- if ( anAct->IsA( "VTKViewer_Actor" ) )
- {
- }
- }
-
- if ( updateViewer )
- emit RenderWindowModified();
- }
-}
-
-/*!\brief Display the \a theActor.*/
-/*! Add actor to renderer and set visibility to true.
- * Emit render window modified, if \a update - true.
- */
-void VTKViewer_RenderWindowInteractor::Display( VTKViewer_Actor* theActor, bool update)
-{
- GetRenderer()->AddActor(theActor);
- theActor->SetVisibility(true);
-
- if(update)
- emit RenderWindowModified();
-}
-
-void VTKViewer_RenderWindowInteractor::KeyPressed(QKeyEvent *event)
-{
- /// NOT_IMPLEMENTED
-}
-
-/*!Structure with one function "operator()", which call apply properties for actor.*/
-struct TUpdateAction{
- /*!Apply properties for \a theActor.*/
- void operator()(vtkActor* theActor){
- theActor->ApplyProperties();
- }
-};
-
-/*!Update all actors from renderer and emit render window modified.*/
-void VTKViewer_RenderWindowInteractor::Update() {
- using namespace VTK;
- vtkRenderer* aRen = GetRenderer();
- ForEach<vtkActor>(aRen->GetActors(),TUpdateAction());
-
- aRen->ResetCamera();
-
- emit RenderWindowModified();
-}
-
-/*!Unhighlight all selection actors.*/
-void VTKViewer_RenderWindowInteractor::unHighlightSubSelection(){
- myPointActor->SetVisibility(false);
- myEdgeActor->SetVisibility(false);
- myCellActor->SetVisibility(false);
-}
-
-/*!@see unHighlightSubSelection()
- * Also emit render window modified.
- */
-bool VTKViewer_RenderWindowInteractor::unHighlightAll(){
- unHighlightSubSelection();
-
- emit RenderWindowModified() ;
- return false;
-}
-
-
-/*! \li Sets actors data and sets visibility to true, if flag \a hilight - true,
- * else sets visibility to false.
- * \li Emit render window modified, if flag \a update - true.
- */
-bool VTKViewer_RenderWindowInteractor::highlight(const TColStd_IndexedMapOfInteger& theMapIndex,
- VTKViewer_Actor* theMapActor, VTKViewer_Actor* theActor,
- TUpdateActor theFun, bool hilight, bool update)
-{
- if(theMapIndex.Extent() == 0) return false;
-
- if (hilight) {
- setActorData(theMapIndex,theMapActor,theActor,theFun);
- theActor->SetVisibility(true);
- }
- else {
- theActor->SetVisibility(false);
- }
-
- if(update){
- this->RenderWindow->Render();
- emit RenderWindowModified() ;
- }
-
- return false;
-}
-
-/*!Sets actors data.*/
-void VTKViewer_RenderWindowInteractor::setActorData(const TColStd_IndexedMapOfInteger& theMapIndex,
- VTKViewer_Actor * theMapActor,
- VTKViewer_Actor * theActor,
- TUpdateActor theFun)
-{
- (*theFun)(theMapIndex,theMapActor,theActor);
- float aPos[3];
- theMapActor->GetPosition(aPos);
- theActor->SetPosition(aPos);
-}
+++ /dev/null
-#ifndef VTKVIEWER_RENDERWINDOWINTERACTOR_H
-#define VTKVIEWER_RENDERWINDOWINTERACTOR_H
-
-#include "VTKViewer.h"
-#include "VTKViewer_Actor.h"
-
-#include <qtimer.h>
-#include <qobject.h>
-
-// Open CASCADE Includes
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_MapIteratorOfMapOfInteger.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-class vtkPicker;
-class vtkCellPicker;
-class vtkPointPicker;
-class vtkActorCollection;
-
-class VTKViewer_Actor;
-class VTKViewer_ViewWindow;
-class VTKViewer_RenderWindow;
-class VTKViewer_InteractorStyle;
-
-#include "VTKViewer_Algorithm.h"
-
-#include <vtkActor.h>
-#include <vtkVersion.h>
-#include <vtkRenderWindowInteractor.h>
-
-class VTKVIEWER_EXPORT VTKViewer_RenderWindowInteractor : public QObject, public vtkRenderWindowInteractor
-{
- Q_OBJECT
-
-public:
- static VTKViewer_RenderWindowInteractor *New();
-
- vtkTypeMacro(VTKViewer_RenderWindowInteractor,vtkRenderWindowInteractor);
-
- void PrintSelf(ostream& os, vtkIndent indent);
-
- virtual void Initialize();
-
- virtual void SetInteractorStyle(vtkInteractorObserver *);
- /*!Return interactor style pointer.*/
- VTKViewer_InteractorStyle* GetInteractorStyle() const
- {
- return myInteractorStyle;
- }
-
- virtual void Start();
-
- virtual void Enable();
- virtual void Disable();
-
- virtual void UpdateSize(int x,int y);
-
- /** @name Timer options*/
- //@{
- virtual int CreateTimer(int ) ;
- virtual int DestroyTimer() ;
- //@}
-
- /*! Description:\n
- * This function is called on 'q','e' keypress if exitmethod is not\n
- * specified and should be overidden by platform dependent subclasses\n
- * to provide a termination procedure if one is required.
- */
- virtual void TerminateApp(void) { /* empty */ }
-
- // Description:
- // These methods correspond to the the Exit, User and Pick
- // callbacks. They allow for the Style to invoke them.
- //virtual void ExitCallback();
- //virtual void UserCallback();
- //virtual void StartPickCallback();
- //virtual void EndPickCallback();
-
- /** @name Selection Management */
- //@{
- bool highlightCell(const TColStd_IndexedMapOfInteger& MapIndex,
- VTKViewer_Actor* theMapActor,
- bool hilight,
- bool update = true );
- bool highlightEdge(const TColStd_IndexedMapOfInteger& MapIndex,
- VTKViewer_Actor* theMapActor,
- bool hilight,
- bool update = true );
- bool highlightPoint(const TColStd_IndexedMapOfInteger& MapIndex,
- VTKViewer_Actor* theMapActor,
- bool hilight,
- bool update = true );
-
- void unHighlightSubSelection();
- bool unHighlightAll();
-
- //void SetSelectionMode(Selection_Mode mode);
- void SetSelectionProp(const double& theRed = 1, const double& theGreen = 1,
- const double& theBlue = 0, const int& theWidth = 5);
- void SetSelectionTolerance(const double& theTolNodes = 0.025, const double& theTolCell = 0.001);
- //@}
-
- /** @name Displaymode management*/
- //@{
- int GetDisplayMode();
- void SetDisplayMode(int);
- //@}
-
- /** @name Change all actors to wireframe or surface*/
- //@{
- void ChangeRepresentationToWireframe();
- void ChangeRepresentationToSurface();
- //@}
-
- /** @name Change to wireframe or surface a list of vtkactor*/
- //@{
- void ChangeRepresentationToWireframe(vtkActorCollection* ListofActors);
- void ChangeRepresentationToSurface(vtkActorCollection* ListofActors);
- //@}
-
- /** @name Erase Display functions*/
- //@{
- void EraseAll();
- void DisplayAll();
- void RemoveAll( const bool immediatly );
-
- void Display( VTKViewer_Actor* SActor, bool immediatly = true );
- void Erase( VTKViewer_Actor* SActor, bool immediatly = true );
- void Remove( VTKViewer_Actor* SActor, bool updateViewer = true );
- //@}
-
- void Update();
-
- vtkRenderer* GetRenderer();
-
- void setViewWindow( VTKViewer_ViewWindow* theViewWnd );
-
- void setCellData(const int& theIndex,
- VTKViewer_Actor* theMapActor,
- VTKViewer_Actor* theActor) {}
- void setEdgeData(const int& theCellIndex,
- VTKViewer_Actor* theMapActor,
- const int& theEdgeIndex,
- VTKViewer_Actor* theActor ) {} //NB
- void setPointData(const int& theIndex,
- VTKViewer_Actor* theMapActor,
- VTKViewer_Actor* theActor) {}
-
- typedef void (*TUpdateActor)(const TColStd_IndexedMapOfInteger& theMapIndex,
- VTKViewer_Actor* theMapActor,
- VTKViewer_Actor* theActor);
- protected:
-
- VTKViewer_RenderWindowInteractor();
- ~VTKViewer_RenderWindowInteractor();
-
- VTKViewer_InteractorStyle* myInteractorStyle;
-
- bool highlight(const TColStd_IndexedMapOfInteger& theMapIndex,
- VTKViewer_Actor* theMapActor, VTKViewer_Actor* theActor,
- TUpdateActor theFun, bool hilight, bool update);
- void setActorData(const TColStd_IndexedMapOfInteger& theMapIndex,
- VTKViewer_Actor* theMapActor,
- VTKViewer_Actor *theActor,
- TUpdateActor theFun);
-
- /*! Timer used during various mouse events to figure
- * out mouse movements.
- */
- QTimer *mTimer ;
-
- int myDisplayMode;
-
- //NRI: Selection mode
- VTKViewer_Actor* myPointActor;
- VTKViewer_Actor* myEdgeActor;
- VTKViewer_Actor* myCellActor;
- void MoveInternalActors();
-
- vtkPicker* myBasicPicker;
- vtkCellPicker* myCellPicker;
- vtkPointPicker* myPointPicker;
-
- /*! User for switching to stereo mode.*/
- int PositionBeforeStereo[2];
-
- public slots:
- void MouseMove(QMouseEvent *event) ;
- void LeftButtonPressed(const QMouseEvent *event) ;
- void LeftButtonReleased(const QMouseEvent *event) ;
- void MiddleButtonPressed(const QMouseEvent *event) ;
- void MiddleButtonReleased(const QMouseEvent *event) ;
- void RightButtonPressed(const QMouseEvent *event) ;
- void RightButtonReleased(const QMouseEvent *event) ;
- void ButtonPressed(const QMouseEvent *event) ;
- void ButtonReleased(const QMouseEvent *event) ;
- void KeyPressed(QKeyEvent *event) ;
-
- private slots:
- void TimerFunc() ;
-
-signals:
- void RenderWindowModified() ;
- void contextMenuRequested( QContextMenuEvent *e );
-
-private:
- friend class VTKViewer_ViewWindow;
-
- VTKViewer_ViewWindow* myViewWnd;
- /** Selection node tolerance.*/
- double myTolNodes;
- /** Selection cell tolerance.*/
- double myTolItems;
-};
-
-#endif
+++ /dev/null
-#ifndef VTKVIEWER_SHRINKFILTER_H
-#define VTKVIEWER_SHRINKFILTER_H
-
-#include "VTKViewer.h"
-
-#include <vtkShrinkFilter.h>
-
-#include <vector>
-
-/*!Shrink cells composing an arbitrary data set.
- *\warning It is possible to turn cells inside out or cause self intersection in special cases.
- */
-class VTKVIEWER_EXPORT VTKViewer_ShrinkFilter : public vtkShrinkFilter
-{
-public:
- /*!Create new instance of VTKViewer_ShrinkFilter.*/
- static VTKViewer_ShrinkFilter *New();
- vtkTypeRevisionMacro(VTKViewer_ShrinkFilter, vtkShrinkFilter);
-
- void SetStoreMapping(int theStoreMapping);
- /*!Gets store mapping flag.*/
- int GetStoreMapping(){ return myStoreMapping;}
-
- virtual vtkIdType GetNodeObjId(int theVtkID);
- /*!Return element id by vtk id.*/
- virtual vtkIdType GetElemObjId(int theVtkID) { return theVtkID;}
-
-protected:
- VTKViewer_ShrinkFilter();
- ~VTKViewer_ShrinkFilter();
-
- void Execute();
- /*!Not implemented.*/
- void UnstructuredGridExecute();
-
-private:
- int myStoreMapping;
- typedef std::vector<vtkIdType> TVectorId;
- TVectorId myVTK2ObjIds;
-};
-
-#endif
+++ /dev/null
-// SALOME FILTER : interactive object for VISU entities implementation
-//
-// 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_Transform.cxx
-// Author : Laurent CORNABE with help of Nicolas REJNERI
-// Module : SALOME
-
-
-#include "VTKViewer_Transform.h"
-
-#include <vtkObjectFactory.h>
-#include <vtkMatrix4x4.h>
-
-static double EPS = 10e-4;
-
-
-vtkStandardNewMacro(VTKViewer_Transform);
-
-/*!Sets matrix scale.*/
-void VTKViewer_Transform::SetMatrixScale(double theScaleX, double theScaleY, double theScaleZ){
- double aMatrix[16] = {theScaleX,0,0,0,
- 0,theScaleY,0,0,
- 0,0,theScaleZ,0,
- 0,0,0,1.0000000};
- this->SetMatrix(aMatrix);
-}
-
-/*!Gets matrix scale.*/
-void VTKViewer_Transform::GetMatrixScale(double theScale[3]){
- vtkMatrix4x4 *aTMatrix=this->GetMatrix();
- const double aScaleX = aTMatrix->GetElement(0,0);
- const double aScaleY = aTMatrix->GetElement(1,1);
- const double aScaleZ = aTMatrix->GetElement(2,2);
- theScale[0] = aScaleX;
- theScale[1] = aScaleY;
- theScale[2] = aScaleZ;
-}
-
-/*!Checks: Is matrix identity, where used EPS value.
- *If |aScaleX-1|<EPS && |aScaleY-1|<EPS && |aScaleY-1|<EPS return 1, esle 0.
- */
-int VTKViewer_Transform::IsIdentity(){
- double aScale[3];
- this->GetMatrixScale(aScale);
- return (fabs(aScale[0] - 1.0) < EPS &&
- fabs(aScale[1] - 1.0) < EPS &&
- fabs(aScale[2] - 1.0) < EPS);
-}
+++ /dev/null
-#ifndef VTKVIEWER_TRANSFORM_H
-#define VTKVIEWER_TRANSFORM_H
-
-#include "VTKViewer.h"
-
-#include <vtkTransform.h>
-
-/*!\brief Describes linear transformations via a 4x4 matrix.
- *@see vtkTransform class
- */
-class VTKVIEWER_EXPORT VTKViewer_Transform : public vtkTransform
-{
-public:
- /*!Create new instance of VTKViewer_Transform.*/
- static VTKViewer_Transform *New();
- vtkTypeMacro( VTKViewer_Transform, vtkTransform );
-
- int IsIdentity();
- //merge with V2_2_0_VISU_improvements:void SetScale( float theScaleX, float theScaleY, float theScaleZ );
- void SetMatrixScale(double theScaleX, double theScaleY, double theScaleZ);
- void GetMatrixScale(double theScale[3]);
-
-protected:
- /*!Constructor.*/
- VTKViewer_Transform() {/*!Do nothing*/}
- /*!Copy contructor.*/
- VTKViewer_Transform(const VTKViewer_Transform&) {/*!Do nothing*/}
- /*!Destructor.*/
- ~VTKViewer_Transform() {/*!Do nothing*/}
-
- /*!Operator = */
- void operator=( const VTKViewer_Transform& ) {/*!Do nothing*/}
-};
-
-#endif
+++ /dev/null
-// SALOME FILTER : interactive object for VISU entities implementation
-//
-// 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_TransformFilter.h
-// Author : Laurent CORNABE with help of Nicolas REJNERI
-// Module : SALOME
-
-
-#include "VTKViewer_TransformFilter.h"
-#include "VTKViewer_Transform.h"
-
-#include <vtkObjectFactory.h>
-#include <vtkPointSet.h>
-#include <vtkPointData.h>
-#include <vtkCellData.h>
-#include <vtkPoints.h>
-
-
-vtkStandardNewMacro(VTKViewer_TransformFilter);
-
-/*!Execution method. Calculate output.*/
-void VTKViewer_TransformFilter::Execute(){
- vtkPoints *inPts;
- vtkPoints *newPts;
- int numPts, numCells;
- vtkPointSet *input = this->GetInput();
- vtkPointSet *output = this->GetOutput();
- vtkPointData *pd=input->GetPointData(), *outPD=output->GetPointData();
- vtkCellData *cd=input->GetCellData(), *outCD=output->GetCellData();
- output->CopyStructure( input );
- if(Transform){
- bool anIsIdentity = true;
- if(VTKViewer_Transform* aTransform = dynamic_cast<VTKViewer_Transform*>(Transform))
- anIsIdentity = aTransform->IsIdentity() != 0;
- inPts = input->GetPoints();
- if(!anIsIdentity && inPts){
- numPts = inPts->GetNumberOfPoints();
- numCells = input->GetNumberOfCells();
- newPts = vtkPoints::New();
- newPts->Allocate(numPts);
- this->UpdateProgress(.2);
- this->Transform->TransformPoints(inPts,newPts);
- this->UpdateProgress(.8);
- output->SetPoints(newPts);
- newPts->Delete();
- }
- }
- outPD->PassData(pd);
- outCD->PassData(cd);
-}
+++ /dev/null
-#ifndef VTKVIEWER_TRANSFORMFILTER_H
-#define VTKVIEWER_TRANSFORMFILTER_H
-
-#include "VTKViewer.h"
-
-#include <vtkTransformFilter.h>
-
-/*!Transform points and associated normals and vectors
- *@see vtkTransformFilter
- */
-class VTKVIEWER_EXPORT VTKViewer_TransformFilter : public vtkTransformFilter
-{
-public:
- /*!Create new instance of VTKViewer_TransformFilter.*/
- static VTKViewer_TransformFilter *New();
- vtkTypeMacro(VTKViewer_TransformFilter,vtkTransformFilter);
-
-protected:
- /*!Constructor.*/
- VTKViewer_TransformFilter() {/*!Do nothing*/}
- /*!Destructor.*/
- ~VTKViewer_TransformFilter() {/*!Do nothing*/}
- /*!Copy constructor.*/
- VTKViewer_TransformFilter(const VTKViewer_TransformFilter&) {/*!Do nothing*/}
- /*!Operator = */
- void operator=(const VTKViewer_TransformFilter&) {/*!Do nothing*/}
- void Execute();
-};
-
-#endif
+++ /dev/null
-#include "VTKViewer_Actor.h"
-
-// VTK Includes
-#include <vtkMath.h>
-#include <vtkCamera.h>
-#include <vtkRenderer.h>
-#include <vtkRenderWindow.h>
-#include "VTKViewer_Utilities.h"
-
-
-/*!@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{
- 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 ){
- 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])
-{
- 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(VTKViewer_Actor* anActor = VTKViewer_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 ){
- 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 );
-}
-
-/*!Compute trihedron size.*/
-bool ComputeTrihedronSize( vtkRenderer* theRenderer,double& theNewSize,
- const double theSize, const float theSizeInPercents )
-{
- // calculating diagonal of visible props of the renderer
- float bnd[ 6 ];
- if ( ComputeVisiblePropBounds( theRenderer, bnd ) == 0 )
- {
- bnd[ 1 ] = bnd[ 3 ] = bnd[ 5 ] = 100;
- bnd[ 0 ] = bnd[ 2 ] = bnd[ 4 ] = 0;
- }
- float aLength = 0;
-
- aLength = bnd[ 1 ]-bnd[ 0 ];
- aLength = max( ( bnd[ 3 ] - bnd[ 2 ] ),aLength );
- aLength = max( ( bnd[ 5 ] - bnd[ 4 ] ),aLength );
-
- static float EPS_SIZE = 5.0E-3;
- theNewSize = aLength * theSizeInPercents / 100.0;
-
- // if the new trihedron size have sufficient difference, then apply the value
- return fabs( theNewSize - theSize) > theSize * EPS_SIZE ||
- fabs( theNewSize-theSize ) > theNewSize * EPS_SIZE;
-}
+++ /dev/null
-#ifndef VTKVIEWER_UTILITIES_H
-#define VTKVIEWER_UTILITIES_H
-
-#include <VTKViewer.h>
-
-class vtkRenderer;
-
-VTKVIEWER_EXPORT extern void ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint = false);
-VTKVIEWER_EXPORT extern int ComputeVisiblePropBounds(vtkRenderer* theRenderer, float theBounds[6]);
-VTKVIEWER_EXPORT extern void ResetCameraClippingRange(vtkRenderer* theRenderer);
-VTKVIEWER_EXPORT extern bool ComputeTrihedronSize(vtkRenderer* theRenderer, double& theNewSize,
- const double theSize, const float theSizeInPercents);
-
-#ifndef max
-#define max(a,b) (((a) > (b)) ? (a) : (b))
-#endif
-
-#ifndef min
-#define min(a,b) (((a) < (b)) ? (a) : (b))
-#endif
-
-#endif
+++ /dev/null
-/*=========================================================================
-
- 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"
-using namespace std;
-
-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;
-
-}
-
-/*!Calculate output.*/
-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";
-}
-
-/*!Destructor.*/
-VTKViewer_VectorText::~VTKViewer_VectorText()
-{
- if (this->Text)
- {
- delete [] this->Text;
- }
-}
+++ /dev/null
-/*=========================================================================
-
- 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"
-/*!Generates vtkPolyData from an input text string.
- *@see vtkVectorText
- */
-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
-
-
+++ /dev/null
-#include "VTKViewer_ViewManager.h"
-#include "VTKViewer_ViewModel.h"
-
-int VTKViewer_ViewManager::_VTKViewMgr_Id = 0;
-
-/*!Constructor.Initialize SIUT_ViewManager by \a study and \a theDesktop.
- * Create new instance of VTKViewer_Viewer and set view model by it.
- */
-VTKViewer_ViewManager::VTKViewer_ViewManager( SUIT_Study* study, SUIT_Desktop* theDesktop )
-: SUIT_ViewManager( study, theDesktop )
-{
- myId = ++_VTKViewMgr_Id;
- setViewModel( new VTKViewer_Viewer() );
-}
-
-/*!Destructor.*/
-VTKViewer_ViewManager::~VTKViewer_ViewManager()
-{
- /*!Do nothing.*/
-}
-
-/*!Sets view window name*/
-void VTKViewer_ViewManager::setViewName(SUIT_ViewWindow* theView)
-{
- int aPos = myViews.find(theView);
- theView->setCaption( tr( "VTK_VIEW_TITLE" ).arg( myId ).arg( aPos + 1 ) );
-}
+++ /dev/null
-#ifndef VTKVIEWER_VIEWMANAGER_H
-#define VTKVIEWER_VIEWMANAGER_H
-
-#include "VTKViewer.h"
-
-#include <SUIT_ViewManager.h>
-
-class SUIT_Desktop;
-
-/*!View manager.*/
-class VTKVIEWER_EXPORT VTKViewer_ViewManager : public SUIT_ViewManager
-{
- Q_OBJECT
-
-public:
- VTKViewer_ViewManager( SUIT_Study* study, SUIT_Desktop* );
- virtual ~VTKViewer_ViewManager();
-
-protected:
- void setViewName( SUIT_ViewWindow* theView );
-
-private:
- int myId;
- static int _VTKViewMgr_Id;
-};
-
-#endif
+++ /dev/null
-#include "VTKViewer_ViewModel.h"
-#include "VTKViewer_ViewWindow.h"
-#include "VTKViewer_ViewManager.h"
-#include "VTKViewer_RenderWindowInteractor.h"
-
-#include "SUIT_ViewWindow.h"
-#include "SUIT_Desktop.h"
-#include "SUIT_Session.h"
-
-#include <qpainter.h>
-#include <qapplication.h>
-#include <qcolordialog.h>
-#include <qpalette.h>
-#include <qpopupmenu.h>
-
-/*!Constructor.Sets background color to black.*/
-VTKViewer_Viewer::VTKViewer_Viewer()
-: SUIT_ViewModel(),
-myBgColor( Qt::black )
-{
-}
-
-/*!Destructor.*/
-VTKViewer_Viewer::~VTKViewer_Viewer()
-{
-}
-
-/*!Gets background color.*/
-QColor VTKViewer_Viewer::backgroundColor() const
-{
- return myBgColor;
-}
-
-/*!Sets background color.*/
-void VTKViewer_Viewer::setBackgroundColor( const QColor& c )
-{
- if ( c.isValid() )
- myBgColor = c;
-}
-
-/*!Create new instance of VTKViewer_ViewWindow, sets background color and return pointer to it.*/
-SUIT_ViewWindow* VTKViewer_Viewer::createView( SUIT_Desktop* theDesktop )
-{
- VTKViewer_ViewWindow* vw = new VTKViewer_ViewWindow( theDesktop, this );
- vw->setBackgroundColor( myBgColor );
- return vw;
-}
-
-/*!Sets view manager and connect slots.*/
-void VTKViewer_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
-{
- SUIT_ViewModel::setViewManager(theViewManager);
- connect(theViewManager, SIGNAL(mousePress(SUIT_ViewWindow*, QMouseEvent*)),
- this, SLOT(onMousePress(SUIT_ViewWindow*, QMouseEvent*)));
-
- connect(theViewManager, SIGNAL(mouseMove(SUIT_ViewWindow*, QMouseEvent*)),
- this, SLOT(onMouseMove(SUIT_ViewWindow*, QMouseEvent*)));
-
- connect(theViewManager, SIGNAL(mouseRelease(SUIT_ViewWindow*, QMouseEvent*)),
- this, SLOT(onMouseRelease(SUIT_ViewWindow*, QMouseEvent*)));
-}
-
-/*!Insert context into popup menu.*/
-void VTKViewer_Viewer::contextMenuPopup(QPopupMenu* thePopup)
-{
- thePopup->insertItem( tr( "MEN_DUMP_VIEW" ), this, SLOT( onDumpView() ) );
- thePopup->insertItem( tr( "MEN_CHANGE_BACKGROUD" ), this, SLOT( onChangeBgColor() ) );
-
- thePopup->insertSeparator();
-
- VTKViewer_ViewWindow* aView = (VTKViewer_ViewWindow*)(myViewManager->getActiveView());
- if ( aView && !aView->getToolBar()->isVisible() )
- thePopup->insertItem( tr( "MEN_SHOW_TOOLBAR" ), this, SLOT( onShowToolbar() ) );
-}
-
-/*!On mouse press event.*/
-void VTKViewer_Viewer::onMousePress(SUIT_ViewWindow* vw, QMouseEvent* event)
-{
- VTKViewer_RenderWindowInteractor* rwi = 0;
- if ( vw && vw->inherits( "VTKViewer_ViewWindow" ) )
- rwi = ((VTKViewer_ViewWindow*)vw)->getRWInteractor();
- if ( !rwi )
- return;
-
- switch(event->button()) {
- case LeftButton:
- rwi->LeftButtonPressed(event) ;
- break ;
- case MidButton:
- rwi->MiddleButtonPressed(event) ;
- break ;
- case RightButton:
- rwi->RightButtonPressed(event) ;
- break;
- default:
- break ;
- }
-}
-
-/*!On mouse move event.*/
-void VTKViewer_Viewer::onMouseMove(SUIT_ViewWindow* vw, QMouseEvent* event)
-{
- VTKViewer_RenderWindowInteractor* rwi = 0;
- if ( vw && vw->inherits( "VTKViewer_ViewWindow" ) )
- rwi = ((VTKViewer_ViewWindow*)vw)->getRWInteractor();
- if ( rwi )
- rwi->MouseMove( event );
-}
-
-/*!On mouse release event.*/
-void VTKViewer_Viewer::onMouseRelease(SUIT_ViewWindow* vw, QMouseEvent* event)
-{
- VTKViewer_RenderWindowInteractor* rwi = 0;
- if ( vw && vw->inherits( "VTKViewer_ViewWindow" ) )
- rwi = ((VTKViewer_ViewWindow*)vw)->getRWInteractor();
- if ( !rwi )
- return;
-
- switch(event->button()) {
- case LeftButton:
- rwi->LeftButtonReleased(event) ;
- break ;
- case MidButton:
- rwi->MiddleButtonReleased(event) ;
- break ;
- case RightButton:
- rwi->RightButtonReleased(event) ;
- break;
- default:
- break ;
- }
-}
-
-/*!Sets flag to enable selection \a isEnable.*/
-void VTKViewer_Viewer::enableSelection(bool isEnabled)
-{
- mySelectionEnabled = isEnabled;
- //!! To be done for view windows
-}
-
-/*!Sets flag to multi selection enable \a isEnable.*/
-void VTKViewer_Viewer::enableMultiselection(bool isEnable)
-{
- myMultiSelectionEnabled = isEnable;
- //!! To be done for view windows
-}
-
-/*!On dump view event.*/
-void VTKViewer_Viewer::onDumpView()
-{
- VTKViewer_ViewWindow* aView = (VTKViewer_ViewWindow*)(myViewManager->getActiveView());
- if ( aView )
- aView->onDumpView();
-}
-
-/*!On change back ground color event.*/
-void VTKViewer_Viewer::onChangeBgColor()
-{
- VTKViewer_ViewWindow* aView = (VTKViewer_ViewWindow*)(myViewManager->getActiveView());
- if ( !aView )
- return;
-
- QColor aColor = QColorDialog::getColor( aView->backgroundColor(), aView);
- if ( aColor.isValid() )
- aView->setBackgroundColor(aColor);
-}
-
-/*!On show tool bar event.*/
-void VTKViewer_Viewer::onShowToolbar() {
- VTKViewer_ViewWindow* aView = (VTKViewer_ViewWindow*)(myViewManager->getActiveView());
- if ( aView )
- aView->getToolBar()->show();
-}
+++ /dev/null
-#ifndef VTKVIEWER_VIEWMODEL_H
-#define VTKVIEWER_VIEWMODEL_H
-
-#include "VTKViewer.h"
-#include "SUIT_ViewModel.h"
-
-#include <qcolor.h>
-
-class SUIT_ViewWindow;
-class SUIT_Desktop;
-
-class VTKVIEWER_EXPORT VTKViewer_Viewer: public SUIT_ViewModel
-{
- Q_OBJECT
-
-public:
- /*!Initialize type of viewer.*/
- static QString Type() { return "VTKViewer"; }
-
- VTKViewer_Viewer();
- virtual ~VTKViewer_Viewer();
-
- virtual SUIT_ViewWindow* createView(SUIT_Desktop* theDesktop);
-
- virtual void setViewManager(SUIT_ViewManager* theViewManager);
- virtual void contextMenuPopup( QPopupMenu* );
- /*!Gets type of viewer.*/
- virtual QString getType() const { return Type(); }
-
-public:
- void enableSelection(bool isEnabled);
- /*!Checks: is selection enabled*/
- bool isSelectionEnabled() const { return mySelectionEnabled; }
-
- void enableMultiselection(bool isEnable);
- /*!Checks: is multi selection enabled*/
- bool isMultiSelectionEnabled() const { return myMultiSelectionEnabled; }
-
- int getSelectionCount() const;
-
- QColor backgroundColor() const;
- void setBackgroundColor( const QColor& );
-
-signals:
- void selectionChanged();
-
-protected slots:
- void onMousePress(SUIT_ViewWindow*, QMouseEvent*);
- void onMouseMove(SUIT_ViewWindow*, QMouseEvent*);
- void onMouseRelease(SUIT_ViewWindow*, QMouseEvent*);
-
- void onDumpView();
- void onShowToolbar();
- void onChangeBgColor();
-
-private:
- QColor myBgColor;
- bool mySelectionEnabled;
- bool myMultiSelectionEnabled;
-};
-
-#endif
+++ /dev/null
-#include "VTKViewer_ViewWindow.h"
-#include "VTKViewer_ViewModel.h"
-#include "VTKViewer_RenderWindow.h"
-#include "VTKViewer_RenderWindowInteractor.h"
-#include "VTKViewer_InteractorStyle.h"
-#include "VTKViewer_Trihedron.h"
-#include "VTKViewer_Transform.h"
-#include "VTKViewer_Utilities.h"
-
-#include "SUIT_Session.h"
-#include "SUIT_ToolButton.h"
-#include "SUIT_MessageBox.h"
-
-#include "SUIT_Tools.h"
-#include "SUIT_ResourceMgr.h"
-
-#include <qapplication.h>
-
-#include <vtkRenderer.h>
-#include <vtkCamera.h>
-
-/*! Construction*/
-VTKViewer_ViewWindow::VTKViewer_ViewWindow( SUIT_Desktop* theDesktop,
- VTKViewer_Viewer* theModel,
- VTKViewer_InteractorStyle* iStyle,
- VTKViewer_RenderWindowInteractor* rw )
-: SUIT_ViewWindow( theDesktop )
-{
- myModel = theModel;
-
- myTrihedron = VTKViewer_Trihedron::New();
- myTransform = VTKViewer_Transform::New();
- myRenderer = vtkRenderer::New() ;
-
- myTrihedron->AddToRender( myRenderer );
-
- myRenderWindow = new VTKViewer_RenderWindow( this, "RenderWindow" );
- setCentralWidget(myRenderWindow);
- myRenderWindow->setFocusPolicy( StrongFocus );
- myRenderWindow->setFocus();
-
- myRenderWindow->getRenderWindow()->AddRenderer( myRenderer );
-
- myRenderer->GetActiveCamera()->ParallelProjectionOn();
- myRenderer->LightFollowCameraOn();
- myRenderer->TwoSidedLightingOn();
-
- // Set BackgroundColor
- QString BgrColorRed = "0";//SUIT_CONFIG->getSetting("VTKViewer:BackgroundColorRed");
- QString BgrColorGreen = "0";//SUIT_CONFIG->getSetting("VTKViewer:BackgroundColorGreen");
- QString BgrColorBlue = "0";//SUIT_CONFIG->getSetting("VTKViewer:BackgroundColorBlue");
-
- if( !BgrColorRed.isEmpty() && !BgrColorGreen.isEmpty() && !BgrColorBlue.isEmpty() )
- myRenderer->SetBackground( BgrColorRed.toInt()/255., BgrColorGreen.toInt()/255., BgrColorBlue.toInt()/255. );
- else
- myRenderer->SetBackground( 0, 0, 0 );
-
- // Create an interactor.
- myRWInteractor = rw ? rw : VTKViewer_RenderWindowInteractor::New();
- myRWInteractor->SetRenderWindow( myRenderWindow->getRenderWindow() );
-
- VTKViewer_InteractorStyle* RWS = iStyle ? iStyle : VTKViewer_InteractorStyle::New();
- RWS->setGUIWindow( myRenderWindow );
- myRWInteractor->SetInteractorStyle( RWS );
-
- myRWInteractor->Initialize();
- RWS->setTriedron( myTrihedron );
- RWS->FindPokedRenderer( 0, 0 );
-
- setCentralWidget( myRenderWindow );
-
- myToolBar = new QToolBar(this);
- myToolBar->setCloseMode(QDockWindow::Undocked);
- myToolBar->setLabel(tr("LBL_TOOLBAR_LABEL"));
-
- createActions();
- createToolBar();
-
- connect( myRenderWindow, SIGNAL(KeyPressed( QKeyEvent* )),
- this, SLOT(onKeyPressed( QKeyEvent* )) );
- connect( myRenderWindow, SIGNAL(KeyReleased( QKeyEvent* )),
- this, SLOT(onKeyReleased( QKeyEvent* )) );
- connect( myRenderWindow, SIGNAL(MouseButtonPressed( QMouseEvent* )),
- this, SLOT(onMousePressed( QMouseEvent* )) );
- connect( myRenderWindow, SIGNAL(MouseButtonReleased( QMouseEvent* )),
- this, SLOT(onMouseReleased( QMouseEvent* )) );
- connect( myRenderWindow, SIGNAL(MouseDoubleClicked( QMouseEvent* )),
- this, SLOT(onMouseDoubleClicked( QMouseEvent* )) );
- connect( myRenderWindow, SIGNAL(MouseMove( QMouseEvent* )),
- this, SLOT(onMouseMoving( QMouseEvent* )) );
- connect( myRWInteractor, SIGNAL(RenderWindowModified()),
- myRenderWindow, SLOT(update()) );
-
- connect( myRenderWindow, SIGNAL(contextMenuRequested( QContextMenuEvent * )),
- this, SIGNAL(contextMenuRequested( QContextMenuEvent * )) );
-
- connect( myRWInteractor, SIGNAL(contextMenuRequested( QContextMenuEvent * )),
- this, SIGNAL(contextMenuRequested( QContextMenuEvent * )) );
-
-
- onResetView();
-}
-
-/*!Destructor.*/
-VTKViewer_ViewWindow::~VTKViewer_ViewWindow()
-{
- myTransform->Delete();
- // In order to ensure that the interactor unregisters
- // this RenderWindow, we assign a NULL RenderWindow to
- // it before deleting it.
- myRWInteractor->SetRenderWindow( NULL );
- myRWInteractor->Delete();
-
- //m_RW->Delete() ;
- myRenderer->RemoveAllProps();
- //m_Renderer->Delete() ;
- myTrihedron->Delete();
-}
-
-/*!Checks: is trihedron displayed.*/
-bool VTKViewer_ViewWindow::isTrihedronDisplayed(){
- return myTrihedron->GetVisibility() == VTKViewer_Trihedron::eOn;
-}
-
-/*!Activates 'zooming' transformation*/
-void VTKViewer_ViewWindow::activateZoom()
-{
- myRWInteractor->GetInteractorStyle()->startZoom();
-}
-
-/*!Activates 'panning' transformation*/
-void VTKViewer_ViewWindow::activatePanning()
-{
- myRWInteractor->GetInteractorStyle()->startPan();
-}
-
-/*!Activates 'rotation' transformation*/
-void VTKViewer_ViewWindow::activateRotation()
-{
- myRWInteractor->GetInteractorStyle()->startRotate();
-}
-
-/*!Activate global panning.*/
-void VTKViewer_ViewWindow::activateGlobalPanning()
-{
- //if(myTrihedron->GetVisibleActorCount(myRenderer))
- myRWInteractor->GetInteractorStyle()->startGlobalPan();
-}
-
-/*!Activates 'fit area' transformation*/
-void VTKViewer_ViewWindow::activateWindowFit()
-{
- myRWInteractor->GetInteractorStyle()->startFitArea();
-}
-
-/*!Create actions:*/
-void VTKViewer_ViewWindow::createActions()
-{
- if (!myActionsMap.isEmpty()) return;
-
- SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
-
- QtxAction* aAction;
-
- //! \li Dump view
- aAction = new QtxAction(tr("MNU_DUMP_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_DUMP" ) ),
- tr( "MNU_DUMP_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_DUMP_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onDumpView()));
- myActionsMap[ DumpId ] = aAction;
-
- //! \li FitAll
- aAction = new QtxAction(tr("MNU_FITALL"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_FITALL" ) ),
- tr( "MNU_FITALL" ), 0, this);
- aAction->setStatusTip(tr("DSC_FITALL"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onFitAll()));
- myActionsMap[ FitAllId ] = aAction;
-
- //! \li FitRect
- aAction = new QtxAction(tr("MNU_FITRECT"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_FITAREA" ) ),
- tr( "MNU_FITRECT" ), 0, this);
- aAction->setStatusTip(tr("DSC_FITRECT"));
- connect(aAction, SIGNAL(activated()), this, SLOT(activateWindowFit()));
- myActionsMap[ FitRectId ] = aAction;
-
- //! \li Zoom
- aAction = new QtxAction(tr("MNU_ZOOM_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_ZOOM" ) ),
- tr( "MNU_ZOOM_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_ZOOM_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(activateZoom()));
- myActionsMap[ ZoomId ] = aAction;
-
- //! \li Panning
- aAction = new QtxAction(tr("MNU_PAN_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_PAN" ) ),
- tr( "MNU_PAN_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_PAN_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(activatePanning()));
- myActionsMap[ PanId ] = aAction;
-
- //! \li Global Panning
- aAction = new QtxAction(tr("MNU_GLOBALPAN_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_GLOBALPAN" ) ),
- tr( "MNU_GLOBALPAN_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_GLOBALPAN_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(activateGlobalPanning()));
- myActionsMap[ GlobalPanId ] = aAction;
-
- //! \li Rotation
- aAction = new QtxAction(tr("MNU_ROTATE_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_ROTATE" ) ),
- tr( "MNU_ROTATE_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_ROTATE_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(activateRotation()));
- myActionsMap[ RotationId ] = aAction;
-
- //! \li Projections
- aAction = new QtxAction(tr("MNU_FRONT_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_FRONT" ) ),
- tr( "MNU_FRONT_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_FRONT_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onFrontView()));
- myActionsMap[ FrontId ] = aAction;
-
- //! \li Back view
- aAction = new QtxAction(tr("MNU_BACK_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_BACK" ) ),
- tr( "MNU_BACK_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_BACK_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onBackView()));
- myActionsMap[ BackId ] = aAction;
-
- //! \li Top view
- aAction = new QtxAction(tr("MNU_TOP_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_TOP" ) ),
- tr( "MNU_TOP_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_TOP_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onTopView()));
- myActionsMap[ TopId ] = aAction;
-
- //! \li Bottom view
- aAction = new QtxAction(tr("MNU_BOTTOM_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_BOTTOM" ) ),
- tr( "MNU_BOTTOM_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_BOTTOM_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onBottomView()));
- myActionsMap[ BottomId ] = aAction;
-
- //! \li Left view
- aAction = new QtxAction(tr("MNU_LEFT_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_LEFT" ) ),
- tr( "MNU_LEFT_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_LEFT_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onLeftView()));
- myActionsMap[ LeftId ] = aAction;
-
- //! \li Right view
- aAction = new QtxAction(tr("MNU_RIGHT_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_RIGHT" ) ),
- tr( "MNU_RIGHT_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_RIGHT_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onRightView()));
- myActionsMap[ RightId ] = aAction;
-
- //! \li Reset
- aAction = new QtxAction(tr("MNU_RESET_VIEW"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_RESET" ) ),
- tr( "MNU_RESET_VIEW" ), 0, this);
- aAction->setStatusTip(tr("DSC_RESET_VIEW"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onResetView()));
- myActionsMap[ ResetId ] = aAction;
-
- //! \li Trihedron shown
- aAction = new QtxAction(tr("MNU_SHOW_TRIHEDRON"), aResMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_TRIHEDRON" ) ),
- tr( "MNU_SHOW_TRIHEDRON" ), 0, this);
- aAction->setStatusTip(tr("DSC_SHOW_TRIHEDRON"));
- connect(aAction, SIGNAL(activated()), this, SLOT(onTrihedronShow()));
- myActionsMap[ TrihedronShowId ] = aAction;
-}
-
-/*!Create tool bar.*/
-void VTKViewer_ViewWindow::createToolBar()
-{
- myActionsMap[DumpId]->addTo(myToolBar);
- myActionsMap[TrihedronShowId]->addTo(myToolBar);
-
- SUIT_ToolButton* aScaleBtn = new SUIT_ToolButton(myToolBar);
- aScaleBtn->AddAction(myActionsMap[FitAllId]);
- aScaleBtn->AddAction(myActionsMap[FitRectId]);
- aScaleBtn->AddAction(myActionsMap[ZoomId]);
-
- SUIT_ToolButton* aPanningBtn = new SUIT_ToolButton(myToolBar);
- aPanningBtn->AddAction(myActionsMap[PanId]);
- aPanningBtn->AddAction(myActionsMap[GlobalPanId]);
-
- myActionsMap[RotationId]->addTo(myToolBar);
-
- SUIT_ToolButton* aViewsBtn = new SUIT_ToolButton(myToolBar);
- aViewsBtn->AddAction(myActionsMap[FrontId]);
- aViewsBtn->AddAction(myActionsMap[BackId]);
- aViewsBtn->AddAction(myActionsMap[TopId]);
- aViewsBtn->AddAction(myActionsMap[BottomId]);
- aViewsBtn->AddAction(myActionsMap[LeftId]);
- aViewsBtn->AddAction(myActionsMap[RightId]);
-
- myActionsMap[ResetId]->addTo(myToolBar);
-}
-
-/*!On front view event.*/
-void VTKViewer_ViewWindow::onFrontView()
-{
- vtkCamera* camera = myRenderer->GetActiveCamera();
- camera->SetPosition(1,0,0);
- camera->SetViewUp(0,0,1);
- camera->SetFocalPoint(0,0,0);
- onFitAll();
-}
-
-/*!On back view slot.*/
-void VTKViewer_ViewWindow::onBackView()
-{
- vtkCamera* camera = myRenderer->GetActiveCamera();
- camera->SetPosition(-1,0,0);
- camera->SetViewUp(0,0,1);
- camera->SetFocalPoint(0,0,0);
- onFitAll();
-}
-
-/*!On back view slot.*/
-void VTKViewer_ViewWindow::onTopView()
-{
- vtkCamera* camera = myRenderer->GetActiveCamera();
- camera->SetPosition(0,0,1);
- camera->SetViewUp(0,1,0);
- camera->SetFocalPoint(0,0,0);
- onFitAll();
-}
-
-/*!On bottom view slot.*/
-void VTKViewer_ViewWindow::onBottomView()
-{
- vtkCamera* camera = myRenderer->GetActiveCamera();
- camera->SetPosition(0,0,-1);
- camera->SetViewUp(0,1,0);
- camera->SetFocalPoint(0,0,0);
- onFitAll();
-}
-
-/*!On left view slot.*/
-void VTKViewer_ViewWindow::onLeftView()
-{
- vtkCamera* camera = myRenderer->GetActiveCamera();
- camera->SetPosition(0,-1,0);
- camera->SetViewUp(0,0,1);
- camera->SetFocalPoint(0,0,0);
- onFitAll();
-}
-
-/*!On right view slot.*/
-void VTKViewer_ViewWindow::onRightView()
-{
- vtkCamera* camera = myRenderer->GetActiveCamera();
- camera->SetPosition(0,1,0);
- camera->SetViewUp(0,0,1);
- camera->SetFocalPoint(0,0,0);
- onFitAll();
-}
-
-/*!On reset view slot.*/
-void VTKViewer_ViewWindow::onResetView()
-{
- int aTriedronIsVisible = isTrihedronDisplayed();
- myTrihedron->SetVisibility( VTKViewer_Trihedron::eOnlyLineOn );
- ::ResetCamera(myRenderer,true);
- vtkCamera* aCamera = myRenderer->GetActiveCamera();
- aCamera->SetPosition(1,-1,1);
- aCamera->SetViewUp(0,0,1);
- ::ResetCamera(myRenderer,true);
- if(aTriedronIsVisible) myTrihedron->VisibilityOn();
- else myTrihedron->VisibilityOff();
- static float aCoeff = 3.0;
- aCamera->SetParallelScale(aCoeff*aCamera->GetParallelScale());
- Repaint();
-}
-
-/*!On fit all slot.*/
-void VTKViewer_ViewWindow::onFitAll()
-{
- myRWInteractor->GetInteractorStyle()->ViewFitAll();
- Repaint();
-}
-
-/*!Set background of the viewport*/
-void VTKViewer_ViewWindow::setBackgroundColor( const QColor& color )
-{
- if ( myRenderer )
- myRenderer->SetBackground( color.red()/255., color.green()/255., color.blue()/255. );
-}
-
-/*!Returns background of the viewport*/
-QColor VTKViewer_ViewWindow::backgroundColor() const
-{
- float backint[3];
- if ( myRenderer ) {
- myRenderer->GetBackground( backint );
- return QColor(int(backint[0]*255), int(backint[1]*255), int(backint[2]*255));
- }
- return SUIT_ViewWindow::backgroundColor();
-}
-
-/*!Repaint window. If \a theUpdateTrihedron is true - recalculate trihedron.*/
-void VTKViewer_ViewWindow::Repaint(bool theUpdateTrihedron)
-{
- if (theUpdateTrihedron) onAdjustTrihedron();
- myRenderWindow->update();
-}
-
-/*!Get scale of transformation filter.*/
-void VTKViewer_ViewWindow::GetScale( double theScale[3] ) {
- myTransform->GetScale( theScale );
-}
-
-/*!Set scale of transformation filter and repaint window.*/
-void VTKViewer_ViewWindow::SetScale( double theScale[3] ) {
- myTransform->SetMatrixScale( theScale[0], theScale[1], theScale[2] );
- myRWInteractor->Render();
- Repaint();
-}
-
-/*!Calculation trihedron size.*/
-void VTKViewer_ViewWindow::onAdjustTrihedron(){
- if( !isTrihedronDisplayed() )
- return;
- int aVisibleNum = myTrihedron->GetVisibleActorCount(myRenderer);
- if(aVisibleNum){
- // calculating diagonal of visible props of the renderer
- float bnd[6];
- myTrihedron->VisibilityOff();
- ::ComputeVisiblePropBounds(myRenderer,bnd);
- myTrihedron->VisibilityOn();
- float aLength = 0;
- static bool CalcByDiag = false;
- if(CalcByDiag){
- aLength = sqrt((bnd[1]-bnd[0])*(bnd[1]-bnd[0])+
- (bnd[3]-bnd[2])*(bnd[3]-bnd[2])+
- (bnd[5]-bnd[4])*(bnd[5]-bnd[4]));
- }else{
- aLength = bnd[1]-bnd[0];
- aLength = max((bnd[3]-bnd[2]),aLength);
- aLength = max((bnd[5]-bnd[4]),aLength);
- }
-
- static float aSizeInPercents = 105;
- QString aSetting;// = SUIT_CONFIG->getSetting("Viewer:TrihedronSize");
- if(!aSetting.isEmpty()) aSizeInPercents = aSetting.toFloat();
-
- static float EPS_SIZE = 5.0E-3;
- float aSize = myTrihedron->GetSize();
- float aNewSize = aLength*aSizeInPercents/100.0;
- // if the new trihedron size have sufficient difference, then apply the value
- if(fabs(aNewSize-aSize) > aSize*EPS_SIZE || fabs(aNewSize-aSize) > aNewSize*EPS_SIZE){
- myTrihedron->SetSize(aNewSize);
- }
- }
- ::ResetCameraClippingRange(myRenderer);
-}
-
-/*!Emit key pressed.*/
-void VTKViewer_ViewWindow::onKeyPressed(QKeyEvent* event)
-{
- emit keyPressed( this, event );
-}
-
-/*!Emit key released.*/
-void VTKViewer_ViewWindow::onKeyReleased(QKeyEvent* event)
-{
- emit keyReleased( this, event );
-}
-
-/*!Emit key pressed.*/
-void VTKViewer_ViewWindow::onMousePressed(QMouseEvent* event)
-{
- emit mousePressed(this, event);
-}
-
-/*!Emit mouse released.*/
-void VTKViewer_ViewWindow::onMouseReleased(QMouseEvent* event)
-{
- emit mouseReleased( this, event );
-}
-
-/*!Emit mouse moving.*/
-void VTKViewer_ViewWindow::onMouseMoving(QMouseEvent* event)
-{
- emit mouseMoving( this, event );
-}
-
-/*!Emit mouse double clicked.*/
-void VTKViewer_ViewWindow::onMouseDoubleClicked( QMouseEvent* event )
-{
- emit mouseDoubleClicked( this, event );
-}
-
-/*!Insert actor to renderer and transformation filter.
- *Move Internal actors, if \a theMoveInternalActors is true.
- */
-void VTKViewer_ViewWindow::InsertActor( VTKViewer_Actor* theActor, bool theMoveInternalActors ){
- theActor->AddToRender(myRenderer);
- theActor->SetTransform(myTransform);
- if(theMoveInternalActors)
- myRWInteractor->MoveInternalActors();
-}
-
-/*!Add actor.Repaint window if \a theUpdate is true.
- *@see InsertActor( VTKViewer_Actor* theActor, bool theMoveInternalActors )
- */
-void VTKViewer_ViewWindow::AddActor( VTKViewer_Actor* theActor, bool theUpdate /*=false*/ ){
- InsertActor(theActor);
- if(theUpdate)
- Repaint();
-}
-
-/*!Remove \a theActor from renderer and pepaint, if \a theUpdate is true.*/
-void VTKViewer_ViewWindow::RemoveActor( VTKViewer_Actor* theActor, bool theUpdate /*=false*/ ){
- theActor->RemoveFromRender(myRenderer);
- if(theUpdate)
- Repaint();
-}
-
-/*!@see RemoveActor() and InsertActor().*/
-void VTKViewer_ViewWindow::MoveActor( VTKViewer_Actor* theActor)
-{
- RemoveActor(theActor);
- InsertActor(theActor,true);
-}
-
-/*!On trihedron show slot.*/
-void VTKViewer_ViewWindow::onTrihedronShow()
-{
- if (isTrihedronDisplayed())
- myTrihedron->VisibilityOff();
- else
- myTrihedron->VisibilityOn();
- myRenderWindow->update();
-}
-
-/*!Dump view.*/
-QImage VTKViewer_ViewWindow::dumpView()
-{
- QPixmap px = QPixmap::grabWindow( myRenderWindow->winId() );
- return px.convertToImage();
-}
+++ /dev/null
-#ifndef VTKVIEWER_VIEWWINDOW_H
-#define VTKVIEWER_VIEWWINDOW_H
-
-#include "VTKViewer.h"
-
-#include "SUIT_ViewWindow.h"
-
-#include "QtxAction.h"
-
-class vtkRenderer;
-class SUIT_Desktop;
-class VTKViewer_Viewer;
-class VTKViewer_Trihedron;
-class VTKViewer_Transform;
-class VTKViewer_RenderWindow;
-class VTKViewer_InteractorStyle;
-class VTKViewer_RenderWindowInteractor;
-class VTKViewer_Actor;
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class VTKVIEWER_EXPORT VTKViewer_ViewWindow : public SUIT_ViewWindow
-{
- Q_OBJECT
-
-public:
- VTKViewer_ViewWindow( SUIT_Desktop*, VTKViewer_Viewer*,
- VTKViewer_InteractorStyle* = 0,
- VTKViewer_RenderWindowInteractor* = 0 );
- virtual ~VTKViewer_ViewWindow();
-
- /*!Gets tool bar.*/
- QToolBar* getToolBar() { return myToolBar; }
-
- void setBackgroundColor( const QColor& );
- QColor backgroundColor() const;
-
- /*!Gets renderer.*/
- vtkRenderer* getRenderer() { return myRenderer; }
- /*!Gets render window.*/
- VTKViewer_RenderWindow* getRenderWindow() { return myRenderWindow; }
- /*!Gets render window interactor.*/
- VTKViewer_RenderWindowInteractor* getRWInteractor() { return myRWInteractor; }
- bool isTrihedronDisplayed();
-
- void Repaint( bool theUpdateTrihedron = true );
- void onAdjustTrihedron();
- void GetScale( double theScale[3] );
- void SetScale( double theScale[3] );
- void AddActor( VTKViewer_Actor*, bool update = false );
- void RemoveActor( VTKViewer_Actor*, bool update = false);
-
-public slots:
- void onFrontView();
- void onBackView();
- void onTopView();
- void onBottomView();
- void onLeftView();
- void onRightView();
- void onResetView();
- void onFitAll();
- void activateZoom();
- void activateWindowFit();
- void activateRotation();
- void activatePanning();
- void activateGlobalPanning();
- void onTrihedronShow();
-
-protected:
- QImage dumpView();
-
-protected slots:
- void onKeyPressed(QKeyEvent* event);
- void onKeyReleased(QKeyEvent* event);
- void onMousePressed(QMouseEvent* event);
- void onMouseDoubleClicked(QMouseEvent* event);
- void onMouseReleased(QMouseEvent* event);
- void onMouseMoving(QMouseEvent* event);
-
-private:
- void InsertActor( VTKViewer_Actor* theActor,
- bool theMoveInternalActors = false );
- void MoveActor( VTKViewer_Actor* theActor );
-
-private:
- enum { DumpId, FitAllId, FitRectId, ZoomId, PanId, GlobalPanId, RotationId,
- FrontId, BackId, TopId, BottomId, LeftId, RightId, ResetId, TrihedronShowId };
- typedef QMap<int, QtxAction*> ActionsMap;
-
- void createActions();
- void createToolBar();
-
- VTKViewer_Viewer* myModel;
-
- vtkRenderer* myRenderer;
- VTKViewer_RenderWindow* myRenderWindow;
- VTKViewer_RenderWindowInteractor* myRWInteractor;
-
- VTKViewer_Trihedron* myTrihedron;
- VTKViewer_Transform* myTransform;
-
- QToolBar* myToolBar;
- ActionsMap myActionsMap;
-
- double myCurScale;
-
- friend class VTKViewer_RenderWindowInteractor;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
+++ /dev/null
-# SALOME SALOMEGUI : implementation of desktop and GUI kernel
-#
-# 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 : SALOMEGUI_icons.po
-# Module : SALOME
-
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 1999-02-23 15:38+0200\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "ICON_VTKVIEWER_VIEW_BACK"
-msgstr "view_back.png"
-
-msgid "ICON_VTKVIEWER_VIEW_BOTTOM"
-msgstr "view_bottom.png"
-
-msgid "ICON_VTKVIEWER_VIEW_FITALL"
-msgstr "view_fitall.png"
-
-msgid "ICON_VTKVIEWER_VIEW_FITAREA"
-msgstr "view_fitarea.png"
-
-msgid "ICON_VTKVIEWER_VIEW_FRONT"
-msgstr "view_front.png"
-
-msgid "ICON_VTKVIEWER_VIEW_GLOBALPAN"
-msgstr "view_glpan.png"
-
-msgid "ICON_VTKVIEWER_VIEW_LEFT"
-msgstr "view_left.png"
-
-msgid "ICON_VTKVIEWER_VIEW_PAN"
-msgstr "view_pan.png"
-
-msgid "ICON_VTKVIEWER_VIEW_RESET"
-msgstr "view_reset.png"
-
-msgid "ICON_VTKVIEWER_VIEW_RIGHT"
-msgstr "view_right.png"
-
-msgid "ICON_VTKVIEWER_VIEW_ROTATE"
-msgstr "view_rotate.png"
-
-msgid "ICON_VTKVIEWER_VIEW_TOP"
-msgstr "view_top.png"
-
-msgid "ICON_VTKVIEWER_VIEW_ZOOM"
-msgstr "view_zoom.png"
-
-msgid "ICON_VTKVIEWER_VIEW_TRIHEDRON"
-msgstr "view_triedre.png"
-
-msgid "ICON_VTKVIEWER_VIEW_DUMP"
-msgstr "view_camera_dump.png"
-
+++ /dev/null
-# SALOME SALOMEGUI : implementation of desktop and GUI kernel
-#
-# 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 : SALOMEGUI_msg_en.po
-# Module : SALOME
-
-msgid ""
-msgstr ""
-"Project-Id-Version: example-Qt-message-extraction\n"
-"POT-Creation-Date: 1999-02-23 15:38+0200\n"
-"PO-Revision-Date: 2005-05-31 13:25+0400\n"
-"Last-Translator: \n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-msgid "LBL_TOOLBAR_LABEL"
-msgstr "View Operations"
-
-msgid "DSC_FRONT_VIEW"
-msgstr "Front View"
-
-msgid "MNU_FRONT_VIEW"
-msgstr "Front"
-
-msgid "DSC_BACK_VIEW"
-msgstr "Back View"
-
-msgid "MNU_BACK_VIEW"
-msgstr "Back"
-
-msgid "DSC_TOP_VIEW"
-msgstr "Top View"
-
-msgid "MNU_TOP_VIEW"
-msgstr "Top"
-
-msgid "DSC_BOTTOM_VIEW"
-msgstr "Bottom View"
-
-msgid "MNU_BOTTOM_VIEW"
-msgstr "Bottom"
-
-msgid "DSC_LEFT_VIEW"
-msgstr "Left View"
-
-msgid "MNU_LEFT_VIEW"
-msgstr "Left"
-
-msgid "DSC_RIGHT_VIEW"
-msgstr "Right View"
-
-msgid "MNU_RIGHT_VIEW"
-msgstr "Right"
-
-msgid "DSC_RESET_VIEW"
-msgstr "Reset View Point"
-
-msgid "MNU_RESET_VIEW"
-msgstr "Reset"
-
-msgid "DSC_FITALL"
-msgstr "Fit all objects inside the view frame"
-
-msgid "MNU_FITALL"
-msgstr "Fit All"
-
-msgid "DSC_FITRECT"
-msgstr "Fit area within the view frame"
-
-msgid "MNU_FITRECT"
-msgstr "Fit Area"
-
-msgid "DSC_ZOOM_VIEW"
-msgstr "Zoom the view"
-
-msgid "MNU_ZOOM_VIEW"
-msgstr "Zoom"
-
-msgid "DSC_PAN_VIEW"
-msgstr "Panning the view"
-
-msgid "MNU_PAN_VIEW"
-msgstr "Panning"
-
-msgid "DSC_GLOBALPAN_VIEW"
-msgstr "Selection of a new center of the view"
-
-msgid "MNU_GLOBALPAN_VIEW"
-msgstr "Global Panning"
-
-msgid "DSC_ROTATE_VIEW"
-msgstr "Rotation of the point of view around the scene center"
-
-msgid "MNU_ROTATE_VIEW"
-msgstr "Rotation"
-
-msgid "DSC_DUMP_VIEW"
-msgstr "Saves the active view in the image file"
-
-msgid "MNU_DUMP_VIEW"
-msgstr "Dump view..."
-
-msgid "VTK_IMAGE_FILES"
-msgstr "Images Files (*.bmp *.png *.jpg *.jpeg)"
-
-msgid "INF_APP_DUMP_VIEW"
-msgstr "Dump view"
-
-msgid "ERR_DOC_CANT_SAVE_FILE"
-msgstr "Cannot save file"
-
-msgid "ERROR"
-msgstr "Error"
-
-msgid "BUT_OK"
-msgstr "Ok"
-
-msgid "VTKViewer_Viewer::MEN_DUMP_VIEW"
-msgstr "Dump view..."
-
-msgid "VTKViewer_Viewer::MEN_SHOW_TOOLBAR"
-msgstr "Show toolbar"
-
-msgid "VTKViewer_Viewer::MEN_CHANGE_BACKGROUD"
-msgstr "Change background..."
-
-msgid "VTKViewer_ViewManager::VTK_VIEW_TITLE"
-msgstr "VTK scene:%1 - viewer:%2"
-
-msgid "MNU_SHOW_TRIHEDRON"
-msgstr "Show/Hide trihedron"
-
-msgid "DSC_SHOW_TRIHEDRON"
-msgstr "Show/Hide trihedron in the current view"