From d4a710ce52f6e76786a7b3845e2f7975dc9a00b1 Mon Sep 17 00:00:00 2001 From: vsr Date: Tue, 5 Jun 2012 12:18:07 +0000 Subject: [PATCH] Merge from V6_5_BR 05/06/2012 --- Makefile.am | 2 +- SMESH_version.h.in | 2 +- adm_local/Makefile.am | 2 +- adm_local/cmake_files/FindSMESH.cmake | 2 +- adm_local/cmake_files/Makefile.am | 2 +- adm_local/unix/Makefile.am | 2 +- adm_local/unix/config_files/Makefile.am | 2 +- adm_local/unix/config_files/check_Platform.m4 | 2 +- adm_local/unix/config_files/check_SMESH.m4 | 2 +- adm_local/unix/config_files/check_cgal.m4 | 101 +++++ adm_local/unix/config_files/check_cgns.m4 | 2 +- adm_local/unix/config_files/check_f77.m4 | 2 +- adm_local/unix/config_files/check_padder.m4 | 69 +++ adm_local/unix/config_files/check_qwt.m4 | 2 +- adm_local/unix/make_common_starter.am | 2 +- bin/Makefile.am | 2 +- bin/smesh_setenv.py | 2 +- build_cmake | 2 +- build_cmake.bat | 2 +- build_configure | 2 +- clean_configure | 2 +- configure.ac | 23 +- doc/Makefile.am | 2 +- doc/docutils/Makefile.am | 2 +- doc/salome/Makefile.am | 2 +- doc/salome/gui/Makefile.am | 2 +- doc/salome/gui/SMESH/Makefile.am | 2 +- doc/salome/gui/SMESH/doxyfile.in | 2 +- doc/salome/gui/SMESH/doxyfile_py.in | 2 +- doc/salome/gui/SMESH/images/duplicate01.png | Bin 11580 -> 22358 bytes doc/salome/gui/SMESH/images/duplicate02.png | Bin 13187 -> 27801 bytes doc/salome/gui/SMESH/images/pref21.png | Bin 0 -> 85160 bytes doc/salome/gui/SMESH/images/pref22.png | Bin 0 -> 44149 bytes doc/salome/gui/SMESH/images/pref23.png | Bin 0 -> 31529 bytes doc/salome/gui/SMESH/images/pref24.png | Bin 0 -> 53003 bytes doc/salome/gui/SMESH/images/projection_1d.png | Bin 17865 -> 15597 bytes doc/salome/gui/SMESH/images/projection_2d.png | Bin 22576 -> 19002 bytes doc/salome/gui/SMESH/images/projection_3d.png | Bin 23518 -> 26694 bytes .../SMESH/input/about_quality_controls.doc | 4 +- doc/salome/gui/SMESH/input/cartesian_algo.doc | 10 +- .../gui/SMESH/input/double_nodes_page.doc | 12 +- doc/salome/gui/SMESH/input/index.doc | 2 + .../gui/SMESH/input/mesh_preferences.doc | 203 +++++++++ .../gui/SMESH/input/modifying_meshes.doc | 2 +- .../SMESH/input/selection_filter_library.doc | 12 +- doc/salome/gui/SMESH/static/footer.html | 2 +- doc/salome/tui/Makefile.am | 13 +- doc/salome/tui/doxyfile.in | 2 +- doc/salome/tui/static/footer.html | 2 +- idl/Makefile.am | 14 +- idl/SMESH_BasicHypothesis.idl | 2 +- idl/SMESH_Filter.idl | 2 +- idl/SMESH_Gen.idl | 2 +- idl/SMESH_Group.idl | 2 +- idl/SMESH_Hypothesis.idl | 2 +- idl/SMESH_Measurements.idl | 2 +- idl/SMESH_Mesh.idl | 2 +- idl/SMESH_MeshEditor.idl | 46 +- idl/SMESH_Pattern.idl | 2 +- resources/Makefile.am | 2 +- resources/SMESHCatalog.xml.in | 2 +- resources/SalomeApp.xml.in | 2 +- resources/StdMeshers.xml | 2 +- src/Controls/Makefile.am | 2 +- src/Controls/SMESHControls.cxx | 2 +- src/Controls/SMESH_Controls.cxx | 3 +- src/Controls/SMESH_ControlsDef.hxx | 2 +- src/Driver/Driver_Document.cxx | 2 +- src/Driver/Driver_Document.h | 2 +- src/Driver/Driver_Mesh.cxx | 2 +- src/Driver/Driver_Mesh.h | 2 +- src/Driver/Driver_SMDS_Mesh.cxx | 2 +- src/Driver/Driver_SMDS_Mesh.h | 2 +- src/Driver/Driver_SMESHDS_Mesh.cxx | 2 +- src/Driver/Driver_SMESHDS_Mesh.h | 2 +- src/Driver/Makefile.am | 2 +- src/DriverCGNS/DriverCGNS_Read.cxx | 2 +- src/DriverCGNS/DriverCGNS_Read.hxx | 2 +- src/DriverCGNS/DriverCGNS_Write.cxx | 4 +- src/DriverCGNS/DriverCGNS_Write.hxx | 2 +- src/DriverCGNS/Makefile.am | 2 +- src/DriverCGNS/SMESH_DriverCGNS.hxx | 2 +- src/DriverDAT/DAT_Test.cxx | 2 +- src/DriverDAT/DriverDAT_R_SMDS_Mesh.cxx | 2 +- src/DriverDAT/DriverDAT_R_SMDS_Mesh.h | 2 +- src/DriverDAT/DriverDAT_W_SMDS_Mesh.cxx | 2 +- src/DriverDAT/DriverDAT_W_SMDS_Mesh.h | 2 +- src/DriverDAT/Makefile.am | 2 +- src/DriverDAT/SMESH_DriverDAT.hxx | 2 +- src/DriverMED/DriverMED_Family.cxx | 2 +- src/DriverMED/DriverMED_Family.h | 2 +- src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx | 2 +- src/DriverMED/DriverMED_R_SMESHDS_Mesh.h | 2 +- src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx | 2 +- src/DriverMED/DriverMED_W_SMESHDS_Mesh.h | 2 +- src/DriverMED/MED_Test.cxx | 2 +- src/DriverMED/Makefile.am | 2 +- src/DriverMED/SMESH_DriverMED.hxx | 2 +- src/DriverSTL/DriverSTL_R_SMDS_Mesh.cxx | 2 +- src/DriverSTL/DriverSTL_R_SMDS_Mesh.h | 2 +- src/DriverSTL/DriverSTL_W_SMDS_Mesh.cxx | 2 +- src/DriverSTL/DriverSTL_W_SMDS_Mesh.h | 2 +- src/DriverSTL/Makefile.am | 2 +- src/DriverSTL/SMESH_DriverSTL.hxx | 2 +- src/DriverSTL/STL_Test.cxx | 2 +- src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx | 2 +- src/DriverUNV/DriverUNV_R_SMDS_Mesh.h | 2 +- src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx | 2 +- src/DriverUNV/DriverUNV_W_SMDS_Mesh.h | 2 +- src/DriverUNV/Makefile.am | 2 +- src/DriverUNV/SMESH_DriverUNV.hxx | 2 +- src/DriverUNV/UNV164_Structure.cxx | 2 +- src/DriverUNV/UNV164_Structure.hxx | 2 +- src/DriverUNV/UNV2411_Structure.cxx | 2 +- src/DriverUNV/UNV2411_Structure.hxx | 2 +- src/DriverUNV/UNV2412_Structure.cxx | 2 +- src/DriverUNV/UNV2412_Structure.hxx | 2 +- src/DriverUNV/UNV2417_Structure.cxx | 2 +- src/DriverUNV/UNV2417_Structure.hxx | 2 +- src/DriverUNV/UNV2420_Structure.cxx | 2 +- src/DriverUNV/UNV2420_Structure.hxx | 2 +- src/DriverUNV/UNV_Test.cxx | 2 +- src/DriverUNV/UNV_Utilities.cxx | 2 +- src/DriverUNV/UNV_Utilities.hxx | 2 +- src/MEFISTO2/Makefile.am | 2 +- src/MEFISTO2/Rn.h | 34 +- src/MEFISTO2/aptrte.cxx | 26 +- src/MEFISTO2/aptrte.h | 28 +- src/MEFISTO2/areteideale.f | 27 +- src/MEFISTO2/trte.f | 26 +- src/Makefile.am | 2 +- src/OBJECT/Makefile.am | 2 +- src/OBJECT/SMESH_Actor.cxx | 21 +- src/OBJECT/SMESH_Actor.h | 2 +- src/OBJECT/SMESH_ActorDef.h | 4 +- src/OBJECT/SMESH_ActorUtils.cxx | 2 +- src/OBJECT/SMESH_ActorUtils.h | 2 +- src/OBJECT/SMESH_CellLabelActor.cxx | 2 +- src/OBJECT/SMESH_CellLabelActor.h | 2 +- src/OBJECT/SMESH_DeviceActor.cxx | 2 +- src/OBJECT/SMESH_DeviceActor.h | 2 +- src/OBJECT/SMESH_ExtractGeometry.cxx | 2 +- src/OBJECT/SMESH_ExtractGeometry.h | 2 +- src/OBJECT/SMESH_FaceOrientationFilter.cxx | 2 +- src/OBJECT/SMESH_FaceOrientationFilter.h | 2 +- src/OBJECT/SMESH_NodeLabelActor.cxx | 2 +- src/OBJECT/SMESH_NodeLabelActor.h | 2 +- src/OBJECT/SMESH_Object.cxx | 2 +- src/OBJECT/SMESH_Object.h | 2 +- src/OBJECT/SMESH_ObjectDef.h | 2 +- src/OBJECT/SMESH_PreviewActorsCollection.cxx | 2 +- src/OBJECT/SMESH_PreviewActorsCollection.h | 2 +- src/OBJECT/SMESH_ScalarBarActor.cxx | 2 +- src/OBJECT/SMESH_ScalarBarActor.h | 2 +- src/PluginUtils/GeomSelectionTools.cxx | 2 +- src/PluginUtils/GeomSelectionTools.h | 2 +- src/PluginUtils/Makefile.am | 2 +- src/SMDS/Makefile.am | 2 +- src/SMDS/ObjectPool.hxx | 2 +- src/SMDS/SMDSAbs_ElementType.hxx | 2 +- src/SMDS/SMDS_Downward.cxx | 2 +- src/SMDS/SMDS_Downward.hxx | 2 +- src/SMDS/SMDS_EdgePosition.cxx | 2 +- src/SMDS/SMDS_EdgePosition.hxx | 2 +- src/SMDS/SMDS_ElemIterator.hxx | 2 +- src/SMDS/SMDS_FaceOfEdges.cxx | 2 +- src/SMDS/SMDS_FaceOfEdges.hxx | 2 +- src/SMDS/SMDS_FaceOfNodes.cxx | 2 +- src/SMDS/SMDS_FaceOfNodes.hxx | 2 +- src/SMDS/SMDS_FacePosition.cxx | 2 +- src/SMDS/SMDS_FacePosition.hxx | 2 +- src/SMDS/SMDS_Iterator.hxx | 2 +- src/SMDS/SMDS_IteratorOfElements.cxx | 2 +- src/SMDS/SMDS_IteratorOfElements.hxx | 2 +- src/SMDS/SMDS_IteratorOnIterators.hxx | 7 +- src/SMDS/SMDS_LinearEdge.cxx | 2 +- src/SMDS/SMDS_LinearEdge.hxx | 2 +- src/SMDS/SMDS_MemoryLimit.cxx | 2 +- src/SMDS/SMDS_Mesh.cxx | 2 +- src/SMDS/SMDS_Mesh.hxx | 2 +- src/SMDS/SMDS_Mesh0DElement.cxx | 2 +- src/SMDS/SMDS_Mesh0DElement.hxx | 2 +- src/SMDS/SMDS_MeshCell.cxx | 2 +- src/SMDS/SMDS_MeshCell.hxx | 2 +- src/SMDS/SMDS_MeshEdge.cxx | 2 +- src/SMDS/SMDS_MeshEdge.hxx | 2 +- src/SMDS/SMDS_MeshElement.cxx | 2 +- src/SMDS/SMDS_MeshElement.hxx | 2 +- src/SMDS/SMDS_MeshElementIDFactory.cxx | 2 +- src/SMDS/SMDS_MeshElementIDFactory.hxx | 2 +- src/SMDS/SMDS_MeshFace.cxx | 2 +- src/SMDS/SMDS_MeshFace.hxx | 2 +- src/SMDS/SMDS_MeshGroup.cxx | 2 +- src/SMDS/SMDS_MeshGroup.hxx | 2 +- src/SMDS/SMDS_MeshIDFactory.cxx | 2 +- src/SMDS/SMDS_MeshIDFactory.hxx | 2 +- src/SMDS/SMDS_MeshInfo.hxx | 2 +- src/SMDS/SMDS_MeshNode.cxx | 2 +- src/SMDS/SMDS_MeshNode.hxx | 2 +- src/SMDS/SMDS_MeshNodeIDFactory.cxx | 2 +- src/SMDS/SMDS_MeshNodeIDFactory.hxx | 2 +- src/SMDS/SMDS_MeshObject.cxx | 2 +- src/SMDS/SMDS_MeshObject.hxx | 2 +- src/SMDS/SMDS_MeshVolume.cxx | 2 +- src/SMDS/SMDS_MeshVolume.hxx | 2 +- src/SMDS/SMDS_PolygonalFaceOfNodes.cxx | 2 +- src/SMDS/SMDS_PolygonalFaceOfNodes.hxx | 2 +- src/SMDS/SMDS_PolyhedralVolumeOfNodes.cxx | 2 +- src/SMDS/SMDS_PolyhedralVolumeOfNodes.hxx | 2 +- src/SMDS/SMDS_Position.cxx | 2 +- src/SMDS/SMDS_Position.hxx | 2 +- src/SMDS/SMDS_QuadraticEdge.cxx | 2 +- src/SMDS/SMDS_QuadraticEdge.hxx | 2 +- src/SMDS/SMDS_QuadraticFaceOfNodes.cxx | 2 +- src/SMDS/SMDS_QuadraticFaceOfNodes.hxx | 2 +- src/SMDS/SMDS_QuadraticVolumeOfNodes.cxx | 2 +- src/SMDS/SMDS_QuadraticVolumeOfNodes.hxx | 2 +- src/SMDS/SMDS_SetIterator.hxx | 2 +- src/SMDS/SMDS_SpacePosition.cxx | 2 +- src/SMDS/SMDS_SpacePosition.hxx | 2 +- src/SMDS/SMDS_StdIterator.hxx | 2 +- src/SMDS/SMDS_TypeOfPosition.hxx | 2 +- src/SMDS/SMDS_UnstructuredGrid.cxx | 2 +- src/SMDS/SMDS_UnstructuredGrid.hxx | 2 +- src/SMDS/SMDS_VertexPosition.cxx | 2 +- src/SMDS/SMDS_VertexPosition.hxx | 2 +- src/SMDS/SMDS_VolumeOfFaces.cxx | 2 +- src/SMDS/SMDS_VolumeOfFaces.hxx | 2 +- src/SMDS/SMDS_VolumeOfNodes.cxx | 2 +- src/SMDS/SMDS_VolumeOfNodes.hxx | 2 +- src/SMDS/SMDS_VolumeTool.cxx | 17 +- src/SMDS/SMDS_VolumeTool.hxx | 2 +- src/SMDS/SMDS_VtkCellIterator.cxx | 2 +- src/SMDS/SMDS_VtkCellIterator.hxx | 2 +- src/SMDS/SMDS_VtkEdge.cxx | 2 +- src/SMDS/SMDS_VtkEdge.hxx | 2 +- src/SMDS/SMDS_VtkFace.cxx | 2 +- src/SMDS/SMDS_VtkFace.hxx | 2 +- src/SMDS/SMDS_VtkVolume.cxx | 2 +- src/SMDS/SMDS_VtkVolume.hxx | 2 +- src/SMDS/SMESH_SMDS.hxx | 2 +- src/SMDS/chrono.cxx | 2 +- src/SMDS/chrono.hxx | 2 +- src/SMESH/Makefile.am | 3 +- src/SMESH/SMESH_0D_Algo.cxx | 2 +- src/SMESH/SMESH_0D_Algo.hxx | 2 +- src/SMESH/SMESH_1D_Algo.cxx | 2 +- src/SMESH/SMESH_1D_Algo.hxx | 2 +- src/SMESH/SMESH_2D_Algo.cxx | 2 +- src/SMESH/SMESH_2D_Algo.hxx | 2 +- src/SMESH/SMESH_3D_Algo.cxx | 2 +- src/SMESH/SMESH_3D_Algo.hxx | 2 +- src/SMESH/SMESH_Algo.cxx | 3 +- src/SMESH/SMESH_Algo.hxx | 2 +- src/SMESH/SMESH_Gen.cxx | 6 +- src/SMESH/SMESH_Gen.hxx | 2 +- src/SMESH/SMESH_Group.cxx | 2 +- src/SMESH/SMESH_Group.hxx | 2 +- src/SMESH/SMESH_HypoFilter.cxx | 40 +- src/SMESH/SMESH_HypoFilter.hxx | 15 +- src/SMESH/SMESH_Hypothesis.cxx | 2 +- src/SMESH/SMESH_Hypothesis.hxx | 2 +- src/SMESH/SMESH_Mesh.cxx | 5 +- src/SMESH/SMESH_Mesh.hxx | 2 +- src/SMESH/SMESH_MeshEditor.cxx | 279 ++++-------- src/SMESH/SMESH_MeshEditor.hxx | 2 +- src/SMESH/SMESH_MesherHelper.cxx | 2 +- src/SMESH/SMESH_MesherHelper.hxx | 2 +- src/SMESH/SMESH_Pattern.cxx | 3 +- src/SMESH/SMESH_Pattern.hxx | 2 +- src/SMESH/SMESH_ProxyMesh.cxx | 2 +- src/SMESH/SMESH_ProxyMesh.hxx | 2 +- src/SMESH/SMESH_SMESH.hxx | 2 +- src/SMESH/SMESH_subMesh.cxx | 7 +- src/SMESH/SMESH_subMesh.hxx | 4 +- src/SMESH/SMESH_subMeshEventListener.hxx | 2 +- src/SMESH/memoire.h | 2 +- src/SMESHClient/Makefile.am | 2 +- src/SMESHClient/SMESHClientBin.cxx | 2 +- src/SMESHClient/SMESH_Client.cxx | 2 +- src/SMESHClient/SMESH_Client.hxx | 2 +- src/SMESHDS/Makefile.am | 2 +- src/SMESHDS/SMESHDS_Command.cxx | 2 +- src/SMESHDS/SMESHDS_Command.hxx | 2 +- src/SMESHDS/SMESHDS_CommandType.hxx | 2 +- src/SMESHDS/SMESHDS_DataMapOfShape.hxx | 2 +- src/SMESHDS/SMESHDS_Document.cxx | 2 +- src/SMESHDS/SMESHDS_Document.hxx | 2 +- src/SMESHDS/SMESHDS_Group.cxx | 2 +- src/SMESHDS/SMESHDS_Group.hxx | 2 +- src/SMESHDS/SMESHDS_GroupBase.cxx | 2 +- src/SMESHDS/SMESHDS_GroupBase.hxx | 2 +- src/SMESHDS/SMESHDS_GroupOnFilter.cxx | 2 +- src/SMESHDS/SMESHDS_GroupOnFilter.hxx | 2 +- src/SMESHDS/SMESHDS_GroupOnGeom.cxx | 2 +- src/SMESHDS/SMESHDS_GroupOnGeom.hxx | 2 +- src/SMESHDS/SMESHDS_Hypothesis.cxx | 2 +- src/SMESHDS/SMESHDS_Hypothesis.hxx | 2 +- src/SMESHDS/SMESHDS_Mesh.cxx | 2 +- src/SMESHDS/SMESHDS_Mesh.hxx | 2 +- src/SMESHDS/SMESHDS_Script.cxx | 2 +- src/SMESHDS/SMESHDS_Script.hxx | 2 +- src/SMESHDS/SMESHDS_SubMesh.cxx | 2 +- src/SMESHDS/SMESHDS_SubMesh.hxx | 2 +- src/SMESHDS/SMESH_Controls.hxx | 2 +- src/SMESHDS/SMESH_SMESHDS.hxx | 2 +- src/SMESHFiltersSelection/Makefile.am | 2 +- .../SMESH_LogicalFilter.cxx | 2 +- .../SMESH_LogicalFilter.hxx | 2 +- .../SMESH_NumberFilter.cxx | 2 +- .../SMESH_NumberFilter.hxx | 2 +- src/SMESHFiltersSelection/SMESH_Type.h | 2 +- .../SMESH_TypeFilter.cxx | 2 +- .../SMESH_TypeFilter.hxx | 2 +- src/SMESHGUI/Makefile.am | 2 +- src/SMESHGUI/SMESHGUI.cxx | 216 ++++----- src/SMESHGUI/SMESHGUI.h | 2 +- src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h | 2 +- .../SMESHGUI_AddQuadraticElementDlg.cxx | 2 +- .../SMESHGUI_AddQuadraticElementDlg.h | 2 +- src/SMESHGUI/SMESHGUI_BuildCompoundDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_BuildCompoundDlg.h | 2 +- src/SMESHGUI/SMESHGUI_ClippingDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_ClippingDlg.h | 2 +- src/SMESHGUI/SMESHGUI_ComputeDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_ComputeDlg.h | 2 +- src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h | 2 +- src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx | 2 +- src/SMESHGUI/SMESHGUI_ConvToQuadOp.h | 2 +- src/SMESHGUI/SMESHGUI_CopyMeshDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_CopyMeshDlg.h | 2 +- src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_CreatePatternDlg.h | 2 +- .../SMESHGUI_CreatePolyhedralVolumeDlg.cxx | 2 +- .../SMESHGUI_CreatePolyhedralVolumeDlg.h | 2 +- src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h | 2 +- src/SMESHGUI/SMESHGUI_Dialog.cxx | 2 +- src/SMESHGUI/SMESHGUI_Dialog.h | 2 +- src/SMESHGUI/SMESHGUI_Displayer.cxx | 2 +- src/SMESHGUI/SMESHGUI_Displayer.h | 2 +- src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.cxx | 35 +- src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.h | 5 +- .../SMESHGUI_ExtrusionAlongPathDlg.cxx | 3 +- src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h | 2 +- src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx | 4 +- src/SMESHGUI/SMESHGUI_ExtrusionDlg.h | 2 +- src/SMESHGUI/SMESHGUI_FileInfoDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_FileInfoDlg.h | 2 +- src/SMESHGUI/SMESHGUI_FileValidator.cxx | 2 +- src/SMESHGUI/SMESHGUI_FileValidator.h | 2 +- src/SMESHGUI/SMESHGUI_Filter.cxx | 2 +- src/SMESHGUI/SMESHGUI_Filter.h | 2 +- src/SMESHGUI/SMESHGUI_FilterDlg.cxx | 4 +- src/SMESHGUI/SMESHGUI_FilterDlg.h | 2 +- src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h | 2 +- src/SMESHGUI/SMESHGUI_FilterUtils.cxx | 2 +- src/SMESHGUI/SMESHGUI_FilterUtils.h | 2 +- src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_FindElemByPointDlg.h | 2 +- src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx | 2 +- src/SMESHGUI/SMESHGUI_GEOMGenUtils.h | 2 +- src/SMESHGUI/SMESHGUI_GroupDlg.cxx | 3 +- src/SMESHGUI/SMESHGUI_GroupDlg.h | 2 +- src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h | 2 +- src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx | 4 +- src/SMESHGUI/SMESHGUI_GroupOpDlg.h | 2 +- src/SMESHGUI/SMESHGUI_GroupUtils.cxx | 2 +- src/SMESHGUI/SMESHGUI_GroupUtils.h | 2 +- src/SMESHGUI/SMESHGUI_Hypotheses.cxx | 2 +- src/SMESHGUI/SMESHGUI_Hypotheses.h | 2 +- src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx | 2 +- src/SMESHGUI/SMESHGUI_HypothesesUtils.h | 2 +- src/SMESHGUI/SMESHGUI_IdValidator.h | 2 +- src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.cxx | 2 +- src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.h | 2 +- src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx | 36 +- src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.h | 3 +- src/SMESHGUI/SMESHGUI_Measurements.cxx | 2 +- src/SMESHGUI/SMESHGUI_Measurements.h | 2 +- src/SMESHGUI/SMESHGUI_MergeDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_MergeDlg.h | 2 +- src/SMESHGUI/SMESHGUI_MeshDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_MeshDlg.h | 2 +- src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx | 2 +- src/SMESHGUI/SMESHGUI_MeshEditPreview.h | 2 +- src/SMESHGUI/SMESHGUI_MeshInfo.cxx | 2 +- src/SMESHGUI/SMESHGUI_MeshInfo.h | 2 +- src/SMESHGUI/SMESHGUI_MeshInfosBox.cxx | 2 +- src/SMESHGUI/SMESHGUI_MeshInfosBox.h | 2 +- src/SMESHGUI/SMESHGUI_MeshOp.cxx | 2 +- src/SMESHGUI/SMESHGUI_MeshOp.h | 2 +- src/SMESHGUI/SMESHGUI_MeshOrderDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_MeshOrderDlg.h | 2 +- src/SMESHGUI/SMESHGUI_MeshOrderOp.cxx | 2 +- src/SMESHGUI/SMESHGUI_MeshOrderOp.h | 2 +- src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_MeshPatternDlg.h | 2 +- src/SMESHGUI/SMESHGUI_MeshUtils.cxx | 2 +- src/SMESHGUI/SMESHGUI_MeshUtils.h | 2 +- src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx | 3 +- src/SMESHGUI/SMESHGUI_MultiEditDlg.h | 2 +- src/SMESHGUI/SMESHGUI_NodesDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_NodesDlg.h | 2 +- src/SMESHGUI/SMESHGUI_Operation.cxx | 2 +- src/SMESHGUI/SMESHGUI_Operation.h | 2 +- src/SMESHGUI/SMESHGUI_PatternUtils.cxx | 2 +- src/SMESHGUI/SMESHGUI_PatternUtils.h | 2 +- src/SMESHGUI/SMESHGUI_PatternWidget.cxx | 2 +- src/SMESHGUI/SMESHGUI_PatternWidget.h | 2 +- .../SMESHGUI_Preferences_ColorDlg.cxx | 48 +- src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h | 2 +- .../SMESHGUI_Preferences_ScalarBarDlg.cxx | 2 +- .../SMESHGUI_Preferences_ScalarBarDlg.h | 2 +- src/SMESHGUI/SMESHGUI_PreviewDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_PreviewDlg.h | 2 +- src/SMESHGUI/SMESHGUI_RemoveElementsDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h | 2 +- src/SMESHGUI/SMESHGUI_RemoveNodesDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h | 2 +- src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_RenumberingDlg.h | 2 +- src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx | 3 +- src/SMESHGUI/SMESHGUI_RevolutionDlg.h | 2 +- src/SMESHGUI/SMESHGUI_RotationDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_RotationDlg.h | 2 +- src/SMESHGUI/SMESHGUI_ScaleDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_ScaleDlg.h | 2 +- src/SMESHGUI/SMESHGUI_Selection.cxx | 2 +- src/SMESHGUI/SMESHGUI_Selection.h | 2 +- src/SMESHGUI/SMESHGUI_SelectionOp.cxx | 2 +- src/SMESHGUI/SMESHGUI_SelectionOp.h | 2 +- src/SMESHGUI/SMESHGUI_SewingDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_SewingDlg.h | 2 +- src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h | 2 +- src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_SingleEditDlg.h | 2 +- src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_SmoothingDlg.h | 2 +- src/SMESHGUI/SMESHGUI_SpinBox.cxx | 2 +- src/SMESHGUI/SMESHGUI_SpinBox.h | 2 +- src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_SymmetryDlg.h | 2 +- src/SMESHGUI/SMESHGUI_TranslationDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_TranslationDlg.h | 2 +- src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx | 2 +- src/SMESHGUI/SMESHGUI_TransparencyDlg.h | 2 +- src/SMESHGUI/SMESHGUI_Utils.cxx | 2 +- src/SMESHGUI/SMESHGUI_Utils.h | 2 +- src/SMESHGUI/SMESHGUI_VTKUtils.cxx | 2 +- src/SMESHGUI/SMESHGUI_VTKUtils.h | 2 +- src/SMESHGUI/SMESHGUI_XmlHandler.cxx | 2 +- src/SMESHGUI/SMESHGUI_XmlHandler.h | 2 +- src/SMESHGUI/SMESH_SMESHGUI.hxx | 2 +- src/SMESHGUI/SMESH_msg_en.ts | 212 ++++++++- src/SMESHGUI/SMESH_msg_fr.ts | 416 ++++++++++++------ src/SMESHUtils/Makefile.am | 2 +- src/SMESHUtils/SMESH_Block.cxx | 2 +- src/SMESHUtils/SMESH_Block.hxx | 2 +- src/SMESHUtils/SMESH_Comment.hxx | 2 +- src/SMESHUtils/SMESH_ComputeError.hxx | 2 +- src/SMESHUtils/SMESH_File.cxx | 2 +- src/SMESHUtils/SMESH_File.hxx | 2 +- src/SMESHUtils/SMESH_Octree.cxx | 2 +- src/SMESHUtils/SMESH_Octree.hxx | 2 +- src/SMESHUtils/SMESH_OctreeNode.cxx | 2 +- src/SMESHUtils/SMESH_OctreeNode.hxx | 2 +- src/SMESHUtils/SMESH_TypeDefs.hxx | 2 +- src/SMESHUtils/SMESH_Utils.hxx | 2 +- src/SMESH_I/Makefile.am | 2 +- src/SMESH_I/SMESH.hxx | 2 +- src/SMESH_I/SMESHEngine.cxx | 2 +- src/SMESH_I/SMESH_0D_Algo_i.cxx | 2 +- src/SMESH_I/SMESH_0D_Algo_i.hxx | 2 +- src/SMESH_I/SMESH_1D_Algo_i.cxx | 2 +- src/SMESH_I/SMESH_1D_Algo_i.hxx | 2 +- src/SMESH_I/SMESH_2D_Algo_i.cxx | 2 +- src/SMESH_I/SMESH_2D_Algo_i.hxx | 2 +- src/SMESH_I/SMESH_2smeshpy.cxx | 83 +++- src/SMESH_I/SMESH_2smeshpy.hxx | 7 +- src/SMESH_I/SMESH_3D_Algo_i.cxx | 2 +- src/SMESH_I/SMESH_3D_Algo_i.hxx | 2 +- src/SMESH_I/SMESH_Algo_i.cxx | 2 +- src/SMESH_I/SMESH_Algo_i.hxx | 2 +- src/SMESH_I/SMESH_DumpPython.cxx | 2 +- src/SMESH_I/SMESH_Filter_i.cxx | 72 ++- src/SMESH_I/SMESH_Filter_i.hxx | 2 +- src/SMESH_I/SMESH_Gen_i.cxx | 2 +- src/SMESH_I/SMESH_Gen_i.hxx | 2 +- src/SMESH_I/SMESH_Gen_i_1.cxx | 2 +- src/SMESH_I/SMESH_Group_i.cxx | 2 +- src/SMESH_I/SMESH_Group_i.hxx | 2 +- src/SMESH_I/SMESH_Hypothesis_i.cxx | 2 +- src/SMESH_I/SMESH_Hypothesis_i.hxx | 2 +- src/SMESH_I/SMESH_MEDFamily_i.cxx | 2 +- src/SMESH_I/SMESH_MEDFamily_i.hxx | 2 +- src/SMESH_I/SMESH_MEDMesh_i.cxx | 2 +- src/SMESH_I/SMESH_MEDMesh_i.hxx | 2 +- src/SMESH_I/SMESH_MEDSupport_i.cxx | 2 +- src/SMESH_I/SMESH_MEDSupport_i.hxx | 2 +- src/SMESH_I/SMESH_Measurements_i.cxx | 2 +- src/SMESH_I/SMESH_Measurements_i.hxx | 2 +- src/SMESH_I/SMESH_MeshEditor_i.cxx | 187 ++++++-- src/SMESH_I/SMESH_MeshEditor_i.hxx | 13 +- src/SMESH_I/SMESH_Mesh_i.cxx | 11 +- src/SMESH_I/SMESH_Mesh_i.hxx | 2 +- src/SMESH_I/SMESH_NoteBook.cxx | 2 +- src/SMESH_I/SMESH_NoteBook.hxx | 2 +- src/SMESH_I/SMESH_Pattern_i.cxx | 2 +- src/SMESH_I/SMESH_Pattern_i.hxx | 2 +- src/SMESH_I/SMESH_PreMeshInfo.cxx | 2 +- src/SMESH_I/SMESH_PreMeshInfo.hxx | 2 +- src/SMESH_I/SMESH_PythonDump.hxx | 2 +- src/SMESH_I/SMESH_subMesh_i.cxx | 2 +- src/SMESH_I/SMESH_subMesh_i.hxx | 2 +- src/SMESH_I/smeshpy.py | 2 +- src/SMESH_PY/Makefile.am | 2 +- src/SMESH_PY/smeshstudytools.py | 2 +- src/SMESH_SWIG/Makefile.am | 2 +- src/SMESH_SWIG/PAL_MESH_041_mesh.py | 2 +- src/SMESH_SWIG/PAL_MESH_043_2D.py | 2 +- src/SMESH_SWIG/PAL_MESH_043_3D.py | 2 +- src/SMESH_SWIG/SMESH_AdvancedEditor.py | 2 +- src/SMESH_SWIG/SMESH_BelongToGeom.py | 2 +- src/SMESH_SWIG/SMESH_BuildCompound.py | 2 +- src/SMESH_SWIG/SMESH_GroupFromGeom.py | 2 +- src/SMESH_SWIG/SMESH_GroupFromGeom2.py | 2 +- src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py | 2 +- src/SMESH_SWIG/SMESH_Nut.py | 2 +- src/SMESH_SWIG/SMESH_Partition1_tetra.py | 2 +- src/SMESH_SWIG/SMESH_Sphere.py | 2 +- src/SMESH_SWIG/SMESH_blocks.py | 2 +- src/SMESH_SWIG/SMESH_box.py | 2 +- src/SMESH_SWIG/SMESH_box2_tetra.py | 2 +- src/SMESH_SWIG/SMESH_box3_tetra.py | 2 +- src/SMESH_SWIG/SMESH_box_tetra.py | 2 +- src/SMESH_SWIG/SMESH_controls.py | 2 +- src/SMESH_SWIG/SMESH_demo_hexa2_upd.py | 2 +- src/SMESH_SWIG/SMESH_fixation.py | 2 +- src/SMESH_SWIG/SMESH_fixation_hexa.py | 2 +- src/SMESH_SWIG/SMESH_fixation_netgen.py | 2 +- src/SMESH_SWIG/SMESH_fixation_tetra.py | 2 +- src/SMESH_SWIG/SMESH_flight_skin.py | 2 +- src/SMESH_SWIG/SMESH_freebord.py | 2 +- src/SMESH_SWIG/SMESH_hexaedre.py | 2 +- src/SMESH_SWIG/SMESH_mechanic.py | 2 +- src/SMESH_SWIG/SMESH_mechanic_editor.py | 2 +- src/SMESH_SWIG/SMESH_mechanic_netgen.py | 2 +- src/SMESH_SWIG/SMESH_mechanic_tetra.py | 2 +- src/SMESH_SWIG/SMESH_reg.py | 2 +- src/SMESH_SWIG/SMESH_shared_modules.py | 2 +- src/SMESH_SWIG/SMESH_test.py | 2 +- src/SMESH_SWIG/SMESH_test0.py | 2 +- src/SMESH_SWIG/SMESH_test1.py | 2 +- src/SMESH_SWIG/SMESH_test1_AndDisplay.py | 2 +- src/SMESH_SWIG/SMESH_test2.py | 2 +- src/SMESH_SWIG/SMESH_test3.py | 2 +- src/SMESH_SWIG/SMESH_test4.py | 2 +- src/SMESH_SWIG/SMESH_test5.py | 2 +- src/SMESH_SWIG/StdMeshersDC.py | 4 +- src/SMESH_SWIG/batchmode_mefisto.py | 2 +- src/SMESH_SWIG/batchmode_smesh.py | 2 +- src/SMESH_SWIG/ex00_all.py | 2 +- src/SMESH_SWIG/ex01_cube2build.py | 2 +- src/SMESH_SWIG/ex02_cube2primitive.py | 2 +- src/SMESH_SWIG/ex03_cube2partition.py | 2 +- src/SMESH_SWIG/ex04_cube5tetraHexa.py | 2 +- src/SMESH_SWIG/ex05_hole1build.py | 2 +- src/SMESH_SWIG/ex06_hole1boolean.py | 2 +- src/SMESH_SWIG/ex07_hole1partition.py | 2 +- src/SMESH_SWIG/ex08_hole2build.py | 2 +- src/SMESH_SWIG/ex09_grid4build.py | 2 +- src/SMESH_SWIG/ex10_grid4geometry.py | 2 +- src/SMESH_SWIG/ex11_grid3partition.py | 2 +- src/SMESH_SWIG/ex12_grid17partition.py | 2 +- src/SMESH_SWIG/ex13_hole1partial.py | 2 +- src/SMESH_SWIG/ex14_cyl1holed.py | 2 +- src/SMESH_SWIG/ex15_cyl2geometry.py | 2 +- src/SMESH_SWIG/ex16_cyl2complementary.py | 2 +- src/SMESH_SWIG/ex17_dome1.py | 2 +- src/SMESH_SWIG/ex18_dome2.py | 2 +- src/SMESH_SWIG/ex19_sphereINcube.py | 2 +- src/SMESH_SWIG/ex21_lamp.py | 2 +- src/SMESH_SWIG/ex24_cylinder.py | 2 +- src/SMESH_SWIG/ex29_refine.py | 2 +- src/SMESH_SWIG/ex30_groupsOp.py | 2 +- src/SMESH_SWIG/ex30_tepal.py | 2 +- src/SMESH_SWIG/ex31_dimGroup.py | 2 +- src/SMESH_SWIG/smesh.py | 2 +- src/SMESH_SWIG/smeshDC.py | 85 ++-- src/SMESH_SWIG_WITHIHM/Makefile.am | 2 +- src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx | 2 +- src/SMESH_SWIG_WITHIHM/libSMESH_Swig.h | 2 +- src/SMESH_SWIG_WITHIHM/libSMESH_Swig.i | 2 +- src/StdMeshers/Makefile.am | 2 +- src/StdMeshers/SMESH_StdMeshers.hxx | 2 +- src/StdMeshers/StdMeshers_Arithmetic1D.cxx | 2 +- src/StdMeshers/StdMeshers_Arithmetic1D.hxx | 2 +- src/StdMeshers/StdMeshers_AutomaticLength.cxx | 3 +- src/StdMeshers/StdMeshers_AutomaticLength.hxx | 2 +- .../StdMeshers_CartesianParameters3D.cxx | 2 +- .../StdMeshers_CartesianParameters3D.hxx | 2 +- src/StdMeshers/StdMeshers_Cartesian_3D.cxx | 79 +++- src/StdMeshers/StdMeshers_Cartesian_3D.hxx | 2 +- .../StdMeshers_CompositeHexa_3D.cxx | 3 +- .../StdMeshers_CompositeHexa_3D.hxx | 2 +- .../StdMeshers_CompositeSegment_1D.cxx | 2 +- .../StdMeshers_CompositeSegment_1D.hxx | 2 +- src/StdMeshers/StdMeshers_Deflection1D.cxx | 2 +- src/StdMeshers/StdMeshers_Deflection1D.hxx | 2 +- src/StdMeshers/StdMeshers_Distribution.cxx | 2 +- src/StdMeshers/StdMeshers_Distribution.hxx | 2 +- src/StdMeshers/StdMeshers_FaceSide.cxx | 2 +- src/StdMeshers/StdMeshers_FaceSide.hxx | 2 +- src/StdMeshers/StdMeshers_FixedPoints1D.cxx | 2 +- src/StdMeshers/StdMeshers_FixedPoints1D.hxx | 2 +- src/StdMeshers/StdMeshers_HexaFromSkin_3D.cxx | 3 +- src/StdMeshers/StdMeshers_HexaFromSkin_3D.hxx | 2 +- src/StdMeshers/StdMeshers_Hexa_3D.cxx | 2 +- src/StdMeshers/StdMeshers_Hexa_3D.hxx | 2 +- src/StdMeshers/StdMeshers_ImportSource.cxx | 2 +- src/StdMeshers/StdMeshers_ImportSource.hxx | 2 +- src/StdMeshers/StdMeshers_Import_1D.cxx | 2 +- src/StdMeshers/StdMeshers_Import_1D.hxx | 2 +- src/StdMeshers/StdMeshers_Import_1D2D.cxx | 2 +- src/StdMeshers/StdMeshers_Import_1D2D.hxx | 2 +- .../StdMeshers_LayerDistribution.cxx | 2 +- .../StdMeshers_LayerDistribution.hxx | 2 +- .../StdMeshers_LayerDistribution2D.cxx | 2 +- .../StdMeshers_LayerDistribution2D.hxx | 2 +- src/StdMeshers/StdMeshers_LengthFromEdges.cxx | 2 +- src/StdMeshers/StdMeshers_LengthFromEdges.hxx | 2 +- src/StdMeshers/StdMeshers_LocalLength.cxx | 2 +- src/StdMeshers/StdMeshers_LocalLength.hxx | 2 +- src/StdMeshers/StdMeshers_MEFISTO_2D.cxx | 2 +- src/StdMeshers/StdMeshers_MEFISTO_2D.hxx | 2 +- src/StdMeshers/StdMeshers_MaxElementArea.cxx | 2 +- src/StdMeshers/StdMeshers_MaxElementArea.hxx | 2 +- .../StdMeshers_MaxElementVolume.cxx | 2 +- .../StdMeshers_MaxElementVolume.hxx | 2 +- src/StdMeshers/StdMeshers_MaxLength.cxx | 2 +- src/StdMeshers/StdMeshers_MaxLength.hxx | 2 +- .../StdMeshers_NotConformAllowed.cxx | 2 +- .../StdMeshers_NotConformAllowed.hxx | 2 +- src/StdMeshers/StdMeshers_NumberOfLayers.cxx | 2 +- src/StdMeshers/StdMeshers_NumberOfLayers.hxx | 2 +- .../StdMeshers_NumberOfLayers2D.cxx | 2 +- .../StdMeshers_NumberOfLayers2D.hxx | 2 +- .../StdMeshers_NumberOfSegments.cxx | 2 +- .../StdMeshers_NumberOfSegments.hxx | 2 +- src/StdMeshers/StdMeshers_Penta_3D.cxx | 2 +- src/StdMeshers/StdMeshers_Penta_3D.hxx | 2 +- src/StdMeshers/StdMeshers_Prism_3D.cxx | 2 +- src/StdMeshers/StdMeshers_Prism_3D.hxx | 2 +- .../StdMeshers_ProjectionSource1D.cxx | 2 +- .../StdMeshers_ProjectionSource1D.hxx | 2 +- .../StdMeshers_ProjectionSource2D.cxx | 2 +- .../StdMeshers_ProjectionSource2D.hxx | 2 +- .../StdMeshers_ProjectionSource3D.cxx | 2 +- .../StdMeshers_ProjectionSource3D.hxx | 2 +- src/StdMeshers/StdMeshers_ProjectionUtils.cxx | 126 +++--- src/StdMeshers/StdMeshers_ProjectionUtils.hxx | 41 +- src/StdMeshers/StdMeshers_Projection_1D.cxx | 6 +- src/StdMeshers/StdMeshers_Projection_1D.hxx | 2 +- src/StdMeshers/StdMeshers_Projection_1D2D.cxx | 6 +- src/StdMeshers/StdMeshers_Projection_1D2D.hxx | 2 +- src/StdMeshers/StdMeshers_Projection_2D.cxx | 28 +- src/StdMeshers/StdMeshers_Projection_2D.hxx | 2 +- src/StdMeshers/StdMeshers_Projection_3D.cxx | 2 +- src/StdMeshers/StdMeshers_Projection_3D.hxx | 2 +- src/StdMeshers/StdMeshers_Propagation.cxx | 2 +- src/StdMeshers/StdMeshers_Propagation.hxx | 2 +- .../StdMeshers_QuadToTriaAdaptor.cxx | 33 +- .../StdMeshers_QuadToTriaAdaptor.hxx | 2 +- .../StdMeshers_QuadrangleParams.cxx | 2 +- .../StdMeshers_QuadrangleParams.hxx | 2 +- .../StdMeshers_QuadranglePreference.cxx | 2 +- .../StdMeshers_QuadranglePreference.hxx | 2 +- src/StdMeshers/StdMeshers_Quadrangle_2D.cxx | 27 +- src/StdMeshers/StdMeshers_Quadrangle_2D.hxx | 2 +- src/StdMeshers/StdMeshers_QuadraticMesh.cxx | 2 +- src/StdMeshers/StdMeshers_QuadraticMesh.hxx | 2 +- src/StdMeshers/StdMeshers_RadialPrism_3D.cxx | 10 +- src/StdMeshers/StdMeshers_RadialPrism_3D.hxx | 2 +- .../StdMeshers_RadialQuadrangle_1D2D.cxx | 3 +- .../StdMeshers_RadialQuadrangle_1D2D.hxx | 2 +- src/StdMeshers/StdMeshers_Regular_1D.cxx | 2 +- src/StdMeshers/StdMeshers_Regular_1D.hxx | 2 +- .../StdMeshers_SegmentAroundVertex_0D.cxx | 2 +- .../StdMeshers_SegmentAroundVertex_0D.hxx | 2 +- .../StdMeshers_SegmentLengthAroundVertex.cxx | 2 +- .../StdMeshers_SegmentLengthAroundVertex.hxx | 2 +- src/StdMeshers/StdMeshers_StartEndLength.cxx | 2 +- src/StdMeshers/StdMeshers_StartEndLength.hxx | 2 +- .../StdMeshers_UseExisting_1D2D.cxx | 2 +- .../StdMeshers_UseExisting_1D2D.hxx | 2 +- src/StdMeshers/StdMeshers_ViscousLayers.cxx | 3 +- src/StdMeshers/StdMeshers_ViscousLayers.hxx | 2 +- src/StdMeshersGUI/Makefile.am | 2 +- src/StdMeshersGUI/SMESH_StdMeshersGUI.hxx | 2 +- src/StdMeshersGUI/StdMeshersGUI.cxx | 2 +- .../StdMeshersGUI_CartesianParamCreator.cxx | 2 +- .../StdMeshersGUI_CartesianParamCreator.h | 2 +- .../StdMeshersGUI_DistrPreview.cxx | 2 +- .../StdMeshersGUI_DistrPreview.h | 2 +- .../StdMeshersGUI_DistrTable.cxx | 2 +- src/StdMeshersGUI/StdMeshersGUI_DistrTable.h | 2 +- .../StdMeshersGUI_FixedPointsParamWdg.cxx | 2 +- .../StdMeshersGUI_FixedPointsParamWdg.h | 2 +- ...tdMeshersGUI_LayerDistributionParamWdg.cxx | 2 +- .../StdMeshersGUI_LayerDistributionParamWdg.h | 2 +- .../StdMeshersGUI_NbSegmentsCreator.cxx | 2 +- .../StdMeshersGUI_NbSegmentsCreator.h | 2 +- .../StdMeshersGUI_ObjectReferenceParamWdg.cxx | 2 +- .../StdMeshersGUI_ObjectReferenceParamWdg.h | 2 +- .../StdMeshersGUI_QuadrangleParamWdg.cxx | 2 +- .../StdMeshersGUI_QuadrangleParamWdg.h | 2 +- .../StdMeshersGUI_StdHypothesisCreator.cxx | 2 +- .../StdMeshersGUI_StdHypothesisCreator.h | 2 +- .../StdMeshersGUI_SubShapeSelectorWdg.cxx | 2 +- .../StdMeshersGUI_SubShapeSelectorWdg.h | 2 +- src/StdMeshersGUI/StdMeshers_msg_en.ts | 8 +- src/StdMeshersGUI/StdMeshers_msg_fr.ts | 4 +- src/StdMeshers_I/Makefile.am | 2 +- src/StdMeshers_I/SMESH_StdMeshers_I.hxx | 2 +- .../StdMeshers_Arithmetic1D_i.cxx | 2 +- .../StdMeshers_Arithmetic1D_i.hxx | 2 +- .../StdMeshers_AutomaticLength_i.cxx | 2 +- .../StdMeshers_AutomaticLength_i.hxx | 2 +- .../StdMeshers_CartesianParameters3D_i.cxx | 3 +- .../StdMeshers_CartesianParameters3D_i.hxx | 3 +- .../StdMeshers_Cartesian_3D_i.cxx | 3 +- .../StdMeshers_Cartesian_3D_i.hxx | 3 +- .../StdMeshers_CompositeSegment_1D_i.cxx | 2 +- .../StdMeshers_CompositeSegment_1D_i.hxx | 2 +- .../StdMeshers_Deflection1D_i.cxx | 2 +- .../StdMeshers_Deflection1D_i.hxx | 2 +- .../StdMeshers_FixedPoints1D_i.cxx | 2 +- .../StdMeshers_FixedPoints1D_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx | 2 +- src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx | 2 +- .../StdMeshers_ImportSource1D_i.cxx | 2 +- .../StdMeshers_ImportSource1D_i.hxx | 2 +- .../StdMeshers_ImportSource2D_i.cxx | 2 +- .../StdMeshers_ImportSource2D_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_Import_1D2D_i.cxx | 2 +- src/StdMeshers_I/StdMeshers_Import_1D2D_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_Import_1D_i.cxx | 2 +- src/StdMeshers_I/StdMeshers_Import_1D_i.hxx | 2 +- .../StdMeshers_LayerDistribution2D_i.cxx | 2 +- .../StdMeshers_LayerDistribution2D_i.hxx | 2 +- .../StdMeshers_LayerDistribution_i.cxx | 2 +- .../StdMeshers_LayerDistribution_i.hxx | 2 +- .../StdMeshers_LengthFromEdges_i.cxx | 2 +- .../StdMeshers_LengthFromEdges_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_LocalLength_i.cxx | 2 +- src/StdMeshers_I/StdMeshers_LocalLength_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx | 2 +- src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx | 2 +- .../StdMeshers_MaxElementArea_i.cxx | 2 +- .../StdMeshers_MaxElementArea_i.hxx | 2 +- .../StdMeshers_MaxElementVolume_i.cxx | 2 +- .../StdMeshers_MaxElementVolume_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_MaxLength_i.cxx | 2 +- src/StdMeshers_I/StdMeshers_MaxLength_i.hxx | 2 +- .../StdMeshers_NotConformAllowed_i.cxx | 2 +- .../StdMeshers_NotConformAllowed_i.hxx | 2 +- .../StdMeshers_NumberOfLayers2D_i.cxx | 2 +- .../StdMeshers_NumberOfLayers2D_i.hxx | 2 +- .../StdMeshers_NumberOfLayers_i.cxx | 2 +- .../StdMeshers_NumberOfLayers_i.hxx | 2 +- .../StdMeshers_NumberOfSegments_i.cxx | 2 +- .../StdMeshers_NumberOfSegments_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx | 2 +- src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx | 2 +- src/StdMeshers_I/StdMeshers_Prism_3D_i.cxx | 2 +- src/StdMeshers_I/StdMeshers_Prism_3D_i.hxx | 2 +- .../StdMeshers_ProjectionSource1D_i.cxx | 2 +- .../StdMeshers_ProjectionSource1D_i.hxx | 2 +- .../StdMeshers_ProjectionSource2D_i.cxx | 2 +- .../StdMeshers_ProjectionSource2D_i.hxx | 2 +- .../StdMeshers_ProjectionSource3D_i.cxx | 2 +- .../StdMeshers_ProjectionSource3D_i.hxx | 2 +- .../StdMeshers_Projection_1D_2D_3D_i.cxx | 2 +- .../StdMeshers_Projection_1D_2D_3D_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_Propagation_i.cxx | 2 +- src/StdMeshers_I/StdMeshers_Propagation_i.hxx | 2 +- .../StdMeshers_QuadrangleParams_i.cxx | 2 +- .../StdMeshers_QuadrangleParams_i.hxx | 2 +- .../StdMeshers_QuadranglePreference_i.cxx | 2 +- .../StdMeshers_QuadranglePreference_i.hxx | 2 +- .../StdMeshers_Quadrangle_2D_i.cxx | 2 +- .../StdMeshers_Quadrangle_2D_i.hxx | 2 +- .../StdMeshers_QuadraticMesh_i.cxx | 2 +- .../StdMeshers_QuadraticMesh_i.hxx | 2 +- .../StdMeshers_RadialQuadrangle_1D2D_i.cxx | 2 +- .../StdMeshers_RadialQuadrangle_1D2D_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx | 2 +- src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx | 2 +- .../StdMeshers_SegmentAroundVertex_0D_i.cxx | 2 +- .../StdMeshers_SegmentAroundVertex_0D_i.hxx | 2 +- ...StdMeshers_SegmentLengthAroundVertex_i.cxx | 2 +- ...StdMeshers_SegmentLengthAroundVertex_i.hxx | 2 +- .../StdMeshers_StartEndLength_i.cxx | 2 +- .../StdMeshers_StartEndLength_i.hxx | 2 +- .../StdMeshers_UseExisting_1D2D_i.cxx | 2 +- .../StdMeshers_UseExisting_1D2D_i.hxx | 2 +- .../StdMeshers_ViscousLayers_i.cxx | 2 +- .../StdMeshers_ViscousLayers_i.hxx | 2 +- src/StdMeshers_I/StdMeshers_i.cxx | 2 +- src/Tools/Makefile.am | 2 +- src/Tools/MeshCut/AUTHORS | 2 +- src/Tools/MeshCut/Makefile.am | 2 +- src/Tools/MeshCut/MeshCut_Carre.cxx | 2 +- src/Tools/MeshCut/MeshCut_Carre.hxx | 2 +- src/Tools/MeshCut/MeshCut_Cas.cxx | 2 +- src/Tools/MeshCut/MeshCut_Cas.hxx | 2 +- src/Tools/MeshCut/MeshCut_Cube.cxx | 2 +- src/Tools/MeshCut/MeshCut_Cube.hxx | 2 +- src/Tools/MeshCut/MeshCut_DC.cxx | 2 +- src/Tools/MeshCut/MeshCut_Fonctions.cxx | 2 +- src/Tools/MeshCut/MeshCut_Fonctions.hxx | 2 +- src/Tools/MeshCut/MeshCut_Globals.hxx | 2 +- src/Tools/MeshCut/MeshCut_Maillage.cxx | 2 +- src/Tools/MeshCut/MeshCut_Maillage.hxx | 2 +- src/Tools/MeshCut/MeshCut_Utils.cxx | 2 +- src/Tools/MeshCut/MeshCut_Utils.hxx | 2 +- src/Tools/MeshCut/meshcut_plugin.py | 2 +- src/Tools/padder/Makefile.am | 19 + src/Tools/padder/doc/Makefile.am | 2 +- src/Tools/padder/doc/doxyfile.in | 2 +- src/Tools/padder/meshjob/Makefile.am | 19 + src/Tools/padder/meshjob/idl/MESHJOB.idl | 26 +- src/Tools/padder/meshjob/idl/Makefile.am | 13 +- .../padder/meshjob/idl/SPADDERPluginTest.idl | 26 +- src/Tools/padder/meshjob/impl/Makefile.am | 18 + .../padder/meshjob/impl/MeshJobManager_i.cxx | 38 +- .../padder/meshjob/impl/MeshJobManager_i.hxx | 26 +- .../meshjob/impl/SPADDERPluginTester_i.cxx | 28 +- .../meshjob/impl/SPADDERPluginTester_i.hxx | 28 +- src/Tools/padder/meshjob/impl/testhelper.hxx | 20 + src/Tools/padder/resources/Makefile.am | 18 + .../padder/resources/appligen/Makefile.am | 27 +- .../padder/resources/appligen/appligen.sh.in | 19 + src/Tools/padder/resources/appligen/genenv.sh | 19 + .../padder/resources/padderexe/Makefile.am | 28 +- .../resources/padderexe/buildparticules.py | 18 + .../resources/padderexe/envPadder.sh.in | 21 +- .../padder/resources/padderexe/padder.sh | 19 + src/Tools/padder/spadderpy/Makefile.am | 19 + src/Tools/padder/spadderpy/__init__.py | 26 +- src/Tools/padder/spadderpy/configreader.py | 44 +- src/Tools/padder/spadderpy/gui/Makefile.am | 19 + src/Tools/padder/spadderpy/gui/__init__.py | 2 +- src/Tools/padder/spadderpy/gui/inputdata.py | 26 +- src/Tools/padder/spadderpy/gui/inputdialog.py | 26 +- .../padder/spadderpy/gui/plugindialog.py | 26 +- src/Tools/padder/spadderpy/padder.cfg.in | 4 +- src/Tools/padder/spadderpy/plugin/Makefile.am | 19 + .../padder/spadderpy/plugin/envPlugins.sh.in | 19 + .../padder/spadderpy/plugin/spadderPlugin.py | 26 +- src/Tools/padder/unittests/Makefile.am | 19 + src/Tools/padder/unittests/__init__.py | 18 + src/Tools/padder/unittests/autotest.sh.in | 28 +- .../unittests/usecase_meshJobManager.py | 44 +- .../unittests/usecase_spadderPluginTester.py | 26 +- src/Tools/smesh_plugins.py | 26 +- 872 files changed, 3306 insertions(+), 1964 deletions(-) create mode 100644 adm_local/unix/config_files/check_cgal.m4 create mode 100644 adm_local/unix/config_files/check_padder.m4 create mode 100755 doc/salome/gui/SMESH/images/pref21.png create mode 100755 doc/salome/gui/SMESH/images/pref22.png create mode 100755 doc/salome/gui/SMESH/images/pref23.png create mode 100755 doc/salome/gui/SMESH/images/pref24.png create mode 100644 doc/salome/gui/SMESH/input/mesh_preferences.doc diff --git a/Makefile.am b/Makefile.am index bf3d9d4c2..c887e3f82 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/SMESH_version.h.in b/SMESH_version.h.in index cbeaeb757..76a669881 100644 --- a/SMESH_version.h.in +++ b/SMESH_version.h.in @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/Makefile.am b/adm_local/Makefile.am index 2bc4a55b3..6d9ac170c 100644 --- a/adm_local/Makefile.am +++ b/adm_local/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/adm_local/cmake_files/FindSMESH.cmake b/adm_local/cmake_files/FindSMESH.cmake index 5a93125c7..edcba9d22 100644 --- a/adm_local/cmake_files/FindSMESH.cmake +++ b/adm_local/cmake_files/FindSMESH.cmake @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/adm_local/cmake_files/Makefile.am b/adm_local/cmake_files/Makefile.am index d28abfef9..59484d20f 100644 --- a/adm_local/cmake_files/Makefile.am +++ b/adm_local/cmake_files/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/adm_local/unix/Makefile.am b/adm_local/unix/Makefile.am index 8451478b1..0d5ee76b8 100644 --- a/adm_local/unix/Makefile.am +++ b/adm_local/unix/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/adm_local/unix/config_files/Makefile.am b/adm_local/unix/config_files/Makefile.am index 1391d786d..938083baa 100644 --- a/adm_local/unix/config_files/Makefile.am +++ b/adm_local/unix/config_files/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/adm_local/unix/config_files/check_Platform.m4 b/adm_local/unix/config_files/check_Platform.m4 index d1dac076a..93c7267e7 100755 --- a/adm_local/unix/config_files/check_Platform.m4 +++ b/adm_local/unix/config_files/check_Platform.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_SMESH.m4 b/adm_local/unix/config_files/check_SMESH.m4 index 7965412f1..9096571c1 100644 --- a/adm_local/unix/config_files/check_SMESH.m4 +++ b/adm_local/unix/config_files/check_SMESH.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_cgal.m4 b/adm_local/unix/config_files/check_cgal.m4 new file mode 100644 index 000000000..2ec433615 --- /dev/null +++ b/adm_local/unix/config_files/check_cgal.m4 @@ -0,0 +1,101 @@ +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +AC_DEFUN([CHECK_CGAL],[ +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_CPP])dnl +AC_REQUIRE([CHECK_BOOST]) + +AC_CHECKING(for CGAL) + +AC_ARG_WITH(cgal, + [ --with-cgal=DIR root directory path to CGAL installation ], + [CGALHOME="$withval" + AC_MSG_RESULT("select $withval as path to CGAL") + ]) + +AC_SUBST(CGAL_INCLUDES) +AC_SUBST(CGAL_LIBS) +AC_SUBST(CGALHOME) + +CGAL_INCLUDES="" +CGAL_LIBS="" + +cgal_ok=no + +LOCAL_INCLUDES="" +LOCAL_LIBS="-lCGAL" + +if test "x$CGALHOME" != "xno"; then + if test "x$CGALHOME" == "xyes"; then + CGALHOME="" + fi + if test -z $CGALHOME + then + AC_MSG_WARN(undefined CGALHOME variable which specify CGAL library installation directory) + AC_PATH_PROG(BINDIR, cgal_create_cmake_script) + if test "x$BINDIR" != "x" ; then + CGALHOME=$BINDIR + CGALHOME=`echo ${CGALHOME} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + CGALHOME=`echo ${CGALHOME} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + fi + fi + if test ! -z $CGALHOME + then + cgal_ok=yes + LOCAL_INCLUDES="-I$CGALHOME/include" + if test "x$CGALHOME" != "x/usr"; then + LOCAL_LIBS="-L$CGALHOME/lib $LOCAL_LIBS" + fi + fi + +dnl check cgallib header + + # CPPFLAGS_old=$CPPFLAGS + # CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES -I$BOOSTDIR/include" + + # AC_CHECK_HEADER(algorithm.h,cgal_ok=yes ,cgal_ok=no) + + # CPPFLAGS=$CPPFLAGS_old +fi + +# if test "x$cgal_ok" = "xyes" +# then +# dnl check cgal library +# LIBS_old="$LIBS" +# LIBS="$LIBS $LOCAL_LIBS" +# AC_CHECK_LIB(cgns,cg_open,cgns_ok=yes,cgns_ok=no) +# LIBS="$LIBS_old" +# fi + +if test "x$cgal_ok" = "xyes" +then + CGAL_LIBS="$LOCAL_LIBS" + CGAL_INCLUDES="$LOCAL_INCLUDES" + CPPFLAGS="-DWITH_CGAL $CPPFLAGS" +fi + +AC_MSG_RESULT(for CGAL: $cgal_ok) + +AM_CONDITIONAL(WITH_CGAL, [test x"$cgal_ok" = xyes]) + +])dnl diff --git a/adm_local/unix/config_files/check_cgns.m4 b/adm_local/unix/config_files/check_cgns.m4 index 3fb01001c..4e25e27c6 100644 --- a/adm_local/unix/config_files/check_cgns.m4 +++ b/adm_local/unix/config_files/check_cgns.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_f77.m4 b/adm_local/unix/config_files/check_f77.m4 index c8e98c332..64d3288ab 100644 --- a/adm_local/unix/config_files/check_f77.m4 +++ b/adm_local/unix/config_files/check_f77.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_padder.m4 b/adm_local/unix/config_files/check_padder.m4 new file mode 100644 index 000000000..ab30fecab --- /dev/null +++ b/adm_local/unix/config_files/check_padder.m4 @@ -0,0 +1,69 @@ +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +AC_DEFUN([CHECK_PADDER],[ +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_CPP])dnl +AC_REQUIRE([CHECK_CGAL]) + +AC_CHECKING(for PADDER) + +padder_ok=no + +AC_ARG_WITH(padder, + [ --with-padder=DIR root directory path to PADDER installation ], + [PADDERHOME="$withval" + AC_MSG_RESULT("select $withval as path to PADDER") + ]) + +if test "x$PADDERHOME" != "xno"; then + if test "x$PADDERHOME" == "xyes"; then + PADDERHOME="" + fi + if test -z $PADDERHOME + then + AC_MSG_WARN(undefined PADDERHOME variable which specify PADDER installation directory) + AC_PATH_PROG(BINDIR, padder.exe) + if test "x$BINDIR" != "x" ; then + PADDERHOME=$BINDIR + PADDERHOME=`echo ${PADDERHOME} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + PADDERHOME=`echo ${PADDERHOME} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + fi + fi + if test ! -z $PADDERHOME + then + AC_CHECK_FILE($PADDERHOME/padder.env,padder_ok=yes,padder_ok=no) + fi +fi + +if test "x$padder_ok" = "xyes" +then + CPPFLAGS="-DWITH_PADDER $CPPFLAGS" +fi + +AC_SUBST(PADDERHOME) + +AC_MSG_RESULT(for PADDER: $padder_ok) + +AM_CONDITIONAL(WITH_PADDER, [test x"$padder_ok" = xyes]) + +])dnl diff --git a/adm_local/unix/config_files/check_qwt.m4 b/adm_local/unix/config_files/check_qwt.m4 index 0110df47d..b15142068 100644 --- a/adm_local/unix/config_files/check_qwt.m4 +++ b/adm_local/unix/config_files/check_qwt.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/make_common_starter.am b/adm_local/unix/make_common_starter.am index feb12fc58..295f19f81 100644 --- a/adm_local/unix/make_common_starter.am +++ b/adm_local/unix/make_common_starter.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/bin/Makefile.am b/bin/Makefile.am index d3d7ed1bc..7e1eea667 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/bin/smesh_setenv.py b/bin/smesh_setenv.py index 81980703d..a58406c1e 100644 --- a/bin/smesh_setenv.py +++ b/bin/smesh_setenv.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/build_cmake b/build_cmake index 174935b46..01bb2ac7f 100755 --- a/build_cmake +++ b/build_cmake @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/build_cmake.bat b/build_cmake.bat index 2456e9cd9..890adcdff 100644 --- a/build_cmake.bat +++ b/build_cmake.bat @@ -1,4 +1,4 @@ -@REM Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +@REM Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE @REM @REM This library is free software; you can redistribute it and/or @REM modify it under the terms of the GNU Lesser General Public diff --git a/build_configure b/build_configure index 7368ce253..ce47d8056 100755 --- a/build_configure +++ b/build_configure @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/clean_configure b/clean_configure index 114762520..09bfbd7bd 100755 --- a/clean_configure +++ b/clean_configure @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/configure.ac b/configure.ac index bdb7de28d..65f1a6852 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -24,7 +24,7 @@ # Modified by : Alexander BORODIN (OCN) - autotools usage # Created from configure.in.base # -AC_INIT([Salome2 Project SMESH module], [6.4.0], [webmaster.salome@opencascade.com], [SalomeSMESH]) +AC_INIT([Salome2 Project SMESH module], [6.5.0], [webmaster.salome@opencascade.com], [SalomeSMESH]) AC_CONFIG_AUX_DIR(adm_local/unix/config_files) AC_CANONICAL_HOST AC_CANONICAL_TARGET @@ -426,6 +426,15 @@ echo CHECK_CGNS +echo +echo --------------------------------------------- +echo Testing PADDER library +echo --------------------------------------------- +echo + +CHECK_CGAL +CHECK_PADDER + echo echo --------------------------------------------- echo Testing TBB library @@ -460,6 +469,16 @@ echo echo "Default ORB : $DEFAULT_ORB" echo +echo "Optionnal products (for plugins):" +optional_vars="cgal_ok padder_ok" +for var in $optional_vars +do + printf " %10s : " `echo \$var | sed -e "s,_ok,,"` + eval echo \$$var +done + + + dnl We don t need to say when we re entering directories if we re using dnl GNU make becuase make does it for us. if test "X$GMAKE" = "Xyes"; then diff --git a/doc/Makefile.am b/doc/Makefile.am index 3edbc8c0a..6d2dfb201 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/doc/docutils/Makefile.am b/doc/docutils/Makefile.am index ce019ed0c..1775115ee 100644 --- a/doc/docutils/Makefile.am +++ b/doc/docutils/Makefile.am @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/doc/salome/Makefile.am b/doc/salome/Makefile.am index 4de92c761..8bf9f392d 100644 --- a/doc/salome/Makefile.am +++ b/doc/salome/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/doc/salome/gui/Makefile.am b/doc/salome/gui/Makefile.am index 055dd2105..9582cd97e 100644 --- a/doc/salome/gui/Makefile.am +++ b/doc/salome/gui/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/doc/salome/gui/SMESH/Makefile.am b/doc/salome/gui/SMESH/Makefile.am index 9f18316be..cc3ddb251 100755 --- a/doc/salome/gui/SMESH/Makefile.am +++ b/doc/salome/gui/SMESH/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/doc/salome/gui/SMESH/doxyfile.in b/doc/salome/gui/SMESH/doxyfile.in index b303e8487..bceb23d55 100755 --- a/doc/salome/gui/SMESH/doxyfile.in +++ b/doc/salome/gui/SMESH/doxyfile.in @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/doc/salome/gui/SMESH/doxyfile_py.in b/doc/salome/gui/SMESH/doxyfile_py.in index 29537665a..19e21b96e 100755 --- a/doc/salome/gui/SMESH/doxyfile_py.in +++ b/doc/salome/gui/SMESH/doxyfile_py.in @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/doc/salome/gui/SMESH/images/duplicate01.png b/doc/salome/gui/SMESH/images/duplicate01.png index b35c7785ff6261a26f708c54412a5a9687398292..80a4a2ba9692cc277f28217906b340a421c09470 100644 GIT binary patch literal 22358 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 literal 11580 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 diff --git a/doc/salome/gui/SMESH/images/duplicate02.png b/doc/salome/gui/SMESH/images/duplicate02.png index 1b5cfabc519f8a36d467d5f2ece088bdafbc4244..0e501412539a1f79c17ede8fc4730506219c9430 100644 GIT binary patch literal 27801 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 literal 13187 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�p`p2u_>sfzfl23NGV>kJKj_z;nh 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
a%rk%1$;-!QHvAnP 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 KpUXO@geCw8X&8|J literal 22576 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 diff --git a/doc/salome/gui/SMESH/images/projection_3d.png b/doc/salome/gui/SMESH/images/projection_3d.png index 5f6b907b849a3764d06b43a0ed922fceaeb23b3d..03eedc3ab94b8ea6784619444fbc287394383cab 100644 GIT binary patch literal 26694 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 literal 23518 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

General Preferences

+ +\image html pref21.png + +
    +
  • Automatic Update
  • +
      +
    • If you toggle Automatic Update checkbox, the model in your +viewer automatically updated whenever you make changes in it.
    • +
    • Size limit (elements) - allows to specify the maximum +number of elements in the resulting mesh for which the automatic updating +of the presentation is performed. This option affects only +Compute operation. Zero value means "no limit". Default value +is 500 000 mesh elements. +
    +
  • Quality Controls
  • +
      +
    • If you toggle Display entity, both faces and edges of an +object will be displayed in the viewer by default.
    • +
    • If you toggle Use precision checkbox, you can display numbers in +Quality Control diagrams at the necessary level of precision.
    • +
    • Number of digits after point - defines precision for Quality Controls. By default, numbers in Quality Control +diagrams are presented as integers.
    • +
    • Double nodes tolerance defines the maximal distance between two +mesh nodes, at which they are considered coincident by Double nodes +quality control. +
    +
  • Display mode - allows to set Wireframe, Shading, Nodes or Shrink +presentation mode as default.
  • +
  • Representation of the 2D quadratic elements
  • +
      +
    • Representation of the 2D quadratic elements combobox - allows +to select lines or arcs for representation of quadratic elements.
    • +
    • Maximum Angle - maximum deviation angle used by the +application to build arcs.
    • +
    +
  • Mesh export
  • +
      +
    • If you toggle Automatically create groups for MED export checkbox, +this operation will be carried out automatically.
    • +
    • If you toggle Automatic renumbering checkbox, the exported +mesh will be renumbered automatically
    • +
    +
  • Mesh computation
  • +
      +
    • Show a computation result notification combobox allows to +select the notification mode about a mesh computation result. +There are 3 possible modes:
    • +
        +
      • Never - do not show the result dialog at all;
      • +
      • Errors only - the result dialog will be shown if there were +some errors during a mesh computation;
      • +
      • Always - show the result dialog after each mesh +computation. This is a default mode.
      • +
    +
  • Mesh information
  • +
      +
    • Mesh element information
    • - Change the way mesh element +information is shown: +
        +
      • Simple - as a plain text
      • +
      • Tree - in a tree-like form
      • +
      +
    • Automatic nodes compute limit
    • - allows to define the size limit for the +mesh groups for which the number of underlying nodes is calculated +automatically. If the group size exceeds the value set in the preferences, +the user will have to press \em Compute button explicitly. Zero value +means "no limit". By default the value is set to 100 000 mesh elements. +
    +
  • Automatic Parameters
  • +
      +
    • Ratio Bounding Box Diagonal / Max Size - this parameter is +used for automatic meshing: ratio between the bounding box of the +meshed object and the Max Size of segments.
    • +
    • Default Number of Segments - allows defining the default +number of segments on each edge
    • +
    +
  • Mesh loading
  • +
      +
    • If No mesh loading from study file at hypothesis modification + checkbox is on, the mesh data will not be loaded from the study file + when a hypothesis is modified. This allows saving time by omitting + loading data of a large mesh that is planned to be recomputed with other parameters.
    • +
    +
  • Input fields precision
  • +
      +
    • Length precision - allows to adjust input precision of coordinates and dimensions.
    • +
    • Angular precision - allows to adjust input precision of angles.
    • +
    • Length tolerance precision - allows to adjust input precision of tolerance of coordinates and dimensions.
    • +
    • Parametric precision - allows to adjust input precision of parametric values.
    • +
    • Area precision - allows to adjust input precision of mesh element area.
    • +
    • Volume precision - allows to adjust input precision of mesh element volume.
    • +
    +
  • Python Dump
  • +
      +
    • Historical python dump checkbox allows switching between + \a Historical and \a Snapshot dump mode. In \a + Historical mode, Python Dump script includes all commands + performed by SMESH engine. In \a Snapshot mode, the commands + relating to objects removed from the Study as well as the commands + not influencing the current state of meshes are excluded from the script.
    • +
    +
+ +

Mesh Preferences

+ +\image html pref22.png + +
    +
  • Nodes
  • +
      +
    • Color - allows to select the color of nodes. Click on the +colored line to access to the Select Color dialog box.
    • +
    • Type of marker - allows to define the shape of nodes.
    • +
    • Scale of marker - allows to define the size of nodes.
    • +
    +
  • Elements
  • +
      +
    • Surface color - allows to select the surface color of elements +(seen in Shading mode). Click on the colored line to access to the Select Color dialog box.
    • +
    • Back surface color - allows to select the interior surface color +of elements. Use the slider to select the color generated basing on +the Surface color by changing its brightness and saturation.
    • +
    • Outline color - allows to select the color of element +borders. Click on the colored line to access to the Select Color dialog box.
    • +
    • Wireframe color - allows to select the color of borders of +elements in the wireframe mode. Click on the colored line to access to the Select Color dialog box.
    • +
    • Width - allows to define the width of lines (edges and borders of elements).
    • +
    • Shrink coef. - allows to define relative space of elements +compared to gaps between them in shrink mode.
    • +
    +
  • Orientation of Faces - allows to define the behavior of +Orientation of faces functionality
  • +
      +
    • \b Color - allows to define the color of orientation vertors;
    • +
    • \b Scale - allows to define the size of orientation vectors;
    • +
    • 3D Vector checkbox allows to choose between 2D planar +and 3D vectors.
    • +
    +
+ +

Selection Preferences

+ +\image html pref23.png + +
    +
  • Selection - performed with mouse-indexing (preselection) +and left-clicking on an object, whose appearance changes as defined in +the Preferences.
  • +
      +
    • Object Color - allows to select the color of mesh (edges and +borders of meshes) of the selected entity. Click on the colored line +to access to the Select Color dialog +box.
    • +
    • Element color - allows to select the color of surface of selected +elements (seen in Shading mode). Click on the colored line to access +to the Select Color dialog box.
    • +
    +
  • Preselection - performed with mouse-indexing on an object, +whose appearance changes as defined in the Preferences.
  • +
      +
    • Highlight Color - allows to select the color of mesh (edges and +borders of meshes) of the entity . Click on the colored line to access +to the Select Color dialog box.
    • +
    +
  • Precision - in this menu you can set the value of precision +used for Nodes, Elements and Objects.
  • +
+ +

Scalar Bar Preferences

+ +\image html pref24.png + +
    +
  • Font - in this menu you can set type, face and color for +the font of Title and Labels.
  • +
  • Colors & Labels - in this menu you can set the number of +colors and the number of labels in use.
  • +
  • Orientation - here you can choose between vertical and +horizontal orientation of the Scalar Bar
  • . +
  • Origin & Size Vertical & Horizontal - allows to define +placement (X and Y) and lookout (Width and +Height) of Scalar Bars
  • +
      +
    • X: abscissa of the point of origin (from the left +side)
    • +
    • Y: ordinate of the origin of the bar (from the bottom)
    • +
    +
  • Distribution in this menu you can Show/Hide distribution histogram of the values of the Scalar Bar and specify the Coloring Type of the histogram
  • +
      +
    • Multicolor the histogram is colored as Scalar Bar
    • +
    • Monocolor the histogram is colored as selected with Distribution color selector
    • +
    +
+ +*/ diff --git a/doc/salome/gui/SMESH/input/modifying_meshes.doc b/doc/salome/gui/SMESH/input/modifying_meshes.doc index 6a8801f3e..024937f9b 100644 --- a/doc/salome/gui/SMESH/input/modifying_meshes.doc +++ b/doc/salome/gui/SMESH/input/modifying_meshes.doc @@ -22,7 +22,7 @@ the mesh or some of its elements. elements.
  • \subpage symmetry_page "Mirror" the mesh through a point or a vector of symmetry.
  • -
  • \subpage double_nodes_page "Duplicate nodes".
  • +
  • \subpage double_nodes_page "Duplicate nodes" to emulate a crack in the model.
  • Unite meshes by \subpage sewing_meshes_page "sewing" free borders, conform free borders, border to side or side elements.
  • \subpage merging_nodes_page "Merge Nodes", considered coincident diff --git a/doc/salome/gui/SMESH/input/selection_filter_library.doc b/doc/salome/gui/SMESH/input/selection_filter_library.doc index 1b46bcc0a..4e58dcee0 100644 --- a/doc/salome/gui/SMESH/input/selection_filter_library.doc +++ b/doc/salome/gui/SMESH/input/selection_filter_library.doc @@ -106,17 +106,17 @@ specified arbitrary surface within a given Tolerance.
  • -Additional criteria to select mesh Nodes are the following: +The following criteria allow selecting mesh Nodes:
    • -Free nodes selects nodes belonging to none mesh element. +Free nodes selects nodes not belonging to any mesh element.
    • -Double nodes selects node coincident with other nodes +Double nodes selects a node coincident with other nodes (within a given Tolerance). See also \ref tui_double_nodes_control "Double Nodes quality control".
    -Additional criteria to select mesh Edges are the following: +The following criteria allow selecting mesh Edges:
    • Free Borders selects free 1D mesh elements, i.e. edges belonging to one face only. See also a @@ -137,7 +137,7 @@ See also a
    -Additional criteria to select mesh Faces are the following: +The following criteria allow selecting mesh Faces:
    • Aspect ratio selects 2D mesh elements with an aspect ratio (see also an \ref aspect_ratio_page "Aspect Ratio quality control"), which is more, less or equal @@ -203,7 +203,7 @@ diagonals with a value of length, which is more, less or equal
    -Additional criteria to select mesh Volumes are the following: +The following criteria allow selecting mesh Volumes:
    • Aspect ratio 3D selects 3D mesh elements with an aspect ratio (see also an \ref aspect_ratio_3d_page "Aspect Ratio 3D quality control"), which is more, less or equal diff --git a/doc/salome/gui/SMESH/static/footer.html b/doc/salome/gui/SMESH/static/footer.html index b344790a6..4c89a2ba1 100755 --- a/doc/salome/gui/SMESH/static/footer.html +++ b/doc/salome/gui/SMESH/static/footer.html @@ -3,7 +3,7 @@
      - Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
      + Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
      Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
      diff --git a/doc/salome/tui/Makefile.am b/doc/salome/tui/Makefile.am index cba97572f..987d26a43 100644 --- a/doc/salome/tui/Makefile.am +++ b/doc/salome/tui/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -42,4 +42,13 @@ install-data-local: fi; uninstall-local: - rm -rf $(DESTDIR)$(docdir)/tui/SMESH + @test -d $(DESTDIR)$(tuidocdir) && chmod -R +w $(DESTDIR)$(tuidocdir) ; \ + for filen in `find $(DESTDIR)$(tuidocdir) -mindepth 1 -maxdepth 1` dummy ; do \ + case $${filen} in \ + dummy ) ;; \ + $(DESTDIR)$(tuidocdir)/docutils ) ;; \ + $(DESTDIR)$(tuidocdir)/head.png ) ;; \ + $(DESTDIR)$(tuidocdir)/smeshscreen.png ) ;; \ + * ) echo "removing $${filen}" && rm -rf $${filen} ;; \ + esac ; \ + done diff --git a/doc/salome/tui/doxyfile.in b/doc/salome/tui/doxyfile.in index e613cbf14..a4143bfee 100755 --- a/doc/salome/tui/doxyfile.in +++ b/doc/salome/tui/doxyfile.in @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/doc/salome/tui/static/footer.html b/doc/salome/tui/static/footer.html index d77ef0a32..5b030c021 100755 --- a/doc/salome/tui/static/footer.html +++ b/doc/salome/tui/static/footer.html @@ -6,7 +6,7 @@
      -Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
      +Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
      Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
      diff --git a/idl/Makefile.am b/idl/Makefile.am index d9264e9aa..c43e554d3 100644 --- a/idl/Makefile.am +++ b/idl/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -35,6 +35,8 @@ BASEIDL_FILES = \ SMESH_MeshEditor.idl \ SMESH_Measurements.idl +BASEIDL_FILES_PY=$(BASEIDL_FILES:%.idl=%_idl.py) + # This variable defines the files to be installed dist_salomeidl_DATA = $(BASEIDL_FILES) @@ -108,9 +110,15 @@ install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%) $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \ done -# uninstall-local removes too much, but it works in distcheck +# we want to remove only staff generated for IDL files and nothing more uninstall-local: - rm -rf $(DESTDIR)$(salomepythondir)/* + @for modulen in SMESH StdMeshers ; do \ + test -d $(DESTDIR)$(salomepythondir)/$${modulen} && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen} ; \ + test -d $(DESTDIR)$(salomepythondir)/$${modulen}__POA && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}__POA" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen}__POA ; \ + done ; \ + for filen in $(BASEIDL_FILES_PY) ; do \ + echo "Removing $(DESTDIR)$(salomepythondir)/$${filen}" && rm -f $(DESTDIR)$(salomepythondir)/$${filen}* ; \ + done mostlyclean-local: -rm -f *.hh *.cc .depidl diff --git a/idl/SMESH_BasicHypothesis.idl b/idl/SMESH_BasicHypothesis.idl index 20a50816a..5ec9ebbf0 100644 --- a/idl/SMESH_BasicHypothesis.idl +++ b/idl/SMESH_BasicHypothesis.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/idl/SMESH_Filter.idl b/idl/SMESH_Filter.idl index 6983982d7..01da803b8 100644 --- a/idl/SMESH_Filter.idl +++ b/idl/SMESH_Filter.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/idl/SMESH_Gen.idl b/idl/SMESH_Gen.idl index 8941de1c1..48fa45cff 100644 --- a/idl/SMESH_Gen.idl +++ b/idl/SMESH_Gen.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/idl/SMESH_Group.idl b/idl/SMESH_Group.idl index 863f42823..d00fe0e9d 100644 --- a/idl/SMESH_Group.idl +++ b/idl/SMESH_Group.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/idl/SMESH_Hypothesis.idl b/idl/SMESH_Hypothesis.idl index ba01c28ed..8d18789ba 100644 --- a/idl/SMESH_Hypothesis.idl +++ b/idl/SMESH_Hypothesis.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/idl/SMESH_Measurements.idl b/idl/SMESH_Measurements.idl index 14dd7c86f..6d8d7f545 100644 --- a/idl/SMESH_Measurements.idl +++ b/idl/SMESH_Measurements.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/idl/SMESH_Mesh.idl b/idl/SMESH_Mesh.idl index a73f893d7..a729eb09a 100644 --- a/idl/SMESH_Mesh.idl +++ b/idl/SMESH_Mesh.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/idl/SMESH_MeshEditor.idl b/idl/SMESH_MeshEditor.idl index fd6c63166..cd4453d2c 100644 --- a/idl/SMESH_MeshEditor.idl +++ b/idl/SMESH_MeshEditor.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -834,7 +834,6 @@ module SMESH */ boolean DoubleNodeGroup( in SMESH_GroupBase theNodes, in SMESH_GroupBase theModifiedElems ); - /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements. * Works as DoubleNodeGroup() described above, but returns a new group with @@ -857,7 +856,6 @@ module SMESH */ boolean DoubleNodeGroups( in ListOfGroups theNodes, in ListOfGroups theModifiedElems ); - /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements * Works as DoubleNodeGroups() described above, but returns a new group with @@ -912,7 +910,6 @@ module SMESH boolean DoubleNodeElemGroup( in SMESH_GroupBase theElems, in SMESH_GroupBase theNodesNot, in SMESH_GroupBase theAffectedElems ); - /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements. * Works as DoubleNodeElemGroup() described above, but returns a new group with @@ -927,6 +924,24 @@ module SMESH SMESH_Group DoubleNodeElemGroupNew( in SMESH_GroupBase theElems, in SMESH_GroupBase theNodesNot, in SMESH_GroupBase theAffectedElems ); + /*! + * \brief Creates a hole in a mesh by doubling the nodes of some particular elements. + * Works as DoubleNodeElemGroup() described above, but returns two new groups: + * a group of newly created elements and a group of newly created nodes + * \param theElems - group of of elements (edges or faces) to be replicated + * \param theNodesNot - group of nodes not to replicated + * \param theAffectedElems - group of elements to which the replicated nodes + * should be associated to. + * \param theElemGroupNeeded - to create group of new elements or not + * \param theNodeGroupNeeded - to create group of new nodes or not + * \return two new groups of newly created elements (1st) and nodes (2nd) + * \sa DoubleNodeElemGroup() + */ + ListOfGroups DoubleNodeElemGroup2New( in SMESH_GroupBase theElems, + in SMESH_GroupBase theNodesNot, + in SMESH_GroupBase theAffectedElems, + in boolean theElemGroupNeeded, + in boolean theNodeGroupNeeded); /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -940,8 +955,8 @@ module SMESH * \sa DoubleNodesInRegion(), DoubleNodeGroupsInRegion() */ boolean DoubleNodeElemGroupInRegion( in SMESH_GroupBase theElems, - in SMESH_GroupBase theNodesNot, - in GEOM::GEOM_Object theShape ); + in SMESH_GroupBase theNodesNot, + in GEOM::GEOM_Object theShape ); /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -956,7 +971,6 @@ module SMESH boolean DoubleNodeElemGroups( in ListOfGroups theElems, in ListOfGroups theNodesNot, in ListOfGroups theAffectedElems ); - /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements. * Works as DoubleNodeElemGroups() described above, but returns a new group with @@ -971,6 +985,24 @@ module SMESH SMESH_Group DoubleNodeElemGroupsNew( in ListOfGroups theElems, in ListOfGroups theNodesNot, in ListOfGroups theAffectedElems ); + /*! + * \brief Creates a hole in a mesh by doubling the nodes of some particular elements. + * Works as DoubleNodeElemGroups() described above, but returns two new groups: + * a group of newly created elements and a group of newly created nodes. + * \param theElems - list of groups of elements (edges or faces) to be replicated + * \param theNodesNot - list of groups of nodes not to replicated + * \param theAffectedElems - group of elements to which the replicated nodes + * should be associated to. + * \param theElemGroupNeeded - to create group of new elements or not + * \param theNodeGroupNeeded - to create group of new nodes or not + * \return two new groups of newly created elements (1st) and nodes (2nd) + * \sa DoubleNodeElemGroups() + */ + ListOfGroups DoubleNodeElemGroups2New( in ListOfGroups theElems, + in ListOfGroups theNodesNot, + in ListOfGroups theAffectedElems, + in boolean theElemGroupNeeded, + in boolean theNodeGroupNeeded ); /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements diff --git a/idl/SMESH_Pattern.idl b/idl/SMESH_Pattern.idl index de112604b..85b842f83 100644 --- a/idl/SMESH_Pattern.idl +++ b/idl/SMESH_Pattern.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/resources/Makefile.am b/resources/Makefile.am index 75ca09c40..5f8684709 100644 --- a/resources/Makefile.am +++ b/resources/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/resources/SMESHCatalog.xml.in b/resources/SMESHCatalog.xml.in index 7e714294c..f65821917 100644 --- a/resources/SMESHCatalog.xml.in +++ b/resources/SMESHCatalog.xml.in @@ -1,6 +1,6 @@ - if ( nbDouble != 4 ) break; if( nbSame == 0 ) { + if ( nbDouble != 4 ) break; // ---> hexahedron with 20 nodes aNewElem = aMesh->AddVolume (prevNod[0], prevNod[1], prevNod[2], prevNod[3], nextNod[0], nextNod[1], nextNod[2], nextNod[3], @@ -3766,6 +3767,7 @@ void SMESH_MeshEditor::sweepElement(const SMDS_MeshElement* elem, return; } else if( nbSame == 2 ) { + if ( nbDouble != 2 ) break; // ---> 2d order Pentahedron with 15 nodes int n1,n2,n4,n5; if ( prevNod[ iBeforeSame ] == nextNod[ iBeforeSame ] ) { @@ -9579,20 +9581,20 @@ SMESH_MeshEditor::SewSideElements (TIDSortedElemSet& theSide1, SMESHDS_Mesh* aMesh = GetMeshDS(); // TODO algoritm not OK with vtkUnstructuredGrid: 2 meshes can't share nodes //SMDS_Mesh aTmpFacesMesh; // try to use the same mesh - set faceSet1, faceSet2; + TIDSortedElemSet faceSet1, faceSet2; set volSet1, volSet2; set nodeSet1, nodeSet2; - set * faceSetPtr[] = { &faceSet1, &faceSet2 }; - set * volSetPtr[] = { &volSet1, &volSet2 }; + TIDSortedElemSet * faceSetPtr[] = { &faceSet1, &faceSet2 }; + set * volSetPtr[] = { &volSet1, &volSet2 }; set * nodeSetPtr[] = { &nodeSet1, &nodeSet2 }; - TIDSortedElemSet * elemSetPtr[] = { &theSide1, &theSide2 }; + TIDSortedElemSet * elemSetPtr[] = { &theSide1, &theSide2 }; int iSide, iFace, iNode; list tempFaceList; for ( iSide = 0; iSide < 2; iSide++ ) { set * nodeSet = nodeSetPtr[ iSide ]; - TIDSortedElemSet * elemSet = elemSetPtr[ iSide ]; - set * faceSet = faceSetPtr[ iSide ]; + TIDSortedElemSet * elemSet = elemSetPtr[ iSide ]; + TIDSortedElemSet * faceSet = faceSetPtr[ iSide ]; set * volSet = volSetPtr [ iSide ]; set::iterator vIt; TIDSortedElemSet::iterator eIt; @@ -9694,16 +9696,8 @@ SMESH_MeshEditor::SewSideElements (TIDSortedElemSet& theSide1, bool isNewFace = setOfFaceNodeSet.insert( faceNodeSet ).second; if ( isNewFace ) { // no such a face is given but it still can exist, check it - if ( nbNodes == 3 ) { - aFreeFace = aMesh->FindFace( fNodes[0],fNodes[1],fNodes[2] ); - } - else if ( nbNodes == 4 ) { - aFreeFace = aMesh->FindFace( fNodes[0],fNodes[1],fNodes[2],fNodes[3] ); - } - else { - vector poly_nodes ( fNodes, & fNodes[nbNodes]); - aFreeFace = aMesh->FindFace(poly_nodes); - } + vector nodes ( fNodes, fNodes + nbNodes); + aFreeFace = aMesh->FindElement( nodes, SMDSAbs_Face, /*noMedium=*/false ); } if ( !aFreeFace ) { // create a temporary face @@ -9720,19 +9714,20 @@ SMESH_MeshEditor::SewSideElements (TIDSortedElemSet& theSide1, //aFreeFace = aTmpFacesMesh.AddPolygonalFace(poly_nodes); aFreeFace = aMesh->AddPolygonalFace(poly_nodes); } + if ( aFreeFace ) + tempFaceList.push_back( aFreeFace ); } - if ( aFreeFace ) { + + if ( aFreeFace ) freeFaceList.push_back( aFreeFace ); - tempFaceList.push_back( aFreeFace ); - } } // loop on faces of a volume - // choose one of several free faces - // -------------------------------------- + // choose one of several free faces of a volume + // -------------------------------------------- if ( freeFaceList.size() > 1 ) { // choose a face having max nb of nodes shared by other elems of a side - int maxNbNodes = -1/*, nbExcludedFaces = 0*/; + int maxNbNodes = -1; list::iterator fIt = freeFaceList.begin(); while ( fIt != freeFaceList.end() ) { // loop on free faces int nbSharedNodes = 0; @@ -9743,18 +9738,20 @@ SMESH_MeshEditor::SewSideElements (TIDSortedElemSet& theSide1, SMDS_ElemIteratorPtr invElemIt = n->GetInverseElementIterator(); while ( invElemIt->more() ) { const SMDS_MeshElement* e = invElemIt->next(); - if ( faceSet->find( e ) != faceSet->end() ) - nbSharedNodes++; - if ( elemSet->find( e ) != elemSet->end() ) - nbSharedNodes++; + nbSharedNodes += faceSet->count( e ); + nbSharedNodes += elemSet->count( e ); } } - if ( nbSharedNodes >= maxNbNodes ) { + if ( nbSharedNodes > maxNbNodes ) { maxNbNodes = nbSharedNodes; + freeFaceList.erase( freeFaceList.begin(), fIt++ ); + } + else if ( nbSharedNodes == maxNbNodes ) { fIt++; } - else + else { freeFaceList.erase( fIt++ ); // here fIt++ occurs before erase + } } if ( freeFaceList.size() > 1 ) { @@ -9855,9 +9852,9 @@ SMESH_MeshEditor::SewSideElements (TIDSortedElemSet& theSide1, TNodeNodeMap nReplaceMap; // bind a node to remove to a node to put instead if ( theFirstNode1 != theFirstNode2 ) - nReplaceMap.insert( TNodeNodeMap::value_type( theFirstNode1, theFirstNode2 )); + nReplaceMap.insert( make_pair( theFirstNode1, theFirstNode2 )); if ( theSecondNode1 != theSecondNode2 ) - nReplaceMap.insert( TNodeNodeMap::value_type( theSecondNode1, theSecondNode2 )); + nReplaceMap.insert( make_pair( theSecondNode1, theSecondNode2 )); LinkID_Gen aLinkID_Gen( GetMeshDS() ); set< long > linkIdSet; // links to process @@ -9870,10 +9867,11 @@ SMESH_MeshEditor::SewSideElements (TIDSortedElemSet& theSide1, // loop on links in linkList; find faces by links and append links // of the found faces to linkList list< NLink >::iterator linkIt[] = { linkList[0].begin(), linkList[1].begin() } ; - for ( ; linkIt[0] != linkList[0].end(); linkIt[0]++, linkIt[1]++ ) { + for ( ; linkIt[0] != linkList[0].end(); linkIt[0]++, linkIt[1]++ ) + { NLink link[] = { *linkIt[0], *linkIt[1] }; long linkID = aLinkID_Gen.GetLinkID( link[0].first, link[0].second ); - if ( linkIdSet.find( linkID ) == linkIdSet.end() ) + if ( !linkIdSet.count( linkID ) ) continue; // by links, find faces in the face sets, @@ -9882,120 +9880,37 @@ SMESH_MeshEditor::SewSideElements (TIDSortedElemSet& theSide1, // --------------------------------------------------------------- const SMDS_MeshElement* face[] = { 0, 0 }; - //const SMDS_MeshNode* faceNodes[ 2 ][ 5 ]; - vector fnodes1(9); - vector fnodes2(9); - //const SMDS_MeshNode* notLinkNodes[ 2 ][ 2 ] = {{ 0, 0 },{ 0, 0 }} ; - vector notLinkNodes1(6); - vector notLinkNodes2(6); + vector fnodes[2]; int iLinkNode[2][2]; + TIDSortedElemSet avoidSet; for ( iSide = 0; iSide < 2; iSide++ ) { // loop on 2 sides const SMDS_MeshNode* n1 = link[iSide].first; const SMDS_MeshNode* n2 = link[iSide].second; - set * faceSet = faceSetPtr[ iSide ]; - set< const SMDS_MeshElement* > fMap; - for ( int i = 0; i < 2; i++ ) { // loop on 2 nodes of a link - const SMDS_MeshNode* n = i ? n1 : n2; // a node of a link - SMDS_ElemIteratorPtr fIt = n->GetInverseElementIterator(SMDSAbs_Face); - while ( fIt->more() ) { // loop on faces sharing a node - const SMDS_MeshElement* f = fIt->next(); - if (faceSet->find( f ) != faceSet->end() && // f is in face set - ! fMap.insert( f ).second ) // f encounters twice - { - if ( face[ iSide ] ) { - MESSAGE( "2 faces per link " ); - aResult = iSide ? SEW_BAD_SIDE2_NODES : SEW_BAD_SIDE1_NODES; - break; - } - face[ iSide ] = f; - faceSet->erase( f ); - // get face nodes and find ones of a link - iNode = 0; - int nbl = -1; - if(f->IsPoly()) { - if(iSide==0) { - fnodes1.resize(f->NbNodes()+1); - notLinkNodes1.resize(f->NbNodes()-2); - } - else { - fnodes2.resize(f->NbNodes()+1); - notLinkNodes2.resize(f->NbNodes()-2); - } - } - if(!f->IsQuadratic()) { - SMDS_ElemIteratorPtr nIt = f->nodesIterator(); - while ( nIt->more() ) { - const SMDS_MeshNode* n = - static_cast( nIt->next() ); - if ( n == n1 ) { - iLinkNode[ iSide ][ 0 ] = iNode; - } - else if ( n == n2 ) { - iLinkNode[ iSide ][ 1 ] = iNode; - } - //else if ( notLinkNodes[ iSide ][ 0 ] ) - // notLinkNodes[ iSide ][ 1 ] = n; - //else - // notLinkNodes[ iSide ][ 0 ] = n; - else { - nbl++; - if(iSide==0) - notLinkNodes1[nbl] = n; - //notLinkNodes1.push_back(n); - else - notLinkNodes2[nbl] = n; - //notLinkNodes2.push_back(n); - } - //faceNodes[ iSide ][ iNode++ ] = n; - if(iSide==0) { - fnodes1[iNode++] = n; - } - else { - fnodes2[iNode++] = n; - } - } - } - else { // f->IsQuadratic() - const SMDS_VtkFace* F = - dynamic_cast(f); - if (!F) throw SALOME_Exception(LOCALIZED("not an SMDS_VtkFace")); - // use special nodes iterator - SMDS_ElemIteratorPtr anIter = F->interlacedNodesElemIterator(); - while ( anIter->more() ) { - const SMDS_MeshNode* n = - static_cast( anIter->next() ); - if ( n == n1 ) { - iLinkNode[ iSide ][ 0 ] = iNode; - } - else if ( n == n2 ) { - iLinkNode[ iSide ][ 1 ] = iNode; - } - else { - nbl++; - if(iSide==0) { - notLinkNodes1[nbl] = n; - } - else { - notLinkNodes2[nbl] = n; - } - } - if(iSide==0) { - fnodes1[iNode++] = n; - } - else { - fnodes2[iNode++] = n; - } - } - } - //faceNodes[ iSide ][ iNode ] = faceNodes[ iSide ][ 0 ]; - if(iSide==0) { - fnodes1[iNode] = fnodes1[0]; - } - else { - fnodes2[iNode] = fnodes1[0]; - } - } + //cout << "Side " << iSide << " "; + //cout << "L( " << n1->GetID() << ", " << n2->GetID() << " ) " << endl; + // find a face by two link nodes + face[ iSide ] = FindFaceInSet( n1, n2, *faceSetPtr[ iSide ], avoidSet, + &iLinkNode[iSide][0], &iLinkNode[iSide][1] ); + if ( face[ iSide ]) + { + //cout << " F " << face[ iSide]->GetID() <erase( face[ iSide ]); + // put face nodes to fnodes + if ( face[ iSide ]->IsQuadratic() ) + { + // use interlaced nodes iterator + const SMDS_VtkFace* F = dynamic_cast( face[ iSide ]); + if (!F) throw SALOME_Exception(LOCALIZED("not an SMDS_VtkFace")); + SMDS_ElemIteratorPtr nIter = F->interlacedNodesElemIterator(); + while ( nIter->more() ) + fnodes[ iSide ].push_back( cast2Node( nIter->next() )); } + else + { + fnodes[ iSide ].assign( face[ iSide ]->begin_nodes(), + face[ iSide ]->end_nodes() ); + } + fnodes[ iSide ].push_back( fnodes[ iSide ].front()); } } @@ -10008,86 +9923,60 @@ SMESH_MeshEditor::SewSideElements (TIDSortedElemSet& theSide1, else { aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS; } - break; // do not return because it s necessary to remove tmp faces + break; // do not return because it's necessary to remove tmp faces } // set nodes to merge // ------------------- if ( face[0] && face[1] ) { - int nbNodes = face[0]->NbNodes(); + const int nbNodes = face[0]->NbNodes(); if ( nbNodes != face[1]->NbNodes() ) { MESSAGE("Diff nb of face nodes"); aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS; break; // do not return because it s necessary to remove tmp faces } - bool reverse[] = { false, false }; // order of notLinkNodes of quadrangle - if ( nbNodes == 3 ) { - //nReplaceMap.insert( TNodeNodeMap::value_type - // ( notLinkNodes[0][0], notLinkNodes[1][0] )); - nReplaceMap.insert( TNodeNodeMap::value_type - ( notLinkNodes1[0], notLinkNodes2[0] )); + bool reverse[] = { false, false }; // order of nodes in the link + for ( iSide = 0; iSide < 2; iSide++ ) { // loop on 2 sides + // analyse link orientation in faces + int i1 = iLinkNode[ iSide ][ 0 ]; + int i2 = iLinkNode[ iSide ][ 1 ]; + reverse[ iSide ] = Abs( i1 - i2 ) == 1 ? i1 > i2 : i2 > i1; } - else { - for ( iSide = 0; iSide < 2; iSide++ ) { // loop on 2 sides - // analyse link orientation in faces - int i1 = iLinkNode[ iSide ][ 0 ]; - int i2 = iLinkNode[ iSide ][ 1 ]; - reverse[ iSide ] = Abs( i1 - i2 ) == 1 ? i1 > i2 : i2 > i1; - // if notLinkNodes are the first and the last ones, then - // their order does not correspond to the link orientation - if (( i1 == 1 && i2 == 2 ) || - ( i1 == 2 && i2 == 1 )) - reverse[ iSide ] = !reverse[ iSide ]; - } - if ( reverse[0] == reverse[1] ) { - //nReplaceMap.insert( TNodeNodeMap::value_type - // ( notLinkNodes[0][0], notLinkNodes[1][0] )); - //nReplaceMap.insert( TNodeNodeMap::value_type - // ( notLinkNodes[0][1], notLinkNodes[1][1] )); - for(int nn=0; nn 0; --i, i1 += di1, i2 += di2 ) + { + nReplaceMap.insert ( make_pair ( fnodes[0][ ( i1 + nbNodes ) % nbNodes ], + fnodes[1][ ( i2 + nbNodes ) % nbNodes ])); } // add other links of the faces to linkList // ----------------------------------------- - //const SMDS_MeshNode** nodes = faceNodes[ 0 ]; for ( iNode = 0; iNode < nbNodes; iNode++ ) { - //linkID = aLinkID_Gen.GetLinkID( nodes[iNode], nodes[iNode+1] ); - linkID = aLinkID_Gen.GetLinkID( fnodes1[iNode], fnodes1[iNode+1] ); + linkID = aLinkID_Gen.GetLinkID( fnodes[0][iNode], fnodes[0][iNode+1] ); pair< set::iterator, bool > iter_isnew = linkIdSet.insert( linkID ); if ( !iter_isnew.second ) { // already in a set: no need to process linkIdSet.erase( iter_isnew.first ); } else // new in set == encountered for the first time: add { - //const SMDS_MeshNode* n1 = nodes[ iNode ]; - //const SMDS_MeshNode* n2 = nodes[ iNode + 1]; - const SMDS_MeshNode* n1 = fnodes1[ iNode ]; - const SMDS_MeshNode* n2 = fnodes1[ iNode + 1]; + const SMDS_MeshNode* n1 = fnodes[0][ iNode ]; + const SMDS_MeshNode* n2 = fnodes[0][ iNode + 1]; linkList[0].push_back ( NLink( n1, n2 )); linkList[1].push_back ( NLink( nReplaceMap[n1], nReplaceMap[n2] )); } } } // 2 faces found + + if ( faceSetPtr[0]->empty() || faceSetPtr[1]->empty() ) + break; + } // loop on link lists if ( aResult == SEW_OK && - ( linkIt[0] != linkList[0].end() || + ( //linkIt[0] != linkList[0].end() || !faceSetPtr[0]->empty() || !faceSetPtr[1]->empty() )) { MESSAGE( (linkIt[0] != linkList[0].end()) <<" "<< (faceSetPtr[0]->empty()) << " " << (faceSetPtr[1]->empty())); @@ -10098,13 +9987,13 @@ SMESH_MeshEditor::SewSideElements (TIDSortedElemSet& theSide1, // 3. Replace nodes in elements of the side 1 and remove replaced nodes // ==================================================================== - // delete temporary faces: they are in reverseElements of actual nodes + // delete temporary faces // SMDS_FaceIteratorPtr tmpFaceIt = aTmpFacesMesh.facesIterator(); // while ( tmpFaceIt->more() ) // aTmpFacesMesh.RemoveElement( tmpFaceIt->next() ); -// list::iterator tmpFaceIt = tempFaceList.begin(); -// for (; tmpFaceIt !=tempFaceList.end(); ++tmpFaceIt) -// aMesh->RemoveElement(*tmpFaceIt); + list::iterator tmpFaceIt = tempFaceList.begin(); + for (; tmpFaceIt !=tempFaceList.end(); ++tmpFaceIt) + aMesh->RemoveElement(*tmpFaceIt); if ( aResult != SEW_OK) return aResult; diff --git a/src/SMESH/SMESH_MeshEditor.hxx b/src/SMESH/SMESH_MeshEditor.hxx index d0d33e96d..1ad951b38 100644 --- a/src/SMESH/SMESH_MeshEditor.hxx +++ b/src/SMESH/SMESH_MeshEditor.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH/SMESH_MesherHelper.cxx b/src/SMESH/SMESH_MesherHelper.cxx index 4804b8f48..b0fd1351a 100644 --- a/src/SMESH/SMESH_MesherHelper.cxx +++ b/src/SMESH/SMESH_MesherHelper.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH/SMESH_MesherHelper.hxx b/src/SMESH/SMESH_MesherHelper.hxx index e5ec87a14..958a94bb3 100644 --- a/src/SMESH/SMESH_MesherHelper.hxx +++ b/src/SMESH/SMESH_MesherHelper.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH/SMESH_Pattern.cxx b/src/SMESH/SMESH_Pattern.cxx index 92f5d6325..cc493ca34 100644 --- a/src/SMESH/SMESH_Pattern.cxx +++ b/src/SMESH/SMESH_Pattern.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -18,6 +18,7 @@ // 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 : SMESH_Pattern.hxx // Created : Mon Aug 2 10:30:00 2004 diff --git a/src/SMESH/SMESH_Pattern.hxx b/src/SMESH/SMESH_Pattern.hxx index 577e635c8..2ba7666aa 100644 --- a/src/SMESH/SMESH_Pattern.hxx +++ b/src/SMESH/SMESH_Pattern.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH/SMESH_ProxyMesh.cxx b/src/SMESH/SMESH_ProxyMesh.cxx index a33470dfe..a4e4f5998 100644 --- a/src/SMESH/SMESH_ProxyMesh.cxx +++ b/src/SMESH/SMESH_ProxyMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH/SMESH_ProxyMesh.hxx b/src/SMESH/SMESH_ProxyMesh.hxx index 60d6ac705..faf67734f 100644 --- a/src/SMESH/SMESH_ProxyMesh.hxx +++ b/src/SMESH/SMESH_ProxyMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH/SMESH_SMESH.hxx b/src/SMESH/SMESH_SMESH.hxx index 11a7a3794..977f5fa1f 100755 --- a/src/SMESH/SMESH_SMESH.hxx +++ b/src/SMESH/SMESH_SMESH.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH/SMESH_subMesh.cxx b/src/SMESH/SMESH_subMesh.cxx index 79e64e1dc..af4e614a8 100644 --- a/src/SMESH/SMESH_subMesh.cxx +++ b/src/SMESH/SMESH_subMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -18,6 +18,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // SMESH SMESH : implementaion of SMESH idl descriptions // File : SMESH_subMesh.cxx @@ -1803,9 +1804,9 @@ void SMESH_subMesh::updateSubMeshState(const compute_state theState) //purpose : //======================================================================= -void SMESH_subMesh::ComputeSubMeshStateEngine(int event) +void SMESH_subMesh::ComputeSubMeshStateEngine(int event, const bool includeSelf) { - SMESH_subMeshIteratorPtr smIt = getDependsOnIterator(false,false); + SMESH_subMeshIteratorPtr smIt = getDependsOnIterator(includeSelf,false); while ( smIt->more() ) smIt->next()->ComputeStateEngine(event); } diff --git a/src/SMESH/SMESH_subMesh.hxx b/src/SMESH/SMESH_subMesh.hxx index 781e555a9..3e01fccb6 100644 --- a/src/SMESH/SMESH_subMesh.hxx +++ b/src/SMESH/SMESH_subMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -210,7 +210,7 @@ public: void DumpAlgoState(bool isMain); bool ComputeStateEngine(int event); - void ComputeSubMeshStateEngine(int event); + void ComputeSubMeshStateEngine(int event, const bool includeSelf=false); bool Evaluate(MapShapeNbElems& aResMap); diff --git a/src/SMESH/SMESH_subMeshEventListener.hxx b/src/SMESH/SMESH_subMeshEventListener.hxx index df1132dff..ae911cfef 100644 --- a/src/SMESH/SMESH_subMeshEventListener.hxx +++ b/src/SMESH/SMESH_subMeshEventListener.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH/memoire.h b/src/SMESH/memoire.h index 98c1d598d..258eda28b 100644 --- a/src/SMESH/memoire.h +++ b/src/SMESH/memoire.h @@ -1,4 +1,4 @@ -// Copyright (C) 2010-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2010-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHClient/Makefile.am b/src/SMESHClient/Makefile.am index f1642e444..86fd92dc0 100644 --- a/src/SMESHClient/Makefile.am +++ b/src/SMESHClient/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHClient/SMESHClientBin.cxx b/src/SMESHClient/SMESHClientBin.cxx index 36fb51e57..3183818ff 100644 --- a/src/SMESHClient/SMESHClientBin.cxx +++ b/src/SMESHClient/SMESHClientBin.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHClient/SMESH_Client.cxx b/src/SMESHClient/SMESH_Client.cxx index c6f20fe4a..df14738a8 100644 --- a/src/SMESHClient/SMESH_Client.cxx +++ b/src/SMESHClient/SMESH_Client.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHClient/SMESH_Client.hxx b/src/SMESHClient/SMESH_Client.hxx index 96c97497b..65c111c2e 100644 --- a/src/SMESHClient/SMESH_Client.hxx +++ b/src/SMESHClient/SMESH_Client.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/Makefile.am b/src/SMESHDS/Makefile.am index 93108a1b0..745ccca8f 100644 --- a/src/SMESHDS/Makefile.am +++ b/src/SMESHDS/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHDS/SMESHDS_Command.cxx b/src/SMESHDS/SMESHDS_Command.cxx index ca0419c6e..e8624bc41 100644 --- a/src/SMESHDS/SMESHDS_Command.cxx +++ b/src/SMESHDS/SMESHDS_Command.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Command.hxx b/src/SMESHDS/SMESHDS_Command.hxx index 68fb5e879..7603fdbcc 100644 --- a/src/SMESHDS/SMESHDS_Command.hxx +++ b/src/SMESHDS/SMESHDS_Command.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_CommandType.hxx b/src/SMESHDS/SMESHDS_CommandType.hxx index 8c7dfa240..ae0563668 100644 --- a/src/SMESHDS/SMESHDS_CommandType.hxx +++ b/src/SMESHDS/SMESHDS_CommandType.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_DataMapOfShape.hxx b/src/SMESHDS/SMESHDS_DataMapOfShape.hxx index b0957c092..e9482e7bb 100755 --- a/src/SMESHDS/SMESHDS_DataMapOfShape.hxx +++ b/src/SMESHDS/SMESHDS_DataMapOfShape.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Document.cxx b/src/SMESHDS/SMESHDS_Document.cxx index 934412063..315275e33 100644 --- a/src/SMESHDS/SMESHDS_Document.cxx +++ b/src/SMESHDS/SMESHDS_Document.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Document.hxx b/src/SMESHDS/SMESHDS_Document.hxx index 7d4f65da8..182581256 100644 --- a/src/SMESHDS/SMESHDS_Document.hxx +++ b/src/SMESHDS/SMESHDS_Document.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Group.cxx b/src/SMESHDS/SMESHDS_Group.cxx index 587b51e20..c3e1820e5 100644 --- a/src/SMESHDS/SMESHDS_Group.cxx +++ b/src/SMESHDS/SMESHDS_Group.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Group.hxx b/src/SMESHDS/SMESHDS_Group.hxx index 4bba3713a..6c798d961 100644 --- a/src/SMESHDS/SMESHDS_Group.hxx +++ b/src/SMESHDS/SMESHDS_Group.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_GroupBase.cxx b/src/SMESHDS/SMESHDS_GroupBase.cxx index 91330d541..383d796a2 100644 --- a/src/SMESHDS/SMESHDS_GroupBase.cxx +++ b/src/SMESHDS/SMESHDS_GroupBase.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_GroupBase.hxx b/src/SMESHDS/SMESHDS_GroupBase.hxx index 5c1bd90e0..cc9411f99 100644 --- a/src/SMESHDS/SMESHDS_GroupBase.hxx +++ b/src/SMESHDS/SMESHDS_GroupBase.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_GroupOnFilter.cxx b/src/SMESHDS/SMESHDS_GroupOnFilter.cxx index cc6f0fa04..32bd8c7f3 100644 --- a/src/SMESHDS/SMESHDS_GroupOnFilter.cxx +++ b/src/SMESHDS/SMESHDS_GroupOnFilter.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_GroupOnFilter.hxx b/src/SMESHDS/SMESHDS_GroupOnFilter.hxx index 3725c6911..b1e33e5fc 100644 --- a/src/SMESHDS/SMESHDS_GroupOnFilter.hxx +++ b/src/SMESHDS/SMESHDS_GroupOnFilter.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_GroupOnGeom.cxx b/src/SMESHDS/SMESHDS_GroupOnGeom.cxx index 28201179b..51d762028 100644 --- a/src/SMESHDS/SMESHDS_GroupOnGeom.cxx +++ b/src/SMESHDS/SMESHDS_GroupOnGeom.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_GroupOnGeom.hxx b/src/SMESHDS/SMESHDS_GroupOnGeom.hxx index 3dc4d93c3..1895912b4 100644 --- a/src/SMESHDS/SMESHDS_GroupOnGeom.hxx +++ b/src/SMESHDS/SMESHDS_GroupOnGeom.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Hypothesis.cxx b/src/SMESHDS/SMESHDS_Hypothesis.cxx index aefcfe8fb..ea7c5c6e5 100644 --- a/src/SMESHDS/SMESHDS_Hypothesis.cxx +++ b/src/SMESHDS/SMESHDS_Hypothesis.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Hypothesis.hxx b/src/SMESHDS/SMESHDS_Hypothesis.hxx index e03376ddd..d819684af 100644 --- a/src/SMESHDS/SMESHDS_Hypothesis.hxx +++ b/src/SMESHDS/SMESHDS_Hypothesis.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Mesh.cxx b/src/SMESHDS/SMESHDS_Mesh.cxx index 36eb10ff8..1c3592841 100644 --- a/src/SMESHDS/SMESHDS_Mesh.cxx +++ b/src/SMESHDS/SMESHDS_Mesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Mesh.hxx b/src/SMESHDS/SMESHDS_Mesh.hxx index d04218f41..cf5cbd9e9 100644 --- a/src/SMESHDS/SMESHDS_Mesh.hxx +++ b/src/SMESHDS/SMESHDS_Mesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Script.cxx b/src/SMESHDS/SMESHDS_Script.cxx index 4d9452925..fba549274 100644 --- a/src/SMESHDS/SMESHDS_Script.cxx +++ b/src/SMESHDS/SMESHDS_Script.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_Script.hxx b/src/SMESHDS/SMESHDS_Script.hxx index e5b3b7aaa..8608df010 100644 --- a/src/SMESHDS/SMESHDS_Script.hxx +++ b/src/SMESHDS/SMESHDS_Script.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_SubMesh.cxx b/src/SMESHDS/SMESHDS_SubMesh.cxx index 9bbbf51d2..32073bb50 100644 --- a/src/SMESHDS/SMESHDS_SubMesh.cxx +++ b/src/SMESHDS/SMESHDS_SubMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESHDS_SubMesh.hxx b/src/SMESHDS/SMESHDS_SubMesh.hxx index edd2bcd5f..049c73e33 100644 --- a/src/SMESHDS/SMESHDS_SubMesh.hxx +++ b/src/SMESHDS/SMESHDS_SubMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESH_Controls.hxx b/src/SMESHDS/SMESH_Controls.hxx index 785b91420..49d6ab1d2 100644 --- a/src/SMESHDS/SMESH_Controls.hxx +++ b/src/SMESHDS/SMESH_Controls.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHDS/SMESH_SMESHDS.hxx b/src/SMESHDS/SMESH_SMESHDS.hxx index f53e64750..cc22f1f6d 100755 --- a/src/SMESHDS/SMESH_SMESHDS.hxx +++ b/src/SMESHDS/SMESH_SMESHDS.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHFiltersSelection/Makefile.am b/src/SMESHFiltersSelection/Makefile.am index f49bdf319..6b15a26b3 100644 --- a/src/SMESHFiltersSelection/Makefile.am +++ b/src/SMESHFiltersSelection/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx b/src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx index b05c2f413..bcfa96bcb 100644 --- a/src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx +++ b/src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx b/src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx index 79217bae4..3069fa890 100644 --- a/src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx +++ b/src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx b/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx index b3af049f1..5699e263c 100644 --- a/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx +++ b/src/SMESHFiltersSelection/SMESH_NumberFilter.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHFiltersSelection/SMESH_NumberFilter.hxx b/src/SMESHFiltersSelection/SMESH_NumberFilter.hxx index d9cb2c2ee..6400d9b36 100644 --- a/src/SMESHFiltersSelection/SMESH_NumberFilter.hxx +++ b/src/SMESHFiltersSelection/SMESH_NumberFilter.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHFiltersSelection/SMESH_Type.h b/src/SMESHFiltersSelection/SMESH_Type.h index e5a069b5b..9eb30cb03 100644 --- a/src/SMESHFiltersSelection/SMESH_Type.h +++ b/src/SMESHFiltersSelection/SMESH_Type.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx b/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx index 1f75ccd2c..26a9dc0a6 100644 --- a/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx +++ b/src/SMESHFiltersSelection/SMESH_TypeFilter.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHFiltersSelection/SMESH_TypeFilter.hxx b/src/SMESHFiltersSelection/SMESH_TypeFilter.hxx index 98d5d7512..0821917d0 100644 --- a/src/SMESHFiltersSelection/SMESH_TypeFilter.hxx +++ b/src/SMESHFiltersSelection/SMESH_TypeFilter.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/Makefile.am b/src/SMESHGUI/Makefile.am index 541933a88..28537546a 100644 --- a/src/SMESHGUI/Makefile.am +++ b/src/SMESHGUI/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 5dac91394..b681a1499 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -1579,98 +1579,115 @@ SalomeApp_Application* anApp = dynamic_cast( SUIT_Session::session()->activeApplication() ); - SALOME_ListIteratorOfListIO It(selected); - - aStudyBuilder->NewCommand(); // There is a transaction - for( ; It.More(); It.Next()){ // loop on selected IO's - Handle(SALOME_InteractiveObject) IObject = It.Value(); - if(IObject->hasEntry()) { - _PTR(SObject) aSO = aStudy->FindObjectID(IObject->getEntry()); - - // disable removal of "SMESH" component object - if(aSO->FindAttribute(anAttr, "AttributeIOR")){ - anIOR = anAttr; - if ( engineIOR() == anIOR->Value().c_str() ) - continue; - } - //Check the referenced object - _PTR(SObject) aRefSObject; - if ( aSO && aSO->ReferencedObject( aRefSObject ) ) - aSO = aRefSObject; // Delete main Object instead of reference - - // put the whole hierarchy of sub-objects of the selected SO into a list and - // then treat them all starting from the deepest objects (at list back) - - std::list< _PTR(SObject) > listSO; - listSO.push_back( aSO ); - std::list< _PTR(SObject) >::iterator itSO = listSO.begin(); - for ( ; itSO != listSO.end(); ++itSO ) { - _PTR(ChildIterator) it = aStudy->NewChildIterator( *itSO ); - for (it->InitEx(false); it->More(); it->Next()) - listSO.push_back( it->Value() ); - } - - // treat SO's in the list starting from the back - - std::list< _PTR(SObject) >::reverse_iterator ritSO = listSO.rbegin(); - for ( ; ritSO != listSO.rend(); ++ritSO ) { - _PTR(SObject) SO = *ritSO; - if ( !SO ) continue; - std::string anEntry = SO->GetID(); - - /** Erase graphical object **/ - if(SO->FindAttribute(anAttr, "AttributeIOR")){ - ViewManagerList aViewMenegers = anApp->viewManagers(); - ViewManagerList::const_iterator it = aViewMenegers.begin(); - for( ; it != aViewMenegers.end(); it++) { - SUIT_ViewManager* vm = *it; - int nbSf = vm ? vm->getViewsCount() : 0; - if(vm) { - QVector aViews = vm->getViews(); - for(int i = 0; i < nbSf; i++){ - SUIT_ViewWindow *sf = aViews[i]; - if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.c_str())){ - SMESH::RemoveActor(sf,anActor); - } - } + // Put the whole hierarchy of sub-objects of the selected SO's into a list and + // then treat them all starting from the deepest objects (at list back) + std::list< _PTR(SObject) > listSO; + SALOME_ListIteratorOfListIO It(selected); + for( ; It.More(); It.Next()) // loop on selected IO's + { + Handle(SALOME_InteractiveObject) IObject = It.Value(); + if(IObject->hasEntry()) { + _PTR(SObject) aSO = aStudy->FindObjectID(IObject->getEntry()); + + // disable removal of "SMESH" component object + if(aSO->FindAttribute(anAttr, "AttributeIOR")){ + anIOR = anAttr; + if ( engineIOR() == anIOR->Value().c_str() ) + continue; + } + //Check the referenced object + _PTR(SObject) aRefSObject; + if ( aSO && aSO->ReferencedObject( aRefSObject ) ) + aSO = aRefSObject; // Delete main Object instead of reference + + listSO.push_back( aSO ); + std::list< _PTR(SObject) >::iterator itSO = listSO.begin(); + for ( ; itSO != listSO.end(); ++itSO ) { + _PTR(ChildIterator) it = aStudy->NewChildIterator( *itSO ); + for (it->InitEx(false); it->More(); it->Next()) + listSO.push_back( it->Value() ); + } + } + } + // Check if none of objects to delete is referred from outside + std::list< _PTR(SObject) >::reverse_iterator ritSO; + for ( ritSO = listSO.rbegin(); ritSO != listSO.rend(); ++ritSO ) + { + _PTR(SObject) SO = *ritSO; + if ( !SO ) continue; + std::vector<_PTR(SObject)> aReferences = aStudy->FindDependances( *ritSO ); + for (size_t i = 0; i < aReferences.size(); i++) { + _PTR(SComponent) aComponent = aReferences[i]->GetFatherComponent(); + std::string type = aComponent->ComponentDataType(); + if ( type != "SMESH" ) + { + SUIT_MessageBox::warning( anApp->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr("DEP_OBJECT") ); + return; // outside SMESH, there is an object depending on a SMESH object + } + } + } + + // Treat SO's in the list starting from the back + aStudyBuilder->NewCommand(); // There is a transaction + for ( ritSO = listSO.rbegin(); ritSO != listSO.rend(); ++ritSO ) + { + _PTR(SObject) SO = *ritSO; + if ( !SO ) continue; + std::string anEntry = SO->GetID(); + + /** Erase graphical object **/ + if(SO->FindAttribute(anAttr, "AttributeIOR")){ + ViewManagerList aViewMenegers = anApp->viewManagers(); + ViewManagerList::const_iterator it = aViewMenegers.begin(); + for( ; it != aViewMenegers.end(); it++) { + SUIT_ViewManager* vm = *it; + int nbSf = vm ? vm->getViewsCount() : 0; + if(vm) { + QVector aViews = vm->getViews(); + for(int i = 0; i < nbSf; i++){ + SUIT_ViewWindow *sf = aViews[i]; + if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.c_str())){ + SMESH::RemoveActor(sf,anActor); } } } - /** Remove an object from data structures **/ - SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( SO )); - SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( SO )); - if ( !aGroup->_is_nil() ) { // DELETE GROUP - SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh(); - aMesh->RemoveGroup( aGroup ); - } - else if ( !aSubMesh->_is_nil() ) { // DELETE SUBMESH - SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather(); - aMesh->RemoveSubMesh( aSubMesh ); - - _PTR(SObject) aMeshSO = SMESH::FindSObject(aMesh); - if (aMeshSO) - SMESH::ModifiedMesh(aMeshSO, false, aMesh->NbNodes()==0); - } - else { - IObject = new SALOME_InteractiveObject - ( anEntry.c_str(), engineIOR().toLatin1().data(), SO->GetName().c_str() ); - QString objType = CheckTypeObject(IObject); - if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS - SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject); - aStudyBuilder->RemoveObjectWithChildren( SO ); - } - else {// default action: remove SObject from the study - // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH - //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy); - //op->start(); - aStudyBuilder->RemoveObjectWithChildren( SO ); - //op->finish(); - } - } - } /* listSO back loop */ - } /* IObject->hasEntry() */ - } /* more/next */ - + } + } + /** Remove an object from data structures **/ + SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( SO )); + SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( SO )); + if ( !aGroup->_is_nil() ) { // DELETE GROUP + SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh(); + aMesh->RemoveGroup( aGroup ); + } + else if ( !aSubMesh->_is_nil() ) { // DELETE SUBMESH + SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather(); + aMesh->RemoveSubMesh( aSubMesh ); + + _PTR(SObject) aMeshSO = SMESH::FindSObject(aMesh); + if (aMeshSO) + SMESH::ModifiedMesh(aMeshSO, false, aMesh->NbNodes()==0); + } + else { + Handle(SALOME_InteractiveObject) IObject = new SALOME_InteractiveObject + ( anEntry.c_str(), engineIOR().toLatin1().data(), SO->GetName().c_str() ); + QString objType = CheckTypeObject(IObject); + if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS + SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject); + aStudyBuilder->RemoveObjectWithChildren( SO ); + } + else {// default action: remove SObject from the study + // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH + //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy); + //op->start(); + aStudyBuilder->RemoveObjectWithChildren( SO ); + //op->finish(); + } + } + } /* listSO back loop */ + aStudyBuilder->CommitCommand(); /* Clear any previous selection */ @@ -1679,7 +1696,7 @@ SMESHGUI::GetSMESHGUI()->updateObjBrowser(); } -//} +//} namespace extern "C" { SMESHGUI_EXPORT CAM_Module* createModule() @@ -3419,13 +3436,13 @@ void SMESHGUI::initialize( CAM_Application* app ) // ----- create actions -------------- - createSMESHAction( 111, "DAT", "", (Qt::CTRL+Qt::Key_B) ); - createSMESHAction( 112, "UNV", "", (Qt::CTRL+Qt::Key_U) ); - createSMESHAction( 113, "MED", "", (Qt::CTRL+Qt::Key_M) ); + createSMESHAction( 111, "IMPORT_DAT", "", (Qt::CTRL+Qt::Key_B) ); + createSMESHAction( 112, "IMPORT_UNV", "", (Qt::CTRL+Qt::Key_U) ); + createSMESHAction( 113, "IMPORT_MED", "", (Qt::CTRL+Qt::Key_M) ); createSMESHAction( 114, "NUM" ); - createSMESHAction( 115, "STL" ); - createSMESHAction( 116, "CGNS" ); - createSMESHAction( 117, "SAUV" ); + createSMESHAction( 115, "IMPORT_STL" ); + createSMESHAction( 116, "IMPORT_CGNS" ); + createSMESHAction( 117, "IMPORT_SAUV" ); createSMESHAction( 121, "DAT" ); createSMESHAction( 122, "MED" ); createSMESHAction( 123, "UNV" ); @@ -3579,8 +3596,8 @@ void SMESHGUI::initialize( CAM_Application* app ) createSMESHAction( 501, "MEASURE_MIN_DIST", "ICON_MEASURE_MIN_DIST" ); createSMESHAction( 502, "MEASURE_BND_BOX", "ICON_MEASURE_BND_BOX" ); - createSMESHAction( 300, "ERASE" ); - createSMESHAction( 301, "DISPLAY" ); + createSMESHAction( 300, "HIDE" ); + createSMESHAction( 301, "SHOW" ); createSMESHAction( 302, "DISPLAY_ONLY" ); // ----- create menu -------------- @@ -3945,6 +3962,7 @@ void SMESHGUI::initialize( CAM_Application* app ) #endif createPopupItem( 145, OB, mesh_group, multiple_non_empty ); // EXPORT_SAUV createPopupItem( 33, OB, mesh_part + " " + hyp_alg ); // DELETE + createPopupItem( 813, OB, group ); // DEL_GROUP with contents popupMgr()->insert( separator(), -1, 0 ); // popup for viewer diff --git a/src/SMESHGUI/SMESHGUI.h b/src/SMESHGUI/SMESHGUI.h index 86ebc053e..6f5237ce3 100644 --- a/src/SMESHGUI/SMESHGUI.h +++ b/src/SMESHGUI/SMESHGUI.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx b/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx index 9ac23000f..4403aa6bd 100644 --- a/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h b/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h index 73638f786..56e5d2ec8 100644 --- a/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h +++ b/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx index d42791c4f..0472de715 100644 --- a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.h b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.h index 430133411..3b2c360b2 100644 --- a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.h +++ b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_BuildCompoundDlg.cxx b/src/SMESHGUI/SMESHGUI_BuildCompoundDlg.cxx index 0d97f601d..edee4cecb 100644 --- a/src/SMESHGUI/SMESHGUI_BuildCompoundDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_BuildCompoundDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_BuildCompoundDlg.h b/src/SMESHGUI/SMESHGUI_BuildCompoundDlg.h index f9e52eab6..6230022e8 100644 --- a/src/SMESHGUI/SMESHGUI_BuildCompoundDlg.h +++ b/src/SMESHGUI/SMESHGUI_BuildCompoundDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ClippingDlg.cxx b/src/SMESHGUI/SMESHGUI_ClippingDlg.cxx index 4cbbfff65..3143626c6 100644 --- a/src/SMESHGUI/SMESHGUI_ClippingDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ClippingDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ClippingDlg.h b/src/SMESHGUI/SMESHGUI_ClippingDlg.h index 5efab0d00..70bd03b89 100644 --- a/src/SMESHGUI/SMESHGUI_ClippingDlg.h +++ b/src/SMESHGUI/SMESHGUI_ClippingDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx index 676a3648e..76061bb86 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.h b/src/SMESHGUI/SMESHGUI_ComputeDlg.h index 9d21176b7..49aa2477c 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.h +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx b/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx index 7d534addd..b42d728ae 100644 --- a/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h b/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h index 755de4952..660dbc731 100644 --- a/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h +++ b/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx index d41ae1140..a62d0b949 100644 --- a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx +++ b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.h b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.h index 8ab0e9235..9e2cbb129 100644 --- a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.h +++ b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_CopyMeshDlg.cxx b/src/SMESHGUI/SMESHGUI_CopyMeshDlg.cxx index f873d067f..7c3d1d62c 100644 --- a/src/SMESHGUI/SMESHGUI_CopyMeshDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_CopyMeshDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_CopyMeshDlg.h b/src/SMESHGUI/SMESHGUI_CopyMeshDlg.h index 4f96da993..b0c3b9338 100644 --- a/src/SMESHGUI/SMESHGUI_CopyMeshDlg.h +++ b/src/SMESHGUI/SMESHGUI_CopyMeshDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx b/src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx index 4a04f6526..ac3c71931 100755 --- a/src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_CreatePatternDlg.h b/src/SMESHGUI/SMESHGUI_CreatePatternDlg.h index 1dbe0d4e8..0a03e1061 100755 --- a/src/SMESHGUI/SMESHGUI_CreatePatternDlg.h +++ b/src/SMESHGUI/SMESHGUI_CreatePatternDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx b/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx index 835d24066..ffc22ecdb 100644 --- a/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.h b/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.h index 93c7661ff..44dd3ab5d 100644 --- a/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.h +++ b/src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx index f35ed6944..ac5a1c686 100644 --- a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h index ad3bc2a3e..48e418417 100644 --- a/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h +++ b/src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Dialog.cxx b/src/SMESHGUI/SMESHGUI_Dialog.cxx index e23b0abcd..958f609ff 100644 --- a/src/SMESHGUI/SMESHGUI_Dialog.cxx +++ b/src/SMESHGUI/SMESHGUI_Dialog.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Dialog.h b/src/SMESHGUI/SMESHGUI_Dialog.h index f7c5679a2..374cbe72b 100644 --- a/src/SMESHGUI/SMESHGUI_Dialog.h +++ b/src/SMESHGUI/SMESHGUI_Dialog.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Displayer.cxx b/src/SMESHGUI/SMESHGUI_Displayer.cxx index 8443fec80..153c34825 100644 --- a/src/SMESHGUI/SMESHGUI_Displayer.cxx +++ b/src/SMESHGUI/SMESHGUI_Displayer.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Displayer.h b/src/SMESHGUI/SMESHGUI_Displayer.h index c71700a96..6a0920b4a 100644 --- a/src/SMESHGUI/SMESHGUI_Displayer.h +++ b/src/SMESHGUI/SMESHGUI_Displayer.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.cxx b/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.cxx index f10ab17b0..e49250afe 100644 --- a/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -155,7 +155,8 @@ SMESHGUI_DuplicateNodesDlg::SMESHGUI_DuplicateNodesDlg( SMESHGUI* theModule ) myLineEdit3 = new QLineEdit(myGroupArguments); myLineEdit3->setReadOnly(true); - myCheckBoxNewGroup = new QCheckBox(tr("CONSTRUCT_NEW_GROUP_NODES"), myGroupArguments); + myCheckBoxNewElemGroup = new QCheckBox(tr("CONSTRUCT_NEW_GROUP_ELEMENTS"), myGroupArguments); + myCheckBoxNewNodeGroup = new QCheckBox(tr("CONSTRUCT_NEW_GROUP_NODES"), myGroupArguments); aGroupArgumentsLayout->addWidget(myTextLabel1, 0, 0); aGroupArgumentsLayout->addWidget(mySelectButton1, 0, 1); @@ -166,8 +167,9 @@ SMESHGUI_DuplicateNodesDlg::SMESHGUI_DuplicateNodesDlg( SMESHGUI* theModule ) aGroupArgumentsLayout->addWidget(myTextLabel3, 2, 0); aGroupArgumentsLayout->addWidget(mySelectButton3, 2, 1); aGroupArgumentsLayout->addWidget(myLineEdit3, 2, 2); - aGroupArgumentsLayout->addWidget(myCheckBoxNewGroup, 3, 0); - aGroupArgumentsLayout->setRowStretch(4, 1); + aGroupArgumentsLayout->addWidget(myCheckBoxNewElemGroup, 3, 0); + aGroupArgumentsLayout->addWidget(myCheckBoxNewNodeGroup, 4, 0); + aGroupArgumentsLayout->setRowStretch(5, 1); // Buttons QGroupBox* aGroupButtons = new QGroupBox(this); @@ -235,7 +237,8 @@ SMESHGUI_DuplicateNodesDlg::~SMESHGUI_DuplicateNodesDlg() void SMESHGUI_DuplicateNodesDlg::Init() { mySMESHGUI->SetActiveDialogBox((QDialog*)this); - myCheckBoxNewGroup->setChecked(true); + myCheckBoxNewElemGroup->setChecked(true); + myCheckBoxNewNodeGroup->setChecked(true); // Set initial parameters myBusy = false; @@ -287,8 +290,8 @@ void SMESHGUI_DuplicateNodesDlg::onConstructorsClicked (int constructorId) myTextLabel1->setText(tr("GROUP_NODES_TO_DUPLICATE")); myTextLabel2->setText(tr("GROUP_NODES_TO_REPLACE")); - // Set checkbox title - myCheckBoxNewGroup->setText(tr("CONSTRUCT_NEW_GROUP_NODES")); + myCheckBoxNewElemGroup->hide(); + myCheckBoxNewNodeGroup->show(); // Hide the third field myTextLabel3->hide(); @@ -305,8 +308,8 @@ void SMESHGUI_DuplicateNodesDlg::onConstructorsClicked (int constructorId) myTextLabel2->setText(tr("GROUP_NODES_NOT_DUPLICATE")); myTextLabel3->setText(tr("GROUP_ELEMS_TO_REPLACE")); - // Set checkbox title - myCheckBoxNewGroup->setText(tr("CONSTRUCT_NEW_GROUP_ELEMENTS")); + myCheckBoxNewElemGroup->show(); + myCheckBoxNewNodeGroup->show(); // Show the third field myTextLabel3->show(); @@ -331,7 +334,8 @@ bool SMESHGUI_DuplicateNodesDlg::onApply() BusyLocker lock( myBusy ); - bool toCreateGroup = myCheckBoxNewGroup->isChecked(); + bool toCreateElemGroup = myCheckBoxNewElemGroup->isChecked(); + bool toCreateNodeGroup = myCheckBoxNewNodeGroup->isChecked(); int operationMode = myGroupConstructors->checkedId(); // Apply changes @@ -352,7 +356,7 @@ bool SMESHGUI_DuplicateNodesDlg::onApply() for ( int i = 0; i < myGroups2.count(); i++ ) g2[i] = myGroups2[i]; - if ( toCreateGroup ) { + if ( toCreateNodeGroup ) { SMESH::SMESH_GroupBase_var aNewGroup = aMeshEditor->DoubleNodeGroupsNew( g1.in(), g2.in() ); result = !CORBA::is_nil( aNewGroup ); @@ -375,10 +379,11 @@ bool SMESHGUI_DuplicateNodesDlg::onApply() for ( int i = 0; i < myGroups3.count(); i++ ) g3[i] = myGroups3[i]; - if ( toCreateGroup ) { - SMESH::SMESH_GroupBase_ptr aNewGroup = - aMeshEditor->DoubleNodeElemGroupsNew( g1.in(), g2.in(), g3.in() ); - result = !CORBA::is_nil( aNewGroup ); + if ( toCreateElemGroup || toCreateNodeGroup ) { + SMESH::ListOfGroups_var aNewGroups = + aMeshEditor->DoubleNodeElemGroups2New( g1.in(), g2.in(), g3.in(), + toCreateElemGroup, toCreateNodeGroup ); + result = ( aNewGroups[ !toCreateElemGroup ].in() ); } else { result = aMeshEditor->DoubleNodeElemGroups( g1.in(), g2.in(), g3.in() ); diff --git a/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.h b/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.h index de61c3007..2714ba093 100644 --- a/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.h +++ b/src/SMESHGUI/SMESHGUI_DuplicateNodesDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -97,7 +97,8 @@ private: QLineEdit* myLineEdit1; QLineEdit* myLineEdit2; QLineEdit* myLineEdit3; - QCheckBox* myCheckBoxNewGroup; + QCheckBox* myCheckBoxNewElemGroup; + QCheckBox* myCheckBoxNewNodeGroup; QPushButton* myButtonOk; QPushButton* myButtonApply; diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx index a72452292..4ec84dce9 100644 --- a/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -18,6 +18,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // SMESH SMESHGUI : GUI for SMESH component // File : SMESHGUI_ExtrusionAlongPathDlg.cxx diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h index 3f13e62ca..b02aeb7a2 100644 --- a/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h +++ b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx b/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx index f9c29e175..c75af4f45 100644 --- a/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -429,6 +429,8 @@ void SMESHGUI_ExtrusionDlg::ConstructorsClicked (int constructorId) hidePreview(); + TextLabelElements->setText(tr( constructorId ? "SMESH_ID_ELEMENTS" : "SMESH_ID_NODES")); + switch (constructorId) { case 0: { diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionDlg.h b/src/SMESHGUI/SMESHGUI_ExtrusionDlg.h index 93191fbf2..dd0b741a0 100644 --- a/src/SMESHGUI/SMESHGUI_ExtrusionDlg.h +++ b/src/SMESHGUI/SMESHGUI_ExtrusionDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_FileInfoDlg.cxx b/src/SMESHGUI/SMESHGUI_FileInfoDlg.cxx index 2a44deafb..78446f12b 100644 --- a/src/SMESHGUI/SMESHGUI_FileInfoDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_FileInfoDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_FileInfoDlg.h b/src/SMESHGUI/SMESHGUI_FileInfoDlg.h index f4da14137..dee3e0764 100644 --- a/src/SMESHGUI/SMESHGUI_FileInfoDlg.h +++ b/src/SMESHGUI/SMESHGUI_FileInfoDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_FileValidator.cxx b/src/SMESHGUI/SMESHGUI_FileValidator.cxx index 1d344a5e9..e56a4951e 100755 --- a/src/SMESHGUI/SMESHGUI_FileValidator.cxx +++ b/src/SMESHGUI/SMESHGUI_FileValidator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_FileValidator.h b/src/SMESHGUI/SMESHGUI_FileValidator.h index a396f76b8..0f6f0129e 100755 --- a/src/SMESHGUI/SMESHGUI_FileValidator.h +++ b/src/SMESHGUI/SMESHGUI_FileValidator.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_Filter.cxx b/src/SMESHGUI/SMESHGUI_Filter.cxx index 4cf3f91b0..c011b9606 100755 --- a/src/SMESHGUI/SMESHGUI_Filter.cxx +++ b/src/SMESHGUI/SMESHGUI_Filter.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Filter.h b/src/SMESHGUI/SMESHGUI_Filter.h index e397af4d6..ed048df67 100755 --- a/src/SMESHGUI/SMESHGUI_Filter.h +++ b/src/SMESHGUI/SMESHGUI_Filter.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_FilterDlg.cxx b/src/SMESHGUI/SMESHGUI_FilterDlg.cxx index b3f81c9d5..2ed633149 100755 --- a/src/SMESHGUI/SMESHGUI_FilterDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_FilterDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -3188,6 +3188,7 @@ void SMESHGUI_FilterDlg::filterSource (const int theType, // filter ids SMESH::Predicate_ptr aPred = myFilter[ theType ]->GetPredicate(); + myFilter[ theType ]->SetMesh(myMesh); QList::const_iterator anIter; for (anIter = aDialogIds.begin(); anIter != aDialogIds.end(); ++ anIter) if (aPred->IsSatisfy(*anIter)) @@ -3260,6 +3261,7 @@ void SMESHGUI_FilterDlg::filterSelectionSource (const int theType, // Filter entities SMESH::Predicate_ptr aPred = myFilter[ theType ]->GetPredicate(); + myFilter[ theType ]->SetMesh(myMesh); TColStd_MapIteratorOfMapOfInteger aResIter(aToBeFiltered); for ( ; aResIter.More(); aResIter.Next()) if (aPred->IsSatisfy(aResIter.Key())) diff --git a/src/SMESHGUI/SMESHGUI_FilterDlg.h b/src/SMESHGUI/SMESHGUI_FilterDlg.h index 65b955cfd..ace63067b 100755 --- a/src/SMESHGUI/SMESHGUI_FilterDlg.h +++ b/src/SMESHGUI/SMESHGUI_FilterDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx b/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx index 68947f4dc..c17dde1fa 100644 --- a/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h b/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h index a02dce22d..5b5af4fd0 100644 --- a/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h +++ b/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_FilterUtils.cxx b/src/SMESHGUI/SMESHGUI_FilterUtils.cxx index 184fde456..44ca767f1 100644 --- a/src/SMESHGUI/SMESHGUI_FilterUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_FilterUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_FilterUtils.h b/src/SMESHGUI/SMESHGUI_FilterUtils.h index 5c94da5f3..dd3103d35 100644 --- a/src/SMESHGUI/SMESHGUI_FilterUtils.h +++ b/src/SMESHGUI/SMESHGUI_FilterUtils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx b/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx index 329a587e8..891cd56a3 100644 --- a/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.h b/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.h index 3fd764ef2..09990407e 100644 --- a/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.h +++ b/src/SMESHGUI/SMESHGUI_FindElemByPointDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx b/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx index e1e017c9e..ead9da3c0 100644 --- a/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_GEOMGenUtils.h b/src/SMESHGUI/SMESHGUI_GEOMGenUtils.h index 09da53419..807c2576a 100644 --- a/src/SMESHGUI/SMESHGUI_GEOMGenUtils.h +++ b/src/SMESHGUI/SMESHGUI_GEOMGenUtils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_GroupDlg.cxx b/src/SMESHGUI/SMESHGUI_GroupDlg.cxx index 3bdf5d288..b98fffa40 100644 --- a/src/SMESHGUI/SMESHGUI_GroupDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -778,6 +778,7 @@ void SMESHGUI_GroupDlg::setSelectionMode (int theMode) if (mySelectionMode != theMode) { // [PAL10408] mySelectionMgr->clearSelected(); mySelectionMgr->clearFilters(); + SMESH::RemoveFilters(); if (myActorsList.count() > 0) for (QListIterator it( myActorsList ); it.hasNext(); ) diff --git a/src/SMESHGUI/SMESHGUI_GroupDlg.h b/src/SMESHGUI/SMESHGUI_GroupDlg.h index a7fb25f0d..2592f4dc4 100644 --- a/src/SMESHGUI/SMESHGUI_GroupDlg.h +++ b/src/SMESHGUI/SMESHGUI_GroupDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx b/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx index 783b6ccf0..2bfdd1bc9 100644 --- a/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h b/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h index 59e0f8960..8e5478974 100644 --- a/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h +++ b/src/SMESHGUI/SMESHGUI_GroupOnShapeDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx b/src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx index 080ebbc6f..8588a3c56 100644 --- a/src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -963,7 +963,7 @@ SMESHGUI_DimGroupDlg::SMESHGUI_DimGroupDlg( SMESHGUI* theModule ) : SMESHGUI_GroupOpDlg( theModule ) { setWindowTitle( tr( "CREATE_GROUP_OF_UNDERLYING_ELEMS" ) ); - setHelpFileName( "creating_groups_page.html#gui_create_dim_group" ); + setHelpFileName( "group_of_underlying_elements_page.html" ); QGroupBox* anArgGrp = getArgGrp(); diff --git a/src/SMESHGUI/SMESHGUI_GroupOpDlg.h b/src/SMESHGUI/SMESHGUI_GroupOpDlg.h index 91f840d72..ec3b4c2f5 100644 --- a/src/SMESHGUI/SMESHGUI_GroupOpDlg.h +++ b/src/SMESHGUI/SMESHGUI_GroupOpDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_GroupUtils.cxx b/src/SMESHGUI/SMESHGUI_GroupUtils.cxx index 6ecb0da06..093426cfd 100644 --- a/src/SMESHGUI/SMESHGUI_GroupUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_GroupUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_GroupUtils.h b/src/SMESHGUI/SMESHGUI_GroupUtils.h index 5369ec0b2..1ede5161b 100644 --- a/src/SMESHGUI/SMESHGUI_GroupUtils.h +++ b/src/SMESHGUI/SMESHGUI_GroupUtils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx index 2832c7afd..3d0baf890 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.h b/src/SMESHGUI/SMESHGUI_Hypotheses.h index d2cd29564..c15484b84 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.h +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx b/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx index da8e162c4..d7e3e6ce6 100644 --- a/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_HypothesesUtils.h b/src/SMESHGUI/SMESHGUI_HypothesesUtils.h index c003212fb..c1e485313 100644 --- a/src/SMESHGUI/SMESHGUI_HypothesesUtils.h +++ b/src/SMESHGUI/SMESHGUI_HypothesesUtils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_IdValidator.h b/src/SMESHGUI/SMESHGUI_IdValidator.h index 94a8b142a..b6b06db0b 100644 --- a/src/SMESHGUI/SMESHGUI_IdValidator.h +++ b/src/SMESHGUI/SMESHGUI_IdValidator.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.cxx b/src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.cxx index 624b32de9..8cdc5b0ec 100644 --- a/src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.cxx +++ b/src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.h b/src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.h index e0372955a..79ea60c42 100644 --- a/src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.h +++ b/src/SMESHGUI/SMESHGUI_Make2DFrom3DOp.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx b/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx index dcdb0e52c..8d36fe1b9 100644 --- a/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -324,6 +325,10 @@ SMESHGUI_MakeNodeAtPointOp::SMESHGUI_MakeNodeAtPointOp() connect(myDlg->myId,SIGNAL (textChanged(const QString&)),SLOT(redisplayPreview())); connect(myDlg->myPreviewChkBox, SIGNAL (toggled(bool)),SLOT(redisplayPreview())); connect(myDlg->myAutoSearchChkBox,SIGNAL (toggled(bool)),SLOT(redisplayPreview())); + + // IPAL22913: TC6.5.0: selected in "Move node" dialog box node is not highlighted + // note: this slot seems to be lost together with removed obsolete SMESHGUI_MoveNodesDlg class + connect(myDlg->myId,SIGNAL (textChanged(const QString&)),SLOT(onTextChange(const QString&))); } //======================================================================= @@ -717,6 +722,35 @@ void SMESHGUI_MakeNodeAtPointOp::redisplayPreview() myNoPreview = false; } +//================================================================================ +/*! + * \brief SLOT called when the node id is manually changed + */ +//================================================================================ + +void SMESHGUI_MakeNodeAtPointOp::onTextChange( const QString& theText ) +{ + if( myMeshActor ) + { + if( SMDS_Mesh* aMesh = myMeshActor->GetObject()->GetMesh() ) + { + Handle(SALOME_InteractiveObject) anIO = myMeshActor->getIO(); + SALOME_ListIO aList; + aList.Append( anIO ); + selectionMgr()->setSelectedObjects( aList, false ); + + if( const SMDS_MeshNode* aNode = aMesh->FindNode( theText.toInt() ) ) + { + TColStd_MapOfInteger aListInd; + aListInd.Add( aNode->GetID() ); + selector()->AddOrRemoveIndex( anIO, aListInd, false ); + if( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( SMESHGUI::GetSMESHGUI() ) ) + aViewWindow->highlight( anIO, true, true ); + } + } + } +} + //================================================================================ /*! * \brief Activate Node selection diff --git a/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.h b/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.h index 27cc87956..11bf1189c 100644 --- a/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.h +++ b/src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -68,6 +68,7 @@ protected slots: private slots: void onSelectionDone(); void redisplayPreview(); + void onTextChange( const QString& ); private: SMESHGUI_MakeNodeAtPointDlg* myDlg; diff --git a/src/SMESHGUI/SMESHGUI_Measurements.cxx b/src/SMESHGUI/SMESHGUI_Measurements.cxx index b63b43280..4e94217ed 100644 --- a/src/SMESHGUI/SMESHGUI_Measurements.cxx +++ b/src/SMESHGUI/SMESHGUI_Measurements.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Measurements.h b/src/SMESHGUI/SMESHGUI_Measurements.h index 1480217a7..3b5079fcb 100644 --- a/src/SMESHGUI/SMESHGUI_Measurements.h +++ b/src/SMESHGUI/SMESHGUI_Measurements.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MergeDlg.cxx b/src/SMESHGUI/SMESHGUI_MergeDlg.cxx index 9f5a486f8..7446b54b2 100644 --- a/src/SMESHGUI/SMESHGUI_MergeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MergeDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MergeDlg.h b/src/SMESHGUI/SMESHGUI_MergeDlg.h index 7bda0d249..dd9458d61 100644 --- a/src/SMESHGUI/SMESHGUI_MergeDlg.h +++ b/src/SMESHGUI/SMESHGUI_MergeDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshDlg.cxx b/src/SMESHGUI/SMESHGUI_MeshDlg.cxx index 450b8e154..beafb18b2 100644 --- a/src/SMESHGUI/SMESHGUI_MeshDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshDlg.h b/src/SMESHGUI/SMESHGUI_MeshDlg.h index b786f43db..212449ff9 100644 --- a/src/SMESHGUI/SMESHGUI_MeshDlg.h +++ b/src/SMESHGUI/SMESHGUI_MeshDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx b/src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx index 85ba45195..ac71ddbc4 100644 --- a/src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshEditPreview.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshEditPreview.h b/src/SMESHGUI/SMESHGUI_MeshEditPreview.h index c613c9e7c..4a0f840fe 100644 --- a/src/SMESHGUI/SMESHGUI_MeshEditPreview.h +++ b/src/SMESHGUI/SMESHGUI_MeshEditPreview.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshInfo.cxx b/src/SMESHGUI/SMESHGUI_MeshInfo.cxx index e76c6020b..95e214d31 100644 --- a/src/SMESHGUI/SMESHGUI_MeshInfo.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshInfo.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshInfo.h b/src/SMESHGUI/SMESHGUI_MeshInfo.h index a63e205cf..304af9da2 100644 --- a/src/SMESHGUI/SMESHGUI_MeshInfo.h +++ b/src/SMESHGUI/SMESHGUI_MeshInfo.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshInfosBox.cxx b/src/SMESHGUI/SMESHGUI_MeshInfosBox.cxx index 6a4d6b752..9f5060081 100644 --- a/src/SMESHGUI/SMESHGUI_MeshInfosBox.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshInfosBox.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_MeshInfosBox.h b/src/SMESHGUI/SMESHGUI_MeshInfosBox.h index 163b6410f..060fdcf1c 100644 --- a/src/SMESHGUI/SMESHGUI_MeshInfosBox.h +++ b/src/SMESHGUI/SMESHGUI_MeshInfosBox.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.cxx b/src/SMESHGUI/SMESHGUI_MeshOp.cxx index 13ce9224f..9ad1a47fc 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOp.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshOp.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.h b/src/SMESHGUI/SMESHGUI_MeshOp.h index 01fa88d6f..c7b11d437 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOp.h +++ b/src/SMESHGUI/SMESHGUI_MeshOp.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshOrderDlg.cxx b/src/SMESHGUI/SMESHGUI_MeshOrderDlg.cxx index 9a0606167..7b55ee575 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOrderDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshOrderDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_MeshOrderDlg.h b/src/SMESHGUI/SMESHGUI_MeshOrderDlg.h index 45ecfdc11..ec12055bb 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOrderDlg.h +++ b/src/SMESHGUI/SMESHGUI_MeshOrderDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_MeshOrderOp.cxx b/src/SMESHGUI/SMESHGUI_MeshOrderOp.cxx index 7004a2566..f2a138d1d 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOrderOp.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshOrderOp.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_MeshOrderOp.h b/src/SMESHGUI/SMESHGUI_MeshOrderOp.h index 6548e4bc2..f21e84842 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOrderOp.h +++ b/src/SMESHGUI/SMESHGUI_MeshOrderOp.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx b/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx index 91632bbfd..cfb1f0e64 100755 --- a/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshPatternDlg.h b/src/SMESHGUI/SMESHGUI_MeshPatternDlg.h index a6a0cea45..76e6aca77 100755 --- a/src/SMESHGUI/SMESHGUI_MeshPatternDlg.h +++ b/src/SMESHGUI/SMESHGUI_MeshPatternDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshUtils.cxx b/src/SMESHGUI/SMESHGUI_MeshUtils.cxx index 8b8a3bd25..13898d991 100644 --- a/src/SMESHGUI/SMESHGUI_MeshUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MeshUtils.h b/src/SMESHGUI/SMESHGUI_MeshUtils.h index 2f717ee61..1adbabccc 100644 --- a/src/SMESHGUI/SMESHGUI_MeshUtils.h +++ b/src/SMESHGUI/SMESHGUI_MeshUtils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx b/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx index aa26a3494..a12ca8fbe 100755 --- a/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -18,6 +18,7 @@ // 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 : SMESHGUI_MultiEditDlg.cxx // Author : Sergey LITONIN, Open CASCADE S.A.S. diff --git a/src/SMESHGUI/SMESHGUI_MultiEditDlg.h b/src/SMESHGUI/SMESHGUI_MultiEditDlg.h index b2a51910a..de9b0b67f 100755 --- a/src/SMESHGUI/SMESHGUI_MultiEditDlg.h +++ b/src/SMESHGUI/SMESHGUI_MultiEditDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_NodesDlg.cxx b/src/SMESHGUI/SMESHGUI_NodesDlg.cxx index c8cec8efc..3f369e790 100644 --- a/src/SMESHGUI/SMESHGUI_NodesDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_NodesDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_NodesDlg.h b/src/SMESHGUI/SMESHGUI_NodesDlg.h index 1159591b8..de2058f5a 100644 --- a/src/SMESHGUI/SMESHGUI_NodesDlg.h +++ b/src/SMESHGUI/SMESHGUI_NodesDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Operation.cxx b/src/SMESHGUI/SMESHGUI_Operation.cxx index f22d4d674..5646c7202 100755 --- a/src/SMESHGUI/SMESHGUI_Operation.cxx +++ b/src/SMESHGUI/SMESHGUI_Operation.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Operation.h b/src/SMESHGUI/SMESHGUI_Operation.h index 711149762..2bbad5c1f 100755 --- a/src/SMESHGUI/SMESHGUI_Operation.h +++ b/src/SMESHGUI/SMESHGUI_Operation.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_PatternUtils.cxx b/src/SMESHGUI/SMESHGUI_PatternUtils.cxx index b7a094746..349314182 100644 --- a/src/SMESHGUI/SMESHGUI_PatternUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_PatternUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_PatternUtils.h b/src/SMESHGUI/SMESHGUI_PatternUtils.h index 51cb5115b..a455061c6 100644 --- a/src/SMESHGUI/SMESHGUI_PatternUtils.h +++ b/src/SMESHGUI/SMESHGUI_PatternUtils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_PatternWidget.cxx b/src/SMESHGUI/SMESHGUI_PatternWidget.cxx index f3992193e..f3483ba25 100644 --- a/src/SMESHGUI/SMESHGUI_PatternWidget.cxx +++ b/src/SMESHGUI/SMESHGUI_PatternWidget.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_PatternWidget.h b/src/SMESHGUI/SMESHGUI_PatternWidget.h index 75a99e870..82ffdeea9 100644 --- a/src/SMESHGUI/SMESHGUI_PatternWidget.h +++ b/src/SMESHGUI/SMESHGUI_PatternWidget.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx b/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx index e25039f6e..b1112f712 100644 --- a/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -66,7 +66,7 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul mySMESHGUI( theModule ) { setModal( true ); - setWindowTitle( tr( "Properties (color, line width, shrink size, ...)" ) ); + setWindowTitle( tr( "DIALOG_TITLE" ) ); setSizeGripEnabled( true ); // ------------------------------- @@ -75,26 +75,26 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul topLayout->setMargin( MARGIN ); // ------------------------------- - QGroupBox* ButtonGroup1 = new QGroupBox( tr( "Elements" ), this ); + QGroupBox* ButtonGroup1 = new QGroupBox( tr( "GRP_ELEMENTS" ), this ); QGridLayout* ButtonGroup1Layout = new QGridLayout( ButtonGroup1 ); ButtonGroup1Layout->setSpacing( SPACING ); ButtonGroup1Layout->setMargin( MARGIN ); - QLabel* TextLabel_Fill = new QLabel( tr( "Surface color" ), ButtonGroup1 ); + QLabel* TextLabel_Fill = new QLabel( tr( "SURFACE_COLOR_LBL" ), ButtonGroup1 ); toolSurfColor = new QtxBiColorTool(ButtonGroup1); - toolSurfColor->setText( tr( "Back surface color" )); + toolSurfColor->setText( tr( "BACKSURFACE_COLOR_LBL" )); - QLabel* TextLabel_Outline = new QLabel( tr( "Outline color" ), ButtonGroup1 ); + QLabel* TextLabel_Outline = new QLabel( tr( "OUTLINE_COLOR_LBL" ), ButtonGroup1 ); btnOutlineColor = new QtxColorButton( ButtonGroup1 ); - QLabel* TextLabel_Wireframe = new QLabel( tr( "Wireframe color" ), ButtonGroup1 ); + QLabel* TextLabel_Wireframe = new QLabel( tr( "WIREFRAME_COLOR_LBL" ), ButtonGroup1 ); btnWireframeColor = new QtxColorButton( ButtonGroup1 ); - QLabel* TextLabel_0DElements_Color = new QLabel( tr( "0D elements" ), ButtonGroup1 ); + QLabel* TextLabel_0DElements_Color = new QLabel( tr( "0D_ELEMENTS_COLOR_LBL" ), ButtonGroup1 ); btn0DElementsColor = new QtxColorButton( ButtonGroup1 ); - QLabel* TextLabel_0DElements_Size = new QLabel( tr( "Size of 0D elements" ), ButtonGroup1 ); + QLabel* TextLabel_0DElements_Size = new QLabel( tr( "0D_ELEMENTS_SIZE_LBL" ), ButtonGroup1 ); SpinBox_0DElements_Size = new SalomeApp_IntSpinBox( ButtonGroup1 ); SpinBox_0DElements_Size->setAcceptNames( false ); // No Notebook variables allowed SpinBox_0DElements_Size->setRange( 1, 10 ); @@ -102,7 +102,7 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul SpinBox_0DElements_Size->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); SpinBox_0DElements_Size->setButtonSymbols( QSpinBox::PlusMinus ); - QLabel* TextLabel_Width = new QLabel( tr( "Line width" ), ButtonGroup1 ); + QLabel* TextLabel_Width = new QLabel( tr( "LINE_WIDTH_LBL" ), ButtonGroup1 ); SpinBox_Width = new SalomeApp_IntSpinBox( ButtonGroup1 ); SpinBox_Width->setAcceptNames( false ); // No Notebook variables allowed SpinBox_Width->setRange( 1, 5 ); @@ -110,7 +110,7 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul SpinBox_Width->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); SpinBox_Width->setButtonSymbols( QSpinBox::PlusMinus ); - QLabel* TextLabel_ShrinkCoeff = new QLabel( tr( "Shrink coef." ), ButtonGroup1 ); + QLabel* TextLabel_ShrinkCoeff = new QLabel( tr( "SHRINK_COEF_LBL" ), ButtonGroup1 ); SpinBox_Shrink = new SalomeApp_IntSpinBox( ButtonGroup1 ); SpinBox_Shrink->setAcceptNames( false ); // No Notebook variables allowed SpinBox_Shrink->setRange( 20, 100 ); @@ -138,15 +138,15 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul ButtonGroup1Layout->addWidget( SpinBox_Shrink, 3, 3 ); // ------------------------------- - QGroupBox* ButtonGroup2 = new QGroupBox( tr( "Nodes" ), this ); + QGroupBox* ButtonGroup2 = new QGroupBox( tr( "GRP_NODES" ), this ); QGridLayout* ButtonGroup2Layout = new QGridLayout( ButtonGroup2 ); ButtonGroup2Layout->setSpacing( SPACING ); ButtonGroup2Layout->setMargin( MARGIN ); - QLabel* TextLabel_Nodes_Color = new QLabel( tr( "Color" ), ButtonGroup2 ); + QLabel* TextLabel_Nodes_Color = new QLabel( tr( "NODES_COLOR_LBL" ), ButtonGroup2 ); btnNodeColor = new QtxColorButton( ButtonGroup2 ); - QGroupBox* MarkerGroup = new QGroupBox( tr( "Marker" ), ButtonGroup2 ); + QGroupBox* MarkerGroup = new QGroupBox( tr( "NODES_MARKER_LBL" ), ButtonGroup2 ); QVBoxLayout* MarkerGroupLayout = new QVBoxLayout( MarkerGroup ); MarkerGroupLayout->setSpacing( 0 ); MarkerGroupLayout->setMargin( 0 ); @@ -161,22 +161,22 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul ButtonGroup2Layout->setColumnStretch( 2, 1 ); // ------------------------------- - QGroupBox* ButtonGroup3 = new QGroupBox( tr( "Orientation of faces" ), this ); + QGroupBox* ButtonGroup3 = new QGroupBox( tr( "GRP_ORIENTATION" ), this ); QGridLayout* ButtonGroup3Layout = new QGridLayout( ButtonGroup3 ); ButtonGroup3Layout->setSpacing( SPACING ); ButtonGroup3Layout->setMargin( MARGIN ); - QLabel* TextLabel_Orientation_Color = new QLabel( tr( "Color" ), ButtonGroup3 ); + QLabel* TextLabel_Orientation_Color = new QLabel( tr( "ORIENTATION_COLOR_LBL" ), ButtonGroup3 ); btnOrientationColor = new QtxColorButton( ButtonGroup3 ); - QLabel* TextLabel_Orientation_Scale = new QLabel( tr( "Scale" ), ButtonGroup3 ); + QLabel* TextLabel_Orientation_Scale = new QLabel( tr( "ORIENTATION_SCALE_LBL" ), ButtonGroup3 ); SpinBox_Orientation_Scale = new SMESHGUI_SpinBox( ButtonGroup3 ); SpinBox_Orientation_Scale->setAcceptNames( false ); // No Notebook variables allowed SpinBox_Orientation_Scale->RangeStepAndValidator( .05, .5, .05, "parametric_precision" ); SpinBox_Orientation_Scale->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); SpinBox_Orientation_Scale->setButtonSymbols( QSpinBox::PlusMinus ); - CheckBox_Orientation_3DVectors = new QCheckBox( tr( "3D vectors" ), ButtonGroup3 ); + CheckBox_Orientation_3DVectors = new QCheckBox( tr( "3D_VECTORS_LBL" ), ButtonGroup3 ); ButtonGroup3Layout->addWidget( TextLabel_Orientation_Color, 0, 0 ); ButtonGroup3Layout->addWidget( btnOrientationColor, 0, 1 ); @@ -185,15 +185,15 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul ButtonGroup3Layout->addWidget( CheckBox_Orientation_3DVectors, 1, 0, 1, 4 ); // ------------------------------- - QGroupBox* ButtonGroup4 = new QGroupBox( tr( "Selection" ), this ); + QGroupBox* ButtonGroup4 = new QGroupBox( tr( "GRP_SELECTION" ), this ); QGridLayout* ButtonGroup4Layout = new QGridLayout( ButtonGroup4 ); ButtonGroup3Layout->setSpacing( SPACING ); ButtonGroup3Layout->setMargin( MARGIN ); - QLabel* TextLabel_Selection_Color = new QLabel( tr( "Selection color" ), ButtonGroup4 ); + QLabel* TextLabel_Selection_Color = new QLabel( tr( "SELECTION_COLOR_LBL" ), ButtonGroup4 ); btnSelectionColor = new QtxColorButton( ButtonGroup4 ); - QLabel* TextLabel_Preselection_Color = new QLabel( tr( "Pre-selection color" ), ButtonGroup4 ); + QLabel* TextLabel_Preselection_Color = new QLabel( tr( "PRESELECTION_COLOR_LBL" ), ButtonGroup4 ); btnPreselectionColor = new QtxColorButton( ButtonGroup4 ); ButtonGroup4Layout->addWidget( TextLabel_Selection_Color, 0, 0 ); @@ -207,14 +207,14 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul GroupButtonsLayout->setSpacing( SPACING ); GroupButtonsLayout->setMargin( MARGIN ); - QPushButton* buttonOk = new QPushButton( tr( "&OK" ), GroupButtons ); + QPushButton* buttonOk = new QPushButton( tr( "SMESH_BUT_OK" ), GroupButtons ); buttonOk->setAutoDefault( true ); buttonOk->setDefault( true ); - QPushButton* buttonCancel = new QPushButton( tr( "&Cancel" ), GroupButtons ); + QPushButton* buttonCancel = new QPushButton( tr( "SMESH_BUT_CANCEL" ), GroupButtons ); buttonCancel->setAutoDefault( true ); - QPushButton* buttonHelp = new QPushButton( tr( "&Help" ), GroupButtons ); + QPushButton* buttonHelp = new QPushButton( tr( "SMESH_BUT_HELP" ), GroupButtons ); buttonHelp->setAutoDefault( true ); GroupButtonsLayout->addWidget( buttonOk ); diff --git a/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h b/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h index b2675314b..69d3440f7 100644 --- a/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h +++ b/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx b/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx index 083fffa77..7f0a861ae 100644 --- a/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h b/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h index 589260bc2..804b4aa6a 100644 --- a/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h +++ b/src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_PreviewDlg.cxx b/src/SMESHGUI/SMESHGUI_PreviewDlg.cxx index f4ad9d468..0a9bf6842 100644 --- a/src/SMESHGUI/SMESHGUI_PreviewDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_PreviewDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_PreviewDlg.h b/src/SMESHGUI/SMESHGUI_PreviewDlg.h index 08ec65bca..f4731149f 100644 --- a/src/SMESHGUI/SMESHGUI_PreviewDlg.h +++ b/src/SMESHGUI/SMESHGUI_PreviewDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.cxx b/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.cxx index f689b4605..f16f568fe 100644 --- a/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h b/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h index 0a8d9e6cc..6cc8d5ae4 100644 --- a/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h +++ b/src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.cxx b/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.cxx index fa91e11c1..303aee6f6 100644 --- a/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h b/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h index 53698d80d..75a7afed3 100644 --- a/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h +++ b/src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx b/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx index 5fa5273d1..278fe0b96 100644 --- a/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_RenumberingDlg.h b/src/SMESHGUI/SMESHGUI_RenumberingDlg.h index 0d1a8cfaa..5ebbe6ca3 100644 --- a/src/SMESHGUI/SMESHGUI_RenumberingDlg.h +++ b/src/SMESHGUI/SMESHGUI_RenumberingDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx b/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx index 7fddebc36..2d198bb68 100644 --- a/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -18,6 +18,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // SMESH SMESHGUI : GUI for SMESH component // File : SMESHGUI_RevolutionDlg.cxx diff --git a/src/SMESHGUI/SMESHGUI_RevolutionDlg.h b/src/SMESHGUI/SMESHGUI_RevolutionDlg.h index e70b68c78..91d1e4268 100644 --- a/src/SMESHGUI/SMESHGUI_RevolutionDlg.h +++ b/src/SMESHGUI/SMESHGUI_RevolutionDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_RotationDlg.cxx b/src/SMESHGUI/SMESHGUI_RotationDlg.cxx index a4a4f87f2..f257c3c87 100644 --- a/src/SMESHGUI/SMESHGUI_RotationDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_RotationDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_RotationDlg.h b/src/SMESHGUI/SMESHGUI_RotationDlg.h index 6c38ef0da..a4e6b4af2 100644 --- a/src/SMESHGUI/SMESHGUI_RotationDlg.h +++ b/src/SMESHGUI/SMESHGUI_RotationDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx b/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx index 1fa454e71..1e3cd9f95 100644 --- a/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ScaleDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_ScaleDlg.h b/src/SMESHGUI/SMESHGUI_ScaleDlg.h index 6b30b7a68..7293a99e7 100644 --- a/src/SMESHGUI/SMESHGUI_ScaleDlg.h +++ b/src/SMESHGUI/SMESHGUI_ScaleDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHGUI/SMESHGUI_Selection.cxx b/src/SMESHGUI/SMESHGUI_Selection.cxx index 66e34ce13..ba4183ac5 100644 --- a/src/SMESHGUI/SMESHGUI_Selection.cxx +++ b/src/SMESHGUI/SMESHGUI_Selection.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Selection.h b/src/SMESHGUI/SMESHGUI_Selection.h index f2b4bc09c..82293358c 100644 --- a/src/SMESHGUI/SMESHGUI_Selection.h +++ b/src/SMESHGUI/SMESHGUI_Selection.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SelectionOp.cxx b/src/SMESHGUI/SMESHGUI_SelectionOp.cxx index c559ebd3a..7e4039a3a 100644 --- a/src/SMESHGUI/SMESHGUI_SelectionOp.cxx +++ b/src/SMESHGUI/SMESHGUI_SelectionOp.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SelectionOp.h b/src/SMESHGUI/SMESHGUI_SelectionOp.h index cda82b0e6..874bcea22 100644 --- a/src/SMESHGUI/SMESHGUI_SelectionOp.h +++ b/src/SMESHGUI/SMESHGUI_SelectionOp.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SewingDlg.cxx b/src/SMESHGUI/SMESHGUI_SewingDlg.cxx index a4f1f3713..24d85f012 100644 --- a/src/SMESHGUI/SMESHGUI_SewingDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_SewingDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SewingDlg.h b/src/SMESHGUI/SMESHGUI_SewingDlg.h index 63958181b..f8ff617d0 100644 --- a/src/SMESHGUI/SMESHGUI_SewingDlg.h +++ b/src/SMESHGUI/SMESHGUI_SewingDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.cxx b/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.cxx index bd104395b..940dd4f3e 100644 --- a/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h b/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h index cc72433f3..63477e34c 100644 --- a/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h +++ b/src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx b/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx index 4cda4a4df..f93ce9556 100755 --- a/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SingleEditDlg.h b/src/SMESHGUI/SMESHGUI_SingleEditDlg.h index 7c2b4ce5a..cc04610ac 100755 --- a/src/SMESHGUI/SMESHGUI_SingleEditDlg.h +++ b/src/SMESHGUI/SMESHGUI_SingleEditDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx b/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx index 161bb7125..2eb9b521e 100644 --- a/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SmoothingDlg.h b/src/SMESHGUI/SMESHGUI_SmoothingDlg.h index 7d6edb556..efb9723a6 100644 --- a/src/SMESHGUI/SMESHGUI_SmoothingDlg.h +++ b/src/SMESHGUI/SMESHGUI_SmoothingDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SpinBox.cxx b/src/SMESHGUI/SMESHGUI_SpinBox.cxx index 4b1e165f0..cda1357f0 100644 --- a/src/SMESHGUI/SMESHGUI_SpinBox.cxx +++ b/src/SMESHGUI/SMESHGUI_SpinBox.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SpinBox.h b/src/SMESHGUI/SMESHGUI_SpinBox.h index 89f9cdb40..d12cd6560 100644 --- a/src/SMESHGUI/SMESHGUI_SpinBox.h +++ b/src/SMESHGUI/SMESHGUI_SpinBox.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx b/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx index f3ec2df0d..5f4b1e206 100644 --- a/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_SymmetryDlg.h b/src/SMESHGUI/SMESHGUI_SymmetryDlg.h index 3b11c048b..a039ac27f 100644 --- a/src/SMESHGUI/SMESHGUI_SymmetryDlg.h +++ b/src/SMESHGUI/SMESHGUI_SymmetryDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx b/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx index efc2a0a23..31ff3a796 100644 --- a/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_TranslationDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_TranslationDlg.h b/src/SMESHGUI/SMESHGUI_TranslationDlg.h index 2afeb15c9..2c7294378 100644 --- a/src/SMESHGUI/SMESHGUI_TranslationDlg.h +++ b/src/SMESHGUI/SMESHGUI_TranslationDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx b/src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx index 9c74121db..a279d0be4 100644 --- a/src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_TransparencyDlg.h b/src/SMESHGUI/SMESHGUI_TransparencyDlg.h index 27f33cf72..7659b59cc 100644 --- a/src/SMESHGUI/SMESHGUI_TransparencyDlg.h +++ b/src/SMESHGUI/SMESHGUI_TransparencyDlg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Utils.cxx b/src/SMESHGUI/SMESHGUI_Utils.cxx index e3c3dac93..94ef5c93b 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.cxx +++ b/src/SMESHGUI/SMESHGUI_Utils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_Utils.h b/src/SMESHGUI/SMESHGUI_Utils.h index b4f31919d..c813e1078 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.h +++ b/src/SMESHGUI/SMESHGUI_Utils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_VTKUtils.cxx b/src/SMESHGUI/SMESHGUI_VTKUtils.cxx index 4c9ac89fe..59fefb331 100644 --- a/src/SMESHGUI/SMESHGUI_VTKUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_VTKUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_VTKUtils.h b/src/SMESHGUI/SMESHGUI_VTKUtils.h index 263488e73..94d69a9cd 100644 --- a/src/SMESHGUI/SMESHGUI_VTKUtils.h +++ b/src/SMESHGUI/SMESHGUI_VTKUtils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_XmlHandler.cxx b/src/SMESHGUI/SMESHGUI_XmlHandler.cxx index 69b68ddbe..d02d9cd02 100644 --- a/src/SMESHGUI/SMESHGUI_XmlHandler.cxx +++ b/src/SMESHGUI/SMESHGUI_XmlHandler.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESHGUI_XmlHandler.h b/src/SMESHGUI/SMESHGUI_XmlHandler.h index 8adc03d3d..813938ddf 100644 --- a/src/SMESHGUI/SMESHGUI_XmlHandler.h +++ b/src/SMESHGUI/SMESHGUI_XmlHandler.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESH_SMESHGUI.hxx b/src/SMESHGUI/SMESH_SMESHGUI.hxx index 9ec3b8389..62d860960 100755 --- a/src/SMESHGUI/SMESH_SMESHGUI.hxx +++ b/src/SMESHGUI/SMESH_SMESHGUI.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHGUI/SMESH_msg_en.ts b/src/SMESHGUI/SMESH_msg_en.ts index d234496eb..73fbcf50b 100644 --- a/src/SMESHGUI/SMESH_msg_en.ts +++ b/src/SMESHGUI/SMESH_msg_en.ts @@ -287,6 +287,10 @@ MEN_CUT_GROUP Cut Groups + + MEN_IMPORT_DAT + DAT File + MEN_DAT DAT File @@ -555,14 +559,26 @@ MEN_MAX_ELEMENT_LENGTH_3D Element Diameter 3D + + MEN_IMPORT_MED + MED file + MEN_MED MED file + + MEN_IMPORT_CGNS + CGNS file + MEN_CGNS CGNS file + + MEN_IMPORT_SAUV + SAUV file + MEN_SAUV SAUV file @@ -819,6 +835,10 @@ MEN_STD_INFO Standard Mesh Infos + + MEN_IMPORT_STL + STL File + MEN_STL STL File @@ -875,6 +895,10 @@ MEN_UNION2 Union of Two Triangles + + MEN_IMPORT_UNV + UNV File + MEN_UNV UNV File @@ -1966,6 +1990,10 @@ Check algorithm documentation for supported geometry MEN_OCTA Hexagonal prism + + STB_OCTA + Hexagonal prism + SMESH_ORIENTATION Orientation @@ -1994,6 +2022,10 @@ Check algorithm documentation for supported geometry MEN_PENTA Pentahedron + + STB_PENTA + Pentahedron + SMESH_PLANE Plane @@ -2074,6 +2106,10 @@ Check algorithm documentation for supported geometry TOP_PYRAMID Pyramid + + STB_PYRAMID + Pyramid + SMESH_QUADRANGLE Quadrangle @@ -2098,6 +2134,10 @@ Check algorithm documentation for supported geometry MEN_TRIQUADRATIC_HEXAHEDRON TriQuadratic Hexahedron + + STB_TRIQUADRATIC_HEXAHEDRON + TriQuadratic Hexahedron + SMESH_QUADRATIC_PENTAHEDRON Quadratic Pentahedron @@ -2122,6 +2162,10 @@ Check algorithm documentation for supported geometry TOP_BIQUADRATIC_QUADRANGLE BiQuadratic Quadrangle + + STB_BIQUADRATIC_QUADRANGLE + BiQuadratic Quadrangle + SMESH_QUADRATIC_TETRAHEDRON Quadratic Tetrahedron @@ -2541,7 +2585,7 @@ Please check preferences of Mesh module. STB_CREATE_GEO_GROUP - Create Groups from Geometry + Create Group from Geometry STB_CREATE_MESH @@ -2561,6 +2605,10 @@ Please check preferences of Mesh module. STB_DAT + Export DAT file + + + STB_IMPORT_DAT Import DAT file @@ -2728,13 +2776,37 @@ Please check preferences of Mesh module. Element Diameter 3D - STB_MED + STB_IMPORT_MED Import MED file - STB_SAUV + STB_MED + Export MED file + + + STB_IMPORT_STL + Import STL file + + + STB_STL + Export STL file + + + STB_IMPORT_CGNS + Import CGNS file + + + STB_CGNS + Export CGNS file + + + STB_IMPORT_SAUV Import SAUV file + + STB_SAUV + Export SAUV file + STB_MERGE Merge nodes @@ -2952,9 +3024,13 @@ Please check preferences of Mesh module. Union of two triangles - STB_UNV + STB_IMPORT_UNV Import UNV file + + STB_UNV + Export UNV file + STB_UN_GROUP Union Groups @@ -3120,9 +3196,13 @@ Please check preferences of Mesh module. Cut Groups - TOP_DAT + TOP_IMPORT_DAT Import DAT file + + TOP_DAT + Export DAT file + TOP_DELETE Delete @@ -3284,13 +3364,37 @@ Please check preferences of Mesh module. Element Diameter 3D - TOP_MED + TOP_IMPORT_MED Import MED file - TOP_SAUV + TOP_MED + Export MED file + + + TOP_IMPORT_STL + Import STL file + + + TOP_STL + Export STL file + + + TOP_IMPORT_CGNS + Import CGNS file + + + TOP_CGNS + Export CGNS file + + + TOP_IMPORT_SAUV Import SAUV file + + TOP_SAUV + Export SAUV file + TOP_MERGE Merge nodes @@ -3508,9 +3612,13 @@ Please check preferences of Mesh module. Union of two triangles - TOP_UNV + TOP_IMPORT_UNV Import UNV file + + TOP_UNV + Export UNV file + TOP_UN_GROUP Union Groups @@ -3665,6 +3773,11 @@ Input value precision can be adjusted using MESH_LOADING_MSG_FINISHED Mesh %0 loading done + + DEP_OBJECT + Selected object has been used to create another one. +It can't be deleted + SMESHGUI_GroupDlg @@ -6472,4 +6585,87 @@ as they are of improper type: %1-%2 from %3 items shown + + SMESHGUI_Preferences_ColorDlg + + DIALOG_TITLE + Properties (color, line width, shrink size, ...) + + + GRP_ELEMENTS + Elements + + + SURFACE_COLOR_LBL + Surface color + + + BACKSURFACE_COLOR_LBL + Back surface color + + + OUTLINE_COLOR_LBL + Outline color + + + WIREFRAME_COLOR_LBL + Wireframe color + + + 0D_ELEMENTS_COLOR_LBL + 0D elements + + + 0D_ELEMENTS_SIZE_LBL + Size of 0D elements + + + LINE_WIDTH_LBL + Line width + + + SHRINK_COEF_LBL + Shrink coef. + + + GRP_NODES + Nodes + + + NODES_COLOR_LBL + Color + + + NODES_MARKER_LBL + Marker + + + GRP_ORIENTATION + Orientation of faces + + + ORIENTATION_COLOR_LBL + Color + + + ORIENTATION_SCALE_LBL + Scale + + + 3D_VECTORS_LBL + 3D vectors + + + GRP_SELECTION + Selection + + + SELECTION_COLOR_LBL + Selection color + + + PRESELECTION_COLOR_LBL + Pre-selection color + + diff --git a/src/SMESHGUI/SMESH_msg_fr.ts b/src/SMESHGUI/SMESH_msg_fr.ts index 308326c03..25b41f62c 100755 --- a/src/SMESHGUI/SMESH_msg_fr.ts +++ b/src/SMESHGUI/SMESH_msg_fr.ts @@ -221,11 +221,11 @@ MEN_CONNECTION - Frontières sur connections multiples + Frontières sur connexions multiples MEN_CONNECTION_2D - Frontières sur connections multiples 2D + Frontières sur connexions multiples 2D MEN_CONSTRUCT_GROUP @@ -249,7 +249,7 @@ MEN_CREATE_GEO_GROUP - Créer les groupes à partir de la géométrie + Créer des groupes à partir de la géométrie MEN_CREATE_MESH @@ -287,6 +287,10 @@ MEN_CUT_GROUP Découpe des groupes + + MEN_IMPORT_DAT + Fichier DAT + MEN_DAT Fichier DAT @@ -555,14 +559,26 @@ MEN_MAX_ELEMENT_LENGTH_3D Diamètre des éléments 3D + + MEN_IMPORT_MED + Fichier MED + MEN_MED Fichier MED + + MEN_IMPORT_CGNS + Fichier CGNS + MEN_CGNS Fichier CGNS + + MEN_IMPORT_SAUV + Fichier SAUV (ASCII) + MEN_SAUV Fichier SAUV (ASCII) @@ -601,11 +617,11 @@ STB_MEASURE_MIN_DIST - Calculate minimum distance between two objects + Calcule la distance minimum entre deux objets TOP_MEASURE_MIN_DIST - Minimum distance + Distance minimum MEN_MEASURE_BND_BOX @@ -613,11 +629,11 @@ STB_MEASURE_BND_BOX - Calculate bounding box for the selected object(s) + Calcule la boîte englobante pour le(s) objet(s) sélectionné(s) TOP_MEASURE_BND_BOX - Bounding box + Boîte englobante MEN_MOVE @@ -689,7 +705,7 @@ MEN_QUADRATIC_TETRAHEDRON - Tetraèdre quadratique + Tétraèdre quadratique MEN_QUADRATIC_TRIANGLE @@ -801,7 +817,7 @@ MEN_SHOW - Visualiser + Afficher MEN_SHRINK @@ -819,6 +835,10 @@ MEN_STD_INFO Informations sur le maillage + + MEN_IMPORT_STL + Fichier STL + MEN_STL Fichier STL @@ -875,6 +895,10 @@ MEN_UNION2 Union de deux triangles + + MEN_IMPORT_UNV + Fichier UNV + MEN_UNV Fichier UNV @@ -927,78 +951,6 @@ STB_SPLIT_TO_TETRA Eclater en tétraèdres - - Properties (color, line width, shrink size, ...) - Propriétés (couleur, épaisseur des traits, taille des éléments réduits, ...) - - - Elements - Eléments - - - Surface color - Couleur de surface - - - Back surface color - Couleur arrière - - - Outline color - Couleur de contour - - - Wireframe color - Couleur en mode fil de fer - - - 0D elements - Eléments 0D - - - Size of 0D elements - Taille des éléments 0D - - - Line width - Epaisseur des traits - - - Shrink coef. - Coef. de contraction - - - Nodes - Nœuds - - - Color - Couleur - - - Marker - Marqueur - - - Orientation of faces - Orientation des faces - - - Scale - Facteur d'échelle - - - 3D vectors - Vecteurs 3D - - - &Cancel - &Annuler - - - &Help - Ai&de - MESHERS_FILE_CANT_OPEN Impossible d'ouvrir le fichier de ressource @@ -1030,11 +982,11 @@ Choisissez un maillage et essayez de nouveau MULTI2D_BORDERS - Frontières sur multi-connections 2D + Frontières sur multi-connexions 2D MULTI_BORDERS - Frontières sur multi-connections + Frontières sur multi-connexions GROUP_NAME_IS_EMPTY @@ -1097,7 +1049,7 @@ Merci de les corriger, puis essayez de nouveau SMESH_ADD_HEXAS_TITLE - Ajouter un hexahèdre + Ajouter un hexaèdre SMESH_ADD_HYPOTHESIS @@ -1105,7 +1057,7 @@ Merci de les corriger, puis essayez de nouveau SMESH_ADD_HYPOTHESIS_TITLE - Attrbution d'une hypothèse + Attribution d'une hypothèse SMESH_ADD_HYP_WRN @@ -1397,7 +1349,7 @@ ce qui peut faire planter l'application. Voulez-vous continuer la visualisa SMESH_CREATE_GEO_GROUP - Créer les groupes liés à la géométrie + Créer des groupes liés à la géométrie SMESH_CREATE_HYPOTHESES @@ -1928,7 +1880,7 @@ Référez-vous à la documentation sur l'algorithme et la géométrie suppo SMESH_MESHINFO_TETRAS - Tetraèdres + Tétraèdres SMESH_MESHINFO_TITLE @@ -2028,15 +1980,19 @@ Référez-vous à la documentation sur l'algorithme et la géométrie suppo SMESH_OCTA - Prisme héxagonal + Prisme hexagonal TOP_OCTA - Prisme héxagonal + Prisme hexagonal MEN_OCTA - Prisme héxagonal + Prisme hexagonal + + + STB_OCTA + Prisme hexagonal SMESH_ORIENTATION @@ -2056,15 +2012,19 @@ Référez-vous à la documentation sur l'algorithme et la géométrie suppo SMESH_PENTA - Pentahèdre + Pentaèdre TOP_PENTA - Pentahèdre + Pentaèdre MEN_PENTA - Pentahèdre + Pentaèdre + + + STB_PENTA + Pentaèdre SMESH_PLANE @@ -2132,7 +2092,7 @@ Référez-vous à la documentation sur l'algorithme et la géométrie suppo SMESH_PROPERTIES_SCALARBAR - Proprétés de la barre d'échelle + Propriétés de la barre d'échelle SMESH_PYRAMID @@ -2146,6 +2106,10 @@ Référez-vous à la documentation sur l'algorithme et la géométrie suppo TOP_PYRAMID Pyramide + + STB_PYRAMID + Pyramide + SMESH_QUADRANGLE Quadrangle @@ -2170,6 +2134,10 @@ Référez-vous à la documentation sur l'algorithme et la géométrie suppo MEN_TRIQUADRATIC_HEXAHEDRON Hexaèdre triquadratique + + STB_TRIQUADRATIC_HEXAHEDRON + Hexaèdre triquadratique + SMESH_QUADRATIC_PENTAHEDRON Pentaèdre quadratique @@ -2194,9 +2162,13 @@ Référez-vous à la documentation sur l'algorithme et la géométrie suppo TOP_BIQUADRATIC_QUADRANGLE Quadrangle biquadratique + + STB_BIQUADRATIC_QUADRANGLE + Quadrangle biquadratique + SMESH_QUADRATIC_TETRAHEDRON - Tetraèdre quadratique + Tétraèdre quadratique SMESH_QUADRATIC_TRIANGLE @@ -2529,7 +2501,7 @@ Vérifiez la limite dans les préférences du module Mesh. STB_ADV_INFO - Monter l'Information de base sur le maillage + Monter l'information de base sur le maillage STB_ALL @@ -2585,11 +2557,11 @@ Vérifiez la limite dans les préférences du module Mesh. STB_CONNECTION - Frontières sur connection multiples + Frontières sur connexion multiples STB_CONNECTION_2D - Frontières sur connection multiples 2D + Frontières sur connexion multiples 2D STB_CONSTRUCT_GROUP @@ -2613,7 +2585,7 @@ Vérifiez la limite dans les préférences du module Mesh. STB_CREATE_GEO_GROUP - Créer les groupes à partir de la géométrie + Créer des groupes à partir de la géométrie STB_CREATE_MESH @@ -2632,9 +2604,13 @@ Vérifiez la limite dans les préférences du module Mesh. Découper les groupes - STB_DAT + STB_IMPORT_DAT Importer un fichier DAT + + STB_DAT + Exporter un fichier DAT + STB_DELETE Supprimer @@ -2800,13 +2776,37 @@ Vérifiez la limite dans les préférences du module Mesh. Diamètre de l'élément 3D - STB_MED + STB_IMPORT_MED Importer un fichier MED - STB_SAUV + STB_MED + Exporter un fichier MED + + + STB_IMPORT_STL + Importer un fichier STL + + + STB_STL + Exporter un fichier STL + + + STB_IMPORT_CGNS + Importer un fichier CGNS + + + STB_CGNS + Exporter un fichier CGNS + + + STB_IMPORT_SAUV Importer un fichier SAUV (ASCII) + + STB_SAUV + Exporter un fichier SAUV (ASCII) + STB_MERGE Fusionner les nœuds @@ -2961,7 +2961,7 @@ Vérifiez la limite dans les préférences du module Mesh. STB_SHOW - Visualiser + Afficher STB_SHRINK @@ -3024,9 +3024,13 @@ Vérifiez la limite dans les préférences du module Mesh. Union de deux triangles - STB_UNV + STB_IMPORT_UNV Importer un fichier UNV + + STB_UNV + Exporter un fichier UNV + STB_UN_GROUP Union des groupes @@ -3145,11 +3149,11 @@ Vérifiez la limite dans les préférences du module Mesh. TOP_CONNECTION - Frontières sur connections multiples + Frontières sur connexions multiples TOP_CONNECTION_2D - Frontières sur connections multiples 2D + Frontières sur connexions multiples 2D TOP_CONSTRUCT_GROUP @@ -3173,7 +3177,7 @@ Vérifiez la limite dans les préférences du module Mesh. TOP_CREATE_GEO_GROUP - Créer les groupes liés à la géométrie + Créer des groupes liés à la géométrie TOP_CREATE_MESH @@ -3192,9 +3196,13 @@ Vérifiez la limite dans les préférences du module Mesh. Découper les groupes - TOP_DAT + TOP_IMPORT_DAT Importer un fichier DAT + + TOP_DAT + Exporter un fichier DAT + TOP_DELETE Supprimer @@ -3356,13 +3364,37 @@ Vérifiez la limite dans les préférences du module Mesh. Diamètre des éléments 3D - TOP_MED + TOP_IMPORT_MED Importer un fichier MED - TOP_SAUV + TOP_MED + Exporter un fichier MED + + + TOP_IMPORT_STL + Importer un fichier STL + + + TOP_STL + Exporter un fichier STL + + + TOP_IMPORT_CGNS + Importer un fichier CGNS + + + TOP_CGNS + Exporter un fichier CGNS + + + TOP_IMPORT_SAUV Importer un fichier SAUV (ASCII) + + TOP_SAUV + Exporter un fichier SAUV (ASCII) + TOP_MERGE Fusionner les nœuds @@ -3457,7 +3489,7 @@ Vérifiez la limite dans les préférences du module Mesh. TOP_REMOVE_ORPHAN_NODES - Supprimer les nœuds ophelins + Supprimer les nœuds orphelins TOP_RENAME @@ -3517,7 +3549,7 @@ Vérifiez la limite dans les préférences du module Mesh. TOP_SHOW - Visualiser + Afficher TOP_SHRINK @@ -3580,9 +3612,13 @@ Vérifiez la limite dans les préférences du module Mesh. Union de deux triangles - TOP_UNV + TOP_IMPORT_UNV Importer un fichier UNV + + TOP_UNV + Exporter un fichier UNV + TOP_UN_GROUP Union des groupes @@ -3737,6 +3773,11 @@ avec le paramètre '%1' des préférences du module Mesh.MESH_LOADING_MSG_FINISHED Chargement du maillage %0 terminé + + DEP_OBJECT + L'objet sélectionné a été utilisé pour en créer un autre. +Il ne peut pas être supprimé. + SMESHGUI_GroupDlg @@ -3744,6 +3785,10 @@ avec le paramètre '%1' des préférences du module Mesh.ALLOW_ELEM_LIST_MODIF Edition manuelle + + SELECT_ALL + Sélectionner tout + SMESHGUI @@ -3774,7 +3819,7 @@ Ouvrez une fenêtre VTK et essayez de nouveau PREF_FORGET_MESH_AT_HYP_MODIF - Ne pas charger le maillage du fichier d'étude à la modification d'une hypothèse + Ne pas charger le maillage du fichier d'étude à la modification d'une hypothèse PREF_AUTO_UPDATE @@ -3803,7 +3848,7 @@ Ouvrez une fenêtre VTK et essayez de nouveau PREF_PRE_SELECTION Couleur de pré-sélection - + PREF_COLOR Couleur @@ -4254,7 +4299,7 @@ Indiquez-le et essayez de nouveau REF_IS_NULL - Aucun maillage valide n'est sélecionné + Aucun maillage valide n'est sélectionné @@ -4413,6 +4458,10 @@ Choisissez un groupe et essayez de nouveau CANT_GET_TANGENT Impossible d'obtenir la tangente pour un des nœuds du chemin + + EXTRUSION_0D + Extrusion des éléments 0D + EXTRUSION_1D Extrusion des éléments 1D @@ -4439,7 +4488,7 @@ Choisissez un groupe et essayez de nouveau SELECTED_PATH_IS_NOT_EDGE - Le maillage du chemin doît être du type arête + Le maillage du chemin doit être du type arête SMESH_ANGLES @@ -4989,11 +5038,11 @@ Entrez une valeur correcte et essayez de nouveau GEOM_TYPE_9 - Prisme héxagonal + Prisme hexagonal GEOM_TYPE_10 - Polyhèdre + Polyèdre @@ -5049,13 +5098,6 @@ Indiquez-les et essayez de nouveau Union de deux groupes - - SMESHGUI_GroupDlg - - SELECT_ALL - Sélectionner tout - - SMESHGUI_UnionGroupsDlg @@ -5240,7 +5282,7 @@ Indiquez-les et essayez de nouveau SMESHGUI_MeshOp ALGORITHM_WITHOUT_HYPOTHESIS - L'algorithm pour la dimension %1 est défini mais l'hypothèse ne l'est pas + L'algorithme pour la dimension %1 est défini mais l'hypothèse ne l'est pas EDIT_SUBMESH_QUESTION @@ -5514,7 +5556,7 @@ Il y a trop peu de points dans le fichier SPLIT_METHOD - Diviser l'héxaèdre + Diviser l'hexaèdre SPLIT_HEX_TO_5_TETRA @@ -6062,11 +6104,11 @@ en raison de leurs types incompatibles: TETRAHEDRONS_LAB - Tétrahédrons: + Tétraèdres: HEXAHEDONRS_LAB - Hexahédrons: + Hexaèdres: PYRAMIDS_LAB @@ -6082,7 +6124,7 @@ en raison de leurs types incompatibles: POLYHEDRONS_LAB - Polyhédrons: + Polyèdres: OBJECT_MESH @@ -6116,12 +6158,16 @@ en raison de leurs types incompatibles: OBJECT_GROUP_0DELEMS Groupe d'éléments 0D + + BUT_LOAD_MESH + Charger un maillage depuis un serveur + SMESHGUI_MeshInfoDlg MESH_INFO - Infiormations de maillage + Informations de maillage BASE_INFO @@ -6212,15 +6258,15 @@ en raison de leurs types incompatibles: POLYGON - Polygône + Polygone TETRAHEDRON - Tétrahédron + Tétraèdre HEXAHEDRON - Hexahédron + Hexaèdre PYRAMID @@ -6236,7 +6282,7 @@ en raison de leurs types incompatibles: POLYHEDRON - Polyhédron + Polyèdre QUADRATIC @@ -6307,7 +6353,7 @@ en raison de leurs types incompatibles: GROUP_ON_GEOMETRY - Groupe lié à une géometrie + Groupe lié à une géométrie GROUP_ON_FILTER @@ -6361,9 +6407,13 @@ en raison de leurs types incompatibles: COMPUTE Calculer + + LOAD + Charger + MESH_ON_GEOMETRY - Lié à une géometrie + Lié à une géométrie MESH_FROM_FILE @@ -6518,6 +6568,13 @@ en raison de leurs types incompatibles: éléments + + SMESHGUI_MeshLoadingProgress + + MESH_LOAD_PROGRESS_TITLE + Chargement du maillage en cours + + StdMeshersGUI_SubShapeSelectorWdg @@ -6525,4 +6582,87 @@ en raison de leurs types incompatibles: %1-%2 sur %3 éléments affichés + + SMESHGUI_Preferences_ColorDlg + + DIALOG_TITLE + Propriétés (couleur, épaisseur des traits, taille des éléments réduits, ...) + + + GRP_ELEMENTS + Eléments + + + SURFACE_COLOR_LBL + Couleur de surface + + + BACKSURFACE_COLOR_LBL + Couleur arrière + + + OUTLINE_COLOR_LBL + Couleur de contour + + + WIREFRAME_COLOR_LBL + Couleur en mode fil de fer + + + 0D_ELEMENTS_COLOR_LBL + Eléments 0D + + + 0D_ELEMENTS_SIZE_LBL + Taille des éléments 0D + + + LINE_WIDTH_LBL + Epaisseur des traits + + + SHRINK_COEF_LBL + Coef. de contraction + + + GRP_NODES + Nœuds + + + NODES_COLOR_LBL + Couleur + + + NODES_MARKER_LBL + Marqueur + + + GRP_ORIENTATION + Orientation des faces + + + ORIENTATION_COLOR_LBL + Couleur + + + ORIENTATION_SCALE_LBL + Facteur d'échelle + + + 3D_VECTORS_LBL + Vecteurs 3D + + + GRP_SELECTION + Sélection + + + SELECTION_COLOR_LBL + Couleur de sélection + + + PRESELECTION_COLOR_LBL + Couleur de pré-sélection + + diff --git a/src/SMESHUtils/Makefile.am b/src/SMESHUtils/Makefile.am index 5d081bace..0e5f87624 100644 --- a/src/SMESHUtils/Makefile.am +++ b/src/SMESHUtils/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHUtils/SMESH_Block.cxx b/src/SMESHUtils/SMESH_Block.cxx index d1d3b2c48..b28dc7d67 100644 --- a/src/SMESHUtils/SMESH_Block.cxx +++ b/src/SMESHUtils/SMESH_Block.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHUtils/SMESH_Block.hxx b/src/SMESHUtils/SMESH_Block.hxx index a6b1e72d1..4971db99a 100644 --- a/src/SMESHUtils/SMESH_Block.hxx +++ b/src/SMESHUtils/SMESH_Block.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHUtils/SMESH_Comment.hxx b/src/SMESHUtils/SMESH_Comment.hxx index b817d8ee6..0aa156511 100644 --- a/src/SMESHUtils/SMESH_Comment.hxx +++ b/src/SMESHUtils/SMESH_Comment.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHUtils/SMESH_ComputeError.hxx b/src/SMESHUtils/SMESH_ComputeError.hxx index e5072c155..a9a4b3a38 100644 --- a/src/SMESHUtils/SMESH_ComputeError.hxx +++ b/src/SMESHUtils/SMESH_ComputeError.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHUtils/SMESH_File.cxx b/src/SMESHUtils/SMESH_File.cxx index d630cdfde..b0341ba5c 100644 --- a/src/SMESHUtils/SMESH_File.cxx +++ b/src/SMESHUtils/SMESH_File.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHUtils/SMESH_File.hxx b/src/SMESHUtils/SMESH_File.hxx index 22794e9e6..3734e96d6 100644 --- a/src/SMESHUtils/SMESH_File.hxx +++ b/src/SMESHUtils/SMESH_File.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESHUtils/SMESH_Octree.cxx b/src/SMESHUtils/SMESH_Octree.cxx index 11e345ea1..9c06e9f3a 100644 --- a/src/SMESHUtils/SMESH_Octree.cxx +++ b/src/SMESHUtils/SMESH_Octree.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHUtils/SMESH_Octree.hxx b/src/SMESHUtils/SMESH_Octree.hxx index 5edd536c0..eaa27399b 100644 --- a/src/SMESHUtils/SMESH_Octree.hxx +++ b/src/SMESHUtils/SMESH_Octree.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHUtils/SMESH_OctreeNode.cxx b/src/SMESHUtils/SMESH_OctreeNode.cxx index ddaac892b..d14a50a24 100644 --- a/src/SMESHUtils/SMESH_OctreeNode.cxx +++ b/src/SMESHUtils/SMESH_OctreeNode.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHUtils/SMESH_OctreeNode.hxx b/src/SMESHUtils/SMESH_OctreeNode.hxx index afa3ad193..cc66a275b 100644 --- a/src/SMESHUtils/SMESH_OctreeNode.hxx +++ b/src/SMESHUtils/SMESH_OctreeNode.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHUtils/SMESH_TypeDefs.hxx b/src/SMESHUtils/SMESH_TypeDefs.hxx index 0b6708289..e43222958 100644 --- a/src/SMESHUtils/SMESH_TypeDefs.hxx +++ b/src/SMESHUtils/SMESH_TypeDefs.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESHUtils/SMESH_Utils.hxx b/src/SMESHUtils/SMESH_Utils.hxx index de8f2a0f3..45c4a2c52 100755 --- a/src/SMESHUtils/SMESH_Utils.hxx +++ b/src/SMESHUtils/SMESH_Utils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/Makefile.am b/src/SMESH_I/Makefile.am index 322a38f0c..2f748f7da 100644 --- a/src/SMESH_I/Makefile.am +++ b/src/SMESH_I/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_I/SMESH.hxx b/src/SMESH_I/SMESH.hxx index ce7be0720..579ae9127 100644 --- a/src/SMESH_I/SMESH.hxx +++ b/src/SMESH_I/SMESH.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESHEngine.cxx b/src/SMESH_I/SMESHEngine.cxx index 57be22e4c..5034d2cdd 100644 --- a/src/SMESH_I/SMESHEngine.cxx +++ b/src/SMESH_I/SMESHEngine.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_0D_Algo_i.cxx b/src/SMESH_I/SMESH_0D_Algo_i.cxx index 1f8bdc97c..84f9067d5 100644 --- a/src/SMESH_I/SMESH_0D_Algo_i.cxx +++ b/src/SMESH_I/SMESH_0D_Algo_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_0D_Algo_i.hxx b/src/SMESH_I/SMESH_0D_Algo_i.hxx index deeb9d96f..dd23a1c1c 100644 --- a/src/SMESH_I/SMESH_0D_Algo_i.hxx +++ b/src/SMESH_I/SMESH_0D_Algo_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_1D_Algo_i.cxx b/src/SMESH_I/SMESH_1D_Algo_i.cxx index c4d04ec4c..9dcf746ac 100644 --- a/src/SMESH_I/SMESH_1D_Algo_i.cxx +++ b/src/SMESH_I/SMESH_1D_Algo_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_1D_Algo_i.hxx b/src/SMESH_I/SMESH_1D_Algo_i.hxx index 46c5e14c3..b8c912e62 100644 --- a/src/SMESH_I/SMESH_1D_Algo_i.hxx +++ b/src/SMESH_I/SMESH_1D_Algo_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_2D_Algo_i.cxx b/src/SMESH_I/SMESH_2D_Algo_i.cxx index 20b4abde4..37d228f76 100644 --- a/src/SMESH_I/SMESH_2D_Algo_i.cxx +++ b/src/SMESH_I/SMESH_2D_Algo_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_2D_Algo_i.hxx b/src/SMESH_I/SMESH_2D_Algo_i.hxx index fa3c95428..43277ccf5 100644 --- a/src/SMESH_I/SMESH_2D_Algo_i.hxx +++ b/src/SMESH_I/SMESH_2D_Algo_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_2smeshpy.cxx b/src/SMESH_I/SMESH_2smeshpy.cxx index 48144a996..21fca4ed9 100644 --- a/src/SMESH_I/SMESH_2smeshpy.cxx +++ b/src/SMESH_I/SMESH_2smeshpy.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -511,7 +511,10 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand method == "DoubleNodeGroupNew" || method == "DoubleNodeGroupsNew" || method == "DoubleNodeElemGroupNew" || - method == "DoubleNodeElemGroupsNew" ) + method == "DoubleNodeElemGroupsNew"|| + method == "DoubleNodeElemGroup2New"|| + method == "DoubleNodeElemGroups2New" + ) groups = aCommand->GetResultValue(); else if ( method == "MakeBoundaryMesh" ) groups = aCommand->GetResultValue(2); @@ -718,7 +721,7 @@ void _pyGen::Process( const Handle(_pyCommand)& theCommand ) { for(int ind = 0;indGetNbResultValues();ind++) { - const _pyID& meshID = theCommand->GetResultValue(ind+1); + _pyID meshID = theCommand->GetResultValue(ind+1); if ( !theCommand->IsStudyEntry( meshID ) ) continue; Handle(_pyMesh) mesh = new _pyMesh( theCommand, theCommand->GetResultValue(ind+1)); myMeshes.insert( make_pair( mesh->GetID(), mesh )); @@ -1231,7 +1234,8 @@ bool _pyGen::IsGeomObject(const _pyID& theObjID) const if ( myGeomIDNb ) { return ( myGeomIDIndex <= theObjID.Length() && - int( theObjID.Value( myGeomIDIndex )) == myGeomIDNb); + int( theObjID.Value( myGeomIDIndex )) == myGeomIDNb && + _pyCommand::IsStudyEntry( theObjID )); } return false; } @@ -1962,18 +1966,29 @@ void _pyMeshEditor::Process( const Handle(_pyCommand)& theCommand) isPyMeshMethod=true; theCommand->SetMethod("FindCoincidentNodesOnPart"); } - // DoubleNodeElemGroupNew() -> DoubleNodeElemGroup() - // DoubleNodeGroupNew() -> DoubleNodeGroup() - // DoubleNodeGroupsNew() -> DoubleNodeGroups() - // DoubleNodeElemGroupsNew() -> DoubleNodeElemGroups() + // DoubleNode...New(...) -> DoubleNode...(...,True) if ( !isPyMeshMethod && ( method == "DoubleNodeElemGroupNew" || method == "DoubleNodeElemGroupsNew" || method == "DoubleNodeGroupNew" || - method == "DoubleNodeGroupsNew")) + method == "DoubleNodeGroupsNew" || + method == "DoubleNodeElemGroup2New" || + method == "DoubleNodeElemGroups2New")) { isPyMeshMethod=true; - theCommand->SetMethod( method.SubString( 1, method.Length()-3)); - theCommand->SetArg(theCommand->GetNbArgs()+1,"True"); + const int excessLen = 3 + int( method.Value( method.Length()-3 ) == '2' ); + theCommand->SetMethod( method.SubString( 1, method.Length()-excessLen)); + if ( excessLen == 3 ) + { + theCommand->SetArg(theCommand->GetNbArgs()+1,"True"); + } + else if ( theCommand->GetArg(4) == "0" || + theCommand->GetArg(5) == "0" ) + { + // [ nothing, Group ] = DoubleNodeGroup2New(,,,False, True) -> + // Group = DoubleNodeGroup2New(,,,False, True) + _pyID groupID = theCommand->GetResultValue( 1 + int( theCommand->GetArg(4) == "0")); + theCommand->SetResultValue( groupID ); + } } // ConvertToQuadraticObject(bool,obj) -> ConvertToQuadratic(bool,obj) // ConvertFromQuadraticObject(obj) -> ConvertFromQuadratic(obj) @@ -3027,22 +3042,25 @@ const int _pyCommand::GetNbResultValues() //================================================================================ /*! * \brief Return substring of python command looking like - * ResultValue1 , ResultValue1,... = Obj.Meth() with res index + * ResultValue1 , ResultValue2,... = Obj.Meth() with res index * \retval const TCollection_AsciiString & - ResultValue with res index substring */ //================================================================================ -const TCollection_AsciiString & _pyCommand::GetResultValue(int res) +TCollection_AsciiString _pyCommand::GetResultValue(int res) { int begPos = 1; - int Nb=0; + if ( SkipSpaces( myString, begPos ) && myString.Value( begPos ) == '[' ) + ++begPos; // skip [, else the whole list is returned int endPos = myString.Location( "=", 1, Length() ); + int Nb=0; while ( begPos < endPos) { - myRes = GetWord( myString, begPos, true ); - begPos = begPos + myRes.Length(); + _AString result = GetWord( myString, begPos, true ); + begPos = begPos + result.Length(); Nb++; - if(res == Nb){ - myRes.RemoveAll('[');myRes.RemoveAll(']'); - return myRes; + if(res == Nb) { + result.RemoveAll('['); + result.RemoveAll(']'); + return result; } if(Nb>res) break; @@ -3350,8 +3368,6 @@ std::list< _pyID > _pyCommand::GetStudyEntries( const TCollection_AsciiString& s * \param theString - The string * \param thePos - The position to search from and which returns result * \retval bool - false if there are only space after thePos in theString - * - * */ //================================================================================ @@ -3685,6 +3701,8 @@ _pyGroup::_pyGroup(const Handle(_pyCommand)& theCreationCmd, const _pyID & id) if ( !id.IsEmpty() ) setID( id ); + myCanClearCreationCmd = true; + const _AString& method = theCreationCmd->GetMethod(); if ( method == "CreateGroup" ) // CreateGroup() --> CreateEmptyGroup() { @@ -3727,6 +3745,12 @@ _pyGroup::_pyGroup(const Handle(_pyCommand)& theCreationCmd, const _pyID & id) } myFilter = filter; } + else + { + // theCreationCmd does something else apart from creation of this group + // and thus it can't be cleared if this group is removed + myCanClearCreationCmd = false; + } } //================================================================================ @@ -3803,6 +3827,23 @@ void _pyGroup::Process( const Handle(_pyCommand)& theCommand) theGen->AddMeshAccessorMethod( theCommand ); } +//================================================================================ +/*! + * \brief Prevent clearing "DoubleNode...() command if a group created by it is removed + * + * + */ +//================================================================================ + +void _pyGroup::Flush() +{ + if ( !theGen->IsToKeepAllCommands() && + myCreationCmd && !myCanClearCreationCmd ) + { + myCreationCmd.Nullify(); // this way myCreationCmd won't be cleared + } +} + //================================================================================ /*! * \brief Constructor of _pyFilter diff --git a/src/SMESH_I/SMESH_2smeshpy.hxx b/src/SMESH_I/SMESH_2smeshpy.hxx index 1ad254751..b1019b72d 100644 --- a/src/SMESH_I/SMESH_2smeshpy.hxx +++ b/src/SMESH_I/SMESH_2smeshpy.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -123,7 +123,7 @@ public: _AString GetIndentation(); const _AString & GetResultValue(); const int GetNbResultValues(); - const _AString & GetResultValue(int res); + _AString GetResultValue(int res); const _AString & GetObject(); const _AString & GetMethod(); const _AString & GetArg( int index ); @@ -579,10 +579,11 @@ DEFINE_STANDARD_HANDLE (_pyFilter, _pyObject); class _pyGroup: public _pySubMesh { Handle(_pyFilter) myFilter; + bool myCanClearCreationCmd; public: _pyGroup(const Handle(_pyCommand)& theCreationCmd, const _pyID & id=_pyID()); virtual void Process( const Handle(_pyCommand)& theCommand); - virtual void Flush() {} + virtual void Flush(); virtual void Free() { myFilter.Nullify(); } DEFINE_STANDARD_RTTI (_pyGroup) diff --git a/src/SMESH_I/SMESH_3D_Algo_i.cxx b/src/SMESH_I/SMESH_3D_Algo_i.cxx index 3912a77a9..9a73a538f 100644 --- a/src/SMESH_I/SMESH_3D_Algo_i.cxx +++ b/src/SMESH_I/SMESH_3D_Algo_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_3D_Algo_i.hxx b/src/SMESH_I/SMESH_3D_Algo_i.hxx index 6c8b36f50..d798b9e41 100644 --- a/src/SMESH_I/SMESH_3D_Algo_i.hxx +++ b/src/SMESH_I/SMESH_3D_Algo_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Algo_i.cxx b/src/SMESH_I/SMESH_Algo_i.cxx index 2ddac59fa..13caf98e0 100644 --- a/src/SMESH_I/SMESH_Algo_i.cxx +++ b/src/SMESH_I/SMESH_Algo_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Algo_i.hxx b/src/SMESH_I/SMESH_Algo_i.hxx index 6b645689d..34491582d 100644 --- a/src/SMESH_I/SMESH_Algo_i.hxx +++ b/src/SMESH_I/SMESH_Algo_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_DumpPython.cxx b/src/SMESH_I/SMESH_DumpPython.cxx index 0bed09d8c..38864d1ac 100644 --- a/src/SMESH_I/SMESH_DumpPython.cxx +++ b/src/SMESH_I/SMESH_DumpPython.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Filter_i.cxx b/src/SMESH_I/SMESH_Filter_i.cxx index 06a6e674a..8fd248b4b 100644 --- a/src/SMESH_I/SMESH_Filter_i.cxx +++ b/src/SMESH_I/SMESH_Filter_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -487,21 +487,16 @@ static TopoDS_Shape getShapeByName( const char* theName ) { if ( theName != 0 ) { - SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen(); - SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy(); - if (!CORBA::is_nil(aStudy)) + SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen(); + SALOMEDS::Study_var aStudy = aSMESHGen->GetCurrentStudy(); + if ( !aStudy->_is_nil() ) { - SALOMEDS::Study::ListOfSObject_var aList = - aStudy->FindObjectByName( theName, "GEOM" ); + SALOMEDS::Study::ListOfSObject_var aList = aStudy->FindObjectByName( theName, "GEOM" ); if ( aList->length() > 0 ) { - GEOM::GEOM_Object_var aGeomObj = GEOM::GEOM_Object::_narrow( aList[ 0 ]->GetObject() ); - if ( !aGeomObj->_is_nil() ) - { - GEOM::GEOM_Gen_ptr aGEOMGen = SMESH_Gen_i::GetGeomEngine(); - TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, aGeomObj ); - return aLocShape; - } + CORBA::Object_var anObj = aList[ 0 ]->GetObject(); + GEOM::GEOM_Object_var aGeomObj = GEOM::GEOM_Object::_narrow( anObj ); + return aSMESHGen->GeomObjectToShape( aGeomObj ); } } } @@ -510,48 +505,35 @@ static TopoDS_Shape getShapeByName( const char* theName ) static TopoDS_Shape getShapeByID (const char* theID) { - if (theID != 0 && theID != "") { - SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen(); - SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy(); - if (aStudy != 0) { + if ( theID && strlen( theID ) > 0 ) { + SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen(); + SALOMEDS::Study_var aStudy = aSMESHGen->GetCurrentStudy(); + if ( !aStudy->_is_nil() ) { SALOMEDS::SObject_var aSObj = aStudy->FindObjectID(theID); - SALOMEDS::GenericAttribute_var anAttr; - if (!aSObj->_is_nil() && aSObj->FindAttribute(anAttr, "AttributeIOR")) { - SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr); - CORBA::String_var aVal = anIOR->Value(); - CORBA::Object_var obj = aStudy->ConvertIORToObject(aVal); + if ( !aSObj->_is_nil() ) { + CORBA::Object_var obj = aSObj->GetObject(); GEOM::GEOM_Object_var aGeomObj = GEOM::GEOM_Object::_narrow(obj); - - if (!aGeomObj->_is_nil()) { - GEOM::GEOM_Gen_ptr aGEOMGen = SMESH_Gen_i::GetGeomEngine(); - TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, aGeomObj ); - return aLocShape; - } + return aSMESHGen->GeomObjectToShape( aGeomObj ); } } } return TopoDS_Shape(); } -static char* getShapeNameByID (const char* theID) +static std::string getShapeNameByID (const char* theID) { - char* aName = (char*)""; - - if (theID != 0 && theID != "") { - SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen(); - SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy(); - if (aStudy != 0) { - //SALOMEDS::SObject_var aSObj = aStudy->FindObjectIOR( theID ); + if ( theID && strlen( theID ) > 0 ) { + SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen(); + SALOMEDS::Study_var aStudy = aSMESHGen->GetCurrentStudy(); + if ( !aStudy->_is_nil() ) { SALOMEDS::SObject_var aSObj = aStudy->FindObjectID(theID); - SALOMEDS::GenericAttribute_var anAttr; - if (!aSObj->_is_nil() && aSObj->FindAttribute(anAttr, "AttributeName")) { - SALOMEDS::AttributeName_var aNameAttr = SALOMEDS::AttributeName::_narrow(anAttr); - aName = aNameAttr->Value(); + if ( !aSObj->_is_nil() ) { + CORBA::String_var name = aSObj->GetName(); + return name.in(); } } } - - return aName; + return ""; } /* @@ -1064,7 +1046,7 @@ void BelongToGeom_i::SetShape( const char* theID, const char* theName ) else myShapeID = 0; - if ( myShapeID && strcmp(myShapeName, getShapeNameByID(myShapeID)) == 0 ) + if ( myShapeID && myShapeName == getShapeNameByID(myShapeID)) myBelongToGeomPtr->SetGeom( getShapeByID(myShapeID) ); else myBelongToGeomPtr->SetGeom( getShapeByName( myShapeName ) ); @@ -1149,7 +1131,7 @@ void BelongToSurface_i::SetShape( const char* theID, const char* theName, Eleme else myShapeID = 0; - if ( myShapeID && strcmp(myShapeName, getShapeNameByID(myShapeID)) == 0 ) + if ( myShapeID && myShapeName == getShapeNameByID(myShapeID)) myElementsOnSurfacePtr->SetSurface( getShapeByID(myShapeID), (SMDSAbs_ElementType)theType ); else myElementsOnSurfacePtr->SetSurface( getShapeByName( myShapeName ), (SMDSAbs_ElementType)theType ); @@ -1319,7 +1301,7 @@ void LyingOnGeom_i::SetShape( const char* theID, const char* theName ) else myShapeID = 0; - if ( myShapeID && strcmp(myShapeName, getShapeNameByID(myShapeID)) == 0 ) + if ( myShapeID && myShapeName == getShapeNameByID(myShapeID)) myLyingOnGeomPtr->SetGeom( getShapeByID(myShapeID) ); else myLyingOnGeomPtr->SetGeom( getShapeByName( myShapeName ) ); diff --git a/src/SMESH_I/SMESH_Filter_i.hxx b/src/SMESH_I/SMESH_Filter_i.hxx index 2930f941d..c54ceaed0 100644 --- a/src/SMESH_I/SMESH_Filter_i.hxx +++ b/src/SMESH_I/SMESH_Filter_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Gen_i.cxx b/src/SMESH_I/SMESH_Gen_i.cxx index 97e4ede84..5f62002b9 100644 --- a/src/SMESH_I/SMESH_Gen_i.cxx +++ b/src/SMESH_I/SMESH_Gen_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Gen_i.hxx b/src/SMESH_I/SMESH_Gen_i.hxx index bd0a5ec90..04edf2f1f 100644 --- a/src/SMESH_I/SMESH_Gen_i.hxx +++ b/src/SMESH_I/SMESH_Gen_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Gen_i_1.cxx b/src/SMESH_I/SMESH_Gen_i_1.cxx index 27c50ecec..a7567450f 100644 --- a/src/SMESH_I/SMESH_Gen_i_1.cxx +++ b/src/SMESH_I/SMESH_Gen_i_1.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Group_i.cxx b/src/SMESH_I/SMESH_Group_i.cxx index a24d869bc..aab7ec86b 100644 --- a/src/SMESH_I/SMESH_Group_i.cxx +++ b/src/SMESH_I/SMESH_Group_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Group_i.hxx b/src/SMESH_I/SMESH_Group_i.hxx index 57bbae350..dcb441057 100644 --- a/src/SMESH_I/SMESH_Group_i.hxx +++ b/src/SMESH_I/SMESH_Group_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Hypothesis_i.cxx b/src/SMESH_I/SMESH_Hypothesis_i.cxx index aa3936494..96131044b 100644 --- a/src/SMESH_I/SMESH_Hypothesis_i.cxx +++ b/src/SMESH_I/SMESH_Hypothesis_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Hypothesis_i.hxx b/src/SMESH_I/SMESH_Hypothesis_i.hxx index e8f12c507..593ed85ca 100644 --- a/src/SMESH_I/SMESH_Hypothesis_i.hxx +++ b/src/SMESH_I/SMESH_Hypothesis_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_MEDFamily_i.cxx b/src/SMESH_I/SMESH_MEDFamily_i.cxx index 6c406c5a7..3218fd486 100644 --- a/src/SMESH_I/SMESH_MEDFamily_i.cxx +++ b/src/SMESH_I/SMESH_MEDFamily_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_MEDFamily_i.hxx b/src/SMESH_I/SMESH_MEDFamily_i.hxx index e8deb8895..c96df39c0 100644 --- a/src/SMESH_I/SMESH_MEDFamily_i.hxx +++ b/src/SMESH_I/SMESH_MEDFamily_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_MEDMesh_i.cxx b/src/SMESH_I/SMESH_MEDMesh_i.cxx index db68b677f..823c8a037 100644 --- a/src/SMESH_I/SMESH_MEDMesh_i.cxx +++ b/src/SMESH_I/SMESH_MEDMesh_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_MEDMesh_i.hxx b/src/SMESH_I/SMESH_MEDMesh_i.hxx index fc63ac76c..6541939af 100644 --- a/src/SMESH_I/SMESH_MEDMesh_i.hxx +++ b/src/SMESH_I/SMESH_MEDMesh_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_MEDSupport_i.cxx b/src/SMESH_I/SMESH_MEDSupport_i.cxx index 7bbc04851..23dd94144 100644 --- a/src/SMESH_I/SMESH_MEDSupport_i.cxx +++ b/src/SMESH_I/SMESH_MEDSupport_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_MEDSupport_i.hxx b/src/SMESH_I/SMESH_MEDSupport_i.hxx index b9a85140e..67761e2e8 100644 --- a/src/SMESH_I/SMESH_MEDSupport_i.hxx +++ b/src/SMESH_I/SMESH_MEDSupport_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Measurements_i.cxx b/src/SMESH_I/SMESH_Measurements_i.cxx index 58c42f010..48572a353 100644 --- a/src/SMESH_I/SMESH_Measurements_i.cxx +++ b/src/SMESH_I/SMESH_Measurements_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Measurements_i.hxx b/src/SMESH_I/SMESH_Measurements_i.hxx index 7c272d251..df380ab3e 100644 --- a/src/SMESH_I/SMESH_Measurements_i.hxx +++ b/src/SMESH_I/SMESH_Measurements_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_MeshEditor_i.cxx b/src/SMESH_I/SMESH_MeshEditor_i.cxx index 0ae64289e..821a8a0a1 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.cxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -5257,14 +5257,15 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeGroup(SMESH::SMESH_GroupBase_ptr th * \return a new group with newly created nodes * \sa DoubleNodeGroup() */ -SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeGroupNew( SMESH::SMESH_GroupBase_ptr theNodes, - SMESH::SMESH_GroupBase_ptr theModifiedElems ) +SMESH::SMESH_Group_ptr +SMESH_MeshEditor_i::DoubleNodeGroupNew( SMESH::SMESH_GroupBase_ptr theNodes, + SMESH::SMESH_GroupBase_ptr theModifiedElems ) { - if ( CORBA::is_nil( theNodes ) && theNodes->GetType() != SMESH::NODE ) - return false; - SMESH::SMESH_Group_var aNewGroup; + if ( CORBA::is_nil( theNodes ) && theNodes->GetType() != SMESH::NODE ) + return aNewGroup._retn(); + // Duplicate nodes SMESH::long_array_var aNodes = theNodes->GetListOfID(); SMESH::long_array_var aModifiedElems; @@ -5278,7 +5279,6 @@ SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeGroupNew( SMESH::SMESH_Grou TPythonDump pyDump; // suppress dump by the next line bool aResult = DoubleNodes( aNodes, aModifiedElems ); - if ( aResult ) { // Create group with newly created nodes @@ -5288,11 +5288,12 @@ SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeGroupNew( SMESH::SMESH_Grou string aNewName = generateGroupName(anUnindexedName + "_double"); aNewGroup = myMesh_i->CreateGroup(SMESH::NODE, aNewName.c_str()); aNewGroup->Add(anIds); + pyDump << aNewGroup << " = "; } } - pyDump << "createdNodes = " << this << ".DoubleNodeGroupNew( " << theNodes << ", " - << theModifiedElems << " )"; + pyDump << this << ".DoubleNodeGroupNew( " << theNodes << ", " + << theModifiedElems << " )"; return aNewGroup._retn(); } @@ -5365,8 +5366,9 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeGroups(const SMESH::ListOfGroups& t */ //================================================================================ -SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeGroupsNew( const SMESH::ListOfGroups& theNodes, - const SMESH::ListOfGroups& theModifiedElems ) +SMESH::SMESH_Group_ptr +SMESH_MeshEditor_i::DoubleNodeGroupsNew( const SMESH::ListOfGroups& theNodes, + const SMESH::ListOfGroups& theModifiedElems ) { SMESH::SMESH_Group_var aNewGroup; @@ -5383,11 +5385,12 @@ SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeGroupsNew( const SMESH::Lis string aNewName = generateGroupName(anUnindexedName + "_double"); aNewGroup = myMesh_i->CreateGroup(SMESH::NODE, aNewName.c_str()); aNewGroup->Add(anIds); + pyDump << aNewGroup << " = "; } } - pyDump << "createdNodes = " << this << ".DoubleNodeGroupsNew( " << theNodes << ", " - << theModifiedElems << " )"; + pyDump << this << ".DoubleNodeGroupsNew( " << theNodes << ", " + << theModifiedElems << " )"; return aNewGroup._retn(); } @@ -5531,14 +5534,40 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElemGroup(SMESH::SMESH_GroupBase_pt * \return a new group with newly created elements * \sa DoubleNodeElemGroup() */ -SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeElemGroupNew(SMESH::SMESH_GroupBase_ptr theElems, - SMESH::SMESH_GroupBase_ptr theNodesNot, - SMESH::SMESH_GroupBase_ptr theAffectedElems) +SMESH::SMESH_Group_ptr +SMESH_MeshEditor_i::DoubleNodeElemGroupNew(SMESH::SMESH_GroupBase_ptr theElems, + SMESH::SMESH_GroupBase_ptr theNodesNot, + SMESH::SMESH_GroupBase_ptr theAffectedElems) { - if ( CORBA::is_nil( theElems ) && theElems->GetType() == SMESH::NODE ) - return false; + TPythonDump pyDump; + SMESH::ListOfGroups_var twoGroups = DoubleNodeElemGroup2New( theElems, + theNodesNot, + theAffectedElems, + true, false ); + SMESH::SMESH_GroupBase_var baseGroup = twoGroups[0].in(); + SMESH::SMESH_Group_var elemGroup = SMESH::SMESH_Group::_narrow( baseGroup ); - SMESH::SMESH_Group_var aNewGroup; + pyDump << elemGroup << " = " << this << ".DoubleNodeElemGroupNew( " + << theElems << ", " + << theNodesNot << ", " + << theAffectedElems << " )"; + + return elemGroup._retn(); +} + +SMESH::ListOfGroups* +SMESH_MeshEditor_i::DoubleNodeElemGroup2New(SMESH::SMESH_GroupBase_ptr theElems, + SMESH::SMESH_GroupBase_ptr theNodesNot, + SMESH::SMESH_GroupBase_ptr theAffectedElems, + CORBA::Boolean theElemGroupNeeded, + CORBA::Boolean theNodeGroupNeeded) +{ + SMESH::SMESH_Group_var aNewElemGroup, aNewNodeGroup; + SMESH::ListOfGroups_var aTwoGroups = new SMESH::ListOfGroups(); + aTwoGroups->length( 2 ); + + if ( CORBA::is_nil( theElems ) && theElems->GetType() == SMESH::NODE ) + return aTwoGroups._retn(); initData(); @@ -5554,25 +5583,49 @@ SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeElemGroupNew(SMESH::SMESH_G bool aResult = aMeshEditor.DoubleNodes( anElems, aNodes, anAffected ); storeResult( aMeshEditor) ; + myMesh->GetMeshDS()->Modified(); + + TPythonDump pyDump; - if ( aResult ) { + if ( aResult ) + { myMesh->SetIsModified( true ); // Create group with newly created elements - SMESH::long_array_var anIds = GetLastCreatedElems(); - if (anIds->length() > 0) { + CORBA::String_var elemGroupName = theElems->GetName(); + string aNewName = generateGroupName( string(elemGroupName.in()) + "_double"); + if ( !aMeshEditor.GetLastCreatedElems().IsEmpty() && theElemGroupNeeded ) + { + SMESH::long_array_var anIds = GetLastCreatedElems(); SMESH::ElementType aGroupType = myMesh_i->GetElementType(anIds[0], true); - string anUnindexedName (theElems->GetName()); - string aNewName = generateGroupName(anUnindexedName + "_double"); - aNewGroup = myMesh_i->CreateGroup(aGroupType, aNewName.c_str()); - aNewGroup->Add(anIds); + aNewElemGroup = myMesh_i->CreateGroup(aGroupType, aNewName.c_str()); + aNewElemGroup->Add(anIds); + } + if ( !aMeshEditor.GetLastCreatedNodes().IsEmpty() && theNodeGroupNeeded ) + { + SMESH::long_array_var anIds = GetLastCreatedNodes(); + aNewNodeGroup = myMesh_i->CreateGroup(SMESH::NODE, aNewName.c_str()); + aNewNodeGroup->Add(anIds); } } // Update Python script - TPythonDump() << "createdElems = " << this << ".DoubleNodeElemGroupNew( " << theElems << ", " - << theNodesNot << ", " << theAffectedElems << " )"; - return aNewGroup._retn(); + + pyDump << "[ "; + if ( aNewElemGroup->_is_nil() ) pyDump << "nothing, "; + else pyDump << aNewElemGroup << ", "; + if ( aNewNodeGroup->_is_nil() ) pyDump << "nothing ] = "; + else pyDump << aNewNodeGroup << " ] = "; + + pyDump << this << ".DoubleNodeElemGroup2New( " << theElems << ", " + << theNodesNot << ", " + << theAffectedElems << ", " + << theElemGroupNeeded << ", " + << theNodeGroupNeeded <<" )"; + + aTwoGroups[0] = aNewElemGroup._retn(); + aTwoGroups[1] = aNewNodeGroup._retn(); + return aTwoGroups._retn(); } //================================================================================ @@ -5691,11 +5744,37 @@ CORBA::Boolean SMESH_MeshEditor_i::DoubleNodeElemGroups(const SMESH::ListOfGroup */ //================================================================================ -SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeElemGroupsNew(const SMESH::ListOfGroups& theElems, - const SMESH::ListOfGroups& theNodesNot, - const SMESH::ListOfGroups& theAffectedElems) +SMESH::SMESH_Group_ptr +SMESH_MeshEditor_i::DoubleNodeElemGroupsNew(const SMESH::ListOfGroups& theElems, + const SMESH::ListOfGroups& theNodesNot, + const SMESH::ListOfGroups& theAffectedElems) { - SMESH::SMESH_Group_var aNewGroup; + TPythonDump pyDump; + SMESH::ListOfGroups_var twoGroups = DoubleNodeElemGroups2New( theElems, + theNodesNot, + theAffectedElems, + true, false ); + SMESH::SMESH_GroupBase_var baseGroup = twoGroups[0].in(); + SMESH::SMESH_Group_var elemGroup = SMESH::SMESH_Group::_narrow( baseGroup ); + + pyDump << elemGroup << " = " << this << ".DoubleNodeElemGroupsNew( " + << theElems << ", " + << theNodesNot << ", " + << theAffectedElems << " )"; + + return elemGroup._retn(); +} + +SMESH::ListOfGroups* +SMESH_MeshEditor_i::DoubleNodeElemGroups2New(const SMESH::ListOfGroups& theElems, + const SMESH::ListOfGroups& theNodesNot, + const SMESH::ListOfGroups& theAffectedElems, + CORBA::Boolean theElemGroupNeeded, + CORBA::Boolean theNodeGroupNeeded) +{ + SMESH::SMESH_Group_var aNewElemGroup, aNewNodeGroup; + SMESH::ListOfGroups_var aTwoGroups = new SMESH::ListOfGroups(); + aTwoGroups->length( 2 ); initData(); @@ -5712,24 +5791,46 @@ SMESH::SMESH_Group_ptr SMESH_MeshEditor_i::DoubleNodeElemGroupsNew(const SMESH:: storeResult( aMeshEditor) ; myMesh->GetMeshDS()->Modified(); - if ( aResult ) { + TPythonDump pyDump; + if ( aResult ) + { myMesh->SetIsModified( true ); // Create group with newly created elements - SMESH::long_array_var anIds = GetLastCreatedElems(); - if (anIds->length() > 0) { + CORBA::String_var elemGroupName = theElems[0]->GetName(); + string aNewName = generateGroupName( string(elemGroupName.in()) + "_double"); + if ( !aMeshEditor.GetLastCreatedElems().IsEmpty() && theElemGroupNeeded ) + { + SMESH::long_array_var anIds = GetLastCreatedElems(); SMESH::ElementType aGroupType = myMesh_i->GetElementType(anIds[0], true); - string anUnindexedName (theElems[0]->GetName()); - string aNewName = generateGroupName(anUnindexedName + "_double"); - aNewGroup = myMesh_i->CreateGroup(aGroupType, aNewName.c_str()); - aNewGroup->Add(anIds); + aNewElemGroup = myMesh_i->CreateGroup(aGroupType, aNewName.c_str()); + aNewElemGroup->Add(anIds); + } + if ( !aMeshEditor.GetLastCreatedNodes().IsEmpty() && theNodeGroupNeeded ) + { + SMESH::long_array_var anIds = GetLastCreatedNodes(); + aNewNodeGroup = myMesh_i->CreateGroup(SMESH::NODE, aNewName.c_str()); + aNewNodeGroup->Add(anIds); } } // Update Python script - TPythonDump() << "createdElems = " << this << ".DoubleNodeElemGroupsNew( " << &theElems << ", " - << &theNodesNot << ", " << &theAffectedElems << " )"; - return aNewGroup._retn(); + + pyDump << "[ "; + if ( aNewElemGroup->_is_nil() ) pyDump << "nothing, "; + else pyDump << aNewElemGroup << ", "; + if ( aNewNodeGroup->_is_nil() ) pyDump << "nothing ] = "; + else pyDump << aNewNodeGroup << " ] = "; + + pyDump << this << ".DoubleNodeElemGroups2New( " << &theElems << ", " + << &theNodesNot << ", " + << &theAffectedElems << ", " + << theElemGroupNeeded << ", " + << theNodeGroupNeeded << " )"; + + aTwoGroups[0] = aNewElemGroup._retn(); + aTwoGroups[1] = aNewNodeGroup._retn(); + return aTwoGroups._retn(); } //================================================================================ diff --git a/src/SMESH_I/SMESH_MeshEditor_i.hxx b/src/SMESH_I/SMESH_MeshEditor_i.hxx index 64d9463f1..4c2182498 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.hxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -659,6 +659,12 @@ public: SMESH::SMESH_Group_ptr DoubleNodeElemGroupNew( SMESH::SMESH_GroupBase_ptr theElems, SMESH::SMESH_GroupBase_ptr theNodesNot, SMESH::SMESH_GroupBase_ptr theAffectedElems ); + + SMESH::ListOfGroups* DoubleNodeElemGroup2New(SMESH::SMESH_GroupBase_ptr theElems, + SMESH::SMESH_GroupBase_ptr theNodesNot, + SMESH::SMESH_GroupBase_ptr theAffectedElems, + CORBA::Boolean theElemGroupNeeded, + CORBA::Boolean theNodeGroupNeeded); /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements @@ -702,6 +708,11 @@ public: const SMESH::ListOfGroups& theNodesNot, const SMESH::ListOfGroups& theAffectedElems ); + SMESH::ListOfGroups* DoubleNodeElemGroups2New(const SMESH::ListOfGroups& theElems, + const SMESH::ListOfGroups& theNodesNot, + const SMESH::ListOfGroups& theAffectedElems, + CORBA::Boolean theElemGroupNeeded, + CORBA::Boolean theNodeGroupNeeded); /*! * \brief Creates a hole in a mesh by doubling the nodes of some particular elements diff --git a/src/SMESH_I/SMESH_Mesh_i.cxx b/src/SMESH_I/SMESH_Mesh_i.cxx index 8f3055786..a7cc8d0f2 100644 --- a/src/SMESH_I/SMESH_Mesh_i.cxx +++ b/src/SMESH_I/SMESH_Mesh_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -4698,12 +4698,9 @@ static void findCommonSubMesh (list& theSubMeshList, // clear collected submeshes set::iterator clrIt = subMeshToClear.begin(); - for ( ; clrIt != subMeshToClear.end(); clrIt++ ) { - SMESH_subMesh* sm = (SMESH_subMesh*)*clrIt; - if ( sm ) - sm->ComputeStateEngine( SMESH_subMesh::CLEAN ); - // ClearSubMesh( *clrIt ); - } + for ( ; clrIt != subMeshToClear.end(); clrIt++ ) + if ( SMESH_subMesh* sm = (SMESH_subMesh*)*clrIt ) + sm->ComputeStateEngine( SMESH_subMesh::CLEAN ); } aPythonDump << " ])"; diff --git a/src/SMESH_I/SMESH_Mesh_i.hxx b/src/SMESH_I/SMESH_Mesh_i.hxx index 88431edaa..fd08854d6 100644 --- a/src/SMESH_I/SMESH_Mesh_i.hxx +++ b/src/SMESH_I/SMESH_Mesh_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_NoteBook.cxx b/src/SMESH_I/SMESH_NoteBook.cxx index 072de3be2..7ecbe0823 100644 --- a/src/SMESH_I/SMESH_NoteBook.cxx +++ b/src/SMESH_I/SMESH_NoteBook.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_I/SMESH_NoteBook.hxx b/src/SMESH_I/SMESH_NoteBook.hxx index f861abeaf..661f42f49 100644 --- a/src/SMESH_I/SMESH_NoteBook.hxx +++ b/src/SMESH_I/SMESH_NoteBook.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_I/SMESH_Pattern_i.cxx b/src/SMESH_I/SMESH_Pattern_i.cxx index cd69bf4ac..b1a3d0c35 100644 --- a/src/SMESH_I/SMESH_Pattern_i.cxx +++ b/src/SMESH_I/SMESH_Pattern_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_Pattern_i.hxx b/src/SMESH_I/SMESH_Pattern_i.hxx index 0fb891e43..b363ac10d 100644 --- a/src/SMESH_I/SMESH_Pattern_i.hxx +++ b/src/SMESH_I/SMESH_Pattern_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_PreMeshInfo.cxx b/src/SMESH_I/SMESH_PreMeshInfo.cxx index 43e91b71b..26eb2b9f5 100644 --- a/src/SMESH_I/SMESH_PreMeshInfo.cxx +++ b/src/SMESH_I/SMESH_PreMeshInfo.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_PreMeshInfo.hxx b/src/SMESH_I/SMESH_PreMeshInfo.hxx index 54c4610c2..38b15a242 100644 --- a/src/SMESH_I/SMESH_PreMeshInfo.hxx +++ b/src/SMESH_I/SMESH_PreMeshInfo.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_PythonDump.hxx b/src/SMESH_I/SMESH_PythonDump.hxx index 4c35408ca..29c544313 100644 --- a/src/SMESH_I/SMESH_PythonDump.hxx +++ b/src/SMESH_I/SMESH_PythonDump.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_subMesh_i.cxx b/src/SMESH_I/SMESH_subMesh_i.cxx index a2006d0b5..fd7fc3d80 100644 --- a/src/SMESH_I/SMESH_subMesh_i.cxx +++ b/src/SMESH_I/SMESH_subMesh_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/SMESH_subMesh_i.hxx b/src/SMESH_I/SMESH_subMesh_i.hxx index da560096d..d9cf053a6 100644 --- a/src/SMESH_I/SMESH_subMesh_i.hxx +++ b/src/SMESH_I/SMESH_subMesh_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_I/smeshpy.py b/src/SMESH_I/smeshpy.py index 1c4859692..fa01ce28f 100644 --- a/src/SMESH_I/smeshpy.py +++ b/src/SMESH_I/smeshpy.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_PY/Makefile.am b/src/SMESH_PY/Makefile.am index 57539c77a..3219c8567 100644 --- a/src/SMESH_PY/Makefile.am +++ b/src/SMESH_PY/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_PY/smeshstudytools.py b/src/SMESH_PY/smeshstudytools.py index 1f9cdd5b5..7281fe519 100644 --- a/src/SMESH_PY/smeshstudytools.py +++ b/src/SMESH_PY/smeshstudytools.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG/Makefile.am b/src/SMESH_SWIG/Makefile.am index a10016c86..ab94f663c 100644 --- a/src/SMESH_SWIG/Makefile.am +++ b/src/SMESH_SWIG/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG/PAL_MESH_041_mesh.py b/src/SMESH_SWIG/PAL_MESH_041_mesh.py index aff527591..bbfdd1abf 100755 --- a/src/SMESH_SWIG/PAL_MESH_041_mesh.py +++ b/src/SMESH_SWIG/PAL_MESH_041_mesh.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/PAL_MESH_043_2D.py b/src/SMESH_SWIG/PAL_MESH_043_2D.py index 424e9a269..8db9bf12f 100755 --- a/src/SMESH_SWIG/PAL_MESH_043_2D.py +++ b/src/SMESH_SWIG/PAL_MESH_043_2D.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/PAL_MESH_043_3D.py b/src/SMESH_SWIG/PAL_MESH_043_3D.py index 14af2d3c2..9607f9bb7 100755 --- a/src/SMESH_SWIG/PAL_MESH_043_3D.py +++ b/src/SMESH_SWIG/PAL_MESH_043_3D.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_AdvancedEditor.py b/src/SMESH_SWIG/SMESH_AdvancedEditor.py index ec3801b20..958dba283 100644 --- a/src/SMESH_SWIG/SMESH_AdvancedEditor.py +++ b/src/SMESH_SWIG/SMESH_AdvancedEditor.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_BelongToGeom.py b/src/SMESH_SWIG/SMESH_BelongToGeom.py index 9f1e741e5..d1ef60872 100644 --- a/src/SMESH_SWIG/SMESH_BelongToGeom.py +++ b/src/SMESH_SWIG/SMESH_BelongToGeom.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_BuildCompound.py b/src/SMESH_SWIG/SMESH_BuildCompound.py index f35d944c9..0c1a9126d 100644 --- a/src/SMESH_SWIG/SMESH_BuildCompound.py +++ b/src/SMESH_SWIG/SMESH_BuildCompound.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG/SMESH_GroupFromGeom.py b/src/SMESH_SWIG/SMESH_GroupFromGeom.py index c77afde20..8c746d15e 100644 --- a/src/SMESH_SWIG/SMESH_GroupFromGeom.py +++ b/src/SMESH_SWIG/SMESH_GroupFromGeom.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_GroupFromGeom2.py b/src/SMESH_SWIG/SMESH_GroupFromGeom2.py index bf250febc..02ec044fe 100755 --- a/src/SMESH_SWIG/SMESH_GroupFromGeom2.py +++ b/src/SMESH_SWIG/SMESH_GroupFromGeom2.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py b/src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py index ec048ab60..03978e0d5 100644 --- a/src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py +++ b/src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_Nut.py b/src/SMESH_SWIG/SMESH_Nut.py index c04514f15..e292cbc2a 100755 --- a/src/SMESH_SWIG/SMESH_Nut.py +++ b/src/SMESH_SWIG/SMESH_Nut.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_Partition1_tetra.py b/src/SMESH_SWIG/SMESH_Partition1_tetra.py index 86e223173..ddd5bb16e 100644 --- a/src/SMESH_SWIG/SMESH_Partition1_tetra.py +++ b/src/SMESH_SWIG/SMESH_Partition1_tetra.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_Sphere.py b/src/SMESH_SWIG/SMESH_Sphere.py index 801058650..64a390752 100644 --- a/src/SMESH_SWIG/SMESH_Sphere.py +++ b/src/SMESH_SWIG/SMESH_Sphere.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_blocks.py b/src/SMESH_SWIG/SMESH_blocks.py index 26f77bfa4..2de2a408f 100644 --- a/src/SMESH_SWIG/SMESH_blocks.py +++ b/src/SMESH_SWIG/SMESH_blocks.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_box.py b/src/SMESH_SWIG/SMESH_box.py index c5e7b1234..8680208cb 100755 --- a/src/SMESH_SWIG/SMESH_box.py +++ b/src/SMESH_SWIG/SMESH_box.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_box2_tetra.py b/src/SMESH_SWIG/SMESH_box2_tetra.py index 77395e423..0aaa8cbab 100644 --- a/src/SMESH_SWIG/SMESH_box2_tetra.py +++ b/src/SMESH_SWIG/SMESH_box2_tetra.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_box3_tetra.py b/src/SMESH_SWIG/SMESH_box3_tetra.py index 79081053f..503ff4f87 100644 --- a/src/SMESH_SWIG/SMESH_box3_tetra.py +++ b/src/SMESH_SWIG/SMESH_box3_tetra.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_box_tetra.py b/src/SMESH_SWIG/SMESH_box_tetra.py index ded92b6ab..4aff58411 100644 --- a/src/SMESH_SWIG/SMESH_box_tetra.py +++ b/src/SMESH_SWIG/SMESH_box_tetra.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_controls.py b/src/SMESH_SWIG/SMESH_controls.py index d7fe36275..d7f533cab 100644 --- a/src/SMESH_SWIG/SMESH_controls.py +++ b/src/SMESH_SWIG/SMESH_controls.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_demo_hexa2_upd.py b/src/SMESH_SWIG/SMESH_demo_hexa2_upd.py index 7de21c108..555ad5b08 100755 --- a/src/SMESH_SWIG/SMESH_demo_hexa2_upd.py +++ b/src/SMESH_SWIG/SMESH_demo_hexa2_upd.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_fixation.py b/src/SMESH_SWIG/SMESH_fixation.py index 3220dda23..e5a68fdec 100644 --- a/src/SMESH_SWIG/SMESH_fixation.py +++ b/src/SMESH_SWIG/SMESH_fixation.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_fixation_hexa.py b/src/SMESH_SWIG/SMESH_fixation_hexa.py index e97507078..3110f003a 100644 --- a/src/SMESH_SWIG/SMESH_fixation_hexa.py +++ b/src/SMESH_SWIG/SMESH_fixation_hexa.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_fixation_netgen.py b/src/SMESH_SWIG/SMESH_fixation_netgen.py index d4c3048a7..f3374b7bf 100644 --- a/src/SMESH_SWIG/SMESH_fixation_netgen.py +++ b/src/SMESH_SWIG/SMESH_fixation_netgen.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_fixation_tetra.py b/src/SMESH_SWIG/SMESH_fixation_tetra.py index 8f5182a9d..b94c354a3 100644 --- a/src/SMESH_SWIG/SMESH_fixation_tetra.py +++ b/src/SMESH_SWIG/SMESH_fixation_tetra.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_flight_skin.py b/src/SMESH_SWIG/SMESH_flight_skin.py index dcefa694f..2d5206194 100644 --- a/src/SMESH_SWIG/SMESH_flight_skin.py +++ b/src/SMESH_SWIG/SMESH_flight_skin.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_freebord.py b/src/SMESH_SWIG/SMESH_freebord.py index cda95e8aa..56b3fe13f 100644 --- a/src/SMESH_SWIG/SMESH_freebord.py +++ b/src/SMESH_SWIG/SMESH_freebord.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_hexaedre.py b/src/SMESH_SWIG/SMESH_hexaedre.py index 7f0840e21..4159ded64 100755 --- a/src/SMESH_SWIG/SMESH_hexaedre.py +++ b/src/SMESH_SWIG/SMESH_hexaedre.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_mechanic.py b/src/SMESH_SWIG/SMESH_mechanic.py index 81b22ff97..5411c8dfd 100644 --- a/src/SMESH_SWIG/SMESH_mechanic.py +++ b/src/SMESH_SWIG/SMESH_mechanic.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_mechanic_editor.py b/src/SMESH_SWIG/SMESH_mechanic_editor.py index 6f577d60b..f754354a9 100644 --- a/src/SMESH_SWIG/SMESH_mechanic_editor.py +++ b/src/SMESH_SWIG/SMESH_mechanic_editor.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_mechanic_netgen.py b/src/SMESH_SWIG/SMESH_mechanic_netgen.py index 330e43766..f5088378b 100644 --- a/src/SMESH_SWIG/SMESH_mechanic_netgen.py +++ b/src/SMESH_SWIG/SMESH_mechanic_netgen.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_mechanic_tetra.py b/src/SMESH_SWIG/SMESH_mechanic_tetra.py index c3c3e9331..135d5d152 100644 --- a/src/SMESH_SWIG/SMESH_mechanic_tetra.py +++ b/src/SMESH_SWIG/SMESH_mechanic_tetra.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_reg.py b/src/SMESH_SWIG/SMESH_reg.py index f100b42cd..afd2a0a7c 100644 --- a/src/SMESH_SWIG/SMESH_reg.py +++ b/src/SMESH_SWIG/SMESH_reg.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_shared_modules.py b/src/SMESH_SWIG/SMESH_shared_modules.py index ca2c21f8c..e0021db89 100644 --- a/src/SMESH_SWIG/SMESH_shared_modules.py +++ b/src/SMESH_SWIG/SMESH_shared_modules.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_test.py b/src/SMESH_SWIG/SMESH_test.py index 05a23abd1..7b2bbbcac 100644 --- a/src/SMESH_SWIG/SMESH_test.py +++ b/src/SMESH_SWIG/SMESH_test.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_test0.py b/src/SMESH_SWIG/SMESH_test0.py index 7c994855b..10fd4ab4b 100644 --- a/src/SMESH_SWIG/SMESH_test0.py +++ b/src/SMESH_SWIG/SMESH_test0.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_test1.py b/src/SMESH_SWIG/SMESH_test1.py index 035208ed4..a739dc9b9 100644 --- a/src/SMESH_SWIG/SMESH_test1.py +++ b/src/SMESH_SWIG/SMESH_test1.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_test1_AndDisplay.py b/src/SMESH_SWIG/SMESH_test1_AndDisplay.py index 15d7b9d96..9c1578404 100644 --- a/src/SMESH_SWIG/SMESH_test1_AndDisplay.py +++ b/src/SMESH_SWIG/SMESH_test1_AndDisplay.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_test2.py b/src/SMESH_SWIG/SMESH_test2.py index edd5abca5..89e4e8f11 100644 --- a/src/SMESH_SWIG/SMESH_test2.py +++ b/src/SMESH_SWIG/SMESH_test2.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_test3.py b/src/SMESH_SWIG/SMESH_test3.py index edc04bd52..04455050b 100644 --- a/src/SMESH_SWIG/SMESH_test3.py +++ b/src/SMESH_SWIG/SMESH_test3.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_test4.py b/src/SMESH_SWIG/SMESH_test4.py index 9148afb9c..230b1f3fb 100755 --- a/src/SMESH_SWIG/SMESH_test4.py +++ b/src/SMESH_SWIG/SMESH_test4.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/SMESH_test5.py b/src/SMESH_SWIG/SMESH_test5.py index d54cd346c..749c9d9d9 100644 --- a/src/SMESH_SWIG/SMESH_test5.py +++ b/src/SMESH_SWIG/SMESH_test5.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/StdMeshersDC.py b/src/SMESH_SWIG/StdMeshersDC.py index d272629c6..31c8b8544 100644 --- a/src/SMESH_SWIG/StdMeshersDC.py +++ b/src/SMESH_SWIG/StdMeshersDC.py @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -16,7 +16,6 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# from smesh import Mesh_Algorithm, AssureGeomPublished, IsEqual, ParseParameters from smesh import GetName, TreatHypoStatus @@ -275,6 +274,7 @@ class StdMeshersDC_Segment(Mesh_Algorithm): store_geom = self.geom if type(vertex) is types.IntType: if vertex == 0 or vertex == 1: + import geompyDC vertex = self.mesh.geompyD.ExtractShapes(self.geom, geompyDC.ShapeType["VERTEX"],True)[vertex] self.geom = vertex pass diff --git a/src/SMESH_SWIG/batchmode_mefisto.py b/src/SMESH_SWIG/batchmode_mefisto.py index 90037dd31..fb888795a 100644 --- a/src/SMESH_SWIG/batchmode_mefisto.py +++ b/src/SMESH_SWIG/batchmode_mefisto.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/batchmode_smesh.py b/src/SMESH_SWIG/batchmode_smesh.py index 9d4aed93e..6daa0e946 100644 --- a/src/SMESH_SWIG/batchmode_smesh.py +++ b/src/SMESH_SWIG/batchmode_smesh.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex00_all.py b/src/SMESH_SWIG/ex00_all.py index 977b34390..381b9ae3c 100644 --- a/src/SMESH_SWIG/ex00_all.py +++ b/src/SMESH_SWIG/ex00_all.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex01_cube2build.py b/src/SMESH_SWIG/ex01_cube2build.py index 6e6311650..10ba3f33a 100644 --- a/src/SMESH_SWIG/ex01_cube2build.py +++ b/src/SMESH_SWIG/ex01_cube2build.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex02_cube2primitive.py b/src/SMESH_SWIG/ex02_cube2primitive.py index 02ed227c3..9350199eb 100644 --- a/src/SMESH_SWIG/ex02_cube2primitive.py +++ b/src/SMESH_SWIG/ex02_cube2primitive.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex03_cube2partition.py b/src/SMESH_SWIG/ex03_cube2partition.py index 251f197d5..1849895fe 100644 --- a/src/SMESH_SWIG/ex03_cube2partition.py +++ b/src/SMESH_SWIG/ex03_cube2partition.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex04_cube5tetraHexa.py b/src/SMESH_SWIG/ex04_cube5tetraHexa.py index 45794da68..773aca145 100644 --- a/src/SMESH_SWIG/ex04_cube5tetraHexa.py +++ b/src/SMESH_SWIG/ex04_cube5tetraHexa.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex05_hole1build.py b/src/SMESH_SWIG/ex05_hole1build.py index 32b41b3de..231c3f1d4 100644 --- a/src/SMESH_SWIG/ex05_hole1build.py +++ b/src/SMESH_SWIG/ex05_hole1build.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex06_hole1boolean.py b/src/SMESH_SWIG/ex06_hole1boolean.py index 1dfe41cbf..0335c3357 100644 --- a/src/SMESH_SWIG/ex06_hole1boolean.py +++ b/src/SMESH_SWIG/ex06_hole1boolean.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex07_hole1partition.py b/src/SMESH_SWIG/ex07_hole1partition.py index 3cb662e0d..84a4326d6 100644 --- a/src/SMESH_SWIG/ex07_hole1partition.py +++ b/src/SMESH_SWIG/ex07_hole1partition.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex08_hole2build.py b/src/SMESH_SWIG/ex08_hole2build.py index bce2462e8..0bc58f133 100644 --- a/src/SMESH_SWIG/ex08_hole2build.py +++ b/src/SMESH_SWIG/ex08_hole2build.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex09_grid4build.py b/src/SMESH_SWIG/ex09_grid4build.py index a8a90fc2b..cbbec434c 100644 --- a/src/SMESH_SWIG/ex09_grid4build.py +++ b/src/SMESH_SWIG/ex09_grid4build.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex10_grid4geometry.py b/src/SMESH_SWIG/ex10_grid4geometry.py index c66decd35..1679e4b5f 100644 --- a/src/SMESH_SWIG/ex10_grid4geometry.py +++ b/src/SMESH_SWIG/ex10_grid4geometry.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex11_grid3partition.py b/src/SMESH_SWIG/ex11_grid3partition.py index dd0d10a7a..252aa5563 100644 --- a/src/SMESH_SWIG/ex11_grid3partition.py +++ b/src/SMESH_SWIG/ex11_grid3partition.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex12_grid17partition.py b/src/SMESH_SWIG/ex12_grid17partition.py index 8a2c4cfcd..bf6593b99 100644 --- a/src/SMESH_SWIG/ex12_grid17partition.py +++ b/src/SMESH_SWIG/ex12_grid17partition.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex13_hole1partial.py b/src/SMESH_SWIG/ex13_hole1partial.py index bb64bae72..a54fd6266 100644 --- a/src/SMESH_SWIG/ex13_hole1partial.py +++ b/src/SMESH_SWIG/ex13_hole1partial.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex14_cyl1holed.py b/src/SMESH_SWIG/ex14_cyl1holed.py index 4e747e8b3..0f058c098 100644 --- a/src/SMESH_SWIG/ex14_cyl1holed.py +++ b/src/SMESH_SWIG/ex14_cyl1holed.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex15_cyl2geometry.py b/src/SMESH_SWIG/ex15_cyl2geometry.py index 27398ba05..5322e9ef5 100644 --- a/src/SMESH_SWIG/ex15_cyl2geometry.py +++ b/src/SMESH_SWIG/ex15_cyl2geometry.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex16_cyl2complementary.py b/src/SMESH_SWIG/ex16_cyl2complementary.py index 722002d5b..f644c22a7 100644 --- a/src/SMESH_SWIG/ex16_cyl2complementary.py +++ b/src/SMESH_SWIG/ex16_cyl2complementary.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex17_dome1.py b/src/SMESH_SWIG/ex17_dome1.py index 749e979bd..2626431f0 100644 --- a/src/SMESH_SWIG/ex17_dome1.py +++ b/src/SMESH_SWIG/ex17_dome1.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex18_dome2.py b/src/SMESH_SWIG/ex18_dome2.py index 9b50ddd75..dc31fe8f8 100644 --- a/src/SMESH_SWIG/ex18_dome2.py +++ b/src/SMESH_SWIG/ex18_dome2.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex19_sphereINcube.py b/src/SMESH_SWIG/ex19_sphereINcube.py index c39383c06..879596348 100644 --- a/src/SMESH_SWIG/ex19_sphereINcube.py +++ b/src/SMESH_SWIG/ex19_sphereINcube.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex21_lamp.py b/src/SMESH_SWIG/ex21_lamp.py index 8332047e0..befd0e1d8 100644 --- a/src/SMESH_SWIG/ex21_lamp.py +++ b/src/SMESH_SWIG/ex21_lamp.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/ex24_cylinder.py b/src/SMESH_SWIG/ex24_cylinder.py index 8a9d74819..91100376b 100644 --- a/src/SMESH_SWIG/ex24_cylinder.py +++ b/src/SMESH_SWIG/ex24_cylinder.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG/ex29_refine.py b/src/SMESH_SWIG/ex29_refine.py index 586b7bcf2..8363ea81a 100644 --- a/src/SMESH_SWIG/ex29_refine.py +++ b/src/SMESH_SWIG/ex29_refine.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG/ex30_groupsOp.py b/src/SMESH_SWIG/ex30_groupsOp.py index 8f532445a..5bab30823 100755 --- a/src/SMESH_SWIG/ex30_groupsOp.py +++ b/src/SMESH_SWIG/ex30_groupsOp.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG/ex30_tepal.py b/src/SMESH_SWIG/ex30_tepal.py index 4d2737cdc..ece87736d 100644 --- a/src/SMESH_SWIG/ex30_tepal.py +++ b/src/SMESH_SWIG/ex30_tepal.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG/ex31_dimGroup.py b/src/SMESH_SWIG/ex31_dimGroup.py index db4730bde..ae8daeb0c 100755 --- a/src/SMESH_SWIG/ex31_dimGroup.py +++ b/src/SMESH_SWIG/ex31_dimGroup.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG/smesh.py b/src/SMESH_SWIG/smesh.py index ebddea0b3..c13a57e8e 100644 --- a/src/SMESH_SWIG/smesh.py +++ b/src/SMESH_SWIG/smesh.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/SMESH_SWIG/smeshDC.py b/src/SMESH_SWIG/smeshDC.py index 3c36b1be6..f79bd99e8 100644 --- a/src/SMESH_SWIG/smeshDC.py +++ b/src/SMESH_SWIG/smeshDC.py @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -256,7 +256,9 @@ def TreatHypoStatus(status, hypName, geomName, isAlgo): def AssureGeomPublished(mesh, geom, name=''): if not isinstance( geom, geompyDC.GEOM._objref_GEOM_Object ): return - if not geom.IsSame( mesh.geom ) and not geom.GetStudyEntry(): + if not geom.IsSame( mesh.geom ) and \ + not geom.GetStudyEntry() and \ + mesh.smeshpyD.GetCurrentStudy(): ## set the study studyID = mesh.smeshpyD.GetCurrentStudy()._get_StudyId() if studyID != mesh.geompyD.myStudyId: @@ -443,6 +445,11 @@ class smeshDC(SMESH._objref_SMESH_Gen): self.geompyD=geompyD self.SetGeomEngine(geompyD) SMESH._objref_SMESH_Gen.SetCurrentStudy(self,theStudy) + global notebook + if theStudy: + notebook = salome_notebook.NoteBook( theStudy ) + else: + notebook = salome_notebook.NoteBook( salome_notebook.PseudoStudyForNoteBook() ) ## Gets the current study # @ingroup l1_auxiliary @@ -957,15 +964,17 @@ class Mesh: if obj is None: obj = 0 if obj != 0: + objHasName = True if isinstance(obj, geompyDC.GEOM._objref_GEOM_Object): self.geom = obj # publish geom of mesh (issue 0021122) - if not self.geom.GetStudyEntry(): + if not self.geom.GetStudyEntry() and smeshpyD.GetCurrentStudy(): + objHasName = False studyID = smeshpyD.GetCurrentStudy()._get_StudyId() if studyID != geompyD.myStudyId: geompyD.init_geom( smeshpyD.GetCurrentStudy()) pass - geo_name = "%s_%s"%(self.geom.GetShapeType(), id(self.geom)%100) + geo_name = "%s_%s_for_meshing"%(self.geom.GetShapeType(), id(self.geom)%100) geompyD.addToStudy( self.geom, geo_name ) self.mesh = self.smeshpyD.CreateMesh(self.geom) @@ -975,7 +984,7 @@ class Mesh: self.mesh = self.smeshpyD.CreateEmptyMesh() if name != 0: self.smeshpyD.SetName(self.mesh, name) - elif obj != 0: + elif obj != 0 and objHasName: self.smeshpyD.SetName(self.mesh, GetName(obj)) if not self.geom: @@ -1174,7 +1183,7 @@ class Mesh: if errText: errText += ". " errText += err.comment if allReasons != "":allReasons += "\n" - allReasons += '"%s" failed%s. Error: %s' %(err.algoName, shapeText, errText) + allReasons += '- "%s" failed%s. Error: %s' %(err.algoName, shapeText, errText) pass # Treat hyp errors @@ -1205,17 +1214,18 @@ class Mesh: " Revise Mesh.Compute() implementation in smeshDC.py!" pass if allReasons != "":allReasons += "\n" - allReasons += reason + allReasons += "- " + reason pass - if allReasons != "": - print '"' + GetName(self.mesh) + '"',"has not been computed:" + if not ok or allReasons != "": + msg = '"' + GetName(self.mesh) + '"' + if ok: msg += " has been computed with warnings" + else: msg += " has not been computed" + if allReasons != "": msg += ":" + else: msg += "." + print msg print allReasons - ok = False - elif not ok: - print '"' + GetName(self.mesh) + '"',"has not been computed." - pass pass - if salome.sg.hasDesktop(): + if salome.sg.hasDesktop() and self.mesh.GetStudyId() >= 0: smeshgui = salome.ImportComponentGUI("SMESH") smeshgui.Init(self.mesh.GetStudyId()) smeshgui.SetMeshIcon( salome.ObjectToID( self.mesh ), ok, (self.NbNodes()==0) ) @@ -1304,6 +1314,7 @@ class Mesh: if not geom: geom = self.mesh.GetShapeToMesh() pass + AssureGeomPublished( self, geom, "shape for %s" % hyp.GetName()) status = self.mesh.AddHypothesis(geom, hyp) isAlgo = hyp._narrow( SMESH_Algo ) hyp_name = GetName( hyp ) @@ -3844,12 +3855,20 @@ class Mesh: # @param theAffectedElems - group of elements to which the replicated nodes # should be associated to. # @param theMakeGroup forces the generation of a group containing new elements. - # @return TRUE or a created group if operation has been completed successfully, + # @param theMakeNodeGroup forces the generation of a group containing new nodes. + # @return TRUE or created groups (one or two) if operation has been completed successfully, # FALSE or None otherwise # @ingroup l2_modif_edit - def DoubleNodeElemGroup(self, theElems, theNodesNot, theAffectedElems, theMakeGroup=False): - if theMakeGroup: - return self.editor.DoubleNodeElemGroupNew(theElems, theNodesNot, theAffectedElems) + def DoubleNodeElemGroup(self, theElems, theNodesNot, theAffectedElems, + theMakeGroup=False, theMakeNodeGroup=False): + if theMakeGroup or theMakeNodeGroup: + twoGroups = self.editor.DoubleNodeElemGroup2New(theElems, theNodesNot, + theAffectedElems, + theMakeGroup, theMakeNodeGroup) + if theMakeGroup and theMakeNodeGroup: + return twoGroups + else: + return twoGroups[ int(theMakeNodeGroup) ] return self.editor.DoubleNodeElemGroup(theElems, theNodesNot, theAffectedElems) ## Creates a hole in a mesh by doubling the nodes of some particular elements @@ -3870,12 +3889,20 @@ class Mesh: # @param theAffectedElems - group of elements to which the replicated nodes # should be associated to. # @param theMakeGroup forces the generation of a group containing new elements. - # @return TRUE or a created group if operation has been completed successfully, + # @param theMakeNodeGroup forces the generation of a group containing new nodes. + # @return TRUE or created groups (one or two) if operation has been completed successfully, # FALSE or None otherwise # @ingroup l2_modif_edit - def DoubleNodeElemGroups(self, theElems, theNodesNot, theAffectedElems, theMakeGroup=False): - if theMakeGroup: - return self.editor.DoubleNodeElemGroupsNew(theElems, theNodesNot, theAffectedElems) + def DoubleNodeElemGroups(self, theElems, theNodesNot, theAffectedElems, + theMakeGroup=False, theMakeNodeGroup=False): + if theMakeGroup or theMakeNodeGroup: + twoGroups = self.editor.DoubleNodeElemGroups2New(theElems, theNodesNot, + theAffectedElems, + theMakeGroup, theMakeNodeGroup) + if theMakeGroup and theMakeNodeGroup: + return twoGroups + else: + return twoGroups[ int(theMakeNodeGroup) ] return self.editor.DoubleNodeElemGroups(theElems, theNodesNot, theAffectedElems) ## Creates a hole in a mesh by doubling the nodes of some particular elements @@ -4064,6 +4091,7 @@ class Mesh_Algorithm: # @return SMESH.SMESH_Algo def FindAlgorithm (self, algoname, smeshpyD): study = smeshpyD.GetCurrentStudy() + if not study: return None #to do: find component by smeshpyD object, not by its data type scomp = study.FindComponent(smeshpyD.ComponentDataType()) if scomp is not None: @@ -4202,15 +4230,10 @@ class Mesh_Algorithm: ## Returns entry of the shape to mesh in the study def MainShapeEntry(self): - entry = "" - if not self.mesh or not self.mesh.GetMesh(): return entry - if not self.mesh.GetMesh().HasShapeToMesh(): return entry - study = self.mesh.smeshpyD.GetCurrentStudy() - ior = salome.orb.object_to_string( self.mesh.GetShape() ) - sobj = study.FindObjectIOR(ior) - if sobj: entry = sobj.GetID() - if not entry: return "" - return entry + if not self.mesh or not self.mesh.GetMesh(): return "" + if not self.mesh.GetMesh().HasShapeToMesh(): return "" + shape = self.mesh.GetShape() + return shape.GetStudyEntry() ## Defines "ViscousLayers" hypothesis to give parameters of layers of prisms to build # near mesh boundary. This hypothesis can be used by several 3D algorithms: diff --git a/src/SMESH_SWIG_WITHIHM/Makefile.am b/src/SMESH_SWIG_WITHIHM/Makefile.am index 525f09239..ee0248ac1 100644 --- a/src/SMESH_SWIG_WITHIHM/Makefile.am +++ b/src/SMESH_SWIG_WITHIHM/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx b/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx index 653068c60..eca22e91e 100644 --- a/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx +++ b/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.h b/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.h index bc17d8eb3..4a7b8e719 100644 --- a/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.h +++ b/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.i b/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.i index 5574ad2ab..52d2bb87f 100644 --- a/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.i +++ b/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.i @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/Makefile.am b/src/StdMeshers/Makefile.am index da1541e20..e831115fa 100644 --- a/src/StdMeshers/Makefile.am +++ b/src/StdMeshers/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/SMESH_StdMeshers.hxx b/src/StdMeshers/SMESH_StdMeshers.hxx index ec59777ae..50e53acdd 100755 --- a/src/StdMeshers/SMESH_StdMeshers.hxx +++ b/src/StdMeshers/SMESH_StdMeshers.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Arithmetic1D.cxx b/src/StdMeshers/StdMeshers_Arithmetic1D.cxx index 4f6a0527c..589972c8b 100644 --- a/src/StdMeshers/StdMeshers_Arithmetic1D.cxx +++ b/src/StdMeshers/StdMeshers_Arithmetic1D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Arithmetic1D.hxx b/src/StdMeshers/StdMeshers_Arithmetic1D.hxx index ad06a2afc..168b6b657 100644 --- a/src/StdMeshers/StdMeshers_Arithmetic1D.hxx +++ b/src/StdMeshers/StdMeshers_Arithmetic1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_AutomaticLength.cxx b/src/StdMeshers/StdMeshers_AutomaticLength.cxx index 7181815c7..d12f51a34 100644 --- a/src/StdMeshers/StdMeshers_AutomaticLength.cxx +++ b/src/StdMeshers/StdMeshers_AutomaticLength.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -18,6 +18,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // SMESH SMESH : implementaion of SMESH idl descriptions // File : StdMeshers_AutomaticLength.cxx diff --git a/src/StdMeshers/StdMeshers_AutomaticLength.hxx b/src/StdMeshers/StdMeshers_AutomaticLength.hxx index d15586866..089b935ac 100644 --- a/src/StdMeshers/StdMeshers_AutomaticLength.hxx +++ b/src/StdMeshers/StdMeshers_AutomaticLength.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_CartesianParameters3D.cxx b/src/StdMeshers/StdMeshers_CartesianParameters3D.cxx index 1f54353b2..9446e123d 100644 --- a/src/StdMeshers/StdMeshers_CartesianParameters3D.cxx +++ b/src/StdMeshers/StdMeshers_CartesianParameters3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_CartesianParameters3D.hxx b/src/StdMeshers/StdMeshers_CartesianParameters3D.hxx index e77680438..682ce4c53 100644 --- a/src/StdMeshers/StdMeshers_CartesianParameters3D.hxx +++ b/src/StdMeshers/StdMeshers_CartesianParameters3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Cartesian_3D.cxx b/src/StdMeshers/StdMeshers_Cartesian_3D.cxx index 47d1055ff..b22843958 100644 --- a/src/StdMeshers/StdMeshers_Cartesian_3D.cxx +++ b/src/StdMeshers/StdMeshers_Cartesian_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -85,6 +85,14 @@ using namespace std; //#define _MY_DEBUG_ +#define ELLIPSOLID_WORKAROUND // remove it as soon as http://tracker.dev.opencascade.org/view.php?id=22809 is solved + +#ifdef ELLIPSOLID_WORKAROUND +#include +#include +#include +#endif + //============================================================================= /*! * Constructor @@ -246,6 +254,41 @@ namespace const TopoDS_Shape& shape ); void ComputeNodes(SMESH_MesherHelper& helper); }; +#ifdef ELLIPSOLID_WORKAROUND + // -------------------------------------------------------------------------- + /*! + * \brief struct temporary replacing IntCurvesFace_Intersector until + * OCCT bug 0022809 is fixed + * http://tracker.dev.opencascade.org/view.php?id=22809 + */ + struct TMP_IntCurvesFace_Intersector + { + BRepAdaptor_Surface _surf; + double _tol; + BRepIntCurveSurface_Inter _intcs; + vector _points; + BRepTopAdaptor_TopolTool _clsf; + + TMP_IntCurvesFace_Intersector(const TopoDS_Face& face, const double tol) + :_surf( face ), _tol( tol ), _clsf( new BRepAdaptor_HSurface(_surf) ) {} + Bnd_Box Bounding() const { Bnd_Box b; BRepBndLib::Add (_surf.Face(), b); return b; } + void Perform( const gp_Lin& line, const double w0, const double w1 ) + { + _points.clear(); + for ( _intcs.Init( _surf.Face(), line, _tol ); _intcs.More(); _intcs.Next() ) + if ( w0 <= _intcs.W() && _intcs.W() <= w1 ) + _points.push_back( _intcs.Point() ); + } + bool IsDone() const { return true; } + int NbPnt() const { return _points.size(); } + IntCurveSurface_TransitionOnCurve Transition( const int i ) const { return _points[ i-1 ].Transition(); } + double WParameter( const int i ) const { return _points[ i-1 ].W(); } + TopAbs_State ClassifyUVPoint(const gp_Pnt2d& p) { return _clsf.Classify( p, _tol ); } + }; +#define __IntCurvesFace_Intersector TMP_IntCurvesFace_Intersector +#else +#define __IntCurvesFace_Intersector IntCurvesFace_Intersector +#endif // -------------------------------------------------------------------------- /*! * \brief Intersector of TopoDS_Face with all GridLine's @@ -255,7 +298,7 @@ namespace TopoDS_Face _face; Grid* _grid; Bnd_Box _bndBox; - IntCurvesFace_Intersector* _surfaceInt; + __IntCurvesFace_Intersector* _surfaceInt; vector< std::pair< GridLine*, IntersectionPoint > > _intersections; FaceGridIntersector(): _grid(0), _surfaceInt(0) {} @@ -272,11 +315,11 @@ namespace GetCurveFaceIntersector(); return _bndBox; } - IntCurvesFace_Intersector* GetCurveFaceIntersector() + __IntCurvesFace_Intersector* GetCurveFaceIntersector() { if ( !_surfaceInt ) { - _surfaceInt = new IntCurvesFace_Intersector( _face, Precision::PConfusion() ); + _surfaceInt = new __IntCurvesFace_Intersector( _face, Precision::PConfusion() ); _bndBox = _surfaceInt->Bounding(); if ( _bndBox.IsVoid() ) BRepBndLib::Add (_face, _bndBox); @@ -301,7 +344,7 @@ namespace gp_Cone _cone; gp_Sphere _sphere; gp_Torus _torus; - IntCurvesFace_Intersector* _surfaceInt; + __IntCurvesFace_Intersector* _surfaceInt; vector< IntersectionPoint > _intPoints; @@ -312,6 +355,7 @@ namespace void IntersectWithTorus (const GridLine& gridLine); void IntersectWithSurface (const GridLine& gridLine); + bool UVIsOnFace() const; void addIntPoint(const bool toClassify=true); bool isParamOnLineOK( const double linLength ) { @@ -879,12 +923,20 @@ namespace } //================================================================================ /* - * Store an intersection if it is In or ON the face + * Return true if (_u,_v) is on the face + */ + bool FaceLineIntersector::UVIsOnFace() const + { + TopAbs_State state = _surfaceInt->ClassifyUVPoint(gp_Pnt2d( _u,_v )); + return ( state == TopAbs_IN || state == TopAbs_ON ); + } + //================================================================================ + /* + * Store an intersection if it is IN or ON the face */ void FaceLineIntersector::addIntPoint(const bool toClassify) { - TopAbs_State state = toClassify ? _surfaceInt->ClassifyUVPoint(gp_Pnt2d( _u, _v )) : TopAbs_IN; - if ( state == TopAbs_IN || state == TopAbs_ON ) + if ( !toClassify || UVIsOnFace() ) { IntersectionPoint p; p._paramOnLine = _w; @@ -952,8 +1004,7 @@ namespace _w = linCone.ParamOnConic( i ); if ( !isParamOnLineOK( gridLine._length )) continue; ElSLib::Parameters(_cone, linCone.Point(i) ,_u,_v); - TopAbs_State state = _surfaceInt->ClassifyUVPoint(gp_Pnt2d( _u, _v )); - if ( state == TopAbs_IN || state == TopAbs_ON ) + if ( UVIsOnFace() ) { ElSLib::D1( _u, _v, _cone, P, du, dv ); norm = du ^ dv; @@ -1023,8 +1074,7 @@ namespace _w = linTorus.ParamOnLine( i ); if ( !isParamOnLineOK( gridLine._length )) continue; linTorus.ParamOnTorus( i, _u,_v ); - TopAbs_State state = _surfaceInt->ClassifyUVPoint(gp_Pnt2d( _u, _v )); - if ( state == TopAbs_IN || state == TopAbs_ON ) + if ( UVIsOnFace() ) { ElSLib::D1( _u, _v, _torus, P, du, dv ); norm = du ^ dv; @@ -1902,8 +1952,13 @@ bool StdMeshers_Cartesian_3D::Compute(SMESH_Mesh & theMesh, if ( gridBox.IsOut( gp_Pnt( x0,y0,z0 )) || gridBox.IsOut( gp_Pnt( x1,y1,z1 ))) for ( size_t i = 0; i < facesItersectors.size(); ++i ) + { if ( !facesItersectors[i].IsInGrid( gridBox )) return error("The grid doesn't enclose the geometry"); +#ifdef ELLIPSOLID_WORKAROUND + delete facesItersectors[i]._surfaceInt, facesItersectors[i]._surfaceInt = 0; +#endif + } } #ifdef WITH_TBB diff --git a/src/StdMeshers/StdMeshers_Cartesian_3D.hxx b/src/StdMeshers/StdMeshers_Cartesian_3D.hxx index 48515fc02..4aefa321f 100644 --- a/src/StdMeshers/StdMeshers_Cartesian_3D.hxx +++ b/src/StdMeshers/StdMeshers_Cartesian_3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_CompositeHexa_3D.cxx b/src/StdMeshers/StdMeshers_CompositeHexa_3D.cxx index 4c73b4ebd..9188afab5 100644 --- a/src/StdMeshers/StdMeshers_CompositeHexa_3D.cxx +++ b/src/StdMeshers/StdMeshers_CompositeHexa_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -15,6 +15,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // SMESH SMESH : implementaion of SMESH idl descriptions // File : StdMeshers_CompositeHexa_3D.cxx diff --git a/src/StdMeshers/StdMeshers_CompositeHexa_3D.hxx b/src/StdMeshers/StdMeshers_CompositeHexa_3D.hxx index 81eeffcf8..24307a1e1 100644 --- a/src/StdMeshers/StdMeshers_CompositeHexa_3D.hxx +++ b/src/StdMeshers/StdMeshers_CompositeHexa_3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx b/src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx index 6df82b480..2b5847038 100644 --- a/src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx +++ b/src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_CompositeSegment_1D.hxx b/src/StdMeshers/StdMeshers_CompositeSegment_1D.hxx index dd781bd8b..c1beab206 100644 --- a/src/StdMeshers/StdMeshers_CompositeSegment_1D.hxx +++ b/src/StdMeshers/StdMeshers_CompositeSegment_1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Deflection1D.cxx b/src/StdMeshers/StdMeshers_Deflection1D.cxx index a8716d189..92e8589e7 100644 --- a/src/StdMeshers/StdMeshers_Deflection1D.cxx +++ b/src/StdMeshers/StdMeshers_Deflection1D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Deflection1D.hxx b/src/StdMeshers/StdMeshers_Deflection1D.hxx index afdc690b7..4f7ea0975 100644 --- a/src/StdMeshers/StdMeshers_Deflection1D.hxx +++ b/src/StdMeshers/StdMeshers_Deflection1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Distribution.cxx b/src/StdMeshers/StdMeshers_Distribution.cxx index e1f0d3ada..fca2976f7 100644 --- a/src/StdMeshers/StdMeshers_Distribution.cxx +++ b/src/StdMeshers/StdMeshers_Distribution.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Distribution.hxx b/src/StdMeshers/StdMeshers_Distribution.hxx index 2809c66c6..10ba4cde8 100644 --- a/src/StdMeshers/StdMeshers_Distribution.hxx +++ b/src/StdMeshers/StdMeshers_Distribution.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_FaceSide.cxx b/src/StdMeshers/StdMeshers_FaceSide.cxx index 8f19897b0..e2e26b6a0 100644 --- a/src/StdMeshers/StdMeshers_FaceSide.cxx +++ b/src/StdMeshers/StdMeshers_FaceSide.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_FaceSide.hxx b/src/StdMeshers/StdMeshers_FaceSide.hxx index 46e6ebc4d..4a119ed84 100644 --- a/src/StdMeshers/StdMeshers_FaceSide.hxx +++ b/src/StdMeshers/StdMeshers_FaceSide.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_FixedPoints1D.cxx b/src/StdMeshers/StdMeshers_FixedPoints1D.cxx index 2ae12da1b..86c3f5363 100644 --- a/src/StdMeshers/StdMeshers_FixedPoints1D.cxx +++ b/src/StdMeshers/StdMeshers_FixedPoints1D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_FixedPoints1D.hxx b/src/StdMeshers/StdMeshers_FixedPoints1D.hxx index 68ea50415..384ad9c93 100644 --- a/src/StdMeshers/StdMeshers_FixedPoints1D.hxx +++ b/src/StdMeshers/StdMeshers_FixedPoints1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_HexaFromSkin_3D.cxx b/src/StdMeshers/StdMeshers_HexaFromSkin_3D.cxx index a54045de1..58a90931c 100644 --- a/src/StdMeshers/StdMeshers_HexaFromSkin_3D.cxx +++ b/src/StdMeshers/StdMeshers_HexaFromSkin_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -15,6 +15,7 @@ // 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 : StdMeshers_HexaFromSkin_3D.cxx // Created : Wed Jan 27 12:28:07 2010 diff --git a/src/StdMeshers/StdMeshers_HexaFromSkin_3D.hxx b/src/StdMeshers/StdMeshers_HexaFromSkin_3D.hxx index a61969fcc..0912a4d03 100644 --- a/src/StdMeshers/StdMeshers_HexaFromSkin_3D.hxx +++ b/src/StdMeshers/StdMeshers_HexaFromSkin_3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_Hexa_3D.cxx b/src/StdMeshers/StdMeshers_Hexa_3D.cxx index 5cd250767..29f48f96e 100644 --- a/src/StdMeshers/StdMeshers_Hexa_3D.cxx +++ b/src/StdMeshers/StdMeshers_Hexa_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Hexa_3D.hxx b/src/StdMeshers/StdMeshers_Hexa_3D.hxx index e99fa921d..48f1eebbe 100644 --- a/src/StdMeshers/StdMeshers_Hexa_3D.hxx +++ b/src/StdMeshers/StdMeshers_Hexa_3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_ImportSource.cxx b/src/StdMeshers/StdMeshers_ImportSource.cxx index 6f1997439..e93b83a61 100644 --- a/src/StdMeshers/StdMeshers_ImportSource.cxx +++ b/src/StdMeshers/StdMeshers_ImportSource.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_ImportSource.hxx b/src/StdMeshers/StdMeshers_ImportSource.hxx index 1f87da44c..d3347de15 100644 --- a/src/StdMeshers/StdMeshers_ImportSource.hxx +++ b/src/StdMeshers/StdMeshers_ImportSource.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Import_1D.cxx b/src/StdMeshers/StdMeshers_Import_1D.cxx index b95e12b90..b8a5076b8 100644 --- a/src/StdMeshers/StdMeshers_Import_1D.cxx +++ b/src/StdMeshers/StdMeshers_Import_1D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Import_1D.hxx b/src/StdMeshers/StdMeshers_Import_1D.hxx index be1a0c936..b71b90564 100644 --- a/src/StdMeshers/StdMeshers_Import_1D.hxx +++ b/src/StdMeshers/StdMeshers_Import_1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Import_1D2D.cxx b/src/StdMeshers/StdMeshers_Import_1D2D.cxx index cd8f4acfd..8180f0a02 100644 --- a/src/StdMeshers/StdMeshers_Import_1D2D.cxx +++ b/src/StdMeshers/StdMeshers_Import_1D2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Import_1D2D.hxx b/src/StdMeshers/StdMeshers_Import_1D2D.hxx index c6d4909ec..fc3a89d85 100644 --- a/src/StdMeshers/StdMeshers_Import_1D2D.hxx +++ b/src/StdMeshers/StdMeshers_Import_1D2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_LayerDistribution.cxx b/src/StdMeshers/StdMeshers_LayerDistribution.cxx index 0538ce515..06693566b 100644 --- a/src/StdMeshers/StdMeshers_LayerDistribution.cxx +++ b/src/StdMeshers/StdMeshers_LayerDistribution.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_LayerDistribution.hxx b/src/StdMeshers/StdMeshers_LayerDistribution.hxx index f7a8a1425..921d06bd3 100644 --- a/src/StdMeshers/StdMeshers_LayerDistribution.hxx +++ b/src/StdMeshers/StdMeshers_LayerDistribution.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_LayerDistribution2D.cxx b/src/StdMeshers/StdMeshers_LayerDistribution2D.cxx index 6ea6d3f44..581e43613 100644 --- a/src/StdMeshers/StdMeshers_LayerDistribution2D.cxx +++ b/src/StdMeshers/StdMeshers_LayerDistribution2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_LayerDistribution2D.hxx b/src/StdMeshers/StdMeshers_LayerDistribution2D.hxx index b00c49a73..f3ae9b290 100644 --- a/src/StdMeshers/StdMeshers_LayerDistribution2D.hxx +++ b/src/StdMeshers/StdMeshers_LayerDistribution2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_LengthFromEdges.cxx b/src/StdMeshers/StdMeshers_LengthFromEdges.cxx index 4c9f043db..317b43d05 100644 --- a/src/StdMeshers/StdMeshers_LengthFromEdges.cxx +++ b/src/StdMeshers/StdMeshers_LengthFromEdges.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_LengthFromEdges.hxx b/src/StdMeshers/StdMeshers_LengthFromEdges.hxx index a72b952a3..a80a1e72c 100644 --- a/src/StdMeshers/StdMeshers_LengthFromEdges.hxx +++ b/src/StdMeshers/StdMeshers_LengthFromEdges.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_LocalLength.cxx b/src/StdMeshers/StdMeshers_LocalLength.cxx index 5e5cda734..0706f9ef2 100644 --- a/src/StdMeshers/StdMeshers_LocalLength.cxx +++ b/src/StdMeshers/StdMeshers_LocalLength.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_LocalLength.hxx b/src/StdMeshers/StdMeshers_LocalLength.hxx index fc45efcef..6232e127c 100644 --- a/src/StdMeshers/StdMeshers_LocalLength.hxx +++ b/src/StdMeshers/StdMeshers_LocalLength.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_MEFISTO_2D.cxx b/src/StdMeshers/StdMeshers_MEFISTO_2D.cxx index f9aa82701..fe637c65a 100644 --- a/src/StdMeshers/StdMeshers_MEFISTO_2D.cxx +++ b/src/StdMeshers/StdMeshers_MEFISTO_2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_MEFISTO_2D.hxx b/src/StdMeshers/StdMeshers_MEFISTO_2D.hxx index 1992aff63..0dce86135 100644 --- a/src/StdMeshers/StdMeshers_MEFISTO_2D.hxx +++ b/src/StdMeshers/StdMeshers_MEFISTO_2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_MaxElementArea.cxx b/src/StdMeshers/StdMeshers_MaxElementArea.cxx index dd75fb789..e42dd783c 100644 --- a/src/StdMeshers/StdMeshers_MaxElementArea.cxx +++ b/src/StdMeshers/StdMeshers_MaxElementArea.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_MaxElementArea.hxx b/src/StdMeshers/StdMeshers_MaxElementArea.hxx index 6966f57fd..f7ea305ad 100644 --- a/src/StdMeshers/StdMeshers_MaxElementArea.hxx +++ b/src/StdMeshers/StdMeshers_MaxElementArea.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_MaxElementVolume.cxx b/src/StdMeshers/StdMeshers_MaxElementVolume.cxx index 6fe395b92..b70bdfa52 100644 --- a/src/StdMeshers/StdMeshers_MaxElementVolume.cxx +++ b/src/StdMeshers/StdMeshers_MaxElementVolume.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_MaxElementVolume.hxx b/src/StdMeshers/StdMeshers_MaxElementVolume.hxx index 7d5319598..27d332b32 100644 --- a/src/StdMeshers/StdMeshers_MaxElementVolume.hxx +++ b/src/StdMeshers/StdMeshers_MaxElementVolume.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_MaxLength.cxx b/src/StdMeshers/StdMeshers_MaxLength.cxx index 2ce20b5d6..9597001f5 100644 --- a/src/StdMeshers/StdMeshers_MaxLength.cxx +++ b/src/StdMeshers/StdMeshers_MaxLength.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_MaxLength.hxx b/src/StdMeshers/StdMeshers_MaxLength.hxx index f04119742..7ea21e110 100644 --- a/src/StdMeshers/StdMeshers_MaxLength.hxx +++ b/src/StdMeshers/StdMeshers_MaxLength.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_NotConformAllowed.cxx b/src/StdMeshers/StdMeshers_NotConformAllowed.cxx index f598567dc..54a986b06 100644 --- a/src/StdMeshers/StdMeshers_NotConformAllowed.cxx +++ b/src/StdMeshers/StdMeshers_NotConformAllowed.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_NotConformAllowed.hxx b/src/StdMeshers/StdMeshers_NotConformAllowed.hxx index e65dea91f..d52574b59 100644 --- a/src/StdMeshers/StdMeshers_NotConformAllowed.hxx +++ b/src/StdMeshers/StdMeshers_NotConformAllowed.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_NumberOfLayers.cxx b/src/StdMeshers/StdMeshers_NumberOfLayers.cxx index e0b15d29b..9026f2252 100644 --- a/src/StdMeshers/StdMeshers_NumberOfLayers.cxx +++ b/src/StdMeshers/StdMeshers_NumberOfLayers.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_NumberOfLayers.hxx b/src/StdMeshers/StdMeshers_NumberOfLayers.hxx index 3ff8c67b6..dc7d60cde 100644 --- a/src/StdMeshers/StdMeshers_NumberOfLayers.hxx +++ b/src/StdMeshers/StdMeshers_NumberOfLayers.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_NumberOfLayers2D.cxx b/src/StdMeshers/StdMeshers_NumberOfLayers2D.cxx index 6d246f1c4..776c42f7b 100644 --- a/src/StdMeshers/StdMeshers_NumberOfLayers2D.cxx +++ b/src/StdMeshers/StdMeshers_NumberOfLayers2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_NumberOfLayers2D.hxx b/src/StdMeshers/StdMeshers_NumberOfLayers2D.hxx index 3a2f7f679..eef7395eb 100644 --- a/src/StdMeshers/StdMeshers_NumberOfLayers2D.hxx +++ b/src/StdMeshers/StdMeshers_NumberOfLayers2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_NumberOfSegments.cxx b/src/StdMeshers/StdMeshers_NumberOfSegments.cxx index 9a7144602..d9d1362d0 100644 --- a/src/StdMeshers/StdMeshers_NumberOfSegments.cxx +++ b/src/StdMeshers/StdMeshers_NumberOfSegments.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_NumberOfSegments.hxx b/src/StdMeshers/StdMeshers_NumberOfSegments.hxx index 9714f475c..a232c5871 100644 --- a/src/StdMeshers/StdMeshers_NumberOfSegments.hxx +++ b/src/StdMeshers/StdMeshers_NumberOfSegments.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Penta_3D.cxx b/src/StdMeshers/StdMeshers_Penta_3D.cxx index fd52d5877..29c935a64 100644 --- a/src/StdMeshers/StdMeshers_Penta_3D.cxx +++ b/src/StdMeshers/StdMeshers_Penta_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Penta_3D.hxx b/src/StdMeshers/StdMeshers_Penta_3D.hxx index fa4ba838a..5d23368cc 100644 --- a/src/StdMeshers/StdMeshers_Penta_3D.hxx +++ b/src/StdMeshers/StdMeshers_Penta_3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Prism_3D.cxx b/src/StdMeshers/StdMeshers_Prism_3D.cxx index 0c923db3d..627a3da2b 100644 --- a/src/StdMeshers/StdMeshers_Prism_3D.cxx +++ b/src/StdMeshers/StdMeshers_Prism_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Prism_3D.hxx b/src/StdMeshers/StdMeshers_Prism_3D.hxx index 846dae5b2..8c1e6fa78 100644 --- a/src/StdMeshers/StdMeshers_Prism_3D.hxx +++ b/src/StdMeshers/StdMeshers_Prism_3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_ProjectionSource1D.cxx b/src/StdMeshers/StdMeshers_ProjectionSource1D.cxx index 9129b4ff9..cf1a41ee3 100644 --- a/src/StdMeshers/StdMeshers_ProjectionSource1D.cxx +++ b/src/StdMeshers/StdMeshers_ProjectionSource1D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_ProjectionSource1D.hxx b/src/StdMeshers/StdMeshers_ProjectionSource1D.hxx index 5970df223..ddd82f673 100644 --- a/src/StdMeshers/StdMeshers_ProjectionSource1D.hxx +++ b/src/StdMeshers/StdMeshers_ProjectionSource1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_ProjectionSource2D.cxx b/src/StdMeshers/StdMeshers_ProjectionSource2D.cxx index 720f90352..479bdd6ec 100644 --- a/src/StdMeshers/StdMeshers_ProjectionSource2D.cxx +++ b/src/StdMeshers/StdMeshers_ProjectionSource2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_ProjectionSource2D.hxx b/src/StdMeshers/StdMeshers_ProjectionSource2D.hxx index 3af9adfde..978321147 100644 --- a/src/StdMeshers/StdMeshers_ProjectionSource2D.hxx +++ b/src/StdMeshers/StdMeshers_ProjectionSource2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_ProjectionSource3D.cxx b/src/StdMeshers/StdMeshers_ProjectionSource3D.cxx index 9b4e260db..f90b4eed3 100644 --- a/src/StdMeshers/StdMeshers_ProjectionSource3D.cxx +++ b/src/StdMeshers/StdMeshers_ProjectionSource3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_ProjectionSource3D.hxx b/src/StdMeshers/StdMeshers_ProjectionSource3D.hxx index baaa274ee..6098f1816 100644 --- a/src/StdMeshers/StdMeshers_ProjectionSource3D.hxx +++ b/src/StdMeshers/StdMeshers_ProjectionSource3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_ProjectionUtils.cxx b/src/StdMeshers/StdMeshers_ProjectionUtils.cxx index 37e97eabe..3053be90d 100644 --- a/src/StdMeshers/StdMeshers_ProjectionUtils.cxx +++ b/src/StdMeshers/StdMeshers_ProjectionUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -337,7 +337,7 @@ namespace { ancestIt.Initialize( theMesh.GetAncestors( edge2 ) ); for ( ; ancestIt.More() && face2.IsNull(); ancestIt.Next() ) { if ( ancestIt.Value().ShapeType() == TopAbs_FACE && - !theMap.IsBound( ancestIt.Value() ) && + !theMap.IsBound( ancestIt.Value(), /*is2nd=*/true ) && subshapes2.Contains( ancestIt.Value() )) face2 = ancestIt.Value(); } @@ -418,9 +418,9 @@ namespace { //======================================================================= /*! * \brief Looks for association of all sub-shapes of two shapes - * \param theShape1 - shape 1 + * \param theShape1 - target shape * \param theMesh1 - mesh built on shape 1 - * \param theShape2 - shape 2 + * \param theShape2 - source shape * \param theMesh2 - mesh built on shape 2 * \param theAssociation - association map to be filled that may * contain association of one or two pairs of vertices @@ -474,13 +474,11 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the return FindSubShapeAssociation(group1, theMesh1, group2, theMesh2, theMap ); } - bool bidirect = ( !theShape1.IsSame( theShape2 )); - // ============ // 2) Is partner? // ============ bool partner = theShape1.IsPartner( theShape2 ); - TopTools_DataMapIteratorOfDataMapOfShapeShape vvIt( theMap ); + TopTools_DataMapIteratorOfDataMapOfShapeShape vvIt( theMap._map1to2 ); for ( ; partner && vvIt.More(); vvIt.Next() ) partner = vvIt.Key().IsPartner( vvIt.Value() ); @@ -492,7 +490,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the TShapePairsList::iterator s1_s2 = shapesQueue.begin(); for ( ; s1_s2 != shapesQueue.end(); ++s1_s2 ) { - InsertAssociation( s1_s2->first, s1_s2->second, theMap, bidirect); + InsertAssociation( s1_s2->first, s1_s2->second, theMap ); TopoDS_Iterator s1It( s1_s2->first), s2It( s1_s2->second ); for ( ; s1It.More(); s1It.Next(), s2It.Next() ) shapesQueue.push_back( make_pair( s1It.Value(), s2It.Value() )); @@ -521,8 +519,8 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the int i1 = 0, i2 = 0; if ( theMap.IsBound( VV1[ i1 ] )) i1 = 1; if ( theMap.IsBound( VV2[ i2 ] )) i2 = 1; - InsertAssociation( VV1[ i1 ], VV2[ i2 ], theMap, bidirect); - InsertAssociation( theShape1, theShape2, theMap, bidirect ); + InsertAssociation( VV1[ i1 ], VV2[ i2 ], theMap ); + InsertAssociation( theShape1, theShape2, theMap ); return true; } // ---------------------------------------------------------------------- @@ -561,12 +559,12 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the list< TopoDS_Edge >::iterator eIt2 = edges2.begin(); for ( ; eIt1 != edges1.end(); ++eIt1, ++eIt2 ) { - InsertAssociation( *eIt1, *eIt2, theMap, bidirect); + InsertAssociation( *eIt1, *eIt2, theMap ); VV1[0] = TopExp::FirstVertex( *eIt1, true ); VV2[0] = TopExp::FirstVertex( *eIt2, true ); - InsertAssociation( VV1[0], VV2[0], theMap, bidirect); + InsertAssociation( VV1[0], VV2[0], theMap ); } - InsertAssociation( theShape1, theShape2, theMap, bidirect ); + InsertAssociation( theShape1, theShape2, theMap ); return true; } // ---------------------------------------------------------------------- @@ -647,7 +645,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the TopExp::Vertices( edge1, VV1[0], VV1[1], true ); TopExp::Vertices( edge2, VV2[0], VV2[1], true ); F2 = FF2[ 0 ]; // (F2 !) - if ( !VV1[ 0 ].IsSame( theMap( VV2[ 0 ]))) { + if ( !VV1[ 0 ].IsSame( theMap( VV2[ 0 ], /*is2=*/true))) { edge2.Reverse(); if ( FF2[ 1 ].IsNull() ) F2.Reverse(); @@ -674,7 +672,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the list< TopoDS_Edge > edges1, edges2; int nbE = FindFaceAssociation( face1, VV1, face2, VV2, edges1, edges2 ); if ( !nbE ) RETURN_BAD_RESULT("FindFaceAssociation() failed"); - InsertAssociation( face1, face2, theMap, bidirect); // assoc faces + InsertAssociation( face1, face2, theMap ); // assoc faces MESSAGE("Assoc FACE " << theMesh1->GetMeshDS()->ShapeToIndex( face1 )<< " to " << theMesh2->GetMeshDS()->ShapeToIndex( face2 )); if ( nbE == 2 && (edge1.IsSame( edges1.front())) != (edge2.IsSame( edges2.front()))) @@ -686,12 +684,12 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the for ( ; eIt1 != edges1.end(); ++eIt1, ++eIt2 ) { if ( !boundEdges.Add( *eIt1 )) continue; // already associated - InsertAssociation( *eIt1, *eIt2, theMap, bidirect); // assoc edges + InsertAssociation( *eIt1, *eIt2, theMap ); // assoc edges MESSAGE("Assoc edge " << theMesh1->GetMeshDS()->ShapeToIndex( *eIt1 )<< " to " << theMesh2->GetMeshDS()->ShapeToIndex( *eIt2 )); VV1[0] = TopExp::FirstVertex( *eIt1, true ); VV2[0] = TopExp::FirstVertex( *eIt2, true ); - InsertAssociation( VV1[0], VV2[0], theMap, bidirect); // assoc vertices + InsertAssociation( VV1[0], VV2[0], theMap ); // assoc vertices MESSAGE("Assoc vertex " << theMesh1->GetMeshDS()->ShapeToIndex( VV1[0] )<< " to " << theMesh2->GetMeshDS()->ShapeToIndex( VV2[0] )); @@ -704,7 +702,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the } } } - InsertAssociation( theShape1, theShape2, theMap, bidirect ); + InsertAssociation( theShape1, theShape2, theMap ); return true; } // ---------------------------------------------------------------------- @@ -826,7 +824,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the TShapeShapeMap tmpMap; ok = FindSubShapeAssociation( comp[0], theMesh1, comp[1], theMesh2, tmpMap ); if ( ok ) { - TopTools_DataMapIteratorOfDataMapOfShapeShape mapIt( tmpMap ); + TopTools_DataMapIteratorOfDataMapOfShapeShape mapIt( tmpMap._map1to2 ); for ( ; mapIt.More(); mapIt.Next() ) theMap.Bind( mapIt.Key(), mapIt.Value()); } @@ -885,13 +883,13 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the TopoDS_Edge e1 = TopoDS::Edge( edges1.First() ); v2e[0].UnBind( V[0] ); v2e[1].UnBind( V[1] ); - InsertAssociation( e0, e1, theMap, bidirect ); + InsertAssociation( e0, e1, theMap ); MESSAGE("Assoc edge " << theMesh1->GetMeshDS()->ShapeToIndex( e0 )<< " to " << theMesh2->GetMeshDS()->ShapeToIndex( e1 )); V[0] = GetNextVertex( e0, V[0] ); V[1] = GetNextVertex( e1, V[1] ); if ( !V[0].IsNull() ) { - InsertAssociation( V[0], V[1], theMap, bidirect ); + InsertAssociation( V[0], V[1], theMap ); MESSAGE("Assoc vertex " << theMesh1->GetMeshDS()->ShapeToIndex( V[0] )<< " to " << theMesh2->GetMeshDS()->ShapeToIndex( V[1] )); } @@ -917,9 +915,9 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the } else { v1n = v1e1; e1b = edges1.First(); e1n = edges1.Last(); } - InsertAssociation( e0b, e1b, theMap, bidirect ); - InsertAssociation( e0n, e1n, theMap, bidirect ); - InsertAssociation( v0n, v1n, theMap, bidirect ); + InsertAssociation( e0b, e1b, theMap ); + InsertAssociation( e0n, e1n, theMap ); + InsertAssociation( v0n, v1n, theMap ); MESSAGE("Assoc edge " << theMesh1->GetMeshDS()->ShapeToIndex( e0b )<< " to " << theMesh2->GetMeshDS()->ShapeToIndex( e1b )); MESSAGE("Assoc edge " << theMesh1->GetMeshDS()->ShapeToIndex( e0n )<< @@ -963,14 +961,14 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the TopoDS_Vertex VV1[2], VV2[2]; TopExp::Vertices( edge1, VV1[0], VV1[1], true ); TopExp::Vertices( prpEdge, VV2[0], VV2[1], true ); - InsertAssociation( VV1[ 0 ], VV2[ 0 ], theMap, bidirect); - InsertAssociation( VV1[ 1 ], VV2[ 1 ], theMap, bidirect); + InsertAssociation( VV1[ 0 ], VV2[ 0 ], theMap ); + InsertAssociation( VV1[ 1 ], VV2[ 1 ], theMap ); if ( VV1[0].IsSame( VV1[1] ) || // one of edges is closed VV2[0].IsSame( VV2[1] ) ) { - InsertAssociation( edge1, prpEdge, theMap, bidirect); // insert with a proper orientation + InsertAssociation( edge1, prpEdge, theMap ); // insert with a proper orientation } - InsertAssociation( theShape1, theShape2, theMap, bidirect ); + InsertAssociation( theShape1, theShape2, theMap ); return true; // done } } @@ -978,10 +976,10 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the SMESH_MesherHelper::IsClosedEdge( edge2 )) { // TODO: find out a proper orientation (is it possible?) - InsertAssociation( edge1, edge2, theMap, bidirect); // insert with a proper orientation + InsertAssociation( edge1, edge2, theMap ); // insert with a proper orientation InsertAssociation( TopExp::FirstVertex(edge1), TopExp::FirstVertex(edge2), - theMap, bidirect); - InsertAssociation( theShape1, theShape2, theMap, bidirect ); + theMap ); + InsertAssociation( theShape1, theShape2, theMap ); return true; // done } break; // try by vertex closeness @@ -1031,12 +1029,12 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the list< TopoDS_Edge >::iterator eIt2 = edges2.begin(); for ( ; eIt1 != edges1.end(); ++eIt1, ++eIt2 ) { - InsertAssociation( *eIt1, *eIt2, theMap, bidirect); + InsertAssociation( *eIt1, *eIt2, theMap ); VV1[0] = TopExp::FirstVertex( *eIt1, true ); VV2[0] = TopExp::FirstVertex( *eIt2, true ); - InsertAssociation( VV1[0], VV2[0], theMap, bidirect); + InsertAssociation( VV1[0], VV2[0], theMap ); } - InsertAssociation( theShape1, theShape2, theMap, bidirect ); + InsertAssociation( theShape1, theShape2, theMap ); return true; } } @@ -1099,8 +1097,8 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the } } if ( !VV1[1].IsNull() ) { - InsertAssociation( VV1[0], VV2[0], theMap, bidirect); - InsertAssociation( VV1[1], VV2[1], theMap, bidirect); + InsertAssociation( VV1[0], VV2[0], theMap ); + InsertAssociation( VV1[1], VV2[1], theMap ); return FindSubShapeAssociation( theShape1, theMesh1, theShape2, theMesh2, theMap); } } @@ -1121,9 +1119,9 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the RETURN_BAD_RESULT("Different nb of vertices"); if ( vMap1.Extent() == 1 ) { - InsertAssociation( vMap1(1), vMap2(1), theMap, bidirect); + InsertAssociation( vMap1(1), vMap2(1), theMap ); if ( theShape1.ShapeType() == TopAbs_EDGE ) { - InsertAssociation( theShape1, theShape2, theMap, bidirect ); + InsertAssociation( theShape1, theShape2, theMap ); return true; } return FindSubShapeAssociation( theShape1, theMesh1, theShape2, theMesh2, theMap); @@ -1147,8 +1145,8 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the } if ( edgeFound ) { - InsertAssociation( VV1[0], VV1[0], theMap, bidirect ); - InsertAssociation( VV1[1], VV1[1], theMap, bidirect ); + InsertAssociation( VV1[0], VV1[0], theMap ); + InsertAssociation( VV1[1], VV1[1], theMap ); if (FindSubShapeAssociation( theShape1, theMesh1, theShape2, theMesh2, theMap )) return true; } @@ -1203,14 +1201,14 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the } } - InsertAssociation( VV1[ 0 ], VV2[ 0 ], theMap, bidirect); - InsertAssociation( VV1[ 1 ], VV2[ 1 ], theMap, bidirect); + InsertAssociation( VV1[ 0 ], VV2[ 0 ], theMap ); + InsertAssociation( VV1[ 1 ], VV2[ 1 ], theMap ); MESSAGE("Initial assoc VERT " << theMesh1->GetMeshDS()->ShapeToIndex( VV1[ 0 ] )<< " to " << theMesh2->GetMeshDS()->ShapeToIndex( VV2[ 0 ] )<< "\nand VERT " << theMesh1->GetMeshDS()->ShapeToIndex( VV1[ 1 ] )<< " to " << theMesh2->GetMeshDS()->ShapeToIndex( VV2[ 1 ] )); if ( theShape1.ShapeType() == TopAbs_EDGE ) { - InsertAssociation( theShape1, theShape2, theMap, bidirect ); + InsertAssociation( theShape1, theShape2, theMap ); return true; } @@ -1378,30 +1376,29 @@ int StdMeshers_ProjectionUtils::FindFaceAssociation(const TopoDS_Face& face1, //======================================================================= void StdMeshers_ProjectionUtils::InitVertexAssociation( const SMESH_Hypothesis* theHyp, - TShapeShapeMap & theAssociationMap, - const TopoDS_Shape& theTargetShape) + TShapeShapeMap & theAssociationMap) { string hypName = theHyp->GetName(); if ( hypName == "ProjectionSource1D" ) { const StdMeshers_ProjectionSource1D * hyp = static_cast( theHyp ); if ( hyp->HasVertexAssociation() ) - InsertAssociation( hyp->GetSourceVertex(),hyp->GetTargetVertex(),theAssociationMap); + InsertAssociation( hyp->GetTargetVertex(),hyp->GetSourceVertex(),theAssociationMap ); } else if ( hypName == "ProjectionSource2D" ) { const StdMeshers_ProjectionSource2D * hyp = static_cast( theHyp ); if ( hyp->HasVertexAssociation() ) { - InsertAssociation( hyp->GetSourceVertex(1),hyp->GetTargetVertex(1),theAssociationMap); - InsertAssociation( hyp->GetSourceVertex(2),hyp->GetTargetVertex(2),theAssociationMap); + InsertAssociation( hyp->GetTargetVertex(1),hyp->GetSourceVertex(1),theAssociationMap); + InsertAssociation( hyp->GetTargetVertex(2),hyp->GetSourceVertex(2),theAssociationMap); } } else if ( hypName == "ProjectionSource3D" ) { const StdMeshers_ProjectionSource3D * hyp = static_cast( theHyp ); if ( hyp->HasVertexAssociation() ) { - InsertAssociation( hyp->GetSourceVertex(1),hyp->GetTargetVertex(1),theAssociationMap); - InsertAssociation( hyp->GetSourceVertex(2),hyp->GetTargetVertex(2),theAssociationMap); + InsertAssociation( hyp->GetTargetVertex(1),hyp->GetSourceVertex(1),theAssociationMap); + InsertAssociation( hyp->GetTargetVertex(2),hyp->GetSourceVertex(2),theAssociationMap); } } } @@ -1409,24 +1406,21 @@ void StdMeshers_ProjectionUtils::InitVertexAssociation( const SMESH_Hypothesis* //======================================================================= /*! * \brief Inserts association theShape1 <-> theShape2 to TShapeShapeMap - * \param theShape1 - shape 1 - * \param theShape2 - shape 2 + * \param theShape1 - target shape + * \param theShape2 - source shape * \param theAssociationMap - association map * \retval bool - true if there was no association for these shapes before */ //======================================================================= -bool StdMeshers_ProjectionUtils::InsertAssociation( const TopoDS_Shape& theShape1, - const TopoDS_Shape& theShape2, - TShapeShapeMap & theAssociationMap, - const bool theBidirectional) +bool StdMeshers_ProjectionUtils::InsertAssociation( const TopoDS_Shape& theShape1, // tgt + const TopoDS_Shape& theShape2, // src + TShapeShapeMap & theAssociationMap) { if ( !theShape1.IsNull() && !theShape2.IsNull() ) { SHOW_SHAPE(theShape1,"Assoc "); SHOW_SHAPE(theShape2," to "); bool isNew = ( theAssociationMap.Bind( theShape1, theShape2 )); - if ( theBidirectional ) - theAssociationMap.Bind( theShape2, theShape1 ); return isNew; } else { @@ -1647,9 +1641,9 @@ FindMatchingNodesOnFaces( const TopoDS_Face& face1, TopoDS_Edge e2 = TopoDS::Edge( eE.Current() ); eE.Next(); // edge 1 - if ( !assocMap.IsBound( e2 )) + if ( !assocMap.IsBound( e2, /*is2nd=*/true )) RETURN_BAD_RESULT("Association not found for edge " << meshDS2->ShapeToIndex( e2 )); - TopoDS_Edge e1 = TopoDS::Edge( assocMap( e2 )); + TopoDS_Edge e1 = TopoDS::Edge( assocMap( e2, /*is2nd=*/true )); if ( !helper1.IsSubShape( e1, face1 )) RETURN_BAD_RESULT("Wrong association, edge " << meshDS1->ShapeToIndex( e1 ) << " isn't a sub-shape of face " << meshDS1->ShapeToIndex( face1 )); @@ -1691,9 +1685,9 @@ FindMatchingNodesOnFaces( const TopoDS_Face& face1, // get 2 matching vertices TopoDS_Vertex V2 = TopExp::FirstVertex( TopoDS::Edge( edge2 )); - if ( !assocMap.IsBound( V2 )) + if ( !assocMap.IsBound( V2, /*is2nd=*/true )) RETURN_BAD_RESULT("Association not found for vertex " << meshDS2->ShapeToIndex( V2 )); - TopoDS_Vertex V1 = TopoDS::Vertex( assocMap( V2 )); + TopoDS_Vertex V1 = TopoDS::Vertex( assocMap( V2, /*is2nd=*/true )); // nodes on vertices const SMDS_MeshNode* vNode1 = SMESH_Algo::VertexNode( V1, meshDS1 ); @@ -1742,9 +1736,9 @@ FindMatchingNodesOnFaces( const TopoDS_Face& face1, { // get 2 other matching vertices V2 = TopExp::LastVertex( TopoDS::Edge( edge2 )); - if ( !assocMap.IsBound( V2 )) + if ( !assocMap.IsBound( V2, /*is2nd=*/true )) RETURN_BAD_RESULT("Association not found for vertex " << meshDS2->ShapeToIndex( V2 )); - V1 = TopoDS::Vertex( assocMap( V2 )); + V1 = TopoDS::Vertex( assocMap( V2, /*is2nd=*/true )); // nodes on vertices eNode1[0] = SMESH_Algo::VertexNode( V1, meshDS1 ); @@ -1896,9 +1890,9 @@ FindMatchingNodesOnFaces( const TopoDS_Face& face1, // associate matching nodes on the last vertices V2 = TopExp::LastVertex( TopoDS::Edge( edge2 )); - if ( !assocMap.IsBound( V2 )) + if ( !assocMap.IsBound( V2, /*is2nd=*/true )) RETURN_BAD_RESULT("Association not found for vertex " << meshDS2->ShapeToIndex( V2 )); - V1 = TopoDS::Vertex( assocMap( V2 )); + V1 = TopoDS::Vertex( assocMap( V2, /*is2nd=*/true )); vNode1 = SMESH_Algo::VertexNode( V1, meshDS1 ); vNode2 = SMESH_Algo::VertexNode( V2, meshDS2 ); if ( !vNode1 ) RETURN_BAD_RESULT("No node on vertex #" << meshDS1->ShapeToIndex( V1 )); diff --git a/src/StdMeshers/StdMeshers_ProjectionUtils.hxx b/src/StdMeshers/StdMeshers_ProjectionUtils.hxx index 225a5fc47..685536a4d 100644 --- a/src/StdMeshers/StdMeshers_ProjectionUtils.hxx +++ b/src/StdMeshers/StdMeshers_ProjectionUtils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -45,6 +45,29 @@ class SMESH_Hypothesis; class SMESH_subMesh; class TopTools_IndexedDataMapOfShapeListOfShape; +/*! + * \brief Struct used instead of a sole TopTools_DataMapOfShapeShape to avoid + * problems with bidirectional bindings + */ +struct StdMeshers_ShapeShapeBiDirectionMap +{ + TopTools_DataMapOfShapeShape _map1to2, _map2to1; + + // convension: s1 - target, s2 - source + bool Bind( const TopoDS_Shape& s1, const TopoDS_Shape& s2 ) + { _map1to2.Bind( s1, s2 ); return _map2to1.Bind( s2, s1 ); } + bool IsBound( const TopoDS_Shape& s, const bool isShape2=false ) const + { return (isShape2 ? _map2to1 : _map1to2).IsBound( s ); } + bool IsEmpty() const { return _map1to2.IsEmpty(); } + int Extent() const { return _map1to2.Extent(); } + void Clear() { _map1to2.Clear(); _map2to1.Clear(); } + const TopoDS_Shape& operator()( const TopoDS_Shape& s, const bool isShape2=false ) const + { // if we get a Standard_NoSuchObject here, it means that the calling code + // passes incorrect isShape2 + return (isShape2 ? _map2to1 : _map1to2)( s ); + } +}; + /*! * \brief Class encapsulating methods common to Projection algorithms */ @@ -52,7 +75,7 @@ class StdMeshers_ProjectionUtils { public: - typedef TopTools_DataMapOfShapeShape TShapeShapeMap; + typedef StdMeshers_ShapeShapeBiDirectionMap TShapeShapeMap; typedef TopTools_IndexedDataMapOfShapeListOfShape TAncestorMap; typedef std::map TNodeNodeMap; @@ -96,21 +119,19 @@ class StdMeshers_ProjectionUtils * \param theTargetShape - the shape theHyp assigned to */ static void InitVertexAssociation( const SMESH_Hypothesis* theHyp, - TShapeShapeMap & theAssociationMap, - const TopoDS_Shape& theTargetShape); + TShapeShapeMap & theAssociationMap); /*! * \brief Inserts association theShape1 <-> theShape2 to TShapeShapeMap - * \param theShape1 - shape 1 - * \param theShape2 - shape 2 + * \param theShape1 - target shape + * \param theShape2 - source shape * \param theAssociationMap - association map * \param theBidirectional - if false, inserts theShape1 -> theShape2 association * \retval bool - true if there was no association for these shapes before */ - static bool InsertAssociation( const TopoDS_Shape& theShape1, - const TopoDS_Shape& theShape2, - TShapeShapeMap & theAssociationMap, - const bool theBidirectional=true); + static bool InsertAssociation( const TopoDS_Shape& theShape1, // target + const TopoDS_Shape& theShape2, // source + TShapeShapeMap & theAssociationMap); /*! * \brief Finds an edge by its vertices in a main shape of the mesh diff --git a/src/StdMeshers/StdMeshers_Projection_1D.cxx b/src/StdMeshers/StdMeshers_Projection_1D.cxx index 113d4143f..778b57c0e 100644 --- a/src/StdMeshers/StdMeshers_Projection_1D.cxx +++ b/src/StdMeshers/StdMeshers_Projection_1D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -217,7 +217,7 @@ bool StdMeshers_Projection_1D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& TopoDS_Shape srcShape = _sourceHypo->GetSourceEdge().Oriented(TopAbs_FORWARD); TAssocTool::TShapeShapeMap shape2ShapeMap; - TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap, tgtEdge ); + TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap ); if ( !TAssocTool::FindSubShapeAssociation( tgtEdge, tgtMesh, srcShape, srcMesh, shape2ShapeMap) || !shape2ShapeMap.IsBound( tgtEdge )) @@ -401,7 +401,7 @@ bool StdMeshers_Projection_1D::Evaluate(SMESH_Mesh& theMesh, TopoDS_Shape srcShape = _sourceHypo->GetSourceEdge().Oriented(TopAbs_FORWARD); TAssocTool::TShapeShapeMap shape2ShapeMap; - TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap, tgtEdge ); + TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap ); if ( !TAssocTool::FindSubShapeAssociation( tgtEdge, tgtMesh, srcShape, srcMesh, shape2ShapeMap) || !shape2ShapeMap.IsBound( tgtEdge )) diff --git a/src/StdMeshers/StdMeshers_Projection_1D.hxx b/src/StdMeshers/StdMeshers_Projection_1D.hxx index 0914bbd63..5ef640170 100644 --- a/src/StdMeshers/StdMeshers_Projection_1D.hxx +++ b/src/StdMeshers/StdMeshers_Projection_1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Projection_1D2D.cxx b/src/StdMeshers/StdMeshers_Projection_1D2D.cxx index 6dfbad18c..efe6bf034 100644 --- a/src/StdMeshers/StdMeshers_Projection_1D2D.cxx +++ b/src/StdMeshers/StdMeshers_Projection_1D2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -196,7 +196,7 @@ bool StdMeshers_Projection_1D2D::Evaluate(SMESH_Mesh& theMesh, typedef StdMeshers_ProjectionUtils SPU; SPU::TShapeShapeMap shape2ShapeMap; - SPU::InitVertexAssociation( _sourceHypo, shape2ShapeMap, theShape ); + SPU::InitVertexAssociation( _sourceHypo, shape2ShapeMap ); if ( !SPU::FindSubShapeAssociation( theShape, &theMesh, srcFace, srcMesh, shape2ShapeMap)) return error(COMPERR_BAD_SHAPE,"Topology of source and target faces seems different" ); @@ -232,7 +232,7 @@ bool StdMeshers_Projection_1D2D::Evaluate(SMESH_Mesh& theMesh, if ( aVec.empty() ) return error(COMPERR_BAD_INPUT_MESH,"Source mesh is wrongly evaluated"); } - TopoDS_Shape tgtEdge = shape2ShapeMap( srcSM->GetSubShape() ); + TopoDS_Shape tgtEdge = shape2ShapeMap( srcSM->GetSubShape(), /*isSrc=*/true ); SMESH_subMesh* tgtSM = theMesh.GetSubMesh( tgtEdge ); aResMap.insert(std::make_pair(tgtSM,aVec)); } diff --git a/src/StdMeshers/StdMeshers_Projection_1D2D.hxx b/src/StdMeshers/StdMeshers_Projection_1D2D.hxx index acd38d7cb..9e7715c82 100644 --- a/src/StdMeshers/StdMeshers_Projection_1D2D.hxx +++ b/src/StdMeshers/StdMeshers_Projection_1D2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Projection_2D.cxx b/src/StdMeshers/StdMeshers_Projection_2D.cxx index cbffd5aac..17bde5c85 100644 --- a/src/StdMeshers/StdMeshers_Projection_2D.cxx +++ b/src/StdMeshers/StdMeshers_Projection_2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -428,7 +428,7 @@ namespace { // find corresponding point on target shape pOK = false; gp_Pnt tgtP; - const TopoDS_Shape& tgtShape = shape2ShapeMap( srcSM->GetSubShape() ); + const TopoDS_Shape& tgtShape = shape2ShapeMap( srcSM->GetSubShape(), /*isSrc=*/true ); if ( tgtShape.ShapeType() == TopAbs_VERTEX ) { tgtP = BRep_Tool::Pnt( TopoDS::Vertex( tgtShape )); @@ -480,7 +480,7 @@ namespace { for ( TopExp_Explorer srcEdge( srcFace, TopAbs_EDGE); srcEdge.More(); srcEdge.Next() ) { - const TopoDS_Shape& tgtEdge = shape2ShapeMap( srcEdge.Current() ); + const TopoDS_Shape& tgtEdge = shape2ShapeMap( srcEdge.Current(), /*isSrc=*/true ); map< double, const SMDS_MeshNode* > srcNodes, tgtNodes; if ( !SMESH_Algo::GetSortedNodesOnEdge( srcMesh->GetMeshDS(), @@ -611,7 +611,7 @@ namespace { TopTools_IndexedMapOfShape edgeMap; // to detect seam edges for ( int iE = 0; iE < srcWire->NbEdges(); ++iE ) { - tgtEdges.push_back( TopoDS::Edge( shape2ShapeMap( srcWire->Edge( iE )))); + tgtEdges.push_back( TopoDS::Edge( shape2ShapeMap( srcWire->Edge( iE ), /*isSrc=*/true))); // reverse a seam edge encountered for the second time const int oldExtent = edgeMap.Extent(); edgeMap.Add( tgtEdges.back() ); @@ -734,14 +734,16 @@ namespace { } case SMDS_TOP_EDGE: { TopoDS_Shape srcEdge = srcHelper.GetSubShapeByNode( srcNode, srcHelper.GetMeshDS() ); - TopoDS_Shape tgtEdge = shape2ShapeMap( srcEdge ); + TopoDS_Edge tgtEdge = TopoDS::Edge( shape2ShapeMap( srcEdge, /*isSrc=*/true )); + tgtMeshDS->SetNodeOnEdge( n, TopoDS::Edge( tgtEdge )); double U = srcHelper.GetNodeU( TopoDS::Edge( srcEdge ), srcNode ); - tgtMeshDS->SetNodeOnEdge( n, TopoDS::Edge( tgtEdge ), U); + helper.CheckNodeU( tgtEdge, n, U, Precision::PConfusion()); + n->SetPosition(SMDS_PositionPtr(new SMDS_EdgePosition( U ))); break; } case SMDS_TOP_VERTEX: { TopoDS_Shape srcV = srcHelper.GetSubShapeByNode( srcNode, srcHelper.GetMeshDS() ); - TopoDS_Shape tgtV = shape2ShapeMap( srcV ); + TopoDS_Shape tgtV = shape2ShapeMap( srcV, /*isSrc=*/true ); tgtMeshDS->SetNodeOnVertex( n, TopoDS::Vertex( tgtV )); break; } @@ -790,7 +792,7 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& TopoDS_Shape srcShape = _sourceHypo->GetSourceFace().Oriented(TopAbs_FORWARD); TAssocTool::TShapeShapeMap shape2ShapeMap; - TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap, tgtFace ); + TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap ); if ( !TAssocTool::FindSubShapeAssociation( tgtFace, tgtMesh, srcShape, srcMesh, shape2ShapeMap) || !shape2ShapeMap.IsBound( tgtFace )) @@ -881,9 +883,9 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& TopoDS_Vertex srcV1 = TopoDS::Vertex( mapper.GetSubShape( 1 )); if ( srcV1.IsNull() ) RETURN_BAD_RESULT("Mesh is not bound to the face"); - if ( !shape2ShapeMap.IsBound( srcV1 )) + if ( !shape2ShapeMap.IsBound( srcV1, /*isSrc=*/true )) RETURN_BAD_RESULT("Not associated vertices, srcV1 " << srcV1.TShape().operator->() ); - TopoDS_Vertex tgtV1 = TopoDS::Vertex( shape2ShapeMap( srcV1 )); + TopoDS_Vertex tgtV1 = TopoDS::Vertex( shape2ShapeMap( srcV1, /*isSrc=*/true )); if ( !SMESH_MesherHelper::IsSubShape( srcV1, srcFace )) RETURN_BAD_RESULT("Wrong srcV1 " << srcV1.TShape().operator->()); @@ -948,7 +950,7 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& { SMESH_subMesh* sm = smIt->next(); SMESHDS_SubMesh* smDS = sm->GetSubMeshDS(); - if ( smDS->NbNodes() == 0 ) + if ( !smDS || smDS->NbNodes() == 0 ) continue; //if ( !is1DComputed && sm->GetSubShape().ShapeType() == TopAbs_EDGE ) //break; @@ -1087,7 +1089,7 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& // Check elements orientation // --------------------------- - TopoDS_Face face = tgtFace; + TopoDS_Face face = TopoDS::Face( theShape ); if ( !theMesh.IsMainShape( tgtFace )) { // find the main shape @@ -1157,7 +1159,7 @@ bool StdMeshers_Projection_2D::Evaluate(SMESH_Mesh& theMesh, TopoDS_Shape srcShape = _sourceHypo->GetSourceFace().Oriented(TopAbs_FORWARD); TAssocTool::TShapeShapeMap shape2ShapeMap; - TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap, tgtFace ); + TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap ); if ( !TAssocTool::FindSubShapeAssociation( tgtFace, tgtMesh, srcShape, srcMesh, shape2ShapeMap) || !shape2ShapeMap.IsBound( tgtFace )) diff --git a/src/StdMeshers/StdMeshers_Projection_2D.hxx b/src/StdMeshers/StdMeshers_Projection_2D.hxx index 7368c84d2..3d1bd1808 100644 --- a/src/StdMeshers/StdMeshers_Projection_2D.hxx +++ b/src/StdMeshers/StdMeshers_Projection_2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Projection_3D.cxx b/src/StdMeshers/StdMeshers_Projection_3D.cxx index 3da34cc2f..76c29c822 100644 --- a/src/StdMeshers/StdMeshers_Projection_3D.cxx +++ b/src/StdMeshers/StdMeshers_Projection_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Projection_3D.hxx b/src/StdMeshers/StdMeshers_Projection_3D.hxx index 94ff778d5..03e8c4838 100644 --- a/src/StdMeshers/StdMeshers_Projection_3D.hxx +++ b/src/StdMeshers/StdMeshers_Projection_3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Propagation.cxx b/src/StdMeshers/StdMeshers_Propagation.cxx index db3316bae..0550c86a7 100644 --- a/src/StdMeshers/StdMeshers_Propagation.cxx +++ b/src/StdMeshers/StdMeshers_Propagation.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Propagation.hxx b/src/StdMeshers/StdMeshers_Propagation.hxx index efc1c7f05..5a72d72a5 100644 --- a/src/StdMeshers/StdMeshers_Propagation.hxx +++ b/src/StdMeshers/StdMeshers_Propagation.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx b/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx index c20939f42..d9907cba9 100644 --- a/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx +++ b/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -15,6 +15,7 @@ // 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 : StdMeshers_QuadToTriaAdaptor.cxx // Module : SMESH @@ -39,6 +40,7 @@ #include #include +#include using namespace std; @@ -377,37 +379,41 @@ StdMeshers_QuadToTriaAdaptor::~StdMeshers_QuadToTriaAdaptor() myElemSearcher=0; } - //======================================================================= //function : FindBestPoint //purpose : Return a point P laying on the line (PC,V) so that triangle // (P, P1, P2) to be equilateral as much as possible // V - normal to (P1,P2,PC) //======================================================================= + static gp_Pnt FindBestPoint(const gp_Pnt& P1, const gp_Pnt& P2, const gp_Pnt& PC, const gp_Vec& V) { - double a = P1.Distance(P2); - double b = P1.Distance(PC); - double c = P2.Distance(PC); + gp_Pnt Pbest = PC; + const double a = P1.Distance(P2); + const double b = P1.Distance(PC); + const double c = P2.Distance(PC); if( a < (b+c)/2 ) - return PC; + return Pbest; else { // find shift along V in order a to became equal to (b+c)/2 - double shift = sqrt( a*a + (b*b-c*c)*(b*b-c*c)/16/a/a - (b*b+c*c)/2 ); - gp_Dir aDir(V); - gp_Pnt Pbest = PC.XYZ() + aDir.XYZ() * shift; - return Pbest; + const double Vsize = V.Magnitude(); + if ( fabs( Vsize ) > std::numeric_limits::min() ) + { + const double shift = sqrt( a*a + (b*b-c*c)*(b*b-c*c)/16/a/a - (b*b+c*c)/2 ); + Pbest.ChangeCoord() += shift * V.XYZ() / Vsize; + } } + return Pbest; } - //======================================================================= //function : HasIntersection3 //purpose : Auxilare for HasIntersection() // find intersection point between triangle (P1,P2,P3) // and segment [PC,P] //======================================================================= + static bool HasIntersection3(const gp_Pnt& P, const gp_Pnt& PC, gp_Pnt& Pint, const gp_Pnt& P1, const gp_Pnt& P2, const gp_Pnt& P3) { @@ -478,7 +484,6 @@ static bool HasIntersection3(const gp_Pnt& P, const gp_Pnt& PC, gp_Pnt& Pint, return false; } - //======================================================================= //function : HasIntersection //purpose : Auxilare for CheckIntersection() @@ -1009,10 +1014,12 @@ bool StdMeshers_QuadToTriaAdaptor::Compute(SMESH_Mesh& aMesh) PCbest /= 4; double height = PC.Distance(PCbest); // pyramid height to precise - if(height<1.e-6) { + if ( height < 1.e-6 ) { // create new PCbest using a bit shift along VNorm PCbest = PC.XYZ() + VNorm.XYZ() * 0.001; height = PC.Distance(PCbest); + if ( height < std::numeric_limits::min() ) + return false; // batterfly element } // Restrict pyramid height by intersection with other faces diff --git a/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.hxx b/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.hxx index 180bb2567..66e498592 100644 --- a/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.hxx +++ b/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_QuadrangleParams.cxx b/src/StdMeshers/StdMeshers_QuadrangleParams.cxx index d5816da99..13a7f48ff 100644 --- a/src/StdMeshers/StdMeshers_QuadrangleParams.cxx +++ b/src/StdMeshers/StdMeshers_QuadrangleParams.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_QuadrangleParams.hxx b/src/StdMeshers/StdMeshers_QuadrangleParams.hxx index 052fa0c60..6bf9c2a22 100644 --- a/src/StdMeshers/StdMeshers_QuadrangleParams.hxx +++ b/src/StdMeshers/StdMeshers_QuadrangleParams.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_QuadranglePreference.cxx b/src/StdMeshers/StdMeshers_QuadranglePreference.cxx index 7636a5c8e..8ecb551a5 100644 --- a/src/StdMeshers/StdMeshers_QuadranglePreference.cxx +++ b/src/StdMeshers/StdMeshers_QuadranglePreference.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_QuadranglePreference.hxx b/src/StdMeshers/StdMeshers_QuadranglePreference.hxx index 98837a60e..184072509 100644 --- a/src/StdMeshers/StdMeshers_QuadranglePreference.hxx +++ b/src/StdMeshers/StdMeshers_QuadranglePreference.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx b/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx index 23be5d62f..57640ac0b 100644 --- a/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx +++ b/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -2545,22 +2545,19 @@ bool StdMeshers_Quadrangle_2D::ComputeReduced (SMESH_Mesh & aMesh, // maximum number of bottom elements for "tree" simple reduce 4->2 int max_tree42 = 0; // number of rows needed to reduce ncol_bot to ncol_top using simple 4->2 "tree" -#ifdef WIN32 - // of the MSVC doesn't contain log2 - int nrows_tree42 = int( log( (double)(ncol_bot / ncol_top) )/log((double)2) ); // needed to avoid overflow at pow(2) -#else - int nrows_tree42 = int( log2( ncol_bot / ncol_top )); // needed to avoid overflow at pow(2) -#endif - - if (ncol_top > npair_top * 2 && nrows_tree42 < nrows) { + int nrows_tree42 = int( log( (double)(ncol_bot / ncol_top) )/log((double)2) ); // needed to avoid overflow at pow(2) while computing max_tree42 + if ( nrows_tree42 < nrows) { max_tree42 = npair_top * pow(2.0, nrows + 1); - int delta = ncol_bot - int( max_tree42 ); - for (int irow = 1; irow < nrows; irow++) { - int nfour = delta / 4; - delta -= nfour * 2; + if (ncol_top > npair_top * 2 ) + { + int delta = ncol_bot - int( max_tree42 ); + for (int irow = 1; irow < nrows; irow++) { + int nfour = delta / 4; + delta -= nfour * 2; + } + if (delta <= (ncol_top - npair_top * 2)) + max_tree42 = ncol_bot; } - if (delta <= (ncol_top - npair_top * 2)) - max_tree42 = ncol_bot; } // maximum number of bottom elements for "tree" simple reduce 3->1 //int max_tree31 = ncol_top * pow(3.0, nrows); diff --git a/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx b/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx index bf1fdde46..08f7802b4 100644 --- a/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx +++ b/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_QuadraticMesh.cxx b/src/StdMeshers/StdMeshers_QuadraticMesh.cxx index 2914aab06..b58504b1f 100644 --- a/src/StdMeshers/StdMeshers_QuadraticMesh.cxx +++ b/src/StdMeshers/StdMeshers_QuadraticMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_QuadraticMesh.hxx b/src/StdMeshers/StdMeshers_QuadraticMesh.hxx index a75ee46c5..7d870408b 100644 --- a/src/StdMeshers/StdMeshers_QuadraticMesh.hxx +++ b/src/StdMeshers/StdMeshers_QuadraticMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_RadialPrism_3D.cxx b/src/StdMeshers/StdMeshers_RadialPrism_3D.cxx index bf1540f42..6ae4ac787 100644 --- a/src/StdMeshers/StdMeshers_RadialPrism_3D.cxx +++ b/src/StdMeshers/StdMeshers_RadialPrism_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -176,8 +176,8 @@ bool StdMeshers_RadialPrism_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& a // ---------------------------------- TAssocTool::TShapeShapeMap shape2ShapeMap; - if ( !TAssocTool::FindSubShapeAssociation( outerShell, &aMesh, - innerShell, &aMesh, + if ( !TAssocTool::FindSubShapeAssociation( innerShell, &aMesh, + outerShell, &aMesh, shape2ShapeMap) ) return error(COMPERR_BAD_SHAPE,"Topology of inner and outer shells seems different" ); @@ -193,11 +193,11 @@ bool StdMeshers_RadialPrism_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& a // Corresponding sub-shapes TopoDS_Face outFace = TopoDS::Face( exp.Current() ); TopoDS_Face inFace; - if ( !shape2ShapeMap.IsBound( outFace )) { + if ( !shape2ShapeMap.IsBound( outFace, /*isOut=*/true )) { return error(SMESH_Comment("Corresponding inner face not found for face #" ) << meshDS->ShapeToIndex( outFace )); } else { - inFace = TopoDS::Face( shape2ShapeMap( outFace )); + inFace = TopoDS::Face( shape2ShapeMap( outFace, /*isOut=*/true )); } // Find matching nodes of in and out faces diff --git a/src/StdMeshers/StdMeshers_RadialPrism_3D.hxx b/src/StdMeshers/StdMeshers_RadialPrism_3D.hxx index a287f4710..11959d46f 100644 --- a/src/StdMeshers/StdMeshers_RadialPrism_3D.hxx +++ b/src/StdMeshers/StdMeshers_RadialPrism_3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_RadialQuadrangle_1D2D.cxx b/src/StdMeshers/StdMeshers_RadialQuadrangle_1D2D.cxx index 96e84ce2e..d93c64eb6 100644 --- a/src/StdMeshers/StdMeshers_RadialQuadrangle_1D2D.cxx +++ b/src/StdMeshers/StdMeshers_RadialQuadrangle_1D2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -15,6 +15,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // SMESH SMESH : implementaion of SMESH idl descriptions // File : StdMeshers_RadialQuadrangle_1D2D.cxx diff --git a/src/StdMeshers/StdMeshers_RadialQuadrangle_1D2D.hxx b/src/StdMeshers/StdMeshers_RadialQuadrangle_1D2D.hxx index beb1de63c..b68ebe930 100644 --- a/src/StdMeshers/StdMeshers_RadialQuadrangle_1D2D.hxx +++ b/src/StdMeshers/StdMeshers_RadialQuadrangle_1D2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_Regular_1D.cxx b/src/StdMeshers/StdMeshers_Regular_1D.cxx index f075e0f03..3b3f02977 100644 --- a/src/StdMeshers/StdMeshers_Regular_1D.cxx +++ b/src/StdMeshers/StdMeshers_Regular_1D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_Regular_1D.hxx b/src/StdMeshers/StdMeshers_Regular_1D.hxx index c346f24d2..aed1064ab 100644 --- a/src/StdMeshers/StdMeshers_Regular_1D.hxx +++ b/src/StdMeshers/StdMeshers_Regular_1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_SegmentAroundVertex_0D.cxx b/src/StdMeshers/StdMeshers_SegmentAroundVertex_0D.cxx index 0b24b2653..1a6f14e18 100644 --- a/src/StdMeshers/StdMeshers_SegmentAroundVertex_0D.cxx +++ b/src/StdMeshers/StdMeshers_SegmentAroundVertex_0D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_SegmentAroundVertex_0D.hxx b/src/StdMeshers/StdMeshers_SegmentAroundVertex_0D.hxx index f5ef8bf0f..abb8ce2c6 100644 --- a/src/StdMeshers/StdMeshers_SegmentAroundVertex_0D.hxx +++ b/src/StdMeshers/StdMeshers_SegmentAroundVertex_0D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.cxx b/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.cxx index 04a8198d1..27f280f43 100644 --- a/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.cxx +++ b/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.hxx b/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.hxx index 587ce7da1..ed196455a 100644 --- a/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.hxx +++ b/src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_StartEndLength.cxx b/src/StdMeshers/StdMeshers_StartEndLength.cxx index d6e5a5431..46cee3f22 100644 --- a/src/StdMeshers/StdMeshers_StartEndLength.cxx +++ b/src/StdMeshers/StdMeshers_StartEndLength.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_StartEndLength.hxx b/src/StdMeshers/StdMeshers_StartEndLength.hxx index 5ecafc706..dc8781a7f 100644 --- a/src/StdMeshers/StdMeshers_StartEndLength.hxx +++ b/src/StdMeshers/StdMeshers_StartEndLength.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers/StdMeshers_UseExisting_1D2D.cxx b/src/StdMeshers/StdMeshers_UseExisting_1D2D.cxx index 8df19edf3..e93dfffaf 100644 --- a/src/StdMeshers/StdMeshers_UseExisting_1D2D.cxx +++ b/src/StdMeshers/StdMeshers_UseExisting_1D2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_UseExisting_1D2D.hxx b/src/StdMeshers/StdMeshers_UseExisting_1D2D.hxx index ce626ca83..23c64b5b9 100644 --- a/src/StdMeshers/StdMeshers_UseExisting_1D2D.hxx +++ b/src/StdMeshers/StdMeshers_UseExisting_1D2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers/StdMeshers_ViscousLayers.cxx b/src/StdMeshers/StdMeshers_ViscousLayers.cxx index 1355a87e4..41cff9622 100644 --- a/src/StdMeshers/StdMeshers_ViscousLayers.cxx +++ b/src/StdMeshers/StdMeshers_ViscousLayers.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -15,6 +15,7 @@ // 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 : StdMeshers_ViscousLayers.cxx // Created : Wed Dec 1 15:15:34 2010 diff --git a/src/StdMeshers/StdMeshers_ViscousLayers.hxx b/src/StdMeshers/StdMeshers_ViscousLayers.hxx index 9c701a4ce..42c187130 100644 --- a/src/StdMeshers/StdMeshers_ViscousLayers.hxx +++ b/src/StdMeshers/StdMeshers_ViscousLayers.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshersGUI/Makefile.am b/src/StdMeshersGUI/Makefile.am index fe0dee7ce..3f7a1d8ff 100644 --- a/src/StdMeshersGUI/Makefile.am +++ b/src/StdMeshersGUI/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshersGUI/SMESH_StdMeshersGUI.hxx b/src/StdMeshersGUI/SMESH_StdMeshersGUI.hxx index 9a807e2b9..946bd61a6 100755 --- a/src/StdMeshersGUI/SMESH_StdMeshersGUI.hxx +++ b/src/StdMeshersGUI/SMESH_StdMeshersGUI.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI.cxx b/src/StdMeshersGUI/StdMeshersGUI.cxx index b311ff8e3..8b86c5d27 100644 --- a/src/StdMeshersGUI/StdMeshersGUI.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx b/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx index bdcfcf85c..82b0be027 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.h b/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.h index 7654f26ac..d8cddb6a8 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.h +++ b/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx b/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx index 03a173738..4d9bd5111 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.h b/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.h index 156fc3f39..8abcc3e26 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.h +++ b/src/StdMeshersGUI/StdMeshersGUI_DistrPreview.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_DistrTable.cxx b/src/StdMeshersGUI/StdMeshersGUI_DistrTable.cxx index 545896d81..dbd9a4d8b 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_DistrTable.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_DistrTable.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_DistrTable.h b/src/StdMeshersGUI/StdMeshersGUI_DistrTable.h index 92432856b..9ba227c3a 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_DistrTable.h +++ b/src/StdMeshersGUI/StdMeshersGUI_DistrTable.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_FixedPointsParamWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_FixedPointsParamWdg.cxx index b4243f1d0..13b575e85 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_FixedPointsParamWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_FixedPointsParamWdg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshersGUI/StdMeshersGUI_FixedPointsParamWdg.h b/src/StdMeshersGUI/StdMeshersGUI_FixedPointsParamWdg.h index bbe6e8c01..312b00a34 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_FixedPointsParamWdg.h +++ b/src/StdMeshersGUI/StdMeshersGUI_FixedPointsParamWdg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.cxx index 4c46d8193..ee46af5b1 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.h b/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.h index 42980b797..41224a412 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.h +++ b/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx b/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx index e24950cf9..f4e65c3f6 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.h b/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.h index e6678a4b6..66456e0ca 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.h +++ b/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_ObjectReferenceParamWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_ObjectReferenceParamWdg.cxx index 16d484e53..1efeb0162 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_ObjectReferenceParamWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_ObjectReferenceParamWdg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_ObjectReferenceParamWdg.h b/src/StdMeshersGUI/StdMeshersGUI_ObjectReferenceParamWdg.h index 30d93de4a..26448cf22 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_ObjectReferenceParamWdg.h +++ b/src/StdMeshersGUI/StdMeshersGUI_ObjectReferenceParamWdg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx index 5249933d0..cb951878a 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.h b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.h index 040447077..b58445b6d 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.h +++ b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx b/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx index 9fc33b4d0..6e902a7f1 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.h b/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.h index 4daeaaf58..c08e255e7 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.h +++ b/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx index 5dc0d21f1..8c2240803 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.h b/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.h index 897b873fd..6d3cbbe7d 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.h +++ b/src/StdMeshersGUI/StdMeshersGUI_SubShapeSelectorWdg.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshersGUI/StdMeshers_msg_en.ts b/src/StdMeshersGUI/StdMeshers_msg_en.ts index 8564f2323..df97c12a1 100644 --- a/src/StdMeshersGUI/StdMeshers_msg_en.ts +++ b/src/StdMeshersGUI/StdMeshers_msg_en.ts @@ -322,11 +322,11 @@ SMESH_SOURCE_3DSHAPE - 3D shape + Source 3D shape SMESH_SOURCE_EDGE - Edge + Source Edge SMESH_SOURCE_EDGES @@ -334,7 +334,7 @@ SMESH_SOURCE_FACE - Face + Source Face SMESH_SOURCE_FACES @@ -342,7 +342,7 @@ SMESH_SOURCE_MESH - Mesh + Source Mesh SMESH_COPY_MESH diff --git a/src/StdMeshersGUI/StdMeshers_msg_fr.ts b/src/StdMeshersGUI/StdMeshers_msg_fr.ts index 9c9352a4e..836a9fb20 100755 --- a/src/StdMeshersGUI/StdMeshers_msg_fr.ts +++ b/src/StdMeshersGUI/StdMeshers_msg_fr.ts @@ -89,7 +89,7 @@ SMESH_FUNC_DOMAIN - Avertissement: La fonction doit ếtre définie sur le segment [0..1] + Avertissement: La fonction doit être définie sur le segment [0..1] SMESH_INSERT_ROW @@ -113,7 +113,7 @@ SMESH_LOCAL_LENGTH_HYPOTHESIS - Longueur moyennne + Longueur moyenne SMESH_LOCAL_LENGTH_PARAM diff --git a/src/StdMeshers_I/Makefile.am b/src/StdMeshers_I/Makefile.am index cec31e8be..4bc901d2d 100644 --- a/src/StdMeshers_I/Makefile.am +++ b/src/StdMeshers_I/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/SMESH_StdMeshers_I.hxx b/src/StdMeshers_I/SMESH_StdMeshers_I.hxx index 2c946cd2a..6352b0734 100755 --- a/src/StdMeshers_I/SMESH_StdMeshers_I.hxx +++ b/src/StdMeshers_I/SMESH_StdMeshers_I.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.cxx b/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.cxx index 2485217e6..8d57e1e9a 100644 --- a/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.hxx b/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.hxx index 45928d79c..6dfeb10fd 100644 --- a/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Arithmetic1D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_AutomaticLength_i.cxx b/src/StdMeshers_I/StdMeshers_AutomaticLength_i.cxx index 1061da453..9d8f15e65 100644 --- a/src/StdMeshers_I/StdMeshers_AutomaticLength_i.cxx +++ b/src/StdMeshers_I/StdMeshers_AutomaticLength_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_AutomaticLength_i.hxx b/src/StdMeshers_I/StdMeshers_AutomaticLength_i.hxx index ef83f8e85..c3492bf38 100644 --- a/src/StdMeshers_I/StdMeshers_AutomaticLength_i.hxx +++ b/src/StdMeshers_I/StdMeshers_AutomaticLength_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_CartesianParameters3D_i.cxx b/src/StdMeshers_I/StdMeshers_CartesianParameters3D_i.cxx index fbba9a17f..d8b072476 100644 --- a/src/StdMeshers_I/StdMeshers_CartesianParameters3D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_CartesianParameters3D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -19,7 +19,6 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses // File : StdMeshers_CartesianParameters3D_i.cxx // Module : SMESH // diff --git a/src/StdMeshers_I/StdMeshers_CartesianParameters3D_i.hxx b/src/StdMeshers_I/StdMeshers_CartesianParameters3D_i.hxx index e33a8984c..e09422d0f 100644 --- a/src/StdMeshers_I/StdMeshers_CartesianParameters3D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_CartesianParameters3D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -19,7 +19,6 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses // File : StdMeshers_CartesianParameters3D_i.hxx // Module : SMESH // diff --git a/src/StdMeshers_I/StdMeshers_Cartesian_3D_i.cxx b/src/StdMeshers_I/StdMeshers_Cartesian_3D_i.cxx index 0665ebefb..445495f7a 100644 --- a/src/StdMeshers_I/StdMeshers_Cartesian_3D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Cartesian_3D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -19,7 +19,6 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses // File : StdMeshers_Cartesian_3D_i.cxx // Module : SMESH // diff --git a/src/StdMeshers_I/StdMeshers_Cartesian_3D_i.hxx b/src/StdMeshers_I/StdMeshers_Cartesian_3D_i.hxx index 4d518036b..7b2d72a28 100644 --- a/src/StdMeshers_I/StdMeshers_Cartesian_3D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Cartesian_3D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -19,7 +19,6 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses // File : StdMeshers_Cartesian_3D_i.hxx // Module : SMESH // diff --git a/src/StdMeshers_I/StdMeshers_CompositeSegment_1D_i.cxx b/src/StdMeshers_I/StdMeshers_CompositeSegment_1D_i.cxx index 312806840..5dc09cbc5 100644 --- a/src/StdMeshers_I/StdMeshers_CompositeSegment_1D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_CompositeSegment_1D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_CompositeSegment_1D_i.hxx b/src/StdMeshers_I/StdMeshers_CompositeSegment_1D_i.hxx index aaeab14b3..4f40a2d7a 100644 --- a/src/StdMeshers_I/StdMeshers_CompositeSegment_1D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_CompositeSegment_1D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Deflection1D_i.cxx b/src/StdMeshers_I/StdMeshers_Deflection1D_i.cxx index f01f2a167..93b208b7a 100644 --- a/src/StdMeshers_I/StdMeshers_Deflection1D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Deflection1D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Deflection1D_i.hxx b/src/StdMeshers_I/StdMeshers_Deflection1D_i.hxx index ad45de2a6..f4e9a9b26 100644 --- a/src/StdMeshers_I/StdMeshers_Deflection1D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Deflection1D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_FixedPoints1D_i.cxx b/src/StdMeshers_I/StdMeshers_FixedPoints1D_i.cxx index 7173d3d47..1d39c8edd 100644 --- a/src/StdMeshers_I/StdMeshers_FixedPoints1D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_FixedPoints1D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_FixedPoints1D_i.hxx b/src/StdMeshers_I/StdMeshers_FixedPoints1D_i.hxx index 0c5cc1325..ee43e5ca9 100644 --- a/src/StdMeshers_I/StdMeshers_FixedPoints1D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_FixedPoints1D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx b/src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx index bbc1c5183..d75efe8e8 100644 --- a/src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx b/src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx index 26c04d616..6316fea71 100644 --- a/src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ImportSource1D_i.cxx b/src/StdMeshers_I/StdMeshers_ImportSource1D_i.cxx index 71035f406..e2ad32141 100644 --- a/src/StdMeshers_I/StdMeshers_ImportSource1D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_ImportSource1D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ImportSource1D_i.hxx b/src/StdMeshers_I/StdMeshers_ImportSource1D_i.hxx index fcad2bdf6..1c3fafaa7 100644 --- a/src/StdMeshers_I/StdMeshers_ImportSource1D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_ImportSource1D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ImportSource2D_i.cxx b/src/StdMeshers_I/StdMeshers_ImportSource2D_i.cxx index cd45020d3..35f9d3fb0 100644 --- a/src/StdMeshers_I/StdMeshers_ImportSource2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_ImportSource2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ImportSource2D_i.hxx b/src/StdMeshers_I/StdMeshers_ImportSource2D_i.hxx index 08cc41aa0..eea15bacd 100644 --- a/src/StdMeshers_I/StdMeshers_ImportSource2D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_ImportSource2D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Import_1D2D_i.cxx b/src/StdMeshers_I/StdMeshers_Import_1D2D_i.cxx index aa169c2fc..104b7773b 100644 --- a/src/StdMeshers_I/StdMeshers_Import_1D2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Import_1D2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_Import_1D2D_i.hxx b/src/StdMeshers_I/StdMeshers_Import_1D2D_i.hxx index 86ad5bf76..150f5aa3a 100644 --- a/src/StdMeshers_I/StdMeshers_Import_1D2D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Import_1D2D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_Import_1D_i.cxx b/src/StdMeshers_I/StdMeshers_Import_1D_i.cxx index 7dfab1b20..2a73e4e2e 100644 --- a/src/StdMeshers_I/StdMeshers_Import_1D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Import_1D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Import_1D_i.hxx b/src/StdMeshers_I/StdMeshers_Import_1D_i.hxx index 3c69bb9a3..eec55f242 100644 --- a/src/StdMeshers_I/StdMeshers_Import_1D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Import_1D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_LayerDistribution2D_i.cxx b/src/StdMeshers_I/StdMeshers_LayerDistribution2D_i.cxx index 2541fe94d..5fd33f413 100644 --- a/src/StdMeshers_I/StdMeshers_LayerDistribution2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_LayerDistribution2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_LayerDistribution2D_i.hxx b/src/StdMeshers_I/StdMeshers_LayerDistribution2D_i.hxx index fc5c571e6..25acd65ce 100644 --- a/src/StdMeshers_I/StdMeshers_LayerDistribution2D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_LayerDistribution2D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_LayerDistribution_i.cxx b/src/StdMeshers_I/StdMeshers_LayerDistribution_i.cxx index 618575fe9..e162f22aa 100644 --- a/src/StdMeshers_I/StdMeshers_LayerDistribution_i.cxx +++ b/src/StdMeshers_I/StdMeshers_LayerDistribution_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_LayerDistribution_i.hxx b/src/StdMeshers_I/StdMeshers_LayerDistribution_i.hxx index 7f1b91603..78bf71d5a 100644 --- a/src/StdMeshers_I/StdMeshers_LayerDistribution_i.hxx +++ b/src/StdMeshers_I/StdMeshers_LayerDistribution_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.cxx b/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.cxx index 3638e5851..324a9b064 100644 --- a/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.cxx +++ b/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.hxx b/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.hxx index e92b67f7e..38f50d3df 100644 --- a/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.hxx +++ b/src/StdMeshers_I/StdMeshers_LengthFromEdges_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_LocalLength_i.cxx b/src/StdMeshers_I/StdMeshers_LocalLength_i.cxx index a5fb518f4..5d6ec1b51 100644 --- a/src/StdMeshers_I/StdMeshers_LocalLength_i.cxx +++ b/src/StdMeshers_I/StdMeshers_LocalLength_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_LocalLength_i.hxx b/src/StdMeshers_I/StdMeshers_LocalLength_i.hxx index 00e565c31..dd2b239e1 100644 --- a/src/StdMeshers_I/StdMeshers_LocalLength_i.hxx +++ b/src/StdMeshers_I/StdMeshers_LocalLength_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx b/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx index b9f035c4c..5eb244e89 100644 --- a/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx b/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx index 7a715552a..3700c7cea 100644 --- a/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_MaxElementArea_i.cxx b/src/StdMeshers_I/StdMeshers_MaxElementArea_i.cxx index 26f44c5cc..7af8090bc 100644 --- a/src/StdMeshers_I/StdMeshers_MaxElementArea_i.cxx +++ b/src/StdMeshers_I/StdMeshers_MaxElementArea_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_MaxElementArea_i.hxx b/src/StdMeshers_I/StdMeshers_MaxElementArea_i.hxx index 071888494..51e6033b9 100644 --- a/src/StdMeshers_I/StdMeshers_MaxElementArea_i.hxx +++ b/src/StdMeshers_I/StdMeshers_MaxElementArea_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.cxx b/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.cxx index 5d447a355..a9e8b657d 100644 --- a/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.cxx +++ b/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.hxx b/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.hxx index f4896a779..829097c4d 100644 --- a/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.hxx +++ b/src/StdMeshers_I/StdMeshers_MaxElementVolume_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_MaxLength_i.cxx b/src/StdMeshers_I/StdMeshers_MaxLength_i.cxx index f11df4fe4..5ce5b34f9 100644 --- a/src/StdMeshers_I/StdMeshers_MaxLength_i.cxx +++ b/src/StdMeshers_I/StdMeshers_MaxLength_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_MaxLength_i.hxx b/src/StdMeshers_I/StdMeshers_MaxLength_i.hxx index cbc99b51a..f088f7895 100644 --- a/src/StdMeshers_I/StdMeshers_MaxLength_i.hxx +++ b/src/StdMeshers_I/StdMeshers_MaxLength_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.cxx b/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.cxx index 39897ef17..78831a397 100644 --- a/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.cxx +++ b/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.hxx b/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.hxx index 661470d40..862baae57 100644 --- a/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.hxx +++ b/src/StdMeshers_I/StdMeshers_NotConformAllowed_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_NumberOfLayers2D_i.cxx b/src/StdMeshers_I/StdMeshers_NumberOfLayers2D_i.cxx index fa7f8d566..e4e5a1ecf 100644 --- a/src/StdMeshers_I/StdMeshers_NumberOfLayers2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_NumberOfLayers2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_NumberOfLayers2D_i.hxx b/src/StdMeshers_I/StdMeshers_NumberOfLayers2D_i.hxx index 759f7cf65..ae684594d 100644 --- a/src/StdMeshers_I/StdMeshers_NumberOfLayers2D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_NumberOfLayers2D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_NumberOfLayers_i.cxx b/src/StdMeshers_I/StdMeshers_NumberOfLayers_i.cxx index ecc6ffb3c..8c12ab727 100644 --- a/src/StdMeshers_I/StdMeshers_NumberOfLayers_i.cxx +++ b/src/StdMeshers_I/StdMeshers_NumberOfLayers_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_NumberOfLayers_i.hxx b/src/StdMeshers_I/StdMeshers_NumberOfLayers_i.hxx index c301a916a..cf8b1bcb2 100644 --- a/src/StdMeshers_I/StdMeshers_NumberOfLayers_i.hxx +++ b/src/StdMeshers_I/StdMeshers_NumberOfLayers_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx b/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx index 9e7aa6292..d0195c9a7 100644 --- a/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx +++ b/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.hxx b/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.hxx index 14876bf28..3745a736c 100644 --- a/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.hxx +++ b/src/StdMeshers_I/StdMeshers_NumberOfSegments_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx b/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx index bca540fc8..910d0aaa8 100644 --- a/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx +++ b/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx b/src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx index 913224364..2f13689c1 100644 --- a/src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx +++ b/src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Prism_3D_i.cxx b/src/StdMeshers_I/StdMeshers_Prism_3D_i.cxx index 8eb455d55..4daffc4a4 100644 --- a/src/StdMeshers_I/StdMeshers_Prism_3D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Prism_3D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Prism_3D_i.hxx b/src/StdMeshers_I/StdMeshers_Prism_3D_i.hxx index 0de73f2e5..c7d179c09 100644 --- a/src/StdMeshers_I/StdMeshers_Prism_3D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Prism_3D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.cxx b/src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.cxx index b8acaa11b..092e9b451 100644 --- a/src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.hxx b/src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.hxx index 59ea0aaea..7326d3730 100644 --- a/src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ProjectionSource2D_i.cxx b/src/StdMeshers_I/StdMeshers_ProjectionSource2D_i.cxx index 5bdfb2087..2c14db459 100644 --- a/src/StdMeshers_I/StdMeshers_ProjectionSource2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_ProjectionSource2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ProjectionSource2D_i.hxx b/src/StdMeshers_I/StdMeshers_ProjectionSource2D_i.hxx index 7afcad007..454744439 100644 --- a/src/StdMeshers_I/StdMeshers_ProjectionSource2D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_ProjectionSource2D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ProjectionSource3D_i.cxx b/src/StdMeshers_I/StdMeshers_ProjectionSource3D_i.cxx index f57e06e3b..ea2a2b31f 100644 --- a/src/StdMeshers_I/StdMeshers_ProjectionSource3D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_ProjectionSource3D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ProjectionSource3D_i.hxx b/src/StdMeshers_I/StdMeshers_ProjectionSource3D_i.hxx index 2f5c43621..f09340130 100644 --- a/src/StdMeshers_I/StdMeshers_ProjectionSource3D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_ProjectionSource3D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Projection_1D_2D_3D_i.cxx b/src/StdMeshers_I/StdMeshers_Projection_1D_2D_3D_i.cxx index 531d0df42..ed4063315 100644 --- a/src/StdMeshers_I/StdMeshers_Projection_1D_2D_3D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Projection_1D_2D_3D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Projection_1D_2D_3D_i.hxx b/src/StdMeshers_I/StdMeshers_Projection_1D_2D_3D_i.hxx index 30716a543..fb17dd609 100644 --- a/src/StdMeshers_I/StdMeshers_Projection_1D_2D_3D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Projection_1D_2D_3D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Propagation_i.cxx b/src/StdMeshers_I/StdMeshers_Propagation_i.cxx index 239625081..a288d1c3b 100644 --- a/src/StdMeshers_I/StdMeshers_Propagation_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Propagation_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Propagation_i.hxx b/src/StdMeshers_I/StdMeshers_Propagation_i.hxx index 7d43d3f0f..a79465a3e 100644 --- a/src/StdMeshers_I/StdMeshers_Propagation_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Propagation_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_QuadrangleParams_i.cxx b/src/StdMeshers_I/StdMeshers_QuadrangleParams_i.cxx index a7e21ab91..4d72e8de1 100644 --- a/src/StdMeshers_I/StdMeshers_QuadrangleParams_i.cxx +++ b/src/StdMeshers_I/StdMeshers_QuadrangleParams_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_QuadrangleParams_i.hxx b/src/StdMeshers_I/StdMeshers_QuadrangleParams_i.hxx index bee17eb83..7558ea36c 100644 --- a/src/StdMeshers_I/StdMeshers_QuadrangleParams_i.hxx +++ b/src/StdMeshers_I/StdMeshers_QuadrangleParams_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_QuadranglePreference_i.cxx b/src/StdMeshers_I/StdMeshers_QuadranglePreference_i.cxx index 5d09d33cd..57a053d98 100644 --- a/src/StdMeshers_I/StdMeshers_QuadranglePreference_i.cxx +++ b/src/StdMeshers_I/StdMeshers_QuadranglePreference_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_QuadranglePreference_i.hxx b/src/StdMeshers_I/StdMeshers_QuadranglePreference_i.hxx index ec3a62ac7..b0d2bc712 100644 --- a/src/StdMeshers_I/StdMeshers_QuadranglePreference_i.hxx +++ b/src/StdMeshers_I/StdMeshers_QuadranglePreference_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.cxx b/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.cxx index ab8510f2b..24d44ac6a 100644 --- a/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.hxx b/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.hxx index 2a06bf451..2dfcce71d 100644 --- a/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.cxx b/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.cxx index cc481da26..71553993f 100644 --- a/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.cxx +++ b/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.hxx b/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.hxx index 44c9e407e..522f69644 100644 --- a/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.hxx +++ b/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_RadialQuadrangle_1D2D_i.cxx b/src/StdMeshers_I/StdMeshers_RadialQuadrangle_1D2D_i.cxx index 5853c9c63..202faa256 100644 --- a/src/StdMeshers_I/StdMeshers_RadialQuadrangle_1D2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_RadialQuadrangle_1D2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_RadialQuadrangle_1D2D_i.hxx b/src/StdMeshers_I/StdMeshers_RadialQuadrangle_1D2D_i.hxx index a442b514c..ae5b731cb 100644 --- a/src/StdMeshers_I/StdMeshers_RadialQuadrangle_1D2D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_RadialQuadrangle_1D2D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx b/src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx index 3186e8dc2..a9b8cd8ac 100644 --- a/src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx b/src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx index fddb783a5..ea299fc98 100644 --- a/src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_SegmentAroundVertex_0D_i.cxx b/src/StdMeshers_I/StdMeshers_SegmentAroundVertex_0D_i.cxx index 09a42d463..0836c36e4 100644 --- a/src/StdMeshers_I/StdMeshers_SegmentAroundVertex_0D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_SegmentAroundVertex_0D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_SegmentAroundVertex_0D_i.hxx b/src/StdMeshers_I/StdMeshers_SegmentAroundVertex_0D_i.hxx index 28462a9db..64d559097 100644 --- a/src/StdMeshers_I/StdMeshers_SegmentAroundVertex_0D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_SegmentAroundVertex_0D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_SegmentLengthAroundVertex_i.cxx b/src/StdMeshers_I/StdMeshers_SegmentLengthAroundVertex_i.cxx index d15385bfa..7eba3661c 100644 --- a/src/StdMeshers_I/StdMeshers_SegmentLengthAroundVertex_i.cxx +++ b/src/StdMeshers_I/StdMeshers_SegmentLengthAroundVertex_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_SegmentLengthAroundVertex_i.hxx b/src/StdMeshers_I/StdMeshers_SegmentLengthAroundVertex_i.hxx index dd30be3fa..220a7e733 100644 --- a/src/StdMeshers_I/StdMeshers_SegmentLengthAroundVertex_i.hxx +++ b/src/StdMeshers_I/StdMeshers_SegmentLengthAroundVertex_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_StartEndLength_i.cxx b/src/StdMeshers_I/StdMeshers_StartEndLength_i.cxx index 1b9f0d8e8..61b855a1d 100644 --- a/src/StdMeshers_I/StdMeshers_StartEndLength_i.cxx +++ b/src/StdMeshers_I/StdMeshers_StartEndLength_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_StartEndLength_i.hxx b/src/StdMeshers_I/StdMeshers_StartEndLength_i.hxx index bef2c5415..7eeb70e17 100644 --- a/src/StdMeshers_I/StdMeshers_StartEndLength_i.hxx +++ b/src/StdMeshers_I/StdMeshers_StartEndLength_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.cxx b/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.cxx index 7f9fcc385..1ca4f2038 100644 --- a/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.cxx +++ b/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.hxx b/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.hxx index 9be4d2c9d..77f019fbf 100644 --- a/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.hxx +++ b/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/StdMeshers_I/StdMeshers_ViscousLayers_i.cxx b/src/StdMeshers_I/StdMeshers_ViscousLayers_i.cxx index 18c7365e7..55ca30d75 100644 --- a/src/StdMeshers_I/StdMeshers_ViscousLayers_i.cxx +++ b/src/StdMeshers_I/StdMeshers_ViscousLayers_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_ViscousLayers_i.hxx b/src/StdMeshers_I/StdMeshers_ViscousLayers_i.hxx index 99a3d14dc..e4d5d6e2e 100644 --- a/src/StdMeshers_I/StdMeshers_ViscousLayers_i.hxx +++ b/src/StdMeshers_I/StdMeshers_ViscousLayers_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/StdMeshers_I/StdMeshers_i.cxx b/src/StdMeshers_I/StdMeshers_i.cxx index a87dc8490..20104d9c8 100644 --- a/src/StdMeshers_I/StdMeshers_i.cxx +++ b/src/StdMeshers_I/StdMeshers_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/Tools/Makefile.am b/src/Tools/Makefile.am index 6ac95c5be..cae255b85 100644 --- a/src/Tools/Makefile.am +++ b/src/Tools/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/AUTHORS b/src/Tools/MeshCut/AUTHORS index 0aa1811a8..28f414d71 100644 --- a/src/Tools/MeshCut/AUTHORS +++ b/src/Tools/MeshCut/AUTHORS @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/Makefile.am b/src/Tools/MeshCut/Makefile.am index 496b3e11a..d09c3bb2a 100644 --- a/src/Tools/MeshCut/Makefile.am +++ b/src/Tools/MeshCut/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Carre.cxx b/src/Tools/MeshCut/MeshCut_Carre.cxx index fb89a8a3a..181a6e5f9 100644 --- a/src/Tools/MeshCut/MeshCut_Carre.cxx +++ b/src/Tools/MeshCut/MeshCut_Carre.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Carre.hxx b/src/Tools/MeshCut/MeshCut_Carre.hxx index 0c1e9f574..9f6f303b8 100644 --- a/src/Tools/MeshCut/MeshCut_Carre.hxx +++ b/src/Tools/MeshCut/MeshCut_Carre.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Cas.cxx b/src/Tools/MeshCut/MeshCut_Cas.cxx index 24693f04e..16c8455a4 100644 --- a/src/Tools/MeshCut/MeshCut_Cas.cxx +++ b/src/Tools/MeshCut/MeshCut_Cas.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Cas.hxx b/src/Tools/MeshCut/MeshCut_Cas.hxx index a8060e0e6..0840280f8 100644 --- a/src/Tools/MeshCut/MeshCut_Cas.hxx +++ b/src/Tools/MeshCut/MeshCut_Cas.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Cube.cxx b/src/Tools/MeshCut/MeshCut_Cube.cxx index e734b3189..62ef84613 100644 --- a/src/Tools/MeshCut/MeshCut_Cube.cxx +++ b/src/Tools/MeshCut/MeshCut_Cube.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Cube.hxx b/src/Tools/MeshCut/MeshCut_Cube.hxx index 2bcc5e3d5..03068d933 100644 --- a/src/Tools/MeshCut/MeshCut_Cube.hxx +++ b/src/Tools/MeshCut/MeshCut_Cube.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_DC.cxx b/src/Tools/MeshCut/MeshCut_DC.cxx index d957103db..36bcae4b0 100644 --- a/src/Tools/MeshCut/MeshCut_DC.cxx +++ b/src/Tools/MeshCut/MeshCut_DC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Fonctions.cxx b/src/Tools/MeshCut/MeshCut_Fonctions.cxx index a68f11dd3..28ca3dc56 100644 --- a/src/Tools/MeshCut/MeshCut_Fonctions.cxx +++ b/src/Tools/MeshCut/MeshCut_Fonctions.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Fonctions.hxx b/src/Tools/MeshCut/MeshCut_Fonctions.hxx index 76184a562..cee002f34 100644 --- a/src/Tools/MeshCut/MeshCut_Fonctions.hxx +++ b/src/Tools/MeshCut/MeshCut_Fonctions.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Globals.hxx b/src/Tools/MeshCut/MeshCut_Globals.hxx index 1ddd25096..fc1f83153 100644 --- a/src/Tools/MeshCut/MeshCut_Globals.hxx +++ b/src/Tools/MeshCut/MeshCut_Globals.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Maillage.cxx b/src/Tools/MeshCut/MeshCut_Maillage.cxx index 52136a2fc..0ae4437e0 100644 --- a/src/Tools/MeshCut/MeshCut_Maillage.cxx +++ b/src/Tools/MeshCut/MeshCut_Maillage.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Maillage.hxx b/src/Tools/MeshCut/MeshCut_Maillage.hxx index 871c9366a..06dbc5c34 100644 --- a/src/Tools/MeshCut/MeshCut_Maillage.hxx +++ b/src/Tools/MeshCut/MeshCut_Maillage.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Utils.cxx b/src/Tools/MeshCut/MeshCut_Utils.cxx index 247dad6ec..e7cf9e0b4 100644 --- a/src/Tools/MeshCut/MeshCut_Utils.cxx +++ b/src/Tools/MeshCut/MeshCut_Utils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/MeshCut_Utils.hxx b/src/Tools/MeshCut/MeshCut_Utils.hxx index 639e355bb..36eb22d0f 100644 --- a/src/Tools/MeshCut/MeshCut_Utils.hxx +++ b/src/Tools/MeshCut/MeshCut_Utils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2011 EDF R&D +// Copyright (C) 2006-2012 EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/MeshCut/meshcut_plugin.py b/src/Tools/MeshCut/meshcut_plugin.py index 600e09f10..eaab60897 100644 --- a/src/Tools/MeshCut/meshcut_plugin.py +++ b/src/Tools/MeshCut/meshcut_plugin.py @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2011 EDF R&D +# Copyright (C) 2006-2012 EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/padder/Makefile.am b/src/Tools/padder/Makefile.am index 6f1623464..e771536bd 100644 --- a/src/Tools/padder/Makefile.am +++ b/src/Tools/padder/Makefile.am @@ -1,3 +1,22 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D +# +# 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 +# + SUBDIRS = meshjob spadderpy unittests resources doc EXTRA_DIST = README.txt diff --git a/src/Tools/padder/doc/Makefile.am b/src/Tools/padder/doc/Makefile.am index fa2d6f82e..ec45f7474 100755 --- a/src/Tools/padder/doc/Makefile.am +++ b/src/Tools/padder/doc/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2011-2012 CEA/DEN, EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public diff --git a/src/Tools/padder/doc/doxyfile.in b/src/Tools/padder/doc/doxyfile.in index 8f2aa2ac2..7ce741cfa 100755 --- a/src/Tools/padder/doc/doxyfile.in +++ b/src/Tools/padder/doc/doxyfile.in @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/src/Tools/padder/meshjob/Makefile.am b/src/Tools/padder/meshjob/Makefile.am index 26bf6ee9b..b1a47b9d9 100644 --- a/src/Tools/padder/meshjob/Makefile.am +++ b/src/Tools/padder/meshjob/Makefile.am @@ -1 +1,20 @@ +# Copyright (C) 2011-2012 CEA/DEN, EDF R&D +# +# 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 +# + SUBDIRS = idl impl diff --git a/src/Tools/padder/meshjob/idl/MESHJOB.idl b/src/Tools/padder/meshjob/idl/MESHJOB.idl index dc423189b..a5559cd77 100644 --- a/src/Tools/padder/meshjob/idl/MESHJOB.idl +++ b/src/Tools/padder/meshjob/idl/MESHJOB.idl @@ -1,20 +1,20 @@ -// Copyright (C) 2011 CEA/DEN, EDF R&D +// Copyright (C) 2011-2012 CEA/DEN, EDF R&D // -// 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 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. +// 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 +// 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 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Authors : Guillaume Boulant (EDF) - 31/01/2011 diff --git a/src/Tools/padder/meshjob/idl/Makefile.am b/src/Tools/padder/meshjob/idl/Makefile.am index 1f6ae9af2..15bb1a87c 100644 --- a/src/Tools/padder/meshjob/idl/Makefile.am +++ b/src/Tools/padder/meshjob/idl/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2011-2012 CEA/DEN, EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -31,6 +31,8 @@ IDL_FILES = MESHJOB.idl BUILT_SOURCES += SPADDERPluginTestSK.cc IDL_FILES += SPADDERPluginTest.idl +IDL_FILES_PY=$(IDL_FILES:%.idl=%_idl.py) + salomeidl_DATA = $(IDL_FILES) lib_LTLIBRARIES = libSalomeIDLSPADDER.la @@ -81,6 +83,13 @@ install-data-local: $(IDL_FILES) $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \ done +# we want to remove only staff generated for IDL files and nothing more uninstall-local: - rm -rf $(DESTDIR)$(salomepythondir)/* + @for modulen in MESHJOB SPADDERPluginTest ; do \ + test -d $(DESTDIR)$(salomepythondir)/$${modulen} && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen} ; \ + test -d $(DESTDIR)$(salomepythondir)/$${modulen}__POA && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}__POA" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen}__POA ; \ + done ; \ + for filen in $(IDL_FILES_PY) ; do \ + echo "Removing $(DESTDIR)$(salomepythondir)/$${filen}" && rm -f $(DESTDIR)$(salomepythondir)/$${filen}* ; \ + done diff --git a/src/Tools/padder/meshjob/idl/SPADDERPluginTest.idl b/src/Tools/padder/meshjob/idl/SPADDERPluginTest.idl index 6f04f0104..e0beec0e9 100644 --- a/src/Tools/padder/meshjob/idl/SPADDERPluginTest.idl +++ b/src/Tools/padder/meshjob/idl/SPADDERPluginTest.idl @@ -1,20 +1,20 @@ -// Copyright (C) 2011 CEA/DEN, EDF R&D +// Copyright (C) 2011-2012 CEA/DEN, EDF R&D // -// 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 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. +// 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 +// 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 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Authors : Guillaume Boulant (EDF) - 31/01/2011 diff --git a/src/Tools/padder/meshjob/impl/Makefile.am b/src/Tools/padder/meshjob/impl/Makefile.am index a1cc70129..31a6dbbdf 100644 --- a/src/Tools/padder/meshjob/impl/Makefile.am +++ b/src/Tools/padder/meshjob/impl/Makefile.am @@ -1,3 +1,21 @@ +# Copyright (C) 2011-2012 CEA/DEN, EDF R&D +# +# 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 +# include $(top_srcdir)/adm_local/unix/make_common_starter.am diff --git a/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx b/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx index beb25fdec..72520fbab 100644 --- a/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx +++ b/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx @@ -1,22 +1,23 @@ -// Copyright (C) 2011 EDF R&D +// Copyright (C) 2011-2012 EDF R&D // -// 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 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. +// 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 +// 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 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // Authors : Guillaume Boulant (EDF) - 01/03/2011 + #ifdef WIN32 #include #include @@ -249,6 +250,8 @@ CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobParameterList & m const char * configId) { beginService("MeshJobManager_i::initialize"); + std::cerr << "##################################### initialize" << std::endl; + std::cerr << "#####################################" << std::endl; // // We first analyse the CORBA sequence to store data in C++ vectors @@ -413,7 +416,14 @@ CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobParameterList & m int jobId = JOBID_UNDEFINED; try { + std::cerr << "#####################################" << std::endl; + std::cerr << "#####################################" << std::endl; + std::cerr << "jobUndef = " << JOBID_UNDEFINED << std::endl; jobId = _salomeLauncher->createJob(jobParameters); + std::cerr << "#####################################" << std::endl; + std::cerr << "#####################################" << std::endl; + std::cerr << "#####################################" << std::endl; + std::cerr << "jobId = " << jobId << std::endl; // We register the datetime tag of this job _jobDateTimeMap[jobId]=jobDatetimeTag; _jobPathsMap[jobId] = jobPaths; @@ -441,7 +451,7 @@ bool MeshJobManager_i::start(CORBA::Long jobId) { _salomeLauncher->launchJob(jobId); } catch (const SALOME::SALOME_Exception & ex) { - LOG("SALOME Exception in createJob !" <

    {nvF9o3KID7Y#crd^F{4*-LhElp)iGs`+)s8>XghvHB{F zV7YwKWe$FXD6w{A4LJQbmw#h07dl>?zRK6?eE z!Y`YE!Xkt#b{X$2e>xp{|5wxXpFhWrDzE!!UxOYQ#nDt>v8$(4B1+B9G9P;Bv{61Q zIJhbPtI1-LO`Pr5n2Eoypx=()#>Up`E?d-EG_USh(c^YytLz@ivDg&SWC={vLBax# zd&ayjl)JOL+q}5{ZBEW(C7_Ff^@EuO(8n&*R=B{AE5QKrke(5_GUh}~LE)U2#04H^E|3x* z`-Zri4R4s3&`YVvDK~jr3ZJQ#77MdKV(i(X?E4krmOs_AB?qEgNkWC^zV%HkIhsF(8|ASdE@c)2mwD;ZVucc>nD zp)}9t@5i^I7NgVH1mvKWjlOe-8w!s5n3#T!%?6rgyZ2EB4>Ar?eLbw(33cZ0N9blP z6lKVEvDDPm)C8K3_$*bYGK6;wi$k*Ic_?4ql4bMz{$pr;c6N53>Urk;@OwkP zev)O`bf1u#a@mDZPcN_Y+lzezP7Oj|8|ubJ`?hY+J$-{*xV|Mz?+OA=b?}@CM&=tA zg^Hph&aQR8hmW4)7#Br>>G#A$-PaHn<(-B6<$|`#XHe0S^$NHx!w*N1(#bKUt z-v;xITjV9lOk!tOmtxjqsFJ6@e*FX}Tvtz&S6KjcPlKJS&NPMM={<+73tZR-pUW**PYpL(NLC@L+B2PxrNF6bO)VY5`+ED|qGS4ah0-1BO#;tFxLsFf2!&0MET&2j<>Y;ivNoOAhU<5jnG&D4dJn{`g z%=(S#r!(;}Dw&d_M)?NWa+>+4{L(Wr4=Vrl$3ieN?RLk-*?X-djLG06G_) zf!&$Xa*He!l~MVJ#M&Y&Crwgl$18e=iJ6)Be#i1~+V*rBe!;sq;$Oib`I!20aJgP z8yz_51=<}9!zSLdMS5@5-?~^JFPT|4Y?}MGXKiaw&q>j0-Wb}-%F239*+^$wt~I)*RS;@1EDX7M0R{lLdV9Lpj7Td$@mo{zMyU&eb0J9<@#zkcAVs`T^tB)X@&0YVI#wtMRoVCC- z2tdTAPduQhEiEmH3b0675Xp4c8#+?3&Z-Df1a#E6v8l;9ZkE&@_^#v5(Q)3#)8kSv zl!`Oo&n=tJ=k_1G8< zGOF?^Z5C6u{@VWK%U)q&;i~O9RBdf7!ehW*Ueeq z4P9h4S<5P($W|q0>CAp?AAK1QZ1xgU0z=9GU(Rx9-Lea7Tnz2@T1WM zm_dO_NS%2Nd~otfeZ^R_FiV^P^=eNAGtxl6YxI16~!@4AM7XxHNYx&g&4&YF*lu(ZGnpItNXg01&DP3`9y|TnpMFmg{y1yc7xT zt-w~tj8ybxoNs9ux3s|n=-&t9sk6eZTQj7N^T#49wpP;$vVI0gz}LlbRIrm>mtthq z_R5n~m=(Pt)p3h@wVk34Ezu;LZk+KNN#&^7RIGdB&g2KtilM7NB`#@iMY)u$q-$VB{uLBV)?7R)L;e*9qVPTY z{|*oT9ynx-d&i&HqBW^k(OSaJhcsA_4iAn0JzO{tY(?-K%6+BQ#*$l03=jp`PmQvO z+*ao#aHw7QufxM5kiYrv@mL>{7ShUBEW=C7`{AEb^e{JX*8G_fzc%L>%%SF*b#t`G cW=FW}%hLH@8Y0Eex0^vrL+@&V+Jk_90GJM}k^lez diff --git a/doc/salome/gui/SMESH/input/about_quality_controls.doc b/doc/salome/gui/SMESH/input/about_quality_controls.doc index 7854d5e49..1e170e440 100644 --- a/doc/salome/gui/SMESH/input/about_quality_controls.doc +++ b/doc/salome/gui/SMESH/input/about_quality_controls.doc @@ -45,7 +45,7 @@ Face quality controls:
  • \subpage warping_page "Warping"
  • \subpage skew_page "Skew"
  • \subpage max_element_length_2d_page "Element Diameter 2D"
  • -
  • \subpage double_elements_page "Double faces"
  • +
  • \ref double_elements_page "Double faces"
  • Volume quality controls: @@ -55,7 +55,7 @@ Volume quality controls:
  • \subpage max_element_length_3d_page "Element Diameter 3D"
  • \subpage bare_border_volumes_page "Bare border volumes"
  • \subpage over_constrained_volumes_page "Over-constrained volumes"
  • -
  • \subpage double_elements_page "Double volumes"
  • +
  • \ref double_elements_page "Double volumes"
  • To manage the quality controls call pop-up in the VTK viewer and select "Controls" sub-menu diff --git a/doc/salome/gui/SMESH/input/cartesian_algo.doc b/doc/salome/gui/SMESH/input/cartesian_algo.doc index 89b11e947..3240150c7 100644 --- a/doc/salome/gui/SMESH/input/cartesian_algo.doc +++ b/doc/salome/gui/SMESH/input/cartesian_algo.doc @@ -3,7 +3,7 @@ \page cartesian_algo_page Body Fitting 3D meshing algorithm Body Fitting algorithm generates hexahedrons of a Cartesian grid in -the internal part of geometry and polyhedra and other types of +the internal part of geometry and polyhedrons and other types of elements at the intersection of Cartesian cells with the geometrical boundary. @@ -21,7 +21,7 @@ of the geometry boundary. Depending on a result of this check
    • skip a cell, if all its nodes are outside
    • skip a cell, if it is too small according to Size - Threshold paremeter
    • + Threshold
      parameter
    • add a hexahedron in the mesh, if all nodes are inside
    • add a polyhedron or another cell type in the mesh, if some nodes are inside and some outside.
    • @@ -55,10 +55,10 @@ This dialog allows to define click on a coordinate in the list enables its edition. A grid defined by \b Coordinates should enclose the geometry, else the algorithm will fail. -
    • You can define the \b Spacing of a grid as an algebraic formular - f(t) where \a t is a position along a grid axiz +
    • You can define the \b Spacing of a grid as an algebraic formula + f(t) where \a t is a position along a grid axis normalized at [0.0,1.0]. The whole range of geometry can be - divided into sub-ranges with their own spacing formulars to apply; + divided into sub-ranges with their own spacing formulas to apply; \a t varies between 0.0 and 1.0 within each sub-range. \b Insert button divides a selected range into two ones. \b Delete button adds the selected sub-range to the previous one. Double click on a range in diff --git a/doc/salome/gui/SMESH/input/double_nodes_page.doc b/doc/salome/gui/SMESH/input/double_nodes_page.doc index 063bcba5e..a8a93d1f9 100644 --- a/doc/salome/gui/SMESH/input/double_nodes_page.doc +++ b/doc/salome/gui/SMESH/input/double_nodes_page.doc @@ -2,10 +2,10 @@ \page double_nodes_page Duplicate Nodes -\n This operation allows to duplicate nodes of your mesh. +\n This operation allows to duplicate nodes of your mesh, which can be +useful to emulate a crack in the model. Duplication consists in replacement of an existing mesh element by another one. -Lower level elements of the duplicated ones are cloned -automatically. +Lower level elements of the duplicated ones are cloned automatically. To duplicate nodes:
        @@ -61,10 +61,12 @@ Parameters to be defined in this mode:
      1. Group of elements to replace nodes with new ones (mandatory): the duplicated nodes will be associated with these elements.
      2. Construct group with newly created elements option (checked by default): - if checked - the group with just created elements will be built.
      3. + if checked - the group of just created elements will be built. +
      4. Construct group with newly created nodes option (checked by default): + if checked - the group of just created nodes will be built.
    -
    See Also a sample TUI Script of a \ref tui_duplicate_nodes "Duplicate nodes" operation. +
    See Also a sample TUI Script of a \ref tui_duplicate_nodes "Duplicate nodes" operation. */ diff --git a/doc/salome/gui/SMESH/input/index.doc b/doc/salome/gui/SMESH/input/index.doc index 776dbeafe..798237b4b 100644 --- a/doc/salome/gui/SMESH/input/index.doc +++ b/doc/salome/gui/SMESH/input/index.doc @@ -23,6 +23,8 @@ array of dedicated operations; \subpage using_notebook_mesh_page "Salome notebook". +Mesh module preferences are described in the \subpage mesh_preferences_page section of SALOME Mesh Help. + Almost all mesh module functionalities are accessible via \subpage smeshpy_interface_page "Mesh module Python interface". diff --git a/doc/salome/gui/SMESH/input/mesh_preferences.doc b/doc/salome/gui/SMESH/input/mesh_preferences.doc new file mode 100644 index 000000000..1b1b2f96c --- /dev/null +++ b/doc/salome/gui/SMESH/input/mesh_preferences.doc @@ -0,0 +1,203 @@ +/*! + +\page mesh_preferences_page Mesh preferences + +In the Mesh module you can set mesh preferences, which can be used in +later sessions with this module. + +

    9A`ar$~=WYgc1 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�f;_ZeDYK@HN#l_3C!5cOA}u25L6Kb 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¯Oz!12o_==$2-$+ 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/pref22.png b/doc/salome/gui/SMESH/images/pref22.png new file mode 100755 index 0000000000000000000000000000000000000000..b56c4e5401c37c605a95b566fbfbf315045866a5 GIT binary patch literal 44149 zcmaI81z1#3`z?+M27)wFqLj3Bqa)oQog&iR4JzFY!qDAaLx(VQ4I$m#-SFS&_q+dl zpZh)cJSf8%W}kib-sgSSyVlzH$w&#KK7I8R2?+^RR75}y3F%=964HYTl>6Wer=Yeq z`1Zs?LnRt&2)6F(M!c3NJy`dL=?Zv-pSUv(loj8^4F7R4`0x?V>|E& z<>}Ix!e{#f(3x(xt3DI!adSEku;|R+zI!%_jD(b}JYrop>po-9U{`dH`KETbk;?!4 z>mv8_PmNUupUpJG_Guf15^4AYWvLVpGyV*x4Vn8Wr1_)2Z>5kMq@;Z{rF|1QI5!^g zT*S7kpjm4irqe%-l1dvqbe#CW5cF0nMqx{yY#HhfmP+=iVv%MkvfUS&=v~6V6~dSiv0+ZL%ud=`aMc$d1<%>Wd)~pzN1mv} z!%66=W1H5ci24VwEXy>LShnDcSw-rD>b#AVsomm(45+^dF2&5uZrHgSjike=jIa_`z?xY}DZ^dBlWAm-B9 z7*^QpSKxkXb1yaZ#Ku1F)(xroCajRG`3`_J0+``8@g$fO6DXx5~=lC&;Ec#Uof`DtY8ClYFRfr-Ib7K%1lO|c z@N*{0Q?N(i;P)wC(0zypcnHqa=XqJBdGIdop5tsN|g=9|%N+a= zabNP~r@_eBs(VP^y}z99@WNn@i^b3F+^#Mpi*tJ=FlM!{eizw9~DdV01b4H!4-yt0`}@s%bz}Os0P|&^Xz% zzSuJ+n>U{1&MA#T`g_ky8WSRxAs69?4L2z4bjM^N6-XPQyWBfG3XBh9I3i+9hC*`w zxUUUYZu{7BUAwClE|H*yphG@m2a9a@ey*ft*=6V*86G+zrM&5y!|ou+u}N|A7DkaR z^DOp6|A~c$goJ^i$S+DWw@+x`JytHLggfT${!k%Do}PZj+nt>g=5_CeFM_i1X1i+E zlAM&3G$$vgSJf_!=(b++ndIQq8@&yF)5|IGAfd&rt&g`6f$PUyaj9k2Pwzi)skPm- zyIK{9OU3urRvC3Mrj$yYELkKF)8hHIcbMc>W7nsKS!q5wKaXuPiTVr)iB%|VP)sZ% zYGg1{JlO!^n=WreQNqMOW>HBgIjBl!?E7P+ltmD;>vu0(Z?*+t|F2+1xdM+Q=Z&OO z*O7AE6q;^AFpl?9sYn`eAe8J8Wd`2*XZB_Kw|<=Fl7Ff#uYGah#kA9@f{X2>_joS? zF;U_JaY?ay>Es-*vrLmxsp5pG+SkYrrxQtL6PXQ{yFxBbZY48@>^J`C{a#bS5{xz6 z{$0XQsM)9{BQurih(elPE*~D{HipRZ3u325LK=>=cBd%is?W;GPJQ~wiyW7Jikkh6 zFec=il~?TVE(0?V_gwgPkH>^~FkdRtzPrAzGOl+PKG`@9j40d7GZn75CScIPQ2NO+4tB{ zvndITs^=$%o7sZ~Me4AV6Ykvso<#Cn1u&A8seM}23Wh{ATaJOZfi1DuxL@q(x0h(+ z`Ap>x2fn}{$K$J)5fPs;&G~#|Pvqboie_(C``JlCyQ6S^gXJsVfAd*E%(^w~c>(UF zxQ~6`p;h?r-7u`&t8$y-U<}o>$4E#6=<1C&q3CbS5JguUnu28q)+8&dJo3~TSc04! zHPy}!&mL7Wm5B%*Csn#GUOaUa9op7HA$^&kwG>U=;T#_mkt!c4hed8{~a1cUS)ihVxSBR~d16Fy3=E!c|`FXp&j$VF#cJ81$q93ldH%12bggu| zIdUiYtQig3;+(mHEgHnlT(!+Fgx>}>IXYCgOW>!-8DorY(VsR@pge@!;Uv|du7#0* zpeVZtv|)N?Q+PhXtfO>me}{w~63_ksm!j@A>XpC4kYK{`@|_-Ee5TjEzKm;P=Z&8VxVR99{=v;doC4KSQIr&TU#5?Cs{?iXrc%IF7cfj6Gd?9Vd4J;-G)gz_W!lG zfwtuE@6|DKQ7ZnE{U@yW03Y2Q%2a%O4XL$yioX^u0~Dlr{+*Q(JOt~5c}zW6c<;lb zzvsSlJsSHDCj74r3zLs6;dyO|sRHk`kY#Ys#`MtaXslQ$+d%CJJ;MW{*Y)-YaduZdKp@n#tH7qOC{HG}!(3C*Yn36D|jQB5DM6Nn1 z13i6V=a>9dFrGUrQnHci^z14hGZaNLhF%5d@+iV<{HA(-tKhOX;77U9ADg&#=h=V& zhlC_Q{(045;LEylf>2tCJ(e^j14D?e3WGEQM8uTu*UEuJSe~yuy1vHLnV$RwY`E;0 zuBdP;7JN_!7r<8W60S;mV!PF)r8VV*kPx(-X=KC-qK>O(znAeAHr)9C|Mn_?+~OnC zDN#N75{mE()`PbdmtQ6%;*{(`m-P5zoL~*hBT>AVpyiF|+*OBsAt{tW%+xVVqP(|U zUYhVs_33r|;qehl3F&<*f65qa8h?@;ER3S>Y??uFQRYisQ8d;oJutiNSFMbaP`2wi z4>WHy60=_f*w|6Oe*H>F*q)pFfFdd;W`xKLQp}@6bc~nj<1%RWuwr0iS6D4~MboKS z9jjFsVdLXFE_Y!UX3FIpot`RDVTomgLpQg!Obql_`x4#?1!f;S&N z^zb42C6NRrCFQB#MnrU?UZ#|wp=QDi7_KAO@E8~XwtvIbFV71Xuit0Qlf`J^+Ov5P zD3wM1#jgzdKsv#Fd$5&Rx|9sxOJ3??+D+r9s;x8gb~DMcHBW^q@3)T7wgB8DKG(R+ z^*p7bSF@tK`-^bU_2(~M@Hri=tqrEpJY5{qawlRn8qSo23I!A9DCV)7P7J3BhtMb$ zdU|@IL-4%c(bG4$UfMy~Oi@UEUJw}#XAdsILtwi2-Z`kJli4&!PW4h*W%gK64hLtQ z)s~AlJh%GiD(m>`PW60@jG;We%{Eq6Rz->R6BWkx3t5=zeqtF$vxW6?IWAXAB|)h- zXc2~qz3dIKsJbb`!^2|~jdmL`pB06^9$4r6Na($w`$D5I$$a;WQ_CIeCv(?4el`uk zLoRCEA)n!?jeQ53+f09MGSrqO>q~apOpo#Fk*AK}GmSspnTB%d8p-cw zH@IFjFx^Cz>Gx0Y6jO#I*=$Y(L0>$1Qo`4~D8CJc;+S>4bCI&&&aqNjo@B?o{Rm&0 zn7^d7H`nxU{EGll_&mS|**oOLI^+AVB0pQqFYFt`Tlr@>Zs9o*l!TE@S$OJf?d#@z%~^)57wX z!_E}UyJW4X@rLUlwqrmq<>kwlYLzDMhi6N4geTcd-zNFh*{p}h+Ph4!NT&_Rykb>@~%BwX;dGv9i89 zx2Eo}_3PJ+ zs1Raat_81`U?ov_67pDB{C@T})k(PiW?~b}6VBtWYV11 z>1d9+j20RdYx{Oz$j0UfnZ)JGjbz5%+Qx?Y)A}*9vsYzj8-VLO@DNKP3R>0d*9Lw- zb**$>#!ROLqiw`UTb4n&$z# z{qBxzt17!Kde!C(eQ8$OfPkEmCL&W3tkrmML`7j^VI6Jc6Qz=|0EnjL`O|ManLsVNsTLko}K*^PU21o>ILs(0_p;n+nZ}J_vB<` z=#ZZt9#y-4+`!reMM)l}q8hQ0o}!+UP>n}ZbIZlYj~{!X?ED}{&D1;lG%`+wdUh-y zwECbiXjBdZtTR5&$;Ni_XHdrz{l|x<#eF$BxpcW45i+BZ+^Ccs!}kb0Z+s@3j_dTx zsD>hWiYT#+7x#U{kaJ$K8ZB*Z);e@9SnKy=V`Jm@=NjlJs%oDfEK^5qfE(aXxH1I6 z&oeZLfc=$saf_-qzUmpsjt1U0^KcTo-SLE9zs`=ww5*pY_|=(dZ`FJ9&CiQPb!+`Q zVY+r~5yM8u`y?S%remXjCq@ZZ30FTxjOLC%`}M7iFa$l728Odl0khqf5EYeOuDH#U zO%vL!JM05N7lrhx*Vo;d`Yh?B6Y#_w9tMPjNJ~htaH7o3&%eaShndgvEw=DFpB!zD z^;drz&X(oBy($9$UO?bC;_>6?2oW+YK|g^vJIlo>tzZ$2HEOv-d?6_ujt5Iy<7El) z@t%;Sf;C_XCosc#b_GO+o3M^v|gj5L%3{rmR45U7x#rihTA0!4xmZZSd%93MX|w{u-T0SL-VKLNGI z38%TaA07H{goE)MkGm8K`C1vL7;uAwgO}k5iSVxUa5=vY1uQ&tgUnYU@X2z=h+61n zT!rytv{yW~UGipxomcHFpFdJWT;ELYf+yO}(o!4GyVf{Nlqq&A#M-?lo)a-RIM~{{ zc+9TJZ+YdZZ5E4GC5Piik6mCcs12P}ppG-HE5k>u+kgbMJ6q%qQcVP z{83^$pXJ^0G42lUDrl#zF0NNhEC^8V8d!uDtyuNV*F%wC5U-N_`EvyUDN)P)`WR#i zLJSN!b@eL{c7%n5Fd#2T_<9(7K)`$MBLKR?ZMWrc*vtNeR4ij?;OB?e$`wW<;tcg* zy>Wm2jS?hOW{Al2Kt|I9T*FyVd_sbB5?|1R%nb?*KL92K-pmix>CBQi12{p0sY&XI zg@aW}%WbyBQJAS&l(pXIu9a*UN04r1VKHF98l`A=YQbK&7}hG>aJ~X*LC9|1M;7L)R92|VbTRDj8UWSifobJvxy1Rq!fM5-vo_I{J zhO0iYeUac!LjZm(KDNR$6cmSD_uZF}r_Y{^at^Q((@d}9*Nja8rZZ((c9`xURIr_U^eV6kt+uTZVGY;7NT z0^pd6hL;_6i$>B^x+Ug8zpLV15~tNqBMe#C=Xv8NoGwjs;6@^jYh`0oXSvvZal9Ge z?@vfXba}Minh*g4v74@6T#V)es^;qaDtWcL$LiD~ z%kZLO@NGL9S-!7Vl(?9fVxc-rd(qq1*B2Dsk_lWRxob3wOH1YEw+&3Bu$r0|?%HQV z8RClz3j%LsrKI{i8i|kA#@}*tUxKhTU2DI3crGO+r8|^MUCh|K=-}ie^^1{|g2G$5 z_&rVT-1@qxth}AwiTeS0m%uY(Vq#D9PrU#-GcXioDYNI{7Zr6D_wG`UZi(Fg@nvA{ zqj|4OH;5{q{w-R)Zfn-0Xee}YXS$Y|iD}8oQCoZd#{*;#Sf7wmO2t!I&x_gE*x1?K zf!L#45bOj|)~9PvcN=f%!$kZ80zwEm-{1tmGJb!xJSW*|`}&?8g9<0$*r|RP1%v01 z%0HC`lbKgY8!Px;R z$|BkQtrR>={%U@73BwYsH>*j*Whvfvcpqshg7H1W~60PIoD#bmH@;PjeyMQCi7+W8O#6#O-fvvg3;*LPR7u|_ zhM^~+laM4uCFrV$hlVDPZ5s24WOJ&FtK7KVv?p=H+u8(EWFlc+h8nAji*K=>Zce3u zv=-5!5E%mwts=e`4|WWxj!pE-ynTFp8k6|#BNUwBcRWW0a7g|C5& zKQd_X;dyFz|9Mpp@{o{_c*F5_%;b`knS#fXMKXq_>eRJJwESf%aJ#iwVI_L(Hc?9)H^f(2k#VA@d>?RR1^L&3Ee zgO&0+maXbFcL9q)>-Oh^#t%!Lh)6MAS<5h=T4bv`-h{EAjdNxlk;QGh@$JgD`0C0< zNl6JA85vrRX1BVrAcpduXSQyJ%6(azC{+fK9FIsnYbk|!Ki}H1sqLR0R@tL~M!q0N zlT@oh7o$YTYC~=cPdBZ!cfHt}rCt_5yCUNP*gq#?$vqXFq3N$MoZ%UE$+W*Z+drLk zzdhNWeBN4aKI?XKb>8ZYTE;}(4XE-8kcpm#^qYO(u;G$#oKL%p!r8OGwHMMaMR61> zPn^5|GXL&pRnXkN*~FA2hxx1ZNEz0OIw0ZsvGNZIxuYzGsi<(M^~p z>2^B#BQ&#{SeMnViph7B?l&39$se*1u_oH{EnfTk`=7j@&+h{yU1UDn0DhdJjg?^2 z?ZPrQHwP>aDB}~HEjUTjlas$3tqq!)na#}10MIxeUXq?pMjTQFZd54f6|33QSwH`+ zdXd| z%BiZx38lSjbO3=FwCoLNgwlPGa>K*Jg+quzt+5PXR$H6pGJqy}coZ}=n;?{fGF`2~ z1xEU-yu7@prw8OaVPWCb)m42xy@vgE0ss|*V;=+P(90MoPYrM_s1j+rHEZp*K|q2B z6FDzODS;BTdAeLCZ)9ht{&GY~t3uEE?>r#Mv*%gW<>#9`5nQhqh;5v0)_stbgN zxA5=^?t4P83uMdMsH5tVlao^kLsF^0eeCGU$b>?n(Avw{(tJTxd;Q*EdY+bF&EY`5N zE<-$q3j``IE`T0Rx5lkOSn>?Tq?B@Sb_TdgwG0N9BRF!Q3a9E}ow|Xw_Q^`cqa(+C z+hvJnKh9M`c+Tn2co)uW&Ad5NycxS&e#i`x$(6|!&Zzn&X7E{9yPYzC=p$t5&_axTL5OrUk z;ZO=a{xdl?3#!MDQ~8$NGWRl8Gbq<>xau{v+$^P~`}g+tfV{LHrKI_exf>4m(f$QU zAf}f;o!$P&3veoZdVEaonVy+xWjF&C$ko*q?URbs$C4CDj{&Xri_i69d$J1F{7HNU zrAx$Dy14tY56a(9zx$V`{Gz3}?2wp9T=2?K7ne%#M{_tlgqS?>Yk5~{V0x38>^vRv zXO_?L4xK+TXAbF7RyVa4WC=Mt4_#gvud42ukM~Xy73aqEXL9dPvx*5Qj zjWar+;E0Kea=NVT`G&pSI@kepv&iAy7$)B<-EiXJOX5!!|Ar-f@(tm?kYpF|$;HWL znD|TQ&4}eb>zS(cj80z*~Mhnzp=+ss~rdeMmbF}uqd-1BJj4uW)2OjgskTV*8jLd;7#p)+>4}}6 zp9gJtKS%ue?T2YTUE_txnxrTs)IR^o2OdnYsjM(QK7M_1l6SD60}rYgLw|GE@9#t^ ztii&vkx-}_fSN>vgr#L=;JJ7OXbucN@OpQ;HfD8wYrM``KtMo7Mn({@(BA++r7$m8 z2N+Tt#A5=s$akmv`0^*V< zL2n+F8>8WA;dH&z>BevgB0EONvWn3agub;HAuX6wTMN#^`}atHH#etry_bk*dHFXT zBMl5FM=idDJiPz$%a`P`vNCz<u$8+2^TFfm z2rQ0}FKKssd%D_E2eb&<1*r~1>Vbg)Utg3G<*jwV=czzNC%hymF#QDJAtYLrCb9K8 zInDs)6FqzZY$HcQ;~cnpRJ4 zug(v>AleJP0w4p;M?C>_Ry?~oG3io*{fwoxeXZ+ir33|($FVf!Ceh%0BXL}jlG3x5-D5QW_Lu5&7l^cY8cs;l8 z@b2Ba1;wvnBHwOYROx#G=}^_?^w;nspO(KxYm8GR8H|fZ_57*TYk{<}&H8%BzP|g> z3JF{ase_E3zZ`}+h6$p#+}|T~+8cQql!`Q`x_@5XhlqUn^7@ns#CZnxei>qP^rk3+ zM7=O5G;hQx%}Lmj0mNcSgeQ8KNcnMIftJgDTR6G6YL!{N!C-1fa2R%5Q_!NyxZ2%J zflR<55pToa8HZyMv4~1cC@(LsE|+RyZ{N`$^Yr1-A{=H^5r}RNAvCcXNpk#Ja=JZ< zaI8Dcy9{cAs1`(zluikh>Gl3D_>GK4yrfy9wb~byMtAV@!vk&TR`;}q zu&<|fIw;~Zs8gsW;BdeGF^p95^cHR-|F#(?*QqF)TTP^uwGJ9;C#4+qZxPu|!I5Ga zVg(Bnkz&gLN8R)Wn^(v15HnCy8?_x^gDb|y#)5TC%x3Z{ z3xri_ zm@+IrN=)JW9D`VTbxGjqGx6zZuL4y^A1}Z7cmv20Ma(yq`r29@C|ko+ci7uDPEIB@ z&xdxEjtD(~GsZSy0(n3x0_8O6ZMuti44ncM)^v@Xv)P=r=|p+#)x@_#9y3FAw~ubC zQVH-NBKEcOkKPvnF|>LPJx%u>aF_4y9aP8c&eZ0C@MCp;Aw6clK9%8GdjhINt%k3T z=MT*fGkZPJpD+B4C9T>}YgS$!Pe(@<$xUTN1=ZZHzLjSWrJ9>x01cFfST-j;gv9vC z`)j--B5n*y$qh#L8&OEdQs>Lbs#)KFfCW8H?!&Qs$D1}>wfE0$_vY&Hncd{6D?CH- znYrpuHPNJ{wJl2yBBXEBYftVgxlfb_?>5c~XAA`s*w0PD1lCDa$?i13!zCPozLe|Je#)U_Pe1fuvE4_<5^_{Xg z@`;IwT4vWnXRfHbZR7RE>>q#rRaa31QQP<5ymifxtB}jFwtR_$lUuI3u)9lyw?>Y0 znK$yZpfXaI+>?r0)#dVpfT3|J8lL9yQ($|7_2TBT@p&2FtxGl(`U#O~?BOwXcEQD< zh9iiwe{8GS=(hLk{bfReQn^|EevB5eRTRGW)2A5cmvHmh#A>4vq|LEs`R~nd>ZWV$ z?gCXiI@w?ScVJKXE|JM+Ni~>GRNo#eWy(-d(MPiyE_{|x*H-ZoN?Sc7T0UqQk_%F# zVLlX+PK+cYU*^AcIXu}W*dDi5OB=LY?(4gU_5*4~f*}Z{ASWQ4M*%o(vA37&=h(g+r=G3qb9Z5aC%Evxl>&tf%g=XXwJ$9qLzF*nI{#N>JKC|lWgp2mR-;bJIBp9_s@4dL8>h~ajL81S&yJR`1v!nMM~ z8%Sbe7Z5RVVsVNzgIE}ui#9SqEyOZQ7xz|XK73) zYfMjPq4Zg^@kEbC_t$lFs((N#<;f9eC_sTY+OE~0Rv^F?Bg^G=HY?J+p1L}x3q+ zSE#ai=bk7}EXh1i`~M`g@-y_poLKW*=Aq`qKRPj z_ds+_RP>x@=5qNN5fT4V=CW09Pb`05{CS$C*YI$-*>q)`VORBkOa_nJE>;)!pIE;A zy_^(t#Q)ZTBAn~rZDcEst~yNdGN0el{i|`1xE(eKrHewCCCc&@Q)G(s6^m~BgQN}O zEUm0o_VcA*r)28tLaP}ua{JHu`zN^{8m!gWZ5r*OZ!p?uXQK`T6#US9Zl^?~@h6uh zKfRia_4r4k%-Wx(D~K0Njx``ctfZ^5Wh`7GV1NllW(^UX0e-?><0A z8&(!M4hQ1C!aZl7$F`q94aj z99E--rjJ>xuo~Ypmmkq17!ZNNRKP@u=ypv_)qO{DCun;jV{QmY>hQ15!uO7Y0Kvwd zGGeq%AbKtQa;G>n(=aYGh|=Oa3J!$7g2DePVLAo(Q&b79@hBFN0rIv|11!S(Q2>{b@w zP1_j&O>9IR{}{O*FCU)Juk5T0T`X}*9a@W@s&A<|X^3(dfrh4Ejzx7@-~SO!v29q- z$je&~1g-l&nwA!xw_@Sqf+DmQq&LsdPd+bzGhhwKBZ@+gY(;>I4|HzBb;FYvzs>dz z>EwNCID)IRukXOSLB#~L%8ZMXbG&%j=sNM-`Qi5zeBxFe2SRUcKv@L8Xog@PBZy|V z0Iy>ObLrdSWF3z&9nswo%gQvMW@TmN;!*|gkb@g1(ilagMoG7w50(FqD1>%F;;(Ykji3+P&0TwEBCgM$MK$+#mR{y%#32q4t% zE`{$K7VAS9zyR@^z)!WH66gcwKwap-6`tVER?U4u^z##u+%jR2qk%QVSF;FsJ-l^F zmmw}>J{7AAUPp@WEm^^0 zxhTjfDB9`#fWr`{m9d$$dAH$kr)l-^1chS2NQ%_8JwxVtw-PN43uba%RyS7d*;Etb*p&}*^POvOAvKF8uvNX7pFWJL)7 z4F@3OfqMJo$rEov1_}zH3^}0S`le(B%1)!opKLF+i;2B$8UIzZ3mv4oXVNbsR zO*;X4uo4-~%~ZIqs z=kJh^)ZI4!^m?X=w|_sWA4nyj;MOR!LnTcIa(5T>Gtf%Cs$PVsVJO{jPki$NWYApl zoW|_-##GMX+5X~oG2ckO_azSty7#p|faD~k-_HG)+sUK1oReHn#tDiVwH;sp`~&^Q zy50)ZxI}NcD@_Iu5~^kg4OrA4!PIX~uBuwqd;(g3gV_NV*X2ptSp=xE*^_UPqIID@ zY=DZ)x76LKx7+$NSZG=+MZ~QEb6M`D(*nNkomgM}LiL+V)g3^a07vM%aur|!_(a0* zB+=t$PRM6-HcsD9K}o5EwT*CF#WNdeO33a6`i)BiAcc^MC1N!Vr+8rxrAd|K<>B8L z`T#fA-%oPeB11kI&dW~uo48LzHfw2pWB^(kw`X}-JPN5~<1355lo&>3}JpCe| z@-nDb%cKn^<9aNkkg6&gAB3R4i4yHq%6_4!6$0NFF-kCBv{29v6I*LWITNdxK~Q?4 z*O$GGh`oZ62T8=S7y>EY&(BXC2j1D&H)>P?n2Ra#dd+^u=cHup>@nyVgoHg&U=PKg zE(N5?a1k;fJ-p&^usBx%RV>a^FLn&`j&G$;iX@c58+DF{v^hGS7Wwab8g;G=~)N76h;*n3mE}ef|4PzH=UG8w5sLV5>N`~3u#LC4a^bv zQU_^wDJXNs%+XvlhYep6h28M7J7tn?;SIqWZ(+qr$Z zxvUS1J~UCdf+re!8s{VF;CiQ%I9yp{&jyQgh$O62k~c zhFFn2W<@l5ci#sBkVgRRytTB1_41`Q6%d28@hDhXD?p77j`Z~O;^I*Bh0RTIl=ny5 z!^844O7~3iz_~l(wV!Dj5X4z-d=(D+UsGh(wzqjfbq~lnWz9RvV2Z(rwd4isv$4gG zwu}wLMJfor-Z-|mo>*8|=#c6d+HTd-U2yem@fdnQ3cvM?=d^A|Aj$yCJ(Yh;ca|hW zb#!nL$86u%{0aF9sTJ&MZ@v|jbhbbfx3dFx%WHR}9Q&B&nws$)kSn!+HG3fI>+8cM zZk@T_z4L=kmMKXC!W3|J=M|k}g&NGX3MGF;$ z1_poJEv69z`u}Fa0mnGq#n^@K7T7I7i3BdWJy}7r--2RBm0w^^44iDE~AQkwKdJ?$V`S@n0 zr+NP|@Yff|fSCfigG%w2W?U^7(kL((FL?vau)?(Ne2 z1d{8a)gf(u6JuaZjFPRe83TtBX0FFREDnIFuO$vc>7wW7=V0)8-EUmv!rOKgcvoz?EPIygtux>6hH7SV&B-Z~A_yb_|ffW@=p8 ztXffs?I)vBKKWQ-;+)KehK4F6<-hSuIev&B&bY2E}HX!ip$;|vDs3X9phFF{59WSSj&JS0CXGQG++-)>?@!d$x8`zi2 zl@K?Mn$r;L#@ndy=-4c$$T<6(D=*{_COUIUz%A1~*b$NEdqu_Os zTgfZ)XajlCnzbVTa_qRb*awK+%FH?lXUqljU%LdWvQd z`_U*cEAGq;0Hg)ddxI6{x|`e(a16OmH^$f$Nf@*3t^+1!xBgPo#pMb(?suoFs#4!F z13&)O^dU%&NmuJjvti2UbRT*dZ)9)5g`eTlvPkVc$JD(jBCr1ghwB5^p!@V~0Q$oA zqNHqO%Bf|~X|gvWr$`ePmy{%p0^D;dC12Y@Nk8SQJTmy+Wzz%TWJBYYD}6K2*S#O^ zt`tC7t$7n|If(^rxLieZrnZg@fK*tSWg8%er%2#F&3)l=yJ#rqZwAhgL`bq+$7R~NV(dd1iVQu zxz2^?5HOEE&xx3HE&>6^+bRu8?I@BWz}$Lyc^Qx86LDIRk^UYTu|0d%3X&vsmBX+5U$7?_xt z7#LlY4!RfSg7q8>4CWx*s1K2ciGVFAeF>a|o=b4QF|)~|d24fbp` zpVjXUwt3S;=N;IcZ<*Z+xmf+Y!4W*@z+^^1=>Ry@s`O`*o}eNYL`jNvJV0C?um8!i z_vw4t{IY;o?eY2qi@nk0(8ySYulT-&)|q!E7&R@|>k*L9Cq1j47~|srru)uep;E6` zA(jK2zOMbmyl)fzd=s$M^qRrgiT@otJ;IR7T3|06apMaN4sNjDO`I2ygrKxCPS@CO zj;F1bX(Xaz`t&9;Luo=nLhNlUwg&5k16Jt36l?&2Z&|I(RN5SPk$bB2UJ!AWEA?v@ zs8%s)!9Z-8tTcyWb8mu>P{yeG{gup(qO($w#&o4A)bgiN!>!_Q0FWrmW?{TGYXf?c zP+LI00o(@c9n~sN@-Xp;5${WNpnGh>jTEokw0`isTEh!%>0W?~~vc6Id~oF1~@OmRlzwtVKi zT|J)*odZ%N(k)W_B^ukum*KHdv5AR%Gep2|*e(8ZYA&*0Gs@nwYv;NMj2|%7J zlvjJz<5B3B}^y|l^5d@^;qRit0SJ-klPSC-YiKPu;Wa`*D}{}kmfj=l_ZY?USHp4dQP+W8Xu*IGCEKfok(2ka=6yH&`f4xX9%rmXW z<0Sr`V99^=O^>&&ObCfuH_ws>Df`}97Lu)o>1G?)1F{vUI}QT+IQP@+Dp0crAjuGe z3clArL3bBD*$m3>elt{^aT2_6x9Rtfis_}?cc;hP%C@b8q{=xs#6)aV8nw1=8gmyLi9}HU@*^!!;Pe zp9;UVzdHN;J%Mx!8divjN{9mN|BUS4b4`sFg%p2ZfnO)QGcyCe>E=W5znv>G?yvvX zju(r5>}*XSGoHL?esj3eU-s8YfrP~Noe(V-n7g`wx+fe+sJ;7vHXJ?a`(Ix)(#E|d z2N^n$qh643@z_oMVOkC$;U~uAT>)6u&aW%5WU>9tU;oEYRn?2u|+^wjgmeZZ(a z3W4i5JZIPLskRtw5d?ZF7!?p?=xAxx%k)r{e&~*G#czRHJ&=f-je;Vxy7~+V$zb2a zolPj?8DJ}>MCyRWzE@$!{R@99W9Pe0@b%;44{;oZ@j6HAuGYv|x7z}xUCp|uJy3o$ z!@tX7SoRK0_09Irx;%>3ZPWhR+6|f{0F2=|*rCdx(Xh0z073B!3Q7Q)IFK`|Vej9+ zf8P3>n1=&ci}fyM5rFpqmk0VyJ7Z61%BM=RX;lim|M3k2SqKz0WEio2@#2RIi;Hwq zV9z-?D#L+asdu4czlnO~l;2xBe1{T0hK!QZ8WZ@>R14U0?XgbfipCHurpjHty+P>&_r*IsG3mfFxcF!Be2X<9ov__V2S3>RY{wKuA}- z?!KY)1_F0>HWjdQ+HQ^l-*aCQzd6&Ht?}4=CCy#aGQ#stJlQw^u4O1%Vzxi`;vqKQ zn`^cdU$C;ajuO*VRh@`M=y%cTT3zJe0K4Efl@q{xiDeuB;|ZW2BSpx7fY!hI*;6jA z)NGrJ+l>8hhiUFQTJl#JYAZFlwA)5?2hbl#Qcm@W-I+KHDm{C@emr<=XD~azY{@WN zZx7yjr8FniN6T+|{u4+hi(p~!80;~>>{oBJbG^>mywh$QG%l|%PZ+dH>Rf(SfyN;y zkN<8}OWsK>oONCT5r4h<;-u18>6&MpZ>qE4=|M;cArB0`E(xNOY0*F>@9 z(BwggmfSFCRMAG>b`qQl*)iLh@>I;LFegJovXkxp_gl{YeoI>=dUzDk!&Jru+w0)B zyg&Tw=;(<5<}5802C4uw;EwEcNN&#UogG5@f@#M;_c0h*X7=jRdT>V7E>49-Ft7#u zt%u=a@QKA{Ei^8hH5s>2Ks=(5>a+*u>?bFaUYt%AMZ1bV_--oW`RDRGGAHpcJ;A6s z;M6@7^XeTpGlBh2L&mX_ipa>euA>2na%)z>L5c9$gzdve`q{4stO0z zZB#$oa3$1#%9EvzG6Ib50;6SZ<@RWyMmP4W8f9=9uulh2mF>VXt~<-o3vS`Xi>HSeJ@hA#nHn zN)b9Qjj9*gDvD`?=n&v?6Gp-3bt+GpO4J^y2FSdptFOlD*k7L7)o@r`@)bM&d#i`< zH@*To6xhgK@tK^3r3tsRv}_TXyMF%H>3q()5@Nu6v@j?g0h%>rJ6dPF6>L-66V9?{NGqPTGDTqC)){Jc27-lxNJHGfEmfUTZ}9` zmRZlg_4fkfe*Cy~HRQiAd=HpmUu0zmBiXY&E1o|yCnByQE4+GwprFC?0riXnf%(V0 zk_lDUawC+G|BX@v#6VI%$$P8cAf>`$qIanu`=AlIRd$yx3*T=9+&I{o@CoWABp_fi zUh4H_tUwFQs8HJc5D&!H#|QbeG$m+pd%SFQ``jGR1ZU^xk^!-m#;1i$*Z|||eEkYS zmp=X!jfT}xy^1TfSKv=fP$2UtjLy0J_S(StFC3Lt(qEhg@M64Xk+it@ zCMHm2uw&7O@(s%(_>*ibEo0g3XBOH5K-Gjw`fVp3<{1i5Ehw=7$!^6u>wL;vq3XIn zBo*;#Qf~emi$DbO{$8;H|jFS$m zK4bGS`r9&`J1($T!p{*b``epqU?5)7RBgz!07P5~aGZcO{0RAWRlNxK)C8a5f|@T~ zCo34kkL+#hRKLlw!qi>0-f zhtKqM^`-&3xD~y+I|beYUBc&@{(L+&ksR$V{@}ahpQZ0vU3=IM*xFYQ(TMoUfrtZm zIFRLlW!ex}$0Xy}-j{XMogV_D)cHYTy^|GYgckIw>r4rS6p(SiQ(tYd{}XVao&tB< zKbHOr{&0$Y@FL<_baZs$#rZI>+js(74plt2xtY59|Hs~U$78+!@84|^sZg0m(IAwO z9cju+LS$r*k#EJ)h6_e1GHb-{(G$$9aT% zyzkfhHJ;Dwd0p2tZ2WHWJSnxiscqU)JWpp$&2?V$k1|kCP)daGnVu)Hf3ozUJo(r0 z6U=81`P!++lL9pra}pWhsV<>1mD{;L(5M>=bbrpBHVry=V7;RtVnf zN0yaA!g(o@`Tp2QRMbUh>G`FK2lg@QRQ|mAMD0-Qk<#zqeI5IUhK>bXlBt^-8#@B> zPmZ15V!}M>|4r2NGIlu2M)_}>0=Uz8{|qF_>)qGN&CQkmwgA-}63C#)Ksl0*ZwYK) zxo~9bMQ8>51#_)&fdWOhH+KELWqym>lMf#XD!nKuD87|dq`dn*_}y^gv&b#FP6HCa z&aNGc;5E7e5+Gnl)LkQ=KGi+svKF1~lDNuNJJDT6enyvOgw2gIT$V`xbtl{VOb*KV z1HOH$L#>W#dz4qiR{W)R?;iP@aNyb&s?BG!jy!)or=D7SpiPxaF=HT6)x?t|HT%(> z1^-0q%k1i03A0zy5*}q6=b2tV_UO(5lK85fhIzMkk^HucmD zZwTh;EzjNKmooV+STF@D5!6$@6cuG=Wu3cl0ch0`W&bTNikVs`9!>16>$mV`5^Jk# z`m&?tgof+#ZT;W+8dD6Y`Z)w6qJ5*GCiMI)9a7)W@U`n|=}lwfit=(QQq8%n;i!%0 zWzu7PnzfcZ;n;TOkm#n*9xL)1F)D*b}bVLU?;cB2#)7S_?}v|1IcZ-Q>^!`;0jv1w@#wUAkP;t~;%^0+V`Jgl6F)xO-BeQMbafx%+Y9-pAh4hA^bunl zN>5Inh>di)X=>ViOW^+f`{ny2xR&~qt}69)i+xx4&a)8wQs#h>|B_{QAf{PQZ!b?= zWnUX#Zz)7iz{=?8=$MpGwdEPl=4MS&v5DAE=mMw3a@W$*A`R8RL@M8Q{Z-&iLw)`8 zHP+|OZ87Q%jVrUx4ctmdyIi)tlD%fyh0=k3)24gBfBOCB&l|;eyev^ z9FG+L$#I?H;N{L2adHu&j&+CTJ1r})gL22^nQBz4oX)Vb$9 zbh}*rd$ZOo1E>!U{7gT||JD4WH2%Bz`gQyhE=g(WA0JgVpY~#7V_(RxQ(hVU*5|}* zsQe{uhsO%V%*>39^YGUUp&8Tg3bv#pu3++(z6+3-m#0`3c5oTTzhS!5mtGacFW|B? zN1TI@^Xu1|zhq)&;bHfuv;-lMhbKkQs^@Ec#-Q4b0UO788b+zE_Btl27%GQxEi`;$lIx8VRpK-QxLmwSOI$_gaScI^XmA=oYiJ$eeNrF%*HN^#(IWhf7#V zpOsE4Y|D?N*r{ql6b&M30^b8quNoVY@M?u$ZW?5T$D){tS5KYb)a{F}Nxk}gMYP*@ zlPIe!tcnIs6E{hBrThuIt?N{xJAYwFQAEUREr09#%OPc9lT{+2FW|B9{w9hI1Z&S# zLswG|f~zK}*4mH|su)n#VWOt49aqLZ8xQ&{Umq2?wU0HmVf|^l zAHH0X%u9bkAXISk^BB;u?0#r-@NS^H25l67l^K^8aS*F`Wk}u+8pjTc6T}rt*-L}X zh3r=XJQz3U@!n~xaaey6ailZetCDXf@aoKLJuoX%ETG|YuwF_kjh2L9_{D_gyA79@ zJ>TgJD0~GPgefI(HwFiOH7ys{Zkm&4isFB=>YlkNDScA8@2@YpUD4 z!D3kaSv~XPrLI4aSqAO##11Ug!~!x)a&7y_^2wV&j?`W-DHx1POg!W!ASie{{~>3M zbwl5)4G#B|M_$!#6l8qe9^(~yN@cm^#~TGfdT%Ip^PT2Fqs=gHmR%9ig&Lpx=kx}* zC$?=a9x+A+hYbu4_k!8ns1$Q3<<{I-M>OLZ=UnIHKTvJxgFzM$G{K$#q`~8XcrK_5W$s6~4`EKs*O@9Jw zdH&IbYSz@v1(cim#2Wd-pH-EMNqp^@tC(PAbG!$zDm#?VCy+a_B2BWm;-W9aDWqgqlLGoN)iXvvV%d%1E~ z{y{U{_PK$wBoPk>2S@w%ulXN~-V}$6I2he&`x)S9lma1~(&PH+{uJyF$4aC%tUcBib{!O;=Ah;T|jd(oQ8O7oZPU&WLz%pd)s+_&&_ zv5oo6eYH%xyZv8$7=&Y5iY%f!LBscaFbmyOQ$tV(s_GI5@h=65`_#e&r-L&z@mGG zF%sr)5rT15XIXZKi@BaMI}`Ti%~6j+NY=DSxiqtLq2#zLenU@>de?p&JKNor7_L5e z{HSZ(ZtK>q>h>HV_k~5V)6NTv(r*(IqOfLhgRzkWNlMelaK@FDm3p4UJraoq8nZ-O zfJy%ZD5u!#18+Nr_d8ODP)dC9rZd*k`q*u`mrEtg-~V9T9$MN<@;^YTU}I-Lqr8-_ zcJ=DnsXYG+#N}rFDsV(dM0mrG^5;J82s26DCyX@kZQz-sVIK*XwBX=f5_3*2#>VW- zFWCtf`0Q-u*RN2I4@9w#(RJG*%vxAjP}Le1FTSf(r^H^UR99b* z3L1O+$}vZ zsjce$uW}ISzQ%1hp~?Eq4dT9rrluIDaBXAb<^tDM3R;_( zQN_zx_WIKyh=OM^3}t1Zr%W9TRQqiY`w+MMzDr!Kw=fEDaal%g888@;)U6diPVakyZ%_3EL>>Zww$6{?4loY-IinJ{1e}p{J*@q2X_C zA}&h;%YoMJLjM-DmT!?bbm$O_H83SBDk>zRZ(XlWSK%=@I+WE(n!OWy&eYaY+extC z^mKK>3CJ5WbAgmcu-pnqy^BjhyEA{ac^AT|^Yd{L@(M9L&Pl)5)hUIv}j|O~Xu}!S%*!e$q@9xdk1tC9v|Y$i-sLfTyB10w@KQeum?R zKGYWnzA@L+OM^AXhw;0KoQdvR+`~mKNl0vLzr%F=(2XaPQMgzLA=v9Br7yh{c$(ys z-%G>1`u=8yD)FV=MpoI-Ysf zd;hmV9`qcvq+6^{pVK?nUcXSf+PXiSYx8hv=Ch8f_Ky&yCMGe=pHyn@Al%tn-ga3- zeg!9EfEGK55A+Md)|YMd8cO#Zmb1RRA-gfs(I`w|L*I+Wc+Qz>34fVGGYKy8C^_qt_2*r4`|Ps96k4GV?OAUs11%w! z^x@g($t_>MzJ?4c^xoaXGkCgz^}9cwZbIW(p{-zYGF0ZoYN5UY)j9d6>1Q_GQD%-- z3=<6s4&l(qZTR}NPqNT|Waswmjflr0zJJu96=byb2M{kCEb{7g=EXh2a&5sd+d1ZY z(X6-qBroreB4*u7mo6RJENeH{7k%ERnz~%>6P4$47cqmVBaeRF5)g1C^hFzPPq#VG- z%+u>(MP(%*p6G(Y0XZc(2OU2Y4Dat2fy4@2-pCpk8%xV84L_=@ld&7Y-s^60C&zrV z-`LnKiHnkwC7JI#caW1enxsE`SaM`lo=8eYq5P2cV79V=y*B4cG%oZq{iDgBAMc?! zRCcAksHo`46UvIsWCYsiThvdyykst3d;o_B@!u#(Hs{!k4uEH+sHk{&Hhpq39H+0` z{2_N02GDOI2kKTYrK+b4^PD*2jdApgZX>H#wpcvbkOSeN>Stgco^{P@!rhO;W_U4ri zjvod$#Z(5#l0+YQ`!dyy@`|P=F~559hB>w}43;wA4Z~VJWP;-E1nnVtbml}-U}48k z1h9ww#2nwHq=X7s9I$Hpuy-uj>OsotDPtWS1r3e1;5@Ghrhu?8=^Ea1@~8|yOO+%g zCDn~9Xk9dg9}lhLQE`%a1+I#2OQ3}U=54u9p+;=jna3+G_p(hxl>?>$ApwDb^*?@; zYaWj*>)tH^h%Cr*p2@jAXzIL?(NP6X8c#^6srOSi{`f&fw+H-6!H}5PT)u92lJOls ze!0P3UA+~zH}=&l3xP1OJsh3O7giSwR>@r0gVv(d_Fehl{P`!jBKZIS4jcfF0;YwP z?>ZNP>E*t(w21KXrVd!tqB3AR-1O>J=HB}+lQ&LY;x9IrZ3uzc#ybd_;D`q9Vpw6v zP-{-Tt=lLWo!PPpJKTEG9P7XO9&EQ?Waz2gC4s$MA93-hbYfBxKOc`e=u9v~30U21 zLKCVjU+z<+MiF?%0vRVx?(Sb}!`s^by**kCq{~-QY;h3QirUTnba$jX z=-60j-FlD(j@a1Lz!5=qog7<{AWGUsAvXYUr;%c*gL zCQ&1AVYXn|8J03`Px#{MQ`6J+_4Sgk#ZyPKqhL(Sz>rXNTtr0eH_EP_?vp1^a;m+% zg<e}%{e<;$abf#el6&PTE@SZ1|7~j(f?wn*cDD!t&78o2$yqn zmy|{lhMUv5;K&BnTloZNrLvKNtrmrkCLXoqwzws1MwJv_G&+G{Aw)-oVntWN3MD_QK+ zTdtZt`pAKOE&-Qt)UBvBY?}p{;QwKvy-^}a419~g$0OAThez3F8&9`yA*FIKYBXUNVN9&u+~@nFP0AL< zrlYGd*AWTc`uGXzf5d1U?=fg(FT{7a6YN9BE_@Ebbn+Lzq`?DJ3O! zm=0Rd?!|qG?PrJEGf*B53fc#Ey1qU`Ce28Swhbzn{_HfKwU87O>pnpzK*SNRJdjhP z^I-6aw{hFi?3!SP1+NKV=+m8@ofF>KM0JX@8^%y2V zM<12u`&PU>!=|FDvReWfe-Q8Jdi2de-&$8!_vzE~ckim;l0bRo+O@u4Zyl5Z$^tok z_6bUi-{K;D!*jwmFZz>tHbPrGOifLRR%C{ThDtVdQVb!W*I&|1-%c=~VqCg&bu9m`uNZ{hQlWC8d?A8aX5k^b{WUGiMAau-m5rCfOrVT2@w{a2=+nsozpJ z5?Yy~S(9CnjeE9ThYbab84bT!AhDnu$gY{tN#-%YHoFAT1CUYcF|PW-C*5j)Q{(cfpPFJ$~<*#y~;H<(uPGek&ExYF?n1;Wo6T@Y*^RyHfJ>#VlPrnk#fv}b z#x{M~yu*@_7bq00e!9aCn@Zi>m9b-z{^ZFU@qro24VOL_Nq-D+jYnKJJ~IKg(qHiz z1|^4Tbz|-kxh8HOwu8BYv!9Xs>}TrBTsw#(_GA9Ol9Ccs$`tfWKx!O>M{WL&A=@4r z9V&khhyvn-=2$r2npP)6>(LOd#Ni$G*vR?SwH5*d198(>F6(TLGW4y&3WlZ4t#y7HJVpttMtB zunRXDZcX>KVU^i-cxWr3&$Maq5zJ)LYXAIeNWLkal`XN&(P+(^T1aMFB}ic6=huI+ zaA@eoUTJ<(g6Kt}2Y^W!P}JLh5BHUqE-dOC5+#V<<4QY)q$A4JdQ8fz_aETg|I4HU z+`=v3N=|vDdGW;0A@eTU%Nv}faC5vQql_k^&OhjZIslDGKIK6;wN&lb9+!%{4M&GQ*3M)5fd zr0HxOIYM)8IieBoZ6QF9u@t4^h^D@@FxAh4$mg#3J5Go2;5Puk5|lRL!dl(vcmCkQ zgvj@I|KJ6mA*jQ2`nd6(w-LqTf(eon| zpQ8ox^Yh&(d-QVw2%L)4R8x~CL7{0sY+;T)l)+KGefxLq20|61yD^`si3z41HbRi) z#D8l@b5sWIgo7}Z8uz)6w#zO`ADai5^lGqAL;zH*p8~c-D-ed@`@0{y6@FjYmYkg( zLRoFKM?``|Yfq1=%%KYQBgcN;5>Vqr2%jrDI1CrOi5+%sl$<_N@;{ch&89JM5_0c2 zc|*d&Z}IEwp`1>#Iq4YNnRWwQ4fevcec(X#Q4B|3xfgL1?t5?E1Q*;m6Qb** zf$V%!W1~ubZgjNPuvi^jAA>2mVbfsRoUuy+RWv2nWFZa?FI@2QO!J^l9Z!iaVignV zp)9Lj!;pxHx~Fnt%Toy8KALZ-;T<088WR3A3j??immJ=^$WV_x+F#mfnMwbsu=|$1 znudx>BT+A5KdHYdVgs{VarZ8XAU#5rUh?Ajg7DN~H^>(y_4p9~Y}?6Xt$7X8I*yo& zApAx%6x(xskC1cP**mJJsFa)};z}C6p@E_A__QD<0WnmM6sTiOQjFBAY7ka!)PgMl zf8#)Knq9UaZkP)4g_wSb^QAu%- z!TzVObjb6w>aJ{U7|p=`ZasjGewlh!XY|RJ_tz@7!Lxk-$Idlu6!Qqh(qxn1;?D29 zqIP39kPXR%&Om#(fB$|XeoMk-NgFYQfwMv?uyt|ZAxS7GRZ}K5ud0!DmIeTR`cBC+;ZV#Xm5DO1tssYcl&jAZ- zR_2-^fF=18#SIGx|E$(TwQK(_q*VL&BSm`}5)uNQsELU*$#ycb>)^S<7ssKUJmChT z`{7V2e`0)2PvdzT;{{R1*ES-HA0Rj6rf{|cf58%r4h2mpqy0#7 zU0sPZU4Be?MO~d?&z?#7h709K=+T2jU*C=LR3ul9B>cG$<8_C>j$cB-7qq-2Sd<8U zL;ggem0 z99nT|Wq91SH_sR`w}^6VKpL0}z@7c|;92l5U@Cr;l6v$!*<3d?DCjl2hs z`C6D|siLx<`Q={){hKWXIXR2INj~syS)S|kAq@pU50X!=Md5kye0_oV=X9iNt;s$F%47gcS zs*&m=3WA2Xgp}^8<)r1_yo}dx-bl6_Gjrj@rp(W!oKMR+x|z^dL0oS8_wA#iqS?G{ zn=pm-6kR`LTp68{3U8eMN5OsldrWk!=Zyt7&V}2zEfmeWnk>7%?n2brbK0Jp2(X@V%0#A$DF?q$Z-$#I zJR9z0UtAgbQbC8*683JPn8u-@H8nNnExF9{&xc=cAcz}Z%NS{an>GKgTh~MBy7*ZR z;Xf8YEMEgz4juaSJLj^Jyvq04wEPKI+w;9-r*pUy^`>0|_N1*LrGowOHWoMf>k z^qrPPtXi2LX*qwSKpvEAP#&`)?A7%O6+7Z&!$hJx`iRtj6sS?B5#s!B1!`=~yaBe2 z>ge1sQRlJ$JC#42*UDRL1poj z-FtSYF>GW8)$H6&;Wb+Eoe>BZcweQa@=jkJnA%^H#z4aChFkK79-$2bVt5uC_`sVV zS(80Cg`c!ng!AuR=g?1WMa+HBn?ZD@?fEPTGs4sy+hKU2YNa%Ca&n?ZL(3$f!OonQ z(I>j*B~FN%#e7|0J;cK4>MF?G1sCtf8he*3IacX~ZH~cGkA1N>HL~4ql6=0DS4M%V zR`f0ho>;v`hOROXQr^S+`&z0DoCDeAN(FyAFGLmG+@xWY`}XcF?wu@S3?R2)@CykM z()#2EcI3qTQcq70ut;+*^8#NNU?bQ$lW&$MmNEv|XF7f*1pvYzaH^`gOqi3?`}vWW zZ{Vpz1|U{$)zEO~J+ibhMV0;eS1!cdU8~(!ZN^Eki=KkGzo8Oko;$zw!uHS6h9N7O z9jgF)9I!wrJoZpif9|+7Vb=Rf9TAOlrzcnbjkhOq{518O^wrAdSeFAI5AH`jy4SOd z3!nm$;PQna9DGmPIAn7CPMR$Vba!$ecyVCe0PRlxr?il<0q{IB?j=m$o<2rX*3uHD zGCeb4W@4iI{u+>cX-VCyEI!chKREjwNvwgM!S>Avged;WUq1?C_L;e$bD!O08_^ziWAEcPT%%{3_oA>>+7;+X!P9{q=BiARtzd%&gD*GoU| z!iqkHe&4=1Ob%dbE3AE7qaOKOM%!Z4*Y2PwRxYmuQpnH0#uPh3Pnu=hbpR;RL6~G_ z#+mZwRoXeF3&&`z1j0Ui_%K&74xptQ77mh<;9=kda$cA^!Obm%A|UGUICZ<5&E|Wb zWoKt&?PFHLmJV->>(tD(dmkNr`hf4PEHxUfhl-8wojq*Y_pdEfFCz2dy}>Nw`)l-+ zl$06FX2re2PPxub&Q5SoPVP?O(0-r!>eV^6fYMkEl!CE`URd;T(W$0`D+!WHT>I{a zUH-L^fXbyq1dLu6U;fl($H8H8vbn5z&`Z*MsbKqR<@XYclJ;j0KL3h|i2-v02LnGQ z^=!LyfuKu@sQ zmv?C@GO|<&hA>7Ul-zpobySEs?rvT%X@ld}*f>sN9%cZls;Wo^CTsJPs3=$p9ESQ% z{JwcjOf^M3;YrXZ@{~??(`>n}8H^*Sn+~k09|(C+0r8%j*_X|KxZur~R_;zauF%f# z)eez$8AKmBc8#qkjN0azzQx&Qpi7=Zqx1Sp?`VK=VMyb*rb@Xp;@&+9G-6SCfc?Utbfk}Kl3-=i`lDv$nJjJi7}FRpsp!wx^3;xs!AI2-@@qqdJP`7 z?jXMSt4p-+rB_W}Yx{8OgU{N#vi#2^Jnq!ekRhP;z^@ylRRN-g-FtC%;6#y`=(J;~ zs`~Cr1pA*pZJ1756d2HH9Jo`z&5-XoaTg~(O&3FzkNuY@GfYgZv-yoS+VX?Cgs~RY z+ETOjAL_a+Ar<7BURiR9*LLGW1cg4Iweu#w2@}06CFa3rJ3r@r%hH;|@rn{9R&WPsa<(liZ-%te@;Y>gMJ|{FM&eIrv6;e`U3NAlC zY+y2HI(z|rjFON)ToHT>qTx=lxvJXFwY8sbE6%aSyh}_pYpmAeyr2!)i%?es@Kl0?u4cPlJZpEe#c=-6h?SxiVx}#evkVsIWB#DoY zKXBk6sz;#2+#_8}P%1xs5TBp^<+66VKJhJJsndemyjvg_Ttgm9Bf+$Rl_hWfc_mC|s0(8XUZz*{!T|!cGKAYW?7>Ln(i8J28qNdaKypvi-{d~C_b<}N zVK*vjYNIJt84;$Pym}Cx;amZ0ru-&~SWuRGyE?YCw~Il{y^z`;-uUpp5RJoVQ-Y7YuV?Pn-A8HJ=D&oCsC zHOyTP&)(41-p$Ryg7{*8zT0Kr7e%WAYw{H+r%Q7@tG_N78aH<^0^H<8@CGX4B@j8xoFuHUz(prbopSJupKq8B6)w^!-% z_P=I&?<2QoE#+B93*Kh!xrqCAvu9{%Y3%!%M)a7xuv1uYY9ELWwej1 z#^fHOBsp1Zt{)Q;fciu`C^nKF(lRou(@CyJsc@9Iq{)p(Q%q=qwRgAg{msP?mBGc)nS2p=Hu`xqDZI{pY7XZ8985XQFs zG3yEchcw|s7<-fo;MyjNXl0PTet;y3N7Npi05RAaVj?buP zl$4%1ptDqNR(Sj>%I>o(3vF^@t1q*j@H#v|_XEaL*4GaBg70?vH_F_1YQsI>LOs_7 z!z4JvpXglhAqMmk(4fgqeCxvY3NAkUt>PbDn}+2Tdp#4cVO82=V=l+1fFLS@P95au z%HW~a7^Vy#pX#qsUu_C-5W4;0&W7-#^-pGL@;uhx`|pVX3lEPKs4K8mkqzO+8kt5* zp3&v$JpWi(pkF2Ru|^@!Un>hdxqEj5qOHmKB(>8VZ0u|*$DYN-86Pg=Gnij2TmQmS zmj9JBBmnuC^Y=lU87*C1T`jF$*$1X7O3X)EQvxe{14Y^BehIPg@!f{}4=K5xQm_&j zN}irxlXU&PgPl3297O$Jo}kWO9dTThU+FCNs;nfYBChIl${{hRhvSSKtM;n~=wT-D z(+#Ylp7IC<6_q!aVK`5ge1?~w-^0Vh(b0a(5)h& z@Th5Mu!AlRDiw<^>Bv*d*y)h;PlU{^d{h|sUV0TPX|yM5*%R9(+h-j z7~rGsG>o^yLIZ_Sj+vXYqwttqemHvc5!+FYqenURpL7ZW4}P8f2rA0SBGb$9$4!EU zD8VkLr#L)nqtO(QO4rDrKljUXh9X)#D;k)KyXW4Z7xb$$nej1}S(bK4pZtBq(6b8A z9@~;;hi3bt@wQQ7E%3jkL1X)HRILl#9XPNqk`hOaorN1z|D8vv7q^bN;B?d0DDuU#mn+(CU#&Orvj(0)c`G>q||NN&j)-7Z1 zPYYq)18b6k2>VumbCl3?*L)O4gQ&k(gkvNfgLt`^nWO#R6BCU)BVg+HU9#%3t72tv zS~<3G4OBv>`uf!nHsat3tqf|eva!p_$T0BeKR$aPnw3|<>u6vCvJeHT z+oF>~JdaqLL!F!(xn)-6iQHq*e$2gHc;E{K8@NhhDfSbS$GhW)-C7D9L znzptvcWGWVpe^<1Qr;htad>R@Md~C4rNl;1tTt_GMm-cQv|aiZfx)u1FEKRR z-e@BF;os39o9(=N9s%w{&OOny~Cc%}xHN4AkCw%z%7rtpVuj!HFR1eQC<~PNvonE0t z?RY%2b8uh)=)J$6UyN*c6E6F9Oti?nWk3grF{rPbwY+#Ik%KnlpFp23>_NJ>#C~gj?L8nq-9_sXqw6+gx8{aOslXxe0F4YWJxYsLaJ;u%O6A)IF!Xm zNBkP@R##G*$tYMJhE=#dl0$D+y9fn5G2O=d0C()KnR^z zTW3Q%`PrE);8ysjoAQ)?{B_%rVBmZtnF$r-6Ldk_>AFUHC81N1mIigPm663d@=@ud z{G@5ce4n^U_s1wW6G0@Fvxdd*UlgMu5b^FZ%62c?k-C?{1jX&}acaJd+WPuV7i?wv z8pZuQF~-7A+P1*(1P@?pGQOg(hOukk6sB3WUGbP)H}$=Pzj$d^=T3@+;b>pjx&HLy zI8*eQXNj*Q^vU8NSo_yM=YdH0)*gSEe~7!@(2(gH2l{CE2T-QmA=achyogv};RYam zqGAJ&pF3e2;q&Oxz#Q*wP@^EMxx5&S9PJe5!?fH$8pFETEVElsXfO{MR2qvu-t;@C zHV|FPbMkGPDAuw+hn$H=mOVpHMZ{!=^#Q6eeRcWmzj8wd9vaVcUEgHWxV=4~yeI?w zLO;Ziow+ArNqjA}jPgU9>TDkpH z=!=6F9*2p!=9eC<-u-y3W_l;_NqBhm?vVKlB#rb1D*0!v4Bio|_n<9IOisp12S3j} zDk2gl^WJLGvL^ARo}M024ed|87O2S;gt&m36|n8|dUn`H(QP3jaWUbYQvT*nyDFU@ zb#>rZAu&4g6y+A|>OcxLextmmqH^x+`7i;C=abZc*6c+hu-Z%S{gM7uF-**M3Q|~G z)AwB@f$GnVQlEOZ^R%3{mKKcKup>~Fy7QqO8d@g=DQ?^5G4OUkRw;^zekI?#_e*un zmjUllf0KrqdY1%I39X>eIXWswa+Hk?=v|e6P;f9ggU}S(UXXS_Q+nq1BsrN|e|nvd z!lf9!=?@Us+5^vq@)1!O6{$P+LHrwka)_8dG1$pp3=U@u1aSzIk%`BXYU&}i0Lg@j zslBD;7!_#-t7#~o)iWnV=6wY4Xz>uYJyMzF2Z(+RsP_<5j=Dg)PM$^wX4Dg9D8-kfXUUPnGP+BCG-3#n-H-$^(kA|}37_8I$c)Z00-h^je7+%bCc;k^!m zFwR4#SEcBx>gtI&XU(HjLc+pgC@1?PZ4y*ozl5)qS=GxIE@0uT!Ry4TD5j(Ot0jTk z#3v9;eZ#|VcJopTGWKn1+{yA+%uYa(6BQT4bP-x5;L>Z)#n;My9Mg}6N2V9n7U0-n z1o3v~EZ$rEu_DENm1GrsJ5T%ciZ!hkmF)QgomuHVZ2dP#@|`OeEi*qu-9)hsheCy!;R1i?e|9>Y10tt z!FcrX{0l=^3tN`+2kn#w*DoEnjywV+NPH44YqVmQoqmkI=U%Rp+}sY;V=oua;BP{) zFJI~+uJrI>w8`J@|4ZKF(f)k&r-AsOEW~qdW4rULij)=bWH65bQFOF7?_2qgcmxfh z#McjC2JEHV6AFJg`KM=GJ!&K4Bc{Hvcrp6!&v_B?!pH$mVStQ|A3uIAS+@kHyWQ-{ zii+pXpKr^)9S7nIN};smJBU{}6^a>(8H0)oKpkSWopPutFAg|5NV%>1cmHo_wR7?+ zU9)#ZD9*|MK%9x{yjgb}&hd~F&iDOOYRZFo^lp>SZB=LsNxs$bskq}d`<~Tp0M|AM_$H{x1L=dha$XZbN zho%R!?wW(?)GjfhWn7F*Pl3S36s162M_thPDvY6;;iIZR0fXIv$|q6BeO3B6Gq$Hq?2 zx)JFR<=?&~qCUwkp^PtFT-IDxT6!t{sJ7x}W)@hRRaG5_O~+AeLw2xM03h)7!Pn`* zdZzh>2TN^r@ftNvO$gRYwBIYaB{pQ=Hbz-^;&gXXZ9Mo`adDF~Gd<%7uhCrS@TpT8 zf;Z*>7XDxoHanK`4p7yW$-Q4kp}ir(Qn=uTh9Jt_G&Jeju&Nhiocy}^Pz8G7U@(e` z+)Boe9Xl3r%DGh6n$*ItH+by~{}3lHm=t3}WS0-Z5zyee*g?0e%F4w>MNU*R-?6h{ zpM7)nrn!02WkFU}SnKD%ev`=TmYSAUVvZ>To%G$#O~LT#Z3?#MhC=G)6(cJv9{&PS zAYnyCXBoKGIu(ig4!PtqC!P^Xw2$rc?kQy644C-o-!$tF{;Vet)+a^AOZ)?HG*JP@ z*&2y(`HEx+)L8EB=Ya8vixY^Rxb^Vtl;K+2l77nRD&L@?qOya#f`~P06G}&@>T2uI zJVjp+u89C}niFe_Y6`_G-p0j25g8Z|uuB3*9R-6(7n(JaoH%(BeM2U`kkg$z;CuD} zM5y?>>FEegwamWP)up?(ySS?d|AQK5>RZuqG(iH%Qp|ZF6`HyeCoD?*SV^giv`_Ff z#}avRpVeKy6K{T%l%(OqAx$%lk>|5CxN{FfKUY)|J8SiHmnzpxb%zs=-+w00=__bo zIq*3e#R>4Pyy*ocNZ$V&vh=yn=D!PSY!BUsCfLZ@>mE z0$5;asj0_#n&0*Ypu|cLA3ZpqLdS0o7#4^gI1)F_%w*-{3M?k?pM7}#3^tx9eZ<~S zM3|Y^6s$~hxqrfEAOm=&LP1W>>L##u^gKDbi)1r`Rdet5r7I`)?b`>gd0?>BIVAzR zv7ZYI4*Du=0r@}HqqnP9WE&uWW9sH-V__k3$Lo2LjD=n(td)0hML((ENRkf>XR3dzK^U2-P zg6HH}U$GXfv?r}Dj~Af6#jJ1!T|{%nU%fsAg$Xo3c-$ey^gJkZaje0lHd2U=E)+<* zOx+S1CM&f&eXs2fo z)b4^)%Qy-1>_{7`n+#(McX(ne z>9LQO3c;@8X?Q@wWdYNL)YX;Q0-T+!ZdJU_Gv$q7$WTgPpZ_p9KV@=@e7MFt3T*A-P8fbv1zXd7KWw zvtHRsfeH#6$n2%`^^2wc<6enpWzNbMLIk@45OF@ zGytWPNQ}{>CfSVY0uD`p?*ArLl_Iuk22|qHOlffQW@*PQ&`haj(2bb$zpGUn>%P9e z$mnBmFmZE~nEDg$(Bh=<>ig~E;BUn`fK3h`;QrP1(4Q>>T6yN&`Ol+aJVa8I5^jH-DD4`APqfU;FCp|T ze|zuVncIqdDbn&!Q65M!Sw~DDmYcI%EDt&b0&XZn0q5Ekn4z@B`~2SKQFpXj16n@w zR(;(Zq_i6~;XIpR)pO@Q?-W})4(2V&2Y(bBFp^+{JaXm8SFrY=)YdZvdI8X%Y9q*w zL_)eQHKVA5uBlD}cMwhpgwW|x?{2`&5mF2;Cw1Zn6GDikYJ6}~o}eU0&CEc(ZuU#B0Gc!Z0F@Dt1{I*(^(fSe7^w=dU5f<8Ic_PD z(tbbvdwmKK z?4q@Gd>?4WPMcgl1l>9P?Vf%`7^`ES#D6DS?3n*`IUzn@*GXupKci zPPw=tAz|m`v(d$daT`Mn*#l$~!pGnIP{=xcFybDEwOh((kBv6R64Ik?zx!~R^6kV= zdP8d2cL`g@-@Ouz_1L&&^EuYduAz%Mj#8W@TQ4?jK4qVGU#yO)vE4;%zN36rbg?Yv z)to&}qdNk;IH$zvX;CNojlv7*1*OLqoU#wj5OeUNXkvQ!tBP2tv@l$IdQ)HR0Z~p)5(=TYiM^z)&&|-ZEchLIW z>$A74e5Qc`z4dx+$Q=R#0=MH12&5Z|Oq900R#DQZt0u!eq6l#06C^S3-az*_xv^FQr4{~4M8jLiS*DfOQ@^Pf5MpE>hC266vc9{*V$ ze_tNnCq1TXM@{Sv5Yuf@B}M!$W4+I7_QR%~RAvnH;A{`qS4-iy6u*wsRtnoCG(JnX zelkDn{VQbzp!9B$MCrr7Og6*5-f=cIwh&VWyoy)7?aSm*VpdQbmh084z>61o3%W4= zbIRd6%cHE6q}m!bXz0?bdCR3@mDl`uf|CY;pgK(PF1p=E8KT*s&#Ac}p?+JPUQ*pw zL3iJN1L0y?9m9EuR2m5}Wn@{<}dx1BGP(_J?X-3u~U)~2abZ5u8W=7z518iDsf zUR{Zea2U{%@ukbX)qeMUSc*MoF|;8qVf74zsArM);_@fMN2Sqhy{3+lG5icmv-7;kA-5wq_)+@9axoWj-D6N0pZVg~3!hUCI)!wF9^`UvEZBwTW~Z)Grn7kqfh$5xn<}E){*-iW!}U!cr>t&$-_MF+dnY;A*CuzDDaEUe zf4R@k7_oAzusDVNC_9&9hx=ZzM*~yg_HdF)S_IjXd7#vxww&lUWz+>vf9#Hy08F$Cq;X$kzrwqC7 z#530{JyZVg~-dD=2y#uULf$?CyE)>>S0dZVj=&s~i zZLD-rvKqh-eA-~8{;17lxB-*@92hlEdvaxEwzVqHoW{5otS*mEn`sZ4MT92jZjCW} zJ&=K{!$T!k4c_tumrHTw@oE=6pcodW(%#T0<{o4_ z9Fm5`l{fZ@Y_p*MHYzEWiW zJM3nH4R|E=yB`IhCM?`J#S`M%*5Y94Dr7sd)aE#<=T{E<$xOTNzj9WGM`nuC#1dOA zUR>~T=?OL%IMuy$y4QB(hoJh?l^(u!r{T2vo6e_4ELyh(vnYgdqKRCE=E-Hf%0dA)rBlLy0pINbWmOxNK^rwP#2Qv7>_Bd(WFE31viX)X`EjZ0L` zyrl&@$Xx~W9+sa%21}aYor#b4XK6&e){g~_eqR}r5))-(Ytqhx5{M2S_-r7rVN66=3iq;MM_VCN@W{vY+&dWRZkNG{grft7oMy zU24iOk91bU;`p$oHQ(70!XbuHlu}0|&_B$;{G4p zIvYklG=(MH(=5X8lD-s@Gk!@*s#2iyaWA@>fd=R>@)MGD$2R+3R!P4ST^wYn6N|y% z1Fa~~-B{D1|J4O2@_AmpHhAQq-5-mjAIj=4uK=Y+@9>#iY=kfvsI9GqoP7ir1dB(o z*R~%9Ak5o7K6HsQckI(BP7XBpQG*rea7KIE0WW1MQ5ANjc!Az9D?b*r4we!MhtAy| zU)DGxrAL8yfWYgLC^E)u#ZGhPq=ToYr#}mH6DG~+!&vw?MdMJw>0zhX&#en-L}O)7 zR;RZxfOjS0*lAk5mhSn``=X1nHz!Ix+qz`MU}Wy$;fQO4Zf~x>t^0wvXO~Q)re2vI zJ{&^Xczcly-?EGvsoIQ(6&dzsQxmjR8zZy0;V+64l}jZVc9sL!)I<1;>!9Z~&+d;I zYS-5!x=|7v-om{p(sgBCBEI86WscMQgtbr}TH->Fk9%MXaxihIK@m<#LW`$Vlo4*> z515nt;9O-!KJRV7lxkGdQ>M8xk!jKSO=PkhWdmM4dzoPV*#O)^;)h~L%`!Xgvq)kZ zh?z9JV_F&WAiBo+>B39^YN@x=PjP$nxPytE7?qSx&3E}Xc0$_C1xqFP5`o(RF@E^M zs(E|BvuFC;!Jrc!mh|Jeo}P;p2@W?08{18sw_y14l!uxxg&4e^waD9>iucr9`nA_} z>IIYYT!#l1kX@JWh4YX1$fPIdxL4;|X;Re~#|Ju72;Brd)9}k-QZ9bi7;S>gLs{8f*{r~RxKT5yF z($AKA=G}~H6n+P)`p#Lm&e<|u4R|-AQ8OE_ z*YeB2TNyx+0$iT~YR%QYv;BU@7`TZaIL!x~zyUVjfIFqG0+ZefODEttwCi@i+m#JG z9jryz@5im{`+(sI%mqMq1KY^Jo3KrQ`m)#UOam@LHf4W*Y3XU;-nxCCrmhF>U%6ZT zelPIUj6J}jZL-SCtE;c?{eJKEl=sfc^P)fJ?g{}e`vex9d&NzFS1QafNCX}rCLUW7 z2t2~8jbFYF*si(0_k!v2x-S>qflD@Szc2(I8;&yJo*?~C&PUhfBO%2-)@d)40e*Z*{1T^%;R=#*w_ z#mU77fd{2M`(IUeR+)9ycVLk#1zhH*y?#$o$MNi&z_mM};jvpwUIGiKOUrZ?-+X54 zW%7SddxazSl6Rn{_%_*m&)?^&zrDM^x4OLf{o~ZA>$VB4Grr4DjemaTXWwnFkbqt4f-RDM2d3e@s- zp5^!1!k_1ED9TR-u5s+2TxIj&05j{Z%xws6?ls2+04L4j9lMvMK3>Xr_HKp# zzi&s=>Oe+>=O?V2s=sDU^)vt4SHWN9&SyqnDm!^e)i*wZIVyUB2$JS!EAIZ@dLVtB z%vPk%!j%g48RpxrndvhytSx3=@sZB}(F@tI@YrmN#H3=~$19L}BMJBJgLZo#*r@dV z_s2`Rdxe0Vq&^9ZX_&$X#iri3%JU9_R>EB<`Jb`Jw)*?_H&#Gi#;!%c_SSW?eOE7? j267jy^!t0|jmL$nC3E8q`82c1S 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/pref24.png b/doc/salome/gui/SMESH/images/pref24.png new file mode 100755 index 0000000000000000000000000000000000000000..f1cdcf8fc7ea72550c5b7f477f3bbf57c7265672 GIT binary patch literal 53003 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/projection_1d.png b/doc/salome/gui/SMESH/images/projection_1d.png index 5af29afb897b1b50fb8c0392188e8bc3c972aeca..6115327636091f1596defda79b64dc813290bcab 100644 GIT binary patch literal 15597 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 J(q+Vz$7)h1rz+U=JK!HZ3e%1v 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 literal 17865 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