1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-24 13:50:49 +03:00

0024002: Overall code and build procedure refactoring -- automatic

Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl":
- WOK-generated header files from inc and sources from drv are moved to src
- CDL files removed
- All packages are converted to nocdlpack
This commit is contained in:
abv
2015-07-12 07:42:38 +03:00
parent 543a996496
commit 42cf5bc1ca
15354 changed files with 623957 additions and 509844 deletions

View File

@@ -1,47 +1,129 @@
TopOpeBRepBuild.cxx
TopOpeBRepBuild_Area1dBuilder.cxx
TopOpeBRepBuild_Area1dBuilder.hxx
TopOpeBRepBuild_Area2dBuilder.cxx
TopOpeBRepBuild_Area2dBuilder.hxx
TopOpeBRepBuild_Area3dBuilder.cxx
TopOpeBRepBuild_Area3dBuilder.hxx
TopOpeBRepBuild_AreaBuilder.cxx
TopOpeBRepBuild_AreaBuilder.hxx
TopOpeBRepBuild_BlockBuilder.cxx
TopOpeBRepBuild_BlockBuilder.hxx
TopOpeBRepBuild_BlockIterator.cxx
TopOpeBRepBuild_BlockIterator.hxx
TopOpeBRepBuild_BlockIterator.lxx
TopOpeBRepBuild_BuildEdges.cxx
TopOpeBRepBuild_Builder.cxx
TopOpeBRepBuild_Builder.hxx
TopOpeBRepBuild_Builder1.cxx
TopOpeBRepBuild_Builder1.hxx
TopOpeBRepBuild_Builder1_1.cxx
TopOpeBRepBuild_Builder1_2.cxx
TopOpeBRepBuild_Tools_1.cxx
TopOpeBRepBuild_trace.cxx
TopOpeBRepBuild_End.cxx
TopOpeBRepBuild_Merge.cxx
TopOpeBRepBuild_BuildEdges.cxx
TopOpeBRepBuild_BuilderON.cxx
TopOpeBRepBuild_BuilderON.hxx
TopOpeBRepBuild_BuilderON2d.cxx
TopOpeBRepBuild_BuildFaces.cxx
TopOpeBRepBuild_BuildVertices.cxx
TopOpeBRepBuild_SplitEdge.hxx
TopOpeBRepBuild_SplitFace.hxx
TopOpeBRepBuild_SplitSolid.hxx
TopOpeBRepBuild_SplitShapes.hxx
TopOpeBRepBuild_Fill.hxx
TopOpeBRepBuild_KPart.cxx
TopOpeBRepBuild_Griddump.cxx
TopOpeBRepBuild_Grid.cxx
TopOpeBRepBuild_GridSS.cxx
TopOpeBRepBuild_GridFF.cxx
TopOpeBRepBuild_GridEE.cxx
TopOpeBRepBuild_Section.cxx
TopOpeBRepBuild_FREGU.cxx
TopOpeBRepBuild_SREGU.cxx
TopOpeBRepBuild_CompositeClassifier.cxx
TopOpeBRepBuild_CompositeClassifier.hxx
TopOpeBRepBuild_CorrectFace2d.cxx
TopOpeBRepBuild_CorrectFace2d.hxx
TopOpeBRepBuild_DataMapIteratorOfDataMapOfShapeListOfShapeListOfShape.hxx
TopOpeBRepBuild_DataMapOfShapeListOfShapeListOfShape.hxx
TopOpeBRepBuild_define.hxx
TopOpeBRepBuild_on.cxx
TopOpeBRepBuild_EdgeBuilder.cxx
TopOpeBRepBuild_EdgeBuilder.hxx
TopOpeBRepBuild_End.cxx
TopOpeBRepBuild_FaceAreaBuilder.cxx
TopOpeBRepBuild_FaceAreaBuilder.hxx
TopOpeBRepBuild_FaceBuilder.cxx
TopOpeBRepBuild_FaceBuilder.hxx
TopOpeBRepBuild_fctwes.cxx
TopOpeBRepBuild_ffsfs.cxx
TopOpeBRepBuild_ffwesk.cxx
TopOpeBRepBuild_Fill.hxx
TopOpeBRepBuild_FREGU.cxx
TopOpeBRepBuild_FuseFace.cxx
TopOpeBRepBuild_FuseFace.hxx
TopOpeBRepBuild_FuseFace.lxx
TopOpeBRepBuild_GIter.cxx
TopOpeBRepBuild_GIter.hxx
TopOpeBRepBuild_Grid.cxx
TopOpeBRepBuild_Griddump.cxx
TopOpeBRepBuild_GridEE.cxx
TopOpeBRepBuild_GridFF.cxx
TopOpeBRepBuild_GridSS.cxx
TopOpeBRepBuild_GTool.cxx
TopOpeBRepBuild_GTool.hxx
TopOpeBRepBuild_GTopo.cxx
TopOpeBRepBuild_GTopo.hxx
TopOpeBRepBuild_HBuilder.cxx
TopOpeBRepBuild_HBuilder.hxx
TopOpeBRepBuild_IndexedDataMapOfShapeVertexInfo.hxx
TopOpeBRepBuild_keep.cxx
TopOpeBRepBuild_makesolids.cxx
TopOpeBRepBuild_makefaces.cxx
TopOpeBRepBuild_makeedges.cxx
TopOpeBRepBuild_KPart.cxx
TopOpeBRepBuild_kpkole.cxx
TopOpeBRepBuild_kpresu.hxx
TopOpeBRepBuild_ffsfs.cxx
TopOpeBRepBuild_BuilderON2d.cxx
TopOpeBRepBuild_fctwes.cxx
TopOpeBRepBuild_ffwesk.cxx
TopOpeBRepBuild_ListOfLoop.hxx
TopOpeBRepBuild_ListIteratorOfListOfLoop.hxx
TopOpeBRepBuild_ListOfListOfLoop.hxx
TopOpeBRepBuild_ListIteratorOfListOfListOfLoop.hxx
TopOpeBRepBuild_ListOfPave.hxx
TopOpeBRepBuild_ListIteratorOfListOfLoop.hxx
TopOpeBRepBuild_ListIteratorOfListOfPave.hxx
TopOpeBRepBuild_ListOfShapeListOfShape.hxx
TopOpeBRepBuild_ListIteratorOfListOfShapeListOfShape.hxx
TopOpeBRepBuild_DataMapOfShapeListOfShapeListOfShape.hxx
TopOpeBRepBuild_DataMapIteratorOfDataMapOfShapeListOfShapeListOfShape.hxx
TopOpeBRepBuild_IndexedDataMapOfShapeVertexInfo.hxx
TopOpeBRepBuild_ListOfListOfLoop.hxx
TopOpeBRepBuild_ListOfLoop.hxx
TopOpeBRepBuild_ListOfPave.hxx
TopOpeBRepBuild_ListOfShapeListOfShape.hxx
TopOpeBRepBuild_Loop.cxx
TopOpeBRepBuild_Loop.hxx
TopOpeBRepBuild_LoopClassifier.cxx
TopOpeBRepBuild_LoopClassifier.hxx
TopOpeBRepBuild_LoopEnum.hxx
TopOpeBRepBuild_LoopSet.cxx
TopOpeBRepBuild_LoopSet.hxx
TopOpeBRepBuild_makeedges.cxx
TopOpeBRepBuild_makefaces.cxx
TopOpeBRepBuild_makesolids.cxx
TopOpeBRepBuild_Merge.cxx
TopOpeBRepBuild_on.cxx
TopOpeBRepBuild_Pave.cxx
TopOpeBRepBuild_Pave.hxx
TopOpeBRepBuild_PaveClassifier.cxx
TopOpeBRepBuild_PaveClassifier.hxx
TopOpeBRepBuild_PaveSet.cxx
TopOpeBRepBuild_PaveSet.hxx
TopOpeBRepBuild_PBuilder.hxx
TopOpeBRepBuild_PGTopo.hxx
TopOpeBRepBuild_PWireEdgeSet.hxx
TopOpeBRepBuild_Section.cxx
TopOpeBRepBuild_ShapeListOfShape.cxx
TopOpeBRepBuild_ShapeListOfShape.hxx
TopOpeBRepBuild_ShapeSet.cxx
TopOpeBRepBuild_ShapeSet.hxx
TopOpeBRepBuild_ShellFaceClassifier.cxx
TopOpeBRepBuild_ShellFaceClassifier.hxx
TopOpeBRepBuild_ShellFaceSet.cxx
TopOpeBRepBuild_ShellFaceSet.hxx
TopOpeBRepBuild_ShellToSolid.cxx
TopOpeBRepBuild_ShellToSolid.hxx
TopOpeBRepBuild_SolidAreaBuilder.cxx
TopOpeBRepBuild_SolidAreaBuilder.hxx
TopOpeBRepBuild_SolidBuilder.cxx
TopOpeBRepBuild_SolidBuilder.hxx
TopOpeBRepBuild_SplitEdge.hxx
TopOpeBRepBuild_SplitFace.hxx
TopOpeBRepBuild_SplitShapes.hxx
TopOpeBRepBuild_SplitSolid.hxx
TopOpeBRepBuild_SREGU.cxx
TopOpeBRepBuild_Tools.cxx
TopOpeBRepBuild_Tools.hxx
TopOpeBRepBuild_Tools2d.cxx
TopOpeBRepBuild_Tools2d.hxx
TopOpeBRepBuild_Tools_1.cxx
TopOpeBRepBuild_trace.cxx
TopOpeBRepBuild_VertexInfo.cxx
TopOpeBRepBuild_VertexInfo.hxx
TopOpeBRepBuild_WireEdgeClassifier.cxx
TopOpeBRepBuild_WireEdgeClassifier.hxx
TopOpeBRepBuild_WireEdgeSet.cxx
TopOpeBRepBuild_WireEdgeSet.hxx
TopOpeBRepBuild_WireToFace.cxx
TopOpeBRepBuild_WireToFace.hxx

View File

@@ -1,118 +0,0 @@
-- Created on: 1993-06-17
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
package TopOpeBRepBuild
---Purpose:
-- This package describes algorithms and dedicated tools
-- involved in topological operation on BRep shapes.
-- These "builders" works on a data structure that must have been
-- previously filled (by a "filler") according to the
-- topological operation rules defined in class DataStructure
-- from TopOpeBRepDS.
-- The DSFiller must be considered as a "linking" tool
-- dealing with geometric data as an input and a DS as an
-- output.
-- These geometric data may be seen as the result of 3D
-- intersection between BRep shapes.
uses
Standard, MMgt, TCollection, TColStd,
gp, Geom, Geom2d, Geom2dInt,
TopAbs, TopoDS, TopTools, TopExp,
BRepClass, BRep,
TopOpeBRepDS, TopOpeBRepTool,
--modified by NIZNHY-PKV Thu Feb 10 11:51:54 2000 f
Bnd
--modified by NIZNHY-PKV Thu Feb 10 11:51:57 2000 t
is
class Loop;
imported ListOfLoop;
imported ListIteratorOfListOfLoop;
class LoopSet;
deferred class LoopClassifier;
enumeration LoopEnum is ANYLOOP,BOUNDARY,BLOCK end LoopEnum;
imported ListOfListOfLoop;
imported ListIteratorOfListOfListOfLoop;
class AreaBuilder;
class Pave;
imported ListOfPave;
imported ListIteratorOfListOfPave;
class PaveSet;
class PaveClassifier;
class Area1dBuilder;
class EdgeBuilder;
--modified by NIZHNY-MZV Mon Sep 20 15:43:24 1999
class Tools;
-- class LoopTreeNode;
-- class ListOfLoopTreeNode instantiates List from TCollection (LoopTreeNode);
-- class IndexedDataMapOfLoopListOfLoop instantiates IndexedDataMap from TCollection
-- (Transient from Standard, ListOfLoop from TopOpeBRepBuild, MapTransientHasher from TColStd);
class ShapeSet;
class WireEdgeSet;pointer PWireEdgeSet to WireEdgeSet from TopOpeBRepBuild;
class ShellFaceSet;
class BlockIterator;
class BlockBuilder;
deferred class CompositeClassifier;
class WireEdgeClassifier;
class ShellFaceClassifier;
class Area2dBuilder;
class FaceAreaBuilder;
class FaceBuilder;
class Area3dBuilder;
class SolidAreaBuilder;
class SolidBuilder;
class ShapeListOfShape;
imported ListOfShapeListOfShape;
imported ListIteratorOfListOfShapeListOfShape;
imported DataMapOfShapeListOfShapeListOfShape;
imported DataMapIteratorOfDataMapOfShapeListOfShapeListOfShape;
class GTopo; pointer PGTopo to GTopo from TopOpeBRepBuild;
class GIter;
class GTool;
class Builder; pointer PBuilder to Builder from TopOpeBRepBuild;
--modified by NIZHNY-MZV Wed Sep 29 09:33:20 1999
class Builder1;
class BuilderON;
class HBuilder;
class WireToFace;
class ShellToSolid;
class FuseFace;
--modified by NIZNHY-PKV Thu Feb 10 11:25:15 2000 from
class CorrectFace2d;
class VertexInfo;
class Tools2d;
imported IndexedDataMapOfShapeVertexInfo;
--modified by NIZNHY-PKV Thu Feb 10 11:25:19 2000 to
end TopOpeBRepBuild;

View File

@@ -1,66 +0,0 @@
-- Created on: 1995-12-21
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1995-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class Area1dBuilder from TopOpeBRepBuild
inherits AreaBuilder from TopOpeBRepBuild
uses
PaveSet from TopOpeBRepBuild,
PaveClassifier from TopOpeBRepBuild,
Loop from TopOpeBRepBuild,
ListOfLoop from TopOpeBRepBuild,
ListIteratorOfListOfLoop from TopOpeBRepBuild,
ListOfListOfLoop from TopOpeBRepBuild,
ListIteratorOfListOfListOfLoop from TopOpeBRepBuild,
LoopSet from TopOpeBRepBuild,
LoopClassifier from TopOpeBRepBuild,
LoopEnum from TopOpeBRepBuild
is
Create returns Area1dBuilder;
Create(LS : in out PaveSet; LC : in out PaveClassifier;
ForceClass : Boolean = Standard_False) returns Area1dBuilder;
---Purpose: Creates a Area1dBuilder to find the areas of
-- the shapes described by <LS> using the classifier <LC>.
InitAreaBuilder(me : in out;
LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean = Standard_False)
---Purpose: Sets a Area1dBuilder to find the areas of
-- the shapes described by <LS> using the classifier <LC>.
is redefined;
ADD_Loop_TO_LISTOFLoop(me; L : Loop;
LOL : in out ListOfLoop;
s : Address = NULL) is redefined;
REM_Loop_FROM_LISTOFLoop(me; ITLOL : in out ListIteratorOfListOfLoop;
LOL : in out ListOfLoop;
s : Address = NULL) is redefined;
ADD_LISTOFLoop_TO_LISTOFLoop(me; LOL1 : in out ListOfLoop;
LOL2 : in out ListOfLoop;
s : Address = NULL;
s1 : Address = NULL;
s2 : Address = NULL) is redefined;
DumpList(myclass; L:ListOfLoop);
end Area1dBuilder from TopOpeBRepBuild;

View File

@@ -14,14 +14,19 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Area1dBuilder.ixx>
#include <TopOpeBRepBuild_Pave.hxx>
#include <TopOpeBRepBuild_LoopEnum.hxx>
#include <Standard_DomainError.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <TopAbs_Orientation.hxx>
#include <TopAbs.hxx>
#include <TopAbs_Orientation.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <TopOpeBRepBuild_Area1dBuilder.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_LoopClassifier.hxx>
#include <TopOpeBRepBuild_LoopEnum.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
#include <TopOpeBRepBuild_Pave.hxx>
#include <TopOpeBRepBuild_PaveClassifier.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GettraceAREA();

View File

@@ -0,0 +1,85 @@
// Created on: 1995-12-21
// Created by: Jean Yves LEBEY
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_Area1dBuilder_HeaderFile
#define _TopOpeBRepBuild_Area1dBuilder_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopOpeBRepBuild_AreaBuilder.hxx>
#include <Standard_Boolean.hxx>
#include <TopOpeBRepBuild_ListOfLoop.hxx>
#include <Standard_Address.hxx>
#include <TopOpeBRepBuild_ListIteratorOfListOfLoop.hxx>
class TopOpeBRepBuild_PaveSet;
class TopOpeBRepBuild_PaveClassifier;
class TopOpeBRepBuild_LoopSet;
class TopOpeBRepBuild_LoopClassifier;
class TopOpeBRepBuild_Loop;
class TopOpeBRepBuild_Area1dBuilder : public TopOpeBRepBuild_AreaBuilder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_Area1dBuilder();
//! Creates a Area1dBuilder to find the areas of
//! the shapes described by <LS> using the classifier <LC>.
Standard_EXPORT TopOpeBRepBuild_Area1dBuilder(TopOpeBRepBuild_PaveSet& LS, TopOpeBRepBuild_PaveClassifier& LC, const Standard_Boolean ForceClass = Standard_False);
//! Sets a Area1dBuilder to find the areas of
//! the shapes described by <LS> using the classifier <LC>.
Standard_EXPORT virtual void InitAreaBuilder (TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False) Standard_OVERRIDE;
Standard_EXPORT virtual void ADD_Loop_TO_LISTOFLoop (const Handle(TopOpeBRepBuild_Loop)& L, TopOpeBRepBuild_ListOfLoop& LOL, const Standard_Address s = NULL) const Standard_OVERRIDE;
Standard_EXPORT virtual void REM_Loop_FROM_LISTOFLoop (TopOpeBRepBuild_ListIteratorOfListOfLoop& ITLOL, TopOpeBRepBuild_ListOfLoop& LOL, const Standard_Address s = NULL) const Standard_OVERRIDE;
Standard_EXPORT virtual void ADD_LISTOFLoop_TO_LISTOFLoop (TopOpeBRepBuild_ListOfLoop& LOL1, TopOpeBRepBuild_ListOfLoop& LOL2, const Standard_Address s = NULL, const Standard_Address s1 = NULL, const Standard_Address s2 = NULL) const Standard_OVERRIDE;
Standard_EXPORT static void DumpList (const TopOpeBRepBuild_ListOfLoop& L);
protected:
private:
};
#endif // _TopOpeBRepBuild_Area1dBuilder_HeaderFile

View File

@@ -1,51 +0,0 @@
-- Created on: 1995-12-21
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1995-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class Area2dBuilder from TopOpeBRepBuild
inherits AreaBuilder from TopOpeBRepBuild
---Purpose:
-- The Area2dBuilder algorithm is used to construct Faces from a LoopSet,
-- where the Loop is the composite topological object of the boundary,
-- here wire or block of edges.
-- The LoopSet gives an iteration on Loops.
-- For each Loop it indicates if it is on the boundary (wire) or if it
-- results from an interference (block of edges).
-- The result of the Area2dBuilder is an iteration on areas.
-- An area is described by a set of Loops.
uses
LoopSet from TopOpeBRepBuild,
LoopClassifier from TopOpeBRepBuild
is
Create returns Area2dBuilder;
Create(LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean = Standard_False) returns Area2dBuilder;
---Purpose: Creates a Area2dBuilder to build faces on
-- the (wires,blocks of edge) of <LS>, using the classifier <LC>.
InitAreaBuilder(me : in out;
LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean = Standard_False)
---Purpose: Sets a Area1dBuilder to find the areas of
-- the shapes described by <LS> using the classifier <LC>.
is redefined;
end Area2dBuilder from TopOpeBRepBuild;

View File

@@ -14,8 +14,11 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Area2dBuilder.ixx>
#include <TopOpeBRepBuild_Area2dBuilder.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_LoopClassifier.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GettraceAREA();

View File

@@ -0,0 +1,79 @@
// Created on: 1995-12-21
// Created by: Jean Yves LEBEY
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_Area2dBuilder_HeaderFile
#define _TopOpeBRepBuild_Area2dBuilder_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopOpeBRepBuild_AreaBuilder.hxx>
#include <Standard_Boolean.hxx>
class TopOpeBRepBuild_LoopSet;
class TopOpeBRepBuild_LoopClassifier;
//! The Area2dBuilder algorithm is used to construct Faces from a LoopSet,
//! where the Loop is the composite topological object of the boundary,
//! here wire or block of edges.
//! The LoopSet gives an iteration on Loops.
//! For each Loop it indicates if it is on the boundary (wire) or if it
//! results from an interference (block of edges).
//! The result of the Area2dBuilder is an iteration on areas.
//! An area is described by a set of Loops.
class TopOpeBRepBuild_Area2dBuilder : public TopOpeBRepBuild_AreaBuilder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_Area2dBuilder();
//! Creates a Area2dBuilder to build faces on
//! the (wires,blocks of edge) of <LS>, using the classifier <LC>.
Standard_EXPORT TopOpeBRepBuild_Area2dBuilder(TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False);
//! Sets a Area1dBuilder to find the areas of
//! the shapes described by <LS> using the classifier <LC>.
Standard_EXPORT virtual void InitAreaBuilder (TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False) Standard_OVERRIDE;
protected:
private:
};
#endif // _TopOpeBRepBuild_Area2dBuilder_HeaderFile

View File

@@ -1,51 +0,0 @@
-- Created on: 1995-12-21
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1995-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class Area3dBuilder from TopOpeBRepBuild
inherits AreaBuilder from TopOpeBRepBuild
---Purpose:
-- The Area3dBuilder algorithm is used to construct Solids from a LoopSet,
-- where the Loop is the composite topological object of the boundary,
-- here wire or block of edges.
-- The LoopSet gives an iteration on Loops.
-- For each Loop it indicates if it is on the boundary (wire) or if it
-- results from an interference (block of edges).
-- The result of the Area3dBuilder is an iteration on areas.
-- An area is described by a set of Loops.
uses
LoopSet from TopOpeBRepBuild,
LoopClassifier from TopOpeBRepBuild
is
Create returns Area3dBuilder;
Create(LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean = Standard_False) returns Area3dBuilder;
---Purpose: Creates a Area3dBuilder to build Solids on
-- the (shells,blocks of face) of <LS>, using the classifier <LC>.
InitAreaBuilder(me : in out;
LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean = Standard_False)
---Purpose: Sets a Area1dBuilder to find the areas of
-- the shapes described by <LS> using the classifier <LC>.
is redefined;
end Area3dBuilder from TopOpeBRepBuild;

View File

@@ -14,15 +14,16 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Area3dBuilder.ixx>
#include <TopOpeBRepBuild_Area3dBuilder.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_LoopClassifier.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
//=======================================================================
//function : TopOpeBRepBuild_Area3dBuilder
//purpose :
//=======================================================================
TopOpeBRepBuild_Area3dBuilder::TopOpeBRepBuild_Area3dBuilder()
{
}

View File

@@ -0,0 +1,79 @@
// Created on: 1995-12-21
// Created by: Jean Yves LEBEY
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_Area3dBuilder_HeaderFile
#define _TopOpeBRepBuild_Area3dBuilder_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopOpeBRepBuild_AreaBuilder.hxx>
#include <Standard_Boolean.hxx>
class TopOpeBRepBuild_LoopSet;
class TopOpeBRepBuild_LoopClassifier;
//! The Area3dBuilder algorithm is used to construct Solids from a LoopSet,
//! where the Loop is the composite topological object of the boundary,
//! here wire or block of edges.
//! The LoopSet gives an iteration on Loops.
//! For each Loop it indicates if it is on the boundary (wire) or if it
//! results from an interference (block of edges).
//! The result of the Area3dBuilder is an iteration on areas.
//! An area is described by a set of Loops.
class TopOpeBRepBuild_Area3dBuilder : public TopOpeBRepBuild_AreaBuilder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_Area3dBuilder();
//! Creates a Area3dBuilder to build Solids on
//! the (shells,blocks of face) of <LS>, using the classifier <LC>.
Standard_EXPORT TopOpeBRepBuild_Area3dBuilder(TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False);
//! Sets a Area1dBuilder to find the areas of
//! the shapes described by <LS> using the classifier <LC>.
Standard_EXPORT virtual void InitAreaBuilder (TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False) Standard_OVERRIDE;
protected:
private:
};
#endif // _TopOpeBRepBuild_Area3dBuilder_HeaderFile

View File

@@ -1,113 +0,0 @@
-- Created on: 1995-12-21
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1995-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class AreaBuilder from TopOpeBRepBuild
---Purpose:
-- The AreaBuilder algorithm is used to
-- reconstruct complex topological objects as Faces
-- or Solids.
-- * Loop is the composite topological object of
-- the boundary. Wire for a Face. Shell for a Solid.
-- * LoopSet is a tool describing the object to
-- build. It gives an iteration on Loops. For each
-- Loop it tells if it is on the boundary or if it is
-- an interference.
-- * LoopClassifier is an algorithm used to test
-- if a Loop is inside another Loop.
-- The result of the reconstruction is an iteration
-- on the reconstructed areas. An area is described
-- by a set of Loops.
-- A AreaBuilder is built with :
-- - a LoopSet describing the object to reconstruct.
-- - a LoopClassifier providing the classification algorithm.
uses
State from TopAbs,
Loop from TopOpeBRepBuild,
ListOfLoop from TopOpeBRepBuild,
ListIteratorOfListOfLoop from TopOpeBRepBuild,
ListOfListOfLoop from TopOpeBRepBuild,
ListIteratorOfListOfListOfLoop from TopOpeBRepBuild,
LoopSet from TopOpeBRepBuild,
LoopClassifier from TopOpeBRepBuild,
LoopEnum from TopOpeBRepBuild
is
Create returns AreaBuilder;
Create(LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean = Standard_False) returns AreaBuilder;
---Purpose: Creates a AreaBuilder to build the areas on
-- the shapes described by <LS> using the classifier <LC>.
Delete(me:out) is virtual;
---C++: alias "Standard_EXPORT virtual ~TopOpeBRepBuild_AreaBuilder(){Delete() ; }"
InitAreaBuilder(me : in out;
LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean from Standard = Standard_False)
---Purpose: Sets a AreaBuilder to find the areas on
-- the shapes described by <LS> using the classifier <LC>.
is virtual;
CompareLoopWithListOfLoop(me;
LC : in out LoopClassifier;
L : Loop;
LOL : ListOfLoop;
le : LoopEnum)
returns State from TopAbs is static protected;
Atomize(me;state : in out State from TopAbs; newstate : State from TopAbs)
is static protected;
InitArea(me : in out) returns Integer from Standard is static;
---Purpose: Initialize iteration on areas.
MoreArea(me) returns Boolean from Standard is static;
NextArea(me : in out) is static;
InitLoop(me : in out) returns Integer from Standard is static;
---Purpose: Initialize iteration on loops of current Area.
MoreLoop(me) returns Boolean from Standard is static;
NextLoop(me : in out) is static;
Loop(me) returns Loop from TopOpeBRepBuild is static;
---Purpose: Returns the current Loop in the current area.
---C++: return const&
ADD_Loop_TO_LISTOFLoop(me; L : Loop;
LOL : in out ListOfLoop;
s : Address = NULL) is virtual;
REM_Loop_FROM_LISTOFLoop(me; ITLOL : in out ListIteratorOfListOfLoop;
LOL : in out ListOfLoop;
s : Address = NULL) is virtual;
ADD_LISTOFLoop_TO_LISTOFLoop(me; LOL1 : in out ListOfLoop;
LOL2 : in out ListOfLoop;
s : Address = NULL;
s1 : Address = NULL;
s2 : Address = NULL) is virtual;
fields
myArea : ListOfListOfLoop is protected;
myAreaIterator : ListIteratorOfListOfListOfLoop is protected;
myLoopIterator : ListIteratorOfListOfLoop is protected;
myUNKNOWNRaise : Boolean is protected;
end AreaBuilder from TopOpeBRepBuild;

View File

@@ -20,10 +20,12 @@
// Celine
// Voyage au bout de la nuit
#include <TopOpeBRepBuild_AreaBuilder.ixx>
#include <Standard_DomainError.hxx>
#include <TopAbs.hxx>
#include <TopOpeBRepBuild_AreaBuilder.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_LoopClassifier.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepDS_GettraceSTRANGE();

View File

@@ -0,0 +1,130 @@
// Created on: 1995-12-21
// Created by: Jean Yves LEBEY
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_AreaBuilder_HeaderFile
#define _TopOpeBRepBuild_AreaBuilder_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopOpeBRepBuild_ListOfListOfLoop.hxx>
#include <TopOpeBRepBuild_ListIteratorOfListOfListOfLoop.hxx>
#include <TopOpeBRepBuild_ListIteratorOfListOfLoop.hxx>
#include <Standard_Boolean.hxx>
#include <TopAbs_State.hxx>
#include <TopOpeBRepBuild_ListOfLoop.hxx>
#include <TopOpeBRepBuild_LoopEnum.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Address.hxx>
class TopOpeBRepBuild_LoopSet;
class TopOpeBRepBuild_LoopClassifier;
class TopOpeBRepBuild_Loop;
//! The AreaBuilder algorithm is used to
//! reconstruct complex topological objects as Faces
//! or Solids.
//! * Loop is the composite topological object of
//! the boundary. Wire for a Face. Shell for a Solid.
//! * LoopSet is a tool describing the object to
//! build. It gives an iteration on Loops. For each
//! Loop it tells if it is on the boundary or if it is
//! an interference.
//! * LoopClassifier is an algorithm used to test
//! if a Loop is inside another Loop.
//! The result of the reconstruction is an iteration
//! on the reconstructed areas. An area is described
//! by a set of Loops.
//! A AreaBuilder is built with :
//! - a LoopSet describing the object to reconstruct.
//! - a LoopClassifier providing the classification algorithm.
class TopOpeBRepBuild_AreaBuilder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_AreaBuilder();
//! Creates a AreaBuilder to build the areas on
//! the shapes described by <LS> using the classifier <LC>.
Standard_EXPORT TopOpeBRepBuild_AreaBuilder(TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False);
Standard_EXPORT virtual void Delete();
Standard_EXPORT virtual ~TopOpeBRepBuild_AreaBuilder(){Delete() ; }
//! Sets a AreaBuilder to find the areas on
//! the shapes described by <LS> using the classifier <LC>.
Standard_EXPORT virtual void InitAreaBuilder (TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False);
//! Initialize iteration on areas.
Standard_EXPORT Standard_Integer InitArea();
Standard_EXPORT Standard_Boolean MoreArea() const;
Standard_EXPORT void NextArea();
//! Initialize iteration on loops of current Area.
Standard_EXPORT Standard_Integer InitLoop();
Standard_EXPORT Standard_Boolean MoreLoop() const;
Standard_EXPORT void NextLoop();
//! Returns the current Loop in the current area.
Standard_EXPORT const Handle(TopOpeBRepBuild_Loop)& Loop() const;
Standard_EXPORT virtual void ADD_Loop_TO_LISTOFLoop (const Handle(TopOpeBRepBuild_Loop)& L, TopOpeBRepBuild_ListOfLoop& LOL, const Standard_Address s = NULL) const;
Standard_EXPORT virtual void REM_Loop_FROM_LISTOFLoop (TopOpeBRepBuild_ListIteratorOfListOfLoop& ITLOL, TopOpeBRepBuild_ListOfLoop& LOL, const Standard_Address s = NULL) const;
Standard_EXPORT virtual void ADD_LISTOFLoop_TO_LISTOFLoop (TopOpeBRepBuild_ListOfLoop& LOL1, TopOpeBRepBuild_ListOfLoop& LOL2, const Standard_Address s = NULL, const Standard_Address s1 = NULL, const Standard_Address s2 = NULL) const;
protected:
Standard_EXPORT TopAbs_State CompareLoopWithListOfLoop (TopOpeBRepBuild_LoopClassifier& LC, const Handle(TopOpeBRepBuild_Loop)& L, const TopOpeBRepBuild_ListOfLoop& LOL, const TopOpeBRepBuild_LoopEnum le) const;
Standard_EXPORT void Atomize (TopAbs_State& state, const TopAbs_State newstate) const;
TopOpeBRepBuild_ListOfListOfLoop myArea;
TopOpeBRepBuild_ListIteratorOfListOfListOfLoop myAreaIterator;
TopOpeBRepBuild_ListIteratorOfListOfLoop myLoopIterator;
Standard_Boolean myUNKNOWNRaise;
private:
};
#endif // _TopOpeBRepBuild_AreaBuilder_HeaderFile

View File

@@ -1,70 +0,0 @@
-- Created on: 1993-02-25
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class BlockBuilder from TopOpeBRepBuild
uses
Shape from TopoDS, -- Face,Edge
ShapeSet from TopOpeBRepBuild,
IndexedMapOfOrientedShape from TopTools,
BlockIterator from TopOpeBRepBuild,
SequenceOfInteger from TColStd,
DataMapOfIntegerInteger from TColStd
is
Create returns BlockBuilder;
-- creation of the blocks buildable from a ShapeSet
Create(SS : in out ShapeSet) returns BlockBuilder;
MakeBlock(me : in out; SS : in out ShapeSet) is static;
-- Iteration on blocks made by MakeBlock
InitBlock(me : in out) is static;
MoreBlock(me) returns Boolean from Standard is static;
NextBlock(me : in out) is static;
-- Iteration on shapes of current block
BlockIterator(me) returns BlockIterator is static;
Element(me; BI : BlockIterator) returns Shape from TopoDS is static;
---Purpose: Returns the current element of <BI>.
---C++: return const &
Element(me; I : Integer) returns Shape from TopoDS is static;
---C++: return const &
Element(me; S : Shape from TopoDS) returns Integer;
ElementIsValid(me; BI : BlockIterator) returns Boolean;
ElementIsValid(me; I : Integer) returns Boolean;
AddElement(me : in out; S : Shape from TopoDS) returns Integer;
SetValid(me : in out; BI : BlockIterator; isvalid : Boolean);
SetValid(me : in out; I : Integer; isvalid : Boolean);
CurrentBlockIsRegular(me : in out) returns Boolean from Standard;
fields
myOrientedShapeMapIsValid : DataMapOfIntegerInteger from TColStd;
myOrientedShapeMap : IndexedMapOfOrientedShape from TopTools;
myBlocks : SequenceOfInteger from TColStd;
myBlockIndex : Integer from Standard;
myIsDone : Boolean from Standard;
myBlocksIsRegular : SequenceOfInteger from TColStd;
end BlockBuilder from TopOpeBRepBuild;

View File

@@ -14,14 +14,17 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_BlockBuilder.ixx>
#include <Standard_Failure.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_BlockBuilder.hxx>
#include <TopOpeBRepBuild_BlockIterator.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
//=======================================================================
//function : TopOpeBRepBuild_BlockBuilder
//purpose :
//=======================================================================
TopOpeBRepBuild_BlockBuilder::TopOpeBRepBuild_BlockBuilder()
:myIsDone(Standard_False)
{

View File

@@ -0,0 +1,104 @@
// Created on: 1993-02-25
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_BlockBuilder_HeaderFile
#define _TopOpeBRepBuild_BlockBuilder_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TColStd_DataMapOfIntegerInteger.hxx>
#include <TopTools_IndexedMapOfOrientedShape.hxx>
#include <TColStd_SequenceOfInteger.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Boolean.hxx>
class TopOpeBRepBuild_ShapeSet;
class TopOpeBRepBuild_BlockIterator;
class TopoDS_Shape;
class TopOpeBRepBuild_BlockBuilder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_BlockBuilder();
Standard_EXPORT TopOpeBRepBuild_BlockBuilder(TopOpeBRepBuild_ShapeSet& SS);
Standard_EXPORT void MakeBlock (TopOpeBRepBuild_ShapeSet& SS);
Standard_EXPORT void InitBlock();
Standard_EXPORT Standard_Boolean MoreBlock() const;
Standard_EXPORT void NextBlock();
Standard_EXPORT TopOpeBRepBuild_BlockIterator BlockIterator() const;
//! Returns the current element of <BI>.
Standard_EXPORT const TopoDS_Shape& Element (const TopOpeBRepBuild_BlockIterator& BI) const;
Standard_EXPORT const TopoDS_Shape& Element (const Standard_Integer I) const;
Standard_EXPORT Standard_Integer Element (const TopoDS_Shape& S) const;
Standard_EXPORT Standard_Boolean ElementIsValid (const TopOpeBRepBuild_BlockIterator& BI) const;
Standard_EXPORT Standard_Boolean ElementIsValid (const Standard_Integer I) const;
Standard_EXPORT Standard_Integer AddElement (const TopoDS_Shape& S);
Standard_EXPORT void SetValid (const TopOpeBRepBuild_BlockIterator& BI, const Standard_Boolean isvalid);
Standard_EXPORT void SetValid (const Standard_Integer I, const Standard_Boolean isvalid);
Standard_EXPORT Standard_Boolean CurrentBlockIsRegular();
protected:
private:
TColStd_DataMapOfIntegerInteger myOrientedShapeMapIsValid;
TopTools_IndexedMapOfOrientedShape myOrientedShapeMap;
TColStd_SequenceOfInteger myBlocks;
Standard_Integer myBlockIndex;
Standard_Boolean myIsDone;
TColStd_SequenceOfInteger myBlocksIsRegular;
};
#endif // _TopOpeBRepBuild_BlockBuilder_HeaderFile

View File

@@ -1,48 +0,0 @@
-- Created on: 1993-02-25
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class BlockIterator from TopOpeBRepBuild
---Purpose: Iterator on the elements of a block.
raises
NoMoreObject from Standard
is
Create returns BlockIterator from TopOpeBRepBuild;
Create(Lower,Upper : Integer from Standard)
returns BlockIterator from TopOpeBRepBuild;
Initialize(me : in out) is static;
---C++: inline
More(me) returns Boolean from Standard is static;
---C++: inline
Next(me : in out) raises NoMoreObject is static;
---C++: inline
Value(me) returns Integer from Standard is static;
---C++: inline
Extent(me) returns Integer from Standard is static;
---C++: inline
fields
myLower : Integer from Standard;
myUpper : Integer from Standard;
myValue : Integer from Standard;
end BlockIterator from TopOpeBRepBuild;

View File

@@ -14,13 +14,14 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_BlockIterator.ixx>
#include <Standard_NoMoreObject.hxx>
#include <TopOpeBRepBuild_BlockIterator.hxx>
//=======================================================================
//function : TopOpeBRepBuild_BlockIterator
//purpose :
//=======================================================================
TopOpeBRepBuild_BlockIterator::TopOpeBRepBuild_BlockIterator() :
myLower(0),
myUpper(0),

View File

@@ -0,0 +1,78 @@
// Created on: 1993-02-25
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_BlockIterator_HeaderFile
#define _TopOpeBRepBuild_BlockIterator_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Boolean.hxx>
class Standard_NoMoreObject;
//! Iterator on the elements of a block.
class TopOpeBRepBuild_BlockIterator
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_BlockIterator();
Standard_EXPORT TopOpeBRepBuild_BlockIterator(const Standard_Integer Lower, const Standard_Integer Upper);
void Initialize();
Standard_Boolean More() const;
void Next();
Standard_Integer Value() const;
Standard_Integer Extent() const;
protected:
private:
Standard_Integer myLower;
Standard_Integer myUpper;
Standard_Integer myValue;
};
#include <TopOpeBRepBuild_BlockIterator.lxx>
#endif // _TopOpeBRepBuild_BlockIterator_HeaderFile

View File

@@ -14,12 +14,35 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.jxx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TColStd_HArray1OfInteger.hxx>
#include <TopOpeBRepDS_CurveExplorer.hxx>
#include <TopOpeBRepDS_Curve.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_Curve.hxx>
#include <TopOpeBRepDS_CurveExplorer.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GettraceCU();

View File

@@ -14,13 +14,33 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.jxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <BRep_Tool.hxx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GettraceCU();

View File

@@ -14,9 +14,31 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.jxx>
#include <TopOpeBRepDS_Point.hxx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_Point.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
//=======================================================================
//function : BuildVertices

View File

@@ -1,640 +0,0 @@
-- Created on: 1993-06-14
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class Builder from TopOpeBRepBuild
---Purpose: The Builder algorithm constructs topological
-- objects from an existing topology and new
-- geometries attached to the topology. It is used to
-- construct the result of a topological operation;
-- the existing topologies are the parts involved in
-- the topological operation and the new geometries
-- are the intersection lines and points.
uses
State from TopAbs,
ShapeEnum from TopAbs,
Orientation from TopAbs,
MapOfShape from TopTools,
DataMapOfShapeListOfShape from TopTools,
IndexedMapOfOrientedShape from TopTools,
IndexedMapOfShape from TopTools,
HArray1OfShape from TopTools,
DataMapOfIntegerListOfShape from TopTools,
DataMapOfIntegerShape from TopTools,
HArray1OfListOfShape from TopTools,
DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS,
DataMapOfShapeInteger from TopTools,
DataMapOfShapeShape from TopTools,
IndexedDataMapOfShapeShape from TopTools,
ShapeSet from TopOpeBRepBuild,
EdgeBuilder from TopOpeBRepBuild,
FaceBuilder from TopOpeBRepBuild,
SolidBuilder from TopOpeBRepBuild,
WireEdgeSet from TopOpeBRepBuild,
ShellFaceSet from TopOpeBRepBuild,
ListOfShape from TopTools,
Shape from TopoDS,
Solid from TopoDS,
Face from TopoDS,
Edge from TopoDS,
Vertex from TopoDS,
ShapeExplorer from TopOpeBRepTool,
ShapeClassifier from TopOpeBRepTool,
BuildTool from TopOpeBRepDS,
PaveSet from TopOpeBRepBuild,
GTopo from TopOpeBRepBuild,
HDataStructure from TopOpeBRepDS,
SurfaceIterator from TopOpeBRepDS,
PointIterator from TopOpeBRepDS,
CurveIterator from TopOpeBRepDS,
Interference from TopOpeBRepDS,
Config from TopOpeBRepDS,
Pnt from gp,
AsciiString from TCollection
raises
NoSuchObject from Standard
is
Create(BT:BuildTool)
returns Builder from TopOpeBRepBuild;
--modified by NIZHNY-MZV Sat May 6 09:53:22 2000
Destroy(me:out) is virtual;
---C++: alias "Standard_EXPORT virtual ~TopOpeBRepBuild_Builder() { Destroy() ; }"
ChangeBuildTool(me:in out) returns BuildTool from TopOpeBRepDS;
---C++: return &
BuildTool(me) returns BuildTool from TopOpeBRepDS;
---C++: return const &
Perform (me:in out;HDS: HDataStructure) is virtual;
---Purpose: Stores the data structure <HDS>,
-- Create shapes from the new geometries.
--modified by NIZHNY-MZV Thu Nov 4 13:20:25 1999
Perform (me:in out;HDS: HDataStructure;S1,S2:Shape) is virtual;
---Purpose: Stores the data structure <HDS>,
-- Create shapes from the new geometries,
-- Evaluates if an operation performed on shapes S1,S2
-- is a particular case.
DataStructure(me) returns HDataStructure;
---Purpose: returns the DS handled by this builder
--modified by NIZHNY-MZV Tue Apr 18 15:32:13 2000
Clear(me:in out) is virtual;
---Purpose: Removes all splits and merges already performed.
-- Does NOT clear the handled DS.
MergeEdges(me:in out;
L1:ListOfShape;TB1:State;
L2:ListOfShape;TB2:State;
onA:Boolean = Standard_False;
onB:Boolean = Standard_False;
onAB:Boolean = Standard_False);
---Purpose: Merges the two edges <S1> and <S2> keeping the
-- parts in each edge of states <TB1> and <TB2>.
-- Booleans onA, onB, onAB indicate wheter parts of edges
-- found as state ON respectively on first, second, and both
-- shapes must be (or not) built.
MergeFaces(me:in out;
S1:ListOfShape;TB1:State;S2:ListOfShape;TB2:State;
onA:Boolean = Standard_False;
onB:Boolean = Standard_False;
onAB:Boolean = Standard_False);
---Purpose: Merges the two faces <S1> and <S2> keeping the
-- parts in each face of states <TB1> and <TB2>.
MergeSolids(me:in out;
S1:Shape;TB1:State;S2:Shape;TB2:State);
---Purpose: Merges the two solids <S1> and <S2> keeping the
-- parts in each solid of states <TB1> and <TB2>.
MergeShapes(me:in out;
S1:Shape;TB1:State;
S2:Shape;TB2:State);
---Purpose: Merges the two shapes <S1> and <S2> keeping the
-- parts of states <TB1>,<TB2> in <S1>,<S2>.
End(me:in out);
-- LocOpe use
Classify(me) returns Boolean;
ChangeClassify(me:in out; B:Boolean);
MergeSolid(me:in out;S:Shape;TB:State);
---Purpose: Merges the solid <S> keeping the
-- parts of state <TB>.
NewVertex(me;I:Integer) returns Shape;
---Purpose: Returns the vertex created on point <I>.
---C++: return const &
NewEdges(me;I:Integer) returns ListOfShape;
---Purpose: Returns the edges created on curve <I>.
---C++: return const &
NewFaces(me;I:Integer) returns ListOfShape;
---Purpose: Returns the faces created on surface <I>.
---C++: return const &
IsSplit(me;S:Shape;TB:State) returns Boolean;
---Purpose: Returns True if the shape <S> has been split.
Splits(me;S:Shape;TB:State) returns ListOfShape
---Purpose: Returns the split parts <TB> of shape <S>.
---C++: return const &
raises NoSuchObject from Standard; -- if S is not IsSplit()
IsMerged(me;S:Shape;TB:State) returns Boolean;
---Purpose: Returns True if the shape <S> has been merged.
Merged(me;S:Shape;TB:State) returns ListOfShape
---Purpose: Returns the merged parts <TB> of shape <S>.
---C++: return const &
raises NoSuchObject from Standard; -- if <S> is not IsMerged()
InitSection(me:in out);
SplitSectionEdges (me:in out);
---Purpose: create parts ON solid of section edges
--modified by NIZHNY-MZV Wed Feb 23 12:54:11 2000
SplitSectionEdge (me:in out; E:Shape from TopoDS) is virtual;
---Purpose: create parts ON solid of section edges
SectionCurves(me:in out; L:in out ListOfShape);
---Purpose: return the section edges built on new curves.
SectionEdges(me:in out; L:in out ListOfShape);
---Purpose: return the parts of edges found ON the boundary
-- of the two arguments S1,S2 of Perform()
FillSecEdgeAncestorMap(me; aShapeRank: Integer; aMapON: MapOfShape;
anAncMap: out DataMapOfShapeShape);
---Purpose: Fills anAncMap with pairs (edge,ancestor edge) for each
-- split from the map aMapON for the shape object identified
-- by ShapeRank
Section(me:in out; L:in out ListOfShape);
---Purpose: return all section edges.
Section(me:in out) returns ListOfShape;
---C++: return const &
BuildVertices (me:in out;DS: HDataStructure);
---Purpose: update the DS by creating new geometries.
-- create vertices on DS points.
BuildEdges (me:in out;DS: HDataStructure);
---Purpose: update the DS by creating new geometries.
-- create shapes from the new geometries.
MSplit(me;s:State from TopAbs)
returns DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS;
---C++: return const &
ChangeMSplit(me:in out;s:State from TopAbs)
returns DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS;
---C++: return &
-------
-- private
-------
BuildEdges (me:in out;iC:Integer;DS: HDataStructure) is protected;
---Purpose: update the DS by creating new geometries.
-- create edges on the new curve <Icurv>.
BuildFaces (me:in out;iS:Integer;DS: HDataStructure) is protected;
---Purpose: update the DS by creating new geometries.
-- create faces on the new surface <ISurf>.
BuildFaces (me:in out;DS: HDataStructure) is protected;
---Purpose: update the DS by creating new geometries.
-- create shapes from the new geometries.
SplitEdge(me:in out;E1:Shape;TB1,TB2:State) is protected;
---Purpose: Split <E1> keeping the parts of state <TB1>.
SplitEdge1(me:in out;E1:Shape;TB1,TB2:State) is protected;
---Purpose: Split <E1> keeping the parts of state <TB1>.
SplitEdge2(me:in out;E1:Shape;TB1,TB2:State) is protected;
---Purpose: Split <E1> keeping the parts of state <TB1>.
SplitFace(me:in out;F1:Shape;TB1,TB2:State) is protected;
---Purpose: Split <F1> keeping the parts of state <TB1>.
-- Merge faces with same domain, keeping parts of
-- state <TB2>.
SplitFace1(me:in out;F1:Shape;TB1,TB2:State) is protected;
SplitFace2(me:in out;F1:Shape;TB1,TB2:State) is protected;
SplitSolid(me:in out;S1:Shape;TB1,TB2:State) is protected;
---Purpose: Split <S1> keeping the parts of state <TB1>.
SplitShapes(me:in out;Ex:in out ShapeExplorer from TopOpeBRepTool;
TB1,TB2:State;
SS:in out ShapeSet;RevOri:Boolean) is protected;
---Purpose: Explore shapes of given by explorer <Ex> to split them.
-- Store new shapes in the set <SS>.
-- According to RevOri, reverse or not their orientation.
MakeEdges(me:in out;E:Shape;B:in out EdgeBuilder;
L:in out ListOfShape);
MakeFaces(me:in out;F:Shape;B:in out FaceBuilder;
L:in out ListOfShape);
MakeSolids(me:in out;B:in out SolidBuilder;
L:in out ListOfShape);
MakeShells(me:in out;B:in out SolidBuilder;
L:in out ListOfShape);
FillFace(me:in out;F1:Shape;TB1:State;
LF2:ListOfShape;TB2:State;
WES:in out WireEdgeSet;RevOri:Boolean) is protected;
---Purpose: Split edges of <F1> and store wires and edges in
-- the set <WES>. According to RevOri, reverse (or not) orientation.
FillSolid(me:in out;S1:Shape;TB1:State;
LS2:ListOfShape;TB2:State;
SS:in out ShapeSet;RevOri:Boolean) is protected;
---Purpose: Split faces of <S1> and store shells and faces in
-- the set <SS>. According to RevOri, reverse (or not) orientation.
FillShape(me:in out;S1:Shape;TB1:State;
LS2:ListOfShape;TB2:State;
SS:in out ShapeSet;RevOri:Boolean) is protected;
---Purpose: Split subshapes of <S1> and store subshapes in
-- the set <SS>. According to RevOri, reverse (or not) orientation.
FillVertexSet(me;IT:in out PointIterator;
TB:State;PVS:in out PaveSet) is protected;
---Purpose: fills the vertex set PVS with the point iterator IT.
-- IT accesses a list of interferences which geometry is a point or a vertex.
-- TB indicates the orientation to give to the geometries
-- found in interference list accessed by IT.
FillVertexSetOnValue(me;IT:PointIterator;
TB:State;PVS:in out PaveSet) is protected;
---Purpose: fills vertex set PVS with the current value of IT.
-- I geometry is a point or a vertex.
-- TB indicates the orientation to give to geometries found I
ToSplit(me;S:Shape;TB:State) returns Boolean is protected;
---Purpose: Returns True if the shape <S> has not already been split
--modified by NIZHNY-MZV Thu Sep 30 10:29:53 1999
MarkSplit(me:in out;S:Shape;TB:State;B:Boolean=Standard_True) is protected;
---Purpose: add the shape <S> to the map of split shapes.
-- mark <S> as split/not split on <state>, according to B value.
ChangeSplit(me:in out;S:Shape;TB:State) returns ListOfShape;
---Purpose: Returns a ref.on the list of shapes connected to <S> as
-- <TB> split parts of <S>.
-- Mark <S> as split in <TB> parts.
---C++: return &
ChangeMerged(me:in out;S:Shape;TB:State) returns ListOfShape is protected;
---Purpose: Returns a ref. on the list of shapes connected to <S> as
-- <TB> merged parts of <S>.
---C++: return &
ChangeNewVertex(me:in out;I:Integer) returns Shape is protected;
---Purpose: Returns a ref. on the vertex created on point <I>.
---C++: return &
ChangeNewEdges(me:in out;I:Integer) returns ListOfShape is protected;
---Purpose: Returns a ref. on the list of edges created on curve <I>.
---C++: return &
ChangeNewFaces(me:in out;I:Integer) returns ListOfShape is protected;
---Purpose: Returns a ref. on the list of faces created on surface <I>.
---C++: return &
AddIntersectionEdges(me;F:in out Shape;TB:State;
RevOri:Boolean;ES:in out ShapeSet) is protected;
Opec12(me) returns Boolean;
Opec21(me) returns Boolean;
Opecom(me) returns Boolean;
Opefus(me) returns Boolean;
ShapePosition(me:in out;S:Shape;LS:ListOfShape) returns State;
KeepShape(me:in out;S:Shape;LS:ListOfShape;T:State) returns Boolean;
TopType(myclass;S:Shape) returns ShapeEnum;
Reverse(myclass;T1,T2:State) returns Boolean;
Orient(myclass;O:Orientation;R:Boolean) returns Orientation;
FindSameDomain(me;L1,L2:in out ListOfShape);
FindSameDomainSameOrientation(me;LSO,LDO:in out ListOfShape);
MapShapes(me:in out;S1,S2:Shape);
ClearMaps(me:in out);
FindSameRank(me;L1:ListOfShape;R:Integer;L2:in out ListOfShape);
ShapeRank(me;S:Shape) returns Integer;
IsShapeOf(me;S:Shape;I12:Integer) returns Boolean;
Contains(myclass;S:Shape;L:ListOfShape) returns Boolean;
UpdateSplitAndMerged(me : in out; mle :DataMapOfIntegerListOfShape from TopTools;
mre :DataMapOfIntegerShape from TopTools;
mlf :DataMapOfShapeShape from TopTools;
state :State from TopAbs)
is protected;
-- KPart Builder
FindIsKPart(me:in out) returns Integer;
IsKPart(me) returns Integer;
--Begin modified by NIZHNY-MZV Mon Feb 7 17:18:40 2000
MergeKPart(me:in out) is virtual;
MergeKPart(me:in out;TB1,TB2:State) is virtual;
--End modified by NIZHNY-MZV Mon Feb 7 17:18:45 2000
MergeKPartiskole(me:in out);
MergeKPartiskoletge(me:in out);
MergeKPartisdisj(me:in out);
MergeKPartisfafa(me:in out);
MergeKPartissoso(me:in out);
KPiskole(me:in out) returns Integer;
KPiskoletge(me:in out) returns Integer;
KPisdisj(me:in out) returns Integer;
KPisfafa(me:in out) returns Integer;
KPissoso(me:in out) returns Integer;
KPClearMaps(me:in out);
KPlhg(me;S:Shape;T:ShapeEnum;L:out ListOfShape) returns Integer;
KPlhg(me;S:Shape;T:ShapeEnum) returns Integer;
KPlhsd(me;S:Shape;T:ShapeEnum;L:out ListOfShape) returns Integer;
KPlhsd(me;S:Shape;T:ShapeEnum) returns Integer;
KPclasSS(me:in out;S1:Shape;exceptLS1:ListOfShape;S2:Shape) returns State;
KPclasSS(me:in out;S1,exceptS1,S2:Shape) returns State;
KPclasSS(me:in out;S1,S2:Shape) returns State;
KPiskolesh(me;S:Shape;LS,LF:out ListOfShape) returns Boolean;
KPiskoletgesh(me;S:Shape;LS,LF:out ListOfShape) returns Boolean;
KPSameDomain(me;L1:in out ListOfShape;L2:out ListOfShape);
KPisdisjsh(me;S:Shape) returns Integer;
KPisfafash(me;S:Shape) returns Integer;
KPissososh(me;S:Shape) returns Integer;
KPiskoleanalyse(me;FT1,FT2,ST1,ST2:State;I,I1,I2:out Integer);
KPiskoletgeanalyse(me;Conf:Config;ST1,ST2:State;I:out Integer);
KPisdisjanalyse(me;ST1,ST2:State;I,IC1,IC2:out Integer);
KPls(myclass;S:Shape;T:ShapeEnum;L:out ListOfShape) returns Integer;
KPls(myclass;S:Shape;T:ShapeEnum) returns Integer;
-- les methodes suivantes sont in out er non myclass
-- car elles modifient myShapeClassifier
KPclassF(me:in out;F1,F2:Shape) returns State;
KPclassFF(me:in out;F1,F2:Shape;T1,T2:out State);
KPiskoleFF(me:in out;F1,F2:Shape;T1,T2:out State) returns Boolean;
KPContains(myclass;S:Shape;L:ListOfShape) returns Boolean;
KPmakeface(me:in out;F1:Shape;LF2:ListOfShape;T1,T2:State;R1,R2:Boolean)
returns Shape;
KPreturn(myclass;KP:Integer) returns Integer;
--
SplitEvisoONperiodicF(me:in out);
-- solid
--modified by NIZHNY-MZV Wed Sep 29 09:46:48 1999
GMergeSolids(me:in out;LSO1,LSO2:ListOfShape;G:GTopo);
GFillSolidsSFS(me:in out;LSO1,LSO2:ListOfShape;G:GTopo;SFS:in out ShellFaceSet);
GFillSolidSFS(me:in out;SO1:Shape;LSO2:ListOfShape;G:GTopo;SFS:in out ShellFaceSet) is virtual;
GFillSurfaceTopologySFS(me:in out;SO1:Shape;G:GTopo;SFS:in out ShellFaceSet);
GFillSurfaceTopologySFS(me;IT:SurfaceIterator;G:GTopo;SFS:in out ShellFaceSet);
--modified by NIZHNY-MZV Thu Sep 30 09:55:31 1999
GFillShellSFS(me:in out;SH1:Shape;LSO2:ListOfShape;G:GTopo;SFS:in out ShellFaceSet) is virtual;
GFillFaceSFS(me:in out;F1:Shape;LSO2:ListOfShape;G:GTopo;SFS:in out ShellFaceSet);
GSplitFaceSFS(me:in out;F1:Shape;LSclass:ListOfShape;G:GTopo;SFS:in out ShellFaceSet);
GMergeFaceSFS(me:in out;F:Shape;G:GTopo;SFS:out ShellFaceSet);
GSplitFace(me:in out;F:Shape;G:GTopo;LSclass:ListOfShape);
AddONPatchesSFS(me:in out;G:GTopo;SFS:out ShellFaceSet);
FillOnPatches(me:in out;anEdgesON:ListOfShape; aBaseFace:Shape;
avoidMap:IndexedMapOfOrientedShape);
FindFacesTouchingEdge(me;aFace,anEdge:Shape; aShRank:Integer; aFaces:out ListOfShape);
-- face
GMergeFaces(me:in out;LF1,LF2:ListOfShape;G:GTopo);
GFillFacesWES(me:in out;LF1,LF2:ListOfShape;G:GTopo;WES:out WireEdgeSet);
GFillFacesWESK(me:in out;LF1,LF2:ListOfShape;G:GTopo;WES:out WireEdgeSet;K:Integer);
GFillFacesWESMakeFaces(me:in out;LF1,LF2,LSO:ListOfShape;G:GTopo);
GFillFaceWES(me:in out;F:Shape;LF2:ListOfShape;G:GTopo;WES:in out WireEdgeSet);
GFillCurveTopologyWES(me:in out;F:Shape;G:GTopo;WES:in out WireEdgeSet);
GFillCurveTopologyWES(me;IT:CurveIterator;G:GTopo;WES:in out WireEdgeSet);
GFillONPartsWES(me:in out;F:Shape;G:GTopo;LSclass:ListOfShape;WES:in out WireEdgeSet);
GFillWireWES(me:in out;W:Shape;LF2:ListOfShape;G:GTopo;WES:in out WireEdgeSet);
GFillEdgeWES(me:in out;E:Shape;LF2:ListOfShape;G:GTopo;WES:in out WireEdgeSet);
GSplitEdgeWES(me:in out;E:Shape;LF2:ListOfShape;G:GTopo;WES:in out WireEdgeSet);
GMergeEdgeWES(me:in out;E:Shape;G:GTopo;WES:in out WireEdgeSet);
GSplitEdge(me:in out;E:Shape;G:GTopo;LSclass:ListOfShape);
-- edge
GMergeEdges(me:in out;LE1,LE2:ListOfShape;G:GTopo);
GFillEdgesPVS(me:in out;LE1,LE2:ListOfShape;G:GTopo;PVS:in out PaveSet);
GFillEdgePVS(me:in out;E:Shape;LE2:ListOfShape;G:GTopo;PVS:in out PaveSet);
GFillPointTopologyPVS(me:in out;E:Shape;G:GTopo;PVS:in out PaveSet);
GFillPointTopologyPVS(me;E:Shape;IT:PointIterator;G:GTopo;PVS:in out PaveSet);
GParamOnReference(me;V:Vertex;E:Edge;P:out Real) returns Boolean;
-- other
GKeepShape(me:in out;S:Shape;Lref:ListOfShape;T:State) returns Boolean;
GKeepShape1(me:in out;S:Shape;Lref:ListOfShape;T:State;pos:out State) returns Boolean;
---Purpose: return True if S is classified <T> / Lref shapes
GKeepShapes(me:in out ;S:Shape;Lref:ListOfShape;T:State;
Lin:ListOfShape;Lou:in out ListOfShape);
---Purpose: add to Lou the shapes of Lin classified <T> / Lref shapes.
-- Lou is not cleared. (S is a dummy trace argument)
GSFSMakeSolids(me:in out;SOF:Shape;SFS:in out ShellFaceSet;LOSO:in out ListOfShape);
GSOBUMakeSolids(me:in out;SOF:Shape;SOBU:in out SolidBuilder;LOSO:in out ListOfShape);
--modified by NIZHNY-MZV Mon Dec 6 14:53:21 1999
GWESMakeFaces(me:in out;FF:Shape;WES:in out WireEdgeSet;LOF:in out ListOfShape) is virtual;
GFABUMakeFaces(me:in out;FF:Shape;FABU:in out FaceBuilder;LOF:in out ListOfShape;
MWisOld:out DataMapOfShapeInteger from TopTools);
RegularizeFaces(me:in out;FF:Shape;lnewFace:ListOfShape;LOF:in out ListOfShape);
RegularizeFace(me:in out;FF:Shape;newFace:Shape;LOF:in out ListOfShape);
-- regularize face newFace issued from face SS.
-- regularized faces are returned in the list of shape LOF
RegularizeSolids(me:in out;SS:Shape;lnewSolid:ListOfShape;LOS:in out ListOfShape);
RegularizeSolid(me:in out;SS:Shape;newSolid:Shape;LOS:in out ListOfShape);
-- regularize solid newSolid issued from solid SS.
-- regularized solids are returned in the list of shape LOS
GPVSMakeEdges(me;EF:Shape;PVS:in out PaveSet;LOE:in out ListOfShape);
GEDBUMakeEdges(me;EF:Shape;EDBU:in out EdgeBuilder;LOE:in out ListOfShape);
GToSplit(me;S:Shape;TB:State) returns Boolean;
GToMerge(me;S:Shape) returns Boolean;
GTakeCommonOfSame(myclass;G:GTopo) returns Boolean;
GTakeCommonOfDiff(myclass;G:GTopo) returns Boolean;
-- NYI:GFindxxx methods:should be provided by the DS
GFindSamDom(me;S:Shape;L1,L2:in out ListOfShape);
GFindSamDom(me;L1,L2:in out ListOfShape);
GFindSamDomSODO(me;S:Shape;LSO,LDO:in out ListOfShape);
GFindSamDomSODO(me;LSO,LDO:in out ListOfShape);
GMapShapes(me:in out;S1,S2:Shape);
GClearMaps(me:in out);
GFindSameRank(me;L1:ListOfShape;R:Integer;L2:in out ListOfShape);
GShapeRank(me;S:Shape) returns Integer;
GIsShapeOf(me;S:Shape;I12:Integer) returns Boolean;
GContains(myclass;S:Shape;L:ListOfShape) returns Boolean;
GCopyList(myclass;Lin:ListOfShape;i1,i2:Integer;Lou:out ListOfShape);
GCopyList(myclass;Lin:ListOfShape;Lou:out ListOfShape);
-- dump
GdumpLS(me;L:ListOfShape);
GdumpPNT(myclass;P:Pnt);
GdumpORIPARPNT(myclass;o:Orientation;p:Real;Pnt:Pnt);
GdumpSHA(me;S:Shape;str:Address=NULL);
GdumpSHAORI(me;S:Shape;str:Address=NULL);
GdumpSHAORIGEO(me;S:Shape;str:Address=NULL);
GdumpSHASTA(me;iS:Integer;T:State;
a:AsciiString="";b:AsciiString="");
GdumpSHASTA(me;S:Shape;T:State;
a:AsciiString="";b:AsciiString="");
GdumpSHASTA(me;iS:Integer;T:State;SS:ShapeSet;
a:AsciiString="";b:AsciiString="";c:AsciiString="\n");
GdumpEDG(me;S:Shape;str:Address=NULL);
GdumpEDGVER(me;E,V:Shape;str:Address=NULL);
GdumpSAMDOM(me;L:ListOfShape;str:Address=NULL);
GdumpEXP(me;E:ShapeExplorer);
GdumpSOBU(me;SB:in out SolidBuilder);
GdumpFABU(me;FB:in out FaceBuilder);
GdumpEDBU(me;EB:in out EdgeBuilder);
GtraceSPS(me;iS:Integer) returns Boolean;
GtraceSPS(me;iS,jS:Integer) returns Boolean;
GtraceSPS(me;S:Shape) returns Boolean;
GtraceSPS(me;S:Shape;IS:out Integer) returns Boolean;
GdumpSHASETreset(me:in out);
GdumpSHASETindex(me:in out) returns Integer;
PrintGeo(myclass;S:Shape);
PrintSur(myclass;F:Face);
PrintCur(myclass;E:Edge);
PrintPnt(myclass;V:Vertex);
PrintOri(myclass;S:Shape);
StringState(myclass;S:State) returns AsciiString from TCollection;
GcheckNBOUNDS(myclass;E:Shape) returns Boolean;
fields
myState1,myState2:State from TopAbs is protected;
myShape1,myShape2:Shape from TopoDS is protected;
myDataStructure:HDataStructure from TopOpeBRepDS is protected;
myBuildTool:BuildTool from TopOpeBRepDS is protected;
myNewVertices:HArray1OfShape from TopTools is protected;
myNewEdges:DataMapOfIntegerListOfShape from TopTools is protected;
myNewFaces:HArray1OfListOfShape from TopTools is protected;
mySplitIN :DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected;
mySplitON :DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected;
mySplitOUT:DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected;
myMergedIN :DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected;
myMergedON :DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected;
myMergedOUT:DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected;
myEmptyShapeList:ListOfShape from TopTools is protected;
myListOfSolid:ListOfShape from TopTools is protected;
myListOfFace:ListOfShape from TopTools is protected;
myListOfEdge:ListOfShape from TopTools is protected;
-- new faces to split with their splits
myFSplits:DataMapOfShapeListOfShape is protected;
-- new edges to split with their splits
myESplits:DataMapOfShapeListOfShape is protected;
-- section data
mySectionDone:Boolean from Standard is protected;
mySplitSectionEdgesDone:Boolean from Standard is protected;
mySection:ListOfShape from TopTools is protected;
-- grid data
mySolidReference:Solid from TopoDS is protected;
mySolidToFill:Solid from TopoDS is protected;
myFaceAvoid:ListOfShape from TopTools is protected;
myFaceReference:Face from TopoDS is protected;
myFaceToFill:Face from TopoDS is protected;
myEdgeAvoid:ListOfShape from TopTools is protected;
myEdgeReference:Edge from TopoDS is protected;
myEdgeToFill:Edge from TopoDS is protected;
myVertexAvoid:ListOfShape from TopTools is protected;
myMAP1,myMAP2:IndexedMapOfShape from TopTools is protected;
-- KPart Builder
myIsKPart:Integer from Standard is protected;
myKPMAPf1f2:DataMapOfShapeListOfShape from TopTools is protected;
-- trace
mySHASETindex:Integer is protected;
-- special cases
myClassifyDef:Boolean is protected;
myClassifyVal:Boolean is protected;
myShapeClassifier:ShapeClassifier from TopOpeBRepTool is protected;
--- Regularization
myMemoSplit : MapOfShape from TopTools is protected;
myEmptyAS : AsciiString from TCollection is protected; -- BUG extraction hxx WOK
-- for building of ON patches from coinciding faces not same domain
myProcessON: Boolean from Standard is protected;
myONFacesMap: IndexedDataMapOfShapeShape from TopTools is protected;
myONElemMap: IndexedMapOfOrientedShape from TopTools is protected;
friends
class HBuilder from TopOpeBRepBuild
end Builder from TopOpeBRepBuild;

View File

@@ -14,33 +14,52 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.ixx>
#include <TopOpeBRepDS_DataMapIteratorOfDataMapOfShapeListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_ListOfShapeOn1State.hxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepDS_Surface.hxx>
#include <TopOpeBRepDS_Curve.hxx>
#include <TopOpeBRepDS_CurveExplorer.hxx>
#include <TopOpeBRepDS_Point.hxx>
#include <TopOpeBRepDS_Config.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <BRepClass3d_SolidClassifier.hxx>
#include <Geom2d_Curve.hxx>
#include <Geom_Curve.hxx>
#include <gp_Pnt.hxx>
#include <Precision.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <Geom_Curve.hxx>
#include <Geom2d_Curve.hxx>
#include <BRep_Tool.hxx>
#include <BRep_Builder.hxx>
#include <TopoDS_Compound.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Wire.hxx>
#include <TopoDS.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopOpeBRepDS_Filter.hxx>
#include <TopOpeBRepDS_Reducer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Compound.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Wire.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_Config.hxx>
#include <TopOpeBRepDS_Curve.hxx>
#include <TopOpeBRepDS_CurveExplorer.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_DataMapIteratorOfDataMapOfShapeListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_Filter.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_ListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_Point.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_Reducer.hxx>
#include <TopOpeBRepDS_Surface.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GettraceCU();

View File

@@ -0,0 +1,668 @@
// Created on: 1993-06-14
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_Builder_HeaderFile
#define _TopOpeBRepBuild_Builder_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopAbs_State.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopTools_HArray1OfShape.hxx>
#include <TopTools_DataMapOfIntegerListOfShape.hxx>
#include <TopTools_HArray1OfListOfShape.hxx>
#include <TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopTools_DataMapOfShapeListOfShape.hxx>
#include <Standard_Boolean.hxx>
#include <TopoDS_Solid.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Edge.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <Standard_Integer.hxx>
#include <TopOpeBRepTool_ShapeClassifier.hxx>
#include <TopTools_MapOfShape.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <TopTools_IndexedMapOfOrientedShape.hxx>
#include <TopTools_DataMapOfShapeShape.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <TopAbs_Orientation.hxx>
#include <TopTools_DataMapOfIntegerShape.hxx>
#include <TopOpeBRepDS_Config.hxx>
#include <Standard_Real.hxx>
#include <TopTools_DataMapOfShapeInteger.hxx>
#include <Standard_Address.hxx>
class TopOpeBRepDS_HDataStructure;
class Standard_NoSuchObject;
class TopOpeBRepBuild_HBuilder;
class TopOpeBRepDS_BuildTool;
class TopoDS_Shape;
class TopOpeBRepTool_ShapeExplorer;
class TopOpeBRepBuild_ShapeSet;
class TopOpeBRepBuild_EdgeBuilder;
class TopOpeBRepBuild_FaceBuilder;
class TopOpeBRepBuild_SolidBuilder;
class TopOpeBRepBuild_WireEdgeSet;
class TopOpeBRepDS_PointIterator;
class TopOpeBRepBuild_PaveSet;
class TopOpeBRepBuild_GTopo;
class TopOpeBRepBuild_ShellFaceSet;
class TopOpeBRepDS_SurfaceIterator;
class TopOpeBRepDS_CurveIterator;
class TopoDS_Vertex;
class TopoDS_Edge;
class gp_Pnt;
class TopoDS_Face;
class TCollection_AsciiString;
//! The Builder algorithm constructs topological
//! objects from an existing topology and new
//! geometries attached to the topology. It is used to
//! construct the result of a topological operation;
//! the existing topologies are the parts involved in
//! the topological operation and the new geometries
//! are the intersection lines and points.
class TopOpeBRepBuild_Builder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_Builder(const TopOpeBRepDS_BuildTool& BT);
Standard_EXPORT virtual void Destroy();
Standard_EXPORT virtual ~TopOpeBRepBuild_Builder() { Destroy() ; }
Standard_EXPORT TopOpeBRepDS_BuildTool& ChangeBuildTool();
Standard_EXPORT const TopOpeBRepDS_BuildTool& BuildTool() const;
//! Stores the data structure <HDS>,
//! Create shapes from the new geometries.
Standard_EXPORT virtual void Perform (const Handle(TopOpeBRepDS_HDataStructure)& HDS);
//! Stores the data structure <HDS>,
//! Create shapes from the new geometries,
//! Evaluates if an operation performed on shapes S1,S2
//! is a particular case.
Standard_EXPORT virtual void Perform (const Handle(TopOpeBRepDS_HDataStructure)& HDS, const TopoDS_Shape& S1, const TopoDS_Shape& S2);
//! returns the DS handled by this builder
Standard_EXPORT Handle(TopOpeBRepDS_HDataStructure) DataStructure() const;
//! Removes all splits and merges already performed.
//! Does NOT clear the handled DS.
Standard_EXPORT virtual void Clear();
//! Merges the two edges <S1> and <S2> keeping the
//! parts in each edge of states <TB1> and <TB2>.
//! Booleans onA, onB, onAB indicate wheter parts of edges
//! found as state ON respectively on first, second, and both
//! shapes must be (or not) built.
Standard_EXPORT void MergeEdges (const TopTools_ListOfShape& L1, const TopAbs_State TB1, const TopTools_ListOfShape& L2, const TopAbs_State TB2, const Standard_Boolean onA = Standard_False, const Standard_Boolean onB = Standard_False, const Standard_Boolean onAB = Standard_False);
//! Merges the two faces <S1> and <S2> keeping the
//! parts in each face of states <TB1> and <TB2>.
Standard_EXPORT void MergeFaces (const TopTools_ListOfShape& S1, const TopAbs_State TB1, const TopTools_ListOfShape& S2, const TopAbs_State TB2, const Standard_Boolean onA = Standard_False, const Standard_Boolean onB = Standard_False, const Standard_Boolean onAB = Standard_False);
//! Merges the two solids <S1> and <S2> keeping the
//! parts in each solid of states <TB1> and <TB2>.
Standard_EXPORT void MergeSolids (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopoDS_Shape& S2, const TopAbs_State TB2);
//! Merges the two shapes <S1> and <S2> keeping the
//! parts of states <TB1>,<TB2> in <S1>,<S2>.
Standard_EXPORT void MergeShapes (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopoDS_Shape& S2, const TopAbs_State TB2);
Standard_EXPORT void End();
Standard_EXPORT Standard_Boolean Classify() const;
Standard_EXPORT void ChangeClassify (const Standard_Boolean B);
//! Merges the solid <S> keeping the
//! parts of state <TB>.
Standard_EXPORT void MergeSolid (const TopoDS_Shape& S, const TopAbs_State TB);
//! Returns the vertex created on point <I>.
Standard_EXPORT const TopoDS_Shape& NewVertex (const Standard_Integer I) const;
//! Returns the edges created on curve <I>.
Standard_EXPORT const TopTools_ListOfShape& NewEdges (const Standard_Integer I) const;
//! Returns the faces created on surface <I>.
Standard_EXPORT const TopTools_ListOfShape& NewFaces (const Standard_Integer I) const;
//! Returns True if the shape <S> has been split.
Standard_EXPORT Standard_Boolean IsSplit (const TopoDS_Shape& S, const TopAbs_State TB) const;
//! Returns the split parts <TB> of shape <S>.
Standard_EXPORT const TopTools_ListOfShape& Splits (const TopoDS_Shape& S, const TopAbs_State TB) const;
//! Returns True if the shape <S> has been merged.
Standard_EXPORT Standard_Boolean IsMerged (const TopoDS_Shape& S, const TopAbs_State TB) const;
//! Returns the merged parts <TB> of shape <S>.
Standard_EXPORT const TopTools_ListOfShape& Merged (const TopoDS_Shape& S, const TopAbs_State TB) const;
Standard_EXPORT void InitSection();
//! create parts ON solid of section edges
Standard_EXPORT void SplitSectionEdges();
//! create parts ON solid of section edges
Standard_EXPORT virtual void SplitSectionEdge (const TopoDS_Shape& E);
//! return the section edges built on new curves.
Standard_EXPORT void SectionCurves (TopTools_ListOfShape& L);
//! return the parts of edges found ON the boundary
//! of the two arguments S1,S2 of Perform()
Standard_EXPORT void SectionEdges (TopTools_ListOfShape& L);
//! Fills anAncMap with pairs (edge,ancestor edge) for each
//! split from the map aMapON for the shape object identified
//! by ShapeRank
Standard_EXPORT void FillSecEdgeAncestorMap (const Standard_Integer aShapeRank, const TopTools_MapOfShape& aMapON, TopTools_DataMapOfShapeShape& anAncMap) const;
//! return all section edges.
Standard_EXPORT void Section (TopTools_ListOfShape& L);
Standard_EXPORT const TopTools_ListOfShape& Section();
//! update the DS by creating new geometries.
//! create vertices on DS points.
Standard_EXPORT void BuildVertices (const Handle(TopOpeBRepDS_HDataStructure)& DS);
//! update the DS by creating new geometries.
//! create shapes from the new geometries.
Standard_EXPORT void BuildEdges (const Handle(TopOpeBRepDS_HDataStructure)& DS);
Standard_EXPORT const TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State& MSplit (const TopAbs_State s) const;
Standard_EXPORT TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State& ChangeMSplit (const TopAbs_State s);
Standard_EXPORT void MakeEdges (const TopoDS_Shape& E, TopOpeBRepBuild_EdgeBuilder& B, TopTools_ListOfShape& L);
Standard_EXPORT void MakeFaces (const TopoDS_Shape& F, TopOpeBRepBuild_FaceBuilder& B, TopTools_ListOfShape& L);
Standard_EXPORT void MakeSolids (TopOpeBRepBuild_SolidBuilder& B, TopTools_ListOfShape& L);
Standard_EXPORT void MakeShells (TopOpeBRepBuild_SolidBuilder& B, TopTools_ListOfShape& L);
//! Returns a ref.on the list of shapes connected to <S> as
//! <TB> split parts of <S>.
//! Mark <S> as split in <TB> parts.
Standard_EXPORT TopTools_ListOfShape& ChangeSplit (const TopoDS_Shape& S, const TopAbs_State TB);
Standard_EXPORT Standard_Boolean Opec12() const;
Standard_EXPORT Standard_Boolean Opec21() const;
Standard_EXPORT Standard_Boolean Opecom() const;
Standard_EXPORT Standard_Boolean Opefus() const;
Standard_EXPORT TopAbs_State ShapePosition (const TopoDS_Shape& S, const TopTools_ListOfShape& LS);
Standard_EXPORT Standard_Boolean KeepShape (const TopoDS_Shape& S, const TopTools_ListOfShape& LS, const TopAbs_State T);
Standard_EXPORT static TopAbs_ShapeEnum TopType (const TopoDS_Shape& S);
Standard_EXPORT static Standard_Boolean Reverse (const TopAbs_State T1, const TopAbs_State T2);
Standard_EXPORT static TopAbs_Orientation Orient (const TopAbs_Orientation O, const Standard_Boolean R);
Standard_EXPORT void FindSameDomain (TopTools_ListOfShape& L1, TopTools_ListOfShape& L2) const;
Standard_EXPORT void FindSameDomainSameOrientation (TopTools_ListOfShape& LSO, TopTools_ListOfShape& LDO) const;
Standard_EXPORT void MapShapes (const TopoDS_Shape& S1, const TopoDS_Shape& S2);
Standard_EXPORT void ClearMaps();
Standard_EXPORT void FindSameRank (const TopTools_ListOfShape& L1, const Standard_Integer R, TopTools_ListOfShape& L2) const;
Standard_EXPORT Standard_Integer ShapeRank (const TopoDS_Shape& S) const;
Standard_EXPORT Standard_Boolean IsShapeOf (const TopoDS_Shape& S, const Standard_Integer I12) const;
Standard_EXPORT static Standard_Boolean Contains (const TopoDS_Shape& S, const TopTools_ListOfShape& L);
Standard_EXPORT Standard_Integer FindIsKPart();
Standard_EXPORT Standard_Integer IsKPart() const;
Standard_EXPORT virtual void MergeKPart();
Standard_EXPORT virtual void MergeKPart (const TopAbs_State TB1, const TopAbs_State TB2);
Standard_EXPORT void MergeKPartiskole();
Standard_EXPORT void MergeKPartiskoletge();
Standard_EXPORT void MergeKPartisdisj();
Standard_EXPORT void MergeKPartisfafa();
Standard_EXPORT void MergeKPartissoso();
Standard_EXPORT Standard_Integer KPiskole();
Standard_EXPORT Standard_Integer KPiskoletge();
Standard_EXPORT Standard_Integer KPisdisj();
Standard_EXPORT Standard_Integer KPisfafa();
Standard_EXPORT Standard_Integer KPissoso();
Standard_EXPORT void KPClearMaps();
Standard_EXPORT Standard_Integer KPlhg (const TopoDS_Shape& S, const TopAbs_ShapeEnum T, TopTools_ListOfShape& L) const;
Standard_EXPORT Standard_Integer KPlhg (const TopoDS_Shape& S, const TopAbs_ShapeEnum T) const;
Standard_EXPORT Standard_Integer KPlhsd (const TopoDS_Shape& S, const TopAbs_ShapeEnum T, TopTools_ListOfShape& L) const;
Standard_EXPORT Standard_Integer KPlhsd (const TopoDS_Shape& S, const TopAbs_ShapeEnum T) const;
Standard_EXPORT TopAbs_State KPclasSS (const TopoDS_Shape& S1, const TopTools_ListOfShape& exceptLS1, const TopoDS_Shape& S2);
Standard_EXPORT TopAbs_State KPclasSS (const TopoDS_Shape& S1, const TopoDS_Shape& exceptS1, const TopoDS_Shape& S2);
Standard_EXPORT TopAbs_State KPclasSS (const TopoDS_Shape& S1, const TopoDS_Shape& S2);
Standard_EXPORT Standard_Boolean KPiskolesh (const TopoDS_Shape& S, TopTools_ListOfShape& LS, TopTools_ListOfShape& LF) const;
Standard_EXPORT Standard_Boolean KPiskoletgesh (const TopoDS_Shape& S, TopTools_ListOfShape& LS, TopTools_ListOfShape& LF) const;
Standard_EXPORT void KPSameDomain (TopTools_ListOfShape& L1, TopTools_ListOfShape& L2) const;
Standard_EXPORT Standard_Integer KPisdisjsh (const TopoDS_Shape& S) const;
Standard_EXPORT Standard_Integer KPisfafash (const TopoDS_Shape& S) const;
Standard_EXPORT Standard_Integer KPissososh (const TopoDS_Shape& S) const;
Standard_EXPORT void KPiskoleanalyse (const TopAbs_State FT1, const TopAbs_State FT2, const TopAbs_State ST1, const TopAbs_State ST2, Standard_Integer& I, Standard_Integer& I1, Standard_Integer& I2) const;
Standard_EXPORT void KPiskoletgeanalyse (const TopOpeBRepDS_Config Conf, const TopAbs_State ST1, const TopAbs_State ST2, Standard_Integer& I) const;
Standard_EXPORT void KPisdisjanalyse (const TopAbs_State ST1, const TopAbs_State ST2, Standard_Integer& I, Standard_Integer& IC1, Standard_Integer& IC2) const;
Standard_EXPORT static Standard_Integer KPls (const TopoDS_Shape& S, const TopAbs_ShapeEnum T, TopTools_ListOfShape& L);
Standard_EXPORT static Standard_Integer KPls (const TopoDS_Shape& S, const TopAbs_ShapeEnum T);
Standard_EXPORT TopAbs_State KPclassF (const TopoDS_Shape& F1, const TopoDS_Shape& F2);
Standard_EXPORT void KPclassFF (const TopoDS_Shape& F1, const TopoDS_Shape& F2, TopAbs_State& T1, TopAbs_State& T2);
Standard_EXPORT Standard_Boolean KPiskoleFF (const TopoDS_Shape& F1, const TopoDS_Shape& F2, TopAbs_State& T1, TopAbs_State& T2);
Standard_EXPORT static Standard_Boolean KPContains (const TopoDS_Shape& S, const TopTools_ListOfShape& L);
Standard_EXPORT TopoDS_Shape KPmakeface (const TopoDS_Shape& F1, const TopTools_ListOfShape& LF2, const TopAbs_State T1, const TopAbs_State T2, const Standard_Boolean R1, const Standard_Boolean R2);
Standard_EXPORT static Standard_Integer KPreturn (const Standard_Integer KP);
Standard_EXPORT void SplitEvisoONperiodicF();
Standard_EXPORT void GMergeSolids (const TopTools_ListOfShape& LSO1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G);
Standard_EXPORT void GFillSolidsSFS (const TopTools_ListOfShape& LSO1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT virtual void GFillSolidSFS (const TopoDS_Shape& SO1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT void GFillSurfaceTopologySFS (const TopoDS_Shape& SO1, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT void GFillSurfaceTopologySFS (const TopOpeBRepDS_SurfaceIterator& IT, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS) const;
Standard_EXPORT virtual void GFillShellSFS (const TopoDS_Shape& SH1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT void GFillFaceSFS (const TopoDS_Shape& F1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT void GSplitFaceSFS (const TopoDS_Shape& F1, const TopTools_ListOfShape& LSclass, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT void GMergeFaceSFS (const TopoDS_Shape& F, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT void GSplitFace (const TopoDS_Shape& F, const TopOpeBRepBuild_GTopo& G, const TopTools_ListOfShape& LSclass);
Standard_EXPORT void AddONPatchesSFS (const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT void FillOnPatches (const TopTools_ListOfShape& anEdgesON, const TopoDS_Shape& aBaseFace, const TopTools_IndexedMapOfOrientedShape& avoidMap);
Standard_EXPORT void FindFacesTouchingEdge (const TopoDS_Shape& aFace, const TopoDS_Shape& anEdge, const Standard_Integer aShRank, TopTools_ListOfShape& aFaces) const;
Standard_EXPORT void GMergeFaces (const TopTools_ListOfShape& LF1, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G);
Standard_EXPORT void GFillFacesWES (const TopTools_ListOfShape& LF1, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillFacesWESK (const TopTools_ListOfShape& LF1, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES, const Standard_Integer K);
Standard_EXPORT void GFillFacesWESMakeFaces (const TopTools_ListOfShape& LF1, const TopTools_ListOfShape& LF2, const TopTools_ListOfShape& LSO, const TopOpeBRepBuild_GTopo& G);
Standard_EXPORT void GFillFaceWES (const TopoDS_Shape& F, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillCurveTopologyWES (const TopoDS_Shape& F, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillCurveTopologyWES (const TopOpeBRepDS_CurveIterator& IT, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES) const;
Standard_EXPORT void GFillONPartsWES (const TopoDS_Shape& F, const TopOpeBRepBuild_GTopo& G, const TopTools_ListOfShape& LSclass, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillWireWES (const TopoDS_Shape& W, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillEdgeWES (const TopoDS_Shape& E, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GSplitEdgeWES (const TopoDS_Shape& E, const TopTools_ListOfShape& LF2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GMergeEdgeWES (const TopoDS_Shape& E, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GSplitEdge (const TopoDS_Shape& E, const TopOpeBRepBuild_GTopo& G, const TopTools_ListOfShape& LSclass);
Standard_EXPORT void GMergeEdges (const TopTools_ListOfShape& LE1, const TopTools_ListOfShape& LE2, const TopOpeBRepBuild_GTopo& G);
Standard_EXPORT void GFillEdgesPVS (const TopTools_ListOfShape& LE1, const TopTools_ListOfShape& LE2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_PaveSet& PVS);
Standard_EXPORT void GFillEdgePVS (const TopoDS_Shape& E, const TopTools_ListOfShape& LE2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_PaveSet& PVS);
Standard_EXPORT void GFillPointTopologyPVS (const TopoDS_Shape& E, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_PaveSet& PVS);
Standard_EXPORT void GFillPointTopologyPVS (const TopoDS_Shape& E, const TopOpeBRepDS_PointIterator& IT, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_PaveSet& PVS) const;
Standard_EXPORT Standard_Boolean GParamOnReference (const TopoDS_Vertex& V, const TopoDS_Edge& E, Standard_Real& P) const;
Standard_EXPORT Standard_Boolean GKeepShape (const TopoDS_Shape& S, const TopTools_ListOfShape& Lref, const TopAbs_State T);
//! return True if S is classified <T> / Lref shapes
Standard_EXPORT Standard_Boolean GKeepShape1 (const TopoDS_Shape& S, const TopTools_ListOfShape& Lref, const TopAbs_State T, TopAbs_State& pos);
//! add to Lou the shapes of Lin classified <T> / Lref shapes.
//! Lou is not cleared. (S is a dummy trace argument)
Standard_EXPORT void GKeepShapes (const TopoDS_Shape& S, const TopTools_ListOfShape& Lref, const TopAbs_State T, const TopTools_ListOfShape& Lin, TopTools_ListOfShape& Lou);
Standard_EXPORT void GSFSMakeSolids (const TopoDS_Shape& SOF, TopOpeBRepBuild_ShellFaceSet& SFS, TopTools_ListOfShape& LOSO);
Standard_EXPORT void GSOBUMakeSolids (const TopoDS_Shape& SOF, TopOpeBRepBuild_SolidBuilder& SOBU, TopTools_ListOfShape& LOSO);
Standard_EXPORT virtual void GWESMakeFaces (const TopoDS_Shape& FF, TopOpeBRepBuild_WireEdgeSet& WES, TopTools_ListOfShape& LOF);
Standard_EXPORT void GFABUMakeFaces (const TopoDS_Shape& FF, TopOpeBRepBuild_FaceBuilder& FABU, TopTools_ListOfShape& LOF, TopTools_DataMapOfShapeInteger& MWisOld);
Standard_EXPORT void RegularizeFaces (const TopoDS_Shape& FF, const TopTools_ListOfShape& lnewFace, TopTools_ListOfShape& LOF);
Standard_EXPORT void RegularizeFace (const TopoDS_Shape& FF, const TopoDS_Shape& newFace, TopTools_ListOfShape& LOF);
Standard_EXPORT void RegularizeSolids (const TopoDS_Shape& SS, const TopTools_ListOfShape& lnewSolid, TopTools_ListOfShape& LOS);
Standard_EXPORT void RegularizeSolid (const TopoDS_Shape& SS, const TopoDS_Shape& newSolid, TopTools_ListOfShape& LOS);
Standard_EXPORT void GPVSMakeEdges (const TopoDS_Shape& EF, TopOpeBRepBuild_PaveSet& PVS, TopTools_ListOfShape& LOE) const;
Standard_EXPORT void GEDBUMakeEdges (const TopoDS_Shape& EF, TopOpeBRepBuild_EdgeBuilder& EDBU, TopTools_ListOfShape& LOE) const;
Standard_EXPORT Standard_Boolean GToSplit (const TopoDS_Shape& S, const TopAbs_State TB) const;
Standard_EXPORT Standard_Boolean GToMerge (const TopoDS_Shape& S) const;
Standard_EXPORT static Standard_Boolean GTakeCommonOfSame (const TopOpeBRepBuild_GTopo& G);
Standard_EXPORT static Standard_Boolean GTakeCommonOfDiff (const TopOpeBRepBuild_GTopo& G);
Standard_EXPORT void GFindSamDom (const TopoDS_Shape& S, TopTools_ListOfShape& L1, TopTools_ListOfShape& L2) const;
Standard_EXPORT void GFindSamDom (TopTools_ListOfShape& L1, TopTools_ListOfShape& L2) const;
Standard_EXPORT void GFindSamDomSODO (const TopoDS_Shape& S, TopTools_ListOfShape& LSO, TopTools_ListOfShape& LDO) const;
Standard_EXPORT void GFindSamDomSODO (TopTools_ListOfShape& LSO, TopTools_ListOfShape& LDO) const;
Standard_EXPORT void GMapShapes (const TopoDS_Shape& S1, const TopoDS_Shape& S2);
Standard_EXPORT void GClearMaps();
Standard_EXPORT void GFindSameRank (const TopTools_ListOfShape& L1, const Standard_Integer R, TopTools_ListOfShape& L2) const;
Standard_EXPORT Standard_Integer GShapeRank (const TopoDS_Shape& S) const;
Standard_EXPORT Standard_Boolean GIsShapeOf (const TopoDS_Shape& S, const Standard_Integer I12) const;
Standard_EXPORT static Standard_Boolean GContains (const TopoDS_Shape& S, const TopTools_ListOfShape& L);
Standard_EXPORT static void GCopyList (const TopTools_ListOfShape& Lin, const Standard_Integer i1, const Standard_Integer i2, TopTools_ListOfShape& Lou);
Standard_EXPORT static void GCopyList (const TopTools_ListOfShape& Lin, TopTools_ListOfShape& Lou);
Standard_EXPORT void GdumpLS (const TopTools_ListOfShape& L) const;
Standard_EXPORT static void GdumpPNT (const gp_Pnt& P);
Standard_EXPORT static void GdumpORIPARPNT (const TopAbs_Orientation o, const Standard_Real p, const gp_Pnt& Pnt);
Standard_EXPORT void GdumpSHA (const TopoDS_Shape& S, const Standard_Address str = NULL) const;
Standard_EXPORT void GdumpSHAORI (const TopoDS_Shape& S, const Standard_Address str = NULL) const;
Standard_EXPORT void GdumpSHAORIGEO (const TopoDS_Shape& S, const Standard_Address str = NULL) const;
Standard_EXPORT void GdumpSHASTA (const Standard_Integer iS, const TopAbs_State T, const TCollection_AsciiString& a = "", const TCollection_AsciiString& b = "") const;
Standard_EXPORT void GdumpSHASTA (const TopoDS_Shape& S, const TopAbs_State T, const TCollection_AsciiString& a = "", const TCollection_AsciiString& b = "") const;
Standard_EXPORT void GdumpSHASTA (const Standard_Integer iS, const TopAbs_State T, const TopOpeBRepBuild_ShapeSet& SS, const TCollection_AsciiString& a = "", const TCollection_AsciiString& b = "", const TCollection_AsciiString& c = "\n") const;
Standard_EXPORT void GdumpEDG (const TopoDS_Shape& S, const Standard_Address str = NULL) const;
Standard_EXPORT void GdumpEDGVER (const TopoDS_Shape& E, const TopoDS_Shape& V, const Standard_Address str = NULL) const;
Standard_EXPORT void GdumpSAMDOM (const TopTools_ListOfShape& L, const Standard_Address str = NULL) const;
Standard_EXPORT void GdumpEXP (const TopOpeBRepTool_ShapeExplorer& E) const;
Standard_EXPORT void GdumpSOBU (TopOpeBRepBuild_SolidBuilder& SB) const;
Standard_EXPORT void GdumpFABU (TopOpeBRepBuild_FaceBuilder& FB) const;
Standard_EXPORT void GdumpEDBU (TopOpeBRepBuild_EdgeBuilder& EB) const;
Standard_EXPORT Standard_Boolean GtraceSPS (const Standard_Integer iS) const;
Standard_EXPORT Standard_Boolean GtraceSPS (const Standard_Integer iS, const Standard_Integer jS) const;
Standard_EXPORT Standard_Boolean GtraceSPS (const TopoDS_Shape& S) const;
Standard_EXPORT Standard_Boolean GtraceSPS (const TopoDS_Shape& S, Standard_Integer& IS) const;
Standard_EXPORT void GdumpSHASETreset();
Standard_EXPORT Standard_Integer GdumpSHASETindex();
Standard_EXPORT static void PrintGeo (const TopoDS_Shape& S);
Standard_EXPORT static void PrintSur (const TopoDS_Face& F);
Standard_EXPORT static void PrintCur (const TopoDS_Edge& E);
Standard_EXPORT static void PrintPnt (const TopoDS_Vertex& V);
Standard_EXPORT static void PrintOri (const TopoDS_Shape& S);
Standard_EXPORT static TCollection_AsciiString StringState (const TopAbs_State S);
Standard_EXPORT static Standard_Boolean GcheckNBOUNDS (const TopoDS_Shape& E);
friend class TopOpeBRepBuild_HBuilder;
protected:
//! update the DS by creating new geometries.
//! create edges on the new curve <Icurv>.
Standard_EXPORT void BuildEdges (const Standard_Integer iC, const Handle(TopOpeBRepDS_HDataStructure)& DS);
//! update the DS by creating new geometries.
//! create faces on the new surface <ISurf>.
Standard_EXPORT void BuildFaces (const Standard_Integer iS, const Handle(TopOpeBRepDS_HDataStructure)& DS);
//! update the DS by creating new geometries.
//! create shapes from the new geometries.
Standard_EXPORT void BuildFaces (const Handle(TopOpeBRepDS_HDataStructure)& DS);
//! Split <E1> keeping the parts of state <TB1>.
Standard_EXPORT void SplitEdge (const TopoDS_Shape& E1, const TopAbs_State TB1, const TopAbs_State TB2);
//! Split <E1> keeping the parts of state <TB1>.
Standard_EXPORT void SplitEdge1 (const TopoDS_Shape& E1, const TopAbs_State TB1, const TopAbs_State TB2);
//! Split <E1> keeping the parts of state <TB1>.
Standard_EXPORT void SplitEdge2 (const TopoDS_Shape& E1, const TopAbs_State TB1, const TopAbs_State TB2);
//! Split <F1> keeping the parts of state <TB1>.
//! Merge faces with same domain, keeping parts of
//! state <TB2>.
Standard_EXPORT void SplitFace (const TopoDS_Shape& F1, const TopAbs_State TB1, const TopAbs_State TB2);
Standard_EXPORT void SplitFace1 (const TopoDS_Shape& F1, const TopAbs_State TB1, const TopAbs_State TB2);
Standard_EXPORT void SplitFace2 (const TopoDS_Shape& F1, const TopAbs_State TB1, const TopAbs_State TB2);
//! Split <S1> keeping the parts of state <TB1>.
Standard_EXPORT void SplitSolid (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopAbs_State TB2);
//! Explore shapes of given by explorer <Ex> to split them.
//! Store new shapes in the set <SS>.
//! According to RevOri, reverse or not their orientation.
Standard_EXPORT void SplitShapes (TopOpeBRepTool_ShapeExplorer& Ex, const TopAbs_State TB1, const TopAbs_State TB2, TopOpeBRepBuild_ShapeSet& SS, const Standard_Boolean RevOri);
//! Split edges of <F1> and store wires and edges in
//! the set <WES>. According to RevOri, reverse (or not) orientation.
Standard_EXPORT void FillFace (const TopoDS_Shape& F1, const TopAbs_State TB1, const TopTools_ListOfShape& LF2, const TopAbs_State TB2, TopOpeBRepBuild_WireEdgeSet& WES, const Standard_Boolean RevOri);
//! Split faces of <S1> and store shells and faces in
//! the set <SS>. According to RevOri, reverse (or not) orientation.
Standard_EXPORT void FillSolid (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopTools_ListOfShape& LS2, const TopAbs_State TB2, TopOpeBRepBuild_ShapeSet& SS, const Standard_Boolean RevOri);
//! Split subshapes of <S1> and store subshapes in
//! the set <SS>. According to RevOri, reverse (or not) orientation.
Standard_EXPORT void FillShape (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopTools_ListOfShape& LS2, const TopAbs_State TB2, TopOpeBRepBuild_ShapeSet& SS, const Standard_Boolean RevOri);
//! fills the vertex set PVS with the point iterator IT.
//! IT accesses a list of interferences which geometry is a point or a vertex.
//! TB indicates the orientation to give to the geometries
//! found in interference list accessed by IT.
Standard_EXPORT void FillVertexSet (TopOpeBRepDS_PointIterator& IT, const TopAbs_State TB, TopOpeBRepBuild_PaveSet& PVS) const;
//! fills vertex set PVS with the current value of IT.
//! I geometry is a point or a vertex.
//! TB indicates the orientation to give to geometries found I
Standard_EXPORT void FillVertexSetOnValue (const TopOpeBRepDS_PointIterator& IT, const TopAbs_State TB, TopOpeBRepBuild_PaveSet& PVS) const;
//! Returns True if the shape <S> has not already been split
Standard_EXPORT Standard_Boolean ToSplit (const TopoDS_Shape& S, const TopAbs_State TB) const;
//! add the shape <S> to the map of split shapes.
//! mark <S> as split/not split on <state>, according to B value.
Standard_EXPORT void MarkSplit (const TopoDS_Shape& S, const TopAbs_State TB, const Standard_Boolean B = Standard_True);
//! Returns a ref. on the list of shapes connected to <S> as
//! <TB> merged parts of <S>.
Standard_EXPORT TopTools_ListOfShape& ChangeMerged (const TopoDS_Shape& S, const TopAbs_State TB);
//! Returns a ref. on the vertex created on point <I>.
Standard_EXPORT TopoDS_Shape& ChangeNewVertex (const Standard_Integer I);
//! Returns a ref. on the list of edges created on curve <I>.
Standard_EXPORT TopTools_ListOfShape& ChangeNewEdges (const Standard_Integer I);
//! Returns a ref. on the list of faces created on surface <I>.
Standard_EXPORT TopTools_ListOfShape& ChangeNewFaces (const Standard_Integer I);
Standard_EXPORT void AddIntersectionEdges (TopoDS_Shape& F, const TopAbs_State TB, const Standard_Boolean RevOri, TopOpeBRepBuild_ShapeSet& ES) const;
Standard_EXPORT void UpdateSplitAndMerged (const TopTools_DataMapOfIntegerListOfShape& mle, const TopTools_DataMapOfIntegerShape& mre, const TopTools_DataMapOfShapeShape& mlf, const TopAbs_State state);
TopAbs_State myState1;
TopAbs_State myState2;
TopoDS_Shape myShape1;
TopoDS_Shape myShape2;
Handle(TopOpeBRepDS_HDataStructure) myDataStructure;
TopOpeBRepDS_BuildTool myBuildTool;
Handle(TopTools_HArray1OfShape) myNewVertices;
TopTools_DataMapOfIntegerListOfShape myNewEdges;
Handle(TopTools_HArray1OfListOfShape) myNewFaces;
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State mySplitIN;
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State mySplitON;
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State mySplitOUT;
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State myMergedIN;
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State myMergedON;
TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State myMergedOUT;
TopTools_ListOfShape myEmptyShapeList;
TopTools_ListOfShape myListOfSolid;
TopTools_ListOfShape myListOfFace;
TopTools_ListOfShape myListOfEdge;
TopTools_DataMapOfShapeListOfShape myFSplits;
TopTools_DataMapOfShapeListOfShape myESplits;
Standard_Boolean mySectionDone;
Standard_Boolean mySplitSectionEdgesDone;
TopTools_ListOfShape mySection;
TopoDS_Solid mySolidReference;
TopoDS_Solid mySolidToFill;
TopTools_ListOfShape myFaceAvoid;
TopoDS_Face myFaceReference;
TopoDS_Face myFaceToFill;
TopTools_ListOfShape myEdgeAvoid;
TopoDS_Edge myEdgeReference;
TopoDS_Edge myEdgeToFill;
TopTools_ListOfShape myVertexAvoid;
TopTools_IndexedMapOfShape myMAP1;
TopTools_IndexedMapOfShape myMAP2;
Standard_Integer myIsKPart;
TopTools_DataMapOfShapeListOfShape myKPMAPf1f2;
Standard_Integer mySHASETindex;
Standard_Boolean myClassifyDef;
Standard_Boolean myClassifyVal;
TopOpeBRepTool_ShapeClassifier myShapeClassifier;
TopTools_MapOfShape myMemoSplit;
TCollection_AsciiString myEmptyAS;
Standard_Boolean myProcessON;
TopTools_IndexedDataMapOfShapeShape myONFacesMap;
TopTools_IndexedMapOfOrientedShape myONElemMap;
private:
};
#endif // _TopOpeBRepBuild_Builder_HeaderFile

View File

@@ -1,229 +0,0 @@
-- Created on: 1999-09-29
-- Created by: Maxim ZVEREV
-- Copyright (c) 1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class Builder1 from TopOpeBRepBuild inherits Builder from TopOpeBRepBuild
---Purpose: extension of the class TopOpeBRepBuild_Builder dedicated
--- to avoid bugs in "Rebuilding Result" algorithm for the case of SOLID/SOLID Boolean Operations
uses
HBuilder from TopOpeBRepBuild ,
BuildTool from TopOpeBRepDS,
Shape from TopoDS,
Edge from TopoDS,
Face from TopoDS,
ListOfShape from TopTools,
SequenceOfShape from TopTools,
ShellFaceSet from TopOpeBRepBuild,
WireEdgeSet from TopOpeBRepBuild,
GTopo from TopOpeBRepBuild,
IndexedMapOfShape from TopTools,
IndexedDataMapOfShapeListOfShape from TopTools,
DataMapOfOrientedShapeInteger from TopTools ,
HDataStructure from TopOpeBRepDS,
IndexedMapOfOrientedShape from TopTools,
IndexedDataMapOfShapeShape from TopTools ,
State from TopAbs,
IndexedDataMapOfShapeWithState from TopOpeBRepDS,
DataMapOfShapeState from TopOpeBRepDS,
PaveSet from TopOpeBRepBuild,
DataMapOfShapeListOfShape from TopTools
--raises
is
Create(BT: BuildTool from TopOpeBRepDS) returns
Builder1 from TopOpeBRepBuild ;
--------------------- BASE CLASS REDEFINITIONS
--modified by NIZHNY-MZV Sat May 6 10:07:00 2000
Destroy(me: out) is redefined virtual;
---C++: alias "Standard_EXPORT virtual ~TopOpeBRepBuild_Builder1() { Destroy() ; }"
Clear(me:in out) is redefined;
---Purpose: Removes all splits and merges already performed.
-- Does NOT clear the handled DS (except ShapeWithStatesMaps).
Perform (me:in out;HDS: HDataStructure from TopOpeBRepDS ) is redefined;
Perform(me: out; HDS : HDataStructure from TopOpeBRepDS;
S1 : Shape from TopoDS;
S2 : Shape from TopoDS) is redefined;
MergeKPart(me:in out) is redefined;
MergeKPart(me:in out;TB1,TB2:State) is redefined;
GFillSolidSFS(me:in out; SO1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
SFS:in out ShellFaceSet from TopOpeBRepBuild) is redefined;
GFillShellSFS(me:in out;SH1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
SFS: in out ShellFaceSet from TopOpeBRepBuild) is redefined;
GWESMakeFaces(me: out; FF: Shape from TopoDS;
WES : out WireEdgeSet from TopOpeBRepBuild;
LOF : out ListOfShape from TopTools) is redefined;
--------------------- END BASE CLASS REDEFINITIONS
--------------------- NEW METHODS
---Category: split edges and fill ShapeWithState Map
PerformShapeWithStates(me:out)is protected;
PerformShapeWithStates(me:out;
anObj:Shape from TopoDS;
aTool:Shape from TopoDS)
is protected;
StatusEdgesToSplit (me:out;
anObj:Shape from TopoDS;
anEdgesToSplitMap:IndexedMapOfShape from TopTools;
anEdgesToRestMap:IndexedMapOfShape from TopTools)
is protected;
SplitEdge (me:out;
anEdge:Shape from TopoDS;
aLNew: out ListOfShape from TopTools;
aDataMapOfShapeState:out DataMapOfShapeState from TopOpeBRepDS)
is protected;
GFillSplitsPVS (me: out;
anEdge: Shape from TopoDS;
G1 : GTopo from TopOpeBRepBuild;
PVS : out PaveSet from TopOpeBRepBuild);
PerformFacesWithStates(me:out;
anObj:Shape from TopoDS;
aFaces:IndexedMapOfShape from TopTools;
aSplF :out DataMapOfShapeState from TopOpeBRepDS)
is protected;
---Category: Fill Non-same domain faces
GFillFaceNotSameDomSFS(me:in out; F1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
SFS: in out ShellFaceSet from TopOpeBRepBuild);
GFillFaceNotSameDomWES(me:in out; F1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
WES: in out WireEdgeSet from TopOpeBRepBuild);
GFillWireNotSameDomWES(me:in out; W1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
WES: in out WireEdgeSet from TopOpeBRepBuild);
GFillEdgeNotSameDomWES(me:in out; E1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
WES: in out WireEdgeSet from TopOpeBRepBuild);
---Category: Fill Same domain faces
GFillFaceSameDomSFS(me:in out; F1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
SFS: in out ShellFaceSet from TopOpeBRepBuild);
GFillFaceSameDomWES(me:in out; F1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
WES: in out WireEdgeSet from TopOpeBRepBuild);
GFillWireSameDomWES(me:in out; W1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
WES: in out WireEdgeSet from TopOpeBRepBuild);
GFillEdgeSameDomWES(me:in out; E1: Shape from TopoDS;
LSO2: ListOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
WES: in out WireEdgeSet from TopOpeBRepBuild);
PerformONParts(me: in out; F: Shape from TopoDS;
SDfaces: IndexedMapOfShape from TopTools;
G: GTopo from TopOpeBRepBuild;
WES: in out WireEdgeSet from TopOpeBRepBuild);
PerformPieceIn2D(me: in out; aPieceToPerform : Edge from TopoDS;
aOriginalEdge : Edge from TopoDS;
edgeFace : Face from TopoDS;
toFace : Face from TopoDS;
G: GTopo from TopOpeBRepBuild;
keep : out Boolean from Standard);
PerformPieceOn2D(me: in out; aPieceObj : Shape from TopoDS;
aFaceObj : Shape from TopoDS;
aEdgeObj : Shape from TopoDS;
aListOfPieces : out ListOfShape from TopTools;
aListOfFaces : out ListOfShape from TopTools;
aListOfPiecesOut2d:out ListOfShape from TopTools )
returns Integer from Standard;
TwoPiecesON (me : in out; aSeq : SequenceOfShape from TopTools;
aListOfPieces : out ListOfShape from TopTools;
aListOfFaces : out ListOfShape from TopTools;
aListOfPiecesOut2d : out ListOfShape from TopTools)
returns Integer from Standard;
IsSame2d (me:out; aSeq:SequenceOfShape from TopTools;
aListOfPiecesOut2d:out ListOfShape from TopTools)
returns Integer from Standard is protected;
---Category: Tools, Correctors and auxiliary methods
CorrectResult2d (me:out; aResult:out Shape from TopoDS)
returns Integer from Standard;
--modified by NIZHNY-MZV Thu Feb 10 13:22:40 2000
OrientateEdgeOnFace(me; EdgeToPerform : out Edge from TopoDS;
baseFace : Face from TopoDS;
edgeFace : Face from TopoDS;
G1 : GTopo from TopOpeBRepBuild;
stateOfFaceOri : out Boolean from Standard) is protected;
fields
mySameDomMap : IndexedMapOfShape from TopTools;
mySDFaceToFill : Shape from TopoDS;
myBaseFaceToFill : Shape from TopoDS;
myMapOfEdgeFaces : IndexedDataMapOfShapeListOfShape from TopTools;
myMapOfEdgeWithFaceState : DataMapOfOrientedShapeInteger from TopTools;
myProcessedPartsOut2d : IndexedMapOfShape from TopTools;
myProcessedPartsON2d : IndexedMapOfShape from TopTools;
mySplitsONtoKeep : IndexedMapOfShape from TopTools;
mySourceShapes : IndexedMapOfOrientedShape from TopTools;
myMapOfCorrect2dEdges: IndexedDataMapOfShapeShape from TopTools;
-- new faces to split with their splits
myFSplits:DataMapOfShapeListOfShape is protected;
-- new edges to split with their splits
myESplits:DataMapOfShapeListOfShape is protected;
friends
class HBuilder from TopOpeBRepBuild
end Builder1;

View File

@@ -14,29 +14,38 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder1.ixx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <BRep_Tool.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepTopAdaptor_FClass2d.hxx>
#include <Geom2d_Curve.hxx>
#include <Geom2dAPI_ProjectPointOnCurve.hxx>
#include <TColStd_MapOfInteger.hxx>
#include <TopAbs_Orientation.hxx>
#include <TopoDS.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_ShapeWithState.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <TopExp.hxx>
#include <TopOpeBRepTool_2d.hxx>
#include <Geom2d_Curve.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRep_Tool.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <Geom2dAPI_ProjectPointOnCurve.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_Builder1.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_Tools.hxx>
#include <BRepTopAdaptor_FClass2d.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_Interference.hxx>
#include <TopOpeBRepDS_ShapeShapeInterference.hxx>
#include <TopOpeBRepDS_ListOfInterference.hxx>
#include <TopOpeBRepDS_ListIteratorOfListOfInterference.hxx>
#include <TopOpeBRepDS_ListOfInterference.hxx>
#include <TopOpeBRepDS_ShapeShapeInterference.hxx>
#include <TopOpeBRepDS_ShapeWithState.hxx>
#include <TopOpeBRepDS_Transition.hxx>
#include <TColStd_MapOfInteger.hxx>
#include <TopOpeBRepTool_2d.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
//define parameter division number as 10*e^(-PI) = 0.43213918
const Standard_Real PAR_T = 0.43213918;

View File

@@ -0,0 +1,160 @@
// Created on: 1999-09-29
// Created by: Maxim ZVEREV
// Copyright (c) 1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_Builder1_HeaderFile
#define _TopOpeBRepBuild_Builder1_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopoDS_Shape.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopTools_DataMapOfOrientedShapeInteger.hxx>
#include <TopTools_IndexedMapOfOrientedShape.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <TopTools_DataMapOfShapeListOfShape.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopAbs_State.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopOpeBRepDS_DataMapOfShapeState.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <TopTools_SequenceOfShape.hxx>
class TopOpeBRepBuild_HBuilder;
class TopOpeBRepDS_BuildTool;
class TopOpeBRepDS_HDataStructure;
class TopoDS_Shape;
class TopOpeBRepBuild_GTopo;
class TopOpeBRepBuild_ShellFaceSet;
class TopOpeBRepBuild_WireEdgeSet;
class TopOpeBRepBuild_PaveSet;
class TopoDS_Edge;
class TopoDS_Face;
//! extension of the class TopOpeBRepBuild_Builder dedicated
//! to avoid bugs in "Rebuilding Result" algorithm for the case of SOLID/SOLID Boolean Operations
class TopOpeBRepBuild_Builder1 : public TopOpeBRepBuild_Builder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_Builder1(const TopOpeBRepDS_BuildTool& BT);
Standard_EXPORT virtual void Destroy() Standard_OVERRIDE;
Standard_EXPORT virtual ~TopOpeBRepBuild_Builder1() { Destroy() ; }
//! Removes all splits and merges already performed.
//! Does NOT clear the handled DS (except ShapeWithStatesMaps).
Standard_EXPORT virtual void Clear() Standard_OVERRIDE;
Standard_EXPORT virtual void Perform (const Handle(TopOpeBRepDS_HDataStructure)& HDS) Standard_OVERRIDE;
Standard_EXPORT virtual void Perform (const Handle(TopOpeBRepDS_HDataStructure)& HDS, const TopoDS_Shape& S1, const TopoDS_Shape& S2) Standard_OVERRIDE;
Standard_EXPORT virtual void MergeKPart() Standard_OVERRIDE;
Standard_EXPORT virtual void MergeKPart (const TopAbs_State TB1, const TopAbs_State TB2) Standard_OVERRIDE;
Standard_EXPORT virtual void GFillSolidSFS (const TopoDS_Shape& SO1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS) Standard_OVERRIDE;
Standard_EXPORT virtual void GFillShellSFS (const TopoDS_Shape& SH1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS) Standard_OVERRIDE;
Standard_EXPORT virtual void GWESMakeFaces (const TopoDS_Shape& FF, TopOpeBRepBuild_WireEdgeSet& WES, TopTools_ListOfShape& LOF) Standard_OVERRIDE;
Standard_EXPORT void GFillSplitsPVS (const TopoDS_Shape& anEdge, const TopOpeBRepBuild_GTopo& G1, TopOpeBRepBuild_PaveSet& PVS);
Standard_EXPORT void GFillFaceNotSameDomSFS (const TopoDS_Shape& F1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT void GFillFaceNotSameDomWES (const TopoDS_Shape& F1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillWireNotSameDomWES (const TopoDS_Shape& W1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillEdgeNotSameDomWES (const TopoDS_Shape& E1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillFaceSameDomSFS (const TopoDS_Shape& F1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_ShellFaceSet& SFS);
Standard_EXPORT void GFillFaceSameDomWES (const TopoDS_Shape& F1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillWireSameDomWES (const TopoDS_Shape& W1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void GFillEdgeSameDomWES (const TopoDS_Shape& E1, const TopTools_ListOfShape& LSO2, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void PerformONParts (const TopoDS_Shape& F, const TopTools_IndexedMapOfShape& SDfaces, const TopOpeBRepBuild_GTopo& G, TopOpeBRepBuild_WireEdgeSet& WES);
Standard_EXPORT void PerformPieceIn2D (const TopoDS_Edge& aPieceToPerform, const TopoDS_Edge& aOriginalEdge, const TopoDS_Face& edgeFace, const TopoDS_Face& toFace, const TopOpeBRepBuild_GTopo& G, Standard_Boolean& keep);
Standard_EXPORT Standard_Integer PerformPieceOn2D (const TopoDS_Shape& aPieceObj, const TopoDS_Shape& aFaceObj, const TopoDS_Shape& aEdgeObj, TopTools_ListOfShape& aListOfPieces, TopTools_ListOfShape& aListOfFaces, TopTools_ListOfShape& aListOfPiecesOut2d);
Standard_EXPORT Standard_Integer TwoPiecesON (const TopTools_SequenceOfShape& aSeq, TopTools_ListOfShape& aListOfPieces, TopTools_ListOfShape& aListOfFaces, TopTools_ListOfShape& aListOfPiecesOut2d);
Standard_EXPORT Standard_Integer CorrectResult2d (TopoDS_Shape& aResult);
friend class TopOpeBRepBuild_HBuilder;
protected:
Standard_EXPORT void PerformShapeWithStates();
Standard_EXPORT void PerformShapeWithStates (const TopoDS_Shape& anObj, const TopoDS_Shape& aTool);
Standard_EXPORT void StatusEdgesToSplit (const TopoDS_Shape& anObj, const TopTools_IndexedMapOfShape& anEdgesToSplitMap, const TopTools_IndexedMapOfShape& anEdgesToRestMap);
Standard_EXPORT void SplitEdge (const TopoDS_Shape& anEdge, TopTools_ListOfShape& aLNew, TopOpeBRepDS_DataMapOfShapeState& aDataMapOfShapeState);
Standard_EXPORT void PerformFacesWithStates (const TopoDS_Shape& anObj, const TopTools_IndexedMapOfShape& aFaces, TopOpeBRepDS_DataMapOfShapeState& aSplF);
Standard_EXPORT Standard_Integer IsSame2d (const TopTools_SequenceOfShape& aSeq, TopTools_ListOfShape& aListOfPiecesOut2d);
Standard_EXPORT void OrientateEdgeOnFace (TopoDS_Edge& EdgeToPerform, const TopoDS_Face& baseFace, const TopoDS_Face& edgeFace, const TopOpeBRepBuild_GTopo& G1, Standard_Boolean& stateOfFaceOri) const;
TopTools_DataMapOfShapeListOfShape myFSplits;
TopTools_DataMapOfShapeListOfShape myESplits;
private:
TopTools_IndexedMapOfShape mySameDomMap;
TopoDS_Shape mySDFaceToFill;
TopoDS_Shape myBaseFaceToFill;
TopTools_IndexedDataMapOfShapeListOfShape myMapOfEdgeFaces;
TopTools_DataMapOfOrientedShapeInteger myMapOfEdgeWithFaceState;
TopTools_IndexedMapOfShape myProcessedPartsOut2d;
TopTools_IndexedMapOfShape myProcessedPartsON2d;
TopTools_IndexedMapOfShape mySplitsONtoKeep;
TopTools_IndexedMapOfOrientedShape mySourceShapes;
TopTools_IndexedDataMapOfShapeShape myMapOfCorrect2dEdges;
};
#endif // _TopOpeBRepBuild_Builder1_HeaderFile

View File

@@ -14,46 +14,59 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.ixx>
#include <BRepTools.hxx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <BRepTools.hxx>
#include <Geom_Curve.hxx>
#include <gp_Pnt.hxx>
#include <Precision.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TColStd_ListIteratorOfListOfInteger.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Wire.hxx>
#include <TopTools_MapOfShape.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopTools_MapIteratorOfMapOfShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepBuild_Pave.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_ListOfListOfLoop.hxx>
#include <TopOpeBRepBuild_Tools.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepDS_DataMapOfShapeState.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_ListOfListOfLoop.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_Pave.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_Tools.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_DataMapIteratorOfDataMapOfShapeState.hxx>
#include <TopOpeBRepDS_Interference.hxx>
#include <TopOpeBRepDS_ListOfInterference.hxx>
#include <TopOpeBRepDS_ListIteratorOfListOfInterference.hxx>
#include <TopOpeBRepDS_IndexedDataMapOfShapeWithState.hxx>
#include <TopOpeBRepDS_ShapeWithState.hxx>
#include <TopOpeBRepDS_DataMapOfShapeState.hxx>
#include <TopOpeBRepDS_DataStructure.hxx>
#include <BRep_Tool.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_IndexedDataMapOfShapeWithState.hxx>
#include <TopOpeBRepDS_Interference.hxx>
#include <TopOpeBRepDS_ListIteratorOfListOfInterference.hxx>
#include <TopOpeBRepDS_ListOfInterference.hxx>
#include <TopOpeBRepDS_ListOfShapeOn1State.hxx>
#include <Geom_Curve.hxx>
#include <Precision.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_ShapeWithState.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <TopTools_DataMapOfShapeListOfInteger.hxx>
#include <TColStd_ListIteratorOfListOfInteger.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_MapIteratorOfMapOfShape.hxx>
#include <TopTools_MapOfShape.hxx>
//define parameter division number as 10*e^(-PI) = 0.43213918
const Standard_Real PAR_T = 0.43213918;

View File

@@ -13,27 +13,31 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder1.ixx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Solid.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Wire.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Vertex.hxx>
#include <BRep_Builder.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Solid.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Wire.hxx>
#include <TopOpeBRepBuild_Builder1.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveExplorer.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_ListOfShape.hxx>
//=======================================================================
//function : TopOpeBRepBuild_Builder1::CorrectResult2d

View File

@@ -1,60 +0,0 @@
-- Created on: 1993-06-14
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class BuilderON from TopOpeBRepBuild
uses
PBuilder from TopOpeBRepBuild,
PGTopo from TopOpeBRepBuild,
PWireEdgeSet from TopOpeBRepBuild,
ListOfShape from TopTools,
Shape from TopoDS,
Interference from TopOpeBRepDS,
ListOfInterference from TopOpeBRepDS,
Plos from TopOpeBRepTool
is
-- BuilderON3d
--------------
Create returns BuilderON;
Create(PB:PBuilder;F:Shape;PG:PGTopo;PLSclass:Plos;PWES:PWireEdgeSet) returns BuilderON;
Perform(me:in out;PB:PBuilder;F:Shape;PG:PGTopo;PLSclass:Plos;PWES:PWireEdgeSet) is static;
-- private
GFillONCheckI(me;I:Interference) returns Boolean;
GFillONPartsWES1(me:in out;I:Interference);
GFillONPartsWES2(me:in out;I:Interference;EspON:Shape);
-- BuilderON2d
--------------
Perform2d(me:in out;PB:PBuilder;F:Shape;PG:PGTopo;PLSclass:Plos;PWES:PWireEdgeSet) is static;
-- private
GFillONParts2dWES2(me:in out;I:Interference;EspON:Shape);
fields
myPB : PBuilder from TopOpeBRepBuild;
myPG : PGTopo from TopOpeBRepBuild;
myPLSclass : Plos from TopOpeBRepTool;
myPWES : PWireEdgeSet from TopOpeBRepBuild;
myFace : Shape from TopoDS;
myFEI : ListOfInterference from TopOpeBRepDS; --BuilderON2d
end BuilderON from TopOpeBRepBuild;

View File

@@ -14,23 +14,25 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_BuilderON.ixx>
#include <TopOpeBRepTool_EXPORT.hxx>
#include <TopOpeBRepTool_TOOL.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_ProcessInterferencesTool.hxx>
#include <BRep_Tool.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepLProp_SLProps.hxx>
#include <BRepLProp_SurfaceTool.hxx>
#include <GeomAbs_SurfaceType.hxx>
#include <Precision.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_BuilderON.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepDS_connex.hxx>
#include <BRep_Tool.hxx>
#include <TopoDS.hxx>
#include <Precision.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <GeomAbs_SurfaceType.hxx>
#include <TopOpeBRepTool_SC.hxx>
#include <BRepLProp_SurfaceTool.hxx>
#include <BRepLProp_SLProps.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_Interference.hxx>
#include <TopOpeBRepDS_ProcessInterferencesTool.hxx>
#include <TopOpeBRepDS_ShapeShapeInterference.hxx>
#include <TopOpeBRepTool_EXPORT.hxx>
#include <TopOpeBRepTool_SC.hxx>
#include <TopOpeBRepTool_TOOL.hxx>
#ifdef OCCT_DEBUG
Standard_EXPORT Standard_Boolean TopOpeBRepBuild_GetcontextEINTERNAL();

View File

@@ -0,0 +1,88 @@
// Created on: 1993-06-14
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_BuilderON_HeaderFile
#define _TopOpeBRepBuild_BuilderON_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopOpeBRepBuild_PBuilder.hxx>
#include <TopOpeBRepBuild_PGTopo.hxx>
#include <TopOpeBRepTool_Plos.hxx>
#include <TopOpeBRepBuild_PWireEdgeSet.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepDS_ListOfInterference.hxx>
#include <Standard_Boolean.hxx>
class TopoDS_Shape;
class TopOpeBRepDS_Interference;
class TopOpeBRepBuild_BuilderON
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_BuilderON();
Standard_EXPORT TopOpeBRepBuild_BuilderON(const TopOpeBRepBuild_PBuilder& PB, const TopoDS_Shape& F, const TopOpeBRepBuild_PGTopo& PG, const TopOpeBRepTool_Plos& PLSclass, const TopOpeBRepBuild_PWireEdgeSet& PWES);
Standard_EXPORT void Perform (const TopOpeBRepBuild_PBuilder& PB, const TopoDS_Shape& F, const TopOpeBRepBuild_PGTopo& PG, const TopOpeBRepTool_Plos& PLSclass, const TopOpeBRepBuild_PWireEdgeSet& PWES);
Standard_EXPORT Standard_Boolean GFillONCheckI (const Handle(TopOpeBRepDS_Interference)& I) const;
Standard_EXPORT void GFillONPartsWES1 (const Handle(TopOpeBRepDS_Interference)& I);
Standard_EXPORT void GFillONPartsWES2 (const Handle(TopOpeBRepDS_Interference)& I, const TopoDS_Shape& EspON);
Standard_EXPORT void Perform2d (const TopOpeBRepBuild_PBuilder& PB, const TopoDS_Shape& F, const TopOpeBRepBuild_PGTopo& PG, const TopOpeBRepTool_Plos& PLSclass, const TopOpeBRepBuild_PWireEdgeSet& PWES);
Standard_EXPORT void GFillONParts2dWES2 (const Handle(TopOpeBRepDS_Interference)& I, const TopoDS_Shape& EspON);
protected:
private:
TopOpeBRepBuild_PBuilder myPB;
TopOpeBRepBuild_PGTopo myPG;
TopOpeBRepTool_Plos myPLSclass;
TopOpeBRepBuild_PWireEdgeSet myPWES;
TopoDS_Shape myFace;
TopOpeBRepDS_ListOfInterference myFEI;
};
#endif // _TopOpeBRepBuild_BuilderON_HeaderFile

View File

@@ -14,21 +14,22 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_BuilderON.jxx>
#include <BRep_Tool.hxx>
#include <Precision.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_BuilderON.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepDS.hxx>
#include <TopOpeBRepDS_connex.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_Interference.hxx>
#include <TopOpeBRepDS_InterferenceTool.hxx>
#include <TopOpeBRepDS_ShapeShapeInterference.hxx>
#include <TopOpeBRepTool_EXPORT.hxx>
#include <TopOpeBRepTool_SC.hxx>
#include <TopOpeBRepDS_InterferenceTool.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_connex.hxx>
#include <TopOpeBRepDS.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <BRep_Tool.hxx>
#include <TopoDS.hxx>
#include <TopExp.hxx>
#include <Precision.hxx>
#include <TopOpeBRepDS_ShapeShapeInterference.hxx>
#define M_OUT(st) (st == TopAbs_OUT)
#define M_IN( st) (st == TopAbs_IN)

View File

@@ -1,69 +0,0 @@
-- Created on: 1996-01-05
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1996-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
deferred class CompositeClassifier from TopOpeBRepBuild
inherits LoopClassifier from TopOpeBRepBuild
---Purpose:
-- classify composite Loops, i.e, loops that can be either a Shape, or
-- a block of Elements.
uses
ShapeEnum from TopAbs,
Shape from TopoDS,
State from TopAbs,
Loop from TopOpeBRepBuild,
BlockBuilder from TopOpeBRepBuild
is
Initialize(BB : BlockBuilder);
Compare(me : in out; L1,L2 : Loop) returns State from TopAbs
is redefined;
CompareShapes(me : in out; B1,B2 : Shape from TopoDS)
---Purpose: classify shape <B1> with shape <B2>
returns State from TopAbs is deferred;
CompareElementToShape(me : in out; E,B : Shape from TopoDS)
---Purpose: classify element <E> with shape <B>
returns State from TopAbs is deferred;
ResetShape(me : in out; B : Shape from TopoDS) is deferred;
---Purpose: prepare classification involving shape <B>
-- calls ResetElement on first element of <B>
ResetElement(me : in out; E : Shape from TopoDS) is deferred;
---Purpose: prepare classification involving element <E>.
CompareElement(me : in out; E : Shape from TopoDS)
returns Boolean from Standard
is deferred;
---Purpose: Add element <E> in the set of elements used in classification.
-- Returns FALSE if the element <E> has been already added to the set of elements,
-- otherwise returns TRUE.
State(me : in out) returns State from TopAbs is deferred;
---Purpose: Returns state of classification of 2D point, defined by
-- ResetElement, with the current set of elements, defined by Compare.
fields
myBlockBuilder : Address is protected; -- (TopOpeBRepBuild_BlockBuilder*)
end CompositeClassifier from TopOpeBRepBuild;

View File

@@ -14,9 +14,13 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_CompositeClassifier.ixx>
#include <BRepTools.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_BlockBuilder.hxx>
#include <TopOpeBRepBuild_CompositeClassifier.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#define MYBB ((TopOpeBRepBuild_BlockBuilder*)myBlockBuilder)

View File

@@ -0,0 +1,93 @@
// Created on: 1996-01-05
// Created by: Jean Yves LEBEY
// Copyright (c) 1996-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_CompositeClassifier_HeaderFile
#define _TopOpeBRepBuild_CompositeClassifier_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Address.hxx>
#include <TopOpeBRepBuild_LoopClassifier.hxx>
#include <TopAbs_State.hxx>
#include <Standard_Boolean.hxx>
class TopOpeBRepBuild_BlockBuilder;
class TopOpeBRepBuild_Loop;
class TopoDS_Shape;
//! classify composite Loops, i.e, loops that can be either a Shape, or
//! a block of Elements.
class TopOpeBRepBuild_CompositeClassifier : public TopOpeBRepBuild_LoopClassifier
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT virtual TopAbs_State Compare (const Handle(TopOpeBRepBuild_Loop)& L1, const Handle(TopOpeBRepBuild_Loop)& L2) Standard_OVERRIDE;
//! classify shape <B1> with shape <B2>
Standard_EXPORT virtual TopAbs_State CompareShapes (const TopoDS_Shape& B1, const TopoDS_Shape& B2) = 0;
//! classify element <E> with shape <B>
Standard_EXPORT virtual TopAbs_State CompareElementToShape (const TopoDS_Shape& E, const TopoDS_Shape& B) = 0;
//! prepare classification involving shape <B>
//! calls ResetElement on first element of <B>
Standard_EXPORT virtual void ResetShape (const TopoDS_Shape& B) = 0;
//! prepare classification involving element <E>.
Standard_EXPORT virtual void ResetElement (const TopoDS_Shape& E) = 0;
//! Add element <E> in the set of elements used in classification.
//! Returns FALSE if the element <E> has been already added to the set of elements,
//! otherwise returns TRUE.
Standard_EXPORT virtual Standard_Boolean CompareElement (const TopoDS_Shape& E) = 0;
//! Returns state of classification of 2D point, defined by
//! ResetElement, with the current set of elements, defined by Compare.
Standard_EXPORT virtual TopAbs_State State() = 0;
protected:
Standard_EXPORT TopOpeBRepBuild_CompositeClassifier(const TopOpeBRepBuild_BlockBuilder& BB);
Standard_Address myBlockBuilder;
private:
};
#endif // _TopOpeBRepBuild_CompositeClassifier_HeaderFile

View File

@@ -1,166 +0,0 @@
-- Created on: 2000-01-25
-- Created by: Peter KURNEV
-- Copyright (c) 2000-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class CorrectFace2d from TopOpeBRepBuild
---Purpose:
uses
Box2d from Bnd,
Face from TopoDS,
Wire from TopoDS,
Edge from TopoDS,
Shape from TopoDS,
Vec2d from gp,
Pnt2d from gp,
Curve from Geom2d,
IndexedMapOfOrientedShape from TopTools,
ListOfShape from TopTools,
IndexedDataMapOfShapeShape from TopTools
--raises
is
Create returns CorrectFace2d from TopOpeBRepBuild;
Create (aFace: Face from TopoDS;
anAvoidMap: IndexedMapOfOrientedShape from TopTools;
aMap:out IndexedDataMapOfShapeShape from TopTools)
returns CorrectFace2d from TopOpeBRepBuild;
Face (me) returns Face from TopoDS;
---C++: return const &
Perform (me:out);
IsDone (me) returns Boolean from Standard;
ErrorStatus (me) returns Integer from Standard;
-- CorrectedFace returns copied face (not myFace)
CorrectedFace (me) returns Face from TopoDS;
---C++: return const &
SetMapOfTrans2dInfo (me:out; aMap:out IndexedDataMapOfShapeShape from TopTools);
MapOfTrans2dInfo (me:out) returns IndexedDataMapOfShapeShape from TopTools;
---C++: return &
-- private and static block
CheckFace (me:out)
is private;
MakeRightWire (me:out)
returns Integer from Standard
is private;
GetP2dFL (myclass;
aFace : Face from TopoDS;
anEdge: Edge from TopoDS;
P2dF : out Pnt2d from gp;
P2dL : out Pnt2d from gp);
MakeHeadList (me;
aFirstEdge: Shape from TopoDS;
aHeadList : out ListOfShape from TopTools)
is private;
CheckList (myclass;
--modified by NIZNHY-PKV Mon Apr 24 14:41:44 2000f
aFace : Face from TopoDS;
--modified by NIZNHY-PKV Mon Apr 24 14:41:55 2000 t
aHeadList : out ListOfShape from TopTools);
TranslateCurve2d (me:out;
anEdge : Edge from TopoDS;
aFace : Face from TopoDS;
aTranslateVec: Vec2d from gp;
aCurve2d :out Curve from Geom2d)
is private;
OuterWire (me; anOuterWire:out Wire from TopoDS)
returns Integer from Standard
is private;
BndBoxWire (me; aWire: Wire from TopoDS;
aB2d:out Box2d from Bnd)
is private;
MoveWire2d (me:out;
aWire:out Wire from TopoDS;
aTrV: Vec2d from gp)
is private;
MoveWires2d (me:out;
aWire:out Wire from TopoDS)
is private;
UpdateEdge (me:out;
E : Edge from TopoDS;
C : Curve from Geom2d;
F : Face from TopoDS;
Tol : Real)
is private;
UpdateEdge (me:out;
E : Edge from TopoDS;
C1,C2 : Curve from Geom2d;
F : Face from TopoDS;
Tol : Real)
is private;
BuildCopyData(me:out;
F: Face from TopoDS;
anAvoidMap: IndexedMapOfOrientedShape from TopTools;
aCopyFace:out Face from TopoDS;
aCopyAvoidMap:out IndexedMapOfOrientedShape from TopTools;
aNeedToUsePMap: Boolean from Standard)
is private;
ConnectWire (me:out;
aCopyFace:out Face from TopoDS;
aCopyAvoidMap: IndexedMapOfOrientedShape from TopTools;
aTryToConnectFlag: Boolean from Standard)
returns Integer from Standard
is private;
fields
myFace : Face from TopoDS;
myCorrectedFace: Face from TopoDS;
myIsDone : Boolean from Standard;
myErrorStatus : Integer from Standard;
myFaceTolerance: Real from Standard;
myCurrentWire : Wire from TopoDS;
myOrderedWireList: ListOfShape from TopTools;
myAvoidMap : IndexedMapOfOrientedShape from TopTools;
myMap : Address from Standard;
myCopyFace : Face from TopoDS;
myCopyAvoidMap : IndexedMapOfOrientedShape from TopTools;
myEdMapInversed: IndexedDataMapOfShapeShape from TopTools;
end CorrectFace2d;

View File

@@ -13,43 +13,37 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_CorrectFace2d.ixx>
#include <TopoDS.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Wire.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Wire.hxx>
#include <TopoDS_Edge.hxx>
#include <TopExp.hxx>
#include <TopLoc_Location.hxx>
#include <TopExp_Explorer.hxx>
#include <TopOpeBRepBuild_Tools2d.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_SequenceOfShape.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <Geom2d_TrimmedCurve.hxx>
#include <Geom_Surface.hxx>
#include <Geom2d_Curve.hxx>
#include <BRepTopAdaptor_FClass2d.hxx>
#include <BRepAdaptor_Curve2d.hxx>
#include <BRep_Tool.hxx>
#include <BRep_Builder.hxx>
#include <Bnd_Box2d.hxx>
#include <BndLib_Add2dCurve.hxx>
#include <gp_Pnt.hxx>
#include <Precision.hxx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <BRepAdaptor_Curve2d.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepTopAdaptor_FClass2d.hxx>
#include <Geom2d_Curve.hxx>
#include <Geom2d_TrimmedCurve.hxx>
#include <Geom_Surface.hxx>
#include <gp_Pnt.hxx>
#include <gp_Pnt2d.hxx>
#include <gp_Vec2d.hxx>
#include <Precision.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopLoc_Location.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Wire.hxx>
#include <TopOpeBRepBuild_CorrectFace2d.hxx>
#include <TopOpeBRepBuild_Tools2d.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopTools_SequenceOfShape.hxx>
//=======================================================================
// function :TopOpeBRepBuild_CorrectFace2d::TopOpeBRepBuild_CorrectFace2d

View File

@@ -0,0 +1,131 @@
// Created on: 2000-01-25
// Created by: Peter KURNEV
// Copyright (c) 2000-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_CorrectFace2d_HeaderFile
#define _TopOpeBRepBuild_CorrectFace2d_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopoDS_Face.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Real.hxx>
#include <TopoDS_Wire.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopTools_IndexedMapOfOrientedShape.hxx>
#include <Standard_Address.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
class TopoDS_Face;
class TopoDS_Edge;
class gp_Pnt2d;
class TopoDS_Shape;
class gp_Vec2d;
class Geom2d_Curve;
class TopoDS_Wire;
class Bnd_Box2d;
class TopOpeBRepBuild_CorrectFace2d
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_CorrectFace2d();
Standard_EXPORT TopOpeBRepBuild_CorrectFace2d(const TopoDS_Face& aFace, const TopTools_IndexedMapOfOrientedShape& anAvoidMap, TopTools_IndexedDataMapOfShapeShape& aMap);
Standard_EXPORT const TopoDS_Face& Face() const;
Standard_EXPORT void Perform();
Standard_EXPORT Standard_Boolean IsDone() const;
Standard_EXPORT Standard_Integer ErrorStatus() const;
Standard_EXPORT const TopoDS_Face& CorrectedFace() const;
Standard_EXPORT void SetMapOfTrans2dInfo (TopTools_IndexedDataMapOfShapeShape& aMap);
Standard_EXPORT TopTools_IndexedDataMapOfShapeShape& MapOfTrans2dInfo();
Standard_EXPORT static void GetP2dFL (const TopoDS_Face& aFace, const TopoDS_Edge& anEdge, gp_Pnt2d& P2dF, gp_Pnt2d& P2dL);
Standard_EXPORT static void CheckList (const TopoDS_Face& aFace, TopTools_ListOfShape& aHeadList);
protected:
private:
Standard_EXPORT void CheckFace();
Standard_EXPORT Standard_Integer MakeRightWire();
Standard_EXPORT void MakeHeadList (const TopoDS_Shape& aFirstEdge, TopTools_ListOfShape& aHeadList) const;
Standard_EXPORT void TranslateCurve2d (const TopoDS_Edge& anEdge, const TopoDS_Face& aFace, const gp_Vec2d& aTranslateVec, Handle(Geom2d_Curve)& aCurve2d);
Standard_EXPORT Standard_Integer OuterWire (TopoDS_Wire& anOuterWire) const;
Standard_EXPORT void BndBoxWire (const TopoDS_Wire& aWire, Bnd_Box2d& aB2d) const;
Standard_EXPORT void MoveWire2d (TopoDS_Wire& aWire, const gp_Vec2d& aTrV);
Standard_EXPORT void MoveWires2d (TopoDS_Wire& aWire);
Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const TopoDS_Face& F, const Standard_Real Tol);
Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const TopoDS_Face& F, const Standard_Real Tol);
Standard_EXPORT void BuildCopyData (const TopoDS_Face& F, const TopTools_IndexedMapOfOrientedShape& anAvoidMap, TopoDS_Face& aCopyFace, TopTools_IndexedMapOfOrientedShape& aCopyAvoidMap, const Standard_Boolean aNeedToUsePMap);
Standard_EXPORT Standard_Integer ConnectWire (TopoDS_Face& aCopyFace, const TopTools_IndexedMapOfOrientedShape& aCopyAvoidMap, const Standard_Boolean aTryToConnectFlag);
TopoDS_Face myFace;
TopoDS_Face myCorrectedFace;
Standard_Boolean myIsDone;
Standard_Integer myErrorStatus;
Standard_Real myFaceTolerance;
TopoDS_Wire myCurrentWire;
TopTools_ListOfShape myOrderedWireList;
TopTools_IndexedMapOfOrientedShape myAvoidMap;
Standard_Address myMap;
TopoDS_Face myCopyFace;
TopTools_IndexedMapOfOrientedShape myCopyAvoidMap;
TopTools_IndexedDataMapOfShapeShape myEdMapInversed;
};
#endif // _TopOpeBRepBuild_CorrectFace2d_HeaderFile

View File

@@ -1,54 +0,0 @@
-- Created on: 1995-12-21
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1995-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class EdgeBuilder from TopOpeBRepBuild
inherits Area1dBuilder from TopOpeBRepBuild
uses
Shape from TopoDS,
PaveSet from TopOpeBRepBuild,
PaveClassifier from TopOpeBRepBuild,
LoopSet from TopOpeBRepBuild,
LoopClassifier from TopOpeBRepBuild
is
Create returns EdgeBuilder;
Create(LS : in out PaveSet; LC : in out PaveClassifier;
ForceClass : Boolean = Standard_False) returns EdgeBuilder;
---Purpose: Creates a EdgeBuilder to find the areas of
-- the shapes described by <LS> using the classifier <LC>.
InitEdgeBuilder(me : in out;
LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean = Standard_False) is static;
-- Output methods
InitEdge(me : in out) is static;
MoreEdge(me) returns Boolean from Standard is static;
NextEdge(me : in out) is static;
-- Exploration of the vertex of current edge
InitVertex(me : in out) is static;
MoreVertex(me) returns Boolean from Standard is static;
NextVertex(me : in out) is static;
Vertex(me) returns Shape from TopoDS is static;
---C++: return const &
Parameter(me) returns Real is static;
end EdgeBuilder from TopOpeBRepBuild;

View File

@@ -14,14 +14,19 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_EdgeBuilder.ixx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_LoopClassifier.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
#include <TopOpeBRepBuild_Pave.hxx>
#include <TopOpeBRepBuild_PaveClassifier.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
//=======================================================================
//function : TopOpeBRepBuild_EdgeBuilder
//purpose :
//=======================================================================
TopOpeBRepBuild_EdgeBuilder::TopOpeBRepBuild_EdgeBuilder()
{
}

View File

@@ -0,0 +1,89 @@
// Created on: 1995-12-21
// Created by: Jean Yves LEBEY
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_EdgeBuilder_HeaderFile
#define _TopOpeBRepBuild_EdgeBuilder_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopOpeBRepBuild_Area1dBuilder.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
class TopOpeBRepBuild_PaveSet;
class TopOpeBRepBuild_PaveClassifier;
class TopOpeBRepBuild_LoopSet;
class TopOpeBRepBuild_LoopClassifier;
class TopoDS_Shape;
class TopOpeBRepBuild_EdgeBuilder : public TopOpeBRepBuild_Area1dBuilder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_EdgeBuilder();
//! Creates a EdgeBuilder to find the areas of
//! the shapes described by <LS> using the classifier <LC>.
Standard_EXPORT TopOpeBRepBuild_EdgeBuilder(TopOpeBRepBuild_PaveSet& LS, TopOpeBRepBuild_PaveClassifier& LC, const Standard_Boolean ForceClass = Standard_False);
Standard_EXPORT void InitEdgeBuilder (TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False);
Standard_EXPORT void InitEdge();
Standard_EXPORT Standard_Boolean MoreEdge() const;
Standard_EXPORT void NextEdge();
Standard_EXPORT void InitVertex();
Standard_EXPORT Standard_Boolean MoreVertex() const;
Standard_EXPORT void NextVertex();
Standard_EXPORT const TopoDS_Shape& Vertex() const;
Standard_EXPORT Standard_Real Parameter() const;
protected:
private:
};
#endif // _TopOpeBRepBuild_EdgeBuilder_HeaderFile

View File

@@ -14,28 +14,50 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.jxx>
#include <TopOpeBRepDS_DataMapIteratorOfDataMapOfShapeListOfShapeOn1State.hxx>
#include <TopTools_DataMapIteratorOfDataMapOfIntegerListOfShape.hxx>
#include <TopOpeBRepDS_ListOfShapeOn1State.hxx>
#include <Geom_Curve.hxx>
#include <Geom2d_Curve.hxx>
#include <TopOpeBRepTool_2d.hxx>
#include <BRep_Tool.hxx>
#include <TopoDS_Compound.hxx>
#include <TopoDS.hxx>
#include <BRep_Builder.hxx>
#include <TopExp.hxx>
#include <BRepAdaptor_Curve.hxx>
//#include <BRepAdaptor_Curve2d.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRep_Tool.hxx>
#include <gp_Pnt.hxx>
#include <TColgp_Array1OfPnt.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <Bnd_Box.hxx>
#include <TopOpeBRepTool_FuseEdges.hxx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <Geom2d_Curve.hxx>
#include <Geom_Curve.hxx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_ProgramError.hxx>
#include <TColgp_Array1OfPnt.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Compound.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_DataMapIteratorOfDataMapOfShapeListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_ListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_2d.hxx>
#include <TopOpeBRepTool_FuseEdges.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <TopTools_DataMapIteratorOfDataMapOfIntegerListOfShape.hxx>
//#include <BRepAdaptor_Curve2d.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GetcontextNOFE();
#endif

View File

@@ -14,19 +14,40 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.ixx>
#include <TopOpeBRepBuild_WireToFace.hxx>
#include <TopOpeBRepTool.hxx>
#include <TopExp_Explorer.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Wire.hxx>
#include <TopoDS_Face.hxx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_ProgramError.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Wire.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepBuild_WireToFace.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_define.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GetcontextNOREGUFA();

View File

@@ -1,48 +0,0 @@
-- Created on: 1995-12-21
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1995-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class FaceAreaBuilder from TopOpeBRepBuild
inherits Area2dBuilder from TopOpeBRepBuild
---Purpose:
-- The FaceAreaBuilder algorithm is used to construct Faces from a LoopSet,
-- where the Loop is the composite topological object of the boundary,
-- here wire or block of edges.
-- The LoopSet gives an iteration on Loops.
-- For each Loop it indicates if it is on the boundary (wire) or if it
-- results from an interference (block of edges).
-- The result of the FaceAreaBuilder is an iteration on areas.
-- An area is described by a set of Loops.
uses
LoopSet from TopOpeBRepBuild,
LoopClassifier from TopOpeBRepBuild
is
Create returns FaceAreaBuilder;
Create(LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean = Standard_False) returns FaceAreaBuilder;
---Purpose: Creates a FaceAreaBuilder to build faces on
-- the (wires,blocks of edge) of <LS>, using the classifier <LC>.
InitFaceAreaBuilder(me: in out;
LS : in out LoopSet; LC : in out LoopClassifier;
ForceClass : Boolean = Standard_False) is static;
end FaceAreaBuilder from TopOpeBRepBuild;

View File

@@ -14,13 +14,15 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_FaceAreaBuilder.ixx>
#include <TopOpeBRepBuild_FaceAreaBuilder.hxx>
#include <TopOpeBRepBuild_LoopClassifier.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
//=======================================================================
//function : TopOpeBRepBuild_FaceAreaBuilder
//purpose :
//=======================================================================
TopOpeBRepBuild_FaceAreaBuilder::TopOpeBRepBuild_FaceAreaBuilder()
{
}

View File

@@ -0,0 +1,77 @@
// Created on: 1995-12-21
// Created by: Jean Yves LEBEY
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_FaceAreaBuilder_HeaderFile
#define _TopOpeBRepBuild_FaceAreaBuilder_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopOpeBRepBuild_Area2dBuilder.hxx>
#include <Standard_Boolean.hxx>
class TopOpeBRepBuild_LoopSet;
class TopOpeBRepBuild_LoopClassifier;
//! The FaceAreaBuilder algorithm is used to construct Faces from a LoopSet,
//! where the Loop is the composite topological object of the boundary,
//! here wire or block of edges.
//! The LoopSet gives an iteration on Loops.
//! For each Loop it indicates if it is on the boundary (wire) or if it
//! results from an interference (block of edges).
//! The result of the FaceAreaBuilder is an iteration on areas.
//! An area is described by a set of Loops.
class TopOpeBRepBuild_FaceAreaBuilder : public TopOpeBRepBuild_Area2dBuilder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_FaceAreaBuilder();
//! Creates a FaceAreaBuilder to build faces on
//! the (wires,blocks of edge) of <LS>, using the classifier <LC>.
Standard_EXPORT TopOpeBRepBuild_FaceAreaBuilder(TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False);
Standard_EXPORT void InitFaceAreaBuilder (TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC, const Standard_Boolean ForceClass = Standard_False);
protected:
private:
};
#endif // _TopOpeBRepBuild_FaceAreaBuilder_HeaderFile

View File

@@ -1,116 +0,0 @@
-- Created on: 1995-12-21
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1995-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class FaceBuilder from TopOpeBRepBuild
uses
Shape from TopoDS,
Face from TopoDS,
ListOfShape from TopTools,
IndexedMapOfShape from TopTools,
IndexedDataMapOfShapeShape from TopTools,
ShapeSet from TopOpeBRepBuild,
LoopSet from TopOpeBRepBuild,
BlockIterator from TopOpeBRepBuild,
BlockBuilder from TopOpeBRepBuild,
WireEdgeSet from TopOpeBRepBuild,
FaceAreaBuilder from TopOpeBRepBuild,
DataMapOfShapeInteger from TopTools
is
Create returns FaceBuilder;
Create(ES : in out WireEdgeSet; F : Shape from TopoDS;
ForceClass : Boolean = Standard_False) returns FaceBuilder;
---Purpose: Create a FaceBuilder to build the faces on
-- the shapes (wires, blocks of edge) described by <LS>.
InitFaceBuilder(me : in out;
ES : in out WireEdgeSet; F : Shape from TopoDS;
ForceClass : Boolean);
DetectUnclosedWire(me : in out;
mapVVsameG : out IndexedDataMapOfShapeShape from TopTools;
mapVon1Edge : out IndexedDataMapOfShapeShape from TopTools);
---Purpose: Removes are non 3d-closed wires.
-- Fills up maps <mapVVsameG> and <mapVon1Edge>, in order to
-- correct 3d-closed but unclosed (topologic connexity) wires.
-- modifies myBlockBuilder
CorrectGclosedWire(me : in out;
mapVVref : IndexedDataMapOfShapeShape from TopTools;
mapVon1Edge : IndexedDataMapOfShapeShape from TopTools);
---Purpose: Using the given maps, change the topology of the 3d-closed
-- wires, in order to get closed wires.
DetectPseudoInternalEdge(me : in out;
mapE : out IndexedMapOfShape from TopTools);
---Purpose: Removes edges appearing twice (FORWARD,REVERSED) with a bounding
-- vertex not connected to any other edge.
-- mapE contains edges found.
-- modifies myBlockBuilder.
Face(me) returns Shape from TopoDS;
---C++: return const &
---Purpose: return myFace
-- Output methods
InitFace(me : in out) returns Integer from Standard;
MoreFace(me) returns Boolean from Standard;
NextFace(me : in out);
-- Exploration of the wires of the current face
InitWire(me : in out) returns Integer from Standard;
MoreWire(me) returns Boolean from Standard;
NextWire(me : in out);
IsOldWire(me) returns Boolean from Standard;
OldWire(me) returns Shape from TopoDS;
---Purpose: Returns current wire
-- This wire may be :
-- * an old wire OldWire(), which has not been reconstructed;
-- * a new wire made of edges described by ...NewEdge() methods.
---C++: return const &
-- Exploration of the edges of current wire when IsOldWire = False
FindNextValidElement(me : in out);
---Purpose: Iterates on myBlockIterator until finding a valid element
InitEdge(me : in out) returns Integer from Standard;
MoreEdge(me) returns Boolean from Standard;
NextEdge(me : in out);
Edge(me) returns Shape from TopoDS;
---Purpose: Returns current new edge of current new wire.
---C++: return const &
EdgeConnexity(me;E:Shape) returns Integer;
AddEdgeWire(me;E:Shape;W:in out Shape)
returns Integer;
--- private
MakeLoops(me : in out; SS : in out ShapeSet from TopOpeBRepBuild)
is private;
fields
myFace : Face from TopoDS;
myLoopSet : LoopSet from TopOpeBRepBuild;
myBlockIterator : BlockIterator from TopOpeBRepBuild;
myBlockBuilder : BlockBuilder from TopOpeBRepBuild;
myFaceAreaBuilder : FaceAreaBuilder from TopOpeBRepBuild;
myMOSI : DataMapOfShapeInteger from TopTools;
end FaceBuilder;

View File

@@ -14,38 +14,40 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_FaceBuilder.ixx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <gp_Pnt.hxx>
#include <gp_Pnt2d.hxx>
#include <Precision.hxx>
#include <Standard_ProgramError.hxx>
#include <TopAbs_Orientation.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Compound.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <BRep_Tool.hxx>
#include <BRep_Builder.hxx>
//#include <BRepAdaptor_Curve2d.hxx>
#include <TopExp.hxx>
#include <TopTools_Array1OfShape.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopTools_IndexedMapOfOrientedShape.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopTools_DataMapOfShapeListOfShape.hxx>
#include <TopTools_DataMapOfShapeListOfShape.hxx>
#include <TopOpeBRepBuild_WireEdgeClassifier.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_BlockBuilder.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
#include <Standard_ProgramError.hxx>
#include <Precision.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_DataMapOfShapeInteger.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_WireEdgeClassifier.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopTools_Array1OfShape.hxx>
#include <TopTools_DataMapOfShapeInteger.hxx>
#include <TopTools_DataMapOfShapeListOfShape.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <TopTools_IndexedMapOfOrientedShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_ListOfShape.hxx>
//#include <BRepAdaptor_Curve2d.hxx>
#undef RM_HANGING
// MSV: RM_HANGING behaviour: when state of wire is UNCLOSEDW we do not
// remove the whole wire but remove the chains of hanging edges. This would

View File

@@ -0,0 +1,141 @@
// Created on: 1995-12-21
// Created by: Jean Yves LEBEY
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_FaceBuilder_HeaderFile
#define _TopOpeBRepBuild_FaceBuilder_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopoDS_Face.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
#include <TopOpeBRepBuild_BlockIterator.hxx>
#include <TopOpeBRepBuild_BlockBuilder.hxx>
#include <TopOpeBRepBuild_FaceAreaBuilder.hxx>
#include <TopTools_DataMapOfShapeInteger.hxx>
#include <Standard_Boolean.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <Standard_Integer.hxx>
class TopOpeBRepBuild_WireEdgeSet;
class TopoDS_Shape;
class TopOpeBRepBuild_ShapeSet;
class TopOpeBRepBuild_FaceBuilder
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_FaceBuilder();
//! Create a FaceBuilder to build the faces on
//! the shapes (wires, blocks of edge) described by <LS>.
Standard_EXPORT TopOpeBRepBuild_FaceBuilder(TopOpeBRepBuild_WireEdgeSet& ES, const TopoDS_Shape& F, const Standard_Boolean ForceClass = Standard_False);
Standard_EXPORT void InitFaceBuilder (TopOpeBRepBuild_WireEdgeSet& ES, const TopoDS_Shape& F, const Standard_Boolean ForceClass);
//! Removes are non 3d-closed wires.
//! Fills up maps <mapVVsameG> and <mapVon1Edge>, in order to
//! correct 3d-closed but unclosed (topologic connexity) wires.
//! modifies myBlockBuilder
Standard_EXPORT void DetectUnclosedWire (TopTools_IndexedDataMapOfShapeShape& mapVVsameG, TopTools_IndexedDataMapOfShapeShape& mapVon1Edge);
//! Using the given maps, change the topology of the 3d-closed
//! wires, in order to get closed wires.
Standard_EXPORT void CorrectGclosedWire (const TopTools_IndexedDataMapOfShapeShape& mapVVref, const TopTools_IndexedDataMapOfShapeShape& mapVon1Edge);
//! Removes edges appearing twice (FORWARD,REVERSED) with a bounding
//! vertex not connected to any other edge.
//! mapE contains edges found.
//! modifies myBlockBuilder.
Standard_EXPORT void DetectPseudoInternalEdge (TopTools_IndexedMapOfShape& mapE);
//! return myFace
Standard_EXPORT const TopoDS_Shape& Face() const;
Standard_EXPORT Standard_Integer InitFace();
Standard_EXPORT Standard_Boolean MoreFace() const;
Standard_EXPORT void NextFace();
Standard_EXPORT Standard_Integer InitWire();
Standard_EXPORT Standard_Boolean MoreWire() const;
Standard_EXPORT void NextWire();
Standard_EXPORT Standard_Boolean IsOldWire() const;
//! Returns current wire
//! This wire may be :
//! * an old wire OldWire(), which has not been reconstructed;
//! * a new wire made of edges described by ...NewEdge() methods.
Standard_EXPORT const TopoDS_Shape& OldWire() const;
//! Iterates on myBlockIterator until finding a valid element
Standard_EXPORT void FindNextValidElement();
Standard_EXPORT Standard_Integer InitEdge();
Standard_EXPORT Standard_Boolean MoreEdge() const;
Standard_EXPORT void NextEdge();
//! Returns current new edge of current new wire.
Standard_EXPORT const TopoDS_Shape& Edge() const;
Standard_EXPORT Standard_Integer EdgeConnexity (const TopoDS_Shape& E) const;
Standard_EXPORT Standard_Integer AddEdgeWire (const TopoDS_Shape& E, TopoDS_Shape& W) const;
protected:
private:
Standard_EXPORT void MakeLoops (TopOpeBRepBuild_ShapeSet& SS);
TopoDS_Face myFace;
TopOpeBRepBuild_LoopSet myLoopSet;
TopOpeBRepBuild_BlockIterator myBlockIterator;
TopOpeBRepBuild_BlockBuilder myBlockBuilder;
TopOpeBRepBuild_FaceAreaBuilder myFaceAreaBuilder;
TopTools_DataMapOfShapeInteger myMOSI;
};
#endif // _TopOpeBRepBuild_FaceBuilder_HeaderFile

View File

@@ -1,143 +0,0 @@
-- Created on: 1998-07-28
-- Created by: LECLERE Florence
-- Copyright (c) 1998-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class FuseFace from TopOpeBRepBuild
---Purpose:
uses Shape from TopoDS,
Face from TopoDS,
Edge from TopoDS,
Vertex from TopoDS,
DataMapOfShapeListOfShape from TopTools,
ListOfShape from TopTools
is
Create
returns FuseFace from TopOpeBRepBuild;
---C++: inline
--
Create(LIF : ListOfShape from TopTools;
LRF : ListOfShape from TopTools;
CXM : Integer from Standard)
---C++: inline
--
returns FuseFace from TopOpeBRepBuild;
Init(me: in out; LIF : ListOfShape from TopTools;
LRF : ListOfShape from TopTools;
CXM : Integer from Standard)
is static;
PerformFace(me: in out)
is static;
PerformEdge(me: in out)
is static;
ClearEdge(me: in out)
is static;
ClearVertex(me: in out)
is static;
IsDone(me)
returns Boolean from Standard
---C++: inline
is static;
IsModified(me)
returns Boolean from Standard
---C++: inline
is static;
LFuseFace(me)
returns ListOfShape from TopTools
---C++: return const&
is static;
LInternEdge(me)
returns ListOfShape from TopTools
---C++: return const&
is static;
LExternEdge(me)
returns ListOfShape from TopTools
---C++: return const&
is static;
LModifEdge(me)
returns ListOfShape from TopTools
---C++: return const&
is static;
LInternVertex(me)
returns ListOfShape from TopTools
---C++: return const&
is static;
LExternVertex(me)
returns ListOfShape from TopTools
---C++: return const&
is static;
LModifVertex(me)
returns ListOfShape from TopTools
---C++: return const&
is static;
fields
myLIF : ListOfShape from TopTools;
myLRF : ListOfShape from TopTools;
myLFF : ListOfShape from TopTools;
myLIE : ListOfShape from TopTools is protected;
myLEE : ListOfShape from TopTools is protected;
myLME : ListOfShape from TopTools is protected;
myLIV : ListOfShape from TopTools is protected;
myLEV : ListOfShape from TopTools is protected;
myLMV : ListOfShape from TopTools is protected;
myInternal : Boolean from Standard;
myModified : Boolean from Standard;
myDone : Boolean from Standard;
end FuseFace;

View File

@@ -0,0 +1,105 @@
// Created on: 1998-07-28
// Created by: LECLERE Florence
// Copyright (c) 1998-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_FuseFace_HeaderFile
#define _TopOpeBRepBuild_FuseFace_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopTools_ListOfShape.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
class TopOpeBRepBuild_FuseFace
{
public:
DEFINE_STANDARD_ALLOC
TopOpeBRepBuild_FuseFace();
TopOpeBRepBuild_FuseFace(const TopTools_ListOfShape& LIF, const TopTools_ListOfShape& LRF, const Standard_Integer CXM);
Standard_EXPORT void Init (const TopTools_ListOfShape& LIF, const TopTools_ListOfShape& LRF, const Standard_Integer CXM);
Standard_EXPORT void PerformFace();
Standard_EXPORT void PerformEdge();
Standard_EXPORT void ClearEdge();
Standard_EXPORT void ClearVertex();
Standard_Boolean IsDone() const;
Standard_Boolean IsModified() const;
Standard_EXPORT const TopTools_ListOfShape& LFuseFace() const;
Standard_EXPORT const TopTools_ListOfShape& LInternEdge() const;
Standard_EXPORT const TopTools_ListOfShape& LExternEdge() const;
Standard_EXPORT const TopTools_ListOfShape& LModifEdge() const;
Standard_EXPORT const TopTools_ListOfShape& LInternVertex() const;
Standard_EXPORT const TopTools_ListOfShape& LExternVertex() const;
Standard_EXPORT const TopTools_ListOfShape& LModifVertex() const;
protected:
TopTools_ListOfShape myLIE;
TopTools_ListOfShape myLEE;
TopTools_ListOfShape myLME;
TopTools_ListOfShape myLIV;
TopTools_ListOfShape myLEV;
TopTools_ListOfShape myLMV;
private:
TopTools_ListOfShape myLIF;
TopTools_ListOfShape myLRF;
TopTools_ListOfShape myLFF;
Standard_Boolean myInternal;
Standard_Boolean myModified;
Standard_Boolean myDone;
};
#include <TopOpeBRepBuild_FuseFace.lxx>
#endif // _TopOpeBRepBuild_FuseFace_HeaderFile

View File

@@ -1,43 +0,0 @@
-- Created on: 1996-02-13
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1996-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class GIter from TopOpeBRepBuild
uses
State from TopAbs,
GTopo from TopOpeBRepBuild
is
Create returns GIter;
Create(G : GTopo) returns GIter;
Find(me : in out) is static private;
Init(me : in out) is static;
Init(me : in out; G : GTopo) is static;
More(me) returns Boolean is static;
Next(me : in out) is static;
Current(me; s1,s2 : in out State from TopAbs) is static;
Dump(me; OS : in out OStream) is static;
fields
myII : Integer;
mypG : Address; -- (GTopo*)
end GIter;

View File

@@ -14,8 +14,10 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_GIter.ixx>
#include <TopOpeBRepBuild_GIter.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#define MYGTOPO (*((TopOpeBRepBuild_GTopo*)mypG))
TopOpeBRepBuild_GIter::TopOpeBRepBuild_GIter() : myII(0),mypG(NULL)

View File

@@ -0,0 +1,83 @@
// Created on: 1996-02-13
// Created by: Jean Yves LEBEY
// Copyright (c) 1996-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_GIter_HeaderFile
#define _TopOpeBRepBuild_GIter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Address.hxx>
#include <Standard_Boolean.hxx>
#include <TopAbs_State.hxx>
#include <Standard_OStream.hxx>
class TopOpeBRepBuild_GTopo;
class TopOpeBRepBuild_GIter
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_GIter();
Standard_EXPORT TopOpeBRepBuild_GIter(const TopOpeBRepBuild_GTopo& G);
Standard_EXPORT void Init();
Standard_EXPORT void Init (const TopOpeBRepBuild_GTopo& G);
Standard_EXPORT Standard_Boolean More() const;
Standard_EXPORT void Next();
Standard_EXPORT void Current (TopAbs_State& s1, TopAbs_State& s2) const;
Standard_EXPORT void Dump (Standard_OStream& OS) const;
protected:
private:
Standard_EXPORT void Find();
Standard_Integer myII;
Standard_Address mypG;
};
#endif // _TopOpeBRepBuild_GIter_HeaderFile

View File

@@ -1,41 +0,0 @@
-- Created on: 1996-02-13
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1996-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class GTool from TopOpeBRepBuild
uses
GTopo from TopOpeBRepBuild,
ShapeEnum from TopAbs,
OStream from Standard
is
GFusUnsh(myclass; s1,s2 : ShapeEnum from TopAbs) returns GTopo;
GFusSame(myclass; s1,s2 : ShapeEnum from TopAbs) returns GTopo;
GFusDiff(myclass; s1,s2 : ShapeEnum from TopAbs) returns GTopo;
GCutUnsh(myclass; s1,s2 : ShapeEnum from TopAbs) returns GTopo;
GCutSame(myclass; s1,s2 : ShapeEnum from TopAbs) returns GTopo;
GCutDiff(myclass; s1,s2 : ShapeEnum from TopAbs) returns GTopo;
GComUnsh(myclass; s1,s2 : ShapeEnum from TopAbs) returns GTopo;
GComSame(myclass; s1,s2 : ShapeEnum from TopAbs) returns GTopo;
GComDiff(myclass; s1,s2 : ShapeEnum from TopAbs) returns GTopo;
Dump(myclass; OS : in out OStream from Standard);
end GTool;

View File

@@ -14,14 +14,15 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_GTool.ixx>
#include <TopOpeBRepBuild_GIter.hxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
//=======================================================================
//function : GFusUnsh
//purpose :
//=======================================================================
TopOpeBRepBuild_GTopo TopOpeBRepBuild_GTool::GFusUnsh
(const TopAbs_ShapeEnum t1, const TopAbs_ShapeEnum t2)
{

View File

@@ -0,0 +1,80 @@
// Created on: 1996-02-13
// Created by: Jean Yves LEBEY
// Copyright (c) 1996-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_GTool_HeaderFile
#define _TopOpeBRepBuild_GTool_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <Standard_OStream.hxx>
class TopOpeBRepBuild_GTopo;
class TopOpeBRepBuild_GTool
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT static TopOpeBRepBuild_GTopo GFusUnsh (const TopAbs_ShapeEnum s1, const TopAbs_ShapeEnum s2);
Standard_EXPORT static TopOpeBRepBuild_GTopo GFusSame (const TopAbs_ShapeEnum s1, const TopAbs_ShapeEnum s2);
Standard_EXPORT static TopOpeBRepBuild_GTopo GFusDiff (const TopAbs_ShapeEnum s1, const TopAbs_ShapeEnum s2);
Standard_EXPORT static TopOpeBRepBuild_GTopo GCutUnsh (const TopAbs_ShapeEnum s1, const TopAbs_ShapeEnum s2);
Standard_EXPORT static TopOpeBRepBuild_GTopo GCutSame (const TopAbs_ShapeEnum s1, const TopAbs_ShapeEnum s2);
Standard_EXPORT static TopOpeBRepBuild_GTopo GCutDiff (const TopAbs_ShapeEnum s1, const TopAbs_ShapeEnum s2);
Standard_EXPORT static TopOpeBRepBuild_GTopo GComUnsh (const TopAbs_ShapeEnum s1, const TopAbs_ShapeEnum s2);
Standard_EXPORT static TopOpeBRepBuild_GTopo GComSame (const TopAbs_ShapeEnum s1, const TopAbs_ShapeEnum s2);
Standard_EXPORT static TopOpeBRepBuild_GTopo GComDiff (const TopAbs_ShapeEnum s1, const TopAbs_ShapeEnum s2);
Standard_EXPORT static void Dump (Standard_OStream& OS);
protected:
private:
};
#endif // _TopOpeBRepBuild_GTool_HeaderFile

View File

@@ -1,79 +0,0 @@
-- Created on: 1996-02-13
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1996-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class GTopo from TopOpeBRepBuild
uses
ShapeEnum from TopAbs,
State from TopAbs,
Config from TopOpeBRepDS
is
Create returns GTopo;
Create(II,IN,IO,NI,NN,NO,OI,ON,OO : Integer;
t1,t2 : ShapeEnum from TopAbs;
C1,C2 : Config from TopOpeBRepDS) returns GTopo;
Reset(me : in out) is static;
Set(me : in out; II,IN,IO,NI,NN,NO,OI,ON,OO : Boolean) is static;
Type(me; t1,t2 : out ShapeEnum from TopAbs) is static;
ChangeType(me : in out; t1,t2 : ShapeEnum from TopAbs) is static;
Config1(me) returns Config from TopOpeBRepDS is static;
Config2(me) returns Config from TopOpeBRepDS is static;
ChangeConfig(me : in out; C1,C2 : Config from TopOpeBRepDS) is static;
Value(me; s1,s2 : State from TopAbs) returns Boolean is static;
Value(me; I1,I2 : Integer) returns Boolean is static;
Value(me; II : Integer) returns Boolean is static;
ChangeValue(me : in out; i1,i2 : Integer; b : Boolean) is static;
ChangeValue(me : in out; s1,s2 : State from TopAbs; b : Boolean) is static;
GIndex(me; S : State from TopAbs) returns Integer is static;
GState(me; I : Integer) returns State from TopAbs is static;
Index(me; II : Integer; i1,i2 : in out Integer) is static;
DumpVal(me; OS : in out OStream; s1,s2 : State from TopAbs) is static;
DumpType(me; OS : in out OStream) is static;
DumpSSB(myclass; OS : in out OStream; s1,s2:State from TopAbs; b : Boolean);
Dump(me; OS : in out OStream; s : Address = NULL) is virtual;
StatesON(me; s1,s2 : out State from TopAbs) is static;
IsToReverse1(me) returns Boolean is static;
IsToReverse2(me) returns Boolean is static;
SetReverse(me : in out; rev : Boolean) is static;
Reverse(me) returns Boolean is static;
CopyPermuted(me) returns GTopo is static;
fields
mycases : Boolean from Standard[3,3];
-- IN ON OUT
-- IN ii in io
-- ON ni nn no
-- OUT oi on oo
myt1,myt2 : ShapeEnum from TopAbs;
myConfig1,myConfig2 : Config from TopOpeBRepDS;
myReverseForce : Boolean;
myReverseValue : Boolean;
end GTopo;

View File

@@ -14,18 +14,17 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TCollection_AsciiString.hxx>
#include <TopOpeBRepBuild_GTopo.ixx>
#include <Standard_ProgramError.hxx>
#include <TopOpeBRepDS.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopAbs.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepDS.hxx>
//=======================================================================
//function : TopOpeBRepBuild_GTopo
//purpose :
//=======================================================================
TopOpeBRepBuild_GTopo::TopOpeBRepBuild_GTopo()
{
Reset();

View File

@@ -0,0 +1,125 @@
// Created on: 1996-02-13
// Created by: Jean Yves LEBEY
// Copyright (c) 1996-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_GTopo_HeaderFile
#define _TopOpeBRepBuild_GTopo_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <TopOpeBRepDS_Config.hxx>
#include <Standard_Integer.hxx>
#include <TopAbs_State.hxx>
#include <Standard_OStream.hxx>
#include <Standard_Address.hxx>
class TopOpeBRepBuild_GTopo
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_GTopo();
Standard_EXPORT TopOpeBRepBuild_GTopo(const Standard_Integer II, const Standard_Integer IN, const Standard_Integer IO, const Standard_Integer NI, const Standard_Integer NN, const Standard_Integer NO, const Standard_Integer OI, const Standard_Integer ON, const Standard_Integer OO, const TopAbs_ShapeEnum t1, const TopAbs_ShapeEnum t2, const TopOpeBRepDS_Config C1, const TopOpeBRepDS_Config C2);
Standard_EXPORT void Reset();
Standard_EXPORT void Set (const Standard_Boolean II, const Standard_Boolean IN, const Standard_Boolean IO, const Standard_Boolean NI, const Standard_Boolean NN, const Standard_Boolean NO, const Standard_Boolean OI, const Standard_Boolean ON, const Standard_Boolean OO);
Standard_EXPORT void Type (TopAbs_ShapeEnum& t1, TopAbs_ShapeEnum& t2) const;
Standard_EXPORT void ChangeType (const TopAbs_ShapeEnum t1, const TopAbs_ShapeEnum t2);
Standard_EXPORT TopOpeBRepDS_Config Config1() const;
Standard_EXPORT TopOpeBRepDS_Config Config2() const;
Standard_EXPORT void ChangeConfig (const TopOpeBRepDS_Config C1, const TopOpeBRepDS_Config C2);
Standard_EXPORT Standard_Boolean Value (const TopAbs_State s1, const TopAbs_State s2) const;
Standard_EXPORT Standard_Boolean Value (const Standard_Integer I1, const Standard_Integer I2) const;
Standard_EXPORT Standard_Boolean Value (const Standard_Integer II) const;
Standard_EXPORT void ChangeValue (const Standard_Integer i1, const Standard_Integer i2, const Standard_Boolean b);
Standard_EXPORT void ChangeValue (const TopAbs_State s1, const TopAbs_State s2, const Standard_Boolean b);
Standard_EXPORT Standard_Integer GIndex (const TopAbs_State S) const;
Standard_EXPORT TopAbs_State GState (const Standard_Integer I) const;
Standard_EXPORT void Index (const Standard_Integer II, Standard_Integer& i1, Standard_Integer& i2) const;
Standard_EXPORT void DumpVal (Standard_OStream& OS, const TopAbs_State s1, const TopAbs_State s2) const;
Standard_EXPORT void DumpType (Standard_OStream& OS) const;
Standard_EXPORT static void DumpSSB (Standard_OStream& OS, const TopAbs_State s1, const TopAbs_State s2, const Standard_Boolean b);
Standard_EXPORT virtual void Dump (Standard_OStream& OS, const Standard_Address s = NULL) const;
Standard_EXPORT void StatesON (TopAbs_State& s1, TopAbs_State& s2) const;
Standard_EXPORT Standard_Boolean IsToReverse1() const;
Standard_EXPORT Standard_Boolean IsToReverse2() const;
Standard_EXPORT void SetReverse (const Standard_Boolean rev);
Standard_EXPORT Standard_Boolean Reverse() const;
Standard_EXPORT TopOpeBRepBuild_GTopo CopyPermuted() const;
protected:
private:
Standard_Boolean mycases[3][3];
TopAbs_ShapeEnum myt1;
TopAbs_ShapeEnum myt2;
TopOpeBRepDS_Config myConfig1;
TopOpeBRepDS_Config myConfig2;
Standard_Boolean myReverseForce;
Standard_Boolean myReverseValue;
};
#endif // _TopOpeBRepBuild_GTopo_HeaderFile

View File

@@ -14,11 +14,33 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.ixx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GetcontextSPEON();

View File

@@ -14,9 +14,32 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.ixx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#ifdef DRAW
#include <TopOpeBRepDS_DRAW.hxx>

View File

@@ -14,22 +14,42 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.ixx>
#include <TopOpeBRepDS.hxx>
#include <TopOpeBRepDS_InterferenceTool.hxx>
#include <TopOpeBRepTool_TOOL.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <TopOpeBRepTool_ShapeTool.hxx>
#include <TopoDS.hxx>
#include <BRep_Tool.hxx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_InterferenceTool.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_ProcessInterferencesTool.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_2d.hxx>
#include <TopOpeBRepTool_EXPORT.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_ProcessInterferencesTool.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <TopOpeBRepTool_ShapeTool.hxx>
#include <TopOpeBRepTool_TOOL.hxx>
#ifdef DRAW
Standard_IMPORT void FUN_draw(const TopoDS_Shape& s);

View File

@@ -14,50 +14,69 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.jxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <BRep_Tool.hxx>
#include <TopoDS.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepClass_Edge.hxx>
#include <BRepClass_Intersector.hxx>
#include <BRepTools.hxx>
#include <ElCLib.hxx>
#include <Geom2d_Curve.hxx>
#include <Standard_ProgramError.hxx>
#include <TopExp.hxx>
#include <TopOpeBRepTool_ShapeTool.hxx>
#include <TopOpeBRepDS_CurvePointInterference.hxx>
#include <GeomAdaptor_Surface.hxx>
#include <Geom_Surface.hxx>
#include <Geom_CylindricalSurface.hxx>
#include <Geom_TrimmedCurve.hxx>
#include <Geom2d_Curve.hxx>
#include <Geom2d_TrimmedCurve.hxx>
#include <Geom2d_Line.hxx>
#include <Geom2d_TrimmedCurve.hxx>
#include <Geom_CylindricalSurface.hxx>
#include <Geom_Surface.hxx>
#include <Geom_TrimmedCurve.hxx>
#include <GeomAdaptor_Surface.hxx>
#include <GeomAPI_ProjectPointOnSurf.hxx>
#include <gp_Circ.hxx>
#include <gp_Dir2d.hxx>
#include <gp_Pnt2d.hxx>
#include <gp_Pnt.hxx>
#include <Precision.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepTool.hxx>
#include <TopOpeBRepTool_EXPORT.hxx>
#include <TopOpeBRepTool_2d.hxx>
#include <TopOpeBRepTool_CORRISO.hxx>
#include <TopOpeBRepTool_TOOL.hxx>
#include <TopOpeBRepDS.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_ProcessInterferencesTool.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <TopOpeBRepBuild_Tools.hxx>
#include <TopoDS_Iterator.hxx>
#include <TopOpeBRepDS_connex.hxx>
#include <gp_Lin2d.hxx>
#include <BRepClass_Intersector.hxx>
#include <BRepClass_Edge.hxx>
#include <gp_Pnt.hxx>
#include <gp_Pnt2d.hxx>
#include <IntRes2d_IntersectionPoint.hxx>
#include <IntRes2d_IntersectionSegment.hxx>
#include <ElCLib.hxx>
#include <BRepTools.hxx>
#include <GeomAPI_ProjectPointOnSurf.hxx>
#include <Precision.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_ProgramError.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Iterator.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_Tools.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_connex.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_CurvePointInterference.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_ProcessInterferencesTool.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool.hxx>
#include <TopOpeBRepTool_2d.hxx>
#include <TopOpeBRepTool_CORRISO.hxx>
#include <TopOpeBRepTool_EXPORT.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <TopOpeBRepTool_ShapeTool.hxx>
#include <TopOpeBRepTool_TOOL.hxx>
#ifdef DRAW
#include <TopOpeBRepTool_DRAW.hxx>

View File

@@ -14,10 +14,33 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.ixx>
#include <TopOpeBRepBuild_define.hxx>
#include <stdio.h>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <stdio.h>
#ifdef DRAW
#include <DBRep.hxx>
#endif

View File

@@ -1,239 +0,0 @@
-- Created on: 1993-06-14
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class HBuilder from TopOpeBRepBuild inherits TShared from MMgt
---Purpose: The HBuilder algorithm constructs topological
-- objects from an existing topology and new
-- geometries attached to the topology. It is used to
-- construct the result of a topological operation;
-- the existing topologies are the parts involved in
-- the topological operation and the new geometries
-- are the intersection lines and points.
uses
State from TopAbs,
Shape from TopoDS,
ListOfShape from TopTools,
BuildTool from TopOpeBRepDS,
HDataStructure from TopOpeBRepDS,
Builder from TopOpeBRepBuild,
DataMapOfShapeInteger from TopTools,
DataMapOfIntegerInteger from TColStd,
DataMapOfIntegerListOfInteger from TColStd,
ListOfInteger from TColStd,
--modified by NIZHNY-MZV Thu Apr 20 10:12:48 2000
Builder1 from TopOpeBRepBuild
raises
NoSuchObject from Standard
is
Create (BT : BuildTool from TopOpeBRepDS) returns HBuilder;
BuildTool(me) returns BuildTool from TopOpeBRepDS;
---C++: return const &
Perform (me : mutable; HDS : HDataStructure from TopOpeBRepDS)
is static;
---Purpose:
-- Stores the data structure <HDS>,
-- Create shapes from the new geometries described in <HDS>.
Perform (me : mutable; HDS : HDataStructure from TopOpeBRepDS;
S1,S2 : Shape from TopoDS)
is static;
---Purpose:
-- Same as previous + evaluates if an operation performed on shapes S1,S2
-- is a particular case.
Clear(me : mutable)
is static;
---Purpose: Removes all split and merge already performed.
-- Does NOT clear the handled DS.
DataStructure(me) returns HDataStructure from TopOpeBRepDS
is static;
---Purpose: returns the DS handled by this builder
ChangeBuildTool(me : mutable) returns BuildTool from TopOpeBRepDS
is static;
---C++: return &
MergeShapes(me : mutable;
S1 : Shape from TopoDS; TB1 : State from TopAbs;
S2 : Shape from TopoDS; TB2 : State from TopAbs)
is static;
---Purpose: Merges the two shapes <S1> and <S2> keeping the
-- parts of states <TB1>,<TB2> in <S1>,<S2>.
MergeSolids(me : mutable;
S1 : Shape from TopoDS; TB1 : State from TopAbs;
S2 : Shape from TopoDS; TB2 : State from TopAbs)
is static;
---Purpose: Merges the two solids <S1> and <S2> keeping the
-- parts in each solid of states <TB1> and <TB2>.
MergeSolid(me : mutable; S : Shape from TopoDS; TB : State from TopAbs)
is static;
---Purpose: Merges the solid <S> keeping the
-- parts of state <TB>.
IsSplit(me; S : Shape from TopoDS; ToBuild : State from TopAbs)
returns Boolean
is static;
---Purpose:
-- Returns True if the shape <S> has been split.
Splits(me; S : Shape from TopoDS; ToBuild : State from TopAbs)
returns ListOfShape from TopTools
raises NoSuchObject from Standard -- if S is not IsSplit()
is static;
---Purpose:
-- Returns the split parts <ToBuild> of shape <S>.
---C++: return const &
IsMerged(me; S : Shape from TopoDS; ToBuild : State from TopAbs)
returns Boolean from Standard
is static;
---Purpose:
-- Returns True if the shape <S> has been merged.
Merged(me; S : Shape from TopoDS; ToBuild : State from TopAbs)
returns ListOfShape from TopTools
raises NoSuchObject from Standard -- if <S> is not IsMerged()
is static;
---Purpose:
-- Returns the merged parts <ToBuild> of shape <S>.
---C++: return const &
NewVertex(me; I : Integer ) returns Shape from TopoDS
is static;
---Purpose:
-- Returns the vertex created on point <I>.
---C++: return const &
NewEdges(me; I : Integer ) returns ListOfShape from TopTools
is static;
---Purpose:
-- Returns the edges created on curve <I>.
---C++: return const &
ChangeNewEdges(me : mutable; I : Integer )
returns ListOfShape from TopTools
is static;
---Purpose:
-- Returns the edges created on curve <I>.
---C++: return &
NewFaces(me; I : Integer ) returns ListOfShape from TopTools
is static;
---Purpose:
-- Returns the faces created on surface <I>.
---C++: return const &
Section(me : mutable) returns ListOfShape from TopTools;
---C++: return const &
InitExtendedSectionDS(me : mutable; k : Integer = 3);
-- k = 1 : section edges built on intersection curves
-- k = 2 : section edges built on edges
-- k = 3 : all section edges
InitSection(me : mutable; k : Integer = 3);
-- k = 1 : section edges built on intersection curves
-- k = 2 : section edges built on edges
-- k = 3 : all section edges
MoreSection(me) returns Boolean;
NextSection(me:mutable);
CurrentSection(me) returns Shape from TopoDS;
---C++: return const &
MakeEdgeAncestorMap(me : mutable) is private;
GetDSEdgeFromSectEdge(me : mutable; E : Shape from TopoDS; rank : Integer)
returns Integer;
GetDSFaceFromDSEdge(me : mutable; indexEdg, rank : Integer)
---C++: return &
returns ListOfInteger from TColStd;
MakeCurveAncestorMap(me : mutable) is private;
GetDSCurveFromSectEdge(me : mutable; SectEdge : Shape from TopoDS)
returns Integer;
GetDSFaceFromDSCurve(me : mutable; indexCur, rank : Integer)
returns Integer;
GetDSPointFromNewVertex(me : mutable; NewVert : Shape from TopoDS)
returns Integer;
EdgeCurveAncestors(me : mutable;E : Shape from TopoDS;
F1,F2 : out Shape from TopoDS;
IC : out Integer) returns Boolean;
---Purpose: search for the couple of face F1,F2
-- (from arguments of supra Perform(S1,S2,HDS)) method which
-- intersection gives section edge E built on an intersection curve.
-- returns True if F1,F2 have been valued.
-- returns False if E is not a section edge built
-- on intersection curve IC.
EdgeSectionAncestors(me : mutable; E : Shape from TopoDS;
LF1,LF2 : out ListOfShape from TopTools;
LE1,LE2 : out ListOfShape from TopTools) returns Boolean;
---Purpose: search for the couple of face F1,F2
-- (from arguments of supra Perform(S1,S2,HDS)) method which
-- intersection gives section edge E built on at least one edge .
-- returns True if F1,F2 have been valued.
-- returns False if E is not a section edge built
-- on at least one edge of S1 and/or S2.
-- LE1,LE2 are edges of S1,S2 which common part is edge E.
-- LE1 or LE2 may be empty() but not both.
IsKPart(me : mutable) returns Integer from Standard is static;
---Purpose: Returns 0 is standard operation, != 0 if particular case
MergeKPart(me : mutable; TB1,TB2 : State from TopAbs) is static;
ChangeBuilder(me : mutable)
---C++: return &
returns Builder from TopOpeBRepBuild;
fields
myBuilder : Builder1 from TopOpeBRepBuild is protected;
-- Edge of mySection / index Edge Splitted ON of 1 or of 2
mySectEdgeDSEdges1 : DataMapOfShapeInteger from TopTools;
mySectEdgeDSEdges2 : DataMapOfShapeInteger from TopTools;
-- Index of Edge of the DS splitted ON / List of Faces of 1 or of 2
myDSEdgesDSFaces1 : DataMapOfIntegerListOfInteger from TColStd;
myDSEdgesDSFaces2 : DataMapOfIntegerListOfInteger from TColStd;
myMakeEdgeAncestorIsDone : Boolean from Standard;
-- Edge of mySection / index of Curve of the DS
mySectEdgeDSCurve : DataMapOfShapeInteger from TopTools;
myMakeCurveAncestorIsDone : Boolean from Standard;
-- new Vertex / index of point of the DS
myNewVertexDSPoint : DataMapOfShapeInteger from TopTools;
myMakePointAncestorIsDone : Boolean from Standard;
myEmptyShape : Shape from TopoDS;
myEmptyIntegerList : ListOfInteger from TColStd;
end HBuilder from TopOpeBRepBuild;

View File

@@ -14,21 +14,28 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_HBuilder.ixx>
#include <TopOpeBRepDS_ListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_DataMapIteratorOfDataMapOfShapeListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_CurveExplorer.hxx>
#include <TopOpeBRepDS_Interference.hxx>
#include <TopOpeBRepDS_ShapeShapeInterference.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_ProgramError.hxx>
#include <Standard_Type.hxx>
#include <TColStd_ListIteratorOfListOfInteger.hxx>
#include <TColStd_MapOfInteger.hxx>
#include <TopTools_MapOfShape.hxx>
#include <TopoDS.hxx>
#include <Standard_ProgramError.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveExplorer.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_DataMapIteratorOfDataMapOfShapeListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_Interference.hxx>
#include <TopOpeBRepDS_ListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_ShapeShapeInterference.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopTools_MapOfShape.hxx>
//=======================================================================
//function : TopOpeBRepBuild_HBuilder

View File

@@ -0,0 +1,209 @@
// Created on: 1993-06-14
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_HBuilder_HeaderFile
#define _TopOpeBRepBuild_HBuilder_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <TopOpeBRepBuild_Builder1.hxx>
#include <TopTools_DataMapOfShapeInteger.hxx>
#include <TColStd_DataMapOfIntegerListOfInteger.hxx>
#include <Standard_Boolean.hxx>
#include <TopoDS_Shape.hxx>
#include <TColStd_ListOfInteger.hxx>
#include <MMgt_TShared.hxx>
#include <TopAbs_State.hxx>
#include <TopTools_ListOfShape.hxx>
#include <Standard_Integer.hxx>
class Standard_NoSuchObject;
class TopOpeBRepDS_BuildTool;
class TopOpeBRepDS_HDataStructure;
class TopoDS_Shape;
class TopOpeBRepBuild_Builder;
class TopOpeBRepBuild_HBuilder;
DEFINE_STANDARD_HANDLE(TopOpeBRepBuild_HBuilder, MMgt_TShared)
//! The HBuilder algorithm constructs topological
//! objects from an existing topology and new
//! geometries attached to the topology. It is used to
//! construct the result of a topological operation;
//! the existing topologies are the parts involved in
//! the topological operation and the new geometries
//! are the intersection lines and points.
class TopOpeBRepBuild_HBuilder : public MMgt_TShared
{
public:
Standard_EXPORT TopOpeBRepBuild_HBuilder(const TopOpeBRepDS_BuildTool& BT);
Standard_EXPORT const TopOpeBRepDS_BuildTool& BuildTool() const;
//! Stores the data structure <HDS>,
//! Create shapes from the new geometries described in <HDS>.
Standard_EXPORT void Perform (const Handle(TopOpeBRepDS_HDataStructure)& HDS);
//! Same as previous + evaluates if an operation performed on shapes S1,S2
//! is a particular case.
Standard_EXPORT void Perform (const Handle(TopOpeBRepDS_HDataStructure)& HDS, const TopoDS_Shape& S1, const TopoDS_Shape& S2);
//! Removes all split and merge already performed.
//! Does NOT clear the handled DS.
Standard_EXPORT void Clear();
//! returns the DS handled by this builder
Standard_EXPORT Handle(TopOpeBRepDS_HDataStructure) DataStructure() const;
Standard_EXPORT TopOpeBRepDS_BuildTool& ChangeBuildTool();
//! Merges the two shapes <S1> and <S2> keeping the
//! parts of states <TB1>,<TB2> in <S1>,<S2>.
Standard_EXPORT void MergeShapes (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopoDS_Shape& S2, const TopAbs_State TB2);
//! Merges the two solids <S1> and <S2> keeping the
//! parts in each solid of states <TB1> and <TB2>.
Standard_EXPORT void MergeSolids (const TopoDS_Shape& S1, const TopAbs_State TB1, const TopoDS_Shape& S2, const TopAbs_State TB2);
//! Merges the solid <S> keeping the
//! parts of state <TB>.
Standard_EXPORT void MergeSolid (const TopoDS_Shape& S, const TopAbs_State TB);
//! Returns True if the shape <S> has been split.
Standard_EXPORT Standard_Boolean IsSplit (const TopoDS_Shape& S, const TopAbs_State ToBuild) const;
//! Returns the split parts <ToBuild> of shape <S>.
Standard_EXPORT const TopTools_ListOfShape& Splits (const TopoDS_Shape& S, const TopAbs_State ToBuild) const;
//! Returns True if the shape <S> has been merged.
Standard_EXPORT Standard_Boolean IsMerged (const TopoDS_Shape& S, const TopAbs_State ToBuild) const;
//! Returns the merged parts <ToBuild> of shape <S>.
Standard_EXPORT const TopTools_ListOfShape& Merged (const TopoDS_Shape& S, const TopAbs_State ToBuild) const;
//! Returns the vertex created on point <I>.
Standard_EXPORT const TopoDS_Shape& NewVertex (const Standard_Integer I) const;
//! Returns the edges created on curve <I>.
Standard_EXPORT const TopTools_ListOfShape& NewEdges (const Standard_Integer I) const;
//! Returns the edges created on curve <I>.
Standard_EXPORT TopTools_ListOfShape& ChangeNewEdges (const Standard_Integer I);
//! Returns the faces created on surface <I>.
Standard_EXPORT const TopTools_ListOfShape& NewFaces (const Standard_Integer I) const;
Standard_EXPORT const TopTools_ListOfShape& Section();
Standard_EXPORT void InitExtendedSectionDS (const Standard_Integer k = 3);
Standard_EXPORT void InitSection (const Standard_Integer k = 3);
Standard_EXPORT Standard_Boolean MoreSection() const;
Standard_EXPORT void NextSection();
Standard_EXPORT const TopoDS_Shape& CurrentSection() const;
Standard_EXPORT Standard_Integer GetDSEdgeFromSectEdge (const TopoDS_Shape& E, const Standard_Integer rank);
Standard_EXPORT TColStd_ListOfInteger& GetDSFaceFromDSEdge (const Standard_Integer indexEdg, const Standard_Integer rank);
Standard_EXPORT Standard_Integer GetDSCurveFromSectEdge (const TopoDS_Shape& SectEdge);
Standard_EXPORT Standard_Integer GetDSFaceFromDSCurve (const Standard_Integer indexCur, const Standard_Integer rank);
Standard_EXPORT Standard_Integer GetDSPointFromNewVertex (const TopoDS_Shape& NewVert);
//! search for the couple of face F1,F2
//! (from arguments of supra Perform(S1,S2,HDS)) method which
//! intersection gives section edge E built on an intersection curve.
//! returns True if F1,F2 have been valued.
//! returns False if E is not a section edge built
//! on intersection curve IC.
Standard_EXPORT Standard_Boolean EdgeCurveAncestors (const TopoDS_Shape& E, TopoDS_Shape& F1, TopoDS_Shape& F2, Standard_Integer& IC);
//! search for the couple of face F1,F2
//! (from arguments of supra Perform(S1,S2,HDS)) method which
//! intersection gives section edge E built on at least one edge .
//! returns True if F1,F2 have been valued.
//! returns False if E is not a section edge built
//! on at least one edge of S1 and/or S2.
//! LE1,LE2 are edges of S1,S2 which common part is edge E.
//! LE1 or LE2 may be empty() but not both.
Standard_EXPORT Standard_Boolean EdgeSectionAncestors (const TopoDS_Shape& E, TopTools_ListOfShape& LF1, TopTools_ListOfShape& LF2, TopTools_ListOfShape& LE1, TopTools_ListOfShape& LE2);
//! Returns 0 is standard operation, != 0 if particular case
Standard_EXPORT Standard_Integer IsKPart();
Standard_EXPORT void MergeKPart (const TopAbs_State TB1, const TopAbs_State TB2);
Standard_EXPORT TopOpeBRepBuild_Builder& ChangeBuilder();
DEFINE_STANDARD_RTTI(TopOpeBRepBuild_HBuilder,MMgt_TShared)
protected:
TopOpeBRepBuild_Builder1 myBuilder;
private:
Standard_EXPORT void MakeEdgeAncestorMap();
Standard_EXPORT void MakeCurveAncestorMap();
TopTools_DataMapOfShapeInteger mySectEdgeDSEdges1;
TopTools_DataMapOfShapeInteger mySectEdgeDSEdges2;
TColStd_DataMapOfIntegerListOfInteger myDSEdgesDSFaces1;
TColStd_DataMapOfIntegerListOfInteger myDSEdgesDSFaces2;
Standard_Boolean myMakeEdgeAncestorIsDone;
TopTools_DataMapOfShapeInteger mySectEdgeDSCurve;
Standard_Boolean myMakeCurveAncestorIsDone;
TopTools_DataMapOfShapeInteger myNewVertexDSPoint;
Standard_Boolean myMakePointAncestorIsDone;
TopoDS_Shape myEmptyShape;
TColStd_ListOfInteger myEmptyIntegerList;
};
#endif // _TopOpeBRepBuild_HBuilder_HeaderFile

View File

@@ -14,34 +14,53 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.jxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepTool.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopAbs.hxx>
#include <TopoDS_Solid.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Wire.hxx>
#include <TopoDS.hxx>
#include <Precision.hxx>
#include <TopExp_Explorer.hxx>
#include <TopExp.hxx>
#include <gp_Pnt.hxx>
#include <BRep_Tool.hxx>
#include <BRep_Builder.hxx>
#include <BRepTools.hxx>
#include <BRep_Tool.hxx>
#include <BRepClass3d.hxx>
#include <BRepClass3d_SolidExplorer.hxx>
#include <BRepTools.hxx>
#include <gp_Pnt.hxx>
#include <Precision.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_ProgramError.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopAbs.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Solid.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Wire.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_kpresu.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_connex.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_ShapeShapeInterference.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool.hxx>
#include <TopOpeBRepTool_EXPORT.hxx>
#include <TopOpeBRepTool_SC.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_connex.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_kpresu.hxx>
#include <Standard_ProgramError.hxx>
#include <TopOpeBRepDS_ShapeShapeInterference.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GettraceKPB();

View File

@@ -1,53 +0,0 @@
-- Created on: 1995-12-19
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1995-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class Loop from TopOpeBRepBuild inherits TShared from MMgt
---Purpose:
-- a Loop is an existing shape (Shell,Wire) or a set
-- of shapes (Faces,Edges) which are connex.
-- a set of connex shape is represented by a BlockIterator
uses
Shape from TopoDS,
BlockIterator from TopOpeBRepBuild,
ShapeEnum from TopAbs
is
Create(S : Shape from TopoDS) returns Loop;
Create(BI : BlockIterator) returns Loop;
IsShape(me) returns Boolean from Standard is virtual;
Shape(me) returns Shape from TopoDS is virtual;
---C++: return const &
-- only when IsShape() is true
BlockIterator(me) returns BlockIterator is static;
---C++: return const &
-- only when IsShape() is false
Dump(me) is virtual;
fields
myIsShape : Boolean from Standard is protected;
myShape : Shape from TopoDS is protected;
myBlockIterator : BlockIterator is protected;
end Loop from TopOpeBRepBuild;

View File

@@ -14,13 +14,16 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Loop.ixx>
#include <Standard_Type.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_BlockIterator.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
//=======================================================================
//function : TopOpeBRepBuild_Loop
//purpose :
//=======================================================================
TopOpeBRepBuild_Loop::TopOpeBRepBuild_Loop
(const TopoDS_Shape& S) :
myIsShape(Standard_True),myShape(S),myBlockIterator(0,0)

View File

@@ -0,0 +1,82 @@
// Created on: 1995-12-19
// Created by: Jean Yves LEBEY
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_Loop_HeaderFile
#define _TopOpeBRepBuild_Loop_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <Standard_Boolean.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_BlockIterator.hxx>
#include <MMgt_TShared.hxx>
class TopoDS_Shape;
class TopOpeBRepBuild_BlockIterator;
class TopOpeBRepBuild_Loop;
DEFINE_STANDARD_HANDLE(TopOpeBRepBuild_Loop, MMgt_TShared)
//! a Loop is an existing shape (Shell,Wire) or a set
//! of shapes (Faces,Edges) which are connex.
//! a set of connex shape is represented by a BlockIterator
class TopOpeBRepBuild_Loop : public MMgt_TShared
{
public:
Standard_EXPORT TopOpeBRepBuild_Loop(const TopoDS_Shape& S);
Standard_EXPORT TopOpeBRepBuild_Loop(const TopOpeBRepBuild_BlockIterator& BI);
Standard_EXPORT virtual Standard_Boolean IsShape() const;
Standard_EXPORT virtual const TopoDS_Shape& Shape() const;
Standard_EXPORT const TopOpeBRepBuild_BlockIterator& BlockIterator() const;
Standard_EXPORT virtual void Dump() const;
DEFINE_STANDARD_RTTI(TopOpeBRepBuild_Loop,MMgt_TShared)
protected:
Standard_Boolean myIsShape;
TopoDS_Shape myShape;
TopOpeBRepBuild_BlockIterator myBlockIterator;
private:
};
#endif // _TopOpeBRepBuild_Loop_HeaderFile

View File

@@ -1,36 +0,0 @@
-- Created on: 1993-03-03
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
deferred class LoopClassifier from TopOpeBRepBuild
---Purpose: classify loops in order to build Areas
uses
ShapeEnum from TopAbs,
State from TopAbs,
Loop from TopOpeBRepBuild
is
Delete(me:out) is virtual;
---C++: alias "Standard_EXPORT virtual ~TopOpeBRepBuild_LoopClassifier(){Delete() ; }"
Compare(me : in out; L1,L2 : Loop from TopOpeBRepBuild)
returns State from TopAbs is deferred;
---Purpose: Returns the state of loop <L1> compared with loop <L2>.
end LoopClassifier from TopOpeBRepBuild;

View File

@@ -14,7 +14,9 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_LoopClassifier.ixx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_LoopClassifier.hxx>
void TopOpeBRepBuild_LoopClassifier::Delete()
{}

View File

@@ -0,0 +1,65 @@
// Created on: 1993-03-03
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_LoopClassifier_HeaderFile
#define _TopOpeBRepBuild_LoopClassifier_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopAbs_State.hxx>
class TopOpeBRepBuild_Loop;
//! classify loops in order to build Areas
class TopOpeBRepBuild_LoopClassifier
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT virtual void Delete();
Standard_EXPORT virtual ~TopOpeBRepBuild_LoopClassifier(){Delete() ; }
//! Returns the state of loop <L1> compared with loop <L2>.
Standard_EXPORT virtual TopAbs_State Compare (const Handle(TopOpeBRepBuild_Loop)& L1, const Handle(TopOpeBRepBuild_Loop)& L2) = 0;
protected:
private:
};
#endif // _TopOpeBRepBuild_LoopClassifier_HeaderFile

View File

@@ -0,0 +1,28 @@
// Created on: 1993-06-17
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_LoopEnum_HeaderFile
#define _TopOpeBRepBuild_LoopEnum_HeaderFile
enum TopOpeBRepBuild_LoopEnum
{
TopOpeBRepBuild_ANYLOOP,
TopOpeBRepBuild_BOUNDARY,
TopOpeBRepBuild_BLOCK
};
#endif // _TopOpeBRepBuild_LoopEnum_HeaderFile

View File

@@ -1,50 +0,0 @@
-- Created on: 1993-03-23
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class LoopSet from TopOpeBRepBuild
uses
Loop from TopOpeBRepBuild,
ListOfLoop from TopOpeBRepBuild,
ListIteratorOfListOfLoop from TopOpeBRepBuild
is
Create returns LoopSet;
Delete(me:out) is virtual;
---C++: alias "Standard_EXPORT virtual ~TopOpeBRepBuild_LoopSet(){Delete() ; }"
-- filling : append loops (shapes,blocks) in list
ChangeListOfLoop(me : in out) returns ListOfLoop is static;
---C++: return &
-- exploration of the loops
InitLoop(me : in out) is virtual;
MoreLoop(me) returns Boolean is virtual;
NextLoop(me : in out) is virtual;
Loop(me) returns Loop from TopOpeBRepBuild is virtual;
---C++: return const &
fields
myListOfLoop : ListOfLoop;
myLoopIterator : ListIteratorOfListOfLoop;
myLoopIndex : Integer from Standard;
myNbLoop : Integer from Standard;
end LoopSet from TopOpeBRepBuild;

View File

@@ -14,13 +14,14 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_LoopSet.ixx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
//=======================================================================
//function : TopOpeBRepBuild_LoopSet
//purpose :
//=======================================================================
TopOpeBRepBuild_LoopSet::TopOpeBRepBuild_LoopSet() :
myLoopIndex(1), myNbLoop(0)
{

View File

@@ -0,0 +1,81 @@
// Created on: 1993-03-23
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_LoopSet_HeaderFile
#define _TopOpeBRepBuild_LoopSet_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopOpeBRepBuild_ListOfLoop.hxx>
#include <TopOpeBRepBuild_ListIteratorOfListOfLoop.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Boolean.hxx>
class TopOpeBRepBuild_Loop;
class TopOpeBRepBuild_LoopSet
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_LoopSet();
Standard_EXPORT virtual void Delete();
Standard_EXPORT virtual ~TopOpeBRepBuild_LoopSet(){Delete() ; }
Standard_EXPORT TopOpeBRepBuild_ListOfLoop& ChangeListOfLoop();
Standard_EXPORT virtual void InitLoop();
Standard_EXPORT virtual Standard_Boolean MoreLoop() const;
Standard_EXPORT virtual void NextLoop();
Standard_EXPORT virtual const Handle(TopOpeBRepBuild_Loop)& Loop() const;
protected:
private:
TopOpeBRepBuild_ListOfLoop myListOfLoop;
TopOpeBRepBuild_ListIteratorOfListOfLoop myLoopIterator;
Standard_Integer myLoopIndex;
Standard_Integer myNbLoop;
};
#endif // _TopOpeBRepBuild_LoopSet_HeaderFile

View File

@@ -14,26 +14,46 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.jxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopoDS.hxx>
#include <TopOpeBRepDS_ListOfShapeOn1State.hxx>
#include <BRep_Tool.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopExp.hxx>
#include <TopTools_ListOfShape.hxx>
#include <BRep_Builder.hxx>
#include <BRepCheck_Wire.hxx>
#include <BRep_Tool.hxx>
#include <BRepCheck.hxx>
#include <TopoDS_Iterator.hxx>
//#include <DBRep.hxx>
#include <BRepCheck_Analyzer.hxx>
#include <BRepCheck_ListIteratorOfListOfStatus.hxx>
#include <BRepCheck.hxx>
#include <BRepCheck_Result.hxx>
#include <BRepCheck_Wire.hxx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Iterator.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_ListOfShapeOn1State.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopTools_ListOfShape.hxx>
//#include <DBRep.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GettraceSPS();
#endif

View File

@@ -0,0 +1,23 @@
// Created on: 1993-06-17
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_PBuilder_HeaderFile
#define _TopOpeBRepBuild_PBuilder_HeaderFile
class TopOpeBRepBuild_Builder;
typedef TopOpeBRepBuild_Builder* TopOpeBRepBuild_PBuilder;
#endif // _TopOpeBRepBuild_PBuilder_HeaderFile

View File

@@ -0,0 +1,23 @@
// Created on: 1993-06-17
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_PGTopo_HeaderFile
#define _TopOpeBRepBuild_PGTopo_HeaderFile
class TopOpeBRepBuild_GTopo;
typedef TopOpeBRepBuild_GTopo* TopOpeBRepBuild_PGTopo;
#endif // _TopOpeBRepBuild_PGTopo_HeaderFile

View File

@@ -0,0 +1,23 @@
// Created on: 1993-06-17
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_PWireEdgeSet_HeaderFile
#define _TopOpeBRepBuild_PWireEdgeSet_HeaderFile
class TopOpeBRepBuild_WireEdgeSet;
typedef TopOpeBRepBuild_WireEdgeSet* TopOpeBRepBuild_PWireEdgeSet;
#endif // _TopOpeBRepBuild_PWireEdgeSet_HeaderFile

View File

@@ -1,71 +0,0 @@
-- Created on: 1994-11-14
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1994-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class Pave from TopOpeBRepBuild
inherits Loop from TopOpeBRepBuild
uses
ShapeEnum from TopAbs,
Shape from TopoDS,
--modified by NIZHNY-MZV Mon Feb 21 14:29:26 2000
Kind from TopOpeBRepDS
is
Create(V : Shape from TopoDS; P : Real; bound : Boolean) returns Pave;
---Purpose: V = vertex, P = parameter of vertex <V>
-- bound = True if <V> is an old vertex
-- bound = False if <V> is a new vertex
HasSameDomain(me : mutable; b : Boolean);
SameDomain(me : mutable; VSD : Shape from TopoDS);
HasSameDomain(me) returns Boolean from Standard;
SameDomain(me) returns Shape from TopoDS;
---C++: return const &
Vertex(me) returns Shape from TopoDS is static;
---C++: return const &
ChangeVertex(me : mutable) returns Shape from TopoDS is static;
---C++: return &
-- used only by PaveSet
Parameter(me) returns Real from Standard is static;
--modified by NIZHNY-MZV Mon Feb 21 14:09:47 2000
Parameter(me: mutable; Par: Real from Standard) is static;
--modified by NIZHNY-MZV Mon Feb 21 14:25:58 2000
InterferenceType(me: mutable) returns Kind from TopOpeBRepDS;
---C++: return &
IsShape(me) returns Boolean from Standard is redefined;
Shape(me) returns Shape from TopoDS is redefined;
---C++: return const &
Dump(me) is redefined;
fields
myVertex : Shape from TopoDS;
myParam : Real from Standard;
myIsShape : Boolean from Standard;
myHasSameDomain : Boolean from Standard;
mySameDomain : Shape from TopoDS;
--modified by NIZHNY-MZV Mon Feb 21 14:26:58 2000
myIntType : Kind from TopOpeBRepDS;
end Pave from TopOpeBRepBuild;

View File

@@ -14,14 +14,16 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Pave.ixx>
#include <Standard_Type.hxx>
#include <TopAbs.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_Pave.hxx>
//=======================================================================
//function : TopOpeBRepBuild_Pave
//purpose :
//=======================================================================
TopOpeBRepBuild_Pave::TopOpeBRepBuild_Pave
(const TopoDS_Shape& V, const Standard_Real P, const Standard_Boolean B) :
TopOpeBRepBuild_Loop(V),

View File

@@ -0,0 +1,99 @@
// Created on: 1994-11-14
// Created by: Jean Yves LEBEY
// Copyright (c) 1994-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_Pave_HeaderFile
#define _TopOpeBRepBuild_Pave_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <TopoDS_Shape.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
#include <TopOpeBRepDS_Kind.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
class TopoDS_Shape;
class TopOpeBRepBuild_Pave;
DEFINE_STANDARD_HANDLE(TopOpeBRepBuild_Pave, TopOpeBRepBuild_Loop)
class TopOpeBRepBuild_Pave : public TopOpeBRepBuild_Loop
{
public:
//! V = vertex, P = parameter of vertex <V>
//! bound = True if <V> is an old vertex
//! bound = False if <V> is a new vertex
Standard_EXPORT TopOpeBRepBuild_Pave(const TopoDS_Shape& V, const Standard_Real P, const Standard_Boolean bound);
Standard_EXPORT void HasSameDomain (const Standard_Boolean b);
Standard_EXPORT void SameDomain (const TopoDS_Shape& VSD);
Standard_EXPORT Standard_Boolean HasSameDomain() const;
Standard_EXPORT const TopoDS_Shape& SameDomain() const;
Standard_EXPORT const TopoDS_Shape& Vertex() const;
Standard_EXPORT TopoDS_Shape& ChangeVertex();
Standard_EXPORT Standard_Real Parameter() const;
Standard_EXPORT void Parameter (const Standard_Real Par);
Standard_EXPORT TopOpeBRepDS_Kind& InterferenceType();
Standard_EXPORT virtual Standard_Boolean IsShape() const Standard_OVERRIDE;
Standard_EXPORT virtual const TopoDS_Shape& Shape() const Standard_OVERRIDE;
Standard_EXPORT virtual void Dump() const Standard_OVERRIDE;
DEFINE_STANDARD_RTTI(TopOpeBRepBuild_Pave,TopOpeBRepBuild_Loop)
protected:
private:
TopoDS_Shape myVertex;
Standard_Real myParam;
Standard_Boolean myIsShape;
Standard_Boolean myHasSameDomain;
TopoDS_Shape mySameDomain;
TopOpeBRepDS_Kind myIntType;
};
#endif // _TopOpeBRepBuild_Pave_HeaderFile

View File

@@ -1,84 +0,0 @@
-- Created on: 1993-06-17
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class PaveClassifier from TopOpeBRepBuild
inherits LoopClassifier from TopOpeBRepBuild
---Purpose:
-- This class compares vertices on an edge.
--
-- A vertex V1 is inside a vertex V2 if V1 is on the
-- part of the curve defined by V2.
--
-- If V2 is FORWARD V1 must be after V2 on the curve.
-- If V2 is REVERSED V1 must be before V2 on the curve.
-- If V2 is INTERNAL V1 is always inside.
-- If V2 is EXTERNAL V1 is never inside.
uses
ShapeEnum from TopAbs,
State from TopAbs,
Shape from TopoDS,
Edge from TopoDS,
Orientation from TopAbs,
Loop from TopOpeBRepBuild
is
Create(E : Shape from TopoDS) returns PaveClassifier;
---Purpose: Create a Pave classifier to compare vertices on edge <E>.
Compare(me : in out; L1,L2 : Loop from TopOpeBRepBuild)
returns State from TopAbs;
---Purpose: Returns state of vertex <L1> compared with <L2>.
SetFirstParameter(me : in out; P : Real from Standard)
is static;
ClosedVertices(me : in out; B : Boolean from Standard)
is static;
AdjustCase(myclass;p1:Real;o:Orientation;
first,period:Real;tol:Real;
cas:out Integer) returns Real;
CompareOnNonPeriodic(me : in out) returns State from TopAbs
is static private;
CompareOnPeriodic(me : in out) returns State from TopAbs
is static private;
AdjustOnPeriodic(me : in out)
is static private;
ToAdjustOnPeriodic(me) returns Boolean from Standard
is static private;
fields
myEdge : Edge from TopoDS;
myEdgePeriodic : Boolean from Standard;
myFirst : Real from Standard;
myPeriod : Real from Standard;
mySameParameters : Boolean from Standard;
myClosedVertices : Boolean from Standard;
myP1 : Real from Standard;
myP2 : Real from Standard;
myO1 : Orientation from TopAbs;
myO2 : Orientation from TopAbs;
myCas1 : Integer from Standard; -- debug
myCas2 : Integer from Standard; -- debug
end PaveClassifier from TopOpeBRepBuild;

View File

@@ -14,16 +14,18 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_PaveClassifier.ixx>
#include <TopOpeBRepBuild_Pave.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Vertex.hxx>
#include <BRep_Tool.hxx>
#include <ElCLib.hxx>
#include <Geom_Curve.hxx>
#include <Precision.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_Pave.hxx>
#include <TopOpeBRepBuild_PaveClassifier.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepTool_GettraceVC();

View File

@@ -0,0 +1,107 @@
// Created on: 1993-06-17
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_PaveClassifier_HeaderFile
#define _TopOpeBRepBuild_PaveClassifier_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopoDS_Edge.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
#include <TopAbs_Orientation.hxx>
#include <Standard_Integer.hxx>
#include <TopOpeBRepBuild_LoopClassifier.hxx>
#include <TopAbs_State.hxx>
class TopoDS_Shape;
class TopOpeBRepBuild_Loop;
//! This class compares vertices on an edge.
//!
//! A vertex V1 is inside a vertex V2 if V1 is on the
//! part of the curve defined by V2.
//!
//! If V2 is FORWARD V1 must be after V2 on the curve.
//! If V2 is REVERSED V1 must be before V2 on the curve.
//! If V2 is INTERNAL V1 is always inside.
//! If V2 is EXTERNAL V1 is never inside.
class TopOpeBRepBuild_PaveClassifier : public TopOpeBRepBuild_LoopClassifier
{
public:
DEFINE_STANDARD_ALLOC
//! Create a Pave classifier to compare vertices on edge <E>.
Standard_EXPORT TopOpeBRepBuild_PaveClassifier(const TopoDS_Shape& E);
//! Returns state of vertex <L1> compared with <L2>.
Standard_EXPORT TopAbs_State Compare (const Handle(TopOpeBRepBuild_Loop)& L1, const Handle(TopOpeBRepBuild_Loop)& L2);
Standard_EXPORT void SetFirstParameter (const Standard_Real P);
Standard_EXPORT void ClosedVertices (const Standard_Boolean B);
Standard_EXPORT static Standard_Real AdjustCase (const Standard_Real p1, const TopAbs_Orientation o, const Standard_Real first, const Standard_Real period, const Standard_Real tol, Standard_Integer& cas);
protected:
private:
Standard_EXPORT TopAbs_State CompareOnNonPeriodic();
Standard_EXPORT TopAbs_State CompareOnPeriodic();
Standard_EXPORT void AdjustOnPeriodic();
Standard_EXPORT Standard_Boolean ToAdjustOnPeriodic() const;
TopoDS_Edge myEdge;
Standard_Boolean myEdgePeriodic;
Standard_Real myFirst;
Standard_Real myPeriod;
Standard_Boolean mySameParameters;
Standard_Boolean myClosedVertices;
Standard_Real myP1;
Standard_Real myP2;
TopAbs_Orientation myO1;
TopAbs_Orientation myO2;
Standard_Integer myCas1;
Standard_Integer myCas2;
};
#endif // _TopOpeBRepBuild_PaveClassifier_HeaderFile

View File

@@ -1,74 +0,0 @@
-- Created on: 1993-06-15
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class PaveSet from TopOpeBRepBuild
inherits LoopSet from TopOpeBRepBuild
---Purpose:
-- class providing an exploration of a set of vertices to build edges.
-- It is similar to LoopSet from TopOpeBRepBuild where Loop is Pave.
uses
Shape from TopoDS,
Edge from TopoDS,
Loop from TopOpeBRepBuild,
Pave from TopOpeBRepBuild,
ListOfPave from TopOpeBRepBuild,
ListIteratorOfListOfPave from TopOpeBRepBuild
is
Create(E : Shape from TopoDS) returns PaveSet from TopOpeBRepBuild;
---Purpose: Create a Pave set on edge <E>. It contains <E> vertices.
RemovePV(me:in out; B : Boolean); -- particular case B = T/F : try/don't try
-- to remove Pave in Prepare() (T by default)
Append(me : in out; PV : Pave from TopOpeBRepBuild) is static;
---Purpose: Add <PV> in the Pave set.
-- === start signature LoopSet
InitLoop(me : in out) is redefined;
MoreLoop(me) returns Boolean is redefined;
NextLoop(me : in out) is redefined;
Loop(me) returns Loop from TopOpeBRepBuild is redefined;
---C++: return const &
-- === end signature LoopSet
Edge(me) returns Edge from TopoDS is static;
---C++: return const &
HasEqualParameters(me : in out) returns Boolean is static;
EqualParameters(me) returns Real is static;
ClosedVertices(me : in out) returns Boolean is static;
Prepare(me : in out) is static private;
SortPave(myclass; Lin:ListOfPave; Lout:out ListOfPave);
fields
myEdge : Edge from TopoDS;
myVertices : ListOfPave from TopOpeBRepBuild;
myVerticesIt : ListIteratorOfListOfPave from TopOpeBRepBuild;
myHasEqualParameters : Boolean from Standard;
myEqualParameters : Real from Standard;
myClosed : Boolean from Standard;
myPrepareDone : Boolean from Standard;
myRemovePV : Boolean;
end PaveSet from TopOpeBRepBuild;

View File

@@ -14,18 +14,21 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_PaveSet.ixx>
#include <TopoDS.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopExp_Explorer.hxx>
#include <Precision.hxx>
#include <Geom_Curve.hxx>
#include <BRep_Tool.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <Geom_Curve.hxx>
#include <gp_Pnt.hxx>
#include <Precision.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Loop.hxx>
#include <TopOpeBRepBuild_Pave.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepTool_GettraceVC();

View File

@@ -0,0 +1,105 @@
// Created on: 1993-06-15
// Created by: Jean Yves LEBEY
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_PaveSet_HeaderFile
#define _TopOpeBRepBuild_PaveSet_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopoDS_Edge.hxx>
#include <TopOpeBRepBuild_ListOfPave.hxx>
#include <TopOpeBRepBuild_ListIteratorOfListOfPave.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
#include <TopOpeBRepBuild_LoopSet.hxx>
class TopoDS_Shape;
class TopOpeBRepBuild_Pave;
class TopOpeBRepBuild_Loop;
class TopoDS_Edge;
//! class providing an exploration of a set of vertices to build edges.
//! It is similar to LoopSet from TopOpeBRepBuild where Loop is Pave.
class TopOpeBRepBuild_PaveSet : public TopOpeBRepBuild_LoopSet
{
public:
DEFINE_STANDARD_ALLOC
//! Create a Pave set on edge <E>. It contains <E> vertices.
Standard_EXPORT TopOpeBRepBuild_PaveSet(const TopoDS_Shape& E);
Standard_EXPORT void RemovePV (const Standard_Boolean B);
//! Add <PV> in the Pave set.
Standard_EXPORT void Append (const Handle(TopOpeBRepBuild_Pave)& PV);
Standard_EXPORT virtual void InitLoop() Standard_OVERRIDE;
Standard_EXPORT virtual Standard_Boolean MoreLoop() const Standard_OVERRIDE;
Standard_EXPORT virtual void NextLoop() Standard_OVERRIDE;
Standard_EXPORT virtual const Handle(TopOpeBRepBuild_Loop)& Loop() const Standard_OVERRIDE;
Standard_EXPORT const TopoDS_Edge& Edge() const;
Standard_EXPORT Standard_Boolean HasEqualParameters();
Standard_EXPORT Standard_Real EqualParameters() const;
Standard_EXPORT Standard_Boolean ClosedVertices();
Standard_EXPORT static void SortPave (const TopOpeBRepBuild_ListOfPave& Lin, TopOpeBRepBuild_ListOfPave& Lout);
protected:
private:
Standard_EXPORT void Prepare();
TopoDS_Edge myEdge;
TopOpeBRepBuild_ListOfPave myVertices;
TopOpeBRepBuild_ListIteratorOfListOfPave myVerticesIt;
Standard_Boolean myHasEqualParameters;
Standard_Real myEqualParameters;
Standard_Boolean myClosed;
Standard_Boolean myPrepareDone;
Standard_Boolean myRemovePV;
};
#endif // _TopOpeBRepBuild_PaveSet_HeaderFile

View File

@@ -14,17 +14,39 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.ixx>
#include <TopOpeBRepBuild_ShellToSolid.hxx>
#include <TopOpeBRepTool.hxx>
#include <TopExp_Explorer.hxx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_ProgramError.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Solid.hxx>
#include <Standard_ProgramError.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_ShellToSolid.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_define.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepTool.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#ifdef OCCT_DEBUG
extern Standard_Boolean TopOpeBRepBuild_GetcontextNOREGUSO();

View File

@@ -14,31 +14,50 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_Builder.ixx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepDS_CurveExplorer.hxx>
#include <TopOpeBRepDS_TKI.hxx>
#include <TopOpeBRepDS_ProcessInterferencesTool.hxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopoDS.hxx>
#include <GeomAPI_ProjectPointOnCurve.hxx>
#include <BRep_Tool.hxx>
#include <gp_Pnt.hxx>
#include <TopExp.hxx>
#include <Geom_Curve.hxx>
#include <Geom2d_TrimmedCurve.hxx>
#include <Standard_ProgramError.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_connex.hxx>
#include <TopOpeBRepDS_TKI.hxx>
#include <Geom2d_Curve.hxx>
#include <Geom_Curve.hxx>
#include <BRep_Tool.hxx>
#include <BRep_Builder.hxx>
#include <TopOpeBRepTool_CurveTool.hxx>
#include <TopOpeBRepTool_TOOL.hxx>
#include <BRep_Tool.hxx>
#include <Geom2d_Curve.hxx>
#include <Geom2d_TrimmedCurve.hxx>
#include <Geom_Curve.hxx>
#include <GeomAPI_ProjectPointOnCurve.hxx>
#include <gp_Pnt.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_ProgramError.hxx>
#include <TCollection_AsciiString.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopOpeBRepBuild_Builder.hxx>
#include <TopOpeBRepBuild_define.hxx>
#include <TopOpeBRepBuild_EdgeBuilder.hxx>
#include <TopOpeBRepBuild_FaceBuilder.hxx>
#include <TopOpeBRepBuild_GTool.hxx>
#include <TopOpeBRepBuild_GTopo.hxx>
#include <TopOpeBRepBuild_HBuilder.hxx>
#include <TopOpeBRepBuild_PaveSet.hxx>
#include <TopOpeBRepBuild_ShapeSet.hxx>
#include <TopOpeBRepBuild_ShellFaceSet.hxx>
#include <TopOpeBRepBuild_SolidBuilder.hxx>
#include <TopOpeBRepBuild_WireEdgeSet.hxx>
#include <TopOpeBRepDS_BuildTool.hxx>
#include <TopOpeBRepDS_connex.hxx>
#include <TopOpeBRepDS_CurveExplorer.hxx>
#include <TopOpeBRepDS_CurveIterator.hxx>
#include <TopOpeBRepDS_EXPORT.hxx>
#include <TopOpeBRepDS_HDataStructure.hxx>
#include <TopOpeBRepDS_PointIterator.hxx>
#include <TopOpeBRepDS_ProcessInterferencesTool.hxx>
#include <TopOpeBRepDS_SurfaceIterator.hxx>
#include <TopOpeBRepDS_TKI.hxx>
#include <TopOpeBRepTool_2d.hxx>
#include <TopOpeBRepTool_CurveTool.hxx>
#include <TopOpeBRepTool_EXPORT.hxx>
#include <TopOpeBRepTool_ShapeExplorer.hxx>
#include <TopOpeBRepTool_TOOL.hxx>
#define MGhc3 Handle(Geom_Curve)
#define MGhc2 Handle(Geom2d_Curve)

View File

@@ -1,58 +0,0 @@
-- Created on: 1995-06-12
-- Created by: Jean Yves LEBEY
-- Copyright (c) 1995-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class ShapeListOfShape from TopOpeBRepBuild
---Purpose: represent shape + a list of shape
uses
ListOfShape from TopTools,
Shape from TopoDS
is
Create returns ShapeListOfShape from TopOpeBRepBuild;
Create(S : Shape from TopoDS)
returns ShapeListOfShape from TopOpeBRepBuild;
Create(S : Shape from TopoDS;
L : ListOfShape from TopTools)
returns ShapeListOfShape from TopOpeBRepBuild;
List(me)
returns ListOfShape from TopTools is static;
---C++: return const &
ChangeList(me : in out)
returns ListOfShape from TopTools is static;
---C++: return &
Shape(me)
returns Shape from TopoDS is static;
---C++: return const &
ChangeShape(me : in out)
returns Shape from TopoDS is static;
---C++: return &
fields
myList : ListOfShape from TopTools;
myShape : Shape from TopoDS;
end ShapeListOfShape from TopOpeBRepBuild;

View File

@@ -14,7 +14,9 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <TopOpeBRepBuild_ShapeListOfShape.ixx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepBuild_ShapeListOfShape.hxx>
#define MTTdmiomoslos TopTools_DataMapIteratorOfDataMapOfShapeListOfShape
#define MTTdmoslos TopTools_DataMapOfShapeListOfShape

View File

@@ -0,0 +1,76 @@
// Created on: 1995-06-12
// Created by: Jean Yves LEBEY
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TopOpeBRepBuild_ShapeListOfShape_HeaderFile
#define _TopOpeBRepBuild_ShapeListOfShape_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopoDS_Shape.hxx>
class TopoDS_Shape;
//! represent shape + a list of shape
class TopOpeBRepBuild_ShapeListOfShape
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT TopOpeBRepBuild_ShapeListOfShape();
Standard_EXPORT TopOpeBRepBuild_ShapeListOfShape(const TopoDS_Shape& S);
Standard_EXPORT TopOpeBRepBuild_ShapeListOfShape(const TopoDS_Shape& S, const TopTools_ListOfShape& L);
Standard_EXPORT const TopTools_ListOfShape& List() const;
Standard_EXPORT TopTools_ListOfShape& ChangeList();
Standard_EXPORT const TopoDS_Shape& Shape() const;
Standard_EXPORT TopoDS_Shape& ChangeShape();
protected:
private:
TopTools_ListOfShape myList;
TopoDS_Shape myShape;
};
#endif // _TopOpeBRepBuild_ShapeListOfShape_HeaderFile

Some files were not shown because too many files have changed in this diff Show More