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:
@@ -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
|
||||
|
@@ -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;
|
@@ -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;
|
@@ -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();
|
||||
|
85
src/TopOpeBRepBuild/TopOpeBRepBuild_Area1dBuilder.hxx
Normal file
85
src/TopOpeBRepBuild/TopOpeBRepBuild_Area1dBuilder.hxx
Normal 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
|
@@ -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;
|
@@ -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();
|
||||
|
79
src/TopOpeBRepBuild/TopOpeBRepBuild_Area2dBuilder.hxx
Normal file
79
src/TopOpeBRepBuild/TopOpeBRepBuild_Area2dBuilder.hxx
Normal 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
|
@@ -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;
|
@@ -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()
|
||||
{
|
||||
}
|
||||
|
79
src/TopOpeBRepBuild/TopOpeBRepBuild_Area3dBuilder.hxx
Normal file
79
src/TopOpeBRepBuild/TopOpeBRepBuild_Area3dBuilder.hxx
Normal 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
|
@@ -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;
|
@@ -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();
|
||||
|
130
src/TopOpeBRepBuild/TopOpeBRepBuild_AreaBuilder.hxx
Normal file
130
src/TopOpeBRepBuild/TopOpeBRepBuild_AreaBuilder.hxx
Normal 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
|
@@ -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;
|
@@ -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)
|
||||
{
|
||||
|
104
src/TopOpeBRepBuild/TopOpeBRepBuild_BlockBuilder.hxx
Normal file
104
src/TopOpeBRepBuild/TopOpeBRepBuild_BlockBuilder.hxx
Normal 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
|
@@ -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;
|
@@ -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),
|
||||
|
78
src/TopOpeBRepBuild/TopOpeBRepBuild_BlockIterator.hxx
Normal file
78
src/TopOpeBRepBuild/TopOpeBRepBuild_BlockIterator.hxx
Normal 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
|
@@ -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();
|
||||
|
@@ -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();
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
@@ -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();
|
||||
|
668
src/TopOpeBRepBuild/TopOpeBRepBuild_Builder.hxx
Normal file
668
src/TopOpeBRepBuild/TopOpeBRepBuild_Builder.hxx
Normal 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
|
@@ -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;
|
@@ -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;
|
||||
|
160
src/TopOpeBRepBuild/TopOpeBRepBuild_Builder1.hxx
Normal file
160
src/TopOpeBRepBuild/TopOpeBRepBuild_Builder1.hxx
Normal 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
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
@@ -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();
|
||||
|
88
src/TopOpeBRepBuild/TopOpeBRepBuild_BuilderON.hxx
Normal file
88
src/TopOpeBRepBuild/TopOpeBRepBuild_BuilderON.hxx
Normal 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
|
@@ -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)
|
||||
|
@@ -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;
|
@@ -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)
|
||||
|
||||
|
93
src/TopOpeBRepBuild/TopOpeBRepBuild_CompositeClassifier.hxx
Normal file
93
src/TopOpeBRepBuild/TopOpeBRepBuild_CompositeClassifier.hxx
Normal 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
|
@@ -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;
|
||||
|
||||
|
@@ -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
|
||||
|
131
src/TopOpeBRepBuild/TopOpeBRepBuild_CorrectFace2d.hxx
Normal file
131
src/TopOpeBRepBuild/TopOpeBRepBuild_CorrectFace2d.hxx
Normal 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
|
@@ -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;
|
@@ -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()
|
||||
{
|
||||
}
|
||||
|
89
src/TopOpeBRepBuild/TopOpeBRepBuild_EdgeBuilder.hxx
Normal file
89
src/TopOpeBRepBuild/TopOpeBRepBuild_EdgeBuilder.hxx
Normal 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
|
@@ -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
|
||||
|
@@ -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();
|
||||
|
@@ -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;
|
@@ -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()
|
||||
{
|
||||
}
|
||||
|
77
src/TopOpeBRepBuild/TopOpeBRepBuild_FaceAreaBuilder.hxx
Normal file
77
src/TopOpeBRepBuild/TopOpeBRepBuild_FaceAreaBuilder.hxx
Normal 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
|
@@ -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;
|
@@ -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
|
||||
|
141
src/TopOpeBRepBuild/TopOpeBRepBuild_FaceBuilder.hxx
Normal file
141
src/TopOpeBRepBuild/TopOpeBRepBuild_FaceBuilder.hxx
Normal 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
|
@@ -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;
|
105
src/TopOpeBRepBuild/TopOpeBRepBuild_FuseFace.hxx
Normal file
105
src/TopOpeBRepBuild/TopOpeBRepBuild_FuseFace.hxx
Normal 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
|
@@ -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;
|
@@ -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)
|
||||
|
83
src/TopOpeBRepBuild/TopOpeBRepBuild_GIter.hxx
Normal file
83
src/TopOpeBRepBuild/TopOpeBRepBuild_GIter.hxx
Normal 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
|
@@ -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;
|
@@ -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)
|
||||
{
|
||||
|
80
src/TopOpeBRepBuild/TopOpeBRepBuild_GTool.hxx
Normal file
80
src/TopOpeBRepBuild/TopOpeBRepBuild_GTool.hxx
Normal 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
|
@@ -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;
|
||||
|
@@ -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();
|
||||
|
125
src/TopOpeBRepBuild/TopOpeBRepBuild_GTopo.hxx
Normal file
125
src/TopOpeBRepBuild/TopOpeBRepBuild_GTopo.hxx
Normal 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
|
@@ -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();
|
||||
|
@@ -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>
|
||||
|
@@ -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);
|
||||
|
@@ -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>
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
@@ -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
|
||||
|
209
src/TopOpeBRepBuild/TopOpeBRepBuild_HBuilder.hxx
Normal file
209
src/TopOpeBRepBuild/TopOpeBRepBuild_HBuilder.hxx
Normal 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
|
@@ -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();
|
||||
|
@@ -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;
|
@@ -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)
|
||||
|
82
src/TopOpeBRepBuild/TopOpeBRepBuild_Loop.hxx
Normal file
82
src/TopOpeBRepBuild/TopOpeBRepBuild_Loop.hxx
Normal 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
|
@@ -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;
|
@@ -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()
|
||||
{}
|
||||
|
65
src/TopOpeBRepBuild/TopOpeBRepBuild_LoopClassifier.hxx
Normal file
65
src/TopOpeBRepBuild/TopOpeBRepBuild_LoopClassifier.hxx
Normal 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
|
28
src/TopOpeBRepBuild/TopOpeBRepBuild_LoopEnum.hxx
Normal file
28
src/TopOpeBRepBuild/TopOpeBRepBuild_LoopEnum.hxx
Normal 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
|
@@ -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;
|
@@ -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)
|
||||
{
|
||||
|
81
src/TopOpeBRepBuild/TopOpeBRepBuild_LoopSet.hxx
Normal file
81
src/TopOpeBRepBuild/TopOpeBRepBuild_LoopSet.hxx
Normal 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
|
@@ -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
|
||||
|
23
src/TopOpeBRepBuild/TopOpeBRepBuild_PBuilder.hxx
Normal file
23
src/TopOpeBRepBuild/TopOpeBRepBuild_PBuilder.hxx
Normal 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
|
23
src/TopOpeBRepBuild/TopOpeBRepBuild_PGTopo.hxx
Normal file
23
src/TopOpeBRepBuild/TopOpeBRepBuild_PGTopo.hxx
Normal 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
|
23
src/TopOpeBRepBuild/TopOpeBRepBuild_PWireEdgeSet.hxx
Normal file
23
src/TopOpeBRepBuild/TopOpeBRepBuild_PWireEdgeSet.hxx
Normal 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
|
@@ -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;
|
@@ -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),
|
||||
|
99
src/TopOpeBRepBuild/TopOpeBRepBuild_Pave.hxx
Normal file
99
src/TopOpeBRepBuild/TopOpeBRepBuild_Pave.hxx
Normal 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
|
@@ -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;
|
@@ -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();
|
||||
|
107
src/TopOpeBRepBuild/TopOpeBRepBuild_PaveClassifier.hxx
Normal file
107
src/TopOpeBRepBuild/TopOpeBRepBuild_PaveClassifier.hxx
Normal 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
|
@@ -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;
|
@@ -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();
|
||||
|
105
src/TopOpeBRepBuild/TopOpeBRepBuild_PaveSet.hxx
Normal file
105
src/TopOpeBRepBuild/TopOpeBRepBuild_PaveSet.hxx
Normal 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
|
@@ -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();
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
@@ -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
|
||||
|
76
src/TopOpeBRepBuild/TopOpeBRepBuild_ShapeListOfShape.hxx
Normal file
76
src/TopOpeBRepBuild/TopOpeBRepBuild_ShapeListOfShape.hxx
Normal 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
Reference in New Issue
Block a user