From f72094caafac8a8fe54afa58ffe44879a6388258 Mon Sep 17 00:00:00 2001 From: nri Date: Wed, 9 Jul 2003 14:44:57 +0000 Subject: [PATCH] NRI : Merge from V1_2. --- src/GEOMGUI/GeometryGUI_ArcDlg.cxx | 34 +- src/GEOMGUI/GeometryGUI_BndBoxDlg.cxx | 36 +- src/GEOMGUI/GeometryGUI_BoxDlg.cxx | 35 +- src/GEOMGUI/GeometryGUI_CenterMassDlg.cxx | 34 +- src/GEOMGUI/GeometryGUI_ChamferDlg.cxx | 34 +- src/GEOMGUI/GeometryGUI_CircleDlg.cxx | 34 +- src/Makefile.in | 33 +- src/OBJECT/GEOM_AISShape.cxx | 34 +- src/OBJECT/GEOM_AISShape.hxx | 37 +- src/OBJECT/GEOM_AISShape.ixx | 38 +- src/OBJECT/GEOM_AISShape.jxx | 26 ++ src/OBJECT/GEOM_Actor.cxx | 40 +- src/OBJECT/GEOM_Actor.h | 41 +- src/OBJECT/GEOM_AssemblyBuilder.cxx | 49 ++- src/OBJECT/GEOM_AssemblyBuilder.h | 33 +- src/OBJECT/GEOM_InteractiveObject.cxx | 34 +- src/OBJECT/GEOM_InteractiveObject.hxx | 37 +- src/OBJECT/GEOM_InteractiveObject.ixx | 38 +- src/OBJECT/GEOM_InteractiveObject.jxx | 26 ++ src/OBJECT/GEOM_OCCReader.cxx | 36 +- src/OBJECT/GEOM_OCCReader.h | 36 +- src/OBJECT/Handle_GEOM_AISShape.hxx | 37 +- src/OBJECT/Handle_GEOM_InteractiveObject.hxx | 37 +- src/OBJECT/Makefile.in | 31 +- src/PARTITION/Makefile.in | 34 +- src/PARTITION/Partition.cdl | 32 +- src/PARTITION/Partition_Inter2d.cdl | 31 +- src/PARTITION/Partition_Inter2d.cxx | 34 +- src/PARTITION/Partition_Inter2d.hxx | 38 +- src/PARTITION/Partition_Inter2d.ixx | 38 +- src/PARTITION/Partition_Inter2d.jxx | 26 ++ src/PARTITION/Partition_Inter3d.cdl | 36 +- src/PARTITION/Partition_Inter3d.cxx | 34 +- src/PARTITION/Partition_Inter3d.hxx | 38 +- src/PARTITION/Partition_Inter3d.ixx | 38 +- src/PARTITION/Partition_Inter3d.jxx | 26 ++ src/PARTITION/Partition_Loop.cdl | 32 +- src/PARTITION/Partition_Loop.cxx | 34 +- src/PARTITION/Partition_Loop.hxx | 38 +- src/PARTITION/Partition_Loop.ixx | 38 +- src/PARTITION/Partition_Loop.jxx | 26 ++ src/PARTITION/Partition_Loop2d.cdl | 15 +- src/PARTITION/Partition_Loop2d.cxx | 18 +- src/PARTITION/Partition_Loop2d.hxx | 21 +- src/PARTITION/Partition_Loop2d.ixx | 21 +- src/PARTITION/Partition_Loop2d.jxx | 9 + src/PARTITION/Partition_Loop3d.cdl | 11 +- src/PARTITION/Partition_Loop3d.cxx | 13 +- src/PARTITION/Partition_Loop3d.hxx | 21 +- src/PARTITION/Partition_Loop3d.ixx | 21 +- src/PARTITION/Partition_Loop3d.jxx | 9 + src/PARTITION/Partition_Spliter.cdl | 31 +- src/PARTITION/Partition_Spliter.cxx | 434 ++++++++++++------- src/PARTITION/Partition_Spliter.hxx | 44 +- src/PARTITION/Partition_Spliter.ixx | 38 +- src/PARTITION/Partition_Spliter.jxx | 26 ++ 56 files changed, 1551 insertions(+), 604 deletions(-) diff --git a/src/GEOMGUI/GeometryGUI_ArcDlg.cxx b/src/GEOMGUI/GeometryGUI_ArcDlg.cxx index 41dd627c8..cd536c58c 100644 --- a/src/GEOMGUI/GeometryGUI_ArcDlg.cxx +++ b/src/GEOMGUI/GeometryGUI_ArcDlg.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : GeometryGUI_ArcDlg.cxx -// Created : -// Author : Lucien PIGNOLONI -// Project : SALOME -// Module : GeometryGUI -// Copyright : OPEN CASCADE +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GeometryGUI_ArcDlg.cxx +// Author : Lucien PIGNOLONI +// Module : GEOM // $Header$ +using namespace std; #include "GeometryGUI_ArcDlg.h" #include "GeometryGUI.h" diff --git a/src/GEOMGUI/GeometryGUI_BndBoxDlg.cxx b/src/GEOMGUI/GeometryGUI_BndBoxDlg.cxx index aa2f1d04d..495aa46cc 100644 --- a/src/GEOMGUI/GeometryGUI_BndBoxDlg.cxx +++ b/src/GEOMGUI/GeometryGUI_BndBoxDlg.cxx @@ -1,14 +1,32 @@ -using namespace std; -// File : GeometryGUI_BndBoxDlg.cxx -// Created : Mon Mar 04 13:16:16 2002 -// Author : Nicolas REJNERI - -// Project : SALOME -// Module : GEOMGUI -// Copyright : Open CASCADE 2002 +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GeometryGUI_BndBoxDlg.cxx +// Author : Nicolas REJNERI +// Module : GEOM // $Header$ - +using namespace std; #include "GeometryGUI_BndBoxDlg.h" #include "GeometryGUI.h" diff --git a/src/GEOMGUI/GeometryGUI_BoxDlg.cxx b/src/GEOMGUI/GeometryGUI_BoxDlg.cxx index 476a54854..659dc19b2 100644 --- a/src/GEOMGUI/GeometryGUI_BoxDlg.cxx +++ b/src/GEOMGUI/GeometryGUI_BoxDlg.cxx @@ -1,13 +1,32 @@ -using namespace std; -// File : GeometryGUI_BoxDlg.cxx -// Created : -// Author : Lucien PIGNOLONI -// Project : SALOME -// Module : GeometryGUI -// Copyright : OPEN CASCADE +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GeometryGUI_BoxDlg.cxx +// Author : Lucien PIGNOLONI +// Module : GEOM // $Header$ - +using namespace std; #include "GeometryGUI_BoxDlg.h" #include "GeometryGUI_SpinBox.h" diff --git a/src/GEOMGUI/GeometryGUI_CenterMassDlg.cxx b/src/GEOMGUI/GeometryGUI_CenterMassDlg.cxx index 40f3261e1..4f5d2ac19 100644 --- a/src/GEOMGUI/GeometryGUI_CenterMassDlg.cxx +++ b/src/GEOMGUI/GeometryGUI_CenterMassDlg.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : GeometryGUI_CenterMassDlg.cxx -// Created : -// Author : Lucien PIGNOLONI -// Project : SALOME -// Module : GeometryGUI -// Copyright : OPEN CASCADE +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GeometryGUI_CenterMassDlg.cxx +// Author : Lucien PIGNOLONI +// Module : GEOM // $Header$ +using namespace std; #include "GeometryGUI_CenterMassDlg.h" #include "GeometryGUI.h" diff --git a/src/GEOMGUI/GeometryGUI_ChamferDlg.cxx b/src/GEOMGUI/GeometryGUI_ChamferDlg.cxx index ea91bac12..c0892f768 100644 --- a/src/GEOMGUI/GeometryGUI_ChamferDlg.cxx +++ b/src/GEOMGUI/GeometryGUI_ChamferDlg.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : GeometryGUI_ChamferDlg.cxx -// Created : -// Author : Damien COQUERET -// Project : SALOME -// Module : GEOM -// Copyright : OPEN CASCADE 2002 +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GeometryGUI_ChamferDlg.cxx +// Author : Damien COQUERET +// Module : GEOM // $Header$ +using namespace std; #include "GeometryGUI_ChamferDlg.h" #include "GeometryGUI.h" diff --git a/src/GEOMGUI/GeometryGUI_CircleDlg.cxx b/src/GEOMGUI/GeometryGUI_CircleDlg.cxx index 4a9ac3dd9..ba0c36640 100644 --- a/src/GEOMGUI/GeometryGUI_CircleDlg.cxx +++ b/src/GEOMGUI/GeometryGUI_CircleDlg.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : GeometryGUI_CircleDlg.cxx -// Created : -// Author : Lucien PIGNOLONI -// Project : SALOME -// Module : GeometryGUI -// Copyright : OPEN CASCADE +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GeometryGUI_CircleDlg.cxx +// Author : Lucien PIGNOLONI +// Module : GEOM // $Header$ +using namespace std; #include "GeometryGUI_CircleDlg.h" #include "GeometryGUI.h" diff --git a/src/Makefile.in b/src/Makefile.in index 30889cf5f..dfd82101c 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,18 +1,35 @@ -#============================================================================== -# File : Makefile.in -# Created : ven déc 7 13:32:20 CET 2001 -# Author : Paul RASCLE, EDF -# Project : SALOME -# Copyright : EDF 2001 +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +# +# +# +# File : Makefile.in +# Author : Patrick GOLDBRONN (CEA) +# Module : GEOM # $Header$ -#============================================================================== -# source path top_srcdir=@top_srcdir@ top_builddir=.. srcdir=@srcdir@ VPATH=.:@srcdir@ + @COMMENCE@ SUBDIRS = OBJECT SKETCHER ARCHIMEDE PARTITION GEOMDS GEOM GEOMClient GEOMFiltersSelection GEOMGUI GEOM_SWIG diff --git a/src/OBJECT/GEOM_AISShape.cxx b/src/OBJECT/GEOM_AISShape.cxx index 2f4e5c59b..93cbeaa78 100644 --- a/src/OBJECT/GEOM_AISShape.cxx +++ b/src/OBJECT/GEOM_AISShape.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : GEOM_AISShape.cxx -// Created : Wed Feb 20 17:24:59 2002 -// Author : Nicolas REJNERI -// Project : SALOME -// Module : GEOM -// Copyright : Open CASCADE 2002 +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_AISShape.cxx +// Author : Nicolas REJNERI +// Module : GEOM // $Header$ +using namespace std; /*! \class GEOM_AISShape GEOM_AISShape.hxx \brief .... diff --git a/src/OBJECT/GEOM_AISShape.hxx b/src/OBJECT/GEOM_AISShape.hxx index 5c63ece8b..d809c0dbb 100644 --- a/src/OBJECT/GEOM_AISShape.hxx +++ b/src/OBJECT/GEOM_AISShape.hxx @@ -1,18 +1,29 @@ -// File generated by CPPExt (Transient) +// GEOM OBJECT : interactive object for Geometry entities visualization // -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org // +// +// +// File : GEOM_AISShape.hxx +// Module : GEOM + #ifndef _GEOM_AISShape_HeaderFile #define _GEOM_AISShape_HeaderFile diff --git a/src/OBJECT/GEOM_AISShape.ixx b/src/OBJECT/GEOM_AISShape.ixx index 3179d4a5a..7baed81b7 100644 --- a/src/OBJECT/GEOM_AISShape.ixx +++ b/src/OBJECT/GEOM_AISShape.ixx @@ -1,17 +1,29 @@ -// File generated by CPPExt (Transient) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM OBJECT : interactive object for Geometry entities visualization // +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_AISShape.ixx +// Module : GEOM + #include "GEOM_AISShape.jxx" #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/OBJECT/GEOM_AISShape.jxx b/src/OBJECT/GEOM_AISShape.jxx index fa4227d8b..8f66299fd 100644 --- a/src/OBJECT/GEOM_AISShape.jxx +++ b/src/OBJECT/GEOM_AISShape.jxx @@ -1,3 +1,29 @@ +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_AISShape.jxx +// Module : GEOM + #ifndef _GEOM_InteractiveObject_HeaderFile #include "GEOM_InteractiveObject.hxx" #endif diff --git a/src/OBJECT/GEOM_Actor.cxx b/src/OBJECT/GEOM_Actor.cxx index 6dcfb8805..e29c665cb 100644 --- a/src/OBJECT/GEOM_Actor.cxx +++ b/src/OBJECT/GEOM_Actor.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : GEOM_Actor.cxx -// Created : Wed Feb 20 17:24:59 2002 -// Author : Christophe ATTANASIO -// Project : SALOME -// Module : GEOM -// Copyright : Open CASCADE 2002 +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_Actor.cxx +// Author : Christophe ATTANASIO +// Module : GEOM // $Header$ +using namespace std; /*! \class GEOM_Actor GEOM_Actor.h \brief This class allows to display an OpenCASCADE CAD model in a VTK viewer. @@ -14,12 +34,6 @@ using namespace std; #include "GEOM_Actor.h" -// VTK Includes -#include -#include -#include -#include - // OpenCASCADE Includes #include "GEOM_OCCReader.h" #include diff --git a/src/OBJECT/GEOM_Actor.h b/src/OBJECT/GEOM_Actor.h index 85cd625e5..c40dd1001 100644 --- a/src/OBJECT/GEOM_Actor.h +++ b/src/OBJECT/GEOM_Actor.h @@ -1,23 +1,36 @@ -// File : GEOM_Actor.h -// Created : Wed Feb 20 17:24:59 2002 -// Author : Christophe ATTANASIO -// Project : SALOME -// Module : GEOM -// Copyright : Open CASCADE 2002 +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_Actor.h +// Author : Christophe ATTANASIO +// Module : GEOM // $Header$ - #ifndef GEOM_ACTOR_H #define GEOM_ACTOR_H #include "SALOME_Actor.h" -//VTK -#include -#include -#include -#include - //OpenCASCADE #include #include @@ -108,7 +121,5 @@ class VTKOCC_EXPORT GEOM_Actor : public SALOME_Actor { vtkProperty* WireframeProperty; vtkProperty* HighlightProperty; - int myDisplayMode; - }; #endif //GEOM_ACTOR_H diff --git a/src/OBJECT/GEOM_AssemblyBuilder.cxx b/src/OBJECT/GEOM_AssemblyBuilder.cxx index fc06dd921..39aca3d9c 100644 --- a/src/OBJECT/GEOM_AssemblyBuilder.cxx +++ b/src/OBJECT/GEOM_AssemblyBuilder.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : GEOM_AssemblyBuilder.cxx -// Created : Wed Feb 20 17:24:59 2002 -// Author : Christophe ATTANASIO -// Project : SALOME -// Module : GEOM -// Copyright : Open CASCADE 2002 +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_AssemblyBuilder.cxx +// Author : Christophe ATTANASIO +// Module : GEOM // $Header$ +using namespace std; /*! \class GEOM_AssemblyBuilder GEOM_AssemblyBuilder.h \brief .... @@ -26,6 +46,7 @@ using namespace std; #include #include #include +#include // SALOME @@ -143,6 +164,18 @@ vtkActorCollection* GEOM_AssemblyBuilder::BuildActors(const TopoDS_Shape& myShap vtkActorCollection* AISActors = vtkActorCollection::New(); + if(myShape.ShapeType() == TopAbs_COMPOUND) { + TopoDS_Iterator anItr(myShape); + for(; anItr.More(); anItr.Next()) { + vtkActorCollection* theActors = GEOM_AssemblyBuilder::BuildActors(anItr.Value(), deflection, mode, forced); + theActors->InitTraversal(); + vtkActor* anActor = (vtkActor*)theActors->GetNextActor(); + while(!(anActor==NULL)) { + AISActors->AddItem(anActor); + anActor = (vtkActor*)theActors->GetNextActor(); + } + } + } // Create graphics properties vtkProperty* IsoProp = vtkProperty::New(); @@ -160,7 +193,7 @@ vtkActorCollection* GEOM_AssemblyBuilder::BuildActors(const TopoDS_Shape& myShap MeshShape(myShape,deflection,forced); - if ( myShape.ShapeType() <= 4 ) { + if ( myShape.ShapeType() <= 4 && myShape.ShapeType() != TopAbs_COMPOUND) { // FACE Actor // look if edges are free or shared diff --git a/src/OBJECT/GEOM_AssemblyBuilder.h b/src/OBJECT/GEOM_AssemblyBuilder.h index abe459b91..a396b9e25 100644 --- a/src/OBJECT/GEOM_AssemblyBuilder.h +++ b/src/OBJECT/GEOM_AssemblyBuilder.h @@ -1,12 +1,31 @@ -// File : GEOM_AssemblyBuilder.h -// Created : Wed Feb 20 17:24:59 2002 -// Author : Christophe ATTANASIO -// Project : SALOME -// Module : GEOM -// Copyright : Open CASCADE 2002 +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_AssemblyBuilder.h +// Author : Christophe ATTANASIO +// Module : GEOM // $Header$ -// VTK #include #include #include diff --git a/src/OBJECT/GEOM_InteractiveObject.cxx b/src/OBJECT/GEOM_InteractiveObject.cxx index b8c484e4d..892cd143c 100644 --- a/src/OBJECT/GEOM_InteractiveObject.cxx +++ b/src/OBJECT/GEOM_InteractiveObject.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : GEOM_InteractiveObject.cxx -// Created : Wed Feb 20 17:24:59 2002 -// Author : Christophe ATTANASIO -// Project : SALOME -// Module : GEOM -// Copyright : Open CASCADE 2002 +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_InteractiveObject.cxx +// Author : Christophe ATTANASIO +// Module : GEOM // $Header$ +using namespace std; /*! \class GEOM_InteractiveObject GEOM_InteractiveObject.hxx \brief .... diff --git a/src/OBJECT/GEOM_InteractiveObject.hxx b/src/OBJECT/GEOM_InteractiveObject.hxx index 94325174a..a14c40783 100644 --- a/src/OBJECT/GEOM_InteractiveObject.hxx +++ b/src/OBJECT/GEOM_InteractiveObject.hxx @@ -1,18 +1,29 @@ -// File generated by CPPExt (Transient) +// GEOM OBJECT : interactive object for Geometry entities visualization // -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org // +// +// +// File : GEOM_InteractiveObject.hxx +// Module : GEOM + #ifndef _GEOM_InteractiveObject_HeaderFile #define _GEOM_InteractiveObject_HeaderFile diff --git a/src/OBJECT/GEOM_InteractiveObject.ixx b/src/OBJECT/GEOM_InteractiveObject.ixx index 96844009f..dccdbb94b 100644 --- a/src/OBJECT/GEOM_InteractiveObject.ixx +++ b/src/OBJECT/GEOM_InteractiveObject.ixx @@ -1,17 +1,29 @@ -// File generated by CPPExt (Transient) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM OBJECT : interactive object for Geometry entities visualization // +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_InteractiveObject.ixx +// Module : GEOM + #include "GEOM_InteractiveObject.jxx" #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/OBJECT/GEOM_InteractiveObject.jxx b/src/OBJECT/GEOM_InteractiveObject.jxx index 1f74c76f4..8884bdc8b 100644 --- a/src/OBJECT/GEOM_InteractiveObject.jxx +++ b/src/OBJECT/GEOM_InteractiveObject.jxx @@ -1,3 +1,29 @@ +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_InteractiveObject.jxx +// Module : GEOM + #ifndef _SALOME_InteractiveObject_HeaderFile #include "SALOME_InteractiveObject.hxx" #endif diff --git a/src/OBJECT/GEOM_OCCReader.cxx b/src/OBJECT/GEOM_OCCReader.cxx index 37edbea44..500fdd356 100644 --- a/src/OBJECT/GEOM_OCCReader.cxx +++ b/src/OBJECT/GEOM_OCCReader.cxx @@ -1,19 +1,39 @@ -using namespace std; -// File : GEOM_OCCReader.h -// Created : Wed Feb 20 17:24:59 2002 -// Author : Christophe ATTANASIO -// Project : SALOME -// Module : GEOM -// Copyright : Open CASCADE 2002 +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_OCCReader.h +// Author : Christophe ATTANASIO +// Module : GEOM // $Header$ +using namespace std; #include "GEOM_OCCReader.h" // SALOME Includes #include "utilities.h" // VTK Includes -#include +#include "VTKViewer_Common.h" #include // OpenCASCADE Includes diff --git a/src/OBJECT/GEOM_OCCReader.h b/src/OBJECT/GEOM_OCCReader.h index 3c3b7204a..87247f3ec 100644 --- a/src/OBJECT/GEOM_OCCReader.h +++ b/src/OBJECT/GEOM_OCCReader.h @@ -1,9 +1,29 @@ -// File : GEOM_OCCReader.h -// Created : Wed Feb 20 17:24:59 2002 -// Author : Christophe ATTANASIO -// Project : SALOME -// Module : GEOM -// Copyright : Open CASCADE 2002 +// GEOM OBJECT : interactive object for Geometry entities visualization +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : GEOM_OCCReader.h +// Author : Christophe ATTANASIO +// Module : GEOM // $Header$ /*! @@ -15,9 +35,7 @@ #define GEOM_OCCREADER_H // VTK -#include -#include -#include +#include "VTKViewer_Common.h" // OpenCASCADE #include diff --git a/src/OBJECT/Handle_GEOM_AISShape.hxx b/src/OBJECT/Handle_GEOM_AISShape.hxx index 2642cefa3..af8efe053 100644 --- a/src/OBJECT/Handle_GEOM_AISShape.hxx +++ b/src/OBJECT/Handle_GEOM_AISShape.hxx @@ -1,17 +1,28 @@ -// File generated by CPPExt (Transient) +// GEOM OBJECT : interactive object for Geometry entities visualization // -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Handle_GEOM_AISShape.hxx +// Module : GEOM #ifndef _Handle_GEOM_AISShape_HeaderFile #define _Handle_GEOM_AISShape_HeaderFile diff --git a/src/OBJECT/Handle_GEOM_InteractiveObject.hxx b/src/OBJECT/Handle_GEOM_InteractiveObject.hxx index b310ef892..63c0e8e3f 100644 --- a/src/OBJECT/Handle_GEOM_InteractiveObject.hxx +++ b/src/OBJECT/Handle_GEOM_InteractiveObject.hxx @@ -1,17 +1,28 @@ -// File generated by CPPExt (Transient) +// GEOM OBJECT : interactive object for Geometry entities visualization // -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Handle_GEOM_InteractiveObject.hxx +// Module : GEOM #ifndef _Handle_GEOM_InteractiveObject_HeaderFile #define _Handle_GEOM_InteractiveObject_HeaderFile diff --git a/src/OBJECT/Makefile.in b/src/OBJECT/Makefile.in index 8e93d0916..392aadacc 100644 --- a/src/OBJECT/Makefile.in +++ b/src/OBJECT/Makefile.in @@ -1,8 +1,33 @@ -# source path +# GEOM OBJECT : interactive object for Geometry entities visualization +# +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +# +# +# +# File : Makefile.in +# Module : GEOM + top_srcdir=@top_srcdir@ -top_builddir=../.. +top_builddir=../../.. srcdir=@srcdir@ -VPATH=.:$(srcdir):$(top_srcdir)/idl:$(top_builddir)/idl +VPATH=.:@srcdir@:@top_srcdir@/idl @COMMENCE@ diff --git a/src/PARTITION/Makefile.in b/src/PARTITION/Makefile.in index a112237a0..b7834ca67 100644 --- a/src/PARTITION/Makefile.in +++ b/src/PARTITION/Makefile.in @@ -1,15 +1,35 @@ -# -* Makefile *- +# GEOM PARTITION : partition algorithm # -# Author : Marc Tajchman (CEA) -# Date : 5/07/2001 -# $Header$ +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org # +# +# +# File : Makefile.in +# Author : Marc Tajchman (CEA) +# Module : GEOM +# $Header$ -# source path top_srcdir=@top_srcdir@ -top_builddir=../.. +top_builddir=../../.. srcdir=@srcdir@ -VPATH=.:$(srcdir):$(top_srcdir)/idl:$(top_builddir)/idl +VPATH=.:@srcdir@ @COMMENCE@ diff --git a/src/PARTITION/Partition.cdl b/src/PARTITION/Partition.cdl index 0d17392dd..9b1bf2287 100644 --- a/src/PARTITION/Partition.cdl +++ b/src/PARTITION/Partition.cdl @@ -1,9 +1,29 @@ --- File : Partition.cdl --- Created: Thu Aug 02 16:07:39 2001 --- Author : Benedicte MARTIN --- ----Copyright: OPEN CASCADE 2001 - +-- GEOM PARTITION : partition algorithm +-- +-- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +-- +-- +-- +-- File : Partition.cdl +-- Author : Benedicte MARTIN +-- Module : GEOM package Partition diff --git a/src/PARTITION/Partition_Inter2d.cdl b/src/PARTITION/Partition_Inter2d.cdl index 356735c20..a3a4d15d2 100644 --- a/src/PARTITION/Partition_Inter2d.cdl +++ b/src/PARTITION/Partition_Inter2d.cdl @@ -1,8 +1,29 @@ --- File : Partition_Inter2d.cdl --- Created: Thu Aug 02 16:07:39 2001 --- Author : Benedicte MARTIN --- ----Copyright: OPEN CASCADE 2001 +-- GEOM PARTITION : partition algorithm +-- +-- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +-- +-- +-- +-- File : Partition_Inter2d.cdl +-- Author : Benedicte MARTIN +-- Module : GEOM class Inter2d from Partition diff --git a/src/PARTITION/Partition_Inter2d.cxx b/src/PARTITION/Partition_Inter2d.cxx index 2c67c1660..e15bf24e3 100644 --- a/src/PARTITION/Partition_Inter2d.cxx +++ b/src/PARTITION/Partition_Inter2d.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : Partition_Inter2d.cxx -// Created : Thu Aug 02 16:17:31 2001 -// Author : Benedicte MARTIN -// Project : SALOME -// Module : PARTITION -// Copyright : Open CASCADE +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Inter2d.cxx +// Author : Benedicte MARTIN +// Module : GEOM // $Header$ +using namespace std; #include "Partition_Inter2d.ixx" #include "utilities.h" diff --git a/src/PARTITION/Partition_Inter2d.hxx b/src/PARTITION/Partition_Inter2d.hxx index 800b382ab..7d82aa34b 100644 --- a/src/PARTITION/Partition_Inter2d.hxx +++ b/src/PARTITION/Partition_Inter2d.hxx @@ -1,16 +1,28 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Inter2d.hxx +// Module : GEOM #ifndef _Partition_Inter2d_HeaderFile #define _Partition_Inter2d_HeaderFile diff --git a/src/PARTITION/Partition_Inter2d.ixx b/src/PARTITION/Partition_Inter2d.ixx index dc6a48377..963d1ec17 100644 --- a/src/PARTITION/Partition_Inter2d.ixx +++ b/src/PARTITION/Partition_Inter2d.ixx @@ -1,17 +1,29 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm // +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Inter2d.ixx +// Module : GEOM + #include "Partition_Inter2d.jxx" diff --git a/src/PARTITION/Partition_Inter2d.jxx b/src/PARTITION/Partition_Inter2d.jxx index bd005fc99..8c3ef7d49 100644 --- a/src/PARTITION/Partition_Inter2d.jxx +++ b/src/PARTITION/Partition_Inter2d.jxx @@ -1,3 +1,29 @@ +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Inter2d.jxx +// Module : GEOM + #ifndef _BRepAlgo_AsDes_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Inter3d.cdl b/src/PARTITION/Partition_Inter3d.cdl index 2e4bac3cc..38c504aee 100644 --- a/src/PARTITION/Partition_Inter3d.cdl +++ b/src/PARTITION/Partition_Inter3d.cdl @@ -1,9 +1,29 @@ --- File : Partition_Inter3d.cdl --- Created: Thu Aug 02 16:07:39 2001 --- Author : Benedicte MARTIN --- ----Copyright: OPEN CASCADE 2001 - +-- GEOM PARTITION : partition algorithm +-- +-- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +-- +-- +-- +-- File : Partition_Inter3d.cdl +-- Author : Benedicte MARTIN +-- Module : GEOM class Inter3d from Partition @@ -89,8 +109,8 @@ is IsSectionEdge (me; E : Edge from TopoDS) returns Boolean from Standard; - ---Purpose: return True if E is an edge of a face and it - -- intersects an other face + ---Purpose: return True if E is an edge of an initial face and + -- E intersects aother face HasSectionEdge (me; F : Face from TopoDS) returns Boolean from Standard; diff --git a/src/PARTITION/Partition_Inter3d.cxx b/src/PARTITION/Partition_Inter3d.cxx index d7156f83c..dc7e4606c 100644 --- a/src/PARTITION/Partition_Inter3d.cxx +++ b/src/PARTITION/Partition_Inter3d.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : Partition_Inter3d.cxx -// Created : Thu Aug 02 16:20:37 2001 -// Author : Benedicte MARTIN -// Project : SALOME -// Module : PARTITION -// Copyright : Open CASCADE +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Inter3d.cxx +// Author : Benedicte MARTIN +// Module : GEOM // $Header$ +using namespace std; #include "Partition_Inter3d.ixx" #include "Partition_Inter2d.hxx" #include "utilities.h" diff --git a/src/PARTITION/Partition_Inter3d.hxx b/src/PARTITION/Partition_Inter3d.hxx index 771b3044b..57e8da43f 100644 --- a/src/PARTITION/Partition_Inter3d.hxx +++ b/src/PARTITION/Partition_Inter3d.hxx @@ -1,16 +1,28 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Inter3d.hxx +// Module : GEOM #ifndef _Partition_Inter3d_HeaderFile #define _Partition_Inter3d_HeaderFile diff --git a/src/PARTITION/Partition_Inter3d.ixx b/src/PARTITION/Partition_Inter3d.ixx index 3e5e64d03..0775cc99c 100644 --- a/src/PARTITION/Partition_Inter3d.ixx +++ b/src/PARTITION/Partition_Inter3d.ixx @@ -1,17 +1,29 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm // +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Inter3d.ixx +// Module : GEOM + #include "Partition_Inter3d.jxx" diff --git a/src/PARTITION/Partition_Inter3d.jxx b/src/PARTITION/Partition_Inter3d.jxx index 68d27a450..5804ba81e 100644 --- a/src/PARTITION/Partition_Inter3d.jxx +++ b/src/PARTITION/Partition_Inter3d.jxx @@ -1,3 +1,29 @@ +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Inter3d.jxx +// Module : GEOM + #ifndef _BRepAlgo_AsDes_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Loop.cdl b/src/PARTITION/Partition_Loop.cdl index 7c9eebefe..eb6ec67a9 100644 --- a/src/PARTITION/Partition_Loop.cdl +++ b/src/PARTITION/Partition_Loop.cdl @@ -1,9 +1,29 @@ --- File : Partition_Loop.cdl --- Created: Thu Aug 02 16:07:39 2001 --- Author : Benedicte MARTIN --- ----Copyright: Matra Datavision 2001 - +-- GEOM PARTITION : partition algorithm +-- +-- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +-- +-- +-- +-- File : Partition_Loop.cdl +-- Author : Benedicte MARTIN +-- Module : GEOM class Loop from Partition diff --git a/src/PARTITION/Partition_Loop.cxx b/src/PARTITION/Partition_Loop.cxx index b5a343347..29386de22 100644 --- a/src/PARTITION/Partition_Loop.cxx +++ b/src/PARTITION/Partition_Loop.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : Partition_Loop.cxx -// Created : Thu Aug 02 16:25:17 2001 -// Author : Benedicte MARTIN -// Project : SALOME -// Module : PARTITION -// Copyright : Open CASCADE +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Loop.cxx +// Author : Benedicte MARTIN +// Module : GEOM // $Header$ +using namespace std; #include #include "Partition_Loop.ixx" diff --git a/src/PARTITION/Partition_Loop.hxx b/src/PARTITION/Partition_Loop.hxx index ab94dc94b..9e9226d9d 100644 --- a/src/PARTITION/Partition_Loop.hxx +++ b/src/PARTITION/Partition_Loop.hxx @@ -1,16 +1,28 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Loop.hxx +// Module : GEOM #ifndef _Partition_Loop_HeaderFile #define _Partition_Loop_HeaderFile diff --git a/src/PARTITION/Partition_Loop.ixx b/src/PARTITION/Partition_Loop.ixx index 20d125d72..1c40e7254 100644 --- a/src/PARTITION/Partition_Loop.ixx +++ b/src/PARTITION/Partition_Loop.ixx @@ -1,17 +1,29 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm // +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Loop.ixx +// Module : GEOM + #include "Partition_Loop.jxx" diff --git a/src/PARTITION/Partition_Loop.jxx b/src/PARTITION/Partition_Loop.jxx index 3be89a204..dd86f05c3 100644 --- a/src/PARTITION/Partition_Loop.jxx +++ b/src/PARTITION/Partition_Loop.jxx @@ -1,3 +1,29 @@ +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Loop.jxx +// Module : GEOM + #ifndef _TopoDS_Face_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Loop2d.cdl b/src/PARTITION/Partition_Loop2d.cdl index 4f4cb80cc..7a6656e76 100644 --- a/src/PARTITION/Partition_Loop2d.cdl +++ b/src/PARTITION/Partition_Loop2d.cdl @@ -1,9 +1,12 @@ --- File : Partition_Loop2d.cdl --- Created: Thu Aug 02 16:07:39 2001 --- Author : Benedicte MARTIN --- ----Copyright: OPEN CASCADE 2001 - +-- GEOM PARTITION : partition algorithm +-- +-- Copyright (C) 2003 CEA/DEN, EDF R&D +-- +-- +-- +-- File : Partition_Loop2d.cdl +-- Author : Benedicte MARTIN +-- Module : GEOM class Loop2d from Partition diff --git a/src/PARTITION/Partition_Loop2d.cxx b/src/PARTITION/Partition_Loop2d.cxx index 24cc066ea..1e0a25787 100644 --- a/src/PARTITION/Partition_Loop2d.cxx +++ b/src/PARTITION/Partition_Loop2d.cxx @@ -1,13 +1,15 @@ -using namespace std; -// File : Partition_Loop2d.cxx -// Created : Thu Aug 02 16:25:17 2001 -// Author : Benedicte MARTIN -// Project : SALOME -// Module : PARTITION -// Copyright : Open CASCADE +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : Partition_Loop2d.cxx +// Author : Benedicte MARTIN +// Module : GEOM // $Header$ - +using namespace std; #include "Partition_Loop2d.ixx" #include "utilities.h" diff --git a/src/PARTITION/Partition_Loop2d.hxx b/src/PARTITION/Partition_Loop2d.hxx index 9e4996219..2310e1581 100644 --- a/src/PARTITION/Partition_Loop2d.hxx +++ b/src/PARTITION/Partition_Loop2d.hxx @@ -1,16 +1,11 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : Partition_Loop2d.hxx +// Module : GEOM #ifndef _Partition_Loop2d_HeaderFile #define _Partition_Loop2d_HeaderFile diff --git a/src/PARTITION/Partition_Loop2d.ixx b/src/PARTITION/Partition_Loop2d.ixx index f0e328e6c..2d35fd5c7 100644 --- a/src/PARTITION/Partition_Loop2d.ixx +++ b/src/PARTITION/Partition_Loop2d.ixx @@ -1,17 +1,12 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm // +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : Partition_Loop2d.ixx +// Module : GEOM + #include "Partition_Loop2d.jxx" diff --git a/src/PARTITION/Partition_Loop2d.jxx b/src/PARTITION/Partition_Loop2d.jxx index eab73c9d1..555c16c80 100644 --- a/src/PARTITION/Partition_Loop2d.jxx +++ b/src/PARTITION/Partition_Loop2d.jxx @@ -1,3 +1,12 @@ +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : Partition_Loop2d.jxx +// Module : GEOM + #ifndef _TopoDS_Face_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Loop3d.cdl b/src/PARTITION/Partition_Loop3d.cdl index 19b346c5e..435fef6d5 100644 --- a/src/PARTITION/Partition_Loop3d.cdl +++ b/src/PARTITION/Partition_Loop3d.cdl @@ -1,6 +1,11 @@ --- File: Partition_Loop3d.cdl --- Created: Mon Oct 21 09:47:19 2002 ----Copyright: OPEN CASCADE 2002 +-- GEOM PARTITION : partition algorithm +-- +-- Copyright (C) 2003 CEA/DEN, EDF R&D +-- +-- +-- +-- File : Partition_Loop3d.cdl +-- Module : GEOM class Loop3d from Partition diff --git a/src/PARTITION/Partition_Loop3d.cxx b/src/PARTITION/Partition_Loop3d.cxx index f1759f685..cb5ecff04 100644 --- a/src/PARTITION/Partition_Loop3d.cxx +++ b/src/PARTITION/Partition_Loop3d.cxx @@ -1,8 +1,13 @@ -using namespace std; -// File : Partition_Loop3d.cxx -// Created : Mon Oct 21 09:47:19 2002 -// Copyright : Open CASCADE +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : Partition_Loop3d.cxx +// Module : GEOM +using namespace std; #include "Partition_Loop3d.ixx" #include diff --git a/src/PARTITION/Partition_Loop3d.hxx b/src/PARTITION/Partition_Loop3d.hxx index f5668a2f8..b946b32df 100644 --- a/src/PARTITION/Partition_Loop3d.hxx +++ b/src/PARTITION/Partition_Loop3d.hxx @@ -1,16 +1,11 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : Partition_Loop3d.hxx +// Module : GEOM #ifndef _Partition_Loop3d_HeaderFile #define _Partition_Loop3d_HeaderFile diff --git a/src/PARTITION/Partition_Loop3d.ixx b/src/PARTITION/Partition_Loop3d.ixx index 3ccad8787..a661b3242 100644 --- a/src/PARTITION/Partition_Loop3d.ixx +++ b/src/PARTITION/Partition_Loop3d.ixx @@ -1,17 +1,12 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm // +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : Partition_Loop3d.ixx +// Module : GEOM + #include "Partition_Loop3d.jxx" diff --git a/src/PARTITION/Partition_Loop3d.jxx b/src/PARTITION/Partition_Loop3d.jxx index 7fbfaa621..9b654f41b 100644 --- a/src/PARTITION/Partition_Loop3d.jxx +++ b/src/PARTITION/Partition_Loop3d.jxx @@ -1,3 +1,12 @@ +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : Partition_Loop3d.jxx +// Module : GEOM + #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Spliter.cdl b/src/PARTITION/Partition_Spliter.cdl index 492763ec7..252e94b0b 100644 --- a/src/PARTITION/Partition_Spliter.cdl +++ b/src/PARTITION/Partition_Spliter.cdl @@ -1,7 +1,29 @@ --- File : Partition_Spliter.cdl --- Created: Thu Aug 02 16:07:39 2001 --- Author : Benedicte MARTIN ----Copyright: OPEN CASCADE 2001 +-- GEOM PARTITION : partition algorithm +-- +-- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +-- +-- +-- +-- File : Partition_Spliter.cdl +-- Author : Benedicte MARTIN +-- Module : GEOM class Spliter from Partition @@ -138,5 +160,6 @@ fields -- shape and its internal faces myInternalFaces: DataMapOfShapeShape from TopTools; + myIntNotClFaces: DataMapOfShapeShape from TopTools;-- internal but not closed end Spliter; diff --git a/src/PARTITION/Partition_Spliter.cxx b/src/PARTITION/Partition_Spliter.cxx index 1fe235f0b..502fbc956 100644 --- a/src/PARTITION/Partition_Spliter.cxx +++ b/src/PARTITION/Partition_Spliter.cxx @@ -1,12 +1,32 @@ -using namespace std; -// File : Partition_Spliter.cxx -// Created : Thu Aug 02 16:07:39 2001 -// Author : Benedicte MARTIN -// Project : SALOME -// Module : SALOMEGUI -// Copyright : Open CASCADE +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Spliter.cxx +// Author : Benedicte MARTIN +// Module : GEOM // $Header$ +using namespace std; #include "Partition_Spliter.ixx" #include "Partition_Inter2d.hxx" #include "Partition_Inter3d.hxx" @@ -676,66 +696,85 @@ void Partition_Spliter::MakeEdges (const TopoDS_Edge& E, //======================================================================= //function : FindFacesInside //purpose : return compound of faces of other shapes that are -// inside . -// is an object shape. +// inside . +// is an object shape. // makes avoid faces that do not form a // closed shell // makes return already added faces //======================================================================= -TopoDS_Shape Partition_Spliter::FindFacesInside(const TopoDS_Shape& S, +TopoDS_Shape Partition_Spliter::FindFacesInside(const TopoDS_Shape& theShape, const Standard_Boolean CheckClosed, const Standard_Boolean All) { - if (myInternalFaces.IsBound( S )) - return myInternalFaces.Find ( S ); - - TopoDS_Compound C; - myBuilder.MakeCompound(C); - - const TopoDS_Shape& SS = myImageShape.Image(S).First(); // compound of split faces of S - - TopTools_MapOfShape MSE, MPF; - TopTools_DataMapOfShapeListOfShape MEF; - TopTools_MapIteratorOfMapOfShape itm; TopExp_Explorer expl; - TopTools_ListOfShape Empty; + if (myInternalFaces.IsBound( theShape )) + { + TopoDS_Shape aIntFComp = myInternalFaces.Find ( theShape ); + TopoDS_Shape aIntRemFComp = myIntNotClFaces.Find ( theShape ); - // MSE filling: map of section edges of SS - for (expl.Init(SS,TopAbs_EDGE); expl.More(); expl.Next()) { + expl.Init( aIntRemFComp, TopAbs_FACE); + if (CheckClosed || !expl.More()) + return aIntFComp; + + TopoDS_Compound C; + myBuilder.MakeCompound( C ); + // add removed faces + for (; expl.More(); expl.Next()) + myBuilder.Add( C, expl.Current() ); + // add good internal faces + for (expl.Init( aIntFComp, TopAbs_FACE); expl.More(); expl.Next()) + myBuilder.Add( C, expl.Current() ); + return C; + } + + // compound of split faces of theShape + const TopoDS_Shape& CSF = myImageShape.Image(theShape).First(); + + TopTools_MapOfShape MSE, MFP; + TopTools_DataMapOfShapeListOfShape DMSEFP; + TopTools_MapIteratorOfMapOfShape itm; + TopTools_ListOfShape EmptyL; + + // MSE filling: map of new section edges of CSF + for (expl.Init(CSF,TopAbs_EDGE); expl.More(); expl.Next()) { TopoDS_Shape resE = expl.Current() ; - if (myNewSection.Contains( resE )) + if (myNewSection.Contains( resE )) // only new edges MSE.Add(resE); } - // 1. MPF filling: map of resulting faces except those of S, - // we`ll add to C those of them which are inside SS - // 2. MEF filling: edge of MSE => faces of MPF + // DMEF: map edge of CSF - faces of CSF + TopTools_IndexedDataMapOfShapeListOfShape DMEF; + TopExp::MapShapesAndAncestors(CSF, TopAbs_EDGE, TopAbs_FACE, DMEF); + + // Fill + // 1. MFP - a map of faces to process: map of resulting faces except + // those of theShape; we`ll add to C those of them which are inside CSF + // 2. DMSEFP - edge of MSE => faces of MFP TopTools_ListIteratorOfListOfShape itl; for (itl.Initialize(myListShapes);itl.More();itl.Next()) { - const TopoDS_Shape& SL = itl.Value(); - if ( S.IsSame( SL )) continue; + const TopoDS_Shape& aShape = itl.Value(); + if ( theShape.IsSame( aShape )) continue; // fill maps - TopoDS_Iterator itF ( myImageShape.Image(SL).First() ); + // iterate on split faces of aShape + TopoDS_Iterator itF ( myImageShape.Image(aShape).First() ); for ( ; itF.More(); itF.Next()) { - const TopoDS_Shape& snf = itF.Value(); - MPF.Add(snf); - for (expl.Init( snf, TopAbs_EDGE ); expl.More(); expl.Next()) { + const TopoDS_Shape& sf = itF.Value(); + MFP.Add(sf); + // iterate on edges of split faces of aShape, + // add to DMSEFP edges that are new + for (expl.Init( sf, TopAbs_EDGE ); expl.More(); expl.Next()) { TopoDS_Shape se = expl.Current(); if ( MSE.Contains(se)) {// section edge - if (!MEF.IsBound(se)) - MEF.Bind(se,Empty); - MEF(se).Append(snf); + if (!DMSEFP.IsBound(se)) + DMSEFP.Bind(se,EmptyL); + DMSEFP(se).Append(sf); } } } } - - // MSEF: map edge of SS - faces of SS - TopTools_IndexedDataMapOfShapeListOfShape MSEF; - TopExp::MapShapesAndAncestors(SS, TopAbs_EDGE, TopAbs_FACE, MSEF); - // find faces inside S + // find faces inside theShape Standard_Boolean skipAlreadyAdded = Standard_False; Standard_Boolean GoodOri, inside; @@ -743,60 +782,72 @@ TopoDS_Shape Partition_Spliter::FindFacesInside(const TopoDS_Shape& S, TopTools_ListOfShape KeepFaces; TopTools_DataMapIteratorOfDataMapOfShapeListOfShape Mapit; - for (Mapit.Initialize(MEF); Mapit.More() ; Mapit.Next() ) { - TopoDS_Edge E = TopoDS::Edge (Mapit.Key()); - TopoDS_Edge OrigE = TopoDS::Edge ( myImagesEdges.Root( E )); + // iterate on section edges, check faces of other shapes + // sharing section edges and put internal faces to KeepFaces + for (Mapit.Initialize(DMSEFP); Mapit.More() ; Mapit.Next() ) { + // a new edge of theShape + const TopoDS_Edge& E = TopoDS::Edge (Mapit.Key()); + // an original edge of which E is a split + const TopoDS_Edge& OrigE = TopoDS::Edge ( myImagesEdges.Root( E )); + // is OrigE itself splits a face Standard_Boolean isSectionE = myInter3d.IsSectionEdge ( OrigE ); - TopTools_ListOfShape& EF = MEF.ChangeFind(E); - itl.Initialize( EF ); + // split faces of other shapes sharing E + TopTools_ListOfShape& LSF = DMSEFP.ChangeFind(E); + itl.Initialize( LSF ); while (itl.More()) { - TopoDS_Face face1 = TopoDS::Face(itl.Value()); - EF.Remove( itl ); // == itl.Next(); - if (!MPF.Remove( face1 )) - continue; // was not is MPF ( i.e already checked) + // a split faces of other shape + TopoDS_Face aFace1 = TopoDS::Face(itl.Value()); + // remove aFace1 form DMSEFP and MFP + LSF.Remove( itl ); // == itl.Next(); + if (!MFP.Remove( aFace1 )) + continue; // was not is MFP ( i.e already checked) + // check if aFace1 was already added to 2 shells if (!All && - myAddedFacesMap.Contains( face1 ) && - myAddedFacesMap.Contains( face1.Reversed() )) { + myAddedFacesMap.Contains( aFace1 ) && + myAddedFacesMap.Contains( aFace1.Reversed() )) { skipAlreadyAdded = Standard_True; - continue; // already added to 2 shells + continue; } - // find another face which originates from the same face as - const TopoDS_Shape& origS = myImagesFaces.Root(face1); - TopoDS_Shape face2; + // find another face which originates from the same face as aFace1: + // usually aFace2 is internal if aFace1 is not and vice versa + + const TopoDS_Shape& anOrigFace = myImagesFaces.Root(aFace1); + TopoDS_Shape aFace2; if ( !isSectionE ) { while (itl.More()) { - face2 = itl.Value(); - if (!MPF.Contains( face2 )) { - EF.Remove( itl ); + aFace2 = itl.Value(); + if (!MFP.Contains( aFace2 )) { + LSF.Remove( itl ); continue; } - if (origS.IsSame( myImagesFaces.Root( face2 ))) + if (anOrigFace.IsSame( myImagesFaces.Root( aFace2 ))) break; itl.Next(); } - if (itl.More()) { // face2 found - EF.Remove( itl ); - MPF.Remove(face2); + if (itl.More()) { // aFace2 found, remove it from maps + LSF.Remove( itl ); + MFP.Remove(aFace2); } else - face2.Nullify(); - itl.Initialize( EF ); + aFace2.Nullify(); + itl.Initialize( LSF ); } - // check that origS is not same domain with SS - Standard_Boolean sameDom1 = 0, sameDom2 = 0; - const TopTools_ListOfShape& FL = MSEF.FindFromKey(E); //faces of SS sharing E + // check that anOrigFace is not same domain with CSF faces it intersects + + const TopTools_ListOfShape& FL = DMEF.FindFromKey(E); //faces of CSF sharing E const TopoDS_Shape& origF1 = myImagesFaces.Root(FL.First()); const TopoDS_Shape& origF2 = myImagesFaces.Root(FL.Last()); - if (origS.IsSame( origF1 )) - sameDom1 = Standard_True; - if ( origS.IsSame( origF2 )) - sameDom2 = Standard_True; - if (!(sameDom1 || sameDom2) && myInter3d.HasSameDomainF( origS )) { - sameDom1 = myInter3d.IsSameDomainF( origS, origF1); - sameDom2 = (origF1 == origF2) ? sameDom1 : myInter3d.IsSameDomainF( origS, origF2); + Standard_Boolean sameDom1 = anOrigFace.IsSame( origF1 ); + Standard_Boolean sameDom2 = anOrigFace.IsSame( origF2 ); + if (!(sameDom1 || sameDom2) && myInter3d.HasSameDomainF( anOrigFace )) { + sameDom1 = myInter3d.IsSameDomainF( anOrigFace, origF1); + if (origF1 == origF2) + sameDom2 = sameDom1; + else + myInter3d.IsSameDomainF( anOrigFace, origF2); } if (sameDom1 && sameDom2) continue; @@ -808,100 +859,133 @@ TopoDS_Shape Partition_Spliter::FindFacesInside(const TopoDS_Shape& S, if (inside || (dot + Precision::Angular() >= 1.0)) continue; // E is convex between origF1 and origF2 or they are tangent } - - + + // keep one of found faces - const TopoDS_Shape& SFace = sameDom1 ? FL.Last() : FL.First(); //face of SS sharing E - inside = Partition_Loop3d::IsInside (E, TopoDS::Face(SFace), face1, + + //face of CSF sharing E + const TopoDS_Shape& aShapeFace = sameDom1 ? FL.Last() : FL.First(); + // analyse aFace1 state + inside = Partition_Loop3d::IsInside (E, TopoDS::Face(aShapeFace), aFace1, 1, dot, GoodOri); - if ((dot + Precision::Angular() >= 1.0) && - !face2.IsNull()) { // face2 position is not clear, it will be analysed alone - MPF.Add( face2 ); - EF.Append( face2 ); - face2.Nullify(); + // store internal face + if (inside) + KeepFaces.Append(aFace1); + else if (!aFace2.IsNull()) + { + if (dot + Precision::Angular() >= 1.0) + { + // aFace2 state is not clear, it will be analysed alone, + // put it back to the maps + MFP.Add( aFace2 ); + LSF.Append( aFace2 ); + } + else + KeepFaces.Append(aFace2); } - if (inside) - KeepFaces.Append(face1); - else - if (!face2.IsNull()) - KeepFaces.Append(face2); } } + // add not distributed faces connected with KeepFaces + + // ultimate list of internal faces TopTools_ListOfShape KeptFaces; - if (MPF.IsEmpty()) + + // add to MFP not split tool faces as well, they may be connected with + // tool faces interfering with theShape + for ( itm.Initialize(myMapTools); itm.More(); itm.Next() ) { + const TopoDS_Shape& aToolFace = itm.Key(); + if (!myImageShape.HasImage(aToolFace)) + MFP.Add (aToolFace); + } + + if (MFP.IsEmpty()) KeptFaces.Append (KeepFaces); - while (!KeepFaces.IsEmpty()) { - // add to KeepFaces not distributed faces connected with KeepFaces - - // KeepEdges : map of edges of kept faces + while (!KeepFaces.IsEmpty()) + { + // KeepEdges : map of edges of faces kept last time TopTools_IndexedMapOfShape KeepEdges; - for (itl.Initialize(KeepFaces);itl.More();itl.Next() ) + for ( itl.Initialize(KeepFaces); itl.More(); itl.Next() ) { TopExp::MapShapes( itl.Value(), TopAbs_EDGE, KeepEdges); + KeptFaces.Append( itl.Value() ); + } - KeptFaces.Append (KeepFaces); // == KeepFaces.Clear() - - // keep faces connected with already kept faces - for (itm.Initialize(MPF);itm.More();itm.Next() ) { - const TopoDS_Shape& PF = itm.Key(); - for (expl.Init(PF,TopAbs_EDGE); expl.More(); expl.Next()) { - const TopoDS_Shape& se = expl.Current(); - if (!MSE.Contains(se) && KeepEdges.Contains(se) ) { - KeepFaces.Append(PF); - MPF.Remove(PF); - break; - } + KeepFaces.Clear(); + + // keep faces connected with already kept faces by KeepEdges + for ( itm.Initialize(MFP); itm.More(); itm.Next() ) { + const TopoDS_Shape& FP = itm.Key(); + for (expl.Init(FP,TopAbs_EDGE); expl.More(); expl.Next()) { + const TopoDS_Shape& se = expl.Current(); + if (!MSE.Contains(se) && KeepEdges.Contains(se) ) { + KeepFaces.Append(FP); + MFP.Remove(FP); + break; + } } } } - // check if kept faces make shell without free edges - MSEF.Clear(); // edge - kept faces - MPF.Clear(); // wrong faces + // check if kept faces form a shell without free edges + + DMEF.Clear(); // edge - kept faces + MFP.Clear(); // wrong faces if (CheckClosed) { for (itl.Initialize(KeptFaces); itl.More(); itl.Next() ) - TopExp::MapShapesAndAncestors(itl.Value(), TopAbs_EDGE, TopAbs_FACE, MSEF); + TopExp::MapShapesAndAncestors(itl.Value(), TopAbs_EDGE, TopAbs_FACE, DMEF); - Standard_Integer i, nb = MSEF.Extent(); + Standard_Integer i, nb = DMEF.Extent(); Standard_Boolean isClosed = Standard_False; while (!isClosed) { isClosed = Standard_True; for (i=1; isClosed && i<=nb; ++i) { - const TopoDS_Shape& E = MSEF.FindKey( i ); - if (! MSE.Contains( E )) - isClosed = ( MSEF(i).Extent() != 1 ); + const TopoDS_Shape& E = DMEF.FindKey( i ); + if (! MSE.Contains( E )) + isClosed = ( DMEF(i).Extent() != 1 ); } if (!isClosed) { - const TopoDS_Shape& F = MSEF.FindFromIndex( i-1 ).First(); // bad face - MPF.Add( F ); - // remove bad face from MSEF - for (expl.Init( F, TopAbs_EDGE); expl.More(); expl.Next()) { + const TopoDS_Shape& F = DMEF.FindFromIndex( i-1 ).First(); // bad face + MFP.Add( F ); + // remove bad face from DMEF + for (expl.Init( F, TopAbs_EDGE); expl.More(); expl.Next()) { const TopoDS_Shape& E = expl.Current(); - TopTools_ListOfShape& FL = MSEF.ChangeFromKey( E ); - for (itl.Initialize( FL ); itl.More(); itl.Next() ) { - if ( F.IsSame( itl.Value() )) { - FL.Remove( itl ); - break; - } - } - } + TopTools_ListOfShape& FL = DMEF.ChangeFromKey( E ); + for (itl.Initialize( FL ); itl.More(); itl.Next() ) { + if ( F.IsSame( itl.Value() )) { + FL.Remove( itl ); + break; + } + } + } } } } - // add to the compound kept faces except bad ones in MPF - if (KeptFaces.Extent() > MPF.Extent()) { - for (itl.Initialize(KeptFaces); itl.More(); itl.Next() ) - if (! MPF.Contains( itl.Value() )) { - myBuilder.Add( C, itl.Value()); - //myBuilder.Add( C, itl.Value().Reversed()); - } + // a result compound + TopoDS_Compound C; + // compound of removed internal faces + TopoDS_Compound CNotCl; + + myBuilder.MakeCompound(C); + myBuilder.MakeCompound(CNotCl); + + // add to compounds + for (itl.Initialize(KeptFaces); itl.More(); itl.Next() ) + { + TopoDS_Shape & aIntFace = itl.Value(); + if (! MFP.Contains( aIntFace )) + myBuilder.Add( C, aIntFace); + else + myBuilder.Add( CNotCl, aIntFace); + } + + if (!skipAlreadyAdded && CheckClosed) + { + myInternalFaces.Bind( theShape, C ); + myIntNotClFaces.Bind( theShape, CNotCl ); } - if (!skipAlreadyAdded) - myInternalFaces.Bind( S, C ); - return C; } @@ -911,11 +995,11 @@ TopoDS_Shape Partition_Spliter::FindFacesInside(const TopoDS_Shape& S, //======================================================================= void Partition_Spliter::MakeShells(const TopoDS_Shape& S, - TopTools_ListOfShape& NS) + TopTools_ListOfShape& NS) { // check if S is closed shape Standard_Boolean isClosed = Standard_True; - + TopTools_IndexedDataMapOfShapeListOfShape MEF; Standard_Integer i; if (S.ShapeType() != TopAbs_SOLID) { @@ -1361,26 +1445,35 @@ void Partition_Spliter::KeepShapesInside (const TopoDS_Shape& S) KeepShapesInside( it.Value()); return; } - if (!myImageShape.HasImage( S ) && ! CheckTool( S )) - return; - + + Standard_Boolean isTool = Standard_False; + if (!myImageShape.HasImage( S )) { + isTool = CheckTool( S ); + if (!isTool) return; + } + + // build map of internal faces + TopTools_IndexedMapOfShape MIF; + + // if S is not a tool, make sure that split faces of S are in MIF + if (!isTool) + TopExp::MapShapes( myImageShape.Image(S).First(), TopAbs_FACE, MIF); + TopoDS_Shape InsFacesComp = FindFacesInside( S, Standard_False, Standard_True); - TopTools_IndexedMapOfShape MIF; // map of internal faces; TopExp::MapShapes( InsFacesComp, TopAbs_FACE, MIF ); - if (MIF.IsEmpty()) return; - - // leave in the result only those shapes having a face in MIF + TopoDS_Compound C; myBuilder.MakeCompound(C); - + + // leave in the result only those shapes having a face in MIF for (it.Initialize( myShape ); it.More(); it.Next()) { TopExp_Explorer expResF( it.Value(), TopAbs_FACE ); for (; expResF.More(); expResF.Next()) { if ( MIF.Contains( expResF.Current())) { - myBuilder.Add( C, it.Value() ); - break; + myBuilder.Add( C, it.Value() ); + break; } } } @@ -1406,7 +1499,7 @@ void Partition_Spliter::RemoveShapesInside (const TopoDS_Shape& S) isTool = CheckTool( S ); if (!isTool) return; } - + TopoDS_Shape InsFacesComp = FindFacesInside( S, Standard_False, Standard_True); TopTools_IndexedMapOfShape MIF; // map of internal faces TopExp::MapShapes( InsFacesComp, TopAbs_FACE, MIF); @@ -1414,7 +1507,7 @@ void Partition_Spliter::RemoveShapesInside (const TopoDS_Shape& S) if (MIF.IsEmpty()) return; // add to MIF split faces of S - if (myImageShape.HasImage( S )) + if (myImageShape.HasImage(S)) TopExp::MapShapes( myImageShape.Image(S).First(), TopAbs_FACE, MIF); // leave in the result only those shapes not having all face in MIF @@ -1431,7 +1524,7 @@ void Partition_Spliter::RemoveShapesInside (const TopoDS_Shape& S) for (; expResF.More(); expResF.Next()) if (!MIF.Contains( expResF.Current())) break; - + if (expResF.More()) // add shape to result myBuilder.Add( C, it.Value() ); @@ -1445,15 +1538,17 @@ void Partition_Spliter::RemoveShapesInside (const TopoDS_Shape& S) } if (!isTool) { + // rebuild S, it must remain in the result + Standard_Boolean isClosed = Standard_False; switch (S.ShapeType()) { case TopAbs_SOLID : isClosed = Standard_True; break; case TopAbs_SHELL: { TopTools_IndexedDataMapOfShapeListOfShape MEF; - Standard_Integer i; TopExp::MapShapesAndAncestors(S, TopAbs_EDGE, TopAbs_FACE, MEF); + Standard_Integer i; for (i=1; isClosed && i<=MEF.Extent(); ++i) isClosed = ( MEF(i).Extent() != 1 ); break; @@ -1462,27 +1557,42 @@ void Partition_Spliter::RemoveShapesInside (const TopoDS_Shape& S) isClosed = Standard_False; } if (isClosed) { + // add to a new shape external faces of removed shapes, ie those in RFM + TopoDS_Shell Shell; myBuilder.MakeShell( Shell ); + // exclude redundant internal face with edges encounterd only once + TopTools_IndexedDataMapOfShapeListOfShape MEF; TopTools_MapIteratorOfMapOfShape itF (RFM); for ( ; itF.More(); itF.Next()) - myBuilder.Add( Shell, itF.Key()); + TopExp::MapShapesAndAncestors(itF.Key(), TopAbs_EDGE, TopAbs_FACE, MEF); + + // add only faces forming a closed shell + for (itF.Reset() ; itF.More(); itF.Next()) + { + TopExp_Explorer expE (itF.Key(), TopAbs_EDGE); + for (; expE.More(); expE.Next()) + if (MEF.FindFromKey(expE.Current()).Extent() == 1) + break; + if (!expE.More()) + myBuilder.Add( Shell, itF.Key()); + } if (S.ShapeType() == TopAbs_SOLID) { - TopoDS_Solid Solid; - myBuilder.MakeSolid( Solid ); - myBuilder.Add (Solid, Shell); - myBuilder.Add (C, Solid); + TopoDS_Solid Solid; + myBuilder.MakeSolid( Solid ); + myBuilder.Add (Solid, Shell); + myBuilder.Add (C, Solid); } else - myBuilder.Add (C, Shell); + myBuilder.Add (C, Shell); } else { if (myImageShape.HasImage( S )) { - for (it.Initialize( myImageShape.Image(S).First()); it.More(); it.Next()) - myBuilder.Add (C, it.Value()); + for (it.Initialize( myImageShape.Image(S).First()); it.More(); it.Next()) + myBuilder.Add (C, it.Value()); } } } diff --git a/src/PARTITION/Partition_Spliter.hxx b/src/PARTITION/Partition_Spliter.hxx index 8174eb986..bb26915c1 100644 --- a/src/PARTITION/Partition_Spliter.hxx +++ b/src/PARTITION/Partition_Spliter.hxx @@ -1,16 +1,29 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Spliter.hxx +// Module : GEOM + #ifndef _Partition_Spliter_HeaderFile #define _Partition_Spliter_HeaderFile @@ -132,10 +145,15 @@ Partition_Inter3d myInter3d; TopTools_MapOfOrientedShape myAddedFacesMap; TopTools_MapOfShape myEqualEdges; TopTools_DataMapOfShapeShape myInternalFaces; +TopTools_DataMapOfShapeShape myIntNotClFaces; }; + + + + // other Inline functions and methods (like "C++: function call" methods) // diff --git a/src/PARTITION/Partition_Spliter.ixx b/src/PARTITION/Partition_Spliter.ixx index 03fc70d07..ee8259468 100644 --- a/src/PARTITION/Partition_Spliter.ixx +++ b/src/PARTITION/Partition_Spliter.ixx @@ -1,17 +1,29 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. +// GEOM PARTITION : partition algorithm // +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Spliter.ixx +// Module : GEOM + #include "Partition_Spliter.jxx" diff --git a/src/PARTITION/Partition_Spliter.jxx b/src/PARTITION/Partition_Spliter.jxx index 67d45dc1a..bf8622c93 100644 --- a/src/PARTITION/Partition_Spliter.jxx +++ b/src/PARTITION/Partition_Spliter.jxx @@ -1,3 +1,29 @@ +// GEOM PARTITION : partition algorithm +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : Partition_Spliter.jxx +// Module : GEOM + #ifndef _BRepAlgo_AsDes_HeaderFile #include #endif