NRI : Merge from V1_2.

This commit is contained in:
nri 2003-07-09 14:44:57 +00:00
parent 46fb512313
commit f72094caaf
56 changed files with 1551 additions and 604 deletions

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM GEOMGUI : GUI for Geometry component
// File : GeometryGUI_ArcDlg.cxx //
// Created : // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Lucien PIGNOLONI // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GeometryGUI // This library is free software; you can redistribute it and/or
// Copyright : OPEN CASCADE // 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$ // $Header$
using namespace std;
#include "GeometryGUI_ArcDlg.h" #include "GeometryGUI_ArcDlg.h"
#include "GeometryGUI.h" #include "GeometryGUI.h"

View File

@ -1,14 +1,32 @@
using namespace std; // GEOM GEOMGUI : GUI for Geometry component
// File : GeometryGUI_BndBoxDlg.cxx //
// Created : Mon Mar 04 13:16:16 2002 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Nicolas REJNERI // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// Project : SALOME // This library is free software; you can redistribute it and/or
// Module : GEOMGUI // modify it under the terms of the GNU Lesser General Public
// Copyright : Open CASCADE 2002 // 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$ // $Header$
using namespace std;
#include "GeometryGUI_BndBoxDlg.h" #include "GeometryGUI_BndBoxDlg.h"
#include "GeometryGUI.h" #include "GeometryGUI.h"

View File

@ -1,13 +1,32 @@
using namespace std; // GEOM GEOMGUI : GUI for Geometry component
// File : GeometryGUI_BoxDlg.cxx //
// Created : // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Lucien PIGNOLONI // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GeometryGUI // This library is free software; you can redistribute it and/or
// Copyright : OPEN CASCADE // 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$ // $Header$
using namespace std;
#include "GeometryGUI_BoxDlg.h" #include "GeometryGUI_BoxDlg.h"
#include "GeometryGUI_SpinBox.h" #include "GeometryGUI_SpinBox.h"

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM GEOMGUI : GUI for Geometry component
// File : GeometryGUI_CenterMassDlg.cxx //
// Created : // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Lucien PIGNOLONI // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GeometryGUI // This library is free software; you can redistribute it and/or
// Copyright : OPEN CASCADE // 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$ // $Header$
using namespace std;
#include "GeometryGUI_CenterMassDlg.h" #include "GeometryGUI_CenterMassDlg.h"
#include "GeometryGUI.h" #include "GeometryGUI.h"

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM GEOMGUI : GUI for Geometry component
// File : GeometryGUI_ChamferDlg.cxx //
// Created : // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Damien COQUERET // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GEOM // This library is free software; you can redistribute it and/or
// Copyright : OPEN CASCADE 2002 // 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$ // $Header$
using namespace std;
#include "GeometryGUI_ChamferDlg.h" #include "GeometryGUI_ChamferDlg.h"
#include "GeometryGUI.h" #include "GeometryGUI.h"

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM GEOMGUI : GUI for Geometry component
// File : GeometryGUI_CircleDlg.cxx //
// Created : // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Lucien PIGNOLONI // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GeometryGUI // This library is free software; you can redistribute it and/or
// Copyright : OPEN CASCADE // 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$ // $Header$
using namespace std;
#include "GeometryGUI_CircleDlg.h" #include "GeometryGUI_CircleDlg.h"
#include "GeometryGUI.h" #include "GeometryGUI.h"

View File

@ -1,18 +1,35 @@
#============================================================================== # Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# File : Makefile.in # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
# Created : ven déc 7 13:32:20 CET 2001 #
# Author : Paul RASCLE, EDF # This library is free software; you can redistribute it and/or
# Project : SALOME # modify it under the terms of the GNU Lesser General Public
# Copyright : EDF 2001 # 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$ # $Header$
#==============================================================================
# source path
top_srcdir=@top_srcdir@ top_srcdir=@top_srcdir@
top_builddir=.. top_builddir=..
srcdir=@srcdir@ srcdir=@srcdir@
VPATH=.:@srcdir@ VPATH=.:@srcdir@
@COMMENCE@ @COMMENCE@
SUBDIRS = OBJECT SKETCHER ARCHIMEDE PARTITION GEOMDS GEOM GEOMClient GEOMFiltersSelection GEOMGUI GEOM_SWIG SUBDIRS = OBJECT SKETCHER ARCHIMEDE PARTITION GEOMDS GEOM GEOMClient GEOMFiltersSelection GEOMGUI GEOM_SWIG

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM OBJECT : interactive object for Geometry entities visualization
// File : GEOM_AISShape.cxx //
// Created : Wed Feb 20 17:24:59 2002 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Nicolas REJNERI // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GEOM // This library is free software; you can redistribute it and/or
// Copyright : Open CASCADE 2002 // 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$ // $Header$
using namespace std;
/*! /*!
\class GEOM_AISShape GEOM_AISShape.hxx \class GEOM_AISShape GEOM_AISShape.hxx
\brief .... \brief ....

View File

@ -1,18 +1,29 @@
// File generated by CPPExt (Transient) // GEOM OBJECT : interactive object for Geometry entities visualization
// //
// Copyright (C) 1991,1995 by // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// MATRA DATAVISION, FRANCE //
// // This library is free software; you can redistribute it and/or
// This software is furnished in accordance with the terms and conditions // modify it under the terms of the GNU Lesser General Public
// of the contract and with the inclusion of the above copyright notice. // License as published by the Free Software Foundation; either
// This software or any other copy thereof may not be provided or otherwise // version 2.1 of the License.
// be made available to any other person. No title to an ownership of the //
// software is hereby transferred. // This library is distributed in the hope that it will be useful,
// // but WITHOUT ANY WARRANTY; without even the implied warranty of
// At the termination of the contract, the software and all copies of this // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// software must be deleted. // 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 #ifndef _GEOM_AISShape_HeaderFile
#define _GEOM_AISShape_HeaderFile #define _GEOM_AISShape_HeaderFile

View File

@ -1,17 +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.ixx
// Module : GEOM
#include "GEOM_AISShape.jxx" #include "GEOM_AISShape.jxx"
#ifndef _Standard_TypeMismatch_HeaderFile #ifndef _Standard_TypeMismatch_HeaderFile

View File

@ -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 #ifndef _GEOM_InteractiveObject_HeaderFile
#include "GEOM_InteractiveObject.hxx" #include "GEOM_InteractiveObject.hxx"
#endif #endif

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM OBJECT : interactive object for Geometry entities visualization
// File : GEOM_Actor.cxx //
// Created : Wed Feb 20 17:24:59 2002 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Christophe ATTANASIO // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GEOM // This library is free software; you can redistribute it and/or
// Copyright : Open CASCADE 2002 // 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$ // $Header$
using namespace std;
/*! /*!
\class GEOM_Actor GEOM_Actor.h \class GEOM_Actor GEOM_Actor.h
\brief This class allows to display an OpenCASCADE CAD model in a VTK viewer. \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" #include "GEOM_Actor.h"
// VTK Includes
#include <vtkObjectFactory.h>
#include <vtkPolyDataMapper.h>
#include <vtkPolyDataNormals.h>
#include <vtkMath.h>
// OpenCASCADE Includes // OpenCASCADE Includes
#include "GEOM_OCCReader.h" #include "GEOM_OCCReader.h"
#include <BRep_Tool.hxx> #include <BRep_Tool.hxx>

View File

@ -1,23 +1,36 @@
// File : GEOM_Actor.h // GEOM OBJECT : interactive object for Geometry entities visualization
// Created : Wed Feb 20 17:24:59 2002 //
// Author : Christophe ATTANASIO // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Project : SALOME // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Module : GEOM //
// Copyright : Open CASCADE 2002 // 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$ // $Header$
#ifndef GEOM_ACTOR_H #ifndef GEOM_ACTOR_H
#define GEOM_ACTOR_H #define GEOM_ACTOR_H
#include "SALOME_Actor.h" #include "SALOME_Actor.h"
//VTK
#include <vtkMapper.h>
#include <vtkProperty.h>
#include <vtkMatrix4x4.h>
#include <vtkCamera.h>
//OpenCASCADE //OpenCASCADE
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#include <TopoDS.hxx> #include <TopoDS.hxx>
@ -108,7 +121,5 @@ class VTKOCC_EXPORT GEOM_Actor : public SALOME_Actor {
vtkProperty* WireframeProperty; vtkProperty* WireframeProperty;
vtkProperty* HighlightProperty; vtkProperty* HighlightProperty;
int myDisplayMode;
}; };
#endif //GEOM_ACTOR_H #endif //GEOM_ACTOR_H

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM OBJECT : interactive object for Geometry entities visualization
// File : GEOM_AssemblyBuilder.cxx //
// Created : Wed Feb 20 17:24:59 2002 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Christophe ATTANASIO // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GEOM // This library is free software; you can redistribute it and/or
// Copyright : Open CASCADE 2002 // 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$ // $Header$
using namespace std;
/*! /*!
\class GEOM_AssemblyBuilder GEOM_AssemblyBuilder.h \class GEOM_AssemblyBuilder GEOM_AssemblyBuilder.h
\brief .... \brief ....
@ -26,6 +46,7 @@ using namespace std;
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx> #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopExp.hxx> #include <TopExp.hxx>
#include <TopTools_ListOfShape.hxx> #include <TopTools_ListOfShape.hxx>
#include <TopoDS_Iterator.hxx>
// SALOME // SALOME
@ -143,6 +164,18 @@ vtkActorCollection* GEOM_AssemblyBuilder::BuildActors(const TopoDS_Shape& myShap
vtkActorCollection* AISActors = vtkActorCollection::New(); 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 // Create graphics properties
vtkProperty* IsoProp = vtkProperty::New(); vtkProperty* IsoProp = vtkProperty::New();
@ -160,7 +193,7 @@ vtkActorCollection* GEOM_AssemblyBuilder::BuildActors(const TopoDS_Shape& myShap
MeshShape(myShape,deflection,forced); MeshShape(myShape,deflection,forced);
if ( myShape.ShapeType() <= 4 ) { if ( myShape.ShapeType() <= 4 && myShape.ShapeType() != TopAbs_COMPOUND) {
// FACE Actor // FACE Actor
// look if edges are free or shared // look if edges are free or shared

View File

@ -1,12 +1,31 @@
// File : GEOM_AssemblyBuilder.h // GEOM OBJECT : interactive object for Geometry entities visualization
// Created : Wed Feb 20 17:24:59 2002 //
// Author : Christophe ATTANASIO // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Project : SALOME // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Module : GEOM //
// Copyright : Open CASCADE 2002 // 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$ // $Header$
// VTK
#include <vtkAssembly.h> #include <vtkAssembly.h>
#include <vtkPropAssembly.h> #include <vtkPropAssembly.h>
#include <vtkActorCollection.h> #include <vtkActorCollection.h>

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM OBJECT : interactive object for Geometry entities visualization
// File : GEOM_InteractiveObject.cxx //
// Created : Wed Feb 20 17:24:59 2002 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Christophe ATTANASIO // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GEOM // This library is free software; you can redistribute it and/or
// Copyright : Open CASCADE 2002 // 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$ // $Header$
using namespace std;
/*! /*!
\class GEOM_InteractiveObject GEOM_InteractiveObject.hxx \class GEOM_InteractiveObject GEOM_InteractiveObject.hxx
\brief .... \brief ....

View File

@ -1,18 +1,29 @@
// File generated by CPPExt (Transient) // GEOM OBJECT : interactive object for Geometry entities visualization
// //
// Copyright (C) 1991,1995 by // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// MATRA DATAVISION, FRANCE //
// // This library is free software; you can redistribute it and/or
// This software is furnished in accordance with the terms and conditions // modify it under the terms of the GNU Lesser General Public
// of the contract and with the inclusion of the above copyright notice. // License as published by the Free Software Foundation; either
// This software or any other copy thereof may not be provided or otherwise // version 2.1 of the License.
// be made available to any other person. No title to an ownership of the //
// software is hereby transferred. // This library is distributed in the hope that it will be useful,
// // but WITHOUT ANY WARRANTY; without even the implied warranty of
// At the termination of the contract, the software and all copies of this // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// software must be deleted. // 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 #ifndef _GEOM_InteractiveObject_HeaderFile
#define _GEOM_InteractiveObject_HeaderFile #define _GEOM_InteractiveObject_HeaderFile

View File

@ -1,17 +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.ixx
// Module : GEOM
#include "GEOM_InteractiveObject.jxx" #include "GEOM_InteractiveObject.jxx"
#ifndef _Standard_TypeMismatch_HeaderFile #ifndef _Standard_TypeMismatch_HeaderFile

View File

@ -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 #ifndef _SALOME_InteractiveObject_HeaderFile
#include "SALOME_InteractiveObject.hxx" #include "SALOME_InteractiveObject.hxx"
#endif #endif

View File

@ -1,19 +1,39 @@
using namespace std; // GEOM OBJECT : interactive object for Geometry entities visualization
// File : GEOM_OCCReader.h //
// Created : Wed Feb 20 17:24:59 2002 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Christophe ATTANASIO // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : GEOM // This library is free software; you can redistribute it and/or
// Copyright : Open CASCADE 2002 // 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$ // $Header$
using namespace std;
#include "GEOM_OCCReader.h" #include "GEOM_OCCReader.h"
// SALOME Includes // SALOME Includes
#include "utilities.h" #include "utilities.h"
// VTK Includes // VTK Includes
#include <vtkObjectFactory.h> #include "VTKViewer_Common.h"
#include <vtkMergePoints.h> #include <vtkMergePoints.h>
// OpenCASCADE Includes // OpenCASCADE Includes

View File

@ -1,9 +1,29 @@
// File : GEOM_OCCReader.h // GEOM OBJECT : interactive object for Geometry entities visualization
// Created : Wed Feb 20 17:24:59 2002 //
// Author : Christophe ATTANASIO // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Project : SALOME // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Module : GEOM //
// Copyright : Open CASCADE 2002 // 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$ // $Header$
/*! /*!
@ -15,9 +35,7 @@
#define GEOM_OCCREADER_H #define GEOM_OCCREADER_H
// VTK // VTK
#include <vtkPolyDataSource.h> #include "VTKViewer_Common.h"
#include <vtkPoints.h>
#include <vtkCellArray.h>
// OpenCASCADE // OpenCASCADE
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>

View File

@ -1,17 +1,28 @@
// File generated by CPPExt (Transient) // GEOM OBJECT : interactive object for Geometry entities visualization
// //
// Copyright (C) 1991,1995 by // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// MATRA DATAVISION, FRANCE //
// // This library is free software; you can redistribute it and/or
// This software is furnished in accordance with the terms and conditions // modify it under the terms of the GNU Lesser General Public
// of the contract and with the inclusion of the above copyright notice. // License as published by the Free Software Foundation; either
// This software or any other copy thereof may not be provided or otherwise // version 2.1 of the License.
// be made available to any other person. No title to an ownership of the //
// software is hereby transferred. // This library is distributed in the hope that it will be useful,
// // but WITHOUT ANY WARRANTY; without even the implied warranty of
// At the termination of the contract, the software and all copies of this // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// software must be deleted. // 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 #ifndef _Handle_GEOM_AISShape_HeaderFile
#define _Handle_GEOM_AISShape_HeaderFile #define _Handle_GEOM_AISShape_HeaderFile

View File

@ -1,17 +1,28 @@
// File generated by CPPExt (Transient) // GEOM OBJECT : interactive object for Geometry entities visualization
// //
// Copyright (C) 1991,1995 by // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// MATRA DATAVISION, FRANCE //
// // This library is free software; you can redistribute it and/or
// This software is furnished in accordance with the terms and conditions // modify it under the terms of the GNU Lesser General Public
// of the contract and with the inclusion of the above copyright notice. // License as published by the Free Software Foundation; either
// This software or any other copy thereof may not be provided or otherwise // version 2.1 of the License.
// be made available to any other person. No title to an ownership of the //
// software is hereby transferred. // This library is distributed in the hope that it will be useful,
// // but WITHOUT ANY WARRANTY; without even the implied warranty of
// At the termination of the contract, the software and all copies of this // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// software must be deleted. // 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 #ifndef _Handle_GEOM_InteractiveObject_HeaderFile
#define _Handle_GEOM_InteractiveObject_HeaderFile #define _Handle_GEOM_InteractiveObject_HeaderFile

View File

@ -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_srcdir=@top_srcdir@
top_builddir=../.. top_builddir=../../..
srcdir=@srcdir@ srcdir=@srcdir@
VPATH=.:$(srcdir):$(top_srcdir)/idl:$(top_builddir)/idl VPATH=.:@srcdir@:@top_srcdir@/idl
@COMMENCE@ @COMMENCE@

View File

@ -1,15 +1,35 @@
# -* Makefile *- # GEOM PARTITION : partition algorithm
# #
# Author : Marc Tajchman (CEA) # Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# Date : 5/07/2001 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
# $Header$ #
# 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_srcdir=@top_srcdir@
top_builddir=../.. top_builddir=../../..
srcdir=@srcdir@ srcdir=@srcdir@
VPATH=.:$(srcdir):$(top_srcdir)/idl:$(top_builddir)/idl VPATH=.:@srcdir@
@COMMENCE@ @COMMENCE@

View File

@ -1,9 +1,29 @@
-- File : Partition.cdl -- GEOM PARTITION : partition algorithm
-- Created: Thu Aug 02 16:07:39 2001 --
-- Author : Benedicte MARTIN -- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-- -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
---Copyright: OPEN CASCADE 2001 --
-- 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 package Partition

View File

@ -1,8 +1,29 @@
-- File : Partition_Inter2d.cdl -- GEOM PARTITION : partition algorithm
-- Created: Thu Aug 02 16:07:39 2001 --
-- Author : Benedicte MARTIN -- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-- -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
---Copyright: OPEN CASCADE 2001 --
-- 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 class Inter2d from Partition

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM PARTITION : partition algorithm
// File : Partition_Inter2d.cxx //
// Created : Thu Aug 02 16:17:31 2001 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Benedicte MARTIN // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : PARTITION // This library is free software; you can redistribute it and/or
// Copyright : Open CASCADE // 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$ // $Header$
using namespace std;
#include "Partition_Inter2d.ixx" #include "Partition_Inter2d.ixx"
#include "utilities.h" #include "utilities.h"

View File

@ -1,16 +1,28 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// Copyright (C) 1991,1995 by //
// // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// MATRA DATAVISION, FRANCE // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// //
// This software is furnished in accordance with the terms and conditions // This library is free software; you can redistribute it and/or
// of the contract and with the inclusion of the above copyright notice. // modify it under the terms of the GNU Lesser General Public
// This software or any other copy thereof may not be provided or otherwise // License as published by the Free Software Foundation; either
// be made available to any other person. No title to an ownership of the // version 2.1 of the License.
// software is hereby transferred. //
// // This library is distributed in the hope that it will be useful,
// At the termination of the contract, the software and all copies of this // but WITHOUT ANY WARRANTY; without even the implied warranty of
// software must be deleted. // 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 #ifndef _Partition_Inter2d_HeaderFile
#define _Partition_Inter2d_HeaderFile #define _Partition_Inter2d_HeaderFile

View File

@ -1,17 +1,29 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// 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 : Partition_Inter2d.ixx
// Module : GEOM
#include "Partition_Inter2d.jxx" #include "Partition_Inter2d.jxx"

View File

@ -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 #ifndef _BRepAlgo_AsDes_HeaderFile
#include <BRepAlgo_AsDes.hxx> #include <BRepAlgo_AsDes.hxx>
#endif #endif

View File

@ -1,9 +1,29 @@
-- File : Partition_Inter3d.cdl -- GEOM PARTITION : partition algorithm
-- Created: Thu Aug 02 16:07:39 2001 --
-- Author : Benedicte MARTIN -- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-- -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
---Copyright: OPEN CASCADE 2001 --
-- 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 class Inter3d from Partition
@ -89,8 +109,8 @@ is
IsSectionEdge (me; E : Edge from TopoDS) IsSectionEdge (me; E : Edge from TopoDS)
returns Boolean from Standard; returns Boolean from Standard;
---Purpose: return True if E is an edge of a face and it ---Purpose: return True if E is an edge of an initial face and
-- intersects an other face -- E intersects aother face
HasSectionEdge (me; F : Face from TopoDS) HasSectionEdge (me; F : Face from TopoDS)
returns Boolean from Standard; returns Boolean from Standard;

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM PARTITION : partition algorithm
// File : Partition_Inter3d.cxx //
// Created : Thu Aug 02 16:20:37 2001 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Benedicte MARTIN // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : PARTITION // This library is free software; you can redistribute it and/or
// Copyright : Open CASCADE // 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$ // $Header$
using namespace std;
#include "Partition_Inter3d.ixx" #include "Partition_Inter3d.ixx"
#include "Partition_Inter2d.hxx" #include "Partition_Inter2d.hxx"
#include "utilities.h" #include "utilities.h"

View File

@ -1,16 +1,28 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// Copyright (C) 1991,1995 by //
// // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// MATRA DATAVISION, FRANCE // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// //
// This software is furnished in accordance with the terms and conditions // This library is free software; you can redistribute it and/or
// of the contract and with the inclusion of the above copyright notice. // modify it under the terms of the GNU Lesser General Public
// This software or any other copy thereof may not be provided or otherwise // License as published by the Free Software Foundation; either
// be made available to any other person. No title to an ownership of the // version 2.1 of the License.
// software is hereby transferred. //
// // This library is distributed in the hope that it will be useful,
// At the termination of the contract, the software and all copies of this // but WITHOUT ANY WARRANTY; without even the implied warranty of
// software must be deleted. // 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 #ifndef _Partition_Inter3d_HeaderFile
#define _Partition_Inter3d_HeaderFile #define _Partition_Inter3d_HeaderFile

View File

@ -1,17 +1,29 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// 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 : Partition_Inter3d.ixx
// Module : GEOM
#include "Partition_Inter3d.jxx" #include "Partition_Inter3d.jxx"

View File

@ -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 #ifndef _BRepAlgo_AsDes_HeaderFile
#include <BRepAlgo_AsDes.hxx> #include <BRepAlgo_AsDes.hxx>
#endif #endif

View File

@ -1,9 +1,29 @@
-- File : Partition_Loop.cdl -- GEOM PARTITION : partition algorithm
-- Created: Thu Aug 02 16:07:39 2001 --
-- Author : Benedicte MARTIN -- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-- -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
---Copyright: Matra Datavision 2001 --
-- 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 class Loop from Partition

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM PARTITION : partition algorithm
// File : Partition_Loop.cxx //
// Created : Thu Aug 02 16:25:17 2001 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Benedicte MARTIN // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : PARTITION // This library is free software; you can redistribute it and/or
// Copyright : Open CASCADE // 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$ // $Header$
using namespace std;
#include <stdio.h> #include <stdio.h>
#include "Partition_Loop.ixx" #include "Partition_Loop.ixx"

View File

@ -1,16 +1,28 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// Copyright (C) 1991,1995 by //
// // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// MATRA DATAVISION, FRANCE // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// //
// This software is furnished in accordance with the terms and conditions // This library is free software; you can redistribute it and/or
// of the contract and with the inclusion of the above copyright notice. // modify it under the terms of the GNU Lesser General Public
// This software or any other copy thereof may not be provided or otherwise // License as published by the Free Software Foundation; either
// be made available to any other person. No title to an ownership of the // version 2.1 of the License.
// software is hereby transferred. //
// // This library is distributed in the hope that it will be useful,
// At the termination of the contract, the software and all copies of this // but WITHOUT ANY WARRANTY; without even the implied warranty of
// software must be deleted. // 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 #ifndef _Partition_Loop_HeaderFile
#define _Partition_Loop_HeaderFile #define _Partition_Loop_HeaderFile

View File

@ -1,17 +1,29 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// 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 : Partition_Loop.ixx
// Module : GEOM
#include "Partition_Loop.jxx" #include "Partition_Loop.jxx"

View File

@ -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 #ifndef _TopoDS_Face_HeaderFile
#include <TopoDS_Face.hxx> #include <TopoDS_Face.hxx>
#endif #endif

View File

@ -1,9 +1,12 @@
-- File : Partition_Loop2d.cdl -- GEOM PARTITION : partition algorithm
-- Created: Thu Aug 02 16:07:39 2001 --
-- Author : Benedicte MARTIN -- Copyright (C) 2003 CEA/DEN, EDF R&D
-- --
---Copyright: OPEN CASCADE 2001 --
--
-- File : Partition_Loop2d.cdl
-- Author : Benedicte MARTIN
-- Module : GEOM
class Loop2d from Partition class Loop2d from Partition

View File

@ -1,13 +1,15 @@
using namespace std; // GEOM PARTITION : partition algorithm
// File : Partition_Loop2d.cxx //
// Created : Thu Aug 02 16:25:17 2001 // Copyright (C) 2003 CEA/DEN, EDF R&D
// Author : Benedicte MARTIN //
// Project : SALOME //
// Module : PARTITION //
// Copyright : Open CASCADE // File : Partition_Loop2d.cxx
// Author : Benedicte MARTIN
// Module : GEOM
// $Header$ // $Header$
using namespace std;
#include "Partition_Loop2d.ixx" #include "Partition_Loop2d.ixx"
#include "utilities.h" #include "utilities.h"

View File

@ -1,16 +1,11 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// Copyright (C) 1991,1995 by //
// // Copyright (C) 2003 CEA/DEN, EDF R&D
// 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. // File : Partition_Loop2d.hxx
// This software or any other copy thereof may not be provided or otherwise // Module : GEOM
// 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.
#ifndef _Partition_Loop2d_HeaderFile #ifndef _Partition_Loop2d_HeaderFile
#define _Partition_Loop2d_HeaderFile #define _Partition_Loop2d_HeaderFile

View File

@ -1,17 +1,12 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// 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 CEA/DEN, EDF R&D
//
//
//
// File : Partition_Loop2d.ixx
// Module : GEOM
#include "Partition_Loop2d.jxx" #include "Partition_Loop2d.jxx"

View File

@ -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 #ifndef _TopoDS_Face_HeaderFile
#include <TopoDS_Face.hxx> #include <TopoDS_Face.hxx>
#endif #endif

View File

@ -1,6 +1,11 @@
-- File: Partition_Loop3d.cdl -- GEOM PARTITION : partition algorithm
-- Created: Mon Oct 21 09:47:19 2002 --
---Copyright: OPEN CASCADE 2002 -- Copyright (C) 2003 CEA/DEN, EDF R&D
--
--
--
-- File : Partition_Loop3d.cdl
-- Module : GEOM
class Loop3d from Partition class Loop3d from Partition

View File

@ -1,8 +1,13 @@
using namespace std; // GEOM PARTITION : partition algorithm
// File : Partition_Loop3d.cxx //
// Created : Mon Oct 21 09:47:19 2002 // Copyright (C) 2003 CEA/DEN, EDF R&D
// Copyright : Open CASCADE //
//
//
// File : Partition_Loop3d.cxx
// Module : GEOM
using namespace std;
#include "Partition_Loop3d.ixx" #include "Partition_Loop3d.ixx"
#include <TopExp_Explorer.hxx> #include <TopExp_Explorer.hxx>

View File

@ -1,16 +1,11 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// Copyright (C) 1991,1995 by //
// // Copyright (C) 2003 CEA/DEN, EDF R&D
// 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. // File : Partition_Loop3d.hxx
// This software or any other copy thereof may not be provided or otherwise // Module : GEOM
// 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.
#ifndef _Partition_Loop3d_HeaderFile #ifndef _Partition_Loop3d_HeaderFile
#define _Partition_Loop3d_HeaderFile #define _Partition_Loop3d_HeaderFile

View File

@ -1,17 +1,12 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// 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 CEA/DEN, EDF R&D
//
//
//
// File : Partition_Loop3d.ixx
// Module : GEOM
#include "Partition_Loop3d.jxx" #include "Partition_Loop3d.jxx"

View File

@ -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 #ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#endif #endif

View File

@ -1,7 +1,29 @@
-- File : Partition_Spliter.cdl -- GEOM PARTITION : partition algorithm
-- Created: Thu Aug 02 16:07:39 2001 --
-- Author : Benedicte MARTIN -- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
---Copyright: OPEN CASCADE 2001 -- 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 class Spliter from Partition
@ -138,5 +160,6 @@ fields
-- shape and its internal faces -- shape and its internal faces
myInternalFaces: DataMapOfShapeShape from TopTools; myInternalFaces: DataMapOfShapeShape from TopTools;
myIntNotClFaces: DataMapOfShapeShape from TopTools;-- internal but not closed
end Spliter; end Spliter;

View File

@ -1,12 +1,32 @@
using namespace std; // GEOM PARTITION : partition algorithm
// File : Partition_Spliter.cxx //
// Created : Thu Aug 02 16:07:39 2001 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// Author : Benedicte MARTIN // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Project : SALOME //
// Module : SALOMEGUI // This library is free software; you can redistribute it and/or
// Copyright : Open CASCADE // 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$ // $Header$
using namespace std;
#include "Partition_Spliter.ixx" #include "Partition_Spliter.ixx"
#include "Partition_Inter2d.hxx" #include "Partition_Inter2d.hxx"
#include "Partition_Inter3d.hxx" #include "Partition_Inter3d.hxx"
@ -676,66 +696,85 @@ void Partition_Spliter::MakeEdges (const TopoDS_Edge& E,
//======================================================================= //=======================================================================
//function : FindFacesInside //function : FindFacesInside
//purpose : return compound of faces of other shapes that are //purpose : return compound of faces of other shapes that are
// inside <S>. // inside <theShape>.
// <S> is an object shape. // <theShape> is an object shape.
// <CheckClosed> makes avoid faces that do not form a // <CheckClosed> makes avoid faces that do not form a
// closed shell // closed shell
// <All> makes return already added faces // <All> 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 CheckClosed,
const Standard_Boolean All) 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; 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 expl.Init( aIntRemFComp, TopAbs_FACE);
for (expl.Init(SS,TopAbs_EDGE); expl.More(); expl.Next()) { 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() ; TopoDS_Shape resE = expl.Current() ;
if (myNewSection.Contains( resE )) if (myNewSection.Contains( resE )) // only new edges
MSE.Add(resE); MSE.Add(resE);
} }
// 1. MPF filling: map of resulting faces except those of S, // DMEF: map edge of CSF - faces of CSF
// we`ll add to C those of them which are inside SS TopTools_IndexedDataMapOfShapeListOfShape DMEF;
// 2. MEF filling: edge of MSE => faces of MPF 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; TopTools_ListIteratorOfListOfShape itl;
for (itl.Initialize(myListShapes);itl.More();itl.Next()) { for (itl.Initialize(myListShapes);itl.More();itl.Next()) {
const TopoDS_Shape& SL = itl.Value(); const TopoDS_Shape& aShape = itl.Value();
if ( S.IsSame( SL )) continue; if ( theShape.IsSame( aShape )) continue;
// fill maps // 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()) { for ( ; itF.More(); itF.Next()) {
const TopoDS_Shape& snf = itF.Value(); const TopoDS_Shape& sf = itF.Value();
MPF.Add(snf); MFP.Add(sf);
for (expl.Init( snf, TopAbs_EDGE ); expl.More(); expl.Next()) { // 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(); TopoDS_Shape se = expl.Current();
if ( MSE.Contains(se)) {// section edge if ( MSE.Contains(se)) {// section edge
if (!MEF.IsBound(se)) if (!DMSEFP.IsBound(se))
MEF.Bind(se,Empty); DMSEFP.Bind(se,EmptyL);
MEF(se).Append(snf); 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 skipAlreadyAdded = Standard_False;
Standard_Boolean GoodOri, inside; Standard_Boolean GoodOri, inside;
@ -743,60 +782,72 @@ TopoDS_Shape Partition_Spliter::FindFacesInside(const TopoDS_Shape& S,
TopTools_ListOfShape KeepFaces; TopTools_ListOfShape KeepFaces;
TopTools_DataMapIteratorOfDataMapOfShapeListOfShape Mapit; TopTools_DataMapIteratorOfDataMapOfShapeListOfShape Mapit;
for (Mapit.Initialize(MEF); Mapit.More() ; Mapit.Next() ) { // iterate on section edges, check faces of other shapes
TopoDS_Edge E = TopoDS::Edge (Mapit.Key()); // sharing section edges and put internal faces to KeepFaces
TopoDS_Edge OrigE = TopoDS::Edge ( myImagesEdges.Root( E )); 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 ); Standard_Boolean isSectionE = myInter3d.IsSectionEdge ( OrigE );
TopTools_ListOfShape& EF = MEF.ChangeFind(E); // split faces of other shapes sharing E
itl.Initialize( EF ); TopTools_ListOfShape& LSF = DMSEFP.ChangeFind(E);
itl.Initialize( LSF );
while (itl.More()) { while (itl.More()) {
TopoDS_Face face1 = TopoDS::Face(itl.Value()); // a split faces of other shape
EF.Remove( itl ); // == itl.Next(); TopoDS_Face aFace1 = TopoDS::Face(itl.Value());
if (!MPF.Remove( face1 )) // remove aFace1 form DMSEFP and MFP
continue; // was not is MPF ( i.e already checked) 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 && if (!All &&
myAddedFacesMap.Contains( face1 ) && myAddedFacesMap.Contains( aFace1 ) &&
myAddedFacesMap.Contains( face1.Reversed() )) { myAddedFacesMap.Contains( aFace1.Reversed() )) {
skipAlreadyAdded = Standard_True; skipAlreadyAdded = Standard_True;
continue; // already added to 2 shells continue;
} }
// find another face which originates from the same face as <face1> // find another face which originates from the same face as aFace1:
const TopoDS_Shape& origS = myImagesFaces.Root(face1); // usually aFace2 is internal if aFace1 is not and vice versa
TopoDS_Shape face2;
const TopoDS_Shape& anOrigFace = myImagesFaces.Root(aFace1);
TopoDS_Shape aFace2;
if ( !isSectionE ) { if ( !isSectionE ) {
while (itl.More()) { while (itl.More()) {
face2 = itl.Value(); aFace2 = itl.Value();
if (!MPF.Contains( face2 )) { if (!MFP.Contains( aFace2 )) {
EF.Remove( itl ); LSF.Remove( itl );
continue; continue;
} }
if (origS.IsSame( myImagesFaces.Root( face2 ))) if (anOrigFace.IsSame( myImagesFaces.Root( aFace2 )))
break; break;
itl.Next(); itl.Next();
} }
if (itl.More()) { // face2 found if (itl.More()) { // aFace2 found, remove it from maps
EF.Remove( itl ); LSF.Remove( itl );
MPF.Remove(face2); MFP.Remove(aFace2);
} }
else else
face2.Nullify(); aFace2.Nullify();
itl.Initialize( EF ); itl.Initialize( LSF );
} }
// check that origS is not same domain with SS // check that anOrigFace is not same domain with CSF faces it intersects
Standard_Boolean sameDom1 = 0, sameDom2 = 0;
const TopTools_ListOfShape& FL = MSEF.FindFromKey(E); //faces of SS sharing E const TopTools_ListOfShape& FL = DMEF.FindFromKey(E); //faces of CSF sharing E
const TopoDS_Shape& origF1 = myImagesFaces.Root(FL.First()); const TopoDS_Shape& origF1 = myImagesFaces.Root(FL.First());
const TopoDS_Shape& origF2 = myImagesFaces.Root(FL.Last()); const TopoDS_Shape& origF2 = myImagesFaces.Root(FL.Last());
if (origS.IsSame( origF1 )) Standard_Boolean sameDom1 = anOrigFace.IsSame( origF1 );
sameDom1 = Standard_True; Standard_Boolean sameDom2 = anOrigFace.IsSame( origF2 );
if ( origS.IsSame( origF2 )) if (!(sameDom1 || sameDom2) && myInter3d.HasSameDomainF( anOrigFace )) {
sameDom2 = Standard_True; sameDom1 = myInter3d.IsSameDomainF( anOrigFace, origF1);
if (!(sameDom1 || sameDom2) && myInter3d.HasSameDomainF( origS )) { if (origF1 == origF2)
sameDom1 = myInter3d.IsSameDomainF( origS, origF1); sameDom2 = sameDom1;
sameDom2 = (origF1 == origF2) ? sameDom1 : myInter3d.IsSameDomainF( origS, origF2); else
myInter3d.IsSameDomainF( anOrigFace, origF2);
} }
if (sameDom1 && sameDom2) if (sameDom1 && sameDom2)
continue; continue;
@ -808,100 +859,133 @@ TopoDS_Shape Partition_Spliter::FindFacesInside(const TopoDS_Shape& S,
if (inside || (dot + Precision::Angular() >= 1.0)) if (inside || (dot + Precision::Angular() >= 1.0))
continue; // E is convex between origF1 and origF2 or they are tangent continue; // E is convex between origF1 and origF2 or they are tangent
} }
// keep one of found faces // 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); 1, dot, GoodOri);
if ((dot + Precision::Angular() >= 1.0) && // store internal face
!face2.IsNull()) { // face2 position is not clear, it will be analysed alone if (inside)
MPF.Add( face2 ); KeepFaces.Append(aFace1);
EF.Append( face2 ); else if (!aFace2.IsNull())
face2.Nullify(); {
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; 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); KeptFaces.Append (KeepFaces);
while (!KeepFaces.IsEmpty()) { while (!KeepFaces.IsEmpty())
// add to KeepFaces not distributed faces connected with KeepFaces {
// KeepEdges : map of edges of faces kept last time
// KeepEdges : map of edges of kept faces
TopTools_IndexedMapOfShape KeepEdges; 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); TopExp::MapShapes( itl.Value(), TopAbs_EDGE, KeepEdges);
KeptFaces.Append( itl.Value() );
}
KeptFaces.Append (KeepFaces); // == KeepFaces.Clear() KeepFaces.Clear();
// keep faces connected with already kept faces // keep faces connected with already kept faces by KeepEdges
for (itm.Initialize(MPF);itm.More();itm.Next() ) { for ( itm.Initialize(MFP); itm.More(); itm.Next() ) {
const TopoDS_Shape& PF = itm.Key(); const TopoDS_Shape& FP = itm.Key();
for (expl.Init(PF,TopAbs_EDGE); expl.More(); expl.Next()) { for (expl.Init(FP,TopAbs_EDGE); expl.More(); expl.Next()) {
const TopoDS_Shape& se = expl.Current(); const TopoDS_Shape& se = expl.Current();
if (!MSE.Contains(se) && KeepEdges.Contains(se) ) { if (!MSE.Contains(se) && KeepEdges.Contains(se) ) {
KeepFaces.Append(PF); KeepFaces.Append(FP);
MPF.Remove(PF); MFP.Remove(FP);
break; break;
} }
} }
} }
} }
// check if kept faces make shell without free edges // check if kept faces form a shell without free edges
MSEF.Clear(); // edge - kept faces
MPF.Clear(); // wrong faces DMEF.Clear(); // edge - kept faces
MFP.Clear(); // wrong faces
if (CheckClosed) { if (CheckClosed) {
for (itl.Initialize(KeptFaces); itl.More(); itl.Next() ) 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; Standard_Boolean isClosed = Standard_False;
while (!isClosed) { while (!isClosed) {
isClosed = Standard_True; isClosed = Standard_True;
for (i=1; isClosed && i<=nb; ++i) { for (i=1; isClosed && i<=nb; ++i) {
const TopoDS_Shape& E = MSEF.FindKey( i ); const TopoDS_Shape& E = DMEF.FindKey( i );
if (! MSE.Contains( E )) if (! MSE.Contains( E ))
isClosed = ( MSEF(i).Extent() != 1 ); isClosed = ( DMEF(i).Extent() != 1 );
} }
if (!isClosed) { if (!isClosed) {
const TopoDS_Shape& F = MSEF.FindFromIndex( i-1 ).First(); // bad face const TopoDS_Shape& F = DMEF.FindFromIndex( i-1 ).First(); // bad face
MPF.Add( F ); MFP.Add( F );
// remove bad face from MSEF // remove bad face from DMEF
for (expl.Init( F, TopAbs_EDGE); expl.More(); expl.Next()) { for (expl.Init( F, TopAbs_EDGE); expl.More(); expl.Next()) {
const TopoDS_Shape& E = expl.Current(); const TopoDS_Shape& E = expl.Current();
TopTools_ListOfShape& FL = MSEF.ChangeFromKey( E ); TopTools_ListOfShape& FL = DMEF.ChangeFromKey( E );
for (itl.Initialize( FL ); itl.More(); itl.Next() ) { for (itl.Initialize( FL ); itl.More(); itl.Next() ) {
if ( F.IsSame( itl.Value() )) { if ( F.IsSame( itl.Value() )) {
FL.Remove( itl ); FL.Remove( itl );
break; break;
} }
} }
} }
} }
} }
} }
// add to the compound kept faces except bad ones in MPF // a result compound
if (KeptFaces.Extent() > MPF.Extent()) { TopoDS_Compound C;
for (itl.Initialize(KeptFaces); itl.More(); itl.Next() ) // compound of removed internal faces
if (! MPF.Contains( itl.Value() )) { TopoDS_Compound CNotCl;
myBuilder.Add( C, itl.Value());
//myBuilder.Add( C, itl.Value().Reversed()); 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; return C;
} }
@ -911,11 +995,11 @@ TopoDS_Shape Partition_Spliter::FindFacesInside(const TopoDS_Shape& S,
//======================================================================= //=======================================================================
void Partition_Spliter::MakeShells(const TopoDS_Shape& S, void Partition_Spliter::MakeShells(const TopoDS_Shape& S,
TopTools_ListOfShape& NS) TopTools_ListOfShape& NS)
{ {
// check if S is closed shape // check if S is closed shape
Standard_Boolean isClosed = Standard_True; Standard_Boolean isClosed = Standard_True;
TopTools_IndexedDataMapOfShapeListOfShape MEF; TopTools_IndexedDataMapOfShapeListOfShape MEF;
Standard_Integer i; Standard_Integer i;
if (S.ShapeType() != TopAbs_SOLID) { if (S.ShapeType() != TopAbs_SOLID) {
@ -1361,26 +1445,35 @@ void Partition_Spliter::KeepShapesInside (const TopoDS_Shape& S)
KeepShapesInside( it.Value()); KeepShapesInside( it.Value());
return; 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); TopoDS_Shape InsFacesComp = FindFacesInside( S, Standard_False, Standard_True);
TopTools_IndexedMapOfShape MIF; // map of internal faces;
TopExp::MapShapes( InsFacesComp, TopAbs_FACE, MIF ); 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; TopoDS_Compound C;
myBuilder.MakeCompound(C); myBuilder.MakeCompound(C);
// leave in the result only those shapes having a face in MIF
for (it.Initialize( myShape ); it.More(); it.Next()) { for (it.Initialize( myShape ); it.More(); it.Next()) {
TopExp_Explorer expResF( it.Value(), TopAbs_FACE ); TopExp_Explorer expResF( it.Value(), TopAbs_FACE );
for (; expResF.More(); expResF.Next()) { for (; expResF.More(); expResF.Next()) {
if ( MIF.Contains( expResF.Current())) { if ( MIF.Contains( expResF.Current())) {
myBuilder.Add( C, it.Value() ); myBuilder.Add( C, it.Value() );
break; break;
} }
} }
} }
@ -1406,7 +1499,7 @@ void Partition_Spliter::RemoveShapesInside (const TopoDS_Shape& S)
isTool = CheckTool( S ); isTool = CheckTool( S );
if (!isTool) return; if (!isTool) return;
} }
TopoDS_Shape InsFacesComp = FindFacesInside( S, Standard_False, Standard_True); TopoDS_Shape InsFacesComp = FindFacesInside( S, Standard_False, Standard_True);
TopTools_IndexedMapOfShape MIF; // map of internal faces TopTools_IndexedMapOfShape MIF; // map of internal faces
TopExp::MapShapes( InsFacesComp, TopAbs_FACE, MIF); TopExp::MapShapes( InsFacesComp, TopAbs_FACE, MIF);
@ -1414,7 +1507,7 @@ void Partition_Spliter::RemoveShapesInside (const TopoDS_Shape& S)
if (MIF.IsEmpty()) return; if (MIF.IsEmpty()) return;
// add to MIF split faces of S // add to MIF split faces of S
if (myImageShape.HasImage( S )) if (myImageShape.HasImage(S))
TopExp::MapShapes( myImageShape.Image(S).First(), TopAbs_FACE, MIF); TopExp::MapShapes( myImageShape.Image(S).First(), TopAbs_FACE, MIF);
// leave in the result only those shapes not having all face in 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()) for (; expResF.More(); expResF.Next())
if (!MIF.Contains( expResF.Current())) if (!MIF.Contains( expResF.Current()))
break; break;
if (expResF.More()) if (expResF.More())
// add shape to result // add shape to result
myBuilder.Add( C, it.Value() ); myBuilder.Add( C, it.Value() );
@ -1445,15 +1538,17 @@ void Partition_Spliter::RemoveShapesInside (const TopoDS_Shape& S)
} }
if (!isTool) { if (!isTool) {
// rebuild S, it must remain in the result // rebuild S, it must remain in the result
Standard_Boolean isClosed = Standard_False; Standard_Boolean isClosed = Standard_False;
switch (S.ShapeType()) { switch (S.ShapeType()) {
case TopAbs_SOLID : case TopAbs_SOLID :
isClosed = Standard_True; break; isClosed = Standard_True; break;
case TopAbs_SHELL: { case TopAbs_SHELL: {
TopTools_IndexedDataMapOfShapeListOfShape MEF; TopTools_IndexedDataMapOfShapeListOfShape MEF;
Standard_Integer i;
TopExp::MapShapesAndAncestors(S, TopAbs_EDGE, TopAbs_FACE, MEF); TopExp::MapShapesAndAncestors(S, TopAbs_EDGE, TopAbs_FACE, MEF);
Standard_Integer i;
for (i=1; isClosed && i<=MEF.Extent(); ++i) for (i=1; isClosed && i<=MEF.Extent(); ++i)
isClosed = ( MEF(i).Extent() != 1 ); isClosed = ( MEF(i).Extent() != 1 );
break; break;
@ -1462,27 +1557,42 @@ void Partition_Spliter::RemoveShapesInside (const TopoDS_Shape& S)
isClosed = Standard_False; isClosed = Standard_False;
} }
if (isClosed) { if (isClosed) {
// add to a new shape external faces of removed shapes, ie those in RFM // add to a new shape external faces of removed shapes, ie those in RFM
TopoDS_Shell Shell; TopoDS_Shell Shell;
myBuilder.MakeShell( Shell ); myBuilder.MakeShell( Shell );
// exclude redundant internal face with edges encounterd only once
TopTools_IndexedDataMapOfShapeListOfShape MEF;
TopTools_MapIteratorOfMapOfShape itF (RFM); TopTools_MapIteratorOfMapOfShape itF (RFM);
for ( ; itF.More(); itF.Next()) 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) { if (S.ShapeType() == TopAbs_SOLID) {
TopoDS_Solid Solid; TopoDS_Solid Solid;
myBuilder.MakeSolid( Solid ); myBuilder.MakeSolid( Solid );
myBuilder.Add (Solid, Shell); myBuilder.Add (Solid, Shell);
myBuilder.Add (C, Solid); myBuilder.Add (C, Solid);
} }
else else
myBuilder.Add (C, Shell); myBuilder.Add (C, Shell);
} }
else { else {
if (myImageShape.HasImage( S )) { if (myImageShape.HasImage( S )) {
for (it.Initialize( myImageShape.Image(S).First()); it.More(); it.Next()) for (it.Initialize( myImageShape.Image(S).First()); it.More(); it.Next())
myBuilder.Add (C, it.Value()); myBuilder.Add (C, it.Value());
} }
} }
} }

View File

@ -1,16 +1,29 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// Copyright (C) 1991,1995 by //
// // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// MATRA DATAVISION, FRANCE // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// //
// This software is furnished in accordance with the terms and conditions // This library is free software; you can redistribute it and/or
// of the contract and with the inclusion of the above copyright notice. // modify it under the terms of the GNU Lesser General Public
// This software or any other copy thereof may not be provided or otherwise // License as published by the Free Software Foundation; either
// be made available to any other person. No title to an ownership of the // version 2.1 of the License.
// software is hereby transferred. //
// // This library is distributed in the hope that it will be useful,
// At the termination of the contract, the software and all copies of this // but WITHOUT ANY WARRANTY; without even the implied warranty of
// software must be deleted. // 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 #ifndef _Partition_Spliter_HeaderFile
#define _Partition_Spliter_HeaderFile #define _Partition_Spliter_HeaderFile
@ -132,10 +145,15 @@ Partition_Inter3d myInter3d;
TopTools_MapOfOrientedShape myAddedFacesMap; TopTools_MapOfOrientedShape myAddedFacesMap;
TopTools_MapOfShape myEqualEdges; TopTools_MapOfShape myEqualEdges;
TopTools_DataMapOfShapeShape myInternalFaces; TopTools_DataMapOfShapeShape myInternalFaces;
TopTools_DataMapOfShapeShape myIntNotClFaces;
}; };
// other Inline functions and methods (like "C++: function call" methods) // other Inline functions and methods (like "C++: function call" methods)
// //

View File

@ -1,17 +1,29 @@
// File generated by CPPExt (Value) // GEOM PARTITION : partition algorithm
// 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 : Partition_Spliter.ixx
// Module : GEOM
#include "Partition_Spliter.jxx" #include "Partition_Spliter.jxx"

View File

@ -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 #ifndef _BRepAlgo_AsDes_HeaderFile
#include <BRepAlgo_AsDes.hxx> #include <BRepAlgo_AsDes.hxx>
#endif #endif