# Header configuration
# ====================
SALOME_XVERSION(${PROJECT_NAME})
--SALOME_CONFIGURE_FILE(XTPLUGIN_version.h.in XTPLUGIN_version.h)
++SALOME_CONFIGURE_FILE(XTPlugin_version.h.in XTPlugin_version.h INSTALL ${SALOME_INSTALL_HEADERS})
# Configuration export
# (here only the level 1 prerequisites are exposed)
Installation Instructions
*************************
--Copyright (C) 2014 Open CASCADE S.A.S.
++Copyright (C) 2014-2015 OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
- for csh:
-- % setenv XT_ROOT_DIR /path/to/the/XT-6.7.0
++ % setenv XT_ROOT_DIR /path/to/the/XT-6.9.0
% setenv LD_LIBRARY_PATH ${XT_ROOT_DIR}/lib:${LD_LIBRARY_PATH}
- for bash:
-- % export XT_ROOT_DIR=/path/to/the/XT-6.7.0
++ % export XT_ROOT_DIR=/path/to/the/XT-6.9.0
% export LD_LIBRARY_PATH=${XT_ROOT_DIR}/lib:${LD_LIBRARY_PATH}
Note, that OCCT Parasolid XDE product requires OCCT license library.
README
******
--Copyright (C) 2014 Open CASCADE S.A.S.
++Copyright (C) 2014-2015 OPEN CASCADE
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
- for csh:
-- % setenv XT_ROOT_DIR /path/to/the/XT-6.7.0
++ % setenv XT_ROOT_DIR /path/to/the/XT-6.9.0
% setenv LD_LIBRARY_PATH ${XT_ROOT_DIR}/lib:${LD_LIBRARY_PATH}
- for bash:
-- % export XT_ROOT_DIR=/path/to/the/XT-6.7.0
++ % export XT_ROOT_DIR=/path/to/the/XT-6.9.0
% export LD_LIBRARY_PATH=${XT_ROOT_DIR}/lib:${LD_LIBRARY_PATH}
* OCCT Parasolid XDE product requires also an OCCT license library.
+++ /dev/null
- // Copyright (C) 2014-2015 OPEN CASCADE
-// Copyright (C) 2014 OPEN CASCADE
--//
--// 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
--//
--// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
--//
--
--#if !defined(__XTPLUGIN_VERSION_H)
--#define __XTPLUGIN_VERSION_H
--
--/*!
-- Specify version of SALOME XTPLUGIN module, as follows
--
-- XTPLUGIN_VERSION_MAJOR : (integer) number identifying major version
-- XTPLUGIN_VERSION_MINOR : (integer) number identifying minor version
-- XTPLUGIN_VERSION_MAINTENANCE : (integer) number identifying maintenance version
-- XTPLUGIN_VERSION_STR : (string) complete version number "major.minor.maintenance"
-- XTPLUGIN_VERSION : (hex) complete version number (major << 16) + (minor << 8) + maintenance
-- XTPLUGIN_DEVELOPMENT : (integer) indicates development version when set to 1
--*/
--
--#define XTPLUGIN_VERSION_MAJOR @SALOMEXTPLUGIN_MAJOR_VERSION@
--#define XTPLUGIN_VERSION_MINOR @SALOMEXTPLUGIN_MINOR_VERSION@
--#define XTPLUGIN_VERSION_MAINTENANCE @SALOMEXTPLUGIN_PATCH_VERSION@
--#define XTPLUGIN_VERSION_STR "@SALOMEXTPLUGIN_VERSION@"
--#define XTPLUGIN_VERSION @SALOMEXTPLUGIN_XVERSION@
--#define XTPLUGIN_DEVELOPMENT @SALOMEXTPLUGIN_VERSION_DEV@
--
--#endif // __XTPLUGIN_VERSION_H
--- /dev/null
--- /dev/null
++// Copyright (C) 2014-2015 OPEN CASCADE
++//
++// 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
++//
++// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
++//
++
++#if !defined(__XTPLUGIN_VERSION_H)
++#define __XTPLUGIN_VERSION_H
++
++/*!
++ Specify version of SALOME XTPLUGIN module, as follows
++
++ XTPLUGIN_VERSION_MAJOR : (integer) number identifying major version
++ XTPLUGIN_VERSION_MINOR : (integer) number identifying minor version
++ XTPLUGIN_VERSION_MAINTENANCE : (integer) number identifying maintenance version
++ XTPLUGIN_VERSION_STR : (string) complete version number "major.minor.maintenance"
++ XTPLUGIN_VERSION : (hex) complete version number (major << 16) + (minor << 8) + maintenance
++ XTPLUGIN_DEVELOPMENT : (integer) indicates development version when set to 1
++*/
++
++#define XTPLUGIN_VERSION_MAJOR @SALOMEXTPLUGIN_MAJOR_VERSION@
++#define XTPLUGIN_VERSION_MINOR @SALOMEXTPLUGIN_MINOR_VERSION@
++#define XTPLUGIN_VERSION_MAINTENANCE @SALOMEXTPLUGIN_PATCH_VERSION@
++#define XTPLUGIN_VERSION_STR "@SALOMEXTPLUGIN_VERSION@"
++#define XTPLUGIN_VERSION @SALOMEXTPLUGIN_XVERSION@
++#define XTPLUGIN_DEVELOPMENT @SALOMEXTPLUGIN_VERSION_DEV@
++
++#endif // __XTPLUGIN_VERSION_H
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ ADD_SUBDIRECTORY(salome)
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ ADD_SUBDIRECTORY(examples)
-ADD_SUBDIRECTORY(gui)
++ADD_SUBDIRECTORY(gui)
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/*.py")
+ INSTALL(FILES ${files} DESTINATION ${SALOME_INSTALL_DOC}/examples/XTPLUGIN)
--- /dev/null
-# Example of import file in XT format
+ # Import XT
+
+ import salome
+ salome.salome_init()
+ import GEOM
+ from salome.geom import geomBuilder
+ geompy = geomBuilder.New(salome.myStudy)
+
-print "Test Import XT ..."
++# - path to the file
++xtFile = "/path/to/the/xt/file.x_t"
+
-dir = "" # please define import directory here
-if dir != "":
- # File for Import testing
- fileImport = dir + "" # please define file name here
- if fileImport != dir:
- # import shape
- Shape1 = geompy.ImportXT(fileImport)
- geompy.addToStudy(Shape1, "ImportXT_1")
- # It is possible also to use next format of importing and publishing in study
- Shape2 = geompy.ImportXT(fileImport,"ImportXT_2")
- print "OK"
- else:
- print "please define file name in python file"
++if os.path.exists(xtFile):
++ # - import shape
++ shape = geompy.ImportXT(xtFile)
++
++ # - publish in study
++ geompy.addToStudy(shape, "ImportXT")
+
- print "please define import directory in python file"
+ else:
++ print "ERROR: File %s does not exist" % xtFile
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ ADD_SUBDIRECTORY(XTPLUGIN)
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ SALOME_CONFIGURE_FILE(doxyfile.in doxyfile)
+ SALOME_CONFIGURE_FILE(doxyfile_py.in doxyfile_py)
+ SALOME_CONFIGURE_FILE(static/header.html.in ${CMAKE_CURRENT_BINARY_DIR}/static/header.html)
+ SALOME_CONFIGURE_FILE(static/header_py.html.in ${CMAKE_CURRENT_BINARY_DIR}/static/header_py.html)
+
++# Generate a temporary python file, needed for the generation of the documentation
++# of the plugin.
++SALOME_ACCUMULATE_ENVIRONMENT(GEOM_PluginsList NOCHECK XTPlugin)
++SET(_plugins_cmd_options ${GEOM_ROOT_DIR}/bin/salome/collect_geom_methods.py -d -o tmp/geomBuilder.py XTPlugin)
++SALOME_GENERATE_ENVIRONMENT_SCRIPT(_plugins_cmd env_script "${PYTHON_EXECUTABLE}" "${_plugins_cmd_options}")
++
+ SET(kernel_file "$ENV{KERNEL_ROOT_DIR}/bin/salome/prepare_generating_doc.py")
+ IF(WIN32)
+ STRING(REPLACE "/" "\\" kernel_file ${kernel_file})
+ ENDIF(WIN32)
+
+ ADD_CUSTOM_TARGET(usr_docs ${CMAKE_COMMAND} -E make_directory tmp
+ COMMAND ${PYTHON_EXECUTABLE} ${kernel_file} -o tmp/XTPluginBuilder.py ${CMAKE_SOURCE_DIR}/src/XTPluginBuilder.py
++ COMMAND ${_plugins_cmd}
+ COMMAND ${DOXYGEN_EXECUTABLE} doxyfile_py
+ COMMAND ${DOXYGEN_EXECUTABLE} doxyfile
+ COMMAND ${CMAKE_COMMAND} -E remove_directory tmp
+ VERBATIM
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ )
+
+ INSTALL(CODE "EXECUTE_PROCESS(COMMAND \"${CMAKE_COMMAND}\" --build ${PROJECT_BINARY_DIR} --target usr_docs)")
+ INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/XTPLUGIN DESTINATION ${SALOME_INSTALL_DOC}/gui)
+ INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/XTPLUGIN)
+ INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/XTPLUGIN/xtpluginpy_doc)
+
+ SET(make_clean_files XTPLUGIN xtpluginpy_doc.tag)
+ SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${make_clean_files}")
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ #---------------------------------------------------------------------------
+ # Project related configuration options
+ #---------------------------------------------------------------------------
+ PROJECT_NAME = "SALOME XTPLUGIN User's Guide"
+ OUTPUT_DIRECTORY = XTPLUGIN
+ CREATE_SUBDIRS = NO
+ OUTPUT_LANGUAGE = English
+ TAB_SIZE = 5
+
+ #---------------------------------------------------------------------------
+ # configuration options related to warning and progress messages
+ #---------------------------------------------------------------------------
+ QUIET = NO
+ WARNINGS = YES
+
+ #---------------------------------------------------------------------------
+ #Input related options
+ #---------------------------------------------------------------------------
+ INPUT = @CMAKE_CURRENT_SOURCE_DIR@/input
+ FILE_PATTERNS = *.doc
+ EXCLUDE =
+ IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images
+ EXAMPLE_PATH = @CMAKE_SOURCE_DIR@/doc/salome/examples
+
+ #---------------------------------------------------------------------------
+ #HTML related options
+ #---------------------------------------------------------------------------
+ GENERATE_HTML = YES
+ HTML_OUTPUT = .
+ HTML_HEADER = @CMAKE_CURRENT_BINARY_DIR@/static/header.html
+ HTML_FOOTER = @CMAKE_CURRENT_SOURCE_DIR@/static/footer.html
+ HTML_EXTRA_STYLESHEET = @CMAKE_CURRENT_SOURCE_DIR@/static/salome_extra.css
+ TOC_EXPAND = YES
+ DISABLE_INDEX = NO
+ GENERATE_TREEVIEW = YES
+ TREEVIEW_WIDTH = 300
+
+
+ #---------------------------------------------------------------------------
+ # Configuration options related to the dot tool...
+ #---------------------------------------------------------------------------
+ CLASS_DIAGRAMS = NO
+ HIDE_UNDOC_RELATIONS = NO
+ HAVE_DOT = NO
+ CLASS_GRAPH = NO
+ COLLABORATION_GRAPH = NO
+ GROUP_GRAPHS = NO
+ UML_LOOK = NO
+ TEMPLATE_RELATIONS = NO
+ INCLUDE_GRAPH = NO
+ INCLUDED_BY_GRAPH = NO
+ CALL_GRAPH = NO
+ GRAPHICAL_HIERARCHY = NO
+ DIRECTORY_GRAPH = NO
+ DOT_IMAGE_FORMAT = jpg
+ DOT_FONTNAME = Arial
+ DOT_PATH =.
+ DOTFILE_DIRS =.
+ MAX_DOT_GRAPH_WIDTH = 1024
+ MAX_DOT_GRAPH_HEIGHT = 1200
+ MAX_DOT_GRAPH_DEPTH = 0
+ DOT_TRANSPARENT = NO
+ DOT_MULTI_TARGETS = NO
+
+
+ GENERATE_LEGEND = NO
+ DOT_CLEANUP = YES
+
+ #---------------------------------------------------------------------------
+ #SORT related options
+ #---------------------------------------------------------------------------
+ SORT_GROUP_NAMES = NO
+
+ #---------------------------------------------------------------------------
+ #LaTeX related option
+ #---------------------------------------------------------------------------
+ GENERATE_LATEX = NO
+ EXTRA_PACKAGES = amsmath
+
+ #---------------------------------------------------------------------------
+ #RTF related options
+ #---------------------------------------------------------------------------
+ GENERATE_RTF = NO
+
+ #---------------------------------------------------------------------------
+ #External reference options
+ #---------------------------------------------------------------------------
+
+ TAGFILES = xtpluginpy_doc.tag=../XTPLUGIN/xtpluginpy_doc
+ SEARCHENGINE = YES
+
+ #---------------------------------------------------------------------------
+ #Custom commands
+ #---------------------------------------------------------------------------
+ ALIASES += tui_script{1}="\include \1 <a href=\"../../examples/XTPLUGIN/\1\">Download this script</a>"
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ #---------------------------------------------------------------------------
+ # Project related configuration options
+ #---------------------------------------------------------------------------
+ PROJECT_NAME = "SALOME XTPLUGIN User's Guide"
+ OUTPUT_DIRECTORY = XTPLUGIN
+ CREATE_SUBDIRS = NO
+ OUTPUT_LANGUAGE = English
+ USE_WINDOWS_ENCODING = NO
+ BRIEF_MEMBER_DESC = YES
+ REPEAT_BRIEF = YES
+ ALWAYS_DETAILED_SEC = YES
+ INLINE_INHERITED_MEMB = YES
+ FULL_PATH_NAMES = NO
+ SHORT_NAMES = NO
+ JAVADOC_AUTOBRIEF = YES
+ MULTILINE_CPP_IS_BRIEF = NO
+ DETAILS_AT_TOP = NO
+ INHERIT_DOCS = YES
+ SEPARATE_MEMBER_PAGES = NO
+ TAB_SIZE = 5
+ OPTIMIZE_OUTPUT_FOR_C = YES
+ OPTIMIZE_OUTPUT_JAVA = YES
+ BUILTIN_STL_SUPPORT = NO
+ DISTRIBUTE_GROUP_DOC = NO
+ SUBGROUPING = YES
+
+ #---------------------------------------------------------------------------
+ # Build related options
+ #---------------------------------------------------------------------------
+ EXTRACT_ALL = YES
+ EXTRACT_PRIVATE = YES
+ EXTRACT_STATIC = NO
+ EXTRACT_LOCAL_CLASSES = YES
+ EXTRACT_LOCAL_METHODS = NO
+ HIDE_UNDOC_MEMBERS = NO
+ HIDE_UNDOC_CLASSES = NO
+ HIDE_FRIEND_COMPOUNDS = NO
+ HIDE_IN_BODY_DOCS = NO
+ INTERNAL_DOCS = YES
+ CASE_SENSE_NAMES = YES
+ HIDE_SCOPE_NAMES = YES
+ SHOW_INCLUDE_FILES = YES
+ INLINE_INFO = YES
+ SORT_MEMBER_DOCS = NO
+ SORT_BRIEF_DOCS = NO
+ SORT_BY_SCOPE_NAME = NO
+ GENERATE_TODOLIST = YES
+ GENERATE_TESTLIST = YES
+ GENERATE_BUGLIST = YES
+ GENERATE_DEPRECATEDLIST= YES
+ MAX_INITIALIZER_LINES = 25
+ SHOW_USED_FILES = NO
+ SHOW_DIRECTORIES = NO
+
+ #---------------------------------------------------------------------------
+ # configuration options related to source browsing
+ #---------------------------------------------------------------------------
+ SOURCE_BROWSER = NO
+ INLINE_SOURCES = NO
+ STRIP_CODE_COMMENTS = YES
+ REFERENCED_BY_RELATION = NO
+ REFERENCES_RELATION = YES
+ USE_HTAGS = NO
+ VERBATIM_HEADERS = YES
+
+ #---------------------------------------------------------------------------
+ # configuration options related to warning and progress messages
+ #---------------------------------------------------------------------------
+ QUIET = NO
+ WARNINGS = YES
+ WARN_IF_UNDOCUMENTED = YES
+ WARN_IF_DOC_ERROR = YES
+ WARN_NO_PARAMDOC = NO
+ EXCLUDE_SYMLINKS = NO
+ EXAMPLE_RECURSIVE = NO
+
+ #---------------------------------------------------------------------------
+ #Input related options
+ #---------------------------------------------------------------------------
+ INPUT = tmp @CMAKE_SOURCE_DIR@/idl/XTPlugin_Gen.idl
+ FILE_PATTERNS =
+ IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images
+ RECURSIVE = NO
+ EXAMPLE_PATH = @CMAKE_SOURCE_DIR@/src/
+
+ #---------------------------------------------------------------------------
+ #HTML related options
+ #---------------------------------------------------------------------------
+ GENERATE_HTML = YES
+ HTML_OUTPUT = xtpluginpy_doc
+ HTML_HEADER = @CMAKE_CURRENT_BINARY_DIR@/static/header_py.html
+ HTML_FOOTER = @CMAKE_CURRENT_SOURCE_DIR@/static/footer.html
+ HTML_EXTRA_STYLESHEET = @CMAKE_CURRENT_SOURCE_DIR@/static/salome_extra.css
+ TOC_EXPAND = YES
+ DISABLE_INDEX = NO
+ GENERATE_TREEVIEW = YES
+ TREEVIEW_WIDTH = 300
+
+ #---------------------------------------------------------------------------
+ #LaTeX related option
+ #---------------------------------------------------------------------------
+ GENERATE_LATEX = NO
+
+ #---------------------------------------------------------------------------
+ #RTF related options
+ #---------------------------------------------------------------------------
+ GENERATE_RTF = NO
+
+ #---------------------------------------------------------------------------
+ # Configuration options related to the dot tool
+ #---------------------------------------------------------------------------
+ CLASS_DIAGRAMS = NO
+ HIDE_UNDOC_RELATIONS = NO
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+ COLLABORATION_GRAPH = NO
+ GROUP_GRAPHS = NO
+ UML_LOOK = NO
+ TEMPLATE_RELATIONS = YES
+ INCLUDE_GRAPH = YES
+ INCLUDED_BY_GRAPH = YES
+ CALL_GRAPH = NO
+ GRAPHICAL_HIERARCHY = YES
+ DIRECTORY_GRAPH = YES
+ DOT_IMAGE_FORMAT = png
+ DOT_FONTNAME = Arial
+ DOT_PATH =
+ DOTFILE_DIRS =
+ MAX_DOT_GRAPH_WIDTH = 1024
+ MAX_DOT_GRAPH_HEIGHT = 1024
+ MAX_DOT_GRAPH_DEPTH = 1000
+ DOT_TRANSPARENT = NO
+ DOT_MULTI_TARGETS = NO
+ GENERATE_LEGEND = NO
+ DOT_CLEANUP = YES
+
+ #---------------------------------------------------------------------------
+ #External reference options
+ #---------------------------------------------------------------------------
+ GENERATE_TAGFILE = xtpluginpy_doc.tag
+ SEARCHENGINE = YES
--- /dev/null
-\b Parasolid interface to be used as plugin for SALOME Geometry
-module.
-It is destined for:
-- Importing CAD models stored in Parasolid format ( *.x_t and *.xt files ) into
-SALOME study;
+ /*!
+
+ \mainpage Introduction to XTPLUGIN
+
-To manage parameters of the XTPLUGIN use \subpage xtplugin_import_page.
++The \b XTPLUGIN implements \b Parasolid interface as a plugin for SALOME Geometry module.
+
-Also all XTPLUGIN functionalities are accessible via
++It can be used for importing CAD models stored in Parasolid format ( *.x_t and *.xt files ) into
++SALOME study.
+
++To use functionality of the XTPLUGIN refer to \subpage xtplugin_import_page.
++
++Also all functionalities of the XTPLUGIN are accessible via
+ \subpage xtplugin_python_interface_page "XTPLUGIN Python interface".
+
+ */
--- /dev/null
-For using XTPLUGIN functionalities in SALOME:
+ /*!
+
+ \page xtplugin_import_page Import XT
+
- Browse and select the file and click "Open" button. New object (shape)
- will appears in the SALOME object browser.
++To use XTPLUGIN functionalities in SALOME:
+
+ - Run SALOME and activate Geometry module.
+
+ - Import the XT file from menu <b>File/Import/XT</b>.
+
+ \image html import_xt.png
+
- \note It is possible to re-open from the initial file a previously imported shape if
- the file has been changed on disk. For this, select <b>Reload From Disk</b>
- in the context menu of the imported shape. The reloaded shape will have the same
- representation parameters as before this operation.
++ Browse and select the file and press "Open" button. New object (shape)
++ will appear in the SALOME object browser.
+
++ \note It is possible to re-load a previously imported shape from the initial file if
++ the file has been changed on disk. For this, select <b>Reload From Disk</b> item
++ in the Object browser's context menu of the imported shape. The reloaded shape will
++ have the same representation parameters as before this operation.
+
+ \image html reopen_xt.png
+
+ */
--- /dev/null
-Python package XTPluginBuilder defines several classes, destined for
-import CAD models in Parasolid format (*.x_t and *.xt files).
+ /*!
+
+ \page xtplugin_python_interface_page Python Interface
+
-import CAD models:
++Python package XTPluginBuilder defines a function that allows
++importing CAD models in Parasolid format (*.x_t and *.xt files).
+
+ XTPLUGIN dynamically adds several methods to the geomBuilder.
+
+ Below you can see an example of usage of the XTPluginBuilder package for
-<h2>Example of import CAD model stored in Parasolid format (*.x_t and *.xt files) with XTPLUGIN:</h2>
++importing CAD models:
+
+ \anchor example_XTPlugin
++<h2>Example of importing of CAD model stored in Parasolid format (*.x_t and *.xt files) with XTPLUGIN:</h2>
+ \tui_script{XTPlugindemo.py}
+
+ */
+
+
--- /dev/null
- Copyright © 2014 CEA/DEN, EDF R&D, OPEN CASCADE<br>
+ <!-- HTML footer for doxygen 1.8.3.1-->
+ <!--BEGIN GENERATE_TREEVIEW-->
+ <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ $navpath
+ <li class="footer">
++ Copyright © 2014-2015 OPEN CASCADE<br>
+ </li>
+ </ul>
+ </div>
+ <!--END GENERATE_TREEVIEW-->
+ </body>
+ </html>
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ INCLUDE(UseOmniORB)
+
+ INCLUDE_DIRECTORIES(
+ ${KERNEL_INCLUDE_DIRS}
+ ${GEOM_INCLUDE_DIRS}
+ ${OMNIORB_INCLUDE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ )
+
+ IF(WIN32)
+ ADD_DEFINITIONS(-DNOGDI)
+ ENDIF(WIN32)
+
+ SET(SalomeIDLXTPlugin_IDLSOURCES
+ XTPlugin.idl
+ )
+
+ SET(IDL_INCLUDE_DIRS
+ ${KERNEL_ROOT_DIR}/idl/salome
+ ${GEOM_ROOT_DIR}/idl/salome
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ SET(IDL_LINK_FLAGS
+ ${KERNEL_SalomeIDLKernel}
+ ${GEOM_SalomeIDLGEOM}
+ )
+
+ OMNIORB_ADD_MODULE(SalomeIDLXTPlugin "${SalomeIDLXTPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_FLAGS}")
+ ADD_DEPENDENCIES(SalomeIDLXTPlugin ${GEOM_SalomeIDLGEOM})
+ INSTALL(TARGETS SalomeIDLXTPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ #ifndef __XTPlugin_IDL__
+ #define __XTPlugin_IDL__
+
+ #include "GEOM_Gen.idl"
+
+ module XTPlugin
+ {
+ /*!
+ * \brief Interface for XTPlugin modeling functions.
+ */
+ interface IXTOperations : GEOM::GEOM_IOperations
+ {
+ /*!
+ * \brief Import a shape from the XT file.
+ *
+ * \param theFileName The file, containing the shape.
+ * \return List of GEOM_Objects, containing the created shape and propagation groups.
+ */
+ GEOM::ListOfGO ImportXT( in string theFileName );
+ };
+ };
+
+ #endif // __XTPlugin_IDL__
--- /dev/null
- Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
+ <!--
++ Copyright (C) 2014-2015 OPEN CASCADE
+
+ 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.com
+
+ -->
+ <document>
+ <section name="resources">
+ <parameter name="XTPlugin" value="${XTPLUGIN_ROOT_DIR}/share/salome/resources/xtplugin"/>
+ </section>
+ <section name="GEOM">
+ <!-- Default GEOM module plugins -->
+ <parameter name="plugins" value="XTPlugin"/>
+ </section>
+ <section name="geom_help" >
+ <parameter name="Plug-ins/XT plugin User's Guide" value="${XTPLUGIN_ROOT_DIR}/share/doc/salome/gui/XTPLUGIN/index.html"/>
+ </section>
+ </document>
--- /dev/null
- Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
+ <?xml version='1.0' encoding='us-ascii'?>
+ <!DOCTYPE meshers PUBLIC "" "desktop.dtd">
+ <!--
++ Copyright (C) 2014-2015 OPEN CASCADE
+
+ 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
+
+ See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+ -->
+
+ <!-- GUI customization for GEOM component -->
+
+ <geom-plugins>
+
+ <geom-plugin name="XTPlugin"
+ server-lib="XTPluginEngine"
+ gui-lib="XTPluginGUI">
+ <actions>
+ <action label="Import_XT"
+ menu="FILE/IMPORT:10/IMPORTXT"
+ status-bar="IMPORTXT">
+ </action>
+ </actions>
+ </geom-plugin>
+
+ </geom-plugins>
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
+ # -*- coding: iso-8859-1 -*-
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ from XTPlugin import IXTOperations
+
+ # Engine Library Name
+ __libraryName__ = "XTPluginEngine"
+
++## Get XT plugin operations interface
++# @return an instance of XT plugin operations interface
+ def GetXTPluginOperations(self):
++ """
++ Get XT plugin operations interface.
++
++ Returns:
++ An instance of XT plugin operations interface
++ """
+ anOp = self.GetPluginOperations(self.myStudyId, __libraryName__)
+ return anOp._narrow(IXTOperations)
+
+ ## Import a shape from the XT file
+ # @param theFileName The file, containing the shape.
+ # @param theName Object name; when specified, this parameter is used
+ # for result publication in the study. Otherwise, if automatic
+ # publication is switched on, default value is used for result name.
+ #
+ # @return New GEOM.GEOM_Object, containing the imported shape.
+ # If material names are imported it returns the list of
+ # objects. The first one is the imported object followed by
+ # material groups.
+ # @note Auto publishing is allowed for the shape itself. Imported
+ # material groups are not automatically published.
+ def ImportXT(self, theFileName, theName=None):
+ """
+ Import a shape from the XT file
+
+ Parameters:
+ theFileName The file, containing the shape.
+ theName Object name; when specified, this parameter is used
+ for result publication in the study. Otherwise, if automatic
+ publication is switched on, default value is used for result name.
+
+ Returns:
+ New GEOM.GEOM_Object, containing the imported shape.
+ If material names are imported it returns the list of
+ objects. The first one is the imported object followed by
+ material groups.
+ Note:
+ Auto publishing is allowed for the shape itself. Imported
+ material groups are not automatically published.
+ """
+ from salome.geom.geomBuilder import RaiseIfFailed
+ anOp = GetXTPluginOperations(self)
+ aListObj = anOp.ImportXT(theFileName)
+ RaiseIfFailed("ImportXT", anOp)
+ aNbObj = len(aListObj)
+ if aNbObj > 0:
+ self._autoPublish(aListObj[0], theName, "imported")
+ if aNbObj == 1:
+ return aListObj[0]
+ return aListObj
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ // internal includes
+ #include "XTPlugin_Engine.hxx"
+ #include "XTPlugin_OperationsCreator.hxx"
+
+ extern "C"
+ {
+ XTPLUGINENGINE_EXPORT
+ GEOM_GenericOperationsCreator* GetOperationsCreator()
+ {
+ return new XTPlugin_OperationsCreator();
+ }
+ }
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ #ifndef _XTPLUGIN_ENGINE_HXX_
+ #define _XTPLUGIN_ENGINE_HXX_
+
+ #ifdef WIN32
+ #if defined XTPLUGINENGINE_EXPORTS || defined XTPluginEngine_EXPORTS
+ #define XTPLUGINENGINE_EXPORT __declspec( dllexport )
+ #else
+ #define XTPLUGINENGINE_EXPORT __declspec( dllimport )
+ #endif
+ #else
+ #define XTPLUGINENGINE_EXPORT
+ #endif
+
+ #endif
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ // internal includes
+ #include "XTPlugin_GUI.h"
+ #include "XTPlugin_IOperations_i.hh"
+
+ // GUI includes
+ #include <SUIT_Desktop.h>
+ #include <SUIT_FileDlg.h>
+ #include <SUIT_MessageBox.h>
+ #include <SUIT_OverrideCursor.h>
+ #include <SUIT_Tools.h>
+ #include <LightApp_SelectionMgr.h>
+ #include <SalomeApp_Application.h>
+ #include <SalomeApp_Study.h>
+ #include <SALOME_ListIO.hxx>
+
+ // GEOM includes
+ #include "GeometryGUI.h"
+ #include "GEOM_Operation.h"
+ #include "GEOMBase.h"
+ #include "GEOM_Displayer.h"
+
+ #include <SALOMEconfig.h>
+ #include CORBA_SERVER_HEADER(XTPlugin)
+
+ //=======================================================================
+ // function : XTPlugin_GUI()
+ // purpose : Constructor
+ //=======================================================================
+ XTPlugin_GUI::XTPlugin_GUI( GeometryGUI* parent ) : GEOMPluginGUI( parent )
+ {
+ }
+
+ //=======================================================================
+ // function : ~XTPlugin_GUI
+ // purpose : Destructor
+ //=======================================================================
+ XTPlugin_GUI::~XTPlugin_GUI()
+ {
+ }
+
+ //=======================================================================
+ // function : OnGUIEvent()
+ // purpose :
+ //=======================================================================
+ bool XTPlugin_GUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
+ {
+ QString cmd;
+ switch ( theCommandID ) {
+ case 1:
+ cmd = "Import_XT";
+ default:
+ break;
+ }
+ return OnGUIEvent( cmd, parent );
+ }
+
+ //=======================================================================
+ // function : OnGUIEvent()
+ // purpose :
+ //=======================================================================
+ bool XTPlugin_GUI::OnGUIEvent( const QString& theCommandID, SUIT_Desktop* parent )
+ {
+ bool result = false;
+
+ if ( theCommandID == "Import_XT" )
+ {
+ result = importXT( parent );
+ }
+ else
+ {
+ getGeometryGUI()->getApp()->putInfo( tr("GEOM_PRP_COMMAND").arg( theCommandID ) );
+ }
+
+ return result;
+
+ }
+
+ //=======================================================================
+ // function : importXT
+ // purpose :
+ //=======================================================================
+ bool XTPlugin_GUI::importXT( SUIT_Desktop* parent )
+ {
+ SalomeApp_Application* app = getGeometryGUI()->getApp();
+ if ( !app ) return false;
+ SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*> ( app->activeStudy() );
+ if ( !study ) return false;
+
+ SALOMEDS::Study_var dsStudy = GeometryGUI::ClientStudyToStudy( study->studyDS() );
+ GEOM::GEOM_IOperations_var op = GeometryGUI::GetGeomGen()->GetPluginOperations( dsStudy->StudyId(), "XTPluginEngine" );
+ XTPlugin::IXTOperations_var xtOp = XTPlugin::IXTOperations::_narrow( op );
+ if ( CORBA::is_nil( xtOp ) ) return false;
+
+ QStringList fileNames = app->getOpenFileNames( SUIT_FileDlg::getLastVisitedPath().isEmpty() ? QDir::currentPath() : QString(""),
+ tr( "XT_FILES" ),
+ tr( "IMPORT_TITLE" ),
+ parent );
+ if ( fileNames.count() > 0 )
+ {
+ QStringList entryList;
+ QStringList errors;
+
+ foreach( QString fileName, fileNames )
+ {
+ SUIT_OverrideCursor wc;
+ GEOM_Operation transaction( app, xtOp.in() );
+
+ try
+ {
+ app->putInfo( tr( "GEOM_PRP_LOADING" ).arg( fileName ) );
+ transaction.start();
+ GEOM::ListOfGO_var result = xtOp->ImportXT( fileName.toUtf8().constData() );
+ if ( result->length() > 0 && xtOp->IsDone() )
+ {
+ GEOM::GEOM_Object_var main = result[0];
+ QString publishName = GEOMBase::GetDefaultName( SUIT_Tools::file( fileName, true ) );
+ SALOMEDS::SObject_var so = GeometryGUI::GetGeomGen()->PublishInStudy( dsStudy,
+ SALOMEDS::SObject::_nil(),
+ main.in(),
+ publishName.toUtf8().constData() );
+
+ entryList.append( so->GetID() );
+ transaction.commit();
+ GEOM_Displayer( study ).Display( main.in() );
+ }
+ else
+ {
+ transaction.abort();
+ errors.append( QString( "%1 : %2" ).arg( fileName ).arg( xtOp->GetErrorCode() ) );
+ }
+ }
+ catch( const SALOME::SALOME_Exception& e )
+ {
+ transaction.abort();
+ }
+ }
+ getGeometryGUI()->updateObjBrowser( true );
+ app->browseObjects( entryList );
+
+ if ( errors.count() > 0 )
+ {
+ SUIT_MessageBox::critical( parent,
+ tr( "GEOM_ERROR" ),
+ tr( "GEOM_IMPORT_ERRORS" ) + "\n" + errors.join( "\n" ) );
+ }
+ }
+ return fileNames.count() > 0;
+ }
+
+ //=====================================================================================
+ // EXPORTED METHODS
+ //=====================================================================================
+ extern "C"
+ {
+ #ifdef WIN32
+ __declspec( dllexport )
+ #endif
+ GEOMGUI* GetLibGUI( GeometryGUI* parent )
+ {
+ return new XTPlugin_GUI( parent );
+ }
+ }
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ #ifndef XTPlugin_GUI_H
+ #define XTPlugin_GUI_H
+
+ #include <GEOMPluginGUI.h>
+
+ class XTPlugin_GUI: public GEOMPluginGUI
+ {
+ Q_OBJECT
+ public:
+ XTPlugin_GUI( GeometryGUI* parent );
+ ~XTPlugin_GUI();
+
+ bool OnGUIEvent( int commandId, SUIT_Desktop* );
+ bool OnGUIEvent( const QString&, SUIT_Desktop* );
+
+ private:
+ bool importXT( SUIT_Desktop* );
+ };
+
+ #endif // XTPlugin_GUI_H
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ // internal includes
+ #include "XTPlugin_IECallBack.hxx"
+ #include "XTPlugin_IOperations.hxx"
+ #include "XTPlugin_OperationsCreator.hxx"
+
+ //=============================================================================
+ /*!
+ * constructor
+ */
+ //=============================================================================
+ XTPlugin_IECallBack::XTPlugin_IECallBack()
+ {
+ }
+
+ //=============================================================================
+ /*!
+ * destructor
+ */
+ //=============================================================================
+ XTPlugin_IECallBack::~XTPlugin_IECallBack()
+ {
+ }
+
+ //=============================================================================
+ /*!
+ * Import
+ */
+ //=============================================================================
+ Handle(TColStd_HSequenceOfTransient)
+ XTPlugin_IECallBack::Import( int theDocId,
+ const TCollection_AsciiString& theFormatName,
+ const TCollection_AsciiString& theFileName )
+ {
+ XTPlugin_IOperations* aPluginOperations = XTPlugin_OperationsCreator::get( GetEngine(), theDocId );
+ return aPluginOperations->ImportXT( theFileName );
+ }
+
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ #ifndef _XTPlugin_IECallBack_HXX_
+ #define _XTPlugin_IECallBack_HXX_
+
+ // internal includes
+ #include "XTPlugin_IOperations.hxx"
+
+ // GEOM includes
+ #include <GEOM_Object.hxx>
+ #include <GEOMImpl_IECallBack.hxx>
+
+ // OCC includes
+ #include <TCollection_AsciiString.hxx>
+
+ class XTPLUGINENGINE_EXPORT XTPlugin_IECallBack : public GEOMImpl_IECallBack
+ {
+ public:
+ XTPlugin_IECallBack();
+ ~XTPlugin_IECallBack();
+
+ Handle(TColStd_HSequenceOfTransient) Import( int theDocId,
+ const TCollection_AsciiString& theFormatName,
+ const TCollection_AsciiString& theFileName );
+ };
+
+ #endif
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ #ifndef _XTPlugin_IImport_HXX_
+ #define _XTPlugin_IImport_HXX_
+
+ #include "GEOM_Function.hxx"
+
+ #define IMPORTXT_ARG_FILENAME 1
+
+ class XTPlugin_IImport
+ {
+ public:
+ XTPlugin_IImport( Handle(GEOM_Function) theFunction)
+ : _func(theFunction) {}
+
+ void SetFileName( const TCollection_AsciiString& theFileName )
+ { _func->SetString( IMPORTXT_ARG_FILENAME, theFileName ); }
+ TCollection_AsciiString GetFileName()
+ { return _func->GetString( IMPORTXT_ARG_FILENAME ); }
+
+ private:
+ Handle(GEOM_Function) _func;
+ };
+
+ #endif // _XTPlugin_IImport_HXX_
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ // internal includes
+ #include "XTPlugin_IOperations.hxx"
+ #include "XTPlugin_ImportDriver.hxx"
+ #include "XTPlugin_IImport.hxx"
+
+ // KERNEL includes
+ #include <utilities.h>
+
+ // GEOM includes
+ #include <GEOM_PythonDump.hxx>
+ #include <GEOMImpl_Types.hxx>
+
+ #include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
+
+ //=============================================================================
+ /*!
+ * Constructor
+ */
+ //=============================================================================
+ XTPlugin_IOperations::XTPlugin_IOperations( GEOM_Engine* theEngine, int theDocID )
+ : GEOMImpl_IBaseIEOperations( theEngine, theDocID )
+ {
+ MESSAGE( "XTPlugin_IOperations::XTPlugin_IOperations" );
+ }
+
+ //=============================================================================
+ /*!
+ * Destructor
+ */
+ //=============================================================================
+ XTPlugin_IOperations::~XTPlugin_IOperations()
+ {
+ MESSAGE( "XTPlugin_IOperations::~XTPlugin_IOperations" );
+ }
+
+ //=============================================================================
+ /*!
+ * ImportXT
+ * Import a shape from XT format
+ * \param theFileName The name of the file to import
+ * \return List of GEOM_Objects, containing the created shape and propagation groups.
+ */
+ //=============================================================================
+ Handle(TColStd_HSequenceOfTransient)
+ XTPlugin_IOperations::ImportXT( const TCollection_AsciiString& theFileName )
+ {
+ SetErrorCode(KO);
+ if( theFileName.IsEmpty() ) return NULL;
+
+ //Add a new result object
+ Handle(GEOM_Object) anImported = GetEngine()->AddObject( GetDocID(), GEOM_IMPORT );
+
+ //Add an Import function
+ Handle(GEOM_Function) aFunction =
+ anImported->AddFunction( XTPlugin_ImportDriver::GetID(), IMPORT_SHAPE);
+ if (aFunction.IsNull()) return NULL;
+
+ //Check if the function is set correctly
+ if (aFunction->GetDriverGUID() != XTPlugin_ImportDriver::GetID()) return NULL;
+
+ //Set parameters
+ XTPlugin_IImport aCI( aFunction );
+ aCI.SetFileName( theFileName );
+
+ //Perform the Import
+ Handle(TColStd_HSequenceOfTransient) aSeq = new TColStd_HSequenceOfTransient;
+
+ try {
+ OCC_CATCH_SIGNALS;
+ if( !GetSolver()->ComputeFunction( aFunction ) ) {
+ SetErrorCode( "Import driver failed" );
+ return NULL;
+ }
+ aSeq->Append(anImported);
+
+ // Greate material groups.
+ //MakeMaterialGroups( anImported, aSeq );
+ }
+ catch( Standard_Failure ) {
+ Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+ SetErrorCode( aFail->GetMessageString() );
+ return NULL;
+ }
+
+ //Make a Python command
+ GEOM::TPythonDump pd (aFunction);
+ pd << aSeq << " = geompy.ImportXT(\"" << theFileName.ToCString() << "\" )";
+ SetErrorCode(OK);
+
+ return aSeq;
+ }
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+ // File : XTPlugin_IOperations.hxx
+
+ #ifndef _XTPlugin_IOperations_HXX_
+ #define _XTPlugin_IOperations_HXX_
+
+ // internal includes
+ #include "XTPlugin_Engine.hxx"
+
+ // GEOM includes
+ #include <GEOMImpl_IBaseIEOperations.hxx>
+
+ class XTPLUGINENGINE_EXPORT XTPlugin_IOperations: public GEOMImpl_IBaseIEOperations
+ {
+ public:
+ XTPlugin_IOperations( GEOM_Engine*, int );
+ ~XTPlugin_IOperations();
+
+ Handle(TColStd_HSequenceOfTransient) ImportXT( const TCollection_AsciiString& );
+ };
+
+ #endif
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ // internal includes
+ #include "XTPlugin_IOperations_i.hh"
+ #include "XTPlugin_IOperations.hxx"
-#include <XTPLUGIN_version.h>
++#include "XTPlugin_version.h"
+
+ // KERNEL includes
+ #include <utilities.h>
+
+ //=============================================================================
+ /*!
+ * constructor:
+ */
+ //=============================================================================
+ XTPlugin_IOperations_i::XTPlugin_IOperations_i( PortableServer::POA_ptr thePOA,
+ GEOM::GEOM_Gen_ptr theEngine,
+ ::XTPlugin_IOperations* theImpl )
+ :GEOM_IOperations_i( thePOA, theEngine, theImpl )
+ {
+ MESSAGE( "XTPlugin_Operations_i::XTPlugin_Operations_i" );
+ }
+
+ //=============================================================================
+ /*!
+ * destructor
+ */
+ //=============================================================================
+ XTPlugin_IOperations_i::~XTPlugin_IOperations_i()
+ {
+ MESSAGE( "XTPlugin_Operations_i::~XTPlugin_Operations_i" );
+ }
+
+ //=============================================================================
+ /*!
+ * ImportXT
+ * Import a shape from XT format
+ * \param theFileName The name of the file to import
+ * \return List of GEOM_Objects, containing the created shape and propagation groups.
+ */
+ //=============================================================================
+ GEOM::ListOfGO* XTPlugin_IOperations_i::ImportXT( const char* theFileName )
+ {
+ GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
+
+ //Set a not done flag
+ GetOperations()->SetNotDone();
+
+ //Import the shape from the file
+ Handle(TColStd_HSequenceOfTransient) aHSeq = GetOperations()->ImportXT( theFileName );
+
+ if( !GetOperations()->IsDone() || aHSeq.IsNull() )
+ return aSeq._retn();
+
+ // Copy created objects.
+ Standard_Integer aLength = aHSeq->Length();
+ aSeq->length( aLength );
+ for( Standard_Integer i = 1; i <= aLength; i++ )
+ aSeq[i-1] = GetObject( Handle(GEOM_Object)::DownCast( aHSeq->Value(i) ) );
+
+ return aSeq._retn();
+ }
+
+ XTPlugin_IOperations* XTPlugin_IOperations_i::GetOperations()
+ {
+ return (XTPlugin_IOperations*)GetImpl();
+ }
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ #ifndef _XTPlugin_IOperations_i_HeaderFile
+ #define _XTPlugin_IOperations_i_HeaderFile
+
+ // idl includes
+ #include <SALOMEconfig.h>
+ #include CORBA_SERVER_HEADER( GEOM_Gen )
+ #include CORBA_SERVER_HEADER( XTPlugin )
+
+ // internal includes
+ #include "XTPlugin_Engine.hxx"
+
+ // GEOM includes
+ #include <GEOM_IOperations_i.hh>
+
+ class XTPlugin_IOperations;
+
+ class XTPLUGINENGINE_EXPORT XTPlugin_IOperations_i :
+ public virtual POA_XTPlugin::IXTOperations,
+ public virtual GEOM_IOperations_i
+ {
+ public:
+ XTPlugin_IOperations_i( PortableServer::POA_ptr thePOA,
+ GEOM::GEOM_Gen_ptr theEngine,
+ XTPlugin_IOperations* theImpl );
+ ~XTPlugin_IOperations_i();
+
+ GEOM::ListOfGO* ImportXT( const char* );
+
+ XTPlugin_IOperations* GetOperations();
+ };
+
+ #endif // _XTPlugin_IOperations_i_HeaderFile
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ // internal includes
+ #include "XTPlugin_ImportDriver.hxx"
+ #include "XTPlugin_IImport.hxx"
+ #include "XTPlugin_Engine.hxx"
+
+ // KERNEL includes
+ #include <Basics_Utils.hxx>
+ #include <utilities.h>
+
+ // GEOM includes
+ #include <GEOM_Function.hxx>
+ #include <GEOMImpl_Types.hxx>
+
+ // OOCT includes
+ #include <IFSelect_ReturnStatus.hxx>
+ #include <TCollection_AsciiString.hxx>
+ #include <TDF_Label.hxx>
+ #include <TDataStd_Name.hxx>
+ #include <TNaming_Builder.hxx>
+ #include <TopoDS_Shape.hxx>
+ #include <TopoDS_Iterator.hxx>
+ #include <TransferBRep.hxx>
+ #include <Transfer_Binder.hxx>
+ #include <Transfer_TransientProcess.hxx>
+ #include <XtAttributes_AttribGroup.hxx>
+ #include <XtAttributes_Attribute.hxx>
+ #include <XtAttributes_CharValues.hxx>
+ #include <XSControl_TransferReader.hxx>
+ #include <XSControl_WorkSession.hxx>
+ #include <XtControl_Reader.hxx>
+ #include <XtData_HArray1OfObject.hxx>
+ #include <XtData_Model.hxx>
+ #include <XtData_Object.hxx>
+ #include <XtGeom_Curve.hxx>
+ #include <XtGeom_Point.hxx>
+ #include <XtGeom_Surface.hxx>
+ #include <XtTopoDS_Topology.hxx>
+
+ #include <StdFail_NotDone.hxx>
+
+ #ifdef XT_HASLICENSE
+ #include "XTPlugin_license.h"
+
+ #include <OCCLicense_Activate.hxx>
+ #include <Standard_LicenseError.hxx>
+ #endif // XT_HASLICENSE
+
+ //=======================================================================
+ //function : GetID
+ //purpose :
+ //=======================================================================
+ const Standard_GUID& XTPlugin_ImportDriver::GetID()
+ {
+ static Standard_GUID aGUID("81cc16bb-486f-4ec7-87b2-960b4aed557f");
+ return aGUID;
+ }
+
+ //=======================================================================
+ //function : XTPlugin_ImportDriver
+ //purpose :
+ //=======================================================================
+ XTPlugin_ImportDriver::XTPlugin_ImportDriver()
+ {
+ }
+
+ //=======================================================================
+ //function : Execute
+ //purpose :
+ //=======================================================================
+ Standard_Integer XTPlugin_ImportDriver::Execute( TFunction_Logbook& log ) const
+ {
+ if( Label().IsNull() ) return 0;
+ Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction( Label() );
+
+ XTPlugin_IImport aData( aFunction );
+
+ TCollection_AsciiString aFileName = aData.GetFileName().ToCString();
+
+ MESSAGE("Import XT from file " << aFileName);
+
+ TopoDS_Shape aResShape;
+
+ #ifdef XT_HASLICENSE
+ try {
+ OCCLicense_Activate( "XT-R-"OCC_VERSION_STRING, XT_READ_LICENSE);
+ }
+ catch (Standard_LicenseError) {
+ return aResShape;
+ }
+ #endif // XT_HASLICENSE
+
+ // Set "C" numeric locale to save numbers correctly
+ Kernel_Utils::Localizer loc;
+
+ XtControl_Reader aReader;
+
+ IFSelect_ReturnStatus status = aReader.ReadFile(aFileName.ToCString());
+ if (status == IFSelect_RetDone) {
+ aReader.TransferRoots();
+ aResShape = aReader.OneShape();
+
+ // ATTENTION: this is a workaround for mantis issue 0020442 remark 0010776
+ // It should be removed after patching OCCT for bug OCC22436
+ // (fix for OCCT is expected in service pack next to OCCT6.3sp12)
+ if (aResShape.ShapeType() == TopAbs_COMPOUND) {
+ int nbSub1 = 0;
+ TopoDS_Shape currShape;
+ TopoDS_Iterator It (aResShape, Standard_True, Standard_True);
+ for (; It.More(); It.Next()) {
+ nbSub1++;
+ currShape = It.Value();
+ }
+ if (nbSub1 == 1)
+ aResShape = currShape;
+ }
+ Handle(XtData_Model) aModel = Handle(XtData_Model)::DownCast( aReader.WS()->Model() );
+ Handle(XSControl_TransferReader) TR = aReader.WS()->TransferReader();
+ if (!TR.IsNull()) {
+ Handle(Transfer_TransientProcess) TP = TR->TransientProcess();
+ Standard_Integer nb = aModel->NbEntities();
+ for (Standard_Integer i = 1; i <= nb; i ++) {
+ Handle(XtData_Object) XtOb = Handle(XtData_Object)::DownCast ( aModel->Value(i) );
+ if (XtOb.IsNull()) continue;
+
+ Handle(XtAttributes_AttribGroup) XtAG;
+ Standard_Boolean MayBeName = Standard_False;
+
+ if (XtOb->IsKind(STANDARD_TYPE(XtTopoDS_Topology))) {
+ Handle(XtTopoDS_Topology) XtT = Handle(XtTopoDS_Topology)::DownCast(XtOb);
+ XtAG = XtT->AttributesGroups();
+ MayBeName = Standard_True;
+ }
+ else if (XtOb->IsKind(STANDARD_TYPE(XtGeom_Surface))) {
+ Handle(XtGeom_Surface) XtGS = Handle(XtGeom_Surface)::DownCast(XtOb);
+ XtAG = XtGS->AttributesGroups();
+ MayBeName = Standard_True;
+ }
+ else if (XtOb->IsKind(STANDARD_TYPE(XtGeom_Curve))) {
+ Handle(XtGeom_Curve) XtGC = Handle(XtGeom_Curve)::DownCast(XtOb);
+ XtAG = XtGC->AttributesGroups();
+ MayBeName = Standard_True;
+ }
+ else if (XtOb->IsKind(STANDARD_TYPE(XtGeom_Point))) {
+ Handle(XtGeom_Point) XtGP = Handle(XtGeom_Point)::DownCast(XtOb);
+ XtAG = XtGP->AttributesGroups();
+ MayBeName = Standard_True;
+ }
+
+ if (MayBeName) {
+ TCollection_AsciiString string;
+ Standard_Boolean IsName = Standard_False;
+ Handle(XtAttributes_Attribute) XtA = Handle(XtAttributes_Attribute)::DownCast(XtAG);
+ if (!XtA.IsNull()) {
+ Handle(XtAttributes_AttribDef) XtAD = XtA->Definition();
+ while (!XtAD.IsNull()) {
+ if (XtAD->TypeID()==8017) {
+ const Handle(XtData_HArray1OfObject) &HAFV = XtA->Fields();
+ const Standard_Integer NbFV = HAFV->Length();
+ for (Standard_Integer j=1; j<=NbFV; j++) {
+ const Handle(XtData_Object) &FV = HAFV->Value(j);
+ if(!FV.IsNull() && FV->IsKind(STANDARD_TYPE(XtAttributes_CharValues))) {
+ string = Handle(XtAttributes_CharValues)::DownCast(FV)->Values();
+ IsName = Standard_True;
+ }
+ }
+ }
+ XtAD = XtAD->Next();
+ }
+ }
+ if (IsName) {
+ // find target shape
+ Handle(Transfer_Binder) binder = TP->Find ( XtOb );
+ if ( binder.IsNull() ) continue;
+ TopoDS_Shape S = TransferBRep::ShapeResult (binder);
+ if ( S.IsNull() ) continue;
+
+ TDF_Label L;
+ TDF_TagSource aTag;
+ L = aTag.NewChild(aFunction->GetNamingEntry());
+ TNaming_Builder tnBuild(L);
+ tnBuild.Generated(S);
+
+ // set a name to the document
+ string.LeftAdjust();
+ string.RightAdjust();
+ TCollection_ExtendedString str ( string );
+ TDataStd_Name::Set ( L, str );
+ }
+ }
+ }
+ }
+ }
+ else {
+ TCollection_AsciiString anError = "Wrong format of the imported file. Can't import file.";
+ StdFail_NotDone::Raise( anError.ToCString() );
+ aResShape.Nullify();
+ }
+
+ if( aResShape.IsNull() ) return 0;
+
+ aFunction->SetValue( aResShape );
+
+ log.SetTouched( Label() );
+
+ return 1;
+ }
+
+ //=======================================================================
+ //function : MustExecute
+ //purpose :
+ //=======================================================================
+ Standard_Boolean XTPlugin_ImportDriver::MustExecute( const TFunction_Logbook& ) const
+ {
+ return Standard_True;
+ }
+
+ //================================================================================
+ /*!
+ * \brief Returns a name of creation operation and names and values of creation parameters
+ */
+ //================================================================================
+
+ bool XTPlugin_ImportDriver::
+ GetCreationInformation( std::string& theOperationName,
+ std::vector<GEOM_Param>& theParams )
+ {
+ if( Label().IsNull() ) return 0;
+ Handle(GEOM_Function) function = GEOM_Function::GetFunction( Label() );
+
+ XTPlugin_IImport aCI( function );
+ Standard_Integer aType = function->GetType();
+
+ theOperationName = "ImportXT";
+
+ switch ( aType ) {
+ case IMPORT_SHAPE:
+ AddParam( theParams, "File name", aCI.GetFileName() );
+ break;
+ default:
+ return false;
+ }
+ return true;
+ }
+
+ IMPLEMENT_STANDARD_HANDLE( XTPlugin_ImportDriver, GEOM_BaseDriver );
+ IMPLEMENT_STANDARD_RTTIEXT( XTPlugin_ImportDriver, GEOM_BaseDriver );
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ #ifndef _XTPlugin_ImportDriver_HXX
+ #define _XTPlugin_ImportDriver_HXX
+
+ // GEOM includes
+ #include <GEOM_BaseDriver.hxx>
+
+ // OCCT includes
+ #ifndef _TFunction_Logbook_HeaderFile
+ #include <TFunction_Logbook.hxx>
+ #endif
+
+ DEFINE_STANDARD_HANDLE( XTPlugin_ImportDriver, GEOM_BaseDriver );
+
+ class XTPlugin_ImportDriver : public GEOM_BaseDriver
+ {
+ public:
+ XTPlugin_ImportDriver();
+ ~XTPlugin_ImportDriver() {};
+
+ static const Standard_GUID& GetID();
+ virtual Standard_Integer Execute( TFunction_Logbook& log ) const;
+ Standard_Boolean MustExecute( const TFunction_Logbook& ) const;
+ virtual void Validate( TFunction_Logbook& ) const {}
+
+ virtual bool GetCreationInformation( std::string& theOperationName,
+ std::vector<GEOM_Param>& params );
+
+ DEFINE_STANDARD_RTTI( XTPlugin_ImportDriver )
+ };
+
+ #endif // _XTPlugin_ImportDriver_HXX
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ // internal includes
+ #include "XTPlugin_OperationsCreator.hxx"
+ #include "XTPlugin_IOperations_i.hh"
+ #include "XTPlugin_ImportDriver.hxx"
+ #include "XTPlugin_IECallBack.hxx"
+
+ // KERNEL includes
+ #include <Utils_ExceptHandlers.hxx>
+ #include <utilities.h>
+
+ // GEOM includes
+ #include <GEOMImpl_IECallBack.hxx>
+
+ // OCCT includes
+ #include <TFunction_DriverTable.hxx>
+
+ std::map <int, XTPlugin_IOperations*> XTPlugin_OperationsCreator::_mapOfOperations;
+
+ XTPlugin_OperationsCreator::XTPlugin_OperationsCreator()
+ {
+ // Register drivers
+ TFunction_DriverTable::Get()->AddDriver( XTPlugin_ImportDriver::GetID(),
+ new XTPlugin_ImportDriver() );
+ // Register callback
+ XTPlugin_IECallBack* callback = new XTPlugin_IECallBack();
+ GEOMImpl_IECallBack::Register( "XT", callback );
+ }
+
+ XTPlugin_OperationsCreator::~XTPlugin_OperationsCreator()
+ {
+ }
+
+ GEOM_IOperations_i* XTPlugin_OperationsCreator::Create( PortableServer::POA_ptr thePOA,
+ int theStudyId,
+ GEOM::GEOM_Gen_ptr theEngine,
+ ::GEOMImpl_Gen* theGenImpl )
+ {
+ Unexpect aCatch( SALOME_SalomeException );
+ MESSAGE( "XTPlugin_OperationsCreator::Create" );
+ return new XTPlugin_IOperations_i( thePOA, theEngine, get( theGenImpl, theStudyId ) );
+ }
+
+ XTPlugin_IOperations* XTPlugin_OperationsCreator::get( ::GEOMImpl_Gen* theGenImpl,
+ int theStudyId )
+ {
+ if (_mapOfOperations.find( theStudyId ) == _mapOfOperations.end() )
+ _mapOfOperations[theStudyId] = new XTPlugin_IOperations( theGenImpl, theStudyId );
+ return _mapOfOperations[theStudyId];
+ }
--- /dev/null
-// Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ #ifndef _GEOM_XTPlugin_OperationsCreator_HXX_
+ #define _GEOM_XTPlugin_OperationsCreator_HXX_
+
+ // internal includes
+ #include "XTPlugin_Engine.hxx"
+
+ // GEOM includes
+ #include "GEOM_Gen_i.hh"
+
+ // C++ includes
+ #include <map>
+
+ class XTPlugin_IOperations;
+
+ //=====================================================================
+ // Operations creator
+ //=====================================================================
+ class XTPLUGINENGINE_EXPORT XTPlugin_OperationsCreator : public GEOM_GenericOperationsCreator
+ {
+ public:
+ XTPlugin_OperationsCreator();
+ ~XTPlugin_OperationsCreator();
+
+ GEOM_IOperations_i* Create( PortableServer::POA_ptr thePOA,
+ int theStudyId,
+ GEOM::GEOM_Gen_ptr theEngine,
+ ::GEOMImpl_Gen* theGenImpl );
+
+ private:
+ static XTPlugin_IOperations* get( ::GEOMImpl_Gen* theGenImpl,
+ int theStudyId );
+
+ static std::map <int, XTPlugin_IOperations*> _mapOfOperations;
+
+ friend class XTPlugin_IECallBack;
+ };
+
+ #endif
--- /dev/null
-// Copyright (C) 2014 OPEN CASCADE
++// Copyright (C) 2014-2015 OPEN CASCADE
+ //
+ // 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
+ //
+ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ //
+
+ #if !defined(__XTPLUGIN_LICENSE_H)
+ #define __XTPLUGIN_LICENSE_H
+
+ #define XT_READ_LICENSE "@XT_READ_LICENSE@"
+
+ #endif // __XTPLUGIN_LICENSE_H
--- /dev/null
-# Copyright (C) 2014 CEA/DEN, EDF R&D, OPEN CASCADE
+ # -*- coding: iso-8859-1 -*-
++# Copyright (C) 2014-2015 OPEN CASCADE
+ #
+ # 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
+ #
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+ #
+
+ # XTPLUGIN : binding of C++ implementation with Python
+ # File : __init__.py
+ #