-
diff --git a/doc/salome/tui/images/occ.gif b/doc/salome/tui/images/occ.gif
deleted file mode 100755
index ce017c8ae..000000000
Binary files a/doc/salome/tui/images/occ.gif and /dev/null differ
diff --git a/doc/salome/tui/static/myheader.html b/doc/salome/tui/static/myheader.html
deleted file mode 100755
index d2efb75fa..000000000
--- a/doc/salome/tui/static/myheader.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- Main Page
-
-
-
-
-
-
-
diff --git a/src/GEOMDS/GEOMDS_Commands.cxx b/src/GEOMDS/GEOMDS_Commands.cxx
deleted file mode 100644
index fa858673d..000000000
--- a/src/GEOMDS/GEOMDS_Commands.cxx
+++ /dev/null
@@ -1,302 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-// GEOM GEOMDS : implementation of Geometry component data structure and Geometry documents management
-// File : GeomDS_Commands.cxx
-// Author : Yves FRICAUD/Lucien PIGNOLONI
-// Module : GEOM
-// $Header$
-//
-using namespace std;
-#include "utilities.h"
-#include "GEOMDS_Commands.ixx"
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-
-//=======================================================================
-//function : GEOMDS_Commands
-//purpose :
-//=======================================================================
-GEOMDS_Commands::GEOMDS_Commands(const TDF_Label& Main)
- : myLab(Main)
-{
-}
-
-
-//=======================================================================
-// function : Generated()
-// purpose :
-//=======================================================================
-TDF_Label GEOMDS_Commands::Generated(const TopoDS_Shape& S,
- const TCollection_ExtendedString& Name)
-{
- TDF_Label NewLab = myLab.NewChild();
- TNaming_Builder B(NewLab);
- B.Generated(S);
- TDataStd_Name::Set(NewLab,Name);
- return NewLab;
-}
-
-
-
-//=======================================================================
-// function : Generated()
-// purpose :
-//=======================================================================
-TDF_Label GEOMDS_Commands::Generated(const TopoDS_Shape& S1,
- const TopoDS_Shape& S2,
- const TCollection_ExtendedString& Name)
-{
- TDF_Label NewLab = myLab.NewChild();
- TNaming_Builder B(NewLab);
- B.Generated(S1,S2);
- TDataStd_Name::Set(NewLab,Name);
- return NewLab;
-}
-
-
-
-//=======================================================================
-// function : AddShape()
-// purpose :
-//=======================================================================
-TDF_Label GEOMDS_Commands::AddShape(const TopoDS_Shape& S,
- const TCollection_ExtendedString& Name)
-{
- TDF_Label NewLab = myLab.NewChild();
- TNaming_Builder B(NewLab);
- B.Select(S,S);
- TDataStd_Name::Set(NewLab,Name);
- return NewLab;
-}
-
-
-//=======================================================================
-// function : AddIndependentShape()
-// purpose : SAME than AddShape() : will be renamed later
-//=======================================================================
-TDF_Label GEOMDS_Commands::AddIndependentShape(const TopoDS_Shape& S,
- const TCollection_AsciiString& nameIOR)
-{
- TDF_Label NewLab = myLab.NewChild();
- TNaming_Builder B(NewLab);
- B.Select(S,S);
- TDataStd_Name::Set(NewLab, nameIOR);
- return NewLab;
-}
-
-
-//=======================================================================
-// function : AddDependentShape()
-// purpose :
-//=======================================================================
-TDF_Label GEOMDS_Commands::AddDependentShape(const TopoDS_Shape& S,
- const TCollection_AsciiString& nameIOR,
- const TDF_Label& mainLab)
-{
- TDF_Label NewLab = myLab.NewChild();
- TNaming_Builder B(NewLab);
- B.Select(S,S);
- TDataStd_Name::Set(NewLab, nameIOR);
- /* NewLab has a reference attribute to mainLab (the main shape in fact) */
- TDF_Reference::Set(NewLab, mainLab) ;
- return NewLab;
-}
-
-
-
-//=======================================================================
-// function : AddConstructiveElement()
-// purpose :
-//=======================================================================
-TDF_Label GEOMDS_Commands::AddConstructiveElement(const TopoDS_Shape& S,
- const TCollection_ExtendedString& nameIOR,
- const GEOMDS_ConstructiveType& aType)
-{
- TDF_Label NewLab = myLab.NewChild();
- TNaming_Builder B(NewLab);
- B.Select(S,S);
- TDataStd_Name::Set(NewLab, nameIOR);
- /* Add the Attribute Constructive Element coded with a TDataStd_Integer from an enum */
- TDataStd_Integer::Set(NewLab, Standard_Integer(aType));
- return NewLab;
-}
-
-
-//=======================================================================
-// function : AddIORNameAttribute()
-// purpose : Add attribute TDataStd_Name to a label
-// : this attribute represents the name/IOR of object
-// : Return false if attribute exist before
-//=======================================================================
-Standard_Boolean GEOMDS_Commands::AddIORNameAttribute(const TDF_Label& aLabel,
- const TCollection_ExtendedString& nameIOR)
-{
- if( this->HasIOR(aLabel) )
- return false ;
- TDataStd_Name::Set(aLabel, nameIOR);
- return true ;
-}
-
-
-
-//=======================================================================
-// function : IsConstructiveElement() 1/2
-// purpose : Return true if 'aLabel' is a constructive element
-//=======================================================================
-Standard_Boolean GEOMDS_Commands::IsConstructiveElement(const TDF_Label& aLabel)
-{
- Handle(TDataStd_Integer) anAttType ;
- if( aLabel.FindAttribute(TDataStd_Integer::GetID(), anAttType ) )
- return true ;
- return false;
-}
-
-
-//=======================================================================
-// function : IsConstructiveElement() 2/2
-// purpose : Return true if 'aLabel' is a constructive element and return the
-// : topology ' returnTopo' and type 'returnType'
-//=======================================================================
-Standard_Boolean GEOMDS_Commands::IsConstructiveElement(const TDF_Label& aLabel,
- TopoDS_Shape& returnTopo,
- GEOMDS_ConstructiveType& returnType)
-{
- Handle(TDataStd_Integer) anAttType ;
- Handle(TNaming_NamedShape) anAttTopo ;
-
- if( aLabel.FindAttribute(TDataStd_Integer::GetID(), anAttType) && aLabel.FindAttribute(TNaming_NamedShape::GetID(), anAttTopo)) {
-
- returnTopo = TNaming_Tool::GetShape(anAttTopo) ;
- returnType = GEOMDS_ConstructiveType( anAttType->Get() ) ;
- return true ;
- }
- return false;
-}
-
-
-//=======================================================================
-// function : GetShape()
-// purpose : return true and 'returnTopo' if a topology is found on 'aLabel'
-//=======================================================================
-Standard_Boolean GEOMDS_Commands::GetShape(const TDF_Label& aLabel,
- TopoDS_Shape& returnTopo)
-{
- Handle(TNaming_NamedShape) anAttTopo ;
- if( aLabel.FindAttribute(TNaming_NamedShape::GetID(), anAttTopo)) {
- returnTopo = TNaming_Tool::GetShape(anAttTopo) ;
- return true ;
- }
- return false;
-}
-
-
-//=======================================================================
-// function : IsDependentShape()
-// purpose : return true if the shape in the label is dependant (a sub shape)
-//=======================================================================
-Standard_Boolean GEOMDS_Commands::IsDependentShape(const TDF_Label& aLabel)
-{
- Handle(TDF_Reference) anAttRef ;
- if( aLabel.FindAttribute(TDF_Reference::GetID(), anAttRef))
- return true ;
- return false;
-}
-
-
-
-//=======================================================================
-// function : GetMainShapeLabel()
-// purpose : return true if an attribute Reference is found for 'aLabel'
-// : so 'returnMainLabel' is defined. 'aLabel' is supposed to be
-// : a dependent object, otherwise return false.
-//=======================================================================
-Standard_Boolean GEOMDS_Commands::GetMainShapeLabel(const TDF_Label& aLabel,
- TDF_Label& returnMainLabel)
-{
- Handle(TDF_Reference) anAttRef ;
- if( aLabel.FindAttribute(TDF_Reference::GetID(), anAttRef)) {
- returnMainLabel = anAttRef->Get() ;
- return true ;
- }
- return false;
-}
-
-
-//=======================================================================
-// function : ClearAllIOR()
-// purpose : Clear all IOR from aLabel usually the main label.
-// : Useful before reconstruction after a load of a document.
-// : IOR is the attribute often called 'name' or 'nameIOR'
-//=======================================================================
-Standard_Boolean GEOMDS_Commands::ClearAllIOR(const TDF_Label& aLabel)
-{
- TDF_ChildIterator it;
- Handle(TDataStd_Name) anAttName ;
- bool notTested = false ;
- for( it.Initialize(aLabel, Standard_False); it.More(); it.Next() ) {
- TDF_Label L = it.Value() ;
- if( L.FindAttribute(TDataStd_Name::GetID(), anAttName) ) {
- notTested = L.ForgetAttribute(TDataStd_Name::GetID()) ;
- if(notTested)
- MESSAGE("in GEOMDS_Commands::ClearAllIOR : IOR CLEARED" )
- ClearAllIOR(L);
- }
- }
- return true ;
-}
-
-
-//=======================================================================
-// function : HasIOR()
-// purpose : Return true is 'aLabel' has an attribute IOR (nameIOR)
-//=======================================================================
-Standard_Boolean GEOMDS_Commands::HasIOR(const TDF_Label& aLabel)
-{
- Handle(TDataStd_Name) anAttName ;
- if( !aLabel.FindAttribute(TDataStd_Name::GetID(), anAttName) )
- return false ;
- return true ;
-}
-
-//=======================================================================
-// function : ReturnNameIOR()
-// purpose : Return true is 'aLabel' has an attribute IOR (nameIOR)
-// : and define 'returnNameIOR'
-//=======================================================================
-Standard_Boolean GEOMDS_Commands::ReturnNameIOR(const TDF_Label& aLabel,
- TCollection_ExtendedString& returnNameIOR)
-{
- Handle(TDataStd_Name) anAttName ;
- if( !aLabel.FindAttribute(TDataStd_Name::GetID(), anAttName) )
- return false ;
- else {
- returnNameIOR = anAttName->Get() ;
- return true ;
- }
-}
diff --git a/src/GEOMDS/GEOMDS_Commands.jxx b/src/GEOMDS/GEOMDS_Commands.jxx
deleted file mode 100644
index 662528e63..000000000
--- a/src/GEOMDS/GEOMDS_Commands.jxx
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-// GEOM GEOMDS : implementation of Geometry component data structure and Geometry documents management
-// File : GEOMDS_Commands.jxx
-// Module : GEOM
-//
-#ifndef _TDF_Label_HeaderFile
-#include
-#endif
-#ifndef _TopoDS_Shape_HeaderFile
-#include
-#endif
-#ifndef _TCollection_ExtendedString_HeaderFile
-#include
-#endif
-#ifndef _GEOMDS_Commands_HeaderFile
-#include "GEOMDS_Commands.hxx"
-#endif
diff --git a/src/NMTAlgo/Makefile.am b/src/NMTAlgo/Makefile.am
deleted file mode 100644
index 407b7510b..000000000
--- a/src/NMTAlgo/Makefile.am
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-# GEOM NMTAlgo : partition algorithm
-# File : Makefile.in
-# Author : Julia DOROVSKIKH
-# Modified by : Alexander BORODIN (OCN) - autotools usage
-# Module : GEOM
-# $Header$
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-# header files
-salomeinclude_HEADERS = \
- NMTAlgo_Splitter1.hxx \
- NMTAlgo_Splitter1.ixx \
- NMTAlgo_Splitter1.jxx \
- NMTAlgo_Splitter.hxx \
- NMTAlgo_Splitter.ixx \
- NMTAlgo_Splitter.jxx \
- NMTAlgo_Builder.hxx \
- NMTAlgo_Builder.ixx \
- NMTAlgo_Builder.jxx \
- NMTAlgo_Algo.hxx \
- NMTAlgo_Algo.ixx \
- NMTAlgo_Algo.jxx \
- NMTAlgo_Loop3d.hxx \
- NMTAlgo_Loop3d.ixx \
- NMTAlgo_Loop3d.jxx \
- NMTAlgo_Tools.hxx \
- NMTAlgo_Tools.ixx \
- NMTAlgo_Tools.jxx
-
-# Libraries targets
-lib_LTLIBRARIES = libNMTAlgo.la
-
-dist_libNMTAlgo_la_SOURCES = \
- NMTAlgo_Algo.cxx \
- NMTAlgo_Builder.cxx \
- NMTAlgo_Loop3d.cxx \
- NMTAlgo_Splitter.cxx \
- NMTAlgo_Splitter1.cxx \
- NMTAlgo_Splitter_1.cxx \
- NMTAlgo_Splitter_2.cxx \
- NMTAlgo_Tools.cxx
-
-# additional information to compile and link file
-
-libNMTAlgo_la_CPPFLAGS = \
- $(CAS_CPPFLAGS) \
- $(KERNEL_CXXFLAGS) \
- -I$(srcdir)/../NMTDS \
- -I$(srcdir)/../NMTTools
-
-libNMTAlgo_la_LDFLAGS = \
- $(STDLIB) \
- $(CAS_LDPATH) -lTKBool -lTKBO \
- $(KERNEL_LDFLAGS) \
- ../NMTTools/libNMTTools.la
diff --git a/src/NMTAlgo/NMTAlgo.cdl b/src/NMTAlgo/NMTAlgo.cdl
deleted file mode 100644
index 1af7ea7e2..000000000
--- a/src/NMTAlgo/NMTAlgo.cdl
+++ /dev/null
@@ -1,59 +0,0 @@
--- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
---
--- Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
---
--- File: NMTAlgo.cdl
--- Created: Tue Jan 27 14:39:05 2004
--- Author: Peter KURNEV
-
-
-package NMTAlgo
-
- ---Purpose:
-
-uses
- TCollection,
- TColStd,
- gp,
- TopAbs,
- TopoDS,
- TopTools,
-
- BooleanOperations,
- BOPTColStd,
- IntTools,
- BOPTools,
- BOP,
-
- NMTDS,
- NMTTools,
-
- BRep,
- BRepAlgo
-
-is
- deferred class Algo;
- class Splitter;
- class Splitter1; --modified by NIZNHY-PKV Wed Feb 11 14:28:50 2004
- class Builder;
- class Tools;
- class Loop3d;
-
-end NMTAlgo;
diff --git a/src/NMTAlgo/NMTAlgo.pro b/src/NMTAlgo/NMTAlgo.pro
deleted file mode 100644
index 213e5be2b..000000000
--- a/src/NMTAlgo/NMTAlgo.pro
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-TEMPLATE = lib
-TARGET = NMTAlgo
-DESTDIR = ../../lib
-MOC_DIR = ../../moc
-OBJECTS_DIR = ../../obj/$$TARGET
-
-CASROOT = $$(CASROOT)
-CAS_CPPFLAGS = $${CASROOT}/inc
-
-KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome
-
-STDLIB = -lstdc++
-
-CAS_LDPATH = -L$$(CASROOT)/Linux/lib
-
-KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome
-
-INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} ../NMTDS ../NMTTools
-
-LIBS += $${STDLIB} $${CAS_LDPATH} -lTKBool -lTKBO $${KERNEL_LDFLAGS} -L$$(GEOM_ROOT_DIR)/lib -lNMTTools
-
-CONFIG -= debug release debug_and_release
-CONFIG += qt thread debug dll shared
-
-win32:DEFINES += WIN32
-DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS
-
-HEADERS = NMTAlgo_Splitter1.hxx
-HEADERS += NMTAlgo_Splitter.hxx
-HEADERS += NMTAlgo_Builder.hxx
-HEADERS += NMTAlgo_Algo.hxx
-
-SOURCES = NMTAlgo_Algo.cxx
-SOURCES += NMTAlgo_Builder.cxx
-SOURCES += NMTAlgo_Loop3d.cxx
-SOURCES += NMTAlgo_Splitter.cxx
-SOURCES += NMTAlgo_Splitter1.cxx
-SOURCES += NMTAlgo_Splitter_1.cxx
-SOURCES += NMTAlgo_Splitter_2.cxx
-SOURCES += NMTAlgo_Tools.cxx
-
-includes.files = $$HEADERS
-includes.path = ../../include
-
-INSTALLS += includes
diff --git a/src/NMTAlgo/NMTAlgo_Algo.cdl b/src/NMTAlgo/NMTAlgo_Algo.cdl
deleted file mode 100644
index 546ab20e8..000000000
--- a/src/NMTAlgo/NMTAlgo_Algo.cdl
+++ /dev/null
@@ -1,78 +0,0 @@
--- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
---
--- Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
---
--- File: NMTAlgo_Algo.cdl
--- Created: Tue Jan 27 14:41:04 2004
--- Author: Peter KURNEV
-
-
-deferred class Algo from NMTAlgo
-
- ---Purpose:
-
-uses
- Shape from TopoDS,
-
- DSFiller from NMTTools,
- PDSFiller from NMTTools
-
---raises
-
-is
- Initialize
- returns Algo from NMTAlgo;
- ---C++: alias "Standard_EXPORT virtual ~NMTAlgo_Algo();"
-
-
- SetFiller(me:out;
- aDSF: DSFiller from NMTTools);
-
- Filler(me)
- returns DSFiller from NMTTools;
- ---C++: return const &
-
- ComputeWithFiller(me:out;
- aDSF: DSFiller from NMTTools)
- is virtual;
-
- Clear (me:out)
- is virtual;
-
- Shape (me)
- returns Shape from TopoDS;
- ---C++: return const &
-
- IsDone(me)
- returns Boolean from Standard;
-
- ErrorStatus (me)
- returns Integer from Standard;
-
-fields
- myDSFiller : PDSFiller from NMTTools is protected;
- myShape : Shape from TopoDS is protected;
- --
- myIsDone : Boolean from Standard is protected;
- myIsComputed : Boolean from Standard is protected;
- myErrorStatus : Integer from Standard is protected;
- myDraw : Integer from Standard is protected;
-
-end Algo;
diff --git a/src/NMTAlgo/NMTAlgo_Algo.cxx b/src/NMTAlgo/NMTAlgo_Algo.cxx
deleted file mode 100644
index 50b59e90b..000000000
--- a/src/NMTAlgo/NMTAlgo_Algo.cxx
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-// File: NMTAlgo_Algo.cxx
-// Created: Tue Jan 27 14:58:21 2004
-// Author: Peter KURNEV
-//
-//
-#include
-#include
-//=======================================================================
-// function: NMTAlgo_Algo::NMTAlgo_Algo
-// purpose:
-//=======================================================================
- NMTAlgo_Algo::NMTAlgo_Algo()
-:
- myDSFiller(NULL),
- myIsDone(Standard_False),
- myIsComputed(Standard_False),
- myErrorStatus(1)
-{
- myDraw=0;
- //
- char* xr=getenv("MDISP");
- if (xr!=NULL) {
- if (!strcmp (xr, "yes")) {
- myDraw=1;
- }
- }
-}
-//=======================================================================
-// function: NMTAlgo_Algo
-// purpose:
-//=======================================================================
- NMTAlgo_Algo::~NMTAlgo_Algo()
-{
- Clear();
-}
-//=======================================================================
-// function: Clear
-// purpose:
-//=======================================================================
- void NMTAlgo_Algo::Clear()
-{
- myIsDone=Standard_False;
- myIsComputed=Standard_False;
- myErrorStatus=1;
-}
-//=======================================================================
-// function: SetFiller
-// purpose:
-//=======================================================================
- void NMTAlgo_Algo::SetFiller(const NMTTools_DSFiller& aDSF)
-{
- myDSFiller=(NMTTools_DSFiller *)&aDSF;
-}
-//=======================================================================
-// function: Filler
-// purpose:
-//=======================================================================
- const NMTTools_DSFiller& NMTAlgo_Algo::Filler()const
-{
- return *myDSFiller;
-}
-//=======================================================================
-// function: ComputeWithFiller
-// purpose:
-//=======================================================================
- void NMTAlgo_Algo::ComputeWithFiller(const NMTTools_DSFiller& aDSF)
-{
- SetFiller(aDSF);
-}
-//=======================================================================
-// function: Shape
-// purpose:
-//=======================================================================
- const TopoDS_Shape& NMTAlgo_Algo::Shape()const
-{
- return myShape;
-}
-//=======================================================================
-// function: IsDone
-// purpose:
-//=======================================================================
- Standard_Boolean NMTAlgo_Algo::IsDone()const
-{
- return myIsDone;
-}
-//=======================================================================
-// function: ErrorStatus
-// purpose:
-//=======================================================================
- Standard_Integer NMTAlgo_Algo::ErrorStatus()const
-{
- return myErrorStatus;
-}
-/*
-//=======================================================================
-// function: Compute
-// purpose:
-//=======================================================================
- void NMTAlgo_Algo::Compute()
-{
-}
-//=======================================================================
-// function: SetCompositeShape
-// purpose:
-//=======================================================================
- void NMTAlgo_Algo::SetCompositeShape(const TopoDS_Shape& aS)
-{
- myCompositeShape=aS;
-}
-//=======================================================================
-// function: CompositeShape
-// purpose:
-//=======================================================================
- const TopoDS_Shape& NMTAlgo_Algo::CompositeShape()const
-{
- return myCompositeShape;
-}
-*/
diff --git a/src/NMTAlgo/NMTAlgo_Algo.hxx b/src/NMTAlgo/NMTAlgo_Algo.hxx
deleted file mode 100644
index dc73c1088..000000000
--- a/src/NMTAlgo/NMTAlgo_Algo.hxx
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _NMTAlgo_Algo_HeaderFile
-#define _NMTAlgo_Algo_HeaderFile
-
-#ifndef _NMTTools_PDSFiller_HeaderFile
-#include
-#endif
-#ifndef _TopoDS_Shape_HeaderFile
-#include
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include
-#endif
-#ifndef _Standard_Integer_HeaderFile
-#include
-#endif
-class NMTTools_DSFiller;
-class TopoDS_Shape;
-
-
-#ifndef _Standard_HeaderFile
-#include
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include
-#endif
-
-class NMTAlgo_Algo {
-
-public:
-
- void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
- // Methods PUBLIC
- //
-Standard_EXPORT void SetFiller(const NMTTools_DSFiller& aDSF) ;
-Standard_EXPORT const NMTTools_DSFiller& Filler() const;
-Standard_EXPORT virtual void ComputeWithFiller(const NMTTools_DSFiller& aDSF) ;
-Standard_EXPORT virtual void Clear() ;
-Standard_EXPORT const TopoDS_Shape& Shape() const;
-Standard_EXPORT Standard_Boolean IsDone() const;
-Standard_EXPORT Standard_Integer ErrorStatus() const;
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- //
-Standard_EXPORT NMTAlgo_Algo();
-Standard_EXPORT virtual ~NMTAlgo_Algo();
-
-
- // Fields PROTECTED
- //
-NMTTools_PDSFiller myDSFiller;
-TopoDS_Shape myShape;
-Standard_Boolean myIsDone;
-Standard_Boolean myIsComputed;
-Standard_Integer myErrorStatus;
-Standard_Integer myDraw;
-
-
-private:
-
- // Methods PRIVATE
- //
-
-
- // Fields PRIVATE
- //
-
-
-};
-
-
-
-
-
-// other Inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Algo.ixx b/src/NMTAlgo/NMTAlgo_Algo.ixx
deleted file mode 100644
index cb4c135df..000000000
--- a/src/NMTAlgo/NMTAlgo_Algo.ixx
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#include
diff --git a/src/NMTAlgo/NMTAlgo_Algo.jxx b/src/NMTAlgo/NMTAlgo_Algo.jxx
deleted file mode 100644
index fc8787025..000000000
--- a/src/NMTAlgo/NMTAlgo_Algo.jxx
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _NMTTools_DSFiller_HeaderFile
-#include
-#endif
-#ifndef _TopoDS_Shape_HeaderFile
-#include
-#endif
-#ifndef _NMTAlgo_Algo_HeaderFile
-#include
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Builder.cdl b/src/NMTAlgo/NMTAlgo_Builder.cdl
deleted file mode 100644
index 9527e0a21..000000000
--- a/src/NMTAlgo/NMTAlgo_Builder.cdl
+++ /dev/null
@@ -1,98 +0,0 @@
--- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
---
--- Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
---
--- File: NMTAlgo_Builder.cdl
--- Created: Tue Jan 27 15:09:45 2004
--- Author: Peter KURNEV
-
-
-class Builder from NMTAlgo
- inherits Algo from NMTAlgo
-
- ---Purpose:
-
-uses
- Shape from TopoDS,
- Face from TopoDS,
- Edge from TopoDS,
- IndexedMapOfShape from TopTools,
- IndexedDataMapOfShapeListOfShape from TopTools,
- IndexedDataMapOfShapeShape from TopTools,
- Image from BRepAlgo,
- DSFiller from NMTTools
---raises
-
-is
- Create
- returns Builder from NMTAlgo;
- ---C++: alias "Standard_EXPORT virtual ~NMTAlgo_Builder();"
-
- Clear (me:out)
- is redefined;
-
- ComputeWithFiller(me:out;
- aDSF: DSFiller from NMTTools)
- is redefined;
-
- FillImagesEdges (me:out)
- is protected;
-
- FillIn2DParts (me:out)
- is protected;
-
- FillImagesFaces (me:out)
- is protected;
-
- FillSDFaces (me:out)
- is protected;
-
- --- Queries
- SplitVertices (me:out)
- is protected;
-
- IsSectionEdge (me;
- E : Edge from TopoDS)
- returns Boolean from Standard
- is protected;
-
- HasSameDomainF(me;
- F : Face from TopoDS)
- returns Boolean from Standard
- is protected;
-
- IsSameDomainF(me;
- F1 : Face from TopoDS;
- F2 : Face from TopoDS)
- returns Boolean from Standard
- is protected;
-
-fields
-
- myImagesEdges : Image from BRepAlgo is protected;
- myImagesFaces : Image from BRepAlgo is protected;
-
- myQueryShapes : IndexedMapOfShape from TopTools is protected;
- --
- myIn2DParts : IndexedDataMapOfShapeListOfShape from TopTools is protected;
- mySectionParts : IndexedDataMapOfShapeListOfShape from TopTools is protected;
- mySDFaces : IndexedDataMapOfShapeShape from TopTools is protected;
- --
-end Builder;
diff --git a/src/NMTAlgo/NMTAlgo_Builder.cxx b/src/NMTAlgo/NMTAlgo_Builder.cxx
deleted file mode 100644
index 07128bb63..000000000
--- a/src/NMTAlgo/NMTAlgo_Builder.cxx
+++ /dev/null
@@ -1,669 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-// File: NMTAlgo_Inter3d.cxx
-// Created: Tue Jan 27 15:14:13 2004
-// Author: Peter KURNEV
-//
-//
-#include
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-#include
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-//=======================================================================
-// function: NMTAlgo_Inter3d::NMTAlgo_Inter3d()
-// purpose:
-//=======================================================================
- NMTAlgo_Builder::NMTAlgo_Builder()
-:
- NMTAlgo_Algo()
-{
-}
-//=======================================================================
-// function: ~NMTAlgo_Builder
-// purpose:
-//=======================================================================
- NMTAlgo_Builder::~NMTAlgo_Builder()
-{
- Clear();
-}
-//=======================================================================
-// function: Clear
-// purpose:
-//=======================================================================
- void NMTAlgo_Builder::Clear()
-{
- NMTAlgo_Algo::Clear();
- //
- myImagesEdges.Clear();
- myImagesFaces.Clear();
- myIn2DParts.Clear();
- mySectionParts.Clear();
- mySDFaces.Clear();
-}
-//=======================================================================
-// function: ComputeWithFiller
-// purpose:
-//=======================================================================
- void NMTAlgo_Builder::ComputeWithFiller(const NMTTools_DSFiller& aDSF)
-{
- myErrorStatus=0;
- myIsDone=Standard_False;
- //
- SetFiller(aDSF);
- // edges
- FillImagesEdges();
- // faces
- FillIn2DParts();
- FillImagesFaces();
- FillSDFaces();
-}
-
-//=======================================================================
-// function: FillSDFaces
-// purpose:
-//=======================================================================
- void NMTAlgo_Builder::FillSDFaces()
-{
- const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
- NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
- BOPTools_InterferencePool* pIP=(BOPTools_InterferencePool*)&myDSFiller->InterfPool();
- BOPTools_CArray1OfSSInterference& aFFs=pIP->SSInterferences();
- IntTools_Context& aCtx= pPF->ChangeContext();
- //
- Standard_Boolean bIsSDF;
- Standard_Integer i, j, aNbFF, nF1, nF2, aNbPBInOn, aNbC;
- TopTools_ListIteratorOfListOfShape aItF1, aItF2;
- NMTTools_ListOfCoupleOfShape aLCS;
- //
- mySDFaces.Clear();
- //
- // 1. For each FF find among images of faces
- // all pairs of same domain faces (SDF) [=> aLCS]
- aNbFF=aFFs.Extent();
- for (i=1; i<=aNbFF; ++i) {
- BOPTools_SSInterference& aFF=aFFs(i);
- aFF.Indices(nF1, nF2);
- //
- const TopoDS_Face& aF1=TopoDS::Face(aDS.Shape(nF1));
- const TopoDS_Face& aF2=TopoDS::Face(aDS.Shape(nF2));
- //
- // if there are no in/on 2D split parts the faces nF1, nF2
- // can not be SDF
- const BOPTools_ListOfPaveBlock& aLPBInOn=aFF.PaveBlocks();
- aNbPBInOn=aLPBInOn.Extent();
- if (!aNbPBInOn) {
- continue;
- }
- //
- // if there is at least one section edge between faces nF1, nF2
- // they can not be SDF
- BOPTools_SequenceOfCurves& aSC=aFF.Curves();
- aNbC=aSC.Length();
- if (aNbC) {
- continue;
- }
- //
- // the faces are suspected to be SDF.
- // Try to find SDF among images of nF1, nF2
- const TopTools_ListOfShape& aLF1=myImagesFaces.Image(aF1);
- const TopTools_ListOfShape& aLF2=myImagesFaces.Image(aF2);
- //
- aItF1.Initialize(aLF1);
- for (; aItF1.More(); aItF1.Next()) {
- const TopoDS_Face& aF1x=TopoDS::Face(aItF1.Value());
- //
- aItF2.Initialize(aLF2);
- for (; aItF2.More(); aItF2.Next()) {
- const TopoDS_Face& aF2y=TopoDS::Face(aItF2.Value());
- bIsSDF=NMTTools_Tools::AreFacesSameDomain(aF1x, aF2y, aCtx);
- if (bIsSDF) {
- NMTTools_CoupleOfShape aCS;
- //
- aCS.SetShape1(aF1x);
- aCS.SetShape2(aF2y);
- aLCS.Append(aCS);
- }
- }
- }
- }//for (i=1; i<=aNbFF; ++i)
- //
- aNbC=aLCS.Extent();
- if (!aNbC) {
- return;
- }
- //
- // 2. Find Chains
- NMTTools_IndexedDataMapOfShapeIndexedMapOfShape aMC;
- //
- NMTTools_Tools::FindChains(aLCS, aMC);
- //
- // 3. Fill the map of SDF mySDFaces
- aNbC=aMC.Extent();
- for (i=1; i<=aNbC; ++i) {
- const TopoDS_Shape& aF=aMC.FindKey(i);
- const TopTools_IndexedMapOfShape& aMSDF=aMC(i);
- //
- aNbFF=aMSDF.Extent();
- for (j=1; j<=aNbFF; ++j) {
- const TopoDS_Shape& aFSD=aMSDF(j);
- mySDFaces.Add(aFSD, aF);
- }
- }
- //
-}
-//=======================================================================
-// function: FillImagesFaces
-// purpose:
-//=======================================================================
- void NMTAlgo_Builder::FillImagesFaces()
-{
- const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
- NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
- IntTools_Context& aCtx= pPF->ChangeContext();
- //
- Standard_Integer i, j, aNb, aNbE;
- TopTools_IndexedMapOfShape aMFence, aME;
- TColStd_IndexedMapOfInteger aMFP;
- //
- // 1. Select Faces to process (MFP)
- aNb=aDS.NumberOfShapesOfTheObject();
- for (i=1; i<=aNb; ++i) {
- const TopoDS_Shape& aF=aDS.Shape(i);
- if (aF.ShapeType()!=TopAbs_FACE) {
- continue;
- }
- if (aMFence.Contains(aF)) {
- continue;
- }
- aMFence.Add(aF);
- //
- if (myIn2DParts.Contains(aF)) {
- aMFP.Add(i);
- continue;
- }
- //
- if (mySectionParts.Contains(aF)) {
- aMFP.Add(i);
- continue;
- }
- //
- aME.Clear();
- TopExp::MapShapes(aF, TopAbs_EDGE, aME);
- //
- aNbE=aME.Extent();
- for(j=1; j<=aNbE; ++j) {
- const TopoDS_Shape& aE=aME(j);
- //
- if (myImagesEdges.HasImage(aE)) {
- aMFP.Add(i);
- break;
- }
- }
- }// for (i=1; i<=aNb; ++i)
- //
- // 2. ProcessFaces
- Standard_Boolean bToReverse, bIsClosed, bIsDegenerated;
- Standard_Integer aNbF, nF;
- TopoDS_Face aFF;
- TopoDS_Edge aSp;
- TopExp_Explorer anExp;
- TopTools_ListIteratorOfListOfShape aIt;
- BRepAlgo_Image aImagesFaces;
- TopAbs_Orientation anOriF;
- //
- aNbF=aMFP.Extent();
- for (i=1; i<=aNbF; ++i) {
- nF=aMFP(i);
- const TopoDS_Face& aF=TopoDS::Face(aDS.Shape(nF));
- anOriF=aF.Orientation();
- aFF=aF;
- aFF.Orientation(TopAbs_FORWARD);
- //
- aMFence.Clear();
- //
- // 2.1. Fill WES
- BOP_WireEdgeSet aWES;
- aWES.Initialize(aFF);
- //
- // 2.1.1. Add Split parts
- anExp.Init(aFF, TopAbs_EDGE);
- for (; anExp.More(); anExp.Next()) {
- const TopoDS_Edge& aE=TopoDS::Edge(anExp.Current());
- //
- if (!myImagesEdges.HasImage(aE)) {
- aWES.AddStartElement(aE);
- continue;
- }
- //
- bIsDegenerated=BRep_Tool::Degenerated(aE);
- bIsClosed=BRep_Tool::IsClosed(aE, aF);
- //
- const TopTools_ListOfShape& aLIE=myImagesEdges.Image(aE);
- aIt.Initialize(aLIE);
- for (; aIt.More(); aIt.Next()) {
- aSp=TopoDS::Edge(aIt.Value());
- //
- if (bIsDegenerated) {
- aSp.Orientation(aE.Orientation());
- aWES.AddStartElement(aSp);
- continue;
- }
- //
- if (bIsClosed){
- if (!aMFence.Contains(aSp)){
- aMFence.Add(aSp);
- //
- if (!BRep_Tool::IsClosed(aSp, aF)){
- BOPTools_Tools3D::DoSplitSEAMOnFace(aSp, aF);
- }
- //
- aSp.Orientation(TopAbs_FORWARD);
- aWES.AddStartElement(aSp);
- //
- aSp.Orientation(TopAbs_REVERSED);
- aWES.AddStartElement(aSp);
- continue;
- }
- }
- //
- bToReverse=BOPTools_Tools3D::IsSplitToReverse1(aSp, aE, aCtx);
- if (bToReverse) {
- aSp.Reverse();
- }
- aWES.AddStartElement(aSp);
- }
- }
- //
- // 2.1.2. Add In2D Parts
- if (myIn2DParts.Contains(aF)) {
- const TopTools_ListOfShape& aLE=myIn2DParts.FindFromKey(aF);
- aIt.Initialize(aLE);
- for (; aIt.More(); aIt.Next()) {
- aSp=TopoDS::Edge(aIt.Value());
- //
- aSp.Orientation(TopAbs_FORWARD);
- aWES.AddStartElement(aSp);
- //
- aSp.Orientation(TopAbs_REVERSED);
- aWES.AddStartElement(aSp);
- }
- }
- //
- // 2.1.3. Add Section Parts
- if (mySectionParts.Contains(aF)) {
- const TopTools_ListOfShape& aLE=mySectionParts.FindFromKey(aF);
- aIt.Initialize(aLE);
- for (; aIt.More(); aIt.Next()) {
- aSp=TopoDS::Edge(aIt.Value());
- //
- aSp.Orientation(TopAbs_FORWARD);
- aWES.AddStartElement(aSp);
- //
- aSp.Orientation(TopAbs_REVERSED);
- aWES.AddStartElement(aSp);
- }
- }
- //
- // 2.2. Build images Faces
- BOP_FaceBuilder aFB;
- //
- aFB.SetTreatment(0); // 0-Do Internal Edges
- aFB.SetTreatSDScales(0); // what is 0 ??
- //
- aFB.Do(aWES);
- //
- TopTools_ListOfShape aLFR;
- //
- const TopTools_ListOfShape& aLF=aFB.NewFaces();
-
- aIt.Initialize(aLF);
- for (; aIt.More(); aIt.Next()) {
- TopoDS_Shape& aFR=aIt.Value();
- if (anOriF==TopAbs_REVERSED) {
- aFR.Orientation(TopAbs_REVERSED);
- }
- aLFR.Append(aFR);
- }
-
- //
- // 2.3. Collect images Faces
- myImagesFaces.Bind(aF, aLFR);
- }//for (i=1; i<=aNbF; ++i)
-}
-//=======================================================================
-// function: FillIn2DParts
-// purpose:
-//=======================================================================
- void NMTAlgo_Builder::FillIn2DParts()
-{
- const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
- NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
- BOPTools_InterferencePool* pIP=(BOPTools_InterferencePool*)&myDSFiller->InterfPool();
- BOPTools_CArray1OfSSInterference& aFFs=pIP->SSInterferences();
- //
- Standard_Integer i, j, aNb, nF1, nF2, aNbFF, iFF, nSpIn, nSpSc, aNbCurves;
- BOPTColStd_IndexedDataMapOfIntegerIndexedMapOfInteger aFFMap;
- BOPTools_ListOfPaveBlock aLPBIn, aLPBSc;
- BOPTools_ListIteratorOfListOfPaveBlock aItPBIn, aItPBSc;
- TopTools_IndexedMapOfShape aMF, aMFence;
- TopTools_ListOfShape aLSpIn, aLSpSc;
- //
- BOP_BuilderTools::DoMap(aFFs, aFFMap);
- //
- // 1. Collect Splits In 2D (myIn2DParts) and
- // Section Edges (mySectionParts)
- // for each source face that involved in FF
- aNb=aFFMap.Extent();
- for (i=1; i<=aNb; ++i) {
- nF1=aFFMap.FindKey(i);
- const TopoDS_Shape& aF=aDS.Shape(nF1);
- //
- if (aMF.Contains(aF)) {
- continue;
- }
- aMF.Add(aF);
- //
- aLPBIn.Clear();
- aLPBSc.Clear();
- //
- const TColStd_IndexedMapOfInteger& aFFIndicesMap=aFFMap.FindFromIndex(i);
- //
- aNbFF=aFFIndicesMap.Extent();
- for (j=1; j<=aNbFF; ++j) {
- iFF=aFFIndicesMap(j);
- BOPTools_SSInterference& aFF=aFFs(iFF);
- nF2=aFF.OppositeIndex(nF1);
- //
- // In 2D
- pPF->RealSplitsInFace(0, nF2, nF1, aLPBIn);
- //
- // Sections
- BOPTools_SequenceOfCurves& aSC=aFF.Curves();
- aNbCurves=aSC.Length();
- if (!aNbCurves) {
- continue;
- }
- //
- const BOPTools_Curve& aBC=aSC(1);
- const BOPTools_ListOfPaveBlock& aLPB=aBC.NewPaveBlocks();
- //
- aItPBSc.Initialize(aLPB);
- for (; aItPBSc.More(); aItPBSc.Next()) {
- const BOPTools_PaveBlock& aPBSc=aItPBSc.Value();
- aLPBSc.Append(aPBSc);
- }
- }// for (j=1; j<=aNbFF; ++j)
- //
- // In 2D Parts
- aMFence.Clear();
- //
- aLSpIn.Clear();
- aItPBIn.Initialize(aLPBIn);
- for (; aItPBIn.More(); aItPBIn.Next()) {
- const BOPTools_PaveBlock& aPBR=aItPBIn.Value();
- nSpIn=aPBR.Edge();
- const TopoDS_Shape& aSpIn=aDS.Shape(nSpIn);
- if (!aMFence.Contains(aSpIn)){
- aMFence.Add(aSpIn);
- aLSpIn.Append(aSpIn);
- }
- }
- myIn2DParts.Add(aF, aLSpIn);
- //
- // Section Parts
- aLSpSc.Clear();
- aItPBSc.Initialize(aLPBSc);
- for (; aItPBSc.More(); aItPBSc.Next()) {
- const BOPTools_PaveBlock& aPBSc=aItPBSc.Value();
- nSpSc=aPBSc.Edge();
- const TopoDS_Shape& aSpSc=aDS.Shape(nSpSc);
- if (!aMFence.Contains(aSpSc)){
- aMFence.Add(aSpSc);
- aLSpSc.Append(aSpSc);
- }
- }
- mySectionParts.Add(aF, aLSpSc);
- } //for (i=1; i<=aNb; ++i)
-}
-
-//=======================================================================
-// function: FillImagesEdges
-// purpose:
-//=======================================================================
- void NMTAlgo_Builder::FillImagesEdges()
-{
- const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
- NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
- const BOPTools_SplitShapesPool& aSSP=pPF->SplitShapesPool();
- //
- Standard_Integer nE, aNb, aNbSp, nSp;
- BOPTools_ListIteratorOfListOfPaveBlock aIt;
- TopTools_IndexedMapOfShape aMFence;
- TopTools_ListOfShape aLSp;
- //
- aNb=aDS.NumberOfShapesOfTheObject();
- for (nE=1; nE<=aNb; ++nE) {
- const TopoDS_Shape& aE=aDS.Shape(nE);
- if (aE.ShapeType()!=TopAbs_EDGE) {
- continue;
- }
- if (aMFence.Contains(aE)) {
- continue;
- }
- aMFence.Add(aE);
- //
- const BOPTools_ListOfPaveBlock& aLPB=aSSP(aDS.RefEdge(nE));
- aNbSp=aLPB.Extent();
- //
- if (!aNbSp) {// no splits
- //myImagesEdges.Bind(aE, aE);
- continue;
- }
- //
- //modified by NIZNHY-PKV Fri Jan 21 17:01:10 2005 f
- if (aNbSp==1) {
- const BOPTools_PaveBlock& aPB1=aLPB.First();
- const BOPTools_PaveBlock& aPBR1=pPF->RealPaveBlock(aPB1);
- nSp=aPBR1.Edge();
- const TopoDS_Shape& aSp1=aDS.Shape(nSp);
- if (aSp1.IsSame(aE)) {
- continue;
- }
- }
- //modified by NIZNHY-PKV Fri Jan 21 17:01:14 2005 t
- //
- aLSp.Clear();
- aIt.Initialize(aLPB);
- for (; aIt.More(); aIt.Next()) {
- const BOPTools_PaveBlock& aPB=aIt.Value();
- const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB);
- nSp=aPBR.Edge();
- const TopoDS_Shape& aSp=aDS.Shape(nSp);
- aLSp.Append(aSp);
- }
- myImagesEdges.Bind(aE, aLSp);
- }
-}
-//=======================================================================
-// function: SplitVertices
-// purpose:
-//=======================================================================
- void NMTAlgo_Builder::SplitVertices()
-{
- const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
- NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
- const BOPTools_SplitShapesPool& aSSP=pPF->SplitShapesPool();
- //
- Standard_Integer nE, aNb, aNbSp, nV1, nV2;
- BOPTools_ListIteratorOfListOfPaveBlock aIt;
- //
- myQueryShapes.Clear();
- //
- aNb=aDS.NumberOfShapesOfTheObject();
- for (nE=1; nE<=aNb; ++nE) {
- const TopoDS_Shape& aE=aDS.Shape(nE);
- if (aE.ShapeType()!=TopAbs_EDGE) {
- continue;
- }
- //
- const BOPTools_ListOfPaveBlock& aLPB=aSSP(aDS.RefEdge(nE));
- aNbSp=aLPB.Extent();
- //
- if (!aNbSp) {// no splits
- continue;
- }
- //
- aIt.Initialize(aLPB);
- for (; aIt.More(); aIt.Next()) {
- const BOPTools_PaveBlock& aPB=aIt.Value();
- const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB);
- //
- nV1=aPBR.Pave1().Index();
- if (aDS.IsNewShape(nV1)) {
- const TopoDS_Shape& aV1=aDS.Shape(nV1);
- myQueryShapes.Add(aV1);
- }
- //
- nV2=aPBR.Pave2().Index();
- if (aDS.IsNewShape(nV2)) {
- const TopoDS_Shape& aV2=aDS.Shape(nV2);
- myQueryShapes.Add(aV2);
- }
- }
- }
-}
-//=======================================================================
-// function: IsSectionEdge
-// purpose:
-//=======================================================================
- Standard_Boolean NMTAlgo_Builder::IsSectionEdge(const TopoDS_Edge& aE)const
-{
- return myImagesEdges.HasImage(aE);
-}
-//=======================================================================
-// function: IsSameDomainF
-// purpose:
-//=======================================================================
- Standard_Boolean NMTAlgo_Builder::HasSameDomainF(const TopoDS_Face& aF1)const
-{
- Standard_Boolean bFlag=Standard_False;
- TopTools_ListIteratorOfListOfShape aItF1;
- //
- const TopTools_ListOfShape& aLF1=myImagesFaces.Image(aF1);
- aItF1.Initialize(aLF1);
- for (; aItF1.More(); aItF1.Next()) {
- const TopoDS_Shape& aF1x=aItF1.Value();
- //
- if (mySDFaces.Contains(aF1x)){
- return !bFlag;
- }
- }
- return bFlag;
-}
-//=======================================================================
-// function: IsSameDomainF
-// purpose:
-//=======================================================================
- Standard_Boolean NMTAlgo_Builder::IsSameDomainF(const TopoDS_Face& aF1,
- const TopoDS_Face& aF2)const
-{
- Standard_Boolean bFlag=Standard_False;
- TopTools_ListIteratorOfListOfShape aItF1, aItF2;
- //
- const TopTools_ListOfShape& aLF1=myImagesFaces.Image(aF1);
- const TopTools_ListOfShape& aLF2=myImagesFaces.Image(aF2);
- //
- aItF1.Initialize(aLF1);
- for (; aItF1.More(); aItF1.Next()) {
- const TopoDS_Shape& aF1x=aItF1.Value();
- //
- if (!mySDFaces.Contains(aF1x)){
- continue;
- }
- const TopoDS_Shape& aFSD1x=mySDFaces.FindFromKey(aF1x);
- //
- aItF2.Initialize(aLF2);
- for (; aItF2.More(); aItF2.Next()) {
- const TopoDS_Shape& aF2y=aItF2.Value();
- if (!mySDFaces.Contains(aF2y)){
- continue;
- }
- const TopoDS_Shape& aFSD2y=mySDFaces.FindFromKey(aF2y);
- if (aFSD1x.IsSame(aFSD2y)) {
- return !bFlag;
- }
- }
- }
- return bFlag;
-}
diff --git a/src/NMTAlgo/NMTAlgo_Builder.hxx b/src/NMTAlgo/NMTAlgo_Builder.hxx
deleted file mode 100644
index a5df73c8e..000000000
--- a/src/NMTAlgo/NMTAlgo_Builder.hxx
+++ /dev/null
@@ -1,126 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _NMTAlgo_Builder_HeaderFile
-#define _NMTAlgo_Builder_HeaderFile
-
-#ifndef _BRepAlgo_Image_HeaderFile
-#include
-#endif
-#ifndef _TopTools_IndexedMapOfShape_HeaderFile
-#include
-#endif
-#ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
-#include
-#endif
-#ifndef _TopTools_IndexedDataMapOfShapeShape_HeaderFile
-#include
-#endif
-#ifndef _NMTAlgo_Algo_HeaderFile
-#include
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include
-#endif
-class NMTTools_DSFiller;
-class TopoDS_Edge;
-class TopoDS_Face;
-
-
-#ifndef _Standard_HeaderFile
-#include
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include
-#endif
-
-class NMTAlgo_Builder : public NMTAlgo_Algo {
-
-public:
-
- void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
- // Methods PUBLIC
- //
-Standard_EXPORT NMTAlgo_Builder();
-Standard_EXPORT virtual ~NMTAlgo_Builder();
-Standard_EXPORT virtual void Clear() ;
-Standard_EXPORT virtual void ComputeWithFiller(const NMTTools_DSFiller& aDSF) ;
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- //
-Standard_EXPORT void FillImagesEdges() ;
-Standard_EXPORT void FillIn2DParts() ;
-Standard_EXPORT void FillImagesFaces() ;
-Standard_EXPORT void FillSDFaces() ;
-Standard_EXPORT void SplitVertices() ;
-Standard_EXPORT Standard_Boolean IsSectionEdge(const TopoDS_Edge& E) const;
-Standard_EXPORT Standard_Boolean HasSameDomainF(const TopoDS_Face& F) const;
-Standard_EXPORT Standard_Boolean IsSameDomainF(const TopoDS_Face& F1,const TopoDS_Face& F2) const;
-
-
- // Fields PROTECTED
- //
-BRepAlgo_Image myImagesEdges;
-BRepAlgo_Image myImagesFaces;
-TopTools_IndexedMapOfShape myQueryShapes;
-TopTools_IndexedDataMapOfShapeListOfShape myIn2DParts;
-TopTools_IndexedDataMapOfShapeListOfShape mySectionParts;
-TopTools_IndexedDataMapOfShapeShape mySDFaces;
-
-
-private:
-
- // Methods PRIVATE
- //
-
-
- // Fields PRIVATE
- //
-
-
-};
-
-
-
-
-
-// other Inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Builder.ixx b/src/NMTAlgo/NMTAlgo_Builder.ixx
deleted file mode 100644
index 283ec7648..000000000
--- a/src/NMTAlgo/NMTAlgo_Builder.ixx
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#include
-
-
-
-
diff --git a/src/NMTAlgo/NMTAlgo_Builder.jxx b/src/NMTAlgo/NMTAlgo_Builder.jxx
deleted file mode 100644
index f3e4dbe5a..000000000
--- a/src/NMTAlgo/NMTAlgo_Builder.jxx
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _NMTTools_DSFiller_HeaderFile
-#include
-#endif
-#ifndef _TopoDS_Edge_HeaderFile
-#include
-#endif
-#ifndef _TopoDS_Face_HeaderFile
-#include
-#endif
-#ifndef _NMTAlgo_Builder_HeaderFile
-#include
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.cdl b/src/NMTAlgo/NMTAlgo_Loop3d.cdl
deleted file mode 100644
index 190825523..000000000
--- a/src/NMTAlgo/NMTAlgo_Loop3d.cdl
+++ /dev/null
@@ -1,87 +0,0 @@
--- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
---
--- Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
---
-
-class Loop3d from NMTAlgo
-
- ---Purpose: Builds the shells from a set of faces.
- -- Provides methods for comparing faces mutual
- -- location.
-
-uses
- Vec from gp,
- MapOfOrientedShape from TopTools,
- IndexedDataMapOfShapeListOfShape from TopTools,
- Face from TopoDS,
- Edge from TopoDS,
- ListOfShape from TopTools,
- Shape from TopoDS
-
-is
-
- Create
- returns Loop3d from NMTAlgo ;
-
- AddConstFaces (me:out;
- S : Shape from TopoDS)
- ---Purpose: Add faces of as unique faces in the result.
- is static;
-
- AddSectionFaces (me:out;
- S : Shape from TopoDS)
- ---Purpose: Add faces of as double faces in the result.
- is static;
-
- MakeShells (me:out;
- AvoidFacesMap : MapOfOrientedShape from TopTools)
- returns ListOfShape from TopTools is static;
- ---Purpose: Make and return shells.
- -- can contain faces that must not be
- -- added to result shells.
- ---C++: return const &
-
-
- ---Category: class methods
-
- IsInside (myclass; E : Edge from TopoDS;
- F1, F2 : Face from TopoDS;
- CountDot : Boolean from Standard;
- Dot : in out Real from Standard;
- GoodOri : in out Boolean from Standard)
- returns Boolean from Standard;
- ---Purpose: check if is inside by edge .
- -- if , compute : scalar production of
- -- normalized vectors pointing inside faces, and
- -- check if faces are oriented well for sewing
-
- Normal (myclass; E : Edge from TopoDS;
- F : Face from TopoDS)
- returns Vec from gp;
-
-
-fields
-
- myNewShells : ListOfShape from TopTools; -- result
-
- myFaces : ListOfShape from TopTools;
- myEFMap : IndexedDataMapOfShapeListOfShape from TopTools;
-
-end Loop3d;
diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.cxx b/src/NMTAlgo/NMTAlgo_Loop3d.cxx
deleted file mode 100644
index fd7ebe256..000000000
--- a/src/NMTAlgo/NMTAlgo_Loop3d.cxx
+++ /dev/null
@@ -1,350 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-//using namespace std;
-//
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-static
- TopoDS_Edge FindEinF(const TopoDS_Edge&, const TopoDS_Face&);
-static
- gp_Vec NextNormal(const TopoDS_Edge&, const TopoDS_Face&);
-
-//=======================================================================
-//function :
-//purpose :
-//=======================================================================
- NMTAlgo_Loop3d::NMTAlgo_Loop3d()
-{
-}
-
-//=======================================================================
-//function : AddConstFaces
-//purpose : Add faces of as unique faces in the result.
-//=======================================================================
- void NMTAlgo_Loop3d::AddConstFaces(const TopoDS_Shape& S)
-{
- TopExp_Explorer FaceExp(S, TopAbs_FACE);
- for (; FaceExp.More(); FaceExp.Next()){
- myFaces.Append( FaceExp.Current() );
- }
- TopExp::MapShapesAndAncestors(S, TopAbs_EDGE, TopAbs_FACE, myEFMap);
-}
-
-//=======================================================================
-//function : AddSectionFaces
-//purpose : Add faces of as double faces in the result.
-//=======================================================================
- void NMTAlgo_Loop3d::AddSectionFaces(const TopoDS_Shape& S)
-{
- AddConstFaces( S );
- AddConstFaces( S.Reversed() );
-}
-
-//=======================================================================
-//function : MakeShells
-//purpose : Make and return shells.
-// can contain faces that must not be
-// added to result shells.
-//=======================================================================
- const TopTools_ListOfShape& NMTAlgo_Loop3d::MakeShells
- (const TopTools_MapOfOrientedShape& AvoidFacesMap)
-{
- myNewShells.Clear();
-
- BRep_Builder Builder;
- TopTools_MapOfShape CheckedEdgesMap;
- TopTools_MapOfOrientedShape AddedFacesMap;
-
- TopTools_ListIteratorOfListOfShape itF (myFaces);
- for (; itF.More(); itF.Next()) {
- const TopoDS_Shape& FF = itF.Value();
- if (AvoidFacesMap.Contains( FF ) ||
- ! AddedFacesMap.Add( FF ) )
- continue;
-
- // make a new shell
- TopoDS_Shell Shell;
- Builder.MakeShell(Shell);
- Builder.Add(Shell,FF);
-
- // clear the maps from shapes added to previous Shell
- TopTools_MapIteratorOfMapOfShape itEM (CheckedEdgesMap);
- for (; itEM.More(); itEM.Next()) {
- TopTools_ListOfShape& FL = myEFMap.ChangeFromKey( itEM.Key());
- TopTools_ListIteratorOfListOfShape it (FL);
- while ( it.More()) {
- if (AddedFacesMap.Contains( it.Value()))
- FL.Remove( it );
- else
- it.Next();
- }
- }
- CheckedEdgesMap.Clear();
-
-
- // loop on faces added to Shell; add their neighbor faces to Shell and so on
- TopoDS_Iterator itAddedF (Shell);
- for (; itAddedF.More(); itAddedF.Next()){
- const TopoDS_Face& F = TopoDS::Face (itAddedF.Value());
-
- // loop on edges of F; find a good neighbor face of F by E
- TopExp_Explorer EdgeExp(F, TopAbs_EDGE);
- for (; EdgeExp.More(); EdgeExp.Next()){
- const TopoDS_Edge& E = TopoDS::Edge( EdgeExp.Current());
- if (! CheckedEdgesMap.Add( E ))
- continue;
-
- // candidate faces list
- const TopTools_ListOfShape& FL = myEFMap.ChangeFromKey(E);
- if (FL.IsEmpty())
- continue;
- // select one of neighbors
- TopoDS_Face SelF;
- if (FL.Extent() == 2) {
- if (! F.IsSame( FL.First() ))
- SelF = TopoDS::Face( FL.First() );
- else if (!F.IsSame( FL.Last() ))
- SelF = TopoDS::Face( FL.Last() );
- }
- else {
- // check if a face already added to Shell shares E
- TopTools_ListIteratorOfListOfShape it (FL);
- Standard_Boolean found = Standard_False;
- for (; !found && it.More(); it.Next())
- if (F != it.Value())
- found = AddedFacesMap.Contains( it.Value() );
- if (found)
- continue;
- // select basing on geometrical check
- Standard_Boolean GoodOri, inside;
- Standard_Real dot, MaxDot = -100;
- TopTools_ListOfShape TangFL; // tangent faces
- for ( it.Initialize( FL ) ; it.More(); it.Next()) {
- const TopoDS_Face& NeighborF = TopoDS::Face( it.Value());
- if (NeighborF.IsSame( F ))
- continue;
- inside = NMTAlgo_Loop3d::IsInside( E, F, NeighborF, 1, dot, GoodOri);
- if (!GoodOri)
- continue;
- if (!inside)
- dot = -dot - 3;
- if (dot < MaxDot)
- continue;
- if ( IsEqual( dot, MaxDot))
- TangFL.Append(SelF);
- else
- TangFL.Clear();
- MaxDot = dot;
- SelF = NeighborF;
- }
- if (!TangFL.IsEmpty()) {
- for (it.Initialize( TangFL ); it.More(); it.Next()) {
- const TopoDS_Face& NeighborF = TopoDS::Face( it.Value());
- if (NMTAlgo_Loop3d:: IsInside( E, SelF , NeighborF, 0, dot, GoodOri))
- SelF = NeighborF;
- }
- }
- }
- if (!SelF.IsNull() &&
- AddedFacesMap.Add( SelF ) &&
- !AvoidFacesMap.Contains( SelF ))
- Builder.Add( Shell, SelF);
-
- } // loop on edges of F
-
- } // loop on the faces added to Shell
-
- // Shell is complete
- myNewShells.Append( Shell );
-
- } // loop on myFaces
-
-
- // prepare to the next call
- myFaces.Clear();
- myEFMap.Clear();
-
- return myNewShells;
-}
-//=======================================================================
-//function : Normal
-//purpose :
-//=======================================================================
- gp_Vec NMTAlgo_Loop3d::Normal(const TopoDS_Edge& E,
- const TopoDS_Face& F)
-{
- gp_Vec Norm, V1, V2;
- Standard_Real First, Last;
- gp_Pnt Ps;
-
- Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface (E, F, First, Last);
- Handle(Geom_Surface) Sf = BRep_Tool::Surface(F);
-
- gp_Pnt2d p = C2d->Value( 0.5*(First+Last) );
- Sf->D1(p.X(), p.Y(), Ps, V1, V2);
- Norm = V1.Crossed(V2);
-
- if (F.Orientation() == TopAbs_REVERSED )
- Norm.Reverse();
-
- return Norm;
-}
-//=======================================================================
-//function : IsInside
-//purpose : check if is inside by edge .
-// if , compute : scalar production of
-// normalized vectors pointing inside faces, and
-// check if faces are oriented well for sewing
-//=======================================================================
- Standard_Boolean NMTAlgo_Loop3d::IsInside(const TopoDS_Edge& E,
- const TopoDS_Face& F1,
- const TopoDS_Face& F2,
- const Standard_Boolean CountDot,
- Standard_Real& Dot,
- Standard_Boolean& GoodOri)
-{
- Standard_Real f, l;
- gp_Pnt P;
- gp_Vec Vc1, Vc2, Vin1, Vin2, Nf1, Nf2;
- Handle(Geom_Curve) Curve = BRep_Tool::Curve(E,f,l);
- Curve->D1( 0.5*(f + l), P, Vc2);
- TopoDS_Edge E1, E2 = FindEinF (E, F2);
- if (E2.Orientation() == TopAbs_REVERSED ) Vc2.Reverse();
-
- Nf1 = Normal(E,F1);
- Nf2 = Normal(E,F2);
-
- Standard_Real sin =
- Nf1.CrossSquareMagnitude(Nf2) / Nf1.SquareMagnitude() / Nf2.SquareMagnitude();
- Standard_Boolean tangent = sin < 0.001;
-
- Standard_Boolean inside = 0;
- if (tangent) {
- E1 = FindEinF (E, F1);
- gp_Vec NNf1 = NextNormal(E1,F1);
- gp_Vec NNf2 = NextNormal(E2,F2);
- Vin2 = NNf2.Crossed(Vc2);
- inside = Vin2 * NNf1 < 0;
- }
- else {
- Vin2 = Nf2.Crossed(Vc2);
- inside = Vin2 * Nf1 < 0;
- }
-
- if (!CountDot) return inside;
-
- if (tangent)
- Vin2 = Nf2.Crossed(Vc2);
- else
- E1 = FindEinF (E, F1);
-
- Vc1 = Vc2;
- if (E1.Orientation() != E2.Orientation())
- Vc1.Reverse();
- Vin1 = Nf1.Crossed(Vc1);
-
- if (tangent) {
- Standard_Real N1N2 = Nf1 * Nf2;
- GoodOri = (Vin2 * Vin1 < 0) ? N1N2 > 0 : N1N2 < 0;
- }
- else {
- Standard_Real V1N2 = Vin1 * Nf2;
- GoodOri = ( inside ? V1N2 <= 0 : V1N2 >= 0);
- }
-
- Vin1.Normalize();
- Vin2.Normalize();
-
- Dot = Vin2 * Vin1;
-
- return inside;
-}
-//=======================================================================
-//function : NextNormal
-//purpose : find normal to F at point a little inside F near the middle of E
-//warning : E must be properly oriented in F.
-//=======================================================================
-gp_Vec NextNormal(const TopoDS_Edge& E,
- const TopoDS_Face& F)
-{
- Standard_Real First, Last;
-
- Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface (E, F, First, Last);
- Handle(Geom_Surface) Sf = BRep_Tool::Surface(F);
-
- gp_Pnt2d p;
- gp_Vec2d v;
- C2d->D1( 0.5*(First+Last), p, v);
- if (E.Orientation() != F.Orientation())
- v.Reverse();
- gp_Dir2d dir( -v.Y(), v.X() ); // dir inside F
-
- Standard_Real duv = 1e-6; // this is not Ok and may give incorrect result if
- // resolutionUV of compared faces is very different. To have a good result,
- //it is necessary to get normal to faces at points equidistant from E in 3D
-
- p.SetX( p.X() + dir.X()*duv );
- p.SetY( p.Y() + dir.Y()*duv );
-
- gp_Pnt Ps;
- gp_Vec Norm, V1, V2;
- Sf->D1( p.X(), p.Y(), Ps, V1, V2);
- Norm = V1.Crossed(V2);
-
- if (F.Orientation() == TopAbs_REVERSED )
- Norm.Reverse();
-
- return Norm;
-}
-//=======================================================================
-//function : FindEinF
-//purpose : find E in F
-//=======================================================================
-TopoDS_Edge FindEinF(const TopoDS_Edge& E,
- const TopoDS_Face& F)
-{
- TopExp_Explorer expl (F, TopAbs_EDGE);
- for (; expl.More(); expl.Next())
- if( E.IsSame( expl.Current() ))
- return TopoDS::Edge(expl.Current());
- TopoDS_Edge nullE;
- return nullE;
-}
diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.hxx b/src/NMTAlgo/NMTAlgo_Loop3d.hxx
deleted file mode 100644
index b0dfb5adb..000000000
--- a/src/NMTAlgo/NMTAlgo_Loop3d.hxx
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _NMTAlgo_Loop3d_HeaderFile
-#define _NMTAlgo_Loop3d_HeaderFile
-
-#ifndef _TopTools_ListOfShape_HeaderFile
-#include
-#endif
-#ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
-#include
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include
-#endif
-#ifndef _Standard_Real_HeaderFile
-#include
-#endif
-class TopoDS_Shape;
-class TopTools_ListOfShape;
-class TopTools_MapOfOrientedShape;
-class TopoDS_Edge;
-class TopoDS_Face;
-class gp_Vec;
-
-
-#ifndef _Standard_HeaderFile
-#include
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include
-#endif
-
-class NMTAlgo_Loop3d {
-
-public:
-
- void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
- // Methods PUBLIC
- //
-Standard_EXPORT NMTAlgo_Loop3d();
-Standard_EXPORT void AddConstFaces(const TopoDS_Shape& S) ;
-Standard_EXPORT void AddSectionFaces(const TopoDS_Shape& S) ;
-Standard_EXPORT const TopTools_ListOfShape& MakeShells(const TopTools_MapOfOrientedShape& AvoidFacesMap) ;
-Standard_EXPORT static Standard_Boolean IsInside(const TopoDS_Edge& E,const TopoDS_Face& F1,const TopoDS_Face& F2,const Standard_Boolean CountDot,Standard_Real& Dot,Standard_Boolean& GoodOri) ;
-Standard_EXPORT static gp_Vec Normal(const TopoDS_Edge& E,const TopoDS_Face& F) ;
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- //
-
-
- // Fields PROTECTED
- //
-
-
-private:
-
- // Methods PRIVATE
- //
-
-
- // Fields PRIVATE
- //
-TopTools_ListOfShape myNewShells;
-TopTools_ListOfShape myFaces;
-TopTools_IndexedDataMapOfShapeListOfShape myEFMap;
-
-
-};
-
-
-
-
-
-// other Inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.ixx b/src/NMTAlgo/NMTAlgo_Loop3d.ixx
deleted file mode 100644
index 97c229d65..000000000
--- a/src/NMTAlgo/NMTAlgo_Loop3d.ixx
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#include
-
-
-
-
diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.jxx b/src/NMTAlgo/NMTAlgo_Loop3d.jxx
deleted file mode 100644
index 02c10b8dd..000000000
--- a/src/NMTAlgo/NMTAlgo_Loop3d.jxx
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _TopoDS_Shape_HeaderFile
-#include
-#endif
-#ifndef _TopTools_ListOfShape_HeaderFile
-#include
-#endif
-#ifndef _TopTools_MapOfOrientedShape_HeaderFile
-#include
-#endif
-#ifndef _TopoDS_Edge_HeaderFile
-#include
-#endif
-#ifndef _TopoDS_Face_HeaderFile
-#include
-#endif
-#ifndef _gp_Vec_HeaderFile
-#include
-#endif
-#ifndef _NMTAlgo_Loop3d_HeaderFile
-#include
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Splitter.cdl b/src/NMTAlgo/NMTAlgo_Splitter.cdl
deleted file mode 100644
index 48f5dbd6e..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter.cdl
+++ /dev/null
@@ -1,200 +0,0 @@
--- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
---
--- Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
---
--- File: NMTAlgo_Splitter.cdl
--- Created: Tue Jan 27 15:09:45 2004
--- Author: Peter KURNEV
-
-
-class Splitter from NMTAlgo
- inherits Builder from NMTAlgo
-
- ---Purpose:
-
-uses
- Builder from BRep,
- ShapeEnum from TopAbs,
- Compound from TopoDS,
- Face from TopoDS,
- Edge from TopoDS,
- Shape from TopoDS,
- MapOfOrientedShape from TopTools,
- IndexedMapOfShape from TopTools,
- DataMapOfShapeShape from TopTools,
- DataMapOfShapeListOfShape from TopTools,
- ListOfShape from TopTools,
- MapOfShape from TopTools,
- AsDes from BRepAlgo,
- Image from BRepAlgo,
-
- DSFiller from NMTTools
-
---raises
-
-is
- Create
- returns Splitter from NMTAlgo;
- ---C++: alias "Standard_EXPORT virtual ~NMTAlgo_Splitter();"
-
- AddShape (me:out;
- S : Shape from TopoDS)
- is virtual;
-
- AddTool (me:out;
- S : Shape from TopoDS)
- is virtual;
-
- Compute(me:out)
- is virtual;
-
- Build (me:out;
- aLimit:ShapeEnum from TopAbs=TopAbs_SHAPE)
- is virtual;
-
- ComputeWithFiller(me:out;
- aDSF: DSFiller from NMTTools)
- is redefined;
-
-----vv
- KeepShapesInside (me:out;
- S : Shape from TopoDS);
- ---Purpose: remove shapes that are outside of S from result.
- -- S should be an object shape.
- ---Warning: call it after Build()
-
- RemoveShapesInside (me:out;
- S : Shape from TopoDS);
- ---Purpose: remove shapes that are inside S from result.
- -- S should be an object shape.
- ---Warning: call it after Build()
-
- Modified(me:out;
- S : Shape from TopoDS)
- returns ListOfShape from TopTools;
- ---Purpose: Returns the list of shapes modified from the shape .
- ---C++: return const &
- ---Level: Public
-
- Generated(me:out;
- S : Shape from TopoDS)
- returns ListOfShape from TopTools;
- ---Purpose: Returns the list of shapes generated from the shape .
- ---C++: return const &
- ---Level: Public
-
- IsDeleted (me:out;
- S : Shape from TopoDS)
- returns Boolean from Standard;
-----^^
-
- Clear (me:out)
- is redefined;
-
- SourceShapes(me)
- returns ListOfShape from TopTools;
- ---C++: return const &
-
- FillResult(me:out)
- is protected;
-
- FillImageShape(me:out)
- is protected;
-
- SplittedFaces (me:out)
- is protected;
-
- SplittedWires (me:out)
- is protected;
-
- SplitsAndSections (me:out)
- is protected;
-
- ShellsAndSolids(me:out)
- is protected;
-
- MakeShells(me:out;
- aS :Shape from TopoDS;
- aLNS:out ListOfShape from TopTools)
- is protected;
-
- MakeSolids (me:out;
- Solid : Shape from TopoDS;
- Shells: out ListOfShape from TopTools)
- is protected;
-
- FindFacesInside (me:out;
- S : Shape from TopoDS;
- CheckClosed : Boolean from Standard= Standard_False;
- All : Boolean from Standard= Standard_False)
- returns Shape from TopoDS
- is protected;
-
- IsInside (myclass;
- S1,S2 : Shape from TopoDS)
- returns Boolean from Standard is protected;
- ---Purpose: Return True if the first vertex of S1 inside S2.
- -- If S1.IsNull(), check infinite point against S2.
-
- GetOriginalShape(me;
- aShape : Shape from TopoDS)
- returns Shape from TopoDS
- is protected;
-
---modified by NIZNHY-PKV Tue Feb 1 10:24:39 2005f
- FindImage(me:out;
- aS : Shape from TopoDS;
- aLIms: out ListOfShape from TopTools)
- is protected;
---modified by NIZNHY-PKV Tue Feb 1 10:24:47 2005t
-
-fields
- myDoneStep : ShapeEnum from TopAbs is protected; -- rebuilt level
- myBuilder : Builder from BRep is protected;
-
- myListShapes : ListOfShape from TopTools is protected; -- object shapes
- myMapFaces : MapOfShape from TopTools is protected; -- object faces
- myMapTools : MapOfShape from TopTools is protected; -- tool faces
- myEqualEdges : MapOfShape from TopTools is protected; -- equal splits
- myNewSection : MapOfShape from TopTools is protected; -- new secton edges
- myClosedShapes : MapOfShape from TopTools is protected;
- myWrappingSolid: MapOfShape from TopTools is protected; -- solids having other shapes inside
- myFaceShapeMap : DataMapOfShapeShape from TopTools is protected; -- to find a shape by face
-
- myInternalFaces: DataMapOfShapeShape from TopTools is protected; -- shape and its internal faces
- myIntNotClFaces: DataMapOfShapeShape from TopTools is protected; -- internal but not closed
-
- myImageShape : Image from BRepAlgo is protected;
-
- -- avoid rebuilding twice commont part of solids
- myAddedFacesMap: MapOfOrientedShape from TopTools is protected;
- --***--
- mySourceShapes : ListOfShape from TopTools is protected;
- myLimit : ShapeEnum from TopAbs is protected;
- myToolShapes : MapOfShape from TopTools is protected;
- myObjShapes : MapOfShape from TopTools is protected;
- myMapSIFC : DataMapOfShapeShape from TopTools is protected;
-----vv
- myGenerated : ListOfShape from TopTools is protected;
- --modified by NIZNHY-PKV Mon Jan 24 09:45:10 2005f
- myModifiedFaces: DataMapOfShapeListOfShape from TopTools is protected;
- --modified by NIZNHY-PKV Mon Jan 24 09:45:14 2005t
-----^^
-end Splitter;
diff --git a/src/NMTAlgo/NMTAlgo_Splitter.cxx b/src/NMTAlgo/NMTAlgo_Splitter.cxx
deleted file mode 100644
index fdb6500ea..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter.cxx
+++ /dev/null
@@ -1,632 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-// File: NMTAlgo_Splitter.cxx
-// Created: Thu Jan 29 17:13:03 2004
-// Author: Peter KURNEV
-//
-//
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-//
-#include
-#include
-#include
-#include
-
-
-static
- Standard_Boolean isClosed(const TopoDS_Shape& theShape);
-
-//=======================================================================
-//function : NMTAlgo_Spliter::NMTAlgo_Splitter
-//purpose :
-//=======================================================================
- NMTAlgo_Splitter::NMTAlgo_Splitter()
-:
- NMTAlgo_Builder()
-{
- myErrorStatus=0;
-}
-//=======================================================================
-// function: ~NMTAlgo_Splitter
-// purpose:
-//=======================================================================
- NMTAlgo_Splitter::~NMTAlgo_Splitter()
-{
- Clear();
-
- if (myDSFiller){
- delete myDSFiller;
- }
-}
-//=======================================================================
-// function: SourceShapes
-// purpose:
-//=======================================================================
- const TopTools_ListOfShape& NMTAlgo_Splitter::SourceShapes()const
-{
- return mySourceShapes;
-}
-//=======================================================================
-//function : Clear
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter::Clear()
-{
- NMTAlgo_Builder::Clear();
- //
- myListShapes.Clear();
- myMapFaces.Clear();
- myMapTools.Clear();
- myClosedShapes.Clear();
- myEqualEdges.Clear();
- myNewSection.Clear();
- myWrappingSolid.Clear();
- myFaceShapeMap.Clear();
- myInternalFaces.Clear();
- myIntNotClFaces.Clear();
- //
- myImageShape.Clear();
- myAddedFacesMap.Clear();
- //
- myDoneStep = TopAbs_SHAPE;
- myIsComputed=Standard_False;
- mySourceShapes.Clear();
- myObjShapes.Clear();
- myToolShapes.Clear();
- myMapSIFC.Clear();
- //modified by NIZNHY-PKV Mon Jan 24 09:47:37 2005f
- myModifiedFaces.Clear();
- //modified by NIZNHY-PKV Mon Jan 24 09:47:41 2005t
- myErrorStatus=0;
-}
-//=======================================================================
-//function : AddShape
-//purpose : add object Shape to be splited
-//=======================================================================
- void NMTAlgo_Splitter::AddShape(const TopoDS_Shape& aS)
-{
- myErrorStatus=0;
- if (myIsComputed) {
- // DS is already computed
- myErrorStatus=100;
- return;
- }
- //
- if (aS.IsNull()){
- // Null shape is not allowed here
- myErrorStatus=101;
- return;
- }
- //
- TopAbs_ShapeEnum aType=aS.ShapeType();
- //
- if (aType < TopAbs_SOLID) {
- // compound or compsolid
- TopoDS_Iterator it (aS);
- for (; it.More(); it.Next()) {
- const TopoDS_Shape& aSS=it.Value();
- AddShape(aSS);
- // to know compound by shape
- myFaceShapeMap.Bind(aSS, aS);
- }
- return;
- }
- //---
- myObjShapes.Add(aS);
- mySourceShapes.Append(aS);
- //---
- //
- TopExp_Explorer exp(aS, TopAbs_FACE);
- if (!exp.More()) {
- // do not split edges and vertices
- return;
- }
- // not to add twice the same S
- Standard_Integer nbFacesBefore = myMapFaces.Extent();
- //
- for (; exp.More(); exp.Next()) {
- const TopoDS_Shape& aFace = exp.Current();
- if (!myFaceShapeMap.IsBound(aFace)) {
- // keep shape of tool face added as object
- myFaceShapeMap.Bind(aFace, aS);
- }
- if (myMapFaces.Add(aFace)){
- myImagesFaces.SetRoot(aFace);
- }
- }
- //
- if (nbFacesBefore == myMapFaces.Extent()){
- return;
- }
- // solids must be processed before all
- if (aType==TopAbs_SOLID){
- myListShapes.Prepend(aS);
- }
- else{
- myListShapes.Append(aS);
- }
- if (isClosed(aS)){
- myClosedShapes.Add(aS);
- }
-}
-//=======================================================================
-//function : AddTool
-//purpose : add cutting tool that will _NOT_ be in result
-//=======================================================================
- void NMTAlgo_Splitter::AddTool(const TopoDS_Shape& aS)
-{
- myErrorStatus=0;
- if (myIsComputed) {
- // DS is already computed
- myErrorStatus=100;
- return;
- }
- //
- if (aS.IsNull()){
- // Null shape is not allowed here
- myErrorStatus=101;
- return;
- }
- //
- TopAbs_ShapeEnum aType=aS.ShapeType();
-
- if (aType < TopAbs_SOLID) { // compound or compsolid
- TopoDS_Iterator it (aS);
- for (; it.More(); it.Next()) {
- const TopoDS_Shape& aSS=it.Value();
- AddTool(aSS);
- myFaceShapeMap.Bind(aSS, aS); // to know compound by shape
- }
- return;
- }
- //---
- myToolShapes.Add(aS);
- mySourceShapes.Append(aS);
- //---
- //
- TopExp_Explorer exp(aS, TopAbs_FACE);
- for (; exp.More(); exp.Next()) {
- const TopoDS_Shape& aFace = exp.Current();
- myMapTools.Add(aFace);
- myFaceShapeMap.Bind(aFace, aS);
- }
- //
- // solids must be processed before all
- if (aType==TopAbs_SOLID){
- myListShapes.Prepend(aS);
- }
- else{
- myListShapes.Append(aS);
- }
- //
- if (isClosed(aS)) {
- myClosedShapes.Add(aS);
- }
-}
-//=======================================================================
-// function: Compute
-// purpose:
-//=======================================================================
- void NMTAlgo_Splitter::Compute()
-{
- if (!mySourceShapes.Extent()){
- // No source shapes to treat
- myErrorStatus=103;
- return;
- }
- //
- BRep_Builder aBB;
- TopoDS_Compound aCS;
- TopTools_ListIteratorOfListOfShape aIt;
- //
- aBB.MakeCompound(aCS);
- //
- aIt.Initialize(mySourceShapes);
- for (; aIt.More(); aIt.Next()) {
- const TopoDS_Shape& aS=aIt.Value();
- aBB.Add(aCS, aS);
- }
- //
- NMTTools_DSFiller* pDSF=new NMTTools_DSFiller;
- //
- pDSF->SetCompositeShape(aCS);
- pDSF->Perform();
- //
- myIsComputed=Standard_False;
- //
- NMTAlgo_Splitter::ComputeWithFiller(*pDSF);
-}
-//=======================================================================
-// function: ComputeWithFiller
-// purpose:
-//=======================================================================
- void NMTAlgo_Splitter::ComputeWithFiller(const NMTTools_DSFiller& aDSF)
-{
- myErrorStatus=0;
- //
- if (myIsComputed) {
- // DS is already computed
- myErrorStatus=100;
- return;
- }
- //
- if (!mySourceShapes.Extent()) {
- // No source shapes to treat
- myErrorStatus=103;
- return;
- }
- //
- if (!aDSF.IsDone()) {
- // NMTTools_DSFiller failed
- myErrorStatus=104;
- return;
- }
- //
- NMTAlgo_Builder::ComputeWithFiller(aDSF);
- //
- myIsComputed=Standard_True;
-}
-//=======================================================================
-//function : Build
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter::Build(const TopAbs_ShapeEnum aLimit)
-{
- myErrorStatus=0;
- myLimit=aLimit;
- //
- if (!myIsComputed){
- myErrorStatus=102;// DS is not computed
- return;
- }
- //
- TopoDS_Compound aCShape;
- //
- myBuilder.MakeCompound(aCShape);
- myShape=aCShape;
- //
- // 1. VERTEX
- //
- if (myLimit==TopAbs_VERTEX) {
- SplitVertices();
- FillResult();
- return;
- }
- //
- // 2. EDGE
- if (myLimit==TopAbs_EDGE) {
- SplitsAndSections();
- FillResult();
- return;
- }
- //
- // 3. WIRE
- FillImageShape();
- //
- if (myLimit==TopAbs_WIRE) {
- SplittedWires();
- FillResult();
- return;
- }
- //
- // 4. FACE
- //
- if (myLimit==TopAbs_FACE) {
- SplittedFaces();
- FillResult();
- return;
- }
- //
- // 5.6. SHELL / SOLID
- ShellsAndSolids();
- BOP_CorrectTolerances::CorrectTolerances(myShape, 0.01);
-}
-//=======================================================================
-// function: SplitsAndSections
-// purpose:
-//=======================================================================
- void NMTAlgo_Splitter::SplitsAndSections()
-{
- Standard_Integer i, aNbE, aNbF;
- TopTools_ListIteratorOfListOfShape aItLS, aIt;
- TopTools_IndexedMapOfShape aME, aMF;
- //
- myQueryShapes.Clear();
- //
- // 1. Splits / no splits
- aItLS.Initialize(myListShapes);
- for ( ;aItLS.More(); aItLS.Next()) {
- const TopoDS_Shape& aS=aItLS.Value();
- //
- if (myToolShapes.Contains(aS)) {
- continue; // skip tool Shapes
- }
- //
- TopExp::MapShapes(aS, TopAbs_EDGE, aME);
- TopExp::MapShapes(aS, TopAbs_FACE, aMF);
- }
- //
- // 1. Splits / no splits
- aNbE=aME.Extent();
- for (i=1; i<=aNbE; ++i) {
- const TopoDS_Shape& aE=aME(i);
- //
- if (!myImagesEdges.HasImage(aE)) {
- myQueryShapes.Add(aE);
- }
- else {
- const TopTools_ListOfShape& aLSp=myImagesEdges.Image(aE);
- //
- aIt.Initialize(aLSp);
- for (; aIt.More(); aIt.Next()) {
- const TopoDS_Shape& aSp=aIt.Value();
- myQueryShapes.Add(aSp);
- }
- }
- }
- //
- // 2. Sections
- aNbF=aMF.Extent();
- for (i=1; i<=aNbF; ++i) {
- const TopoDS_Shape& aF=aMF(i);
- if (mySectionParts.Contains(aF)) {
- const TopTools_ListOfShape& aLSc=mySectionParts.FindFromKey(aF);
- aIt.Initialize(aLSc);
- for (; aIt.More(); aIt.Next()) {
- const TopoDS_Shape& aSc=aIt.Value();
- myQueryShapes.Add(aSc);
- }
- }
- }
-}
-//=======================================================================
-// function: SplittedWires
-// purpose:
-//=======================================================================
- void NMTAlgo_Splitter::SplittedWires()
-{
- Standard_Integer i, aNbF;
- TopoDS_Iterator aIt;
- TopTools_IndexedMapOfShape aMF;
- //
- SplittedFaces();
- //
- aMF=myQueryShapes;
- myQueryShapes.Clear();
- //
- aNbF=aMF.Extent();
- for (i=1; i<=aNbF; ++i) {
- const TopoDS_Shape& aF=aMF(i);
- aIt.Initialize(aF);
- for (; aIt.More(); aIt.Next()) {
- const TopoDS_Shape& aW=aIt.Value();
- myQueryShapes.Add(aW);
- }
- }
-}
-//=======================================================================
-// function: SplittedFaces
-// purpose:
-//=======================================================================
- void NMTAlgo_Splitter::SplittedFaces()
-{
- TopTools_ListIteratorOfListOfShape aIt;
- TopoDS_Iterator aItF;
- //
- myQueryShapes.Clear();
- //
- aIt.Initialize(myListShapes);
- for (; aIt.More(); aIt.Next()) {
- const TopoDS_Shape& aS=aIt.Value();
- //
- if (myToolShapes.Contains(aS)) {
- continue;
- }
- //
- const TopoDS_Shape& aFC = myImageShape.Image(aS).First();
- aItF.Initialize(aFC);
- for (; aItF.More(); aItF.Next()) {
- const TopoDS_Shape& aF=aItF.Value();
- myQueryShapes.Add(aF);
- }
- }
-}
-//=======================================================================
-//function : FillImageShape
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter::FillImageShape()
-{
- Standard_Integer i, aNbF, iSense;
- TopTools_ListIteratorOfListOfShape aItS, aItFI;
- TopExp_Explorer aExp;
- TopAbs_Orientation aOriFS;
- TopoDS_Face aFIx, aFIy;
- BRep_Builder aBB;
- //
- myImageShape.Clear();
- //modified by NIZNHY-PKV Mon Jan 24 09:48:15 2005f
- myModifiedFaces.Clear();
- //modified by NIZNHY-PKV Mon Jan 24 09:48:18 2005t
- //
- aItS.Initialize(myListShapes);
- for ( ;aItS.More(); aItS.Next()) {
- const TopoDS_Shape& aS=aItS.Value();
- //
- myQueryShapes.Clear();
- //
- aExp.Init(aS, TopAbs_FACE);
- for (; aExp.More(); aExp.Next()) {
- const TopoDS_Face& aFS=TopoDS::Face(aExp.Current());
- aOriFS= aFS.Orientation();
- //
- if (!myImagesFaces.HasImage(aFS)) {
- myQueryShapes.Add(aFS);
- //modified by NIZNHY-PKV Mon Jan 24 09:50:42 2005 f
- if (!myModifiedFaces.IsBound(aFS)) {
- TopTools_ListOfShape aLS;
- //
- aLS.Append(aFS);
- myModifiedFaces.Bind(aFS, aLS);
- }
- //modified by NIZNHY-PKV Mon Jan 24 09:50:44 2005 t
- continue;
- }
- //
- const TopTools_ListOfShape& aLFI=myImagesFaces.Image(aFS);
- aItFI.Initialize(aLFI);
- for (; aItFI.More(); aItFI.Next()) {
- const TopoDS_Face& aFI=TopoDS::Face(aItFI.Value());
- aFIx=aFI;
- aFIx.Orientation(aOriFS);
- //
- if (mySDFaces.Contains(aFIx)) {
- const TopoDS_Face& aFSDI=TopoDS::Face(mySDFaces.FindFromKey(aFIx));
- TopoDS_Face aFSDIx=aFSDI;
- //
- iSense=NMTAlgo_Tools::Sense(aFIx, aFSDIx);
- //
- if (iSense < 0) {
- aFSDIx.Reverse();
- }
- myQueryShapes.Add(aFSDIx);
- //modified by NIZNHY-PKV Mon Jan 24 09:56:06 2005f
- aFIy=aFSDIx;
- //modified by NIZNHY-PKV Mon Jan 24 09:56:09 2005t
- }
- else {
- myQueryShapes.Add(aFIx);
- //modified by NIZNHY-PKV Mon Jan 24 09:56:06 2005f
- aFIy=aFIx;
- //modified by NIZNHY-PKV Mon Jan 24 09:56:09 2005t
- }
- //modified by NIZNHY-PKV Mon Jan 24 09:53:38 2005f
- if (!myModifiedFaces.IsBound(aFS)) {
- TopTools_ListOfShape aLS;
- //
- aLS.Append(aFIy);
- myModifiedFaces.Bind(aFS, aLS);
- }
- else {
- TopTools_ListOfShape& aLS=myModifiedFaces.ChangeFind(aFS);
- aLS.Append(aFIy);
- }
- //modified by NIZNHY-PKV Mon Jan 24 09:53:43 2005t
- }
- }//for (; aExp.More(); aExp.Next()) {
- //
- TopoDS_Compound aCompound;
- //
- aBB.MakeCompound(aCompound);
- //
- aNbF=myQueryShapes.Extent();
- for (i=1; i<=aNbF; ++i) {
- const TopoDS_Shape& aF=myQueryShapes(i);
- aBB.Add(aCompound, aF);
- }
- //
- myImageShape.Bind(aS, aCompound);
- }// for ( ;aItS.More(); aItS.Next())
- //
- myQueryShapes.Clear();
-}
-//=======================================================================
-//function : FillResult
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter::FillResult()
-{
- Standard_Integer i, aNb;
- //
- aNb=myQueryShapes.Extent();
- for (i=1; i<=aNb; ++i) {
- const TopoDS_Shape& aS=myQueryShapes(i);
- myBuilder.Add (myShape, aS);
- }
- BOP_CorrectTolerances::CorrectTolerances(myShape, 0.01);
-}
-//=======================================================================
-//function : isClosed
-//purpose : check id a shape is closed, ie is a solid or a closed shell
-//=======================================================================
- Standard_Boolean isClosed(const TopoDS_Shape& theShape)
-{
- Standard_Boolean isClosed = (theShape.ShapeType() == TopAbs_SOLID);
- //
- if (!isClosed && theShape.ShapeType() == TopAbs_SHELL) {
- TopTools_IndexedDataMapOfShapeListOfShape MEF;
- TopExp::MapShapesAndAncestors(theShape, TopAbs_EDGE, TopAbs_FACE, MEF);
- for (Standard_Integer i=1; isClosed && i<=MEF.Extent(); ++i)
- isClosed = ( MEF(i).Extent() != 1 );
- }
- //
- return isClosed;
-}
-//
-// myErrorStatus
-//
-// 100 - DS is already computed
-// 101 - Null shape is not allowed here
-// 102 - DS is not computed
-// 103 - No source shapes to treat
-// 104 - NMTTools_DSFiller failed
diff --git a/src/NMTAlgo/NMTAlgo_Splitter.hxx b/src/NMTAlgo/NMTAlgo_Splitter.hxx
deleted file mode 100644
index 64aa244e4..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter.hxx
+++ /dev/null
@@ -1,167 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _NMTAlgo_Splitter_HeaderFile
-#define _NMTAlgo_Splitter_HeaderFile
-
-#ifndef _TopAbs_ShapeEnum_HeaderFile
-#include
-#endif
-#ifndef _BRep_Builder_HeaderFile
-#include
-#endif
-#ifndef _TopTools_ListOfShape_HeaderFile
-#include
-#endif
-#ifndef _TopTools_MapOfShape_HeaderFile
-#include
-#endif
-#ifndef _TopTools_DataMapOfShapeShape_HeaderFile
-#include
-#endif
-#ifndef _BRepAlgo_Image_HeaderFile
-#include
-#endif
-#ifndef _TopTools_MapOfOrientedShape_HeaderFile
-#include
-#endif
-#ifndef _TopTools_DataMapOfShapeListOfShape_HeaderFile
-#include
-#endif
-#ifndef _NMTAlgo_Builder_HeaderFile
-#include
-#endif
-#ifndef _Standard_Boolean_HeaderFile
-#include
-#endif
-class TopoDS_Shape;
-class NMTTools_DSFiller;
-class TopTools_ListOfShape;
-
-
-#ifndef _Standard_HeaderFile
-#include
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include
-#endif
-
-class NMTAlgo_Splitter : public NMTAlgo_Builder {
-
-public:
-
- void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
- // Methods PUBLIC
- //
-Standard_EXPORT NMTAlgo_Splitter();
-Standard_EXPORT virtual ~NMTAlgo_Splitter();
-Standard_EXPORT virtual void AddShape(const TopoDS_Shape& S) ;
-Standard_EXPORT virtual void AddTool(const TopoDS_Shape& S) ;
-Standard_EXPORT virtual void Compute() ;
-Standard_EXPORT virtual void Build(const TopAbs_ShapeEnum aLimit = TopAbs_SHAPE) ;
-Standard_EXPORT virtual void ComputeWithFiller(const NMTTools_DSFiller& aDSF) ;
-Standard_EXPORT void KeepShapesInside(const TopoDS_Shape& S) ;
-Standard_EXPORT void RemoveShapesInside(const TopoDS_Shape& S) ;
-Standard_EXPORT const TopTools_ListOfShape& Modified(const TopoDS_Shape& S) ;
-Standard_EXPORT const TopTools_ListOfShape& Generated(const TopoDS_Shape& S) ;
-Standard_EXPORT Standard_Boolean IsDeleted(const TopoDS_Shape& S) ;
-Standard_EXPORT virtual void Clear() ;
-Standard_EXPORT const TopTools_ListOfShape& SourceShapes() const;
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- //
-Standard_EXPORT void FillResult() ;
-Standard_EXPORT void FillImageShape() ;
-Standard_EXPORT void SplittedFaces() ;
-Standard_EXPORT void SplittedWires() ;
-Standard_EXPORT void SplitsAndSections() ;
-Standard_EXPORT void ShellsAndSolids() ;
-Standard_EXPORT void MakeShells(const TopoDS_Shape& aS,TopTools_ListOfShape& aLNS) ;
-Standard_EXPORT void MakeSolids(const TopoDS_Shape& Solid,TopTools_ListOfShape& Shells) ;
-Standard_EXPORT TopoDS_Shape FindFacesInside(const TopoDS_Shape& S,const Standard_Boolean CheckClosed = Standard_False,const Standard_Boolean All = Standard_False) ;
-Standard_EXPORT static Standard_Boolean IsInside(const TopoDS_Shape& S1,const TopoDS_Shape& S2) ;
-Standard_EXPORT TopoDS_Shape GetOriginalShape(const TopoDS_Shape& aShape) const;
-Standard_EXPORT void FindImage(const TopoDS_Shape& aS,TopTools_ListOfShape& aLIms) ;
-
-
- // Fields PROTECTED
- //
-TopAbs_ShapeEnum myDoneStep;
-BRep_Builder myBuilder;
-TopTools_ListOfShape myListShapes;
-TopTools_MapOfShape myMapFaces;
-TopTools_MapOfShape myMapTools;
-TopTools_MapOfShape myEqualEdges;
-TopTools_MapOfShape myNewSection;
-TopTools_MapOfShape myClosedShapes;
-TopTools_MapOfShape myWrappingSolid;
-TopTools_DataMapOfShapeShape myFaceShapeMap;
-TopTools_DataMapOfShapeShape myInternalFaces;
-TopTools_DataMapOfShapeShape myIntNotClFaces;
-BRepAlgo_Image myImageShape;
-TopTools_MapOfOrientedShape myAddedFacesMap;
-TopTools_ListOfShape mySourceShapes;
-TopAbs_ShapeEnum myLimit;
-TopTools_MapOfShape myToolShapes;
-TopTools_MapOfShape myObjShapes;
-TopTools_DataMapOfShapeShape myMapSIFC;
-TopTools_ListOfShape myGenerated;
-TopTools_DataMapOfShapeListOfShape myModifiedFaces;
-
-
-private:
-
- // Methods PRIVATE
- //
-
-
- // Fields PRIVATE
- //
-
-
-};
-
-
-
-
-
-// other Inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Splitter.ixx b/src/NMTAlgo/NMTAlgo_Splitter.ixx
deleted file mode 100644
index 53377eb6e..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter.ixx
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#include
-
-
-
-
diff --git a/src/NMTAlgo/NMTAlgo_Splitter.jxx b/src/NMTAlgo/NMTAlgo_Splitter.jxx
deleted file mode 100644
index f76213b04..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter.jxx
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _TopoDS_Shape_HeaderFile
-#include
-#endif
-#ifndef _NMTTools_DSFiller_HeaderFile
-#include
-#endif
-#ifndef _TopTools_ListOfShape_HeaderFile
-#include
-#endif
-#ifndef _NMTAlgo_Splitter_HeaderFile
-#include
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.cdl b/src/NMTAlgo/NMTAlgo_Splitter1.cdl
deleted file mode 100644
index 8449ca340..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter1.cdl
+++ /dev/null
@@ -1,92 +0,0 @@
--- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
---
--- Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
---
--- File: NMTAlgo_Splitter1.cdl
--- Created: Wed Feb 11 14:23:25 2004
--- Author: Peter KURNEV
-
-
-class Splitter1 from NMTAlgo
- inherits Splitter from NMTAlgo
-
- ---Purpose:
-
-uses
- ShapeEnum from TopAbs,
- Shape from TopoDS,
- DataMapOfShapeInteger from TopTools
-
---raises
-
-is
- Create
- returns Splitter1 from NMTAlgo;
- ---C++: alias "Standard_EXPORT virtual ~NMTAlgo_Splitter1();"
-
- Clear (me:out)
- is redefined;
-
- AddShape (me:out;
- aS : Shape from TopoDS)
- is redefined;
-
-
- AddTool(me:out;
- aS : Shape from TopoDS)
- is redefined;
-
-
- SetMaterial (me:out;
- aS : Shape from TopoDS;
- aM : Integer from Standard=0);
-
- SetRemoveWebs(me:out;
- bFlag:Boolean from Standard);
-
- RemoveWebs(me)
- returns Boolean from Standard;
-
- GetMaterialTable(me)
- returns DataMapOfShapeInteger from TopTools;
- ---C++: return const &
-
- Build (me:out;
- Limit:ShapeEnum from TopAbs=TopAbs_SHAPE)
- is redefined;
-
- -- protected block
- TreatSolids (me:out)
- is protected;
-
- TreatWebs (me:out)
- is protected;
-
- RestParts (me:out)
- is protected;
-
-
-fields
- myRemoveWebs : Boolean from Standard is protected;
- myMapSWM : DataMapOfShapeInteger from TopTools is protected;
- myMapSWMOut : DataMapOfShapeInteger from TopTools is protected;
- myRestParts : Shape from TopoDS is protected;
-
-end Splitter1;
diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.cxx b/src/NMTAlgo/NMTAlgo_Splitter1.cxx
deleted file mode 100644
index 0277e0c1c..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter1.cxx
+++ /dev/null
@@ -1,376 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-// File: NMTAlgo_Splitter1.cxx
-// Created: Wed Feb 11 14:26:27 2004
-// Author: Peter KURNEV
-//
-//
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-//=======================================================================
-//function : NMTAlgo_Spliter1::NMTAlgo_Splitter1
-//purpose :
-//=======================================================================
- NMTAlgo_Splitter1::NMTAlgo_Splitter1()
-:
- NMTAlgo_Splitter()
-{
- myRemoveWebs=Standard_False;
-}
-//=======================================================================
-// function: ~NMTAlgo_Splitter1
-// purpose:
-//=======================================================================
- NMTAlgo_Splitter1::~NMTAlgo_Splitter1()
-{
- Clear();
-}
-//=======================================================================
-//function : Clear
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter1::Clear()
-{
- NMTAlgo_Splitter::Clear();
- //
- myRemoveWebs=Standard_False;
- myMapSWM.Clear();
- myMapSWMOut.Clear();
-}
-//=======================================================================
-//function : SetRemoveWebs
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter1::SetRemoveWebs(const Standard_Boolean bFlag)
-{
- myRemoveWebs=bFlag;
-}
-//=======================================================================
-//function : RemoveWebs
-//purpose :
-//=======================================================================
- Standard_Boolean NMTAlgo_Splitter1::RemoveWebs()const
-{
- return myRemoveWebs;
-}
-//=======================================================================
-//function : GetMaterialTable
-//purpose :
-//=======================================================================
- const TopTools_DataMapOfShapeInteger& NMTAlgo_Splitter1::GetMaterialTable()const
-{
- return myMapSWMOut;
-}
-//=======================================================================
-//function : SetMaterial
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter1::SetMaterial(const TopoDS_Shape& aS,
- const Standard_Integer iMt)
-{
- TopExp_Explorer aExp;
- //
- aExp.Init(aS, TopAbs_SOLID);
- for(; aExp.More(); aExp.Next()) {
- const TopoDS_Shape& aSd=aExp.Current();
- myMapSWM.Bind(aSd, iMt);
- }
-}
-//=======================================================================
-//function : AddShape
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter1::AddShape(const TopoDS_Shape& aS)
-{
- SetMaterial(aS, 0);
- NMTAlgo_Splitter::AddShape(aS);
-}
-//=======================================================================
-//function : AddToolWithMaterial
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter1::AddTool(const TopoDS_Shape& aS)
-
-{
- SetMaterial(aS, 0);
- NMTAlgo_Splitter::AddTool(aS);
-}
-//=======================================================================
-//function : Build
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter1::Build(const TopAbs_ShapeEnum aLimit)
-{
- NMTAlgo_Splitter::Build(aLimit);
- //
- myMapSWMOut.Clear();
- //
- TreatSolids();
- //
- if (myRemoveWebs && myMapSWMOut.Extent()) {
- RestParts();
- TreatWebs();
- }
-}
-//=======================================================================
-//function : TreatWebs
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter1::TreatWebs()
-{
- Standard_Integer nMt;
- TopTools_DataMapOfIntegerListOfShape aMMLS;
- TopoDS_Iterator aIt;
- TopTools_DataMapIteratorOfDataMapOfShapeInteger aIt2;
- TopTools_DataMapIteratorOfDataMapOfIntegerListOfShape aIt1;
- TopTools_ListIteratorOfListOfShape aItS;
- TopoDS_Compound aCx;
- TopoDS_Shape aCSR;
- //
- aIt2.Initialize(myMapSWMOut);
- for (; aIt2.More(); aIt2.Next()) {
- const TopoDS_Shape& aS=aIt2.Key();
- nMt=aIt2.Value();
- //
- if (aMMLS.IsBound(nMt)){
- TopTools_ListOfShape& aLS=aMMLS.ChangeFind(nMt);
- aLS.Append(aS);
- }
- else {
- TopTools_ListOfShape aLS;
- aLS.Append(aS);
- aMMLS.Bind(nMt, aLS);
- }
- }
- //
- myMapSWMOut.Clear();
- myBuilder.MakeCompound(aCx);
- //
- aIt1.Initialize(aMMLS);
- for (; aIt1.More(); aIt1.Next()) {
- nMt=aIt1.Key();
- //
- TopoDS_Compound aCS;
- myBuilder.MakeCompound(aCS);
- const TopTools_ListOfShape& aLS=aIt1.Value();
- aItS.Initialize(aLS);
- for (; aItS.More(); aItS.Next()) {
- const TopoDS_Shape& aS=aItS.Value();
- myBuilder.Add(aCS, aS);
- }
- //
- NMTAlgo_Tools::BreakWebs(aCS, aCSR);
- //
- aIt.Initialize(aCSR);
- for(; aIt.More(); aIt.Next()) {
- const TopoDS_Shape& aS=aIt.Value();
- myBuilder.Add(aCx, aS);
- //
- myMapSWMOut.Bind(aS, nMt);
- }
- }
- //
- aIt.Initialize(myRestParts);
- for(; aIt.More(); aIt.Next()) {
- const TopoDS_Shape& aS=aIt.Value();
- myBuilder.Add(aCx, aS);
- }
- //
- myShape=aCx;
-}
-
-//=======================================================================
-//function : RestParts
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter1::RestParts()
-{
- TopoDS_Iterator aIt;
- TopoDS_Compound aR;
- //
- myBuilder.MakeCompound(aR);
- //
- aIt.Initialize(myShape);
- for(; aIt.More(); aIt.Next()) {
- const TopoDS_Shape& aS=aIt.Value();
- if (aS.ShapeType()==TopAbs_SOLID){
- if (myMapSWMOut.IsBound(aS)) {
- continue;
- }
- }
- myBuilder.Add(aR, aS);
- }
- myRestParts=aR;
-}
-//=======================================================================
-//function : TreatSolids
-//purpose :
-//=======================================================================
- void NMTAlgo_Splitter1::TreatSolids()
-{
- Standard_Integer i, j, aNbSd, aNbSdx, nMtMax, nMt;
- TopAbs_ShapeEnum aType;
- TopoDS_Iterator aIt;
- TopTools_IndexedMapOfShape aMSo, aMSd;
- TopTools_IndexedDataMapOfShapeListOfShape aMFS;
- TopTools_ListIteratorOfListOfShape aItS, aItLS;
- NMTTools_IndexedDataMapOfShapeIndexedMapOfShape aMCS;
- //
- TopExp::MapShapesAndAncestors(myShape, TopAbs_FACE, TopAbs_SOLID, aMFS);
- TopExp::MapShapes(myShape, TopAbs_SOLID, aMSo);
- //
- aNbSd=aMSo.Extent();
- if (!aNbSd) {
- return;
- }
- //
- aItS.Initialize(myListShapes);
- for ( ;aItS.More(); aItS.Next()) {
- const TopoDS_Shape& aS=aItS.Value();
- //
- aType=aS.ShapeType();
- if (aType != TopAbs_SOLID) {
- continue;
- }
- //
- if (myToolShapes.Contains(aS)) {
- continue;
- }
- //
- if (!myMapSIFC.IsBound(aS)){
- continue;
- }
- //
- aMSd.Clear();
- //
- const TopoDS_Shape& aIFC=myMapSIFC.Find(aS);
- //
- aIt.Initialize(aIFC);
- for (; aIt.More(); aIt.Next()) {
- const TopoDS_Shape& aIF=aIt.Value();
- if (aMFS.Contains(aIF)) {
- const TopTools_ListOfShape& aLS=aMFS.FindFromKey(aIF);
- aItLS.Initialize(aLS);
- for ( ;aItLS.More(); aItLS.Next()) {
- const TopoDS_Shape& aSd=aItLS.Value();
- if (!aMSd.Contains(aSd)) {
- aMSd.Add(aSd);
- }
- }
- }
- }
- //
- aNbSd=aMSd.Extent();
- if (!aNbSd) {
- //modified by NIZNHY-PKV Thu Dec 23 15:07:46 2004 f
- Standard_Boolean bFound;
- //modified by NIZNHY-PKV Thu Dec 23 15:07:49 2004 t
- TopoDS_Shape aSd;
- //
- const TopoDS_Shape& aFC=myImageShape.Image(aS).First();
- //modified by NIZNHY-PKV Thu Dec 23 15:08:17 2004 f
- //NMTAlgo_Tools::FindImageSolid(aFC, aMSo, aSd);
- //aMSd.Add(aSd);
- bFound=NMTAlgo_Tools::FindImageSolid(aFC, aMSo, aSd);
- if (!aSd.IsNull()) {
- aMSd.Add(aSd);
- }
- //modified by NIZNHY-PKV Thu Dec 23 15:09:02 2004 t
- }
- aMCS.Add(aS, aMSd);
- } //for ( ;aItS.More(); aItS.Next())
- //
- aMFS.Clear();
- //
- aNbSd=aMCS.Extent();
- for (i=1; i<=aNbSd; ++i) {
- const TopoDS_Shape& aSd=aMCS.FindKey(i);
- const TopTools_IndexedMapOfShape& aMSdx=aMCS(i);
- aNbSdx=aMSdx.Extent();
- for (j=1; j<=aNbSdx; ++j) {
- const TopoDS_Shape& aSdx=aMSdx(j);
- //
- if (aMFS.Contains(aSdx)) {
- TopTools_ListOfShape& aLS=aMFS.ChangeFromKey(aSdx);
- aLS.Append(aSd);
- }
- else {
- TopTools_ListOfShape aLS;
- aLS.Append(aSd);
- aMFS.Add(aSdx, aLS);
- }
- }
- }
- //
- // Assign materials values to subsolids
- //
- myMapSWMOut.Clear();
- //
- aNbSdx=aMFS.Extent();
- for (i=1; i<=aNbSdx; ++i) {
- const TopoDS_Shape& aSdx=aMFS.FindKey(i);
- const TopTools_ListOfShape& aLS=aMFS(i);
- aItLS.Initialize(aLS);
- for (j=0; aItLS.More(); aItLS.Next(), ++j) {
- const TopoDS_Shape& aSd=aItLS.Value();
- //
- if (!myMapSWM.IsBound(aSd)){
- continue;
- }
- //
- nMt=myMapSWM.Find(aSd);
- if (!j) {
- nMtMax=nMt;
- continue;
- }
- if (nMt>nMtMax) {
- nMtMax=nMt;
- }
- }
- myMapSWMOut.Bind(aSdx, nMtMax);
- }
- //
-}
diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.hxx b/src/NMTAlgo/NMTAlgo_Splitter1.hxx
deleted file mode 100644
index c9e733d3e..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter1.hxx
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _NMTAlgo_Splitter1_HeaderFile
-#define _NMTAlgo_Splitter1_HeaderFile
-
-#ifndef _Standard_Boolean_HeaderFile
-#include
-#endif
-#ifndef _TopTools_DataMapOfShapeInteger_HeaderFile
-#include
-#endif
-#ifndef _TopoDS_Shape_HeaderFile
-#include
-#endif
-#ifndef _NMTAlgo_Splitter_HeaderFile
-#include
-#endif
-#ifndef _Standard_Integer_HeaderFile
-#include
-#endif
-#ifndef _TopAbs_ShapeEnum_HeaderFile
-#include
-#endif
-class TopoDS_Shape;
-class TopTools_DataMapOfShapeInteger;
-
-
-#ifndef _Standard_HeaderFile
-#include
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include
-#endif
-
-class NMTAlgo_Splitter1 : public NMTAlgo_Splitter {
-
-public:
-
- void* operator new(size_t,void* anAddress)
- {
- return anAddress;
- }
- void* operator new(size_t size)
- {
- return Standard::Allocate(size);
- }
- void operator delete(void *anAddress)
- {
- if (anAddress) Standard::Free((Standard_Address&)anAddress);
- }
- // Methods PUBLIC
- //
-Standard_EXPORT NMTAlgo_Splitter1();
-Standard_EXPORT virtual ~NMTAlgo_Splitter1();
-Standard_EXPORT virtual void Clear() ;
-Standard_EXPORT virtual void AddShape(const TopoDS_Shape& aS) ;
-Standard_EXPORT virtual void AddTool(const TopoDS_Shape& aS) ;
-Standard_EXPORT void SetMaterial(const TopoDS_Shape& aS,const Standard_Integer aM = 0) ;
-Standard_EXPORT void SetRemoveWebs(const Standard_Boolean bFlag) ;
-Standard_EXPORT Standard_Boolean RemoveWebs() const;
-Standard_EXPORT const TopTools_DataMapOfShapeInteger& GetMaterialTable() const;
-Standard_EXPORT virtual void Build(const TopAbs_ShapeEnum Limit = TopAbs_SHAPE) ;
-
-
-
-
-
-protected:
-
- // Methods PROTECTED
- //
-Standard_EXPORT void TreatSolids() ;
-Standard_EXPORT void TreatWebs() ;
-Standard_EXPORT void RestParts() ;
-
-
- // Fields PROTECTED
- //
-Standard_Boolean myRemoveWebs;
-TopTools_DataMapOfShapeInteger myMapSWM;
-TopTools_DataMapOfShapeInteger myMapSWMOut;
-TopoDS_Shape myRestParts;
-
-
-private:
-
- // Methods PRIVATE
- //
-
-
- // Fields PRIVATE
- //
-
-
-};
-
-
-
-
-
-// other Inline functions and methods (like "C++: function call" methods)
-//
-
-
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.ixx b/src/NMTAlgo/NMTAlgo_Splitter1.ixx
deleted file mode 100644
index 479cf4180..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter1.ixx
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#include
-
-
-
-
diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.jxx b/src/NMTAlgo/NMTAlgo_Splitter1.jxx
deleted file mode 100644
index c804ba376..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter1.jxx
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-#ifndef _TopoDS_Shape_HeaderFile
-#include
-#endif
-#ifndef _TopTools_DataMapOfShapeInteger_HeaderFile
-#include
-#endif
-#ifndef _NMTAlgo_Splitter1_HeaderFile
-#include
-#endif
diff --git a/src/NMTAlgo/NMTAlgo_Splitter_1.cxx b/src/NMTAlgo/NMTAlgo_Splitter_1.cxx
deleted file mode 100644
index d1f77b888..000000000
--- a/src/NMTAlgo/NMTAlgo_Splitter_1.cxx
+++ /dev/null
@@ -1,948 +0,0 @@
-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-// File: NMTAlgo_Splitter_1.cxx
-// Created: Mon Feb 2 14:58:54 2004
-// Author: Peter KURNEV
-//
-//
-#include
-
-#include
-
-#include
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-#include
-//
-#include
-#include
-#include