Salome HOME
Merge from rnv/geom_plugin_imp branch
authorvsr <vsr@opencascade.com>
Wed, 27 May 2015 09:05:29 +0000 (12:05 +0300)
committervsr <vsr@opencascade.com>
Wed, 27 May 2015 13:53:23 +0000 (16:53 +0300)
46 files changed:
1  2 
CMakeLists.txt
DXFPLUGIN_version.h.in
DXFPlugin_version.h.in
INSTALL
README
SalomeDXFPLUGINConfig.cmake.in
adm_local/cmake_files/FindDXF.cmake
doc/CMakeLists.txt
doc/salome/CMakeLists.txt
doc/salome/examples/CMakeLists.txt
doc/salome/examples/DXFPlugindemo.py
doc/salome/gui/CMakeLists.txt
doc/salome/gui/DXFPLUGIN/CMakeLists.txt
doc/salome/gui/DXFPLUGIN/doxyfile.in
doc/salome/gui/DXFPLUGIN/doxyfile_py.in
doc/salome/gui/DXFPLUGIN/input/dxfplugin_importexport_page.doc
doc/salome/gui/DXFPLUGIN/input/dxfplugin_python_interface_page.doc
doc/salome/gui/DXFPLUGIN/input/index.doc
doc/salome/gui/DXFPLUGIN/static/footer.html
idl/CMakeLists.txt
idl/DXFPlugin.idl
resources/CMakeLists.txt
resources/DXFPlugin.xml
resources/SalomeApp.xml
src/CMakeLists.txt
src/DXFPluginBuilder.py
src/DXFPlugin_Engine.cxx
src/DXFPlugin_Engine.hxx
src/DXFPlugin_ExportDriver.cxx
src/DXFPlugin_ExportDriver.hxx
src/DXFPlugin_GUI.cxx
src/DXFPlugin_GUI.h
src/DXFPlugin_IECallBack.cxx
src/DXFPlugin_IECallBack.hxx
src/DXFPlugin_IExport.hxx
src/DXFPlugin_IImport.hxx
src/DXFPlugin_IOperations.cxx
src/DXFPlugin_IOperations.hxx
src/DXFPlugin_IOperations_i.cc
src/DXFPlugin_IOperations_i.hh
src/DXFPlugin_ImportDriver.cxx
src/DXFPlugin_ImportDriver.hxx
src/DXFPlugin_OperationsCreator.cxx
src/DXFPlugin_OperationsCreator.hxx
src/DXFPlugin_license.h.in
src/__init__.py

diff --cc CMakeLists.txt
index ef7537a9668675dd07e6352fa426c347a4c510b6,1b3400d8a59de99c199f3653c8b9446b83599f05..689dadc13af17825b2eede6a4fdf85ea8c47758f
@@@ -116,7 -161,7 +161,7 @@@ ENDIF(
  # Header configuration
  # ====================
  SALOME_XVERSION(${PROJECT_NAME})
--SALOME_CONFIGURE_FILE(DXFPLUGIN_version.h.in DXFPLUGIN_version.h)
++SALOME_CONFIGURE_FILE(DXFPlugin_version.h.in DXFPlugin_version.h INSTALL ${SALOME_INSTALL_HEADERS})
  
  # Configuration export
  # (here only the level 1 prerequisites are exposed)
diff --cc DXFPLUGIN_version.h.in
index 09c67f847fff2697b798b77cbb0fd9df9d1a64b5,36c86ea154ec2604a3918490584857b5e79e9237..0000000000000000000000000000000000000000
deleted file mode 100644,100644
+++ /dev/null
@@@ -1,41 -1,41 +1,0 @@@
- // 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(__DXFPLUGIN_VERSION_H)
--#define __DXFPLUGIN_VERSION_H
--
--/*!
--  Specify version of SALOME DXFPLUGIN module, as follows
--
--  DXFPLUGIN_VERSION_MAJOR       : (integer) number identifying major version
--  DXFPLUGIN_VERSION_MINOR       : (integer) number identifying minor version
--  DXFPLUGIN_VERSION_MAINTENANCE : (integer) number identifying maintenance version
--  DXFPLUGIN_VERSION_STR         : (string)  complete version number "major.minor.maintenance"
--  DXFPLUGIN_VERSION             : (hex)     complete version number (major << 16) + (minor << 8) + maintenance
--  DXFPLUGIN_DEVELOPMENT         : (integer) indicates development version when set to 1
--*/
--
--#define DXFPLUGIN_VERSION_MAJOR       @SALOMEDXFPLUGIN_MAJOR_VERSION@
--#define DXFPLUGIN_VERSION_MINOR       @SALOMEDXFPLUGIN_MINOR_VERSION@
--#define DXFPLUGIN_VERSION_MAINTENANCE @SALOMEDXFPLUGIN_PATCH_VERSION@
--#define DXFPLUGIN_VERSION_STR         "@SALOMEDXFPLUGIN_VERSION@"
--#define DXFPLUGIN_VERSION             @SALOMEDXFPLUGIN_XVERSION@
--#define DXFPLUGIN_DEVELOPMENT         @SALOMEDXFPLUGIN_VERSION_DEV@
--
--#endif // __DXFPLUGIN_VERSION_H
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..09c67f847fff2697b798b77cbb0fd9df9d1a64b5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,41 @@@
++// 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(__DXFPLUGIN_VERSION_H)
++#define __DXFPLUGIN_VERSION_H
++
++/*!
++  Specify version of SALOME DXFPLUGIN module, as follows
++
++  DXFPLUGIN_VERSION_MAJOR       : (integer) number identifying major version
++  DXFPLUGIN_VERSION_MINOR       : (integer) number identifying minor version
++  DXFPLUGIN_VERSION_MAINTENANCE : (integer) number identifying maintenance version
++  DXFPLUGIN_VERSION_STR         : (string)  complete version number "major.minor.maintenance"
++  DXFPLUGIN_VERSION             : (hex)     complete version number (major << 16) + (minor << 8) + maintenance
++  DXFPLUGIN_DEVELOPMENT         : (integer) indicates development version when set to 1
++*/
++
++#define DXFPLUGIN_VERSION_MAJOR       @SALOMEDXFPLUGIN_MAJOR_VERSION@
++#define DXFPLUGIN_VERSION_MINOR       @SALOMEDXFPLUGIN_MINOR_VERSION@
++#define DXFPLUGIN_VERSION_MAINTENANCE @SALOMEDXFPLUGIN_PATCH_VERSION@
++#define DXFPLUGIN_VERSION_STR         "@SALOMEDXFPLUGIN_VERSION@"
++#define DXFPLUGIN_VERSION             @SALOMEDXFPLUGIN_XVERSION@
++#define DXFPLUGIN_DEVELOPMENT         @SALOMEDXFPLUGIN_VERSION_DEV@
++
++#endif // __DXFPLUGIN_VERSION_H
diff --cc INSTALL
index b5dd7c8d21a31d08db0c546e7a481aff6b4f8881,4e1b94d8d522ff57f6673f2a0e5b02de7598818a..52afaa3a42cbe586402d47cff92c9a3021b02e7e
+++ b/INSTALL
@@@ -27,7 -27,7 +27,7 @@@ Pre-requisite
  DXF plugin for SALOME Geometry module requires:
  
  - SALOME, at least KERNEL module (http://www.salome-platform.org).
--- Open CASCADE Technology and OCCT DXF XDE Import/Export product
++- Open CASCADE Technology and OCCT DXF Import/Export XDE product
    (http://www.opencascade.org).
  
  ==================
@@@ -42,12 -42,12 +42,12 @@@ In order to build the plugin you have t
  
     - for csh:
  
--   % setenv DXF_ROOT_DIR /path/to/the/DXF-6.7.0
++   % setenv DXF_ROOT_DIR /path/to/the/DXF-6.9.0
     % setenv LD_LIBRARY_PATH ${DXF_ROOT_DIR}/lib:${LD_LIBRARY_PATH}
  
     - for bash:
     
--   % export DXF_ROOT_DIR=/path/to/the/DXF-6.7.0
++   % export DXF_ROOT_DIR=/path/to/the/DXF-6.9.0
     % export LD_LIBRARY_PATH=${DXF_ROOT_DIR}/lib:${LD_LIBRARY_PATH}
  
     Note, that OCCT DXF XDE product requires OCCT license library.
diff --cc README
index 9d5343cee31c4eeef45a12be56ef95347bd3d4ab,b23d438c31abb992bab25f474e2d5ba56971812b..7ca460d0a7be941fcf0e923aacdb6a8fffa16e2b
--- 1/README
--- 2/README
+++ b/README
@@@ -58,12 -58,12 +58,12 @@@ Usag
  
     - for csh:
  
--   % setenv DXF_ROOT_DIR /path/to/the/DXF-6.7.0
++   % setenv DXF_ROOT_DIR /path/to/the/DXF-6.9.0
     % setenv LD_LIBRARY_PATH ${DXF_ROOT_DIR}/lib:${LD_LIBRARY_PATH}
  
     - for bash:
  
--   % export DXF_ROOT_DIR=/path/to/the/DXF-6.7.0
++   % export DXF_ROOT_DIR=/path/to/the/DXF-6.9.0
     % export LD_LIBRARY_PATH=${DXF_ROOT_DIR}/lib:${LD_LIBRARY_PATH}
  
     * OCCT DXF XDE product requires also an OCCT license library.
Simple merge
index bfc743506000daa3a126abb60b7bfedb716b4af8,3f24d2dfab5285406b645ca2f4b9a92f62c6b993..7301c277e8a59f984cf364256a7f0e31f756c0e4
@@@ -49,14 -49,14 +49,14 @@@ ENDIF(OCCTLICENSE_INCLUDE_DIRS
  
  FIND_LIBRARY(DXF_TKACIS NAMES TKACIS)
  FIND_LIBRARY(DXF_TKDXF NAMES TKDXF)
--FIND_LIBRARY(DXF_TKOCCLicense NAMES TKOCCLicense)
  FIND_LIBRARY(DXF_TKXDEDXF NAMES TKXDEDXF)
++FIND_LIBRARY(DXF_TKOCCLicense NAMES TKOCCLicense)
  
  SET(DXF_LIBRARIES
    ${DXF_TKACIS}
    ${DXF_TKDXF}
--  ${DXF_TKOCCLicense}
    ${DXF_TKXDEDXF}
++  ${DXF_TKOCCLicense}
  )
  
  INCLUDE(FindPackageHandleStandardArgs)
index 0000000000000000000000000000000000000000,7eb84fee166b15ce96326a433bb96f39398d16f0..0fd283bcfd1b8f89662b1626f1ae1db8899b344e
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,20 +1,20 @@@
 -# 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)
index 0000000000000000000000000000000000000000,957d7ef945dd11a10b0ab5c6736e008953ea23ed..9965b8517ee33bb40b270d1a369d24940b8e7900
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,21 +1,21 @@@
 -# 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)
index 0000000000000000000000000000000000000000,9dad95bc0e816dfb12a8dcf28ebfa62ea1e4def5..7f8577e907c74977e459a7cd7394579c106b9b58
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,21 +1,21 @@@
 -# 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/DXFPLUGIN)
index 0000000000000000000000000000000000000000,313fb3b9e1724862fd5e1f7ad6a654f3b09c96f7..81dbefe70b4589ff88b2b9eba5834ab03715ad2e
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,34 +1,23 @@@
 -import GEOM,os
+ # Import/Export DXF
++import os
+ import salome
+ salome.salome_init()
 -
 -# Example of import/export file in DXF format
 -
 -print "Test Export/Import DXF ..."
 -
 -tmpDir = os.getenv("TEMP")
 -if tmpDir == None:
 -    tmpDir = "/tmp"
++import GEOM
+ from salome.geom import geomBuilder
+ geompy = geomBuilder.New(salome.myStudy)
 -# File for Export/Import testing
 -fileExportImport = tmpDir + "/testExportImportDXF.dxf"
+     
 -# create shape
 -box = geompy.MakeBoxDXDYDZ(100,100,100)
 -
 -# export shape
 -geompy.ExportDXF(box,fileExportImport)
 -
 -# import shape
 -Shape1 = geompy.ImportDXF(fileExportImport)
 -geompy.addToStudy(Shape1, "ImportDXF_1")
++# - path to the file
++dxfFile = os.path.join(os.getenv("TEMP", "/tmp"), "testExportImportDXF.dxf")
+     
 -# It is possible also to use next format of importing and publishing in study
++# - create shape
++box = geompy.MakeBoxDXDYDZ(100, 100, 100)
 -Shape2 = geompy.ImportDXF(fileExportImport,"ImportDXF_2")
++# - export shape
++geompy.ExportDXF(box, dxfFile)
 -print "OK"
++# - import shape
++shape = geompy.ImportDXF(dxfFile)
++# - publish in study
++geompy.addToStudy(shape, "ImportDXF")
index 0000000000000000000000000000000000000000,efac789347134a589e03d7d29730aae1dc90624d..ceb01a01702bf00e14841d1334e1ded88c9048f5
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,20 +1,20 @@@
 -# 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(DXFPLUGIN)
index 0000000000000000000000000000000000000000,598bde79a3283b1d314da4e9acdba296a85b9d9f..6a72dd1b9ec6cece003345e285de500764387014
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,45 +1,52 @@@
 -# 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 DXFPlugin)
++SET(_plugins_cmd_options ${GEOM_ROOT_DIR}/bin/salome/collect_geom_methods.py -d -o tmp/geomBuilder.py DXFPlugin)
++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/DXFPluginBuilder.py ${CMAKE_SOURCE_DIR}/src/DXFPluginBuilder.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}/DXFPLUGIN DESTINATION ${SALOME_INSTALL_DOC}/gui)
+ INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/DXFPLUGIN)
+ INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/gui/DXFPLUGIN/dxfpluginpy_doc)
+ SET(make_clean_files DXFPLUGIN dxfpluginpy_doc.tag)
+ SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${make_clean_files}")
index 0000000000000000000000000000000000000000,7f54ec40e2038216ea68a398cdd5e64b5504a9eb..3af1e63d41d9b0fa5654eeb85be1e86d6a1fd73d
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,114 +1,114 @@@
 -# 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 DXFPLUGIN User's Guide"
+ OUTPUT_DIRECTORY  = DXFPLUGIN
+ 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          = dxfpluginpy_doc.tag=../DXFPLUGIN/dxfpluginpy_doc
+ SEARCHENGINE      = YES
+ #---------------------------------------------------------------------------
+ #Custom commands
+ #---------------------------------------------------------------------------
+ ALIASES += tui_script{1}="\include \1 <a href=\"../../examples/DXFPLUGIN/\1\">Download this script</a>"
index 0000000000000000000000000000000000000000,bb77f41a335da6a8464a4a15afd08dcd6bde36bc..46b644e718ea2efdf4bfaf17411bfa62ee94c827
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,160 +1,160 @@@
 -# 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 DXFPLUGIN User's Guide"
+ OUTPUT_DIRECTORY       = DXFPLUGIN
+ 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/DXFPlugin_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       = dxfpluginpy_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  = dxfpluginpy_doc.tag
+ SEARCHENGINE      = YES
index 0000000000000000000000000000000000000000,30ae626496ba37165da4133c5fb3144c8e83dfef..335707b8739828d1ee0888224de1fd9804ef89f6
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,30 +1,29 @@@
 -  Browse and select the file and click "Open" button. New object (shape) 
 -  will appears in the SALOME object browser.
+ /*!
+ \page dxfplugin_importexport_page Import/Export DXF
+ For using DXFPLUGIN functionalities in SALOME:
+ - Run SALOME and activate Geometry module.
+ - Import the DXF file from menu <b>File/Import/DXF</b>.
+   \image html import_dxf.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.
 -- Export to the DXF file selecting a shape in the SALOME object browser and 
 -  calling menu <b>File/Export/DXF</b>.
++  \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_dxf.png
+   
 -  Enter the file name and click "Save" button.
++- Export selected shape to the DXF file via <b>File/Export/DXF</b> menu.
+   
+   \image html export_dxf.png
+   
++  Enter the file name and press "Save" button.
+ */
index 0000000000000000000000000000000000000000,e2725fa78c0da9fb5c3968c033d8ff02756ac77c..3ab4f3454c8475ea276b0b644c25a7abf1937bce
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,19 +1,19 @@@
 -Python package DXFPluginBuilder defines several classes, destined for 
 -import and export CAD models in DXF format (*.dxf files).
+ /*!
+ \page dxfplugin_python_interface_page Python Interface
++Python package DXFPluginBuilder defines several functions that allow
++importing and exporting CAD models in DXF format (*.dxf files).
+ DXFPLUGIN dynamically adds several methods to the geomBuilder.
+ Below you can see an example of usage of the DXFPluginBuilder package for 
+ import and export CAD models:
+ \anchor example_DXFPlugin
+ <h2>Example of import/export CAD model stored in DXF format (*.dxf files) with DXFPLUGIN:</h2>
+ \tui_script{DXFPlugindemo.py}
+ */
index 0000000000000000000000000000000000000000,78568cf92aaa51545ce961ab18503393c2a4afad..d5c7812df61db1c06d9c70f402d93a87066152e3
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,17 +1,16 @@@
 -\b DXF interface to be used as plugin for SALOME Geometry 
 -module. 
 -It is destined for:
 -- Importing CAD models stored in DXF format (*.dxf files) into 
 -SALOME study;
+ /*!
+ \mainpage Introduction to DXFPLUGIN
 -To manage parameters of the DXFPLUGIN use \subpage dxfplugin_importexport_page.
++The \b DXFPLUGIN implements <b>DXF</b> interface as a plugin for SALOME Geometry module.
++
++It can be used for:
++- Importing CAD models stored in DXF format (*.dxf files) into SALOME study;
+ - Exporting CAD models from SALOME to the *.dxf files.
 -Also all DXFPLUGIN functionalities are accessible via
++To use functionality of the DXFPLUGIN refer to \subpage dxfplugin_importexport_page.
++Also all functionalities of the DXFPLUGIN are accessible via
+ \subpage dxfplugin_python_interface_page "DXFPLUGIN Python interface".
+ */
index 0000000000000000000000000000000000000000,e21ab0ce443f1fd677742df7549edff2f623a795..a9dd3c180bc809df60b7baa78e1a225c91a6813f
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,13 +1,13 @@@
 -      Copyright &copy; 2014  CEA/DEN, EDF R&amp;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 &copy; 2014-2015  OPEN CASCADE<br>
+     </li>
+   </ul>
+ </div>
+ <!--END GENERATE_TREEVIEW-->
+ </body>
+ </html>
index 0000000000000000000000000000000000000000,6fd41e0027158f34217791bd7fbd27207c9a1111..c0eff383fd13e2c2f6b1d242f0116dfda706dc17
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,49 +1,49 @@@
 -# 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(SalomeIDLDXFPlugin_IDLSOURCES
+   DXFPlugin.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(SalomeIDLDXFPlugin "${SalomeIDLDXFPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_FLAGS}")
+ ADD_DEPENDENCIES(SalomeIDLDXFPlugin ${GEOM_SalomeIDLGEOM})
+ INSTALL(TARGETS SalomeIDLDXFPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
index 0000000000000000000000000000000000000000,935dbf2111f9b6bdab4d88a55183ac5cdb00186f..867adcbd01e2e28c9761ea5dbc93d93ba9341216
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,52 +1,52 @@@
 -// 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 __DXFPlugin_IDL__
+ #define __DXFPlugin_IDL__
+ #include "GEOM_Gen.idl"
+ module DXFPlugin
+ {
+   /*!
+    *  \brief Interface for DXFPlugin modeling functions.
+    */
+   interface IDXFOperations : GEOM::GEOM_IOperations
+   {
+     /*!
+      *  \brief Export the given shape into a file with given name in DXF format.
+      *
+      *  \param theObject Shape to be stored in the file.
+      *  \param theFileName Name of the file to store the given shape in.
+      */
+     void ExportDXF( in GEOM::GEOM_Object theObject, 
 -                     in string           theFileName );
++                  in string            theFileName );
+       
+     /*!
+      *  \brief Import a shape from the DXF file.
+      *
+      *  \param theFileName The file, containing the shape.
+      *  \return List of GEOM_Objects, containing the created shape and propagation groups.
+      */              
+     GEOM::ListOfGO ImportDXF( in string theFileName );
+   };
+ };
+ #endif // __DXFPlugin_IDL__
Simple merge
index 0000000000000000000000000000000000000000,258e9fe9847eab138ebc30358e37a3c105cce74b..7531e64c38f034cf49e7133409286f865d9a8da2
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,43 +1,43 @@@
 -  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="DXFPlugin"
+                server-lib="DXFPluginEngine"
+                gui-lib="DXFPluginGUI">
+     <actions>
+       <action label="Import_DXF"
+               menu="FILE/IMPORT:10/IMPORTDXF"
+               status-bar="IMPORTDXF">
+       </action>
+       <action label="Export_DXF"
+               menu="FILE/EXPORT:10/EXPORTDXF"
+               status-bar="EXPORTDXF">
+       </action>
+     </actions>
+   </geom-plugin>
+ </geom-plugins>
index 0000000000000000000000000000000000000000,466c9360e2ae9bf13fadc0cb953c3d4adad077e2..ba8da9695cd31a8aab43693af2ed0b6343627808
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,32 +1,32 @@@
 -  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="DXFPlugin" value="${DXFPLUGIN_ROOT_DIR}/share/salome/resources/dxfplugin"/>
+   </section>
+   <section name="GEOM">
+     <!-- Default GEOM module plugins -->
+     <parameter name="plugins" value="DXFPlugin"/>
+   </section>
+   <section name="geom_help" >
+     <parameter name="Plug-ins/DXF plugin User's Guide" value="${DXFPLUGIN_ROOT_DIR}/share/doc/salome/gui/DXFPLUGIN/index.html"/>
+   </section>
+ </document>
Simple merge
index 0000000000000000000000000000000000000000,63404d6b7c1019b0c7d4ef61169d94703610cb04..ff92dd7197bbe2fe908d0134805dc06a57397442
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,89 +1,101 @@@
 -# 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 DXFPlugin import IDXFOperations
+ # Engine Library Name
+ __libraryName__ = "DXFPluginEngine"
++## Get DXF plugin operations interface
++#  @return an instance of DXF plugin operations interface
+ def GetDXFPluginOperations(self):
++    """
++    Get DXF plugin operations interface.
++
++    Returns:
++        An instance of DXF plugin operations interface
++    """
+     anOp = self.GetPluginOperations(self.myStudyId, __libraryName__)
+     return anOp._narrow(IDXFOperations)
+ ## Export the given shape into a file with given name in DXF format.
+ #  @param theObject Shape to be stored in the file.
+ #  @param theFileName Name of the file to store the given shape in.
++#  @sa ImportDXF
+ def ExportDXF(self, theObject, theFileName):
+     """
+     Export the given shape into a file with given name in DXF format.
+     Parameters: 
+         theObject Shape to be stored in the file.
+         theFileName Name of the file to store the given shape in.
+     """
+     anOp = GetDXFPluginOperations(self)
+     anOp.ExportDXF(theObject, theFileName)
+     if anOp.IsDone() == 0:
+         raise RuntimeError,  "Export : " + anOp.GetErrorCode()
+         pass
+     pass
+ ## Import a shape from the DXF 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.
++#
++#  @sa ExportDXF
+ def ImportDXF(self, theFileName, theName=None):
+     """
+     Import a shape from the DXF 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 = GetDXFPluginOperations(self)
+     aListObj = anOp.ImportDXF(theFileName)
+     RaiseIfFailed("ImportDXF", anOp)
+     aNbObj = len(aListObj)
+     if aNbObj > 0:
+         self._autoPublish(aListObj[0], theName, "imported")
+     if aNbObj == 1:
+         return aListObj[0]
+     return aListObj
index 0000000000000000000000000000000000000000,e3a40d2a479dfee0d0b4e9c0aea6d02031f8cc3e..c85b2849b5dba6a53185d11dafc6adb7bc989d96
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,31 +1,31 @@@
 -// 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 "DXFPlugin_Engine.hxx"
+ #include "DXFPlugin_OperationsCreator.hxx"
+ extern "C"
+ {
+   DXFPLUGINENGINE_EXPORT
+   GEOM_GenericOperationsCreator* GetOperationsCreator()
+   {
+     return new DXFPlugin_OperationsCreator();
+   }
+ }
index 0000000000000000000000000000000000000000,073d0df7addaa44cc44490d5739bfa5f911f38eb..5e166b639f526ac8ad3c9068ec67263afb32e7f7
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,33 +1,33 @@@
 -// 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 _DXFPLUGIN_ENGINE_HXX_
+ #define _DXFPLUGIN_ENGINE_HXX_
+ #ifdef WIN32
+  #if defined DXFPLUGINENGINE_EXPORTS || defined DXFPluginEngine_EXPORTS
+    #define DXFPLUGINENGINE_EXPORT __declspec( dllexport )
+  #else
+    #define DXFPLUGINENGINE_EXPORT __declspec( dllimport )
+  #endif 
+ #else
+    #define DXFPLUGINENGINE_EXPORT
+ #endif
+ #endif
index 0000000000000000000000000000000000000000,97dc38155e6dfa81fa79743ab7b975ce8f9340b1..968226658961a41e4b80932fd8fab028dc93cc2d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,132 +1,132 @@@
 -// 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 "DXFPlugin_ExportDriver.hxx"
+ #include "DXFPlugin_IExport.hxx"
+ // KERNEL includes
+ #include <Basics_Utils.hxx>
+ #include <utilities.h>
+ // GEOM includes
+ #include <GEOM_Function.hxx>
+ // OOCT includes
+ #include <IFSelect_ReturnStatus.hxx>
+ #include <DxfControl_Writer.hxx>
+ #include <TCollection_AsciiString.hxx>
+ #include <TopoDS_Shape.hxx>
+ #ifdef DXF_HASLICENSE
+ #include "DXFPlugin_license.h"
+ #include <OCCLicense_Activate.hxx>
+ #include <Standard_LicenseError.hxx>
+ #endif // DXF_HASLICENSE
+ //=======================================================================
+ //function : GetID
+ //purpose  :
+ //=======================================================================
+ const Standard_GUID& DXFPlugin_ExportDriver::GetID()
+ {
+   static Standard_GUID aGUID("5bad3191-8af9-4b90-9e95-31f5fdb65304");
+   return aGUID;
+ }
+ //=======================================================================
+ //function : DXFPlugin_ExportDriver
+ //purpose  :
+ //=======================================================================
+ DXFPlugin_ExportDriver::DXFPlugin_ExportDriver()
+ {
+ }
+ //=======================================================================
+ //function : Execute
+ //purpose  :
+ //=======================================================================
+ Standard_Integer DXFPlugin_ExportDriver::Execute( TFunction_Logbook& log ) const
+ {
+ #ifdef DXF_HASLICENSE
+   try {
+     OCCLicense_Activate("DXF-W-"OCC_VERSION_STRING, DXF_WRITE_LICENSE);
+   }
+   catch (Standard_LicenseError) {
+     return 1;
+   }
+ #endif // DXF_HASLICENSE
+   if (Label().IsNull()) return 0;
+   Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction( Label() );
+   DXFPlugin_IExport aData (aFunction);
+   // retrieve the being exported shape
+   TopoDS_Shape aShape;
+   Handle(GEOM_Function) aRefFunction = aData.GetOriginal();
+   if( aRefFunction.IsNull() ) return 0;
+   aShape = aRefFunction->GetValue();
+   if( aShape.IsNull() ) return 0;
+   // set the result of function to be used by next operations
+   aFunction->SetValue( aShape );
+   TCollection_AsciiString aFileName = aData.GetFileName();
+   MESSAGE("Export DXF into file " << aFileName.ToCString());
+   // Set "C" numeric locale to save numbers correctly
+   Kernel_Utils::Localizer loc;
+   DxfControl_Writer aWriter;
+   IFSelect_ReturnStatus status ;
+   status = aWriter.TransferShape( aShape );
+   if ( status == IFSelect_RetDone )
+       status = aWriter.WriteFile( aFileName.ToCString() ) ;
+   if ( status == IFSelect_RetDone )
+       return 1;
+   else
+     return 0;
+ }
+ //=======================================================================
+ //function : MustExecute
+ //purpose  :
+ //=======================================================================
+ Standard_Boolean DXFPlugin_ExportDriver::MustExecute( const TFunction_Logbook& ) const
+ {
+   return Standard_True;
+ }
+ //================================================================================
+ /*!
+  * \brief Returns a name of creation operation and names and values of creation parameters
+  */
+ //================================================================================
+ bool DXFPlugin_ExportDriver::
+ GetCreationInformation( std::string&             theOperationName,
+                         std::vector<GEOM_Param>& theParams )
+ {
+   return false;
+ }
+ IMPLEMENT_STANDARD_HANDLE( DXFPlugin_ExportDriver,GEOM_BaseDriver );
+ IMPLEMENT_STANDARD_RTTIEXT( DXFPlugin_ExportDriver,GEOM_BaseDriver );
index 0000000000000000000000000000000000000000,ad88707384c304e01409d8c57c7a814f7b286065..6f95e3ca16b0aaf3bd942ac9f30ed2b7bdce6667
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,50 +1,50 @@@
 -// 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 _DXFPlugin_ExportDriver_HXX
+ #define _DXFPlugin_ExportDriver_HXX
+ // GEOM includes
+ #include <GEOM_BaseDriver.hxx>
+ // OCCT includes
+ #ifndef _TFunction_Logbook_HeaderFile
+ #include <TFunction_Logbook.hxx>
+ #endif
+ DEFINE_STANDARD_HANDLE( DXFPlugin_ExportDriver, GEOM_BaseDriver );
+ class DXFPlugin_ExportDriver : public GEOM_BaseDriver
+ {
+ public:
+   DXFPlugin_ExportDriver();
+   ~DXFPlugin_ExportDriver() {};
+   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( DXFPlugin_ExportDriver )
+ };
+ #endif // _DXFPlugin_ExportDriver_HXX
index 0000000000000000000000000000000000000000,6f74748d55c8b90887f131b420fb4db612dcc07f..e4a64cc25cde01c0f33e3ab1d36b1b3d920dc51b
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,265 +1,265 @@@
 -// 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 "DXFPlugin_GUI.h"
+ // 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(DXFPlugin)
+ //=======================================================================
+ // function : DXFPlugin_GUI()
+ // purpose  : Constructor
+ //=======================================================================
+ DXFPlugin_GUI::DXFPlugin_GUI( GeometryGUI* parent ) : GEOMPluginGUI( parent )
+ {
+ }
+ //=======================================================================
+ // function : ~DXFPlugin_GUI
+ // purpose  : Destructor
+ //=======================================================================
+ DXFPlugin_GUI::~DXFPlugin_GUI()
+ {
+ }
+ //=======================================================================
+ // function : OnGUIEvent()
+ // purpose  : 
+ //=======================================================================
+ bool DXFPlugin_GUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
+ {
+   QString cmd;
+   switch ( theCommandID ) {
+   case 1:
+     cmd = "Export_DXF";
+   case 2:
+     cmd = "Import_DXF";
+   default:
+     break;
+   }
+   return OnGUIEvent( cmd, parent );
+ }
+ //=======================================================================
+ // function : OnGUIEvent()
+ // purpose  :
+ //=======================================================================
+ bool DXFPlugin_GUI::OnGUIEvent( const QString& theCommandID, SUIT_Desktop* parent )
+ {
+   bool result = false;
+   if ( theCommandID == "Export_DXF" )
+   {
+     result = exportDXF( parent );
+   }
+   else if ( theCommandID == "Import_DXF" )
+   {
+     result = importDXF( parent );
+   }
+   else
+   {
+     getGeometryGUI()->getApp()->putInfo( tr("GEOM_PRP_COMMAND").arg( theCommandID ) );
+   }
+   return result;
+ }
+ //=======================================================================
+ // function : importDXF
+ // purpose  :
+ //=======================================================================
+ bool DXFPlugin_GUI::importDXF( 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(), "DXFPluginEngine" );
+   DXFPlugin::IDXFOperations_var dxfOp = DXFPlugin::IDXFOperations::_narrow( op );
+   if ( CORBA::is_nil( dxfOp ) ) return false;
+   QStringList fileNames = app->getOpenFileNames( SUIT_FileDlg::getLastVisitedPath().isEmpty() ? QDir::currentPath() : QString(""),
+                                                  tr( "DXF_FILES" ),
+                                                  tr( "IMPORT_TITLE" ),
+                                                  parent );
+   if ( fileNames.count() > 0 )
+   {
+     QStringList entryList;
+     QStringList errors;
+     foreach( QString fileName, fileNames )
+     {
+       SUIT_OverrideCursor wc;
+       GEOM_Operation transaction( app, dxfOp.in() );
+       try
+       {
+         app->putInfo( tr( "GEOM_PRP_LOADING" ).arg( fileName ) );
+         transaction.start();
+         GEOM::ListOfGO_var result = dxfOp->ImportDXF( fileName.toUtf8().constData() );
+         if ( result->length() > 0 && dxfOp->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( dxfOp->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;
+ }
+ //=======================================================================
+ // function : exportDXF
+ // purpose  :
+ //=======================================================================
+ bool DXFPlugin_GUI::exportDXF( 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(), "DXFPluginEngine" );
+   DXFPlugin::IDXFOperations_var dxfOp = DXFPlugin::IDXFOperations::_narrow( op );
+   if ( CORBA::is_nil( dxfOp ) ) return false;
+   LightApp_SelectionMgr* sm = app->selectionMgr();
+   if ( !sm ) return false;
+   SALOME_ListIO selectedObjects;
+   sm->selectedObjects( selectedObjects );
+   bool ok = false;
+   SALOME_ListIteratorOfListIO it( selectedObjects );
+   for ( ; it.More(); it.Next() )
+   {
+     Handle(SALOME_InteractiveObject) io = it.Value();
+     GEOM::GEOM_Object_var obj = GEOMBase::ConvertIOinGEOMObject( io );
+     if ( CORBA::is_nil( obj ) ) continue;
+     QString fileName = app->getFileName( false,
+                                          QString( io->getName() ),
+                                          tr( "DXF_FILES" ),
+                                          tr( "EXPORT_TITLE" ),
+                                          parent );
+     if ( fileName.isEmpty() )
+       return false;
+     SUIT_OverrideCursor wc;
+     GEOM_Operation transaction( app, dxfOp.in() );
+     try
+     {
+       app->putInfo( tr( "GEOM_PRP_EXPORT" ).arg( fileName ) );
+       transaction.start();
+       dxfOp->ExportDXF( obj, fileName.toUtf8().constData() );
+       if ( dxfOp->IsDone() )
+       {
+         transaction.commit();
+       }
+       else
+       {
+         transaction.abort();
+         SUIT_MessageBox::critical( parent,
+                                    tr( "GEOM_ERROR" ),
+                                    tr( "GEOM_PRP_ABORT" ) + "\n" + tr( dxfOp->GetErrorCode() ) );
+         return false;
+       }
+     }
+     catch ( const SALOME::SALOME_Exception& e )
+     {
+       transaction.abort();
+       return false;
+     }
+     ok = true;
+   }
+   if ( !ok )
+   {
+     SUIT_MessageBox::warning( parent,
+                               tr( "WRN_WARNING" ),
+                               tr( "GEOM_WRN_NO_APPROPRIATE_SELECTION" ) );
+   }
+   return ok;
+ }
+ //=====================================================================================
+ // EXPORTED METHODS
+ //=====================================================================================
+ extern "C"
+ {
+ #ifdef WIN32
+     __declspec( dllexport )
+ #endif
+   GEOMGUI* GetLibGUI( GeometryGUI* parent )
+   {
+     return new DXFPlugin_GUI( parent );
+   }
+ }
index 0000000000000000000000000000000000000000,99045fd743d97ed368623391fb1f3a261f70dd08..8ccd2098996f9cc391b3789922b3f1b8289e525c
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,40 +1,40 @@@
 -// 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 DXFPlugin_GUI_H
+ #define DXFPlugin_GUI_H
+ #include <GEOMPluginGUI.h>
+ class DXFPlugin_GUI: public GEOMPluginGUI
+ {
+   Q_OBJECT
+ public:
+   DXFPlugin_GUI( GeometryGUI* parent );
+   ~DXFPlugin_GUI();
+   bool OnGUIEvent( int commandId, SUIT_Desktop* );
+   bool OnGUIEvent( const QString&, SUIT_Desktop* );
+ private:
+   bool importDXF( SUIT_Desktop* );
+   bool exportDXF( SUIT_Desktop* );
+ };
+ #endif // DXFPlugin_GUI_H
index 0000000000000000000000000000000000000000,8aa1685ee7b6333eb4a8a9540a4cc4669a076ad7..4411ef1eade54d201ff883617ef08c240801f230
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,71 +1,71 @@@
 -// 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 "DXFPlugin_IECallBack.hxx"
+ #include "DXFPlugin_IOperations.hxx"
+ #include "DXFPlugin_OperationsCreator.hxx"
+ //=============================================================================
+ /*!
+  *  constructor
+  */
+ //=============================================================================
+ DXFPlugin_IECallBack::DXFPlugin_IECallBack()
+ {
+ }
+ //=============================================================================
+ /*!
+  *  destructor
+  */
+ //=============================================================================
+ DXFPlugin_IECallBack::~DXFPlugin_IECallBack()
+ {
+ }
+ //=============================================================================
+ /*!
+  *  Export
+  */
+ //=============================================================================
+ bool DXFPlugin_IECallBack::Export( int theDocId,
+                                    const Handle(GEOM_Object) theOriginal,
+                                    const TCollection_AsciiString& theFileName,
+                                    const TCollection_AsciiString& theFormatName )
+ {
+   DXFPlugin_IOperations* aPluginOperations = DXFPlugin_OperationsCreator::get( GetEngine(), theDocId );
+   aPluginOperations->ExportDXF( theOriginal, theFileName );
+   return true;
+ }
+ //=============================================================================
+ /*!
+  *  Import
+  */
+ //=============================================================================
+ Handle(TColStd_HSequenceOfTransient)
+ DXFPlugin_IECallBack::Import( int theDocId,
+                               const TCollection_AsciiString& theFormatName,
+                               const TCollection_AsciiString& theFileName )
+ {
+   DXFPlugin_IOperations* aPluginOperations = DXFPlugin_OperationsCreator::get( GetEngine(), theDocId );
+   return aPluginOperations->ImportDXF( theFileName );
+ }
index 0000000000000000000000000000000000000000,0e0b5c152a39e8b497dc3a717e7083ffee1883d3..a3710a4e1260f3403b7c9b9d49e72c9270ffd9f3
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,49 +1,49 @@@
 -// 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 _DXFPlugin_IECallBack_HXX_
+ #define _DXFPlugin_IECallBack_HXX_
+ // internal includes
+ #include "DXFPlugin_IOperations.hxx"
+ // GEOM includes
+ #include <GEOM_Object.hxx>
+ #include <GEOMImpl_IECallBack.hxx>
+ // OCC includes
+ #include <TCollection_AsciiString.hxx>
+ class DXFPLUGINENGINE_EXPORT DXFPlugin_IECallBack : public GEOMImpl_IECallBack
+ {
+ public:
+   DXFPlugin_IECallBack();
+   ~DXFPlugin_IECallBack();
+   
+   bool Export( int theDocId,
+                const Handle(GEOM_Object) theOriginal,
+                const TCollection_AsciiString& theFileName,
+                const TCollection_AsciiString& theFormatName );
+   Handle(TColStd_HSequenceOfTransient) Import( int theDocId,
+                                                const TCollection_AsciiString& theFormatName,
+                                                const TCollection_AsciiString& theFileName );
+ };
+ #endif
index 0000000000000000000000000000000000000000,860cf248efdd458ba59518d6f3de36f7303cd49c..27bb469b02cce4a38735224d136e20bbebb4e78b
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,48 +1,48 @@@
 -// 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 _DXFPlugin_IExport_HXX_
+ #define _DXFPlugin_IExport_HXX_
+ #include "GEOM_Function.hxx"
+ #define EXPORTDXF_ARG_ORIGINAL   1
+ #define EXPORTDXF_ARG_FILENAME   2
+ class DXFPlugin_IExport
+ {
+ public:
+   DXFPlugin_IExport( Handle(GEOM_Function) theFunction )
+     : _func(theFunction) {}
+   void SetOriginal( Handle( GEOM_Function ) theOriginal)
+     { _func->SetReference( EXPORTDXF_ARG_ORIGINAL, theOriginal ); }
+   Handle( GEOM_Function ) GetOriginal()
+     { return _func->GetReference( EXPORTDXF_ARG_ORIGINAL ); }
+   void SetFileName( const TCollection_AsciiString& theFileName )
+     { _func->SetString( EXPORTDXF_ARG_FILENAME, theFileName ); }
+   TCollection_AsciiString GetFileName()
+     { return _func->GetString( EXPORTDXF_ARG_FILENAME ); }
+   
+ private:
+   Handle(GEOM_Function) _func;
+ };
+ #endif // _DXFPlugin_IExport_HXX_
index 0000000000000000000000000000000000000000,e33c4109701cc01b1c4e4fac6df3aabd9344f57a..8a1ab266feed9a208604db6ab79181d7435276e9
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,42 +1,42 @@@
 -// 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 _DXFPlugin_IImport_HXX_
+ #define _DXFPlugin_IImport_HXX_
+ #include "GEOM_Function.hxx"
+ #define IMPORTDXF_ARG_FILENAME 1
+ class DXFPlugin_IImport
+ {
+ public:
+   DXFPlugin_IImport( Handle(GEOM_Function) theFunction)
+     : _func(theFunction) {}
+   void SetFileName( const TCollection_AsciiString& theFileName )
+     { _func->SetString( IMPORTDXF_ARG_FILENAME, theFileName ); }
+   TCollection_AsciiString GetFileName()
+     { return _func->GetString( IMPORTDXF_ARG_FILENAME ); }
+   
+ private:
+   Handle(GEOM_Function) _func;
+ };
+ #endif // _DXFPlugin_IImport_HXX_
index 0000000000000000000000000000000000000000,65b3732a58be65dead63a0c903823852aa3a80cd..7a49fa693ab9cf3ed0ab5bfaf1f1d2d9ed5884e3
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,165 +1,165 @@@
 -// 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 "DXFPlugin_IOperations.hxx"
+ #include "DXFPlugin_ExportDriver.hxx"
+ #include "DXFPlugin_ImportDriver.hxx"
+ #include "DXFPlugin_IExport.hxx"
+ #include "DXFPlugin_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
+  */
+ //=============================================================================
+ DXFPlugin_IOperations::DXFPlugin_IOperations( GEOM_Engine* theEngine, int theDocID )
+ : GEOMImpl_IBaseIEOperations( theEngine, theDocID )
+ {
+   MESSAGE( "DXFPlugin_IOperations::DXFPlugin_IOperations" );
+ }
+ //=============================================================================
+ /*!
+  *  Destructor
+  */
+ //=============================================================================
+ DXFPlugin_IOperations::~DXFPlugin_IOperations()
+ {
+   MESSAGE( "DXFPlugin_IOperations::~DXFPlugin_IOperations" );
+ }
+ //=============================================================================
+ /*!
+  *  ExportDXF
+  *  Export a shape to DXF format
+  *  \param theOriginal The shape to export
+  *  \param theFileName The name of the file to exported
+  */
+ //=============================================================================
+ void DXFPlugin_IOperations::ExportDXF( const Handle(GEOM_Object)      theOriginal,
+                                        const TCollection_AsciiString& theFileName )
+ {
+   SetErrorCode(KO);
+   if( theOriginal.IsNull() ) return;
+   Handle(GEOM_Function) aRefFunction = theOriginal->GetLastFunction();
+   if( aRefFunction.IsNull() ) return;  //There is no function which creates an object to be exported
+   //Add a new result object
+   Handle(GEOM_Object) result = GetEngine()->AddObject( GetDocID(), GEOM_IMPORT);
+   //Add an Export function
+   Handle(GEOM_Function) aFunction = result->AddFunction( DXFPlugin_ExportDriver::GetID(), EXPORT_SHAPE );
+   if( aFunction.IsNull() ) return;
+   //Check if the function is set correctly
+   if( aFunction->GetDriverGUID() != DXFPlugin_ExportDriver::GetID() ) return;
+   //Set parameters
+   DXFPlugin_IExport aCI( aFunction );
+   aCI.SetOriginal( aRefFunction );
+   aCI.SetFileName( theFileName );
+   //Perform the Export
+   try {
+     OCC_CATCH_SIGNALS;
+     if( !GetSolver()->ComputeFunction( aFunction ) ) {
+       SetErrorCode( "Not enough space on disk, or you haven't permissions to write this directory" );
+       return;
+     }
+   }
+   catch( Standard_Failure ) {
+     Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+     SetErrorCode( aFail->GetMessageString() );
+     return;
+   }
+   //Make a Python command
+   GEOM::TPythonDump(aFunction) << "geompy.ExportDXF(" << theOriginal << ", \""
+     << theFileName.ToCString() << "\" )";
+   SetErrorCode(OK);
+ }
+ //=============================================================================
+ /*!
+  *  ImportDXF
+  *  Import a shape from DXF 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)
+ DXFPlugin_IOperations::ImportDXF( 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( DXFPlugin_ImportDriver::GetID(), IMPORT_SHAPE);
+   if (aFunction.IsNull()) return NULL;
+   //Check if the function is set correctly
+   if (aFunction->GetDriverGUID() != DXFPlugin_ImportDriver::GetID()) return NULL;
+   //Set parameters
+   DXFPlugin_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.ImportDXF(\"" << theFileName.ToCString() << "\" )";
+   SetErrorCode(OK);
+   return aSeq;
+ }
index 0000000000000000000000000000000000000000,c3d9d2624486fca51fe06ae50f333768f7fdfed3..65e56330a5140e5de4effd450e24e3486f997a47
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,42 +1,42 @@@
 -// 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 : DXFPlugin_IOperations.hxx
+ #ifndef _DXFPlugin_IOperations_HXX_
+ #define _DXFPlugin_IOperations_HXX_
+ // internal includes
+ #include "DXFPlugin_Engine.hxx"
+ // GEOM includes
+ #include <GEOMImpl_IBaseIEOperations.hxx>
+ class DXFPLUGINENGINE_EXPORT DXFPlugin_IOperations: public GEOMImpl_IBaseIEOperations
+ {
+ public:
+   DXFPlugin_IOperations( GEOM_Engine*, int );
+   ~DXFPlugin_IOperations();
+   void ExportDXF( const Handle(GEOM_Object),
+                   const TCollection_AsciiString& );
+   Handle(TColStd_HSequenceOfTransient) ImportDXF( const TCollection_AsciiString& );
+ };
+ #endif
index 0000000000000000000000000000000000000000,bca345bc8c04e04050489b1871e16d7965462478..c04fb8c22d7b2bacc23619620c9e2d91d51f852d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,109 +1,109 @@@
 -// 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 "DXFPlugin_IOperations_i.hh"
+ #include "DXFPlugin_IOperations.hxx"
 -#include <DXFPLUGIN_version.h>
++#include "DXFPlugin_version.h"
+ // KERNEL includes
+ #include <utilities.h>
+ //=============================================================================
+ /*!
+  *   constructor:
+  */
+ //=============================================================================
+ DXFPlugin_IOperations_i::DXFPlugin_IOperations_i( PortableServer::POA_ptr  thePOA,
+                                                   GEOM::GEOM_Gen_ptr       theEngine,
+                                                   ::DXFPlugin_IOperations* theImpl )
+ :GEOM_IOperations_i( thePOA, theEngine, theImpl )
+ {
+   MESSAGE( "DXFPlugin_Operations_i::DXFPlugin_Operations_i" );
+ }
+ //=============================================================================
+ /*!
+  *  destructor
+  */
+ //=============================================================================
+ DXFPlugin_IOperations_i::~DXFPlugin_IOperations_i()
+ {
+   MESSAGE( "DXFPlugin_Operations_i::~DXFPlugin_Operations_i" );
+ }
+ //=============================================================================
+ /*!
+  *  ExportDXF
+  *  Export a shape to DXF format
+  *  \param theOriginal The shape to export
+  *  \param theFileName The name of the exported file
+  */
+ //=============================================================================
+ void DXFPlugin_IOperations_i::ExportDXF( GEOM::GEOM_Object_ptr theOriginal,
+                                          const char*           theFileName )
+ {
+   // duplicate the original shape
+   GEOM::GEOM_Object_var aGEOMObject = GEOM::GEOM_Object::_duplicate( theOriginal );
+   //Set a not done flag
+   GetOperations()->SetNotDone();
+   //Get the reference shape
+   Handle(GEOM_Object) anOriginal = GetObjectImpl( theOriginal );
+   if (anOriginal.IsNull()) return;
+   //Export the shape to the file
+   GetOperations()->ExportDXF( anOriginal, theFileName );
+ }
+ //=============================================================================
+ /*!
+  *  ImportDXF
+  *  Import a shape from DXF format
+  *  \param theFileName The name of the file to import
+  *  \return List of GEOM_Objects, containing the created shape and propagation groups.
+  */
+ //=============================================================================
+ GEOM::ListOfGO* DXFPlugin_IOperations_i::ImportDXF( 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()->ImportDXF( 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();
+ }
+ DXFPlugin_IOperations* DXFPlugin_IOperations_i::GetOperations()
+ {
+   return (DXFPlugin_IOperations*)GetImpl();
+ }
index 0000000000000000000000000000000000000000,689e900f2d02e01fea42eab7ae7f5d99e1f29a61..fcf7accbab66c0f556eb9ac4087156e130581899
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,52 +1,52 @@@
 -// 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 _DXFPlugin_IOperations_i_HeaderFile
+ #define _DXFPlugin_IOperations_i_HeaderFile
+ // idl includes
+ #include <SALOMEconfig.h>
+ #include CORBA_SERVER_HEADER( GEOM_Gen )
+ #include CORBA_SERVER_HEADER( DXFPlugin )
+ // internal includes
+ #include "DXFPlugin_Engine.hxx"
+ // GEOM includes
+ #include <GEOM_IOperations_i.hh>
+ class DXFPlugin_IOperations;
+ class DXFPLUGINENGINE_EXPORT DXFPlugin_IOperations_i :
+       public virtual POA_DXFPlugin::IDXFOperations,
+       public virtual GEOM_IOperations_i
+ {
+ public:
+   DXFPlugin_IOperations_i( PortableServer::POA_ptr thePOA,
+                            GEOM::GEOM_Gen_ptr theEngine,
+                            DXFPlugin_IOperations* theImpl );
+   ~DXFPlugin_IOperations_i();
+   void            ExportDXF( GEOM::GEOM_Object_ptr, const char* );
+   GEOM::ListOfGO* ImportDXF( const char* );
+   DXFPlugin_IOperations* GetOperations();
+ };
+ #endif // _DXFPlugin_IOperations_i_HeaderFile
index 0000000000000000000000000000000000000000,c9615c293c94738ee671be3530ccd1f66bf2ab95..c69c82e76e12317d8e12d673b8e69a3fadc3087a
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,215 +1,215 @@@
 -// 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 "DXFPlugin_ImportDriver.hxx"
+ #include "DXFPlugin_IImport.hxx"
+ // KERNEL includes
+ #include <Basics_Utils.hxx>
+ #include <utilities.h>
+ // GEOM includes
+ #include <GEOM_Function.hxx>
+ #include <GEOMImpl_Types.hxx>
+ // OOCT includes
+ #include <DxfControl_Reader.hxx>
+ #include <DxfSection_Block.hxx>
+ #include <DxfSection_HSequenceOfObject.hxx>
+ #include <DxfSection_Model.hxx>
+ #include <DxfSection_Section.hxx>
+ #include <IFSelect_ReturnStatus.hxx>
+ #include <TCollection_AsciiString.hxx>
+ #include <TCollection_HAsciiString.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 <XSControl_TransferReader.hxx>
+ #include <XSControl_WorkSession.hxx>
+ #include <StdFail_NotDone.hxx>
+ #ifdef DXF_HASLICENSE
+ #include "DXFPlugin_license.h"
+ #include <OCCLicense_Activate.hxx>
+ #include <Standard_LicenseError.hxx>
+ #endif // DXF_HASLICENSE
+ //=======================================================================
+ //function : GetID
+ //purpose  :
+ //=======================================================================
+ const Standard_GUID& DXFPlugin_ImportDriver::GetID()
+ {
+   static Standard_GUID aGUID("dc74f282-3542-419f-a755-c5ab6aba17c5");
+   return aGUID;
+ }
+ //=======================================================================
+ //function : DXFPlugin_ImportDriver
+ //purpose  :
+ //=======================================================================
+ DXFPlugin_ImportDriver::DXFPlugin_ImportDriver()
+ {
+ }
+ //=======================================================================
+ //function : Execute
+ //purpose  :
+ //=======================================================================
+ Standard_Integer DXFPlugin_ImportDriver::Execute( TFunction_Logbook& log ) const
+ {
+   if( Label().IsNull() ) return 0;
+   Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction( Label() );
+   DXFPlugin_IImport aData( aFunction );
+   TCollection_AsciiString aFileName = aData.GetFileName().ToCString();
+   MESSAGE("Import DXF from file " << aFileName);
+   TopoDS_Shape aResShape;
+ #ifdef DXF_HASLICENSE
+   try {
+     OCCLicense_Activate( "DXF-R-"OCC_VERSION_STRING, DXF_READ_LICENSE);
+   }
+   catch (Standard_LicenseError) {
+     return aResShape;
+   }
+ #endif
+   // Set "C" numeric locale to save numbers correctly
+   Kernel_Utils::Localizer loc;
+   DxfControl_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(DxfSection_Model) aModel = Handle(DxfSection_Model)::DownCast( aReader.WS()->Model() );
+       Handle(XSControl_TransferReader) TR = aReader.WS()->TransferReader();
+       if (!TR.IsNull()) {
+         Handle(Transfer_TransientProcess) TP = TR->TransientProcess();
+         Handle(DxfSection_Section) aBlocks = aModel->FindSection("BLOCKS");
+         if( !aBlocks.IsNull() ) {
+           Handle(DxfSection_HSequenceOfObject) anObjects = aBlocks->GetObjects();
+           for (Standard_Integer i = 1; i <= anObjects->Length(); i++) {
+             Handle(DxfSection_Block) aBlock = Handle(DxfSection_Block)::DownCast(anObjects->Value(i));
+             if (aBlock.IsNull()) continue;
+             Handle(TCollection_HAsciiString) aName = aBlock->GetBlockName1();
+             if (aName.IsNull()) continue;
+             Handle(Transfer_Binder) binder = TP->Find ( aBlock );
+             if (binder.IsNull()) continue;
+             TopoDS_Shape aResShape = TransferBRep::ShapeResult (binder);
+             if (aResShape.IsNull()) continue;
+             // create label and set shape
+             TDF_Label L;
+             TDF_TagSource aTag;
+             L = aTag.NewChild(aFunction->GetNamingEntry());
+             TNaming_Builder tnBuild(L);
+             tnBuild.Generated(aResShape);
+             // set a name
+             TCollection_ExtendedString str( aName->ToCString() );
+             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 DXFPlugin_ImportDriver::MustExecute( const TFunction_Logbook& ) const
+ {
+   return Standard_True;
+ }
+ //================================================================================
+ /*!
+  * \brief Returns a name of creation operation and names and values of creation parameters
+  */
+ //================================================================================
+ bool DXFPlugin_ImportDriver::
+ GetCreationInformation( std::string&             theOperationName,
+                         std::vector<GEOM_Param>& theParams )
+ {
+   if( Label().IsNull() ) return 0;
+   Handle(GEOM_Function) function = GEOM_Function::GetFunction( Label() );
+   DXFPlugin_IImport aCI( function );
+   Standard_Integer aType = function->GetType();
+   theOperationName = "ImportDXF";
+   switch ( aType ) {
+   case IMPORT_SHAPE:
+     AddParam( theParams, "File name", aCI.GetFileName() );
+     break;
+   default:
+     return false;
+   }
+   return true;
+ }
+ IMPLEMENT_STANDARD_HANDLE( DXFPlugin_ImportDriver, GEOM_BaseDriver );
+ IMPLEMENT_STANDARD_RTTIEXT( DXFPlugin_ImportDriver, GEOM_BaseDriver );
index 0000000000000000000000000000000000000000,dfc6ac446bf47a4f1dd3d488064f86763648d7d8..8d03716f2b43ce1b6a348a46dd4801c400972049
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,50 +1,50 @@@
 -// 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 _DXFPlugin_ImportDriver_HXX
+ #define _DXFPlugin_ImportDriver_HXX
+ // GEOM includes
+ #include <GEOM_BaseDriver.hxx>
+ // OCCT includes
+ #ifndef _TFunction_Logbook_HeaderFile
+ #include <TFunction_Logbook.hxx>
+ #endif
+ DEFINE_STANDARD_HANDLE( DXFPlugin_ImportDriver, GEOM_BaseDriver );
+ class DXFPlugin_ImportDriver : public GEOM_BaseDriver
+ {
+ public:
+   DXFPlugin_ImportDriver();
+   ~DXFPlugin_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( DXFPlugin_ImportDriver )
+ };
+ #endif // _DXFPlugin_ImportDriver_HXX
index 0000000000000000000000000000000000000000,a20b6c83748c8cdbf61280cc6069f65c7f2e0c67..33f396da7e7c770827e1d2dd54a7b31e8beb92e3
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,71 +1,71 @@@
 -// 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 "DXFPlugin_OperationsCreator.hxx"
+ #include "DXFPlugin_IOperations_i.hh"
+ #include "DXFPlugin_ExportDriver.hxx"
+ #include "DXFPlugin_ImportDriver.hxx"
+ #include "DXFPlugin_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, DXFPlugin_IOperations*> DXFPlugin_OperationsCreator::_mapOfOperations;
+ DXFPlugin_OperationsCreator::DXFPlugin_OperationsCreator()
+ {
+   // Register drivers
+   TFunction_DriverTable::Get()->AddDriver( DXFPlugin_ExportDriver::GetID(),
+                                            new DXFPlugin_ExportDriver() );
+   TFunction_DriverTable::Get()->AddDriver( DXFPlugin_ImportDriver::GetID(),
+                                            new DXFPlugin_ImportDriver() );
+   // Register callback
+   DXFPlugin_IECallBack* callback = new DXFPlugin_IECallBack();
+   GEOMImpl_IECallBack::Register( "DXF", callback );
+ }
+ DXFPlugin_OperationsCreator::~DXFPlugin_OperationsCreator()
+ {
+ }
+ GEOM_IOperations_i* DXFPlugin_OperationsCreator::Create( PortableServer::POA_ptr thePOA,
+                                                          int                     theStudyId,
+                                                          GEOM::GEOM_Gen_ptr      theEngine,
+                                                          ::GEOMImpl_Gen*         theGenImpl )
+ {
+   Unexpect aCatch( SALOME_SalomeException );
+   MESSAGE( "DXFPlugin_OperationsCreator::Create" );
+   return new DXFPlugin_IOperations_i( thePOA, theEngine, get( theGenImpl, theStudyId ) );
+ }
+ DXFPlugin_IOperations* DXFPlugin_OperationsCreator::get( ::GEOMImpl_Gen* theGenImpl,
+                                                          int             theStudyId )
+ {
+   if (_mapOfOperations.find( theStudyId ) == _mapOfOperations.end() )
+     _mapOfOperations[theStudyId] = new DXFPlugin_IOperations( theGenImpl, theStudyId );
+   return _mapOfOperations[theStudyId];
+ }
index 0000000000000000000000000000000000000000,3d8df7371cfac92eb36780726c7d59f0f9ab39b1..9b941ae4d43979013d60d163fa6d9003293c6fdc
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,57 +1,57 @@@
 -// 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_DXFPlugin_OperationsCreator_HXX_
+ #define _GEOM_DXFPlugin_OperationsCreator_HXX_
+ // internal includes
+ #include "DXFPlugin_Engine.hxx"
+ // GEOM includes
+ #include "GEOM_Gen_i.hh"
+ // C++ includes
+ #include <map>
+ class DXFPlugin_IOperations;
+ //=====================================================================
+ // Operations creator
+ //=====================================================================
+ class DXFPLUGINENGINE_EXPORT DXFPlugin_OperationsCreator : public GEOM_GenericOperationsCreator
+ {
+ public:
+   DXFPlugin_OperationsCreator();
+   ~DXFPlugin_OperationsCreator();
+   GEOM_IOperations_i* Create( PortableServer::POA_ptr thePOA,
+                               int                     theStudyId,
+                               GEOM::GEOM_Gen_ptr      theEngine,
+                               ::GEOMImpl_Gen*         theGenImpl );
+ private:
+   static DXFPlugin_IOperations* get( ::GEOMImpl_Gen* theGenImpl,
+                                      int             theStudyId );
+   static std::map <int, DXFPlugin_IOperations*>  _mapOfOperations;
+   friend class DXFPlugin_IECallBack;
+ };
+ #endif
index 0000000000000000000000000000000000000000,545d18117cc91470a0dd727ef3294c6602455daf..60a4cde774ef96a2916e89306987e19e7784fbb2
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,26 +1,26 @@@
 -// 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(__DXFPLUGIN_LICENSE_H)
+ #define __DXFPLUGIN_LICENSE_H
+ #define DXF_READ_LICENSE  "@DXF_READ_LICENSE@"
+ #define DXF_WRITE_LICENSE "@DXF_WRITE_LICENSE@"
+ #endif // __DXFPLUGIN_LICENSE_H
diff --cc src/__init__.py
index 0000000000000000000000000000000000000000,f97508bb618215228e520aae7476162c1c7003d1..523c423396c0bc686cbba94dee3f9d6461327c8e
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,23 +1,23 @@@
 -# 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
+ #
+ #  DXFPLUGIN : binding of C++ implementation with Python
+ #  File   : __init__.py
+ #