mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
0027525: Coding - eliminate warnings on Windows for OCCT with static type of libraries
Useless *.cxx files were removed to eliminate linker warning LNK4221. Package TopOpeBRepDS was cleaned up from old debugging routines. Merged OSD_signal_WNT.cxx into OSD_signal.cxx Class Standard_ErrorHandlerCallback was moved into the Standard_ErrorHandler class as nested class Callback Eliminated warning about unused variable.
This commit is contained in:
parent
593dfe97ea
commit
536a3cb80c
@ -1,21 +0,0 @@
|
|||||||
// Created by: Peter KURNEV
|
|
||||||
// Copyright (c) 2010-2014 OPEN CASCADE SAS
|
|
||||||
// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
|
|
||||||
// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
|
|
||||||
// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
|
||||||
//
|
|
||||||
// This 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BOPAlgo_WireEdgeSet.hxx>
|
|
||||||
#include <TopoDS_Face.hxx>
|
|
||||||
#include <TopoDS_Shape.hxx>
|
|
@ -57,7 +57,6 @@ BOPAlgo_ShellSplitter.cxx
|
|||||||
BOPAlgo_ShellSplitter.hxx
|
BOPAlgo_ShellSplitter.hxx
|
||||||
BOPAlgo_Tools.cxx
|
BOPAlgo_Tools.cxx
|
||||||
BOPAlgo_Tools.hxx
|
BOPAlgo_Tools.hxx
|
||||||
BOPAlgo_WireEdgeSet.cxx
|
|
||||||
BOPAlgo_WireEdgeSet.hxx
|
BOPAlgo_WireEdgeSet.hxx
|
||||||
BOPAlgo_WireEdgeSet.lxx
|
BOPAlgo_WireEdgeSet.lxx
|
||||||
BOPAlgo_WireSplitter.cxx
|
BOPAlgo_WireSplitter.cxx
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
// Created by: Peter KURNEV
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Bnd_Box.hxx>
|
|
||||||
#include <BOPDS_Curve.hxx>
|
|
||||||
#include <BOPDS_PaveBlock.hxx>
|
|
||||||
#include <IntTools_Curve.hxx>
|
|
@ -1,19 +0,0 @@
|
|||||||
// Created by: Peter KURNEV
|
|
||||||
// Copyright (c) 2010-2014 OPEN CASCADE SAS
|
|
||||||
// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
|
|
||||||
// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
|
|
||||||
// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
|
||||||
//
|
|
||||||
// This 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BOPDS_FaceInfo.hxx>
|
|
@ -1,19 +0,0 @@
|
|||||||
// Created by: Peter KURNEV
|
|
||||||
// Copyright (c) 2010-2014 OPEN CASCADE SAS
|
|
||||||
// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
|
|
||||||
// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
|
|
||||||
// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
|
||||||
//
|
|
||||||
// This 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BOPDS_PassKeyBoolean.hxx>
|
|
@ -1,20 +0,0 @@
|
|||||||
// Created by: Peter KURNEV
|
|
||||||
// Copyright (c) 2010-2014 OPEN CASCADE SAS
|
|
||||||
// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
|
|
||||||
// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
|
|
||||||
// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
|
||||||
//
|
|
||||||
// This 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BOPDS_PassKey.hxx>
|
|
||||||
#include <BOPDS_PassKeyMapHasher.hxx>
|
|
@ -1,17 +0,0 @@
|
|||||||
// Created by: Eugeny MALTCHIKOV
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BOPDS_Pave.hxx>
|
|
||||||
#include <BOPDS_PaveMapHasher.hxx>
|
|
@ -1,18 +0,0 @@
|
|||||||
// Created by: Peter KURNEV
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BOPDS_Point.hxx>
|
|
||||||
#include <gp_Pnt.hxx>
|
|
||||||
#include <gp_Pnt2d.hxx>
|
|
@ -1,16 +0,0 @@
|
|||||||
// Created by: Peter KURNEV
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BOPDS_Tools.hxx>
|
|
@ -1,7 +1,6 @@
|
|||||||
BOPDS_CommonBlock.cxx
|
BOPDS_CommonBlock.cxx
|
||||||
BOPDS_CommonBlock.hxx
|
BOPDS_CommonBlock.hxx
|
||||||
BOPDS_CoupleOfPaveBlocks.hxx
|
BOPDS_CoupleOfPaveBlocks.hxx
|
||||||
BOPDS_Curve.cxx
|
|
||||||
BOPDS_Curve.hxx
|
BOPDS_Curve.hxx
|
||||||
BOPDS_Curve.lxx
|
BOPDS_Curve.lxx
|
||||||
BOPDS_DataMapOfIntegerListOfPaveBlock.hxx
|
BOPDS_DataMapOfIntegerListOfPaveBlock.hxx
|
||||||
@ -13,7 +12,6 @@ BOPDS_DataMapOfShapeCoupleOfPaveBlocks.hxx
|
|||||||
BOPDS_DS.cxx
|
BOPDS_DS.cxx
|
||||||
BOPDS_DS.hxx
|
BOPDS_DS.hxx
|
||||||
BOPDS_DS.lxx
|
BOPDS_DS.lxx
|
||||||
BOPDS_FaceInfo.cxx
|
|
||||||
BOPDS_FaceInfo.hxx
|
BOPDS_FaceInfo.hxx
|
||||||
BOPDS_FaceInfo.lxx
|
BOPDS_FaceInfo.lxx
|
||||||
BOPDS_IndexedDataMapOfPaveBlockListOfInteger.hxx
|
BOPDS_IndexedDataMapOfPaveBlockListOfInteger.hxx
|
||||||
@ -40,10 +38,8 @@ BOPDS_MapOfPaveBlock.hxx
|
|||||||
BOPDS_PassKey.cxx
|
BOPDS_PassKey.cxx
|
||||||
BOPDS_PassKey.hxx
|
BOPDS_PassKey.hxx
|
||||||
BOPDS_PassKey.lxx
|
BOPDS_PassKey.lxx
|
||||||
BOPDS_PassKeyBoolean.cxx
|
|
||||||
BOPDS_PassKeyBoolean.hxx
|
BOPDS_PassKeyBoolean.hxx
|
||||||
BOPDS_PassKeyBoolean.lxx
|
BOPDS_PassKeyBoolean.lxx
|
||||||
BOPDS_PassKeyMapHasher.cxx
|
|
||||||
BOPDS_PassKeyMapHasher.hxx
|
BOPDS_PassKeyMapHasher.hxx
|
||||||
BOPDS_PassKeyMapHasher.lxx
|
BOPDS_PassKeyMapHasher.lxx
|
||||||
BOPDS_Pave.cxx
|
BOPDS_Pave.cxx
|
||||||
@ -51,13 +47,11 @@ BOPDS_Pave.hxx
|
|||||||
BOPDS_Pave.lxx
|
BOPDS_Pave.lxx
|
||||||
BOPDS_PaveBlock.cxx
|
BOPDS_PaveBlock.cxx
|
||||||
BOPDS_PaveBlock.hxx
|
BOPDS_PaveBlock.hxx
|
||||||
BOPDS_PaveMapHasher.cxx
|
|
||||||
BOPDS_PaveMapHasher.hxx
|
BOPDS_PaveMapHasher.hxx
|
||||||
BOPDS_PaveMapHasher.lxx
|
BOPDS_PaveMapHasher.lxx
|
||||||
BOPDS_PDS.hxx
|
BOPDS_PDS.hxx
|
||||||
BOPDS_PIterator.hxx
|
BOPDS_PIterator.hxx
|
||||||
BOPDS_PIteratorSI.hxx
|
BOPDS_PIteratorSI.hxx
|
||||||
BOPDS_Point.cxx
|
|
||||||
BOPDS_Point.hxx
|
BOPDS_Point.hxx
|
||||||
BOPDS_Point.lxx
|
BOPDS_Point.lxx
|
||||||
BOPDS_ShapeInfo.cxx
|
BOPDS_ShapeInfo.cxx
|
||||||
@ -65,7 +59,6 @@ BOPDS_ShapeInfo.hxx
|
|||||||
BOPDS_ShapeInfo.lxx
|
BOPDS_ShapeInfo.lxx
|
||||||
BOPDS_SubIterator.cxx
|
BOPDS_SubIterator.cxx
|
||||||
BOPDS_SubIterator.hxx
|
BOPDS_SubIterator.hxx
|
||||||
BOPDS_Tools.cxx
|
|
||||||
BOPDS_Tools.hxx
|
BOPDS_Tools.hxx
|
||||||
BOPDS_Tools.lxx
|
BOPDS_Tools.lxx
|
||||||
BOPDS_VectorOfCurve.hxx
|
BOPDS_VectorOfCurve.hxx
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
// Created by: Peter KURNEV
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BOPTools_Set.hxx>
|
|
||||||
#include <BOPTools_SetMapHasher.hxx>
|
|
@ -22,7 +22,6 @@ BOPTools_ListOfShapeSet.hxx
|
|||||||
BOPTools_MapOfSet.hxx
|
BOPTools_MapOfSet.hxx
|
||||||
BOPTools_Set.cxx
|
BOPTools_Set.cxx
|
||||||
BOPTools_Set.hxx
|
BOPTools_Set.hxx
|
||||||
BOPTools_SetMapHasher.cxx
|
|
||||||
BOPTools_SetMapHasher.hxx
|
BOPTools_SetMapHasher.hxx
|
||||||
BOPTools_SetMapHasher.lxx
|
BOPTools_SetMapHasher.lxx
|
||||||
BOPTools_ShapeSet.cxx
|
BOPTools_ShapeSet.cxx
|
||||||
|
@ -36,7 +36,6 @@
|
|||||||
#include <TopOpeBRepBuild_HBuilder.hxx>
|
#include <TopOpeBRepBuild_HBuilder.hxx>
|
||||||
#include <TopOpeBRepBuild_Tools.hxx>
|
#include <TopOpeBRepBuild_Tools.hxx>
|
||||||
#include <TopOpeBRepDS_BuildTool.hxx>
|
#include <TopOpeBRepDS_BuildTool.hxx>
|
||||||
#include <TopOpeBRepDS_DSX.hxx>
|
|
||||||
#include <TopOpeBRepDS_HDataStructure.hxx>
|
#include <TopOpeBRepDS_HDataStructure.hxx>
|
||||||
#include <TopOpeBRepTool_GeomTool.hxx>
|
#include <TopOpeBRepTool_GeomTool.hxx>
|
||||||
#include <TopOpeBRepTool_OutCurveType.hxx>
|
#include <TopOpeBRepTool_OutCurveType.hxx>
|
||||||
@ -116,10 +115,6 @@ BRepAlgo_BooleanOperation::~BRepAlgo_BooleanOperation()
|
|||||||
HDS->ChangeDS().Init();
|
HDS->ChangeDS().Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
TopOpeBRepDS_SettraceSPSX_HDS(HDS);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// fill the data Structure
|
// fill the data Structure
|
||||||
TopOpeBRep_DSFiller DSFiller;
|
TopOpeBRep_DSFiller DSFiller;
|
||||||
|
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
// Created on: 1998-02-02
|
|
||||||
// Created by: Jean Yves LEBEY
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BRepFilletAPI_LocalOperation.hxx>
|
|
||||||
#include <TopoDS_Edge.hxx>
|
|
||||||
#include <TopoDS_Vertex.hxx>
|
|
@ -1,4 +1,3 @@
|
|||||||
BRepFilletAPI_LocalOperation.cxx
|
|
||||||
BRepFilletAPI_LocalOperation.hxx
|
BRepFilletAPI_LocalOperation.hxx
|
||||||
BRepFilletAPI_MakeChamfer.cxx
|
BRepFilletAPI_MakeChamfer.cxx
|
||||||
BRepFilletAPI_MakeChamfer.hxx
|
BRepFilletAPI_MakeChamfer.hxx
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
// Created on: 1994-02-18
|
|
||||||
// Created by: Remi LEQUETTE
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <BRepPrimAPI_MakeSweep.hxx>
|
|
||||||
#include <TopoDS_Shape.hxx>
|
|
@ -16,7 +16,6 @@ BRepPrimAPI_MakeRevolution.cxx
|
|||||||
BRepPrimAPI_MakeRevolution.hxx
|
BRepPrimAPI_MakeRevolution.hxx
|
||||||
BRepPrimAPI_MakeSphere.cxx
|
BRepPrimAPI_MakeSphere.cxx
|
||||||
BRepPrimAPI_MakeSphere.hxx
|
BRepPrimAPI_MakeSphere.hxx
|
||||||
BRepPrimAPI_MakeSweep.cxx
|
|
||||||
BRepPrimAPI_MakeSweep.hxx
|
BRepPrimAPI_MakeSweep.hxx
|
||||||
BRepPrimAPI_MakeTorus.cxx
|
BRepPrimAPI_MakeTorus.cxx
|
||||||
BRepPrimAPI_MakeTorus.hxx
|
BRepPrimAPI_MakeTorus.hxx
|
||||||
|
@ -489,16 +489,8 @@ void DsgPrs::ComputeFilletRadiusPresentation( const Standard_Real /*ArrowLength*
|
|||||||
FilletCirc.SetRadius( Center.Distance( FirstPoint ) ); //***
|
FilletCirc.SetRadius( Center.Distance( FirstPoint ) ); //***
|
||||||
gp_Vec vec1( dir1 );
|
gp_Vec vec1( dir1 );
|
||||||
vec1 *= FilletCirc.Radius();
|
vec1 *= FilletCirc.Radius();
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
gp_Pnt p1 =
|
|
||||||
#endif
|
|
||||||
Center.Translated( vec1 );
|
|
||||||
gp_Vec vec2( dir2 );
|
gp_Vec vec2( dir2 );
|
||||||
vec2 *= FilletCirc.Radius();
|
vec2 *= FilletCirc.Radius();
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
gp_Pnt p2 =
|
|
||||||
#endif
|
|
||||||
Center.Translated( vec2 );
|
|
||||||
gp_Vec PosVec;
|
gp_Vec PosVec;
|
||||||
if(! Center.IsEqual( Position, Precision::Confusion() ))
|
if(! Center.IsEqual( Position, Precision::Confusion() ))
|
||||||
PosVec.SetXYZ( gp_Vec(Center, Position).XYZ() );
|
PosVec.SetXYZ( gp_Vec(Center, Position).XYZ() );
|
||||||
@ -542,9 +534,6 @@ void DsgPrs::ComputeFilletRadiusPresentation( const Standard_Real /*ArrowLength*
|
|||||||
}
|
}
|
||||||
FirstParCirc = ElCLib::Parameter( FilletCirc, FirstPoint );
|
FirstParCirc = ElCLib::Parameter( FilletCirc, FirstPoint );
|
||||||
LastParCirc = ElCLib::Parameter( FilletCirc, SecondPoint );
|
LastParCirc = ElCLib::Parameter( FilletCirc, SecondPoint );
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else //Angle equal 0 or PI or R = 0
|
else //Angle equal 0 or PI or R = 0
|
||||||
{
|
{
|
||||||
@ -552,7 +541,6 @@ void DsgPrs::ComputeFilletRadiusPresentation( const Standard_Real /*ArrowLength*
|
|||||||
EndOfArrow = BasePnt;
|
EndOfArrow = BasePnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(drawRevers)
|
if(drawRevers)
|
||||||
{
|
{
|
||||||
gp_Vec Vd(DrawPosition, EndOfArrow);
|
gp_Vec Vd(DrawPosition, EndOfArrow);
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
// Created on: 1995-07-19
|
|
||||||
// Created by: Modelistation
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Adaptor2d_Curve2d.hxx>
|
|
||||||
#include <Extrema_Curve2dTool.hxx>
|
|
||||||
#include <Geom2d_BezierCurve.hxx>
|
|
||||||
#include <Geom2d_BSplineCurve.hxx>
|
|
||||||
#include <gp_Pnt2d.hxx>
|
|
||||||
#include <gp_Vec2d.hxx>
|
|
@ -1,17 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Extrema_POnSurf.hxx>
|
|
||||||
#include <gp_Pnt.hxx>
|
|
@ -1,16 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Extrema_POnSurfParams.hxx>
|
|
||||||
#include <gp_Pnt.hxx>
|
|
@ -9,7 +9,6 @@ Extrema_CCLocFOfLocECC.hxx
|
|||||||
Extrema_CCLocFOfLocECC2d.hxx
|
Extrema_CCLocFOfLocECC2d.hxx
|
||||||
Extrema_CCLocFOfLocECC2d_0.cxx
|
Extrema_CCLocFOfLocECC2d_0.cxx
|
||||||
Extrema_CCLocFOfLocECC_0.cxx
|
Extrema_CCLocFOfLocECC_0.cxx
|
||||||
Extrema_Curve2dTool.cxx
|
|
||||||
Extrema_Curve2dTool.hxx
|
Extrema_Curve2dTool.hxx
|
||||||
Extrema_Curve2dTool.lxx
|
Extrema_Curve2dTool.lxx
|
||||||
Extrema_CurveLocator.gxx
|
Extrema_CurveLocator.gxx
|
||||||
@ -142,10 +141,8 @@ Extrema_POnCurv.hxx
|
|||||||
Extrema_POnCurv2d.hxx
|
Extrema_POnCurv2d.hxx
|
||||||
Extrema_POnCurv2d_0.cxx
|
Extrema_POnCurv2d_0.cxx
|
||||||
Extrema_POnCurv_0.cxx
|
Extrema_POnCurv_0.cxx
|
||||||
Extrema_POnSurf.cxx
|
|
||||||
Extrema_POnSurf.hxx
|
Extrema_POnSurf.hxx
|
||||||
Extrema_POnSurf.lxx
|
Extrema_POnSurf.lxx
|
||||||
Extrema_POnSurfParams.cxx
|
|
||||||
Extrema_POnSurfParams.hxx
|
Extrema_POnSurfParams.hxx
|
||||||
Extrema_POnSurfParams.lxx
|
Extrema_POnSurfParams.lxx
|
||||||
Extrema_SequenceOfPOnCurv.hxx
|
Extrema_SequenceOfPOnCurv.hxx
|
||||||
|
@ -34,6 +34,5 @@ GC_MakeTrimmedCone.cxx
|
|||||||
GC_MakeTrimmedCone.hxx
|
GC_MakeTrimmedCone.hxx
|
||||||
GC_MakeTrimmedCylinder.cxx
|
GC_MakeTrimmedCylinder.cxx
|
||||||
GC_MakeTrimmedCylinder.hxx
|
GC_MakeTrimmedCylinder.hxx
|
||||||
GC_Root.cxx
|
|
||||||
GC_Root.hxx
|
GC_Root.hxx
|
||||||
GC_Root.lxx
|
GC_Root.lxx
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <GC_Root.hxx>
|
|
@ -26,6 +26,5 @@ GCE2d_MakeSegment.cxx
|
|||||||
GCE2d_MakeSegment.hxx
|
GCE2d_MakeSegment.hxx
|
||||||
GCE2d_MakeTranslation.cxx
|
GCE2d_MakeTranslation.cxx
|
||||||
GCE2d_MakeTranslation.hxx
|
GCE2d_MakeTranslation.hxx
|
||||||
GCE2d_Root.cxx
|
|
||||||
GCE2d_Root.hxx
|
GCE2d_Root.hxx
|
||||||
GCE2d_Root.lxx
|
GCE2d_Root.lxx
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <GCE2d_Root.hxx>
|
|
@ -53,7 +53,6 @@ GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_0.cxx
|
|||||||
GeomInt_TheMultiLineOfWLApprox.hxx
|
GeomInt_TheMultiLineOfWLApprox.hxx
|
||||||
GeomInt_TheMultiLineOfWLApprox_0.cxx
|
GeomInt_TheMultiLineOfWLApprox_0.cxx
|
||||||
GeomInt_TheMultiLineToolOfWLApprox.hxx
|
GeomInt_TheMultiLineToolOfWLApprox.hxx
|
||||||
GeomInt_TheMultiLineToolOfWLApprox_0.cxx
|
|
||||||
GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx
|
GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx
|
||||||
GeomInt_ThePrmPrmSvSurfacesOfWLApprox_0.cxx
|
GeomInt_ThePrmPrmSvSurfacesOfWLApprox_0.cxx
|
||||||
GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx
|
GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
// Created on: 1995-01-27
|
|
||||||
// Created by: Jacques GOUSSARD
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
#include <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
|
||||||
|
|
||||||
#include <GeomInt_TheMultiLineOfWLApprox.hxx>
|
|
||||||
#include <ApproxInt_SvSurfaces.hxx>
|
|
||||||
|
|
||||||
|
|
||||||
#define TheMultiLine GeomInt_TheMultiLineOfWLApprox
|
|
||||||
#define TheMultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
|
|
||||||
#define TheMultiMPoint ApproxInt_SvSurfaces
|
|
||||||
#define TheMultiMPoint_hxx <ApproxInt_SvSurfaces.hxx>
|
|
||||||
#define ApproxInt_MultiLineTool GeomInt_TheMultiLineToolOfWLApprox
|
|
||||||
#define ApproxInt_MultiLineTool_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
|
|
||||||
#include <ApproxInt_MultiLineTool.gxx>
|
|
||||||
|
|
@ -38,7 +38,6 @@ HLRAlgo_PolyAlgo.lxx
|
|||||||
HLRAlgo_PolyData.cxx
|
HLRAlgo_PolyData.cxx
|
||||||
HLRAlgo_PolyData.hxx
|
HLRAlgo_PolyData.hxx
|
||||||
HLRAlgo_PolyData.lxx
|
HLRAlgo_PolyData.lxx
|
||||||
HLRAlgo_PolyHidingData.cxx
|
|
||||||
HLRAlgo_PolyHidingData.hxx
|
HLRAlgo_PolyHidingData.hxx
|
||||||
HLRAlgo_PolyHidingData.lxx
|
HLRAlgo_PolyHidingData.lxx
|
||||||
HLRAlgo_PolyInternalData.cxx
|
HLRAlgo_PolyInternalData.cxx
|
||||||
@ -47,7 +46,6 @@ HLRAlgo_PolyInternalData.lxx
|
|||||||
HLRAlgo_PolyInternalNode.cxx
|
HLRAlgo_PolyInternalNode.cxx
|
||||||
HLRAlgo_PolyInternalNode.hxx
|
HLRAlgo_PolyInternalNode.hxx
|
||||||
HLRAlgo_PolyInternalNode.lxx
|
HLRAlgo_PolyInternalNode.lxx
|
||||||
HLRAlgo_PolyInternalSegment.cxx
|
|
||||||
HLRAlgo_PolyInternalSegment.hxx
|
HLRAlgo_PolyInternalSegment.hxx
|
||||||
HLRAlgo_PolyInternalSegment.lxx
|
HLRAlgo_PolyInternalSegment.lxx
|
||||||
HLRAlgo_PolyShellData.cxx
|
HLRAlgo_PolyShellData.cxx
|
||||||
@ -56,7 +54,6 @@ HLRAlgo_PolyShellData.lxx
|
|||||||
HLRAlgo_Projector.cxx
|
HLRAlgo_Projector.cxx
|
||||||
HLRAlgo_Projector.hxx
|
HLRAlgo_Projector.hxx
|
||||||
HLRAlgo_Projector.lxx
|
HLRAlgo_Projector.lxx
|
||||||
HLRAlgo_TriangleData.cxx
|
|
||||||
HLRAlgo_TriangleData.hxx
|
HLRAlgo_TriangleData.hxx
|
||||||
HLRAlgo_TriangleData.lxx
|
HLRAlgo_TriangleData.lxx
|
||||||
HLRAlgo_WiresBlock.cxx
|
HLRAlgo_WiresBlock.cxx
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
// Created on: 1995-06-21
|
|
||||||
// Created by: Christophe MARION
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <HLRAlgo_PolyHidingData.hxx>
|
|
@ -1,18 +0,0 @@
|
|||||||
// Created on: 1996-12-03
|
|
||||||
// Created by: Christophe MARION
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <HLRAlgo_PolyInternalSegment.hxx>
|
|
@ -1,18 +0,0 @@
|
|||||||
// Created on: 1993-01-11
|
|
||||||
// Created by: Christophe MARION
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <HLRAlgo_TriangleData.hxx>
|
|
@ -22,7 +22,6 @@ HLRBRep_CInter.hxx
|
|||||||
HLRBRep_CInter_0.cxx
|
HLRBRep_CInter_0.cxx
|
||||||
HLRBRep_CLProps.hxx
|
HLRBRep_CLProps.hxx
|
||||||
HLRBRep_CLProps_0.cxx
|
HLRBRep_CLProps_0.cxx
|
||||||
HLRBRep_CLPropsATool.cxx
|
|
||||||
HLRBRep_CLPropsATool.hxx
|
HLRBRep_CLPropsATool.hxx
|
||||||
HLRBRep_CLPropsATool.lxx
|
HLRBRep_CLPropsATool.lxx
|
||||||
HLRBRep_Curve.cxx
|
HLRBRep_Curve.cxx
|
||||||
@ -67,7 +66,6 @@ HLRBRep_InternalAlgo.cxx
|
|||||||
HLRBRep_InternalAlgo.hxx
|
HLRBRep_InternalAlgo.hxx
|
||||||
HLRBRep_Intersector.cxx
|
HLRBRep_Intersector.cxx
|
||||||
HLRBRep_Intersector.hxx
|
HLRBRep_Intersector.hxx
|
||||||
HLRBRep_LineTool.cxx
|
|
||||||
HLRBRep_LineTool.hxx
|
HLRBRep_LineTool.hxx
|
||||||
HLRBRep_LineTool.lxx
|
HLRBRep_LineTool.lxx
|
||||||
HLRBRep_ListIteratorOfListOfBPnt2D.hxx
|
HLRBRep_ListIteratorOfListOfBPnt2D.hxx
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
// Created on: 1992-08-18
|
|
||||||
// Created by: Herve LEGRAND
|
|
||||||
// Copyright (c) 1992-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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <gp_Pnt2d.hxx>
|
|
||||||
#include <gp_Vec2d.hxx>
|
|
||||||
#include <HLRBRep_CLPropsATool.hxx>
|
|
@ -1,26 +0,0 @@
|
|||||||
// Created on: 1993-12-20
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Geom_BezierCurve.hxx>
|
|
||||||
#include <Geom_BSplineCurve.hxx>
|
|
||||||
#include <gp_Lin.hxx>
|
|
||||||
#include <gp_Pnt.hxx>
|
|
||||||
#include <gp_Vec.hxx>
|
|
||||||
#include <HLRBRep_LineTool.hxx>
|
|
||||||
#include <Standard_DomainError.hxx>
|
|
||||||
#include <Standard_NoSuchObject.hxx>
|
|
||||||
#include <Standard_OutOfRange.hxx>
|
|
@ -1,7 +1,6 @@
|
|||||||
IntImpParGen.cxx
|
IntImpParGen.cxx
|
||||||
IntImpParGen.hxx
|
IntImpParGen.hxx
|
||||||
IntImpParGen_ImpParTool.gxx
|
IntImpParGen_ImpParTool.gxx
|
||||||
IntImpParGen_ImpTool.cxx
|
|
||||||
IntImpParGen_ImpTool.hxx
|
IntImpParGen_ImpTool.hxx
|
||||||
IntImpParGen_Intersector.gxx
|
IntImpParGen_Intersector.gxx
|
||||||
IntImpParGen_Tool.cxx
|
IntImpParGen_Tool.cxx
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <gp_Pnt2d.hxx>
|
|
||||||
#include <gp_Vec2d.hxx>
|
|
||||||
#include <IntImpParGen_ImpTool.hxx>
|
|
@ -55,7 +55,6 @@ IntPatch_Polygo.hxx
|
|||||||
IntPatch_Polygo.lxx
|
IntPatch_Polygo.lxx
|
||||||
IntPatch_Polyhedron.cxx
|
IntPatch_Polyhedron.cxx
|
||||||
IntPatch_Polyhedron.hxx
|
IntPatch_Polyhedron.hxx
|
||||||
IntPatch_PolyhedronTool.cxx
|
|
||||||
IntPatch_PolyhedronTool.hxx
|
IntPatch_PolyhedronTool.hxx
|
||||||
IntPatch_PolyhedronTool.lxx
|
IntPatch_PolyhedronTool.lxx
|
||||||
IntPatch_PolyLine.cxx
|
IntPatch_PolyLine.cxx
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
// Created on: 1993-05-06
|
|
||||||
// Created by: Jacques GOUSSARD
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Bnd_Box.hxx>
|
|
||||||
#include <gp_Pnt.hxx>
|
|
||||||
#include <IntPatch_Polyhedron.hxx>
|
|
||||||
#include <IntPatch_PolyhedronTool.hxx>
|
|
||||||
#include <Standard_OutOfRange.hxx>
|
|
@ -1,13 +1,11 @@
|
|||||||
IntSurf.cxx
|
IntSurf.cxx
|
||||||
IntSurf.hxx
|
IntSurf.hxx
|
||||||
IntSurf_Allocator.hxx
|
IntSurf_Allocator.hxx
|
||||||
IntSurf_Couple.cxx
|
|
||||||
IntSurf_Couple.hxx
|
IntSurf_Couple.hxx
|
||||||
IntSurf_Couple.lxx
|
IntSurf_Couple.lxx
|
||||||
IntSurf_InteriorPoint.cxx
|
IntSurf_InteriorPoint.cxx
|
||||||
IntSurf_InteriorPoint.hxx
|
IntSurf_InteriorPoint.hxx
|
||||||
IntSurf_InteriorPoint.lxx
|
IntSurf_InteriorPoint.lxx
|
||||||
IntSurf_InteriorPointTool.cxx
|
|
||||||
IntSurf_InteriorPointTool.hxx
|
IntSurf_InteriorPointTool.hxx
|
||||||
IntSurf_InteriorPointTool.lxx
|
IntSurf_InteriorPointTool.lxx
|
||||||
IntSurf_LineOn2S.cxx
|
IntSurf_LineOn2S.cxx
|
||||||
@ -18,7 +16,6 @@ IntSurf_ListOfPntOn2S.hxx
|
|||||||
IntSurf_PathPoint.cxx
|
IntSurf_PathPoint.cxx
|
||||||
IntSurf_PathPoint.hxx
|
IntSurf_PathPoint.hxx
|
||||||
IntSurf_PathPoint.lxx
|
IntSurf_PathPoint.lxx
|
||||||
IntSurf_PathPointTool.cxx
|
|
||||||
IntSurf_PathPointTool.hxx
|
IntSurf_PathPointTool.hxx
|
||||||
IntSurf_PathPointTool.lxx
|
IntSurf_PathPointTool.lxx
|
||||||
IntSurf_PntOn2S.cxx
|
IntSurf_PntOn2S.cxx
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <IntSurf_Couple.hxx>
|
|
@ -1,17 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <IntSurf_InteriorPoint.hxx>
|
|
||||||
#include <IntSurf_InteriorPointTool.hxx>
|
|
@ -1,19 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <IntSurf_PathPoint.hxx>
|
|
||||||
#include <IntSurf_PathPointTool.hxx>
|
|
||||||
#include <Standard_OutOfRange.hxx>
|
|
||||||
#include <StdFail_UndefinedDerivative.hxx>
|
|
@ -27,7 +27,6 @@ IntTools_CurveRangeLocalizeData.lxx
|
|||||||
IntTools_CurveRangeSample.cxx
|
IntTools_CurveRangeSample.cxx
|
||||||
IntTools_CurveRangeSample.hxx
|
IntTools_CurveRangeSample.hxx
|
||||||
IntTools_CurveRangeSample.lxx
|
IntTools_CurveRangeSample.lxx
|
||||||
IntTools_CurveRangeSampleMapHasher.cxx
|
|
||||||
IntTools_CurveRangeSampleMapHasher.hxx
|
IntTools_CurveRangeSampleMapHasher.hxx
|
||||||
IntTools_CurveRangeSampleMapHasher.lxx
|
IntTools_CurveRangeSampleMapHasher.lxx
|
||||||
IntTools_DataMapIteratorOfDataMapOfCurveSampleBox.hxx
|
IntTools_DataMapIteratorOfDataMapOfCurveSampleBox.hxx
|
||||||
@ -78,7 +77,6 @@ IntTools_SurfaceRangeLocalizeData.lxx
|
|||||||
IntTools_SurfaceRangeSample.cxx
|
IntTools_SurfaceRangeSample.cxx
|
||||||
IntTools_SurfaceRangeSample.hxx
|
IntTools_SurfaceRangeSample.hxx
|
||||||
IntTools_SurfaceRangeSample.lxx
|
IntTools_SurfaceRangeSample.lxx
|
||||||
IntTools_SurfaceRangeSampleMapHasher.cxx
|
|
||||||
IntTools_SurfaceRangeSampleMapHasher.hxx
|
IntTools_SurfaceRangeSampleMapHasher.hxx
|
||||||
IntTools_SurfaceRangeSampleMapHasher.lxx
|
IntTools_SurfaceRangeSampleMapHasher.lxx
|
||||||
IntTools_Tools.cxx
|
IntTools_Tools.cxx
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
// Created on: 2005-10-14
|
|
||||||
// Created by: Mikhail KLOKOV
|
|
||||||
// Copyright (c) 2005-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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <IntTools_CurveRangeSample.hxx>
|
|
||||||
#include <IntTools_CurveRangeSampleMapHasher.hxx>
|
|
@ -1,18 +0,0 @@
|
|||||||
// Created on: 2005-10-14
|
|
||||||
// Created by: Mikhail KLOKOV
|
|
||||||
// Copyright (c) 2005-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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <IntTools_SurfaceRangeSample.hxx>
|
|
||||||
#include <IntTools_SurfaceRangeSampleMapHasher.hxx>
|
|
@ -41,7 +41,6 @@ LocOpe_Operation.hxx
|
|||||||
LocOpe_Pipe.cxx
|
LocOpe_Pipe.cxx
|
||||||
LocOpe_Pipe.hxx
|
LocOpe_Pipe.hxx
|
||||||
LocOpe_Pipe.lxx
|
LocOpe_Pipe.lxx
|
||||||
LocOpe_PntFace.cxx
|
|
||||||
LocOpe_PntFace.hxx
|
LocOpe_PntFace.hxx
|
||||||
LocOpe_PntFace.lxx
|
LocOpe_PntFace.lxx
|
||||||
LocOpe_Prism.cxx
|
LocOpe_Prism.cxx
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
// Created on: 1995-05-29
|
|
||||||
// Created by: Jacques GOUSSARD
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <gp_Pnt.hxx>
|
|
||||||
#include <LocOpe_PntFace.hxx>
|
|
||||||
#include <TopoDS_Face.hxx>
|
|
@ -21,7 +21,6 @@ MAT2d_DataMapOfIntegerConnexion.hxx
|
|||||||
MAT2d_DataMapOfIntegerPnt2d.hxx
|
MAT2d_DataMapOfIntegerPnt2d.hxx
|
||||||
MAT2d_DataMapOfIntegerSequenceOfConnexion.hxx
|
MAT2d_DataMapOfIntegerSequenceOfConnexion.hxx
|
||||||
MAT2d_DataMapOfIntegerVec2d.hxx
|
MAT2d_DataMapOfIntegerVec2d.hxx
|
||||||
MAT2d_MapBiIntHasher.cxx
|
|
||||||
MAT2d_MapBiIntHasher.hxx
|
MAT2d_MapBiIntHasher.hxx
|
||||||
MAT2d_MapBiIntHasher.lxx
|
MAT2d_MapBiIntHasher.lxx
|
||||||
MAT2d_Mat2d.cxx
|
MAT2d_Mat2d.cxx
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
// Created on: 1993-11-19
|
|
||||||
// Created by: Yves FRICAUD
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <MAT2d_BiInt.hxx>
|
|
||||||
#include <MAT2d_MapBiIntHasher.hxx>
|
|
@ -78,7 +78,6 @@ OSD_SIGINT.hxx
|
|||||||
OSD_SIGKILL.hxx
|
OSD_SIGKILL.hxx
|
||||||
OSD_signal.cxx
|
OSD_signal.cxx
|
||||||
OSD_Signal.hxx
|
OSD_Signal.hxx
|
||||||
OSD_signal_WNT.cxx
|
|
||||||
OSD_SIGQUIT.hxx
|
OSD_SIGQUIT.hxx
|
||||||
OSD_SIGSEGV.hxx
|
OSD_SIGSEGV.hxx
|
||||||
OSD_SIGSYS.hxx
|
OSD_SIGSYS.hxx
|
||||||
|
@ -13,8 +13,579 @@
|
|||||||
|
|
||||||
|
|
||||||
#include <OSD.hxx>
|
#include <OSD.hxx>
|
||||||
|
#include <OSD_Exception_CTRL_BREAK.hxx>
|
||||||
|
#include <Standard_DivideByZero.hxx>
|
||||||
|
#include <Standard_Overflow.hxx>
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifdef _WIN32
|
||||||
|
//---------------------------- Windows NT System --------------------------------
|
||||||
|
|
||||||
|
#define STRICT
|
||||||
|
#ifdef NOUSER
|
||||||
|
#undef NOUSER
|
||||||
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
#ifndef STATUS_FLOAT_MULTIPLE_FAULTS
|
||||||
|
// <ntstatus.h>
|
||||||
|
#define STATUS_FLOAT_MULTIPLE_FAULTS (0xC00002B4L)
|
||||||
|
#define STATUS_FLOAT_MULTIPLE_TRAPS (0xC00002B5L)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <OSD_Exception_ACCESS_VIOLATION.hxx>
|
||||||
|
#include <OSD_Exception_ARRAY_BOUNDS_EXCEEDED.hxx>
|
||||||
|
#include <OSD_Exception_ILLEGAL_INSTRUCTION.hxx>
|
||||||
|
#include <OSD_Exception_IN_PAGE_ERROR.hxx>
|
||||||
|
#include <OSD_Exception_INT_DIVIDE_BY_ZERO.hxx>
|
||||||
|
#include <OSD_Exception_INT_OVERFLOW.hxx>
|
||||||
|
#include <OSD_Exception_INVALID_DISPOSITION.hxx>
|
||||||
|
#include <OSD_Exception_NONCONTINUABLE_EXCEPTION.hxx>
|
||||||
|
#include <OSD_Exception_PRIV_INSTRUCTION.hxx>
|
||||||
|
#include <OSD_Exception_STACK_OVERFLOW.hxx>
|
||||||
|
#include <OSD_Exception_STATUS_NO_MEMORY.hxx>
|
||||||
|
|
||||||
|
#include <OSD_Environment.hxx>
|
||||||
|
#include <Standard_Underflow.hxx>
|
||||||
|
#include <Standard_ProgramError.hxx>
|
||||||
|
#include <Standard_Mutex.hxx>
|
||||||
|
|
||||||
|
#include <OSD_WNT_1.hxx>
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#include <eh.h>
|
||||||
|
#include <malloc.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <process.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <float.h>
|
||||||
|
|
||||||
|
static Standard_Boolean fMsgBox;
|
||||||
|
static Standard_Boolean fFltExceptions;
|
||||||
|
static Standard_Boolean fDbgLoaded;
|
||||||
|
static Standard_Boolean fCtrlBrk;
|
||||||
|
|
||||||
|
// used to forbid simultaneous execution of setting / executing handlers
|
||||||
|
static Standard_Mutex THE_SIGNAL_MUTEX;
|
||||||
|
|
||||||
|
static LONG __fastcall _osd_raise ( DWORD, LPSTR );
|
||||||
|
static BOOL WINAPI _osd_ctrl_break_handler ( DWORD );
|
||||||
|
|
||||||
|
static LONG _osd_debug ( void );
|
||||||
|
|
||||||
|
//# define _OSD_FPX ( _EM_INVALID | _EM_DENORMAL | _EM_ZERODIVIDE | _EM_OVERFLOW | _EM_UNDERFLOW )
|
||||||
|
# define _OSD_FPX ( _EM_INVALID | _EM_DENORMAL | _EM_ZERODIVIDE | _EM_OVERFLOW )
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : CallHandler
|
||||||
|
//purpose :
|
||||||
|
//=======================================================================
|
||||||
|
static LONG CallHandler (DWORD dwExceptionCode,
|
||||||
|
ptrdiff_t ExceptionInformation1,
|
||||||
|
ptrdiff_t ExceptionInformation0)
|
||||||
|
{
|
||||||
|
|
||||||
|
#if !defined(__CYGWIN32__) && !defined(__MINGW32__)
|
||||||
|
|
||||||
|
Standard_Mutex::Sentry aSentry (THE_SIGNAL_MUTEX); // lock the mutex to prevent simultaneous handling
|
||||||
|
static char buffer[ 2048 ];
|
||||||
|
int flterr = 0;
|
||||||
|
|
||||||
|
buffer[0] = '\0' ;
|
||||||
|
|
||||||
|
// cout << "CallHandler " << dwExceptionCode << endl ;
|
||||||
|
switch ( dwExceptionCode ) {
|
||||||
|
case EXCEPTION_FLT_DENORMAL_OPERAND:
|
||||||
|
// cout << "CallHandler : EXCEPTION_FLT_DENORMAL_OPERAND:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "FLT DENORMAL OPERAND" );
|
||||||
|
flterr = 1 ;
|
||||||
|
break ;
|
||||||
|
case EXCEPTION_FLT_DIVIDE_BY_ZERO:
|
||||||
|
// cout << "CallHandler : EXCEPTION_FLT_DIVIDE_BY_ZERO:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "FLT DIVIDE BY ZERO" );
|
||||||
|
flterr = 1 ;
|
||||||
|
break ;
|
||||||
|
case EXCEPTION_FLT_INEXACT_RESULT:
|
||||||
|
// cout << "CallHandler : EXCEPTION_FLT_INEXACT_RESULT:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "FLT INEXACT RESULT" );
|
||||||
|
flterr = 1 ;
|
||||||
|
break ;
|
||||||
|
case EXCEPTION_FLT_INVALID_OPERATION:
|
||||||
|
// cout << "CallHandler : EXCEPTION_FLT_INVALID_OPERATION:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "FLT INVALID OPERATION" );
|
||||||
|
flterr = 1 ;
|
||||||
|
break ;
|
||||||
|
case EXCEPTION_FLT_OVERFLOW:
|
||||||
|
// cout << "CallHandler : EXCEPTION_FLT_OVERFLOW:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "FLT OVERFLOW" );
|
||||||
|
flterr = 1 ;
|
||||||
|
break ;
|
||||||
|
case EXCEPTION_FLT_STACK_CHECK:
|
||||||
|
// cout << "CallHandler : EXCEPTION_FLT_STACK_CHECK:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "FLT STACK CHECK" );
|
||||||
|
flterr = 1 ;
|
||||||
|
break ;
|
||||||
|
case EXCEPTION_FLT_UNDERFLOW:
|
||||||
|
// cout << "CallHandler : EXCEPTION_FLT_UNDERFLOW:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "FLT UNDERFLOW" );
|
||||||
|
flterr = 1 ;
|
||||||
|
break ;
|
||||||
|
case STATUS_FLOAT_MULTIPLE_TRAPS:
|
||||||
|
// cout << "CallHandler : EXCEPTION_FLT_UNDERFLOW:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "FLT MULTIPLE TRAPS (possible overflow in conversion of double to integer)" );
|
||||||
|
flterr = 1 ;
|
||||||
|
break ;
|
||||||
|
case STATUS_FLOAT_MULTIPLE_FAULTS:
|
||||||
|
// cout << "CallHandler : EXCEPTION_FLT_UNDERFLOW:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "FLT MULTIPLE FAULTS" );
|
||||||
|
flterr = 1 ;
|
||||||
|
break ;
|
||||||
|
case STATUS_NO_MEMORY:
|
||||||
|
// cout << "CallHandler : STATUS_NO_MEMORY:" << endl ;
|
||||||
|
OSD_Exception_STATUS_NO_MEMORY ::
|
||||||
|
Raise ( "MEMORY ALLOCATION ERROR ( no room in the process heap )" );
|
||||||
|
case EXCEPTION_ACCESS_VIOLATION:
|
||||||
|
// cout << "CallHandler : EXCEPTION_ACCESS_VIOLATION:" << endl ;
|
||||||
|
wsprintf ( buffer, "%s%s%s0x%.8p%s%s%s", "ACCESS VIOLATION",
|
||||||
|
fMsgBox ? "\n" : " ", "at address ",
|
||||||
|
ExceptionInformation1 ,
|
||||||
|
" during '",
|
||||||
|
ExceptionInformation0 ? "WRITE" : "READ",
|
||||||
|
"' operation");
|
||||||
|
break;
|
||||||
|
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
|
||||||
|
// cout << "CallHandler : EXCEPTION_ARRAY_BOUNDS_EXCEEDED:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "ARRAY BOUNDS EXCEEDED" );
|
||||||
|
break;
|
||||||
|
case EXCEPTION_DATATYPE_MISALIGNMENT:
|
||||||
|
// cout << "CallHandler : EXCEPTION_DATATYPE_MISALIGNMENT:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "DATATYPE MISALIGNMENT" );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
||||||
|
// cout << "CallHandler : EXCEPTION_ILLEGAL_INSTRUCTION:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "ILLEGAL INSTRUCTION" );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EXCEPTION_IN_PAGE_ERROR:
|
||||||
|
// cout << "CallHandler : EXCEPTION_IN_PAGE_ERROR:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "IN_PAGE ERROR" );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EXCEPTION_INT_DIVIDE_BY_ZERO:
|
||||||
|
// cout << "CallHandler : EXCEPTION_INT_DIVIDE_BY_ZERO:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "INTEGER DIVISION BY ZERO" );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EXCEPTION_INT_OVERFLOW:
|
||||||
|
// cout << "CallHandler : EXCEPTION_INT_OVERFLOW:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "INTEGER OVERFLOW" );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EXCEPTION_INVALID_DISPOSITION:
|
||||||
|
// cout << "CallHandler : EXCEPTION_INVALID_DISPOSITION:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "INVALID DISPOSITION" );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EXCEPTION_NONCONTINUABLE_EXCEPTION:
|
||||||
|
// cout << "CallHandler : EXCEPTION_NONCONTINUABLE_EXCEPTION:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "NONCONTINUABLE EXCEPTION" );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EXCEPTION_PRIV_INSTRUCTION:
|
||||||
|
// cout << "CallHandler : EXCEPTION_PRIV_INSTRUCTION:" << endl ;
|
||||||
|
lstrcpyA ( buffer, "PRIVELEGED INSTRUCTION ENCOUNTERED" );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EXCEPTION_STACK_OVERFLOW:
|
||||||
|
// cout << "CallHandler : EXCEPTION_STACK_OVERFLOW:" << endl ;
|
||||||
|
#if defined( _MSC_VER ) && ( _MSC_VER >= 1300 )
|
||||||
|
// try recovering from stack overflow: available in MS VC++ 7.0
|
||||||
|
if (!_resetstkoflw())
|
||||||
|
lstrcpyA ( buffer, "Unrecoverable STACK OVERFLOW" );
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
lstrcpyA ( buffer, "STACK OVERFLOW" );
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
wsprintf( buffer, "unknown exception code 0x%x, params 0x%p 0x%p",
|
||||||
|
dwExceptionCode, ExceptionInformation1, ExceptionInformation0 );
|
||||||
|
|
||||||
|
} // end switch
|
||||||
|
|
||||||
|
// provide message to the user with possibility to stop
|
||||||
|
int idx = lstrlenA ( buffer );
|
||||||
|
if ( idx && fMsgBox && dwExceptionCode != EXCEPTION_NONCONTINUABLE_EXCEPTION ) {
|
||||||
|
// reset FP operations before message box, otherwise it may fail to show up
|
||||||
|
_fpreset();
|
||||||
|
_clearfp();
|
||||||
|
|
||||||
|
MessageBeep ( MB_ICONHAND );
|
||||||
|
int aChoice = ::MessageBox (0, buffer, "OCCT Exception Handler", MB_ABORTRETRYIGNORE | MB_ICONSTOP);
|
||||||
|
if (aChoice == IDRETRY)
|
||||||
|
{
|
||||||
|
_osd_debug();
|
||||||
|
DebugBreak();
|
||||||
|
} else if (aChoice == IDABORT)
|
||||||
|
exit(0xFFFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
// reset FPE state
|
||||||
|
if ( flterr ) {
|
||||||
|
if ( !fFltExceptions ) return EXCEPTION_EXECUTE_HANDLER;
|
||||||
|
_fpreset () ;
|
||||||
|
_clearfp() ;
|
||||||
|
_controlfp ( 0, _OSD_FPX ) ; // JR add :
|
||||||
|
// cout << "OSD::WntHandler _controlfp( 0, _OSD_FPX ) " << hex << _controlfp(0,0) << dec << endl ;
|
||||||
|
}
|
||||||
|
return _osd_raise ( dwExceptionCode, buffer );
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : SIGWntHandler
|
||||||
|
//purpose : Will only be used if user calls ::raise() function with
|
||||||
|
// signal type set in OSD::SetSignal() - SIGSEGV, SIGFPE, SIGILL
|
||||||
|
// (the latter will likely be removed in the future)
|
||||||
|
//=======================================================================
|
||||||
|
static void SIGWntHandler (int signum, int sub_code)
|
||||||
|
{
|
||||||
|
#if !defined(__CYGWIN32__) && !defined(__MINGW32__)
|
||||||
|
Standard_Mutex::Sentry aSentry (THE_SIGNAL_MUTEX); // lock the mutex to prevent simultaneous handling
|
||||||
|
switch( signum ) {
|
||||||
|
case SIGFPE :
|
||||||
|
if ( signal( signum , (void(*)(int))SIGWntHandler ) == SIG_ERR )
|
||||||
|
cout << "signal error" << endl ;
|
||||||
|
switch( sub_code ) {
|
||||||
|
case _FPE_INVALID :
|
||||||
|
CallHandler( EXCEPTION_FLT_INVALID_OPERATION ,0,0) ;
|
||||||
|
break ;
|
||||||
|
case _FPE_DENORMAL :
|
||||||
|
CallHandler( EXCEPTION_FLT_DENORMAL_OPERAND ,0,0) ;
|
||||||
|
break ;
|
||||||
|
case _FPE_ZERODIVIDE :
|
||||||
|
CallHandler( EXCEPTION_FLT_DIVIDE_BY_ZERO ,0,0) ;
|
||||||
|
break ;
|
||||||
|
case _FPE_OVERFLOW :
|
||||||
|
CallHandler( EXCEPTION_FLT_OVERFLOW ,0,0) ;
|
||||||
|
break ;
|
||||||
|
case _FPE_UNDERFLOW :
|
||||||
|
CallHandler( EXCEPTION_FLT_UNDERFLOW ,0,0) ;
|
||||||
|
break ;
|
||||||
|
case _FPE_INEXACT :
|
||||||
|
CallHandler( EXCEPTION_FLT_INEXACT_RESULT ,0,0) ;
|
||||||
|
break ;
|
||||||
|
default:
|
||||||
|
cout << "SIGWntHandler(default) -> Standard_NumericError::Raise(\"Floating Point Error\");" << endl;
|
||||||
|
Standard_NumericError::Raise("Floating Point Error");
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
break ;
|
||||||
|
case SIGSEGV :
|
||||||
|
if ( signal( signum, (void(*)(int))SIGWntHandler ) == SIG_ERR )
|
||||||
|
cout << "signal error" << endl ;
|
||||||
|
CallHandler( EXCEPTION_ACCESS_VIOLATION ,0,0) ;
|
||||||
|
break ;
|
||||||
|
case SIGILL :
|
||||||
|
if ( signal( signum, (void(*)(int))SIGWntHandler ) == SIG_ERR )
|
||||||
|
cout << "signal error" << endl ;
|
||||||
|
CallHandler( EXCEPTION_ILLEGAL_INSTRUCTION ,0,0) ;
|
||||||
|
break ;
|
||||||
|
default:
|
||||||
|
cout << "SIGWntHandler unexpected signal : " << signum << endl ;
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
DebugBreak ();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : TranslateSE
|
||||||
|
//purpose : Translate Structural Exceptions into C++ exceptions
|
||||||
|
// Will be used when user's code is compiled with /EHa option
|
||||||
|
//=======================================================================
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// If this file compiled with the default MSVC options for exception
|
||||||
|
// handling (/GX or /EHsc) then the following warning is issued:
|
||||||
|
// warning C4535: calling _set_se_translator() requires /EHa
|
||||||
|
// However it is correctly inserted and used when user's code compiled with /EHa.
|
||||||
|
// So, here we disable the warning.
|
||||||
|
#pragma warning (disable:4535)
|
||||||
|
|
||||||
|
static void TranslateSE( unsigned int theCode, EXCEPTION_POINTERS* theExcPtr )
|
||||||
|
{
|
||||||
|
Standard_Mutex::Sentry aSentry (THE_SIGNAL_MUTEX); // lock the mutex to prevent simultaneous handling
|
||||||
|
ptrdiff_t info1 = 0, info0 = 0;
|
||||||
|
if ( theExcPtr ) {
|
||||||
|
info1 = theExcPtr->ExceptionRecord->ExceptionInformation[1];
|
||||||
|
info0 = theExcPtr->ExceptionRecord->ExceptionInformation[0];
|
||||||
|
}
|
||||||
|
CallHandler(theCode, info1, info0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : WntHandler
|
||||||
|
//purpose : Will be used when user's code is compiled with /EHs
|
||||||
|
// option and unless user sets his own exception handler with
|
||||||
|
// ::SetUnhandledExceptionFilter().
|
||||||
|
//=======================================================================
|
||||||
|
static LONG WINAPI WntHandler (EXCEPTION_POINTERS *lpXP)
|
||||||
|
{
|
||||||
|
DWORD dwExceptionCode = lpXP->ExceptionRecord->ExceptionCode;
|
||||||
|
|
||||||
|
return CallHandler (dwExceptionCode,
|
||||||
|
lpXP->ExceptionRecord->ExceptionInformation[1],
|
||||||
|
lpXP->ExceptionRecord->ExceptionInformation[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : SetSignal
|
||||||
|
//purpose :
|
||||||
|
//=======================================================================
|
||||||
|
void OSD::SetSignal (const Standard_Boolean theFloatingSignal)
|
||||||
|
{
|
||||||
|
#if !defined(__CYGWIN32__) && !defined(__MINGW32__)
|
||||||
|
Standard_Mutex::Sentry aSentry (THE_SIGNAL_MUTEX); // lock the mutex to prevent simultaneous handling
|
||||||
|
LPTOP_LEVEL_EXCEPTION_FILTER aPreviousFilter;
|
||||||
|
|
||||||
|
OSD_Environment env (TEXT("CSF_DEBUG_MODE"));
|
||||||
|
TCollection_AsciiString val = env.Value();
|
||||||
|
if (!env.Failed())
|
||||||
|
{
|
||||||
|
cout << "Environment variable CSF_DEBUG_MODE setted.\n";
|
||||||
|
fMsgBox = Standard_True;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fMsgBox = Standard_False;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set exception handler (ignored when running under debugger). It will be used in most cases
|
||||||
|
// when user's code is compiled with /EHs
|
||||||
|
// Replaces the existing top-level exception filter for all existing and all future threads
|
||||||
|
// in the calling process
|
||||||
|
aPreviousFilter = ::SetUnhandledExceptionFilter (/*(LPTOP_LEVEL_EXCEPTION_FILTER)*/ WntHandler);
|
||||||
|
|
||||||
|
// Signal handlers will only be used when the method ::raise() will be used
|
||||||
|
// Handlers must be set for every thread
|
||||||
|
if (signal (SIGSEGV, (void(*)(int))SIGWntHandler) == SIG_ERR)
|
||||||
|
cout << "signal(OSD::SetSignal) error\n";
|
||||||
|
if (signal (SIGFPE, (void(*)(int))SIGWntHandler) == SIG_ERR)
|
||||||
|
cout << "signal(OSD::SetSignal) error\n";
|
||||||
|
if (signal (SIGILL, (void(*)(int))SIGWntHandler) == SIG_ERR)
|
||||||
|
cout << "signal(OSD::SetSignal) error\n";
|
||||||
|
|
||||||
|
// Set Ctrl-C and Ctrl-Break handler
|
||||||
|
fCtrlBrk = Standard_False;
|
||||||
|
SetConsoleCtrlHandler (&_osd_ctrl_break_handler, TRUE);
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// _se_translator_function pOldSeFunc =
|
||||||
|
_set_se_translator (TranslateSE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
fFltExceptions = theFloatingSignal;
|
||||||
|
if (theFloatingSignal)
|
||||||
|
{
|
||||||
|
_controlfp (0, _OSD_FPX); // JR add :
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_controlfp (_OSD_FPX, _OSD_FPX); // JR add :
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
} // end OSD :: SetSignal
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
//==== ControlBreak
|
||||||
|
//============================================================================
|
||||||
|
void OSD::ControlBreak () {
|
||||||
|
if ( fCtrlBrk ) {
|
||||||
|
fCtrlBrk = Standard_False;
|
||||||
|
OSD_Exception_CTRL_BREAK :: Raise ( TEXT( "*** INTERRUPT ***" ) );
|
||||||
|
}
|
||||||
|
} // end OSD :: ControlBreak
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
//==== _osd_ctrl_break_handler
|
||||||
|
//============================================================================
|
||||||
|
static BOOL WINAPI _osd_ctrl_break_handler ( DWORD dwCode ) {
|
||||||
|
if ( dwCode == CTRL_C_EVENT || dwCode == CTRL_BREAK_EVENT ) {
|
||||||
|
MessageBeep ( MB_ICONEXCLAMATION );
|
||||||
|
fCtrlBrk = Standard_True;
|
||||||
|
} else
|
||||||
|
exit ( 254 );
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
} // end _osd_ctrl_break_handler
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
//==== _osd_raise
|
||||||
|
//============================================================================
|
||||||
|
static LONG __fastcall _osd_raise ( DWORD dwCode, LPSTR msg )
|
||||||
|
{
|
||||||
|
if (msg[0] == '\x03') ++msg;
|
||||||
|
|
||||||
|
switch (dwCode)
|
||||||
|
{
|
||||||
|
case EXCEPTION_ACCESS_VIOLATION:
|
||||||
|
OSD_Exception_ACCESS_VIOLATION::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
|
||||||
|
OSD_Exception_ARRAY_BOUNDS_EXCEEDED::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_DATATYPE_MISALIGNMENT:
|
||||||
|
Standard_ProgramError::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
||||||
|
OSD_Exception_ILLEGAL_INSTRUCTION::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_IN_PAGE_ERROR:
|
||||||
|
OSD_Exception_IN_PAGE_ERROR::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_INT_DIVIDE_BY_ZERO:
|
||||||
|
Standard_DivideByZero::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_INT_OVERFLOW:
|
||||||
|
OSD_Exception_INT_OVERFLOW::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_INVALID_DISPOSITION:
|
||||||
|
OSD_Exception_INVALID_DISPOSITION::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_NONCONTINUABLE_EXCEPTION:
|
||||||
|
OSD_Exception_NONCONTINUABLE_EXCEPTION::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_PRIV_INSTRUCTION:
|
||||||
|
OSD_Exception_PRIV_INSTRUCTION::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_STACK_OVERFLOW:
|
||||||
|
OSD_Exception_STACK_OVERFLOW::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_FLT_DIVIDE_BY_ZERO:
|
||||||
|
Standard_DivideByZero::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_FLT_STACK_CHECK:
|
||||||
|
case EXCEPTION_FLT_OVERFLOW:
|
||||||
|
Standard_Overflow::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_FLT_UNDERFLOW:
|
||||||
|
Standard_Underflow::Raise (msg);
|
||||||
|
break;
|
||||||
|
case EXCEPTION_FLT_INVALID_OPERATION:
|
||||||
|
case EXCEPTION_FLT_DENORMAL_OPERAND:
|
||||||
|
case EXCEPTION_FLT_INEXACT_RESULT:
|
||||||
|
case STATUS_FLOAT_MULTIPLE_TRAPS:
|
||||||
|
case STATUS_FLOAT_MULTIPLE_FAULTS:
|
||||||
|
Standard_NumericError::Raise (msg);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
} // end switch
|
||||||
|
return EXCEPTION_EXECUTE_HANDLER;
|
||||||
|
} // end _osd_raise
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
//==== _osd_debug
|
||||||
|
//============================================================================
|
||||||
|
#if defined(__CYGWIN32__) || defined(__MINGW32__)
|
||||||
|
#define __try
|
||||||
|
#define __finally
|
||||||
|
#define __leave return 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
LONG _osd_debug ( void ) {
|
||||||
|
|
||||||
|
LONG action ;
|
||||||
|
|
||||||
|
if ( !fDbgLoaded ) {
|
||||||
|
|
||||||
|
HKEY hKey = NULL;
|
||||||
|
HANDLE hEvent = INVALID_HANDLE_VALUE;
|
||||||
|
DWORD dwKeyType;
|
||||||
|
DWORD dwValueLen;
|
||||||
|
TCHAR keyValue[ MAX_PATH ];
|
||||||
|
TCHAR cmdLine[ MAX_PATH ];
|
||||||
|
SECURITY_ATTRIBUTES sa;
|
||||||
|
PROCESS_INFORMATION pi;
|
||||||
|
STARTUPINFO si;
|
||||||
|
|
||||||
|
__try {
|
||||||
|
|
||||||
|
if ( RegOpenKey (
|
||||||
|
HKEY_LOCAL_MACHINE,
|
||||||
|
TEXT( "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug" ),
|
||||||
|
&hKey
|
||||||
|
) != ERROR_SUCCESS
|
||||||
|
) __leave;
|
||||||
|
|
||||||
|
dwValueLen = sizeof ( keyValue );
|
||||||
|
|
||||||
|
if ( RegQueryValueEx (
|
||||||
|
hKey, TEXT( "Debugger" ), NULL, &dwKeyType, ( unsigned char* )keyValue, &dwValueLen
|
||||||
|
) != ERROR_SUCCESS
|
||||||
|
) __leave;
|
||||||
|
|
||||||
|
sa.nLength = sizeof ( SECURITY_ATTRIBUTES );
|
||||||
|
sa.lpSecurityDescriptor = NULL;
|
||||||
|
sa.bInheritHandle = TRUE;
|
||||||
|
|
||||||
|
if ( ( hEvent = CreateEvent ( &sa, TRUE, FALSE, NULL ) ) == NULL ) __leave;
|
||||||
|
|
||||||
|
wsprintf ( cmdLine, keyValue, GetCurrentProcessId (), hEvent );
|
||||||
|
|
||||||
|
ZeroMemory ( &si, sizeof ( STARTUPINFO ) );
|
||||||
|
|
||||||
|
si.cb = sizeof ( STARTUPINFO );
|
||||||
|
si.dwFlags = STARTF_FORCEONFEEDBACK;
|
||||||
|
|
||||||
|
// cout << "_osd_debug -> CreateProcess" << endl ;
|
||||||
|
if ( !CreateProcess (
|
||||||
|
NULL, cmdLine, NULL, NULL, TRUE, CREATE_DEFAULT_ERROR_MODE,
|
||||||
|
NULL, NULL, &si, &pi
|
||||||
|
)
|
||||||
|
) __leave;
|
||||||
|
|
||||||
|
// cout << "_osd_debug -> WaitForSingleObject " << endl ;
|
||||||
|
WaitForSingleObject ( hEvent, INFINITE );
|
||||||
|
// cout << "_osd_debug <- WaitForSingleObject -> CloseHandle " << endl ;
|
||||||
|
|
||||||
|
CloseHandle ( pi.hProcess );
|
||||||
|
CloseHandle ( pi.hThread );
|
||||||
|
|
||||||
|
// cout << "_osd_debug fDbgLoaded " << endl ;
|
||||||
|
fDbgLoaded = TRUE;
|
||||||
|
|
||||||
|
} // end __try
|
||||||
|
|
||||||
|
__finally {
|
||||||
|
|
||||||
|
// cout << "_osd_debug -> CloseHandle(hKey) " << endl ;
|
||||||
|
if ( hKey != INVALID_HANDLE_VALUE ) CloseHandle ( hKey );
|
||||||
|
// cout << "_osd_debug -> CloseHandle(hEvent) " << endl ;
|
||||||
|
if ( hEvent != INVALID_HANDLE_VALUE ) CloseHandle ( hEvent );
|
||||||
|
// cout << "_osd_debug end __finally " << endl ;
|
||||||
|
|
||||||
|
} // end __finally
|
||||||
|
|
||||||
|
} /* end if */
|
||||||
|
|
||||||
|
action = fDbgLoaded ? EXCEPTION_CONTINUE_EXECUTION : EXCEPTION_EXECUTE_HANDLER;
|
||||||
|
// cout << "_osd_debug return " << action << " EXCEPTION_CONTINUE_EXECUTION("
|
||||||
|
// << EXCEPTION_CONTINUE_EXECUTION << ")" << endl ;
|
||||||
|
return action ;
|
||||||
|
|
||||||
|
} // end _osd_debug
|
||||||
|
|
||||||
|
#if defined(__CYGWIN32__) || defined(__MINGW32__)
|
||||||
|
#undef __try
|
||||||
|
#undef __finally
|
||||||
|
#undef __leave
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
//---------- All Systems except Windows NT : ----------------------------------
|
//---------- All Systems except Windows NT : ----------------------------------
|
||||||
|
|
||||||
@ -29,10 +600,7 @@
|
|||||||
#include <OSD_SIGBUS.hxx>
|
#include <OSD_SIGBUS.hxx>
|
||||||
#include <OSD_SIGSEGV.hxx>
|
#include <OSD_SIGSEGV.hxx>
|
||||||
#include <OSD_SIGSYS.hxx>
|
#include <OSD_SIGSYS.hxx>
|
||||||
#include <OSD_Exception_CTRL_BREAK.hxx>
|
|
||||||
#include <Standard_NumericError.hxx>
|
#include <Standard_NumericError.hxx>
|
||||||
#include <Standard_DivideByZero.hxx>
|
|
||||||
#include <Standard_Overflow.hxx>
|
|
||||||
|
|
||||||
#include <Standard_ErrorHandler.hxx>
|
#include <Standard_ErrorHandler.hxx>
|
||||||
|
|
||||||
|
@ -1,607 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <OSD.hxx>
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
|
|
||||||
//---------------------------- Windows NT System --------------------------------
|
|
||||||
|
|
||||||
#define STRICT
|
|
||||||
#ifdef NOUSER
|
|
||||||
#undef NOUSER
|
|
||||||
#endif
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#ifndef STATUS_FLOAT_MULTIPLE_FAULTS
|
|
||||||
// <ntstatus.h>
|
|
||||||
#define STATUS_FLOAT_MULTIPLE_FAULTS (0xC00002B4L)
|
|
||||||
#define STATUS_FLOAT_MULTIPLE_TRAPS (0xC00002B5L)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <OSD_Exception_ACCESS_VIOLATION.hxx>
|
|
||||||
#include <OSD_Exception_ARRAY_BOUNDS_EXCEEDED.hxx>
|
|
||||||
#include <OSD_Exception_ILLEGAL_INSTRUCTION.hxx>
|
|
||||||
#include <OSD_Exception_IN_PAGE_ERROR.hxx>
|
|
||||||
#include <OSD_Exception_INT_DIVIDE_BY_ZERO.hxx>
|
|
||||||
#include <OSD_Exception_INT_OVERFLOW.hxx>
|
|
||||||
#include <OSD_Exception_INVALID_DISPOSITION.hxx>
|
|
||||||
#include <OSD_Exception_NONCONTINUABLE_EXCEPTION.hxx>
|
|
||||||
#include <OSD_Exception_PRIV_INSTRUCTION.hxx>
|
|
||||||
#include <OSD_Exception_STACK_OVERFLOW.hxx>
|
|
||||||
#include <OSD_Exception_STATUS_NO_MEMORY.hxx>
|
|
||||||
#include <OSD_Exception_CTRL_BREAK.hxx>
|
|
||||||
|
|
||||||
#include <OSD_Environment.hxx>
|
|
||||||
#include <Standard_Underflow.hxx>
|
|
||||||
#include <Standard_DivideByZero.hxx>
|
|
||||||
#include <Standard_Overflow.hxx>
|
|
||||||
#include <Standard_ProgramError.hxx>
|
|
||||||
#include <Standard_Mutex.hxx>
|
|
||||||
|
|
||||||
#include <OSD_WNT_1.hxx>
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#include <eh.h>
|
|
||||||
#include <malloc.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <process.h>
|
|
||||||
#include <signal.h>
|
|
||||||
#include <float.h>
|
|
||||||
|
|
||||||
static Standard_Boolean fMsgBox;
|
|
||||||
static Standard_Boolean fFltExceptions;
|
|
||||||
static Standard_Boolean fDbgLoaded;
|
|
||||||
static Standard_Boolean fCtrlBrk;
|
|
||||||
|
|
||||||
// used to forbid simultaneous execution of setting / executing handlers
|
|
||||||
static Standard_Mutex THE_SIGNAL_MUTEX;
|
|
||||||
|
|
||||||
static LONG __fastcall _osd_raise ( DWORD, LPSTR );
|
|
||||||
static BOOL WINAPI _osd_ctrl_break_handler ( DWORD );
|
|
||||||
|
|
||||||
static LONG _osd_debug ( void );
|
|
||||||
|
|
||||||
//# define _OSD_FPX ( _EM_INVALID | _EM_DENORMAL | _EM_ZERODIVIDE | _EM_OVERFLOW | _EM_UNDERFLOW )
|
|
||||||
# define _OSD_FPX ( _EM_INVALID | _EM_DENORMAL | _EM_ZERODIVIDE | _EM_OVERFLOW )
|
|
||||||
|
|
||||||
//=======================================================================
|
|
||||||
//function : CallHandler
|
|
||||||
//purpose :
|
|
||||||
//=======================================================================
|
|
||||||
static LONG CallHandler (DWORD dwExceptionCode,
|
|
||||||
ptrdiff_t ExceptionInformation1,
|
|
||||||
ptrdiff_t ExceptionInformation0)
|
|
||||||
{
|
|
||||||
|
|
||||||
#if !defined(__CYGWIN32__) && !defined(__MINGW32__)
|
|
||||||
|
|
||||||
Standard_Mutex::Sentry aSentry (THE_SIGNAL_MUTEX); // lock the mutex to prevent simultaneous handling
|
|
||||||
static char buffer[ 2048 ];
|
|
||||||
int flterr = 0;
|
|
||||||
|
|
||||||
buffer[0] = '\0' ;
|
|
||||||
|
|
||||||
// cout << "CallHandler " << dwExceptionCode << endl ;
|
|
||||||
switch ( dwExceptionCode ) {
|
|
||||||
|
|
||||||
case EXCEPTION_FLT_DENORMAL_OPERAND:
|
|
||||||
// cout << "CallHandler : EXCEPTION_FLT_DENORMAL_OPERAND:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "FLT DENORMAL OPERAND" );
|
|
||||||
flterr = 1 ;
|
|
||||||
break ;
|
|
||||||
case EXCEPTION_FLT_DIVIDE_BY_ZERO:
|
|
||||||
// cout << "CallHandler : EXCEPTION_FLT_DIVIDE_BY_ZERO:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "FLT DIVIDE BY ZERO" );
|
|
||||||
flterr = 1 ;
|
|
||||||
break ;
|
|
||||||
case EXCEPTION_FLT_INEXACT_RESULT:
|
|
||||||
// cout << "CallHandler : EXCEPTION_FLT_INEXACT_RESULT:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "FLT INEXACT RESULT" );
|
|
||||||
flterr = 1 ;
|
|
||||||
break ;
|
|
||||||
case EXCEPTION_FLT_INVALID_OPERATION:
|
|
||||||
// cout << "CallHandler : EXCEPTION_FLT_INVALID_OPERATION:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "FLT INVALID OPERATION" );
|
|
||||||
flterr = 1 ;
|
|
||||||
break ;
|
|
||||||
case EXCEPTION_FLT_OVERFLOW:
|
|
||||||
// cout << "CallHandler : EXCEPTION_FLT_OVERFLOW:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "FLT OVERFLOW" );
|
|
||||||
flterr = 1 ;
|
|
||||||
break ;
|
|
||||||
case EXCEPTION_FLT_STACK_CHECK:
|
|
||||||
// cout << "CallHandler : EXCEPTION_FLT_STACK_CHECK:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "FLT STACK CHECK" );
|
|
||||||
flterr = 1 ;
|
|
||||||
break ;
|
|
||||||
case EXCEPTION_FLT_UNDERFLOW:
|
|
||||||
// cout << "CallHandler : EXCEPTION_FLT_UNDERFLOW:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "FLT UNDERFLOW" );
|
|
||||||
flterr = 1 ;
|
|
||||||
break ;
|
|
||||||
case STATUS_FLOAT_MULTIPLE_TRAPS:
|
|
||||||
// cout << "CallHandler : EXCEPTION_FLT_UNDERFLOW:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "FLT MULTIPLE TRAPS (possible overflow in conversion of double to integer)" );
|
|
||||||
flterr = 1 ;
|
|
||||||
break ;
|
|
||||||
case STATUS_FLOAT_MULTIPLE_FAULTS:
|
|
||||||
// cout << "CallHandler : EXCEPTION_FLT_UNDERFLOW:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "FLT MULTIPLE FAULTS" );
|
|
||||||
flterr = 1 ;
|
|
||||||
break ;
|
|
||||||
|
|
||||||
case STATUS_NO_MEMORY:
|
|
||||||
// cout << "CallHandler : STATUS_NO_MEMORY:" << endl ;
|
|
||||||
OSD_Exception_STATUS_NO_MEMORY ::
|
|
||||||
Raise ( "MEMORY ALLOCATION ERROR ( no room in the process heap )" );
|
|
||||||
|
|
||||||
case EXCEPTION_ACCESS_VIOLATION:
|
|
||||||
// cout << "CallHandler : EXCEPTION_ACCESS_VIOLATION:" << endl ;
|
|
||||||
wsprintf ( buffer, "%s%s%s0x%.8p%s%s%s", "ACCESS VIOLATION",
|
|
||||||
fMsgBox ? "\n" : " ", "at address ",
|
|
||||||
ExceptionInformation1 ,
|
|
||||||
" during '",
|
|
||||||
ExceptionInformation0 ? "WRITE" : "READ",
|
|
||||||
"' operation");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
|
|
||||||
// cout << "CallHandler : EXCEPTION_ARRAY_BOUNDS_EXCEEDED:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "ARRAY BOUNDS EXCEEDED" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_DATATYPE_MISALIGNMENT:
|
|
||||||
// cout << "CallHandler : EXCEPTION_DATATYPE_MISALIGNMENT:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "DATATYPE MISALIGNMENT" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
|
||||||
// cout << "CallHandler : EXCEPTION_ILLEGAL_INSTRUCTION:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "ILLEGAL INSTRUCTION" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_IN_PAGE_ERROR:
|
|
||||||
// cout << "CallHandler : EXCEPTION_IN_PAGE_ERROR:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "IN_PAGE ERROR" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_INT_DIVIDE_BY_ZERO:
|
|
||||||
// cout << "CallHandler : EXCEPTION_INT_DIVIDE_BY_ZERO:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "INTEGER DIVISION BY ZERO" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_INT_OVERFLOW:
|
|
||||||
// cout << "CallHandler : EXCEPTION_INT_OVERFLOW:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "INTEGER OVERFLOW" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_INVALID_DISPOSITION:
|
|
||||||
// cout << "CallHandler : EXCEPTION_INVALID_DISPOSITION:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "INVALID DISPOSITION" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_NONCONTINUABLE_EXCEPTION:
|
|
||||||
// cout << "CallHandler : EXCEPTION_NONCONTINUABLE_EXCEPTION:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "NONCONTINUABLE EXCEPTION" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_PRIV_INSTRUCTION:
|
|
||||||
// cout << "CallHandler : EXCEPTION_PRIV_INSTRUCTION:" << endl ;
|
|
||||||
lstrcpyA ( buffer, "PRIVELEGED INSTRUCTION ENCOUNTERED" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXCEPTION_STACK_OVERFLOW:
|
|
||||||
// cout << "CallHandler : EXCEPTION_STACK_OVERFLOW:" << endl ;
|
|
||||||
#if defined( _MSC_VER ) && ( _MSC_VER >= 1300 )
|
|
||||||
// try recovering from stack overflow: available in MS VC++ 7.0
|
|
||||||
if (!_resetstkoflw())
|
|
||||||
lstrcpyA ( buffer, "Unrecoverable STACK OVERFLOW" );
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
lstrcpyA ( buffer, "STACK OVERFLOW" );
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
wsprintf( buffer, "unknown exception code 0x%x, params 0x%p 0x%p",
|
|
||||||
dwExceptionCode, ExceptionInformation1, ExceptionInformation0 );
|
|
||||||
|
|
||||||
} // end switch
|
|
||||||
|
|
||||||
// provide message to the user with possibility to stop
|
|
||||||
int idx = lstrlenA ( buffer );
|
|
||||||
if ( idx && fMsgBox && dwExceptionCode != EXCEPTION_NONCONTINUABLE_EXCEPTION ) {
|
|
||||||
// reset FP operations before message box, otherwise it may fail to show up
|
|
||||||
_fpreset();
|
|
||||||
_clearfp();
|
|
||||||
|
|
||||||
MessageBeep ( MB_ICONHAND );
|
|
||||||
int aChoice = ::MessageBox (0, buffer, "OCCT Exception Handler", MB_ABORTRETRYIGNORE | MB_ICONSTOP);
|
|
||||||
if (aChoice == IDRETRY)
|
|
||||||
{
|
|
||||||
_osd_debug();
|
|
||||||
DebugBreak();
|
|
||||||
}
|
|
||||||
else if (aChoice == IDABORT)
|
|
||||||
exit(0xFFFF);
|
|
||||||
}
|
|
||||||
|
|
||||||
// reset FPE state
|
|
||||||
if ( flterr ) {
|
|
||||||
if ( !fFltExceptions )
|
|
||||||
return EXCEPTION_EXECUTE_HANDLER;
|
|
||||||
_fpreset () ;
|
|
||||||
_clearfp() ;
|
|
||||||
_controlfp ( 0, _OSD_FPX ) ; // JR add :
|
|
||||||
// cout << "OSD::WntHandler _controlfp( 0, _OSD_FPX ) " << hex << _controlfp(0,0) << dec << endl ;
|
|
||||||
}
|
|
||||||
return _osd_raise ( dwExceptionCode, buffer );
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
//=======================================================================
|
|
||||||
//function : SIGWntHandler
|
|
||||||
//purpose : Will only be used if user calls ::raise() function with
|
|
||||||
// signal type set in OSD::SetSignal() - SIGSEGV, SIGFPE, SIGILL
|
|
||||||
// (the latter will likely be removed in the future)
|
|
||||||
//=======================================================================
|
|
||||||
static void SIGWntHandler (int signum, int sub_code)
|
|
||||||
{
|
|
||||||
#if !defined(__CYGWIN32__) && !defined(__MINGW32__)
|
|
||||||
Standard_Mutex::Sentry aSentry (THE_SIGNAL_MUTEX); // lock the mutex to prevent simultaneous handling
|
|
||||||
switch( signum ) {
|
|
||||||
case SIGFPE :
|
|
||||||
if ( signal( signum , (void(*)(int))SIGWntHandler ) == SIG_ERR )
|
|
||||||
cout << "signal error" << endl ;
|
|
||||||
switch( sub_code ) {
|
|
||||||
case _FPE_INVALID :
|
|
||||||
CallHandler( EXCEPTION_FLT_INVALID_OPERATION ,0,0) ;
|
|
||||||
break ;
|
|
||||||
case _FPE_DENORMAL :
|
|
||||||
CallHandler( EXCEPTION_FLT_DENORMAL_OPERAND ,0,0) ;
|
|
||||||
break ;
|
|
||||||
case _FPE_ZERODIVIDE :
|
|
||||||
CallHandler( EXCEPTION_FLT_DIVIDE_BY_ZERO ,0,0) ;
|
|
||||||
break ;
|
|
||||||
case _FPE_OVERFLOW :
|
|
||||||
CallHandler( EXCEPTION_FLT_OVERFLOW ,0,0) ;
|
|
||||||
break ;
|
|
||||||
case _FPE_UNDERFLOW :
|
|
||||||
CallHandler( EXCEPTION_FLT_UNDERFLOW ,0,0) ;
|
|
||||||
break ;
|
|
||||||
case _FPE_INEXACT :
|
|
||||||
CallHandler( EXCEPTION_FLT_INEXACT_RESULT ,0,0) ;
|
|
||||||
break ;
|
|
||||||
default:
|
|
||||||
cout << "SIGWntHandler(default) -> Standard_NumericError::Raise(\"Floating Point Error\");" << endl;
|
|
||||||
Standard_NumericError::Raise("Floating Point Error");
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
break ;
|
|
||||||
case SIGSEGV :
|
|
||||||
if ( signal( signum, (void(*)(int))SIGWntHandler ) == SIG_ERR )
|
|
||||||
cout << "signal error" << endl ;
|
|
||||||
CallHandler( EXCEPTION_ACCESS_VIOLATION ,0,0) ;
|
|
||||||
break ;
|
|
||||||
case SIGILL :
|
|
||||||
if ( signal( signum, (void(*)(int))SIGWntHandler ) == SIG_ERR )
|
|
||||||
cout << "signal error" << endl ;
|
|
||||||
CallHandler( EXCEPTION_ILLEGAL_INSTRUCTION ,0,0) ;
|
|
||||||
break ;
|
|
||||||
default:
|
|
||||||
cout << "SIGWntHandler unexpected signal : " << signum << endl ;
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
DebugBreak ();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
//=======================================================================
|
|
||||||
//function : TranslateSE
|
|
||||||
//purpose : Translate Structural Exceptions into C++ exceptions
|
|
||||||
// Will be used when user's code is compiled with /EHa option
|
|
||||||
//=======================================================================
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
|
|
||||||
// If this file compiled with the default MSVC options for exception
|
|
||||||
// handling (/GX or /EHsc) then the following warning is issued:
|
|
||||||
// warning C4535: calling _set_se_translator() requires /EHa
|
|
||||||
// However it is correctly inserted and used when user's code compiled with /EHa.
|
|
||||||
// So, here we disable the warning.
|
|
||||||
#pragma warning (disable:4535)
|
|
||||||
|
|
||||||
static void TranslateSE( unsigned int theCode, EXCEPTION_POINTERS* theExcPtr )
|
|
||||||
{
|
|
||||||
Standard_Mutex::Sentry aSentry (THE_SIGNAL_MUTEX); // lock the mutex to prevent simultaneous handling
|
|
||||||
ptrdiff_t info1 = 0, info0 = 0;
|
|
||||||
if ( theExcPtr ) {
|
|
||||||
info1 = theExcPtr->ExceptionRecord->ExceptionInformation[1];
|
|
||||||
info0 = theExcPtr->ExceptionRecord->ExceptionInformation[0];
|
|
||||||
}
|
|
||||||
CallHandler(theCode, info1, info0);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
//=======================================================================
|
|
||||||
//function : WntHandler
|
|
||||||
//purpose : Will be used when user's code is compiled with /EHs
|
|
||||||
// option and unless user sets his own exception handler with
|
|
||||||
// ::SetUnhandledExceptionFilter().
|
|
||||||
//=======================================================================
|
|
||||||
static LONG WINAPI WntHandler (EXCEPTION_POINTERS *lpXP)
|
|
||||||
{
|
|
||||||
DWORD dwExceptionCode = lpXP->ExceptionRecord->ExceptionCode;
|
|
||||||
|
|
||||||
return CallHandler (dwExceptionCode,
|
|
||||||
lpXP->ExceptionRecord->ExceptionInformation[1],
|
|
||||||
lpXP->ExceptionRecord->ExceptionInformation[0]);
|
|
||||||
}
|
|
||||||
//=======================================================================
|
|
||||||
//function : SetSignal
|
|
||||||
//purpose :
|
|
||||||
//=======================================================================
|
|
||||||
void OSD::SetSignal (const Standard_Boolean theFloatingSignal)
|
|
||||||
{
|
|
||||||
#if !defined(__CYGWIN32__) && !defined(__MINGW32__)
|
|
||||||
Standard_Mutex::Sentry aSentry (THE_SIGNAL_MUTEX); // lock the mutex to prevent simultaneous handling
|
|
||||||
LPTOP_LEVEL_EXCEPTION_FILTER aPreviousFilter;
|
|
||||||
|
|
||||||
OSD_Environment env (TEXT("CSF_DEBUG_MODE"));
|
|
||||||
TCollection_AsciiString val = env.Value();
|
|
||||||
if (!env.Failed())
|
|
||||||
{
|
|
||||||
cout << "Environment variable CSF_DEBUG_MODE setted.\n";
|
|
||||||
fMsgBox = Standard_True;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fMsgBox = Standard_False;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set exception handler (ignored when running under debugger). It will be used in most cases
|
|
||||||
// when user's code is compiled with /EHs
|
|
||||||
// Replaces the existing top-level exception filter for all existing and all future threads
|
|
||||||
// in the calling process
|
|
||||||
aPreviousFilter = ::SetUnhandledExceptionFilter (/*(LPTOP_LEVEL_EXCEPTION_FILTER)*/ WntHandler);
|
|
||||||
|
|
||||||
// Signal handlers will only be used when the method ::raise() will be used
|
|
||||||
// Handlers must be set for every thread
|
|
||||||
if (signal (SIGSEGV, (void(*)(int))SIGWntHandler) == SIG_ERR)
|
|
||||||
cout << "signal(OSD::SetSignal) error\n";
|
|
||||||
if (signal (SIGFPE, (void(*)(int))SIGWntHandler) == SIG_ERR)
|
|
||||||
cout << "signal(OSD::SetSignal) error\n";
|
|
||||||
if (signal (SIGILL, (void(*)(int))SIGWntHandler) == SIG_ERR)
|
|
||||||
cout << "signal(OSD::SetSignal) error\n";
|
|
||||||
|
|
||||||
// Set Ctrl-C and Ctrl-Break handler
|
|
||||||
fCtrlBrk = Standard_False;
|
|
||||||
SetConsoleCtrlHandler (&_osd_ctrl_break_handler, TRUE);
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
// _se_translator_function pOldSeFunc =
|
|
||||||
_set_se_translator (TranslateSE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fFltExceptions = theFloatingSignal;
|
|
||||||
if (theFloatingSignal)
|
|
||||||
{
|
|
||||||
_controlfp (0, _OSD_FPX); // JR add :
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
_controlfp (_OSD_FPX, _OSD_FPX); // JR add :
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
} // end OSD :: SetSignal
|
|
||||||
|
|
||||||
//============================================================================
|
|
||||||
//==== ControlBreak
|
|
||||||
//============================================================================
|
|
||||||
|
|
||||||
void OSD :: ControlBreak () {
|
|
||||||
|
|
||||||
if ( fCtrlBrk ) {
|
|
||||||
|
|
||||||
fCtrlBrk = Standard_False;
|
|
||||||
OSD_Exception_CTRL_BREAK :: Raise ( TEXT( "*** INTERRUPT ***" ) );
|
|
||||||
|
|
||||||
} // end if
|
|
||||||
|
|
||||||
} // end OSD :: ControlBreak
|
|
||||||
|
|
||||||
//============================================================================
|
|
||||||
//==== _osd_ctrl_break_handler
|
|
||||||
//============================================================================
|
|
||||||
|
|
||||||
static BOOL WINAPI _osd_ctrl_break_handler ( DWORD dwCode ) {
|
|
||||||
|
|
||||||
if ( dwCode == CTRL_C_EVENT || dwCode == CTRL_BREAK_EVENT ) {
|
|
||||||
|
|
||||||
MessageBeep ( MB_ICONEXCLAMATION );
|
|
||||||
fCtrlBrk = Standard_True;
|
|
||||||
|
|
||||||
} else
|
|
||||||
|
|
||||||
exit ( 254 );
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
} // end _osd_ctrl_break_handler
|
|
||||||
|
|
||||||
//============================================================================
|
|
||||||
//==== _osd_raise
|
|
||||||
//============================================================================
|
|
||||||
|
|
||||||
static LONG __fastcall _osd_raise ( DWORD dwCode, LPSTR msg )
|
|
||||||
{
|
|
||||||
if (msg[0] == '\x03') ++msg;
|
|
||||||
|
|
||||||
switch (dwCode)
|
|
||||||
{
|
|
||||||
case EXCEPTION_ACCESS_VIOLATION:
|
|
||||||
OSD_Exception_ACCESS_VIOLATION::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
|
|
||||||
OSD_Exception_ARRAY_BOUNDS_EXCEEDED::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_DATATYPE_MISALIGNMENT:
|
|
||||||
Standard_ProgramError::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
|
||||||
OSD_Exception_ILLEGAL_INSTRUCTION::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_IN_PAGE_ERROR:
|
|
||||||
OSD_Exception_IN_PAGE_ERROR::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_INT_DIVIDE_BY_ZERO:
|
|
||||||
Standard_DivideByZero::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_INT_OVERFLOW:
|
|
||||||
OSD_Exception_INT_OVERFLOW::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_INVALID_DISPOSITION:
|
|
||||||
OSD_Exception_INVALID_DISPOSITION::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_NONCONTINUABLE_EXCEPTION:
|
|
||||||
OSD_Exception_NONCONTINUABLE_EXCEPTION::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_PRIV_INSTRUCTION:
|
|
||||||
OSD_Exception_PRIV_INSTRUCTION::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_STACK_OVERFLOW:
|
|
||||||
OSD_Exception_STACK_OVERFLOW::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_FLT_DIVIDE_BY_ZERO:
|
|
||||||
Standard_DivideByZero::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_FLT_STACK_CHECK:
|
|
||||||
case EXCEPTION_FLT_OVERFLOW:
|
|
||||||
Standard_Overflow::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_FLT_UNDERFLOW:
|
|
||||||
Standard_Underflow::Raise (msg);
|
|
||||||
break;
|
|
||||||
case EXCEPTION_FLT_INVALID_OPERATION:
|
|
||||||
case EXCEPTION_FLT_DENORMAL_OPERAND:
|
|
||||||
case EXCEPTION_FLT_INEXACT_RESULT:
|
|
||||||
case STATUS_FLOAT_MULTIPLE_TRAPS:
|
|
||||||
case STATUS_FLOAT_MULTIPLE_FAULTS:
|
|
||||||
Standard_NumericError::Raise (msg);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
} // end switch
|
|
||||||
return EXCEPTION_EXECUTE_HANDLER;
|
|
||||||
} // end _osd_raise
|
|
||||||
|
|
||||||
//============================================================================
|
|
||||||
//==== _osd_debug
|
|
||||||
//============================================================================
|
|
||||||
|
|
||||||
#if defined(__CYGWIN32__) || defined(__MINGW32__)
|
|
||||||
#define __try
|
|
||||||
#define __finally
|
|
||||||
#define __leave return 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
LONG _osd_debug ( void ) {
|
|
||||||
|
|
||||||
LONG action ;
|
|
||||||
|
|
||||||
if ( !fDbgLoaded ) {
|
|
||||||
|
|
||||||
HKEY hKey = NULL;
|
|
||||||
HANDLE hEvent = INVALID_HANDLE_VALUE;
|
|
||||||
DWORD dwKeyType;
|
|
||||||
DWORD dwValueLen;
|
|
||||||
TCHAR keyValue[ MAX_PATH ];
|
|
||||||
TCHAR cmdLine[ MAX_PATH ];
|
|
||||||
SECURITY_ATTRIBUTES sa;
|
|
||||||
PROCESS_INFORMATION pi;
|
|
||||||
STARTUPINFO si;
|
|
||||||
|
|
||||||
__try {
|
|
||||||
|
|
||||||
if ( RegOpenKey (
|
|
||||||
HKEY_LOCAL_MACHINE,
|
|
||||||
TEXT( "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug" ),
|
|
||||||
&hKey
|
|
||||||
) != ERROR_SUCCESS
|
|
||||||
) __leave;
|
|
||||||
|
|
||||||
dwValueLen = sizeof ( keyValue );
|
|
||||||
|
|
||||||
if ( RegQueryValueEx (
|
|
||||||
hKey, TEXT( "Debugger" ), NULL, &dwKeyType, ( unsigned char* )keyValue, &dwValueLen
|
|
||||||
) != ERROR_SUCCESS
|
|
||||||
) __leave;
|
|
||||||
|
|
||||||
sa.nLength = sizeof ( SECURITY_ATTRIBUTES );
|
|
||||||
sa.lpSecurityDescriptor = NULL;
|
|
||||||
sa.bInheritHandle = TRUE;
|
|
||||||
|
|
||||||
if ( ( hEvent = CreateEvent ( &sa, TRUE, FALSE, NULL ) ) == NULL ) __leave;
|
|
||||||
|
|
||||||
wsprintf ( cmdLine, keyValue, GetCurrentProcessId (), hEvent );
|
|
||||||
|
|
||||||
ZeroMemory ( &si, sizeof ( STARTUPINFO ) );
|
|
||||||
|
|
||||||
si.cb = sizeof ( STARTUPINFO );
|
|
||||||
si.dwFlags = STARTF_FORCEONFEEDBACK;
|
|
||||||
|
|
||||||
// cout << "_osd_debug -> CreateProcess" << endl ;
|
|
||||||
if ( !CreateProcess (
|
|
||||||
NULL, cmdLine, NULL, NULL, TRUE, CREATE_DEFAULT_ERROR_MODE,
|
|
||||||
NULL, NULL, &si, &pi
|
|
||||||
)
|
|
||||||
) __leave;
|
|
||||||
|
|
||||||
// cout << "_osd_debug -> WaitForSingleObject " << endl ;
|
|
||||||
WaitForSingleObject ( hEvent, INFINITE );
|
|
||||||
// cout << "_osd_debug <- WaitForSingleObject -> CloseHandle " << endl ;
|
|
||||||
|
|
||||||
CloseHandle ( pi.hProcess );
|
|
||||||
CloseHandle ( pi.hThread );
|
|
||||||
|
|
||||||
// cout << "_osd_debug fDbgLoaded " << endl ;
|
|
||||||
fDbgLoaded = TRUE;
|
|
||||||
|
|
||||||
} // end __try
|
|
||||||
|
|
||||||
__finally {
|
|
||||||
|
|
||||||
// cout << "_osd_debug -> CloseHandle(hKey) " << endl ;
|
|
||||||
if ( hKey != INVALID_HANDLE_VALUE ) CloseHandle ( hKey );
|
|
||||||
// cout << "_osd_debug -> CloseHandle(hEvent) " << endl ;
|
|
||||||
if ( hEvent != INVALID_HANDLE_VALUE ) CloseHandle ( hEvent );
|
|
||||||
// cout << "_osd_debug end __finally " << endl ;
|
|
||||||
|
|
||||||
} // end __finally
|
|
||||||
|
|
||||||
} /* end if */
|
|
||||||
|
|
||||||
action = fDbgLoaded ? EXCEPTION_CONTINUE_EXECUTION : EXCEPTION_EXECUTE_HANDLER;
|
|
||||||
// cout << "_osd_debug return " << action << " EXCEPTION_CONTINUE_EXECUTION("
|
|
||||||
// << EXCEPTION_CONTINUE_EXECUTION << ")" << endl ;
|
|
||||||
return action ;
|
|
||||||
|
|
||||||
} // end _osd_debug
|
|
||||||
|
|
||||||
#if defined(__CYGWIN32__) || defined(__MINGW32__)
|
|
||||||
#undef __try
|
|
||||||
#undef __finally
|
|
||||||
#undef __leave
|
|
||||||
#endif
|
|
||||||
#endif // _WIN32
|
|
@ -1,3 +1,2 @@
|
|||||||
Precision.cxx
|
|
||||||
Precision.hxx
|
Precision.hxx
|
||||||
Precision.lxx
|
Precision.lxx
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
// Created on: 1993-03-08
|
|
||||||
// Created by: Remi LEQUETTE
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Precision.hxx>
|
|
@ -22,8 +22,6 @@ Standard_DivideByZero.hxx
|
|||||||
Standard_DomainError.hxx
|
Standard_DomainError.hxx
|
||||||
Standard_ErrorHandler.cxx
|
Standard_ErrorHandler.cxx
|
||||||
Standard_ErrorHandler.hxx
|
Standard_ErrorHandler.hxx
|
||||||
Standard_ErrorHandlerCallback.cxx
|
|
||||||
Standard_ErrorHandlerCallback.hxx
|
|
||||||
Standard_ExtCharacter.hxx
|
Standard_ExtCharacter.hxx
|
||||||
Standard_ExtString.cxx
|
Standard_ExtString.cxx
|
||||||
Standard_ExtString.hxx
|
Standard_ExtString.hxx
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
#include <Standard_Size.hxx>
|
#include <Standard_Size.hxx>
|
||||||
#include <Standard_Integer.hxx>
|
#include <Standard_Integer.hxx>
|
||||||
|
|
||||||
class Standard_ErrorHandlerCallback;
|
|
||||||
class Standard_ErrorHandler;
|
class Standard_ErrorHandler;
|
||||||
class Standard_GUID;
|
class Standard_GUID;
|
||||||
class Standard_Persistent;
|
class Standard_Persistent;
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
#include <Standard_ErrorHandler.hxx>
|
#include <Standard_ErrorHandler.hxx>
|
||||||
#include <Standard_Failure.hxx>
|
#include <Standard_Failure.hxx>
|
||||||
#include <Standard_ErrorHandlerCallback.hxx>
|
|
||||||
#include <Standard_Mutex.hxx>
|
#include <Standard_Mutex.hxx>
|
||||||
#include <Standard.hxx>
|
#include <Standard.hxx>
|
||||||
|
|
||||||
@ -125,7 +124,7 @@ void Standard_ErrorHandler::Unlink()
|
|||||||
Standard_Address aPtr = aCurrent->myCallbackPtr;
|
Standard_Address aPtr = aCurrent->myCallbackPtr;
|
||||||
myCallbackPtr = 0;
|
myCallbackPtr = 0;
|
||||||
while ( aPtr ) {
|
while ( aPtr ) {
|
||||||
Standard_ErrorHandlerCallback* aCallback = (Standard_ErrorHandlerCallback*)aPtr;
|
Standard_ErrorHandler::Callback* aCallback = (Standard_ErrorHandler::Callback*)aPtr;
|
||||||
aPtr = aCallback->myNext;
|
aPtr = aCallback->myNext;
|
||||||
// Call destructor explicitly, as we know that it will not be called automatically
|
// Call destructor explicitly, as we know that it will not be called automatically
|
||||||
aCallback->DestroyCallback();
|
aCallback->DestroyCallback();
|
||||||
@ -267,3 +266,45 @@ Standard_ErrorHandler* Standard_ErrorHandler::FindHandler(const Standard_Handler
|
|||||||
|
|
||||||
return anActive;
|
return anActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(NO_CXX_EXCEPTION) || defined(OCC_CONVERT_SIGNALS)
|
||||||
|
|
||||||
|
Standard_ErrorHandler::Callback::Callback ()
|
||||||
|
: myHandler(0), myPrev(0), myNext(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Standard_ErrorHandler::Callback::~Callback ()
|
||||||
|
{
|
||||||
|
UnregisterCallback();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Standard_ErrorHandler::Callback::RegisterCallback ()
|
||||||
|
{
|
||||||
|
if ( myHandler ) return; // already registered
|
||||||
|
|
||||||
|
// find current active exception handler
|
||||||
|
Standard_ErrorHandler *aHandler =
|
||||||
|
Standard_ErrorHandler::FindHandler(Standard_HandlerVoid, Standard_False);
|
||||||
|
|
||||||
|
// if found, add this callback object first to the list
|
||||||
|
if ( aHandler ) {
|
||||||
|
myHandler = aHandler;
|
||||||
|
myNext = aHandler->myCallbackPtr;
|
||||||
|
if ( myNext ) ((Standard_ErrorHandler::Callback*)myNext)->myPrev = this;
|
||||||
|
aHandler->myCallbackPtr = this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Standard_ErrorHandler::Callback::UnregisterCallback ()
|
||||||
|
{
|
||||||
|
if ( ! myHandler ) return;
|
||||||
|
if ( myNext )
|
||||||
|
((Standard_ErrorHandler::Callback*)myNext)->myPrev = myPrev;
|
||||||
|
if ( myPrev )
|
||||||
|
((Standard_ErrorHandler::Callback*)myPrev)->myNext = myNext;
|
||||||
|
else if ( ((Standard_ErrorHandler*)myHandler)->myCallbackPtr == this)
|
||||||
|
((Standard_ErrorHandler*)myHandler)->myCallbackPtr = (Standard_ErrorHandler::Callback*)myNext;
|
||||||
|
myHandler = myNext = myPrev = 0;
|
||||||
|
}
|
||||||
|
#endif
|
@ -95,7 +95,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
class Standard_Failure;
|
class Standard_Failure;
|
||||||
class Standard_ErrorHandlerCallback;
|
|
||||||
|
|
||||||
//! Class implementing mechanics of conversion of signals to exceptions.
|
//! Class implementing mechanics of conversion of signals to exceptions.
|
||||||
//!
|
//!
|
||||||
@ -159,6 +158,56 @@ private:
|
|||||||
//! Returns the current handler (closest in the stack in the current execution thread)
|
//! Returns the current handler (closest in the stack in the current execution thread)
|
||||||
Standard_EXPORT static Standard_PErrorHandler FindHandler (const Standard_HandlerStatus theStatus, const Standard_Boolean theUnlink);
|
Standard_EXPORT static Standard_PErrorHandler FindHandler (const Standard_HandlerStatus theStatus, const Standard_Boolean theUnlink);
|
||||||
|
|
||||||
|
public:
|
||||||
|
//! Defines a base class for callback objects that can be registered
|
||||||
|
//! in the OCC error handler (the class simulating C++ exceptions)
|
||||||
|
//! so as to be correctly destroyed when error handler is activated.
|
||||||
|
//!
|
||||||
|
//! Note that this is needed only when Open CASCADE is compiled with
|
||||||
|
//! NO_CXX_EXCEPTION or OCC_CONVERT_SIGNALS options (i.e. on UNIX/Linux).
|
||||||
|
//! In that case, raising OCC exception and/or signal will not cause
|
||||||
|
//! C++ stack unwinding and destruction of objects created in the stack.
|
||||||
|
//!
|
||||||
|
//! This class is intended to protect critical objects and operations in
|
||||||
|
//! the try {} catch {} block from being bypassed by OCC signal or exception.
|
||||||
|
//!
|
||||||
|
//! Inherit your object from that class, implement DestroyCallback() function,
|
||||||
|
//! and call Register/Unregister in critical points.
|
||||||
|
//!
|
||||||
|
//! Note that you must ensure that your object has life span longer than
|
||||||
|
//! that of the try {} block in which it calls Register().
|
||||||
|
class Callback
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DEFINE_STANDARD_ALLOC
|
||||||
|
|
||||||
|
//! Registers this callback object in the current error handler (if found).
|
||||||
|
void RegisterCallback();
|
||||||
|
|
||||||
|
//! Unregisters this callback object from the error handler.
|
||||||
|
void UnregisterCallback();
|
||||||
|
|
||||||
|
//! Destructor
|
||||||
|
virtual ~Callback();
|
||||||
|
|
||||||
|
//! The callback function to perform necessary callback action.
|
||||||
|
//! Called by the exception handler when it is being destroyed but
|
||||||
|
//! still has this callback registered.
|
||||||
|
Standard_EXPORT virtual void DestroyCallback() = 0;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
//! Empty constructor
|
||||||
|
Callback();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Standard_Address myHandler;
|
||||||
|
Standard_Address myPrev;
|
||||||
|
Standard_Address myNext;
|
||||||
|
|
||||||
|
friend class Standard_ErrorHandler;
|
||||||
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
Standard_PErrorHandler myPrevious;
|
Standard_PErrorHandler myPrevious;
|
||||||
@ -166,10 +215,30 @@ private:
|
|||||||
Standard_JmpBuf myLabel;
|
Standard_JmpBuf myLabel;
|
||||||
Standard_HandlerStatus myStatus;
|
Standard_HandlerStatus myStatus;
|
||||||
Standard_ThreadId myThread;
|
Standard_ThreadId myThread;
|
||||||
Standard_Address myCallbackPtr;
|
Callback* myCallbackPtr;
|
||||||
|
|
||||||
friend class Standard_Failure;
|
friend class Standard_Failure;
|
||||||
friend class Standard_ErrorHandlerCallback;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// If neither NO_CXX_EXCEPTION nor OCC_CONVERT_SIGNALS is defined,
|
||||||
|
// provide empty inline implementation
|
||||||
|
#if ! defined(NO_CXX_EXCEPTION) && ! defined(OCC_CONVERT_SIGNALS)
|
||||||
|
inline Standard_ErrorHandler::Callback::Callback ()
|
||||||
|
: myHandler(0), myPrev(0), myNext(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
inline Standard_ErrorHandler::Callback::~Callback ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
inline void Standard_ErrorHandler::Callback::RegisterCallback ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
inline void Standard_ErrorHandler::Callback::UnregisterCallback ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Definition of the old name "Standard_ErrorHandlerCallback" was kept for compatibility
|
||||||
|
typedef Standard_ErrorHandler::Callback Standard_ErrorHandlerCallback;
|
||||||
|
|
||||||
#endif // _Standard_ErrorHandler_HeaderFile
|
#endif // _Standard_ErrorHandler_HeaderFile
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
// Created on: 2006-04-13
|
|
||||||
// Created by: Andrey BETENEV
|
|
||||||
// Copyright (c) 2006-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.
|
|
||||||
|
|
||||||
// If either NO_CXX_EXCEPTION or OCC_CONVERT_SIGNALS is defined,
|
|
||||||
// provide complete implementation
|
|
||||||
|
|
||||||
#include <Standard_ErrorHandler.hxx>
|
|
||||||
#include <Standard_ErrorHandlerCallback.hxx>
|
|
||||||
|
|
||||||
#if defined(NO_CXX_EXCEPTION) || defined(OCC_CONVERT_SIGNALS)
|
|
||||||
|
|
||||||
Standard_ErrorHandlerCallback::Standard_ErrorHandlerCallback ()
|
|
||||||
: myHandler(0), myPrev(0), myNext(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Standard_ErrorHandlerCallback::~Standard_ErrorHandlerCallback ()
|
|
||||||
{
|
|
||||||
UnregisterCallback();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Standard_ErrorHandlerCallback::RegisterCallback ()
|
|
||||||
{
|
|
||||||
if ( myHandler ) return; // already registered
|
|
||||||
|
|
||||||
// find current active exception handler
|
|
||||||
Standard_ErrorHandler *aHandler =
|
|
||||||
Standard_ErrorHandler::FindHandler(Standard_HandlerVoid, Standard_False);
|
|
||||||
|
|
||||||
// if found, add this callback object first to the list
|
|
||||||
if ( aHandler ) {
|
|
||||||
myHandler = aHandler;
|
|
||||||
myNext = aHandler->myCallbackPtr;
|
|
||||||
if ( myNext ) ((Standard_ErrorHandlerCallback*)myNext)->myPrev = this;
|
|
||||||
aHandler->myCallbackPtr = this;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Standard_ErrorHandlerCallback::UnregisterCallback ()
|
|
||||||
{
|
|
||||||
if ( ! myHandler ) return;
|
|
||||||
if ( myNext )
|
|
||||||
((Standard_ErrorHandlerCallback*)myNext)->myPrev = myPrev;
|
|
||||||
if ( myPrev )
|
|
||||||
((Standard_ErrorHandlerCallback*)myPrev)->myNext = myNext;
|
|
||||||
else if ( ((Standard_ErrorHandler*)myHandler)->myCallbackPtr == this)
|
|
||||||
((Standard_ErrorHandler*)myHandler)->myCallbackPtr = myNext;
|
|
||||||
myHandler = myNext = myPrev = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,92 +0,0 @@
|
|||||||
// Created on: 2006-04-13
|
|
||||||
// Created by: Andrey BETENEV
|
|
||||||
// Copyright (c) 2006-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 _Standard_ErrorHandlerCallback_HeaderFile
|
|
||||||
#define _Standard_ErrorHandlerCallback_HeaderFile
|
|
||||||
|
|
||||||
#include <Standard.hxx>
|
|
||||||
#include <Standard_Handle.hxx>
|
|
||||||
|
|
||||||
class Standard_ErrorHandler;
|
|
||||||
|
|
||||||
//! Defines a base class for callback objects that can be registered
|
|
||||||
//! in the OCC error handler (the class simulating C++ exceptions)
|
|
||||||
//! so as to be correctly destroyed when error handler is activated.
|
|
||||||
//!
|
|
||||||
//! Note that this is needed only when Open CASCADE is compiled with
|
|
||||||
//! NO_CXX_EXCEPTION or OCC_CONVERT_SIGNALS options (i.e. on UNIX/Linux).
|
|
||||||
//! In that case, raising OCC exception and/or signal will not cause
|
|
||||||
//! C++ stack unwinding and destruction of objects created in the stack.
|
|
||||||
//!
|
|
||||||
//! This class is intended to protect critical objects and operations in
|
|
||||||
//! the try {} catch {} block from being bypassed by OCC signal or exception.
|
|
||||||
//!
|
|
||||||
//! Inherit your object from that class, implement DestroyCallback() function,
|
|
||||||
//! and call Register/Unregister in critical points.
|
|
||||||
//!
|
|
||||||
//! Note that you must ensure that your object has life span longer than
|
|
||||||
//! that of the try {} block in which it calls Register().
|
|
||||||
class Standard_ErrorHandlerCallback
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
DEFINE_STANDARD_ALLOC
|
|
||||||
|
|
||||||
//! Registers this callback object in the current error handler (if found).
|
|
||||||
void RegisterCallback();
|
|
||||||
|
|
||||||
//! Unregisters this callback object from the error handler.
|
|
||||||
void UnregisterCallback();
|
|
||||||
|
|
||||||
//! Destructor
|
|
||||||
virtual ~Standard_ErrorHandlerCallback ();
|
|
||||||
|
|
||||||
//! The callback function to perform necessary callback action.
|
|
||||||
//! Called by the exception handler when it is being destroyed but
|
|
||||||
//! still has this callback registered.
|
|
||||||
Standard_EXPORT virtual void DestroyCallback() = 0;
|
|
||||||
|
|
||||||
friend class Standard_ErrorHandler;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
//! Empty constructor
|
|
||||||
Standard_ErrorHandlerCallback();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Standard_Address myHandler;
|
|
||||||
Standard_Address myPrev;
|
|
||||||
Standard_Address myNext;
|
|
||||||
};
|
|
||||||
|
|
||||||
// If neither NO_CXX_EXCEPTION nor OCC_CONVERT_SIGNALS is defined,
|
|
||||||
// provide empty inline implementation
|
|
||||||
#if ! defined(NO_CXX_EXCEPTION) && ! defined(OCC_CONVERT_SIGNALS)
|
|
||||||
inline Standard_ErrorHandlerCallback::Standard_ErrorHandlerCallback ()
|
|
||||||
: myHandler(0), myPrev(0), myNext(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
inline Standard_ErrorHandlerCallback::~Standard_ErrorHandlerCallback ()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
inline void Standard_ErrorHandlerCallback::RegisterCallback ()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
inline void Standard_ErrorHandlerCallback::UnregisterCallback ()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // _Standard_ErrorHandlerCallback_HeaderFile
|
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
#include <Standard_Integer.hxx>
|
#include <Standard_Integer.hxx>
|
||||||
#include <Standard_Boolean.hxx>
|
#include <Standard_Boolean.hxx>
|
||||||
#include <Standard_ErrorHandlerCallback.hxx>
|
#include <Standard_ErrorHandler.hxx>
|
||||||
|
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
* TryLock(), and UnregisterCallback() before Unlock() (or use Sentry classes).
|
* TryLock(), and UnregisterCallback() before Unlock() (or use Sentry classes).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Standard_Mutex : public Standard_ErrorHandlerCallback
|
class Standard_Mutex : public Standard_ErrorHandler::Callback
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
TNaming.cxx
|
TNaming.cxx
|
||||||
TNaming.hxx
|
TNaming.hxx
|
||||||
TNaming_Builder.cxx
|
|
||||||
TNaming_Builder.hxx
|
TNaming_Builder.hxx
|
||||||
TNaming_CopyShape.cxx
|
TNaming_CopyShape.cxx
|
||||||
TNaming_CopyShape.hxx
|
TNaming_CopyShape.hxx
|
||||||
@ -15,10 +14,8 @@ TNaming_DeltaOnRemoval.hxx
|
|||||||
TNaming_Evolution.hxx
|
TNaming_Evolution.hxx
|
||||||
TNaming_Identifier.cxx
|
TNaming_Identifier.cxx
|
||||||
TNaming_Identifier.hxx
|
TNaming_Identifier.hxx
|
||||||
TNaming_Iterator.cxx
|
|
||||||
TNaming_Iterator.hxx
|
TNaming_Iterator.hxx
|
||||||
TNaming_Iterator.lxx
|
TNaming_Iterator.lxx
|
||||||
TNaming_IteratorOnShapesSet.cxx
|
|
||||||
TNaming_IteratorOnShapesSet.hxx
|
TNaming_IteratorOnShapesSet.hxx
|
||||||
TNaming_IteratorOnShapesSet.lxx
|
TNaming_IteratorOnShapesSet.lxx
|
||||||
TNaming_ListIteratorOfListOfIndexedDataMapOfShapeListOfShape.hxx
|
TNaming_ListIteratorOfListOfIndexedDataMapOfShapeListOfShape.hxx
|
||||||
@ -43,16 +40,13 @@ TNaming_Naming.hxx
|
|||||||
TNaming_NamingTool.cxx
|
TNaming_NamingTool.cxx
|
||||||
TNaming_NamingTool.hxx
|
TNaming_NamingTool.hxx
|
||||||
TNaming_NCollections.hxx
|
TNaming_NCollections.hxx
|
||||||
TNaming_NewShapeIterator.cxx
|
|
||||||
TNaming_NewShapeIterator.hxx
|
TNaming_NewShapeIterator.hxx
|
||||||
TNaming_NewShapeIterator.lxx
|
TNaming_NewShapeIterator.lxx
|
||||||
TNaming_OldShapeIterator.cxx
|
|
||||||
TNaming_OldShapeIterator.hxx
|
TNaming_OldShapeIterator.hxx
|
||||||
TNaming_OldShapeIterator.lxx
|
TNaming_OldShapeIterator.lxx
|
||||||
TNaming_PtrAttribute.hxx
|
TNaming_PtrAttribute.hxx
|
||||||
TNaming_PtrNode.hxx
|
TNaming_PtrNode.hxx
|
||||||
TNaming_PtrRefShape.hxx
|
TNaming_PtrRefShape.hxx
|
||||||
TNaming_RefShape.cxx
|
|
||||||
TNaming_RefShape.hxx
|
TNaming_RefShape.hxx
|
||||||
TNaming_RefShape.lxx
|
TNaming_RefShape.lxx
|
||||||
TNaming_SameShapeIterator.cxx
|
TNaming_SameShapeIterator.cxx
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
// Created on: 1996-12-19
|
|
||||||
// Created by: Yves FRICAUD
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Standard_ConstructionError.hxx>
|
|
||||||
#include <TDF_Label.hxx>
|
|
||||||
#include <TNaming_Builder.hxx>
|
|
||||||
#include <TNaming_NamedShape.hxx>
|
|
||||||
#include <TNaming_UsedShapes.hxx>
|
|
||||||
#include <TopoDS_Shape.hxx>
|
|
||||||
|
|
||||||
// See methods'body in TNaming_NamedShape.cxx
|
|
@ -1,27 +0,0 @@
|
|||||||
// Created on: 1997-02-26
|
|
||||||
// Created by: Yves FRICAUD
|
|
||||||
// Copyright (c) 1997-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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Standard_NoMoreObject.hxx>
|
|
||||||
#include <Standard_NoSuchObject.hxx>
|
|
||||||
#include <TDF_Label.hxx>
|
|
||||||
#include <TNaming_Iterator.hxx>
|
|
||||||
#include <TNaming_NamedShape.hxx>
|
|
||||||
#include <TNaming_NewShapeIterator.hxx>
|
|
||||||
#include <TNaming_OldShapeIterator.hxx>
|
|
||||||
#include <TopoDS_Shape.hxx>
|
|
||||||
|
|
||||||
// See methods'bodies in TNaming_NamedShape.cxx
|
|
@ -1,22 +0,0 @@
|
|||||||
// Created on: 1997-05-06
|
|
||||||
// Created by: Yves FRICAUD
|
|
||||||
// Copyright (c) 1997-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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Standard_NoMoreObject.hxx>
|
|
||||||
#include <Standard_NoSuchObject.hxx>
|
|
||||||
#include <TNaming_IteratorOnShapesSet.hxx>
|
|
||||||
#include <TNaming_ShapesSet.hxx>
|
|
||||||
#include <TopoDS_Shape.hxx>
|
|
@ -1,30 +0,0 @@
|
|||||||
// Created on: 1996-12-20
|
|
||||||
// Created by: Yves FRICAUD
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Standard_NoMoreObject.hxx>
|
|
||||||
#include <Standard_NoSuchObject.hxx>
|
|
||||||
#include <TDF_Label.hxx>
|
|
||||||
#include <TNaming_Iterator.hxx>
|
|
||||||
#include <TNaming_Name.hxx>
|
|
||||||
#include <TNaming_NamedShape.hxx>
|
|
||||||
#include <TNaming_Naming.hxx>
|
|
||||||
#include <TNaming_NewShapeIterator.hxx>
|
|
||||||
#include <TNaming_Tool.hxx>
|
|
||||||
#include <TNaming_UsedShapes.hxx>
|
|
||||||
#include <TopoDS_Shape.hxx>
|
|
||||||
|
|
||||||
// See methods'body in TNaming_NamedShape.cxx
|
|
@ -1,30 +0,0 @@
|
|||||||
// Created on: 1996-12-20
|
|
||||||
// Created by: Yves FRICAUD
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <Standard_NoMoreObject.hxx>
|
|
||||||
#include <Standard_NoSuchObject.hxx>
|
|
||||||
#include <TDF_Label.hxx>
|
|
||||||
#include <TNaming_Iterator.hxx>
|
|
||||||
#include <TNaming_Localizer.hxx>
|
|
||||||
#include <TNaming_NamedShape.hxx>
|
|
||||||
#include <TNaming_Naming.hxx>
|
|
||||||
#include <TNaming_OldShapeIterator.hxx>
|
|
||||||
#include <TNaming_Tool.hxx>
|
|
||||||
#include <TNaming_UsedShapes.hxx>
|
|
||||||
#include <TopoDS_Shape.hxx>
|
|
||||||
|
|
||||||
// See methods'body in TNaming_NamedShape.cxx
|
|
@ -1,23 +0,0 @@
|
|||||||
// Created on: 1996-12-19
|
|
||||||
// Created by: Yves FRICAUD
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
|
|
||||||
#include <TDF_Label.hxx>
|
|
||||||
#include <TNaming_NamedShape.hxx>
|
|
||||||
#include <TNaming_RefShape.hxx>
|
|
||||||
#include <TopoDS_Shape.hxx>
|
|
||||||
|
|
||||||
// See methods'body in TNaming_NamedShape.cxx
|
|
@ -31,7 +31,6 @@ TObj_ReferenceIterator.hxx
|
|||||||
TObj_SequenceIterator.cxx
|
TObj_SequenceIterator.cxx
|
||||||
TObj_SequenceIterator.hxx
|
TObj_SequenceIterator.hxx
|
||||||
TObj_SequenceOfIterator.hxx
|
TObj_SequenceOfIterator.hxx
|
||||||
TObj_SequenceOfObject.cxx
|
|
||||||
TObj_SequenceOfObject.hxx
|
TObj_SequenceOfObject.hxx
|
||||||
TObj_TIntSparseArray.cxx
|
TObj_TIntSparseArray.cxx
|
||||||
TObj_TIntSparseArray.hxx
|
TObj_TIntSparseArray.hxx
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
// Created on: 2004-11-23
|
|
||||||
// Created by: Pavel TELKOV
|
|
||||||
// Copyright (c) 2004-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.
|
|
||||||
|
|
||||||
// The original implementation Copyright: (C) RINA S.p.A
|
|
||||||
|
|
||||||
#include <TObj_SequenceOfObject.hxx>
|
|
||||||
|
|
@ -26,7 +26,6 @@
|
|||||||
#include <TestTopOpeTools.hxx>
|
#include <TestTopOpeTools.hxx>
|
||||||
#include <TopoDS_Shape.hxx>
|
#include <TopoDS_Shape.hxx>
|
||||||
#include <TopOpeBRepBuild_HBuilder.hxx>
|
#include <TopOpeBRepBuild_HBuilder.hxx>
|
||||||
#include <TopOpeBRepDS_DSX.hxx>
|
|
||||||
#include <TopOpeBRepDS_Dumper.hxx>
|
#include <TopOpeBRepDS_Dumper.hxx>
|
||||||
#include <TopOpeBRepDS_HDataStructure.hxx>
|
#include <TopOpeBRepDS_HDataStructure.hxx>
|
||||||
|
|
||||||
@ -67,9 +66,6 @@ void TestTopOpe::Shapes(const TopoDS_Shape& S1,const TopoDS_Shape& S2)
|
|||||||
{
|
{
|
||||||
if (PHDSD != NULL) { PHDSD->SetShape1(S1);PHDSD->SetShape2(S2); }
|
if (PHDSD != NULL) { PHDSD->SetShape1(S1);PHDSD->SetShape2(S2); }
|
||||||
if (PBOOP != NULL) { PBOOP->SetShape1(S1);PBOOP->SetShape2(S2); }
|
if (PBOOP != NULL) { PBOOP->SetShape1(S1);PBOOP->SetShape2(S2); }
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
TopOpeBRepDS_SettraceSPSX_SS(S1,S2);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -80,26 +76,8 @@ void TestTopOpe::CurrentDS(const Handle(TopOpeBRepDS_HDataStructure)& HDS)
|
|||||||
{
|
{
|
||||||
if (PHDSD != NULL) { PHDSD->SetCurrentHDS(HDS); }
|
if (PHDSD != NULL) { PHDSD->SetCurrentHDS(HDS); }
|
||||||
if (PBOOP != NULL) { PBOOP->SetCurrentHDS(HDS); }
|
if (PBOOP != NULL) { PBOOP->SetCurrentHDS(HDS); }
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
TopOpeBRepDS_SettraceSPSX_HDS(HDS);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_EXPORT void debloi(const TopOpeBRepDS_ListOfInterference& L)
|
|
||||||
{
|
|
||||||
if (PBOOP == NULL) return;
|
|
||||||
TopOpeBRepDS_Dumper DSD(PBOOP->ChangeCurrentDS());
|
|
||||||
DSD.DumpLOI(L,cout,"");
|
|
||||||
}
|
|
||||||
Standard_EXPORT void debi(const Handle(TopOpeBRepDS_Interference)& I)
|
|
||||||
{
|
|
||||||
if (PBOOP == NULL) return;
|
|
||||||
TopOpeBRepDS_Dumper DSD(PBOOP->ChangeCurrentDS());
|
|
||||||
DSD.DumpI(I,cout,"","\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : CurrentHB
|
//function : CurrentHB
|
||||||
//purpose :
|
//purpose :
|
||||||
|
@ -105,8 +105,6 @@ public:
|
|||||||
|
|
||||||
TestTopOpe_HDSDisplayer* PHDSD = NULL;
|
TestTopOpe_HDSDisplayer* PHDSD = NULL;
|
||||||
static TestTopOpeDraw_Displayer* POCD = NULL;
|
static TestTopOpeDraw_Displayer* POCD = NULL;
|
||||||
//Standard_IMPORT extern Standard_Integer TopOpeBRepDS_GLOBALHDSinterfselector;
|
|
||||||
Standard_IMPORT Standard_Integer TopOpeBRepDS_GLOBALHDSinterfselector;
|
|
||||||
|
|
||||||
static Standard_Boolean SFindKeep = Standard_False;
|
static Standard_Boolean SFindKeep = Standard_False;
|
||||||
static Standard_Boolean GFindKeep = Standard_False;
|
static Standard_Boolean GFindKeep = Standard_False;
|
||||||
@ -144,7 +142,6 @@ public:
|
|||||||
Standard_Integer Set(Standard_Integer na,const char** a,Standard_Integer iargK,Standard_Integer iargI);
|
Standard_Integer Set(Standard_Integer na,const char** a,Standard_Integer iargK,Standard_Integer iargI);
|
||||||
|
|
||||||
virtual ~tsee_entity() {}
|
virtual ~tsee_entity() {}
|
||||||
void virtual Dump() const;
|
|
||||||
void virtual See() = 0;
|
void virtual See() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -180,12 +177,6 @@ Standard_Integer tsee_entity::Set(Standard_Integer na,const char** a,Standard_In
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void tsee_entity::Dump() const {
|
|
||||||
TopOpeBRepDS_Dumper Dumper(myEHDS);
|
|
||||||
if (myEisgeome) Dumper.DumpGeometry(myETK,myEindex,cout);
|
|
||||||
if (myEisshape) Dumper.DumpTopology(myETK,myEindex,cout);
|
|
||||||
}
|
|
||||||
|
|
||||||
class tsee_entity0 : public tsee_entity {
|
class tsee_entity0 : public tsee_entity {
|
||||||
public:
|
public:
|
||||||
gp_Pnt Pnt() const;
|
gp_Pnt Pnt() const;
|
||||||
@ -682,7 +673,6 @@ Standard_Integer tsee_SeeShapefunc(Draw_Interpretor& di,Standard_Integer na_in,c
|
|||||||
if (!E1.myEOK || !E2.myEOK) return 1;
|
if (!E1.myEOK || !E2.myEOK) return 1;
|
||||||
|
|
||||||
E1.See();E2.See();
|
E1.See();E2.See();
|
||||||
E1.Dump();E2.Dump();
|
|
||||||
di<<"Distance "<<E1.myEnamedbrep.ToCString()<<" "<<E2.myEnamedbrep.ToCString()<<" : "<<E1.Pnt().Distance(E2.Pnt())<<"\n";
|
di<<"Distance "<<E1.myEnamedbrep.ToCString()<<" "<<E2.myEnamedbrep.ToCString()<<" : "<<E1.Pnt().Distance(E2.Pnt())<<"\n";
|
||||||
|
|
||||||
} // PrintDistancePP
|
} // PrintDistancePP
|
||||||
@ -1009,13 +999,9 @@ Standard_Integer tki(Draw_Interpretor& di,Standard_Integer na_in,const char** a)
|
|||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
Standard_Integer tds(Draw_Interpretor& di,Standard_Integer na,const char** a)
|
Standard_Integer tds(Draw_Interpretor& di,Standard_Integer na,const char** a)
|
||||||
{
|
{
|
||||||
Standard_Boolean TDSkeep,TDScompact; TDSkeep = TDScompact = Standard_False;
|
|
||||||
TopOpeBRepDS_GLOBALHDSinterfselector = 0;
|
|
||||||
|
|
||||||
Standard_Integer ia ;
|
Standard_Integer ia ;
|
||||||
for ( ia = 0; ia < na; ia++) {
|
for ( ia = 0; ia < na; ia++) {
|
||||||
if (!strcasecmp(a[ia],"-ssi")) {
|
if (!strcasecmp(a[ia],"-ssi")) {
|
||||||
TopOpeBRepDS_GLOBALHDSinterfselector = 1;
|
|
||||||
suppressarg(na,a,ia);
|
suppressarg(na,a,ia);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1023,10 +1009,7 @@ Standard_Integer tds(Draw_Interpretor& di,Standard_Integer na,const char** a)
|
|||||||
TCollection_AsciiString as = a[ia];
|
TCollection_AsciiString as = a[ia];
|
||||||
as.Remove(1,1);
|
as.Remove(1,1);
|
||||||
for(Standard_Integer i = 1;i <= as.Length(); i++) {
|
for(Standard_Integer i = 1;i <= as.Length(); i++) {
|
||||||
if (as.Value(i) == 'k') TDSkeep = Standard_True;
|
if (as.Value(i) == 'h') { tds_help(di); return 0; }
|
||||||
else if(as.Value(i) == 'l') TDScompact = Standard_False;
|
|
||||||
else if(as.Value(i) == 's') TDScompact = Standard_True;
|
|
||||||
else if(as.Value(i) == 'h') { tds_help(di); return 0; }
|
|
||||||
}
|
}
|
||||||
suppressarg(na,a,ia);
|
suppressarg(na,a,ia);
|
||||||
}
|
}
|
||||||
@ -1036,68 +1019,7 @@ Standard_Integer tds(Draw_Interpretor& di,Standard_Integer na,const char** a)
|
|||||||
const Handle(TopOpeBRepDS_HDataStructure)& HDS = PHDSD->CurrentHDS();
|
const Handle(TopOpeBRepDS_HDataStructure)& HDS = PHDSD->CurrentHDS();
|
||||||
if (HDS.IsNull()) {COUTNOHDS(di);return 0;}
|
if (HDS.IsNull()) {COUTNOHDS(di);return 0;}
|
||||||
PHDSD->CurrentBDS();
|
PHDSD->CurrentBDS();
|
||||||
|
|
||||||
TopOpeBRepDS_Dumper Dumper(HDS);
|
|
||||||
if ( na == 1 ) { Dumper.Dump(cout,TDSkeep,TDScompact); return 0; }
|
|
||||||
|
|
||||||
TDSpar Tpar(a[1]);
|
|
||||||
Standard_Integer ids;
|
|
||||||
|
|
||||||
if (na == 2) {
|
|
||||||
if (Tpar.isshap()) {
|
|
||||||
if (Tpar.TS() != TopAbs_SHAPE) Dumper.DumpTopology(Tpar.TK(),cout);
|
|
||||||
else Dumper.DumpTopology(cout);
|
|
||||||
}
|
|
||||||
else if (Tpar.isgeom()) {
|
|
||||||
Dumper.DumpGeometry(Tpar.TK(),cout,TDSkeep,TDScompact);
|
|
||||||
}
|
|
||||||
else if (Tpar.issect()) {
|
|
||||||
Dumper.DumpSectionEdge(Tpar.TK(),cout);
|
|
||||||
}
|
|
||||||
else if (Tpar.isafev()) {
|
|
||||||
TopOpeBRepDS_Explorer x;
|
|
||||||
for (x.Init(HDS,TopAbs_FACE,TDSkeep);x.More();x.Next()) Dumper.DumpTopology(x.Type(),x.Index(),cout);
|
|
||||||
for (x.Init(HDS,TopAbs_EDGE,TDSkeep);x.More();x.Next()) Dumper.DumpTopology(x.Type(),x.Index(),cout);
|
|
||||||
for (x.Init(HDS,TopAbs_VERTEX,TDSkeep);x.More();x.Next()) Dumper.DumpTopology(x.Type(),x.Index(),cout);
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (Tpar.isdege()) {
|
|
||||||
TopOpeBRepDS_Explorer x;
|
|
||||||
for (x.Init(HDS,TopAbs_EDGE,TDSkeep);x.More();x.Next()) {
|
|
||||||
if (BRep_Tool::Degenerated(x.Edge())) Dumper.DumpTopology(x.Type(),x.Index(),cout);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
} // (na == 2)
|
|
||||||
|
|
||||||
// nna > 2 : dump DS entities of type TK index Draw::Atoi(a[2])..a[narg-1])
|
|
||||||
for (ia = 2; ia < na; ia++) {
|
|
||||||
|
|
||||||
if ( !strcmp(a[ia],"sd") ) { // dump all shapes HasSameDomain of type TS
|
|
||||||
for (TopOpeBRepDS_Explorer x(HDS,Tpar.TS(),Standard_False);x.More();x.Next()) {
|
|
||||||
Standard_Boolean isSsd = HDS->HasSameDomain(x.Current());
|
|
||||||
if (isSsd ) Dumper.DumpTopology(Tpar.TK(),x.Index(),cout);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ids = Draw::Atoi(a[ia]);
|
|
||||||
if ( Tpar.isshap() ) {
|
|
||||||
if (Tpar.TS() != TopAbs_SHAPE) Dumper.DumpTopology(Tpar.TK(),ids,cout);
|
|
||||||
else {
|
|
||||||
TopAbs_ShapeEnum t = HDS->Shape(ids,SFindKeep).ShapeType();
|
|
||||||
TopOpeBRepDS_Kind k = TopOpeBRepDS::ShapeToKind(t);
|
|
||||||
Dumper.DumpTopology(k,ids,cout);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ( Tpar.isgeom() ) {
|
|
||||||
Dumper.DumpGeometry(Tpar.TK(),ids,cout,TDSkeep,TDScompact);
|
|
||||||
}
|
|
||||||
else if ( Tpar.issect() ) {
|
|
||||||
Dumper.DumpSectionEdge(TopOpeBRepDS_EDGE,ids,cout);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} // ia < na
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1303,7 +1225,6 @@ Standard_Integer tdsri(Draw_Interpretor& di,Standard_Integer na_in,const char**
|
|||||||
Standard_Integer i=0; TopOpeBRepDS_ListIteratorOfListOfInterference it(li);
|
Standard_Integer i=0; TopOpeBRepDS_ListIteratorOfListOfInterference it(li);
|
||||||
while (it.More()) {
|
while (it.More()) {
|
||||||
if(++i == ii) {
|
if(++i == ii) {
|
||||||
it.Value()->Dump(cout,"\n--> remove ","\n");
|
|
||||||
li.Remove(it);
|
li.Remove(it);
|
||||||
}
|
}
|
||||||
else it.Next();
|
else it.Next();
|
||||||
|
@ -28,22 +28,6 @@ Standard_IMPORT void TopClass_SettraceFC(const Standard_Boolean);
|
|||||||
Standard_IMPORT void TopOpeBRepTool_SettraceEND(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRepTool_SettraceEND(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRepTool_SettraceKRO(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRepTool_SettraceKRO(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRepTool_SetcontextNOSEW(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRepTool_SetcontextNOSEW(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRepDS_SetcontextNOPNC(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceEDSF(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceDSP(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceDSF(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceDSFK(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceDSNC(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceDSLT(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceDEGEN(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceDSFD(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettracePCI(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettracePEI(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettracePFI(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettracePI(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceSTRANGE(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceGAP(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SetcontextNOGAP(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRep_SettraceFITOL(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRep_SettraceFITOL(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRep_SettraceBIPS(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRep_SettraceBIPS(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRep_SettraceSI(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRep_SettraceSI(const Standard_Boolean);
|
||||||
@ -63,9 +47,6 @@ Standard_IMPORT void TopOpeBRepBuild_SettraceCHKOK(const Standard_Boolean);
|
|||||||
Standard_IMPORT void TopOpeBRepBuild_SettraceCHKNOK(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRepBuild_SettraceCHKNOK(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRepBuild_SettraceCU(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRepBuild_SettraceCU(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRepBuild_SettraceCUV(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRepBuild_SettraceCUV(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceSPSX(const Standard_Boolean, Standard_Integer, char**);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceCX(const Standard_Boolean, Standard_Integer, char**);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceSPSXX(const Standard_Boolean, Standard_Integer, char**);
|
|
||||||
Standard_IMPORT void TopOpeBRepBuild_SettraceSPF(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRepBuild_SettraceSPF(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRepBuild_SettraceSPS(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRepBuild_SettraceSPS(const Standard_Boolean);
|
||||||
Standard_IMPORT void TopOpeBRepBuild_SettraceSHEX(const Standard_Boolean);
|
Standard_IMPORT void TopOpeBRepBuild_SettraceSHEX(const Standard_Boolean);
|
||||||
@ -110,13 +91,6 @@ Standard_IMPORT void TopOpeBRepTool_SettraceCL2DDR(const Standard_Boolean, Stand
|
|||||||
Standard_IMPORT void TopOpeBRepTool_SettraceCL2DPR(const Standard_Boolean, Standard_Integer, char**);
|
Standard_IMPORT void TopOpeBRepTool_SettraceCL2DPR(const Standard_Boolean, Standard_Integer, char**);
|
||||||
Standard_IMPORT void TopOpeBRepTool_SettraceCL3DDR(const Standard_Boolean, Standard_Integer, char**);
|
Standard_IMPORT void TopOpeBRepTool_SettraceCL3DDR(const Standard_Boolean, Standard_Integer, char**);
|
||||||
Standard_IMPORT void TopOpeBRepTool_SettraceCL3DPR(const Standard_Boolean, Standard_Integer, char**);
|
Standard_IMPORT void TopOpeBRepTool_SettraceCL3DPR(const Standard_Boolean, Standard_Integer, char**);
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceBUTO(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceTRPE(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceEDPR(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceISTO(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SettraceSANTRAN(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SetcontextNOPFI(const Standard_Boolean);
|
|
||||||
Standard_IMPORT void TopOpeBRepDS_SetcontextMKTONREG(const Standard_Boolean);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
@ -127,20 +101,6 @@ static Standard_Integer InitTraceTopOpeKernel (TestTopOpeTools_Trace& T)
|
|||||||
if (T.Add("tfc",(tf_value)TopClass_SettraceFC)) return 1;
|
if (T.Add("tfc",(tf_value)TopClass_SettraceFC)) return 1;
|
||||||
if (T.Add("tend",(tf_value)TopOpeBRepTool_SettraceEND)) return 1;
|
if (T.Add("tend",(tf_value)TopOpeBRepTool_SettraceEND)) return 1;
|
||||||
if (T.Add("tkro",(tf_value)TopOpeBRepTool_SettraceKRO)) return 1;
|
if (T.Add("tkro",(tf_value)TopOpeBRepTool_SettraceKRO)) return 1;
|
||||||
if (T.Add("tdsfk",(tf_value)TopOpeBRepDS_SettraceDSFK)) return 1;
|
|
||||||
if (T.Add("tedsf",(tf_value)TopOpeBRepDS_SettraceEDSF)) return 1;
|
|
||||||
if (T.Add("tdsp",(tf_value)TopOpeBRepDS_SettraceDSP)) return 1;
|
|
||||||
if (T.Add("tdsf",(tf_value)TopOpeBRepDS_SettraceDSF)) return 1;
|
|
||||||
if (T.Add("tdsnc",(tf_value)TopOpeBRepDS_SettraceDSNC)) return 1;
|
|
||||||
if (T.Add("tdegen",(tf_value)TopOpeBRepDS_SettraceDEGEN)) return 1;
|
|
||||||
if (T.Add("tdslt",(tf_value)TopOpeBRepDS_SettraceDSLT)) return 1;
|
|
||||||
if (T.Add("tdsfd",(tf_value)TopOpeBRepDS_SettraceDSFD)) return 1;
|
|
||||||
if (T.Add("tpci",(tf_value)TopOpeBRepDS_SettracePCI)) return 1;
|
|
||||||
if (T.Add("tpei",(tf_value)TopOpeBRepDS_SettracePEI)) return 1;
|
|
||||||
if (T.Add("tpfi",(tf_value)TopOpeBRepDS_SettracePFI)) return 1;
|
|
||||||
if (T.Add("tpi",(tf_value)TopOpeBRepDS_SettracePI)) return 1;
|
|
||||||
if (T.Add("tstrange",(tf_value)TopOpeBRepDS_SettraceSTRANGE)) return 1;
|
|
||||||
if (T.Add("tgap",(tf_value)TopOpeBRepDS_SettraceGAP)) return 1;
|
|
||||||
if (T.Add("tfitol",(tf_value)TopOpeBRep_SettraceFITOL)) return 1;
|
if (T.Add("tfitol",(tf_value)TopOpeBRep_SettraceFITOL)) return 1;
|
||||||
if (T.Add("tbips",(tf_value)TopOpeBRep_SettraceBIPS)) return 1;
|
if (T.Add("tbips",(tf_value)TopOpeBRep_SettraceBIPS)) return 1;
|
||||||
if (T.Add("tsi",(tf_value)TopOpeBRep_SettraceSI)) return 1;
|
if (T.Add("tsi",(tf_value)TopOpeBRep_SettraceSI)) return 1;
|
||||||
@ -154,9 +114,6 @@ static Standard_Integer InitTraceTopOpeKernel (TestTopOpeTools_Trace& T)
|
|||||||
if (T.Add("tnok",(tf_value)TopOpeBRepBuild_SettraceCHKNOK)) return 1;
|
if (T.Add("tnok",(tf_value)TopOpeBRepBuild_SettraceCHKNOK)) return 1;
|
||||||
if (T.Add("tcu",(tf_value)TopOpeBRepBuild_SettraceCU)) return 1;
|
if (T.Add("tcu",(tf_value)TopOpeBRepBuild_SettraceCU)) return 1;
|
||||||
if (T.Add("tcuv",(tf_value)TopOpeBRepBuild_SettraceCUV)) return 1;
|
if (T.Add("tcuv",(tf_value)TopOpeBRepBuild_SettraceCUV)) return 1;
|
||||||
if (T.Add("tcx",(tf_intarg)TopOpeBRepDS_SettraceCX)) return 1; // tcx 0|1 [i1 ...]
|
|
||||||
if (T.Add("tspsx",(tf_intarg)TopOpeBRepDS_SettraceSPSX)) return 1; // tspsx 0|1 [i1 ...]
|
|
||||||
if (T.Add("tspsxx",(tf_intarg)TopOpeBRepDS_SettraceSPSXX)) return 1; // tspsxx 0|1 [i1 i2]
|
|
||||||
if (T.Add("tspf",(tf_value)TopOpeBRepBuild_SettraceSPF)) return 1; // splitface
|
if (T.Add("tspf",(tf_value)TopOpeBRepBuild_SettraceSPF)) return 1; // splitface
|
||||||
if (T.Add("tsps",(tf_value)TopOpeBRepBuild_SettraceSPS)) return 1; // splitsolid
|
if (T.Add("tsps",(tf_value)TopOpeBRepBuild_SettraceSPS)) return 1; // splitsolid
|
||||||
if (T.Add("tshex",(tf_value)TopOpeBRepBuild_SettraceSHEX)) return 1;
|
if (T.Add("tshex",(tf_value)TopOpeBRepBuild_SettraceSHEX)) return 1;
|
||||||
@ -182,10 +139,6 @@ static Standard_Integer InitTraceTopOpeKernel (TestTopOpeTools_Trace& T)
|
|||||||
if (T.Add("tcl2dpr",(tf_intarg)TopOpeBRepTool_SettraceCL2DPR)) return 1;
|
if (T.Add("tcl2dpr",(tf_intarg)TopOpeBRepTool_SettraceCL2DPR)) return 1;
|
||||||
if (T.Add("tcl3ddr",(tf_intarg)TopOpeBRepTool_SettraceCL3DDR)) return 1;
|
if (T.Add("tcl3ddr",(tf_intarg)TopOpeBRepTool_SettraceCL3DDR)) return 1;
|
||||||
if (T.Add("tcl3dpr",(tf_intarg)TopOpeBRepTool_SettraceCL3DPR)) return 1;
|
if (T.Add("tcl3dpr",(tf_intarg)TopOpeBRepTool_SettraceCL3DPR)) return 1;
|
||||||
if (T.Add("tbuto",(tf_value)TopOpeBRepDS_SettraceBUTO)) return 1;
|
|
||||||
if (T.Add("ttrpe",(tf_value)TopOpeBRepDS_SettraceTRPE)) return 1;
|
|
||||||
if (T.Add("tedpr",(tf_value)TopOpeBRepDS_SettraceEDPR)) return 1;
|
|
||||||
if (T.Add("tisto",(tf_value)TopOpeBRepDS_SettraceISTO)) return 1;
|
|
||||||
if (T.Add("tproedg",(tf_value)TopOpeBRep_SettracePROEDG)) return 1;
|
if (T.Add("tproedg",(tf_value)TopOpeBRep_SettracePROEDG)) return 1;
|
||||||
if (T.Add("tconic",(tf_value)TopOpeBRep_SettraceCONIC)) return 1;
|
if (T.Add("tconic",(tf_value)TopOpeBRep_SettraceCONIC)) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
@ -197,7 +150,6 @@ Standard_Integer InitContextTopOpeKernel (TestTopOpeTools_Trace& T)
|
|||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
if (T.Add("nosew",(tf_value)TopOpeBRepTool_SetcontextNOSEW)) return 1;
|
if (T.Add("nosew",(tf_value)TopOpeBRepTool_SetcontextNOSEW)) return 1;
|
||||||
if (T.Add("nopnc",(tf_value)TopOpeBRepDS_SetcontextNOPNC)) return 1;
|
|
||||||
if (T.Add("nosg",(tf_value)TopOpeBRepBuild_SetcontextNOSG)) return 1;
|
if (T.Add("nosg",(tf_value)TopOpeBRepBuild_SetcontextNOSG)) return 1;
|
||||||
if (T.Add("ssconnex",(tf_value)TopOpeBRepBuild_SetcontextSSCONNEX)) return 1;
|
if (T.Add("ssconnex",(tf_value)TopOpeBRepBuild_SetcontextSSCONNEX)) return 1;
|
||||||
if (T.Add("sf2",(tf_value)TopOpeBRepBuild_SetcontextSF2)) return 1;
|
if (T.Add("sf2",(tf_value)TopOpeBRepBuild_SetcontextSF2)) return 1;
|
||||||
@ -211,7 +163,6 @@ Standard_Integer InitContextTopOpeKernel (TestTopOpeTools_Trace& T)
|
|||||||
if (T.Add("nofufa",(tf_value)TopOpeBRepBuild_SetcontextNOFUFA)) return 1;
|
if (T.Add("nofufa",(tf_value)TopOpeBRepBuild_SetcontextNOFUFA)) return 1;
|
||||||
if (T.Add("einternal",(tf_value)TopOpeBRepBuild_SetcontextEINTERNAL)) return 1;
|
if (T.Add("einternal",(tf_value)TopOpeBRepBuild_SetcontextEINTERNAL)) return 1;
|
||||||
if (T.Add("eexternal",(tf_value)TopOpeBRepBuild_SetcontextEEXTERNAL)) return 1;
|
if (T.Add("eexternal",(tf_value)TopOpeBRepBuild_SetcontextEEXTERNAL)) return 1;
|
||||||
if (T.Add("santran",(tf_value)TopOpeBRepDS_SettraceSANTRAN)) return 1;
|
|
||||||
if (T.Add("noproedg",(tf_value)TopOpeBRep_SetcontextNOPROEDG)) return 1;
|
if (T.Add("noproedg",(tf_value)TopOpeBRep_SetcontextNOPROEDG)) return 1;
|
||||||
if (T.Add("rest1",(tf_value)TopOpeBRep_SetcontextREST1)) return 1;
|
if (T.Add("rest1",(tf_value)TopOpeBRep_SetcontextREST1)) return 1;
|
||||||
if (T.Add("rest2",(tf_value)TopOpeBRep_SetcontextREST2)) return 1;
|
if (T.Add("rest2",(tf_value)TopOpeBRep_SetcontextREST2)) return 1;
|
||||||
@ -222,9 +173,6 @@ Standard_Integer InitContextTopOpeKernel (TestTopOpeTools_Trace& T)
|
|||||||
if (T.Add("ffor",(tf_value)TopOpeBRep_SetcontextFFOR)) return 1;
|
if (T.Add("ffor",(tf_value)TopOpeBRep_SetcontextFFOR)) return 1;
|
||||||
if (T.Add("nopunk",(tf_value)TopOpeBRep_SetcontextNOPUNK)) return 1;
|
if (T.Add("nopunk",(tf_value)TopOpeBRep_SetcontextNOPUNK)) return 1;
|
||||||
if (T.Add("nofei",(tf_value)TopOpeBRep_SetcontextNOFEI)) return 1;
|
if (T.Add("nofei",(tf_value)TopOpeBRep_SetcontextNOFEI)) return 1;
|
||||||
if (T.Add("nopfi",(tf_value)TopOpeBRepDS_SetcontextNOPFI)) return 1;
|
|
||||||
if (T.Add("mktonreg",(tf_value)TopOpeBRepDS_SetcontextMKTONREG)) return 1;
|
|
||||||
if (T.Add("nogap",(tf_value)TopOpeBRepDS_SetcontextNOGAP)) return 1;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -36,12 +36,8 @@
|
|||||||
#include <TopOpeBRepTool_EXPORT.hxx>
|
#include <TopOpeBRepTool_EXPORT.hxx>
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
#include <TopOpeBRepDS_reDEB.hxx>
|
|
||||||
#include <TopOpeBRepDS_CurvePointInterference.hxx>
|
#include <TopOpeBRepDS_CurvePointInterference.hxx>
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceEDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRep_GettraceEEFF();
|
extern Standard_Boolean TopOpeBRep_GettraceEEFF();
|
||||||
Standard_EXPORT void debefre(const Standard_Integer IE) {cout<<"+++ debefre E"<<IE<<endl;}
|
|
||||||
Standard_EXPORT void debposesd(void) {/*cout<<"+++ debposesd"<<endl;*/}
|
Standard_EXPORT void debposesd(void) {/*cout<<"+++ debposesd"<<endl;*/}
|
||||||
Standard_EXPORT void debposnesd(void) {cout<<"+++ debposnesd"<<endl;}
|
Standard_EXPORT void debposnesd(void) {cout<<"+++ debposnesd"<<endl;}
|
||||||
Standard_EXPORT void debeeff() {}
|
Standard_EXPORT void debeeff() {}
|
||||||
@ -73,17 +69,7 @@ void TopOpeBRep_EdgesFiller::Insert(const TopoDS_Shape& E1,const TopoDS_Shape& E
|
|||||||
myLI1.Clear();
|
myLI1.Clear();
|
||||||
myLI2.Clear();
|
myLI2.Clear();
|
||||||
myHDS = HDS;
|
myHDS = HDS;
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trc = TopOpeBRepDS_GettraceDSF();
|
|
||||||
trc = trc || TopOpeBRepDS_GettraceEDSF();
|
|
||||||
trc = trc || TopOpeBRep_GettraceEEFF();
|
|
||||||
if (trc) {
|
|
||||||
if (TopOpeBRep_GettraceEEFF()) debeeff();
|
|
||||||
TCollection_AsciiString str="EdgesFiller dim";str=str+myPEI->Dimension();
|
|
||||||
myPEI->Dump(str,myPDS->Shape(myE1),myPDS->Shape(myE2));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
Standard_Boolean esd = myPEI->SameDomain();
|
Standard_Boolean esd = myPEI->SameDomain();
|
||||||
if (esd) myPDS->FillShapesSameDomain(E1,E2);
|
if (esd) myPDS->FillShapesSameDomain(E1,E2);
|
||||||
|
|
||||||
@ -109,17 +95,6 @@ void TopOpeBRep_EdgesFiller::Insert(const TopoDS_Shape& E1,const TopoDS_Shape& E
|
|||||||
if ( ! myF1.IsNull() ) myPDS->AddShape(myF1,1);
|
if ( ! myF1.IsNull() ) myPDS->AddShape(myF1,1);
|
||||||
if ( ! myF2.IsNull() ) myPDS->AddShape(myF2,2);
|
if ( ! myF2.IsNull() ) myPDS->AddShape(myF2,2);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean pointofsegment = P2D.IsPointOfSegment();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (trc) {
|
|
||||||
if (pointofsegment && esd) debposesd();
|
|
||||||
else if (pointofsegment && !esd) debposnesd();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
TopOpeBRepDS_Transition T1 = P2D.Transition(1);
|
TopOpeBRepDS_Transition T1 = P2D.Transition(1);
|
||||||
TopOpeBRepDS_Transition T2 = P2D.Transition(2);
|
TopOpeBRepDS_Transition T2 = P2D.Transition(2);
|
||||||
|
|
||||||
@ -467,55 +442,22 @@ void TopOpeBRep_EdgesFiller::RecomputeInterferences(const TopoDS_Edge& E,TopOpeB
|
|||||||
|
|
||||||
TopOpeBRepDS_TKI tki; tki.FillOnGeometry(LI);
|
TopOpeBRepDS_TKI tki; tki.FillOnGeometry(LI);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer EIX = myPDS->Shape(E); Standard_Boolean TRC=DSREDUEDGETRCE(EIX);
|
|
||||||
if (TRC) cout<<endl<<"RecomputeInterferences E"<<EIX<<" <- "<<LI.Extent()<<endl;
|
|
||||||
if (TRC) tki.DumpTKIIterator("","\n");
|
|
||||||
if (TRC) debefre(EIX);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (tki.Init(); tki.More(); tki.Next()) {
|
for (tki.Init(); tki.More(); tki.Next()) {
|
||||||
TopOpeBRepDS_Kind K; Standard_Integer G; tki.Value(K,G);
|
TopOpeBRepDS_Kind K; Standard_Integer G; tki.Value(K,G);
|
||||||
TopOpeBRepDS_ListOfInterference& loi = tki.ChangeValue(K,G); TopOpeBRepDS_ListOfInterference Rloi;
|
TopOpeBRepDS_ListOfInterference& loi = tki.ChangeValue(K,G); TopOpeBRepDS_ListOfInterference Rloi;
|
||||||
Standard_Integer nloi = loi.Extent();
|
Standard_Integer nloi = loi.Extent();
|
||||||
if (nloi == 0) continue;
|
if (nloi == 0) continue;
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (nloi > 1) {cout<<"TopOpeBRep_EdgesFiller : > 1 I on UNUN/F on E"<<EIX<<" A FAIRE"<<endl;}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Handle(TopOpeBRepDS_Interference)& iloi = loi.First();
|
Handle(TopOpeBRepDS_Interference)& iloi = loi.First();
|
||||||
TopOpeBRepDS_Transition& TU = iloi->ChangeTransition();
|
TopOpeBRepDS_Transition& TU = iloi->ChangeTransition();
|
||||||
Standard_Integer ifb = TU.IndexBefore();
|
Standard_Integer ifb = TU.IndexBefore();
|
||||||
const TopoDS_Face& fb = TopoDS::Face(myPDS->Shape(ifb));
|
const TopoDS_Face& fb = TopoDS::Face(myPDS->Shape(ifb));
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer ifa = TU.IndexAfter();
|
|
||||||
if (ifb != ifa) {cout<<"TopOpeBRep_EdgesFiller : ifb != ifa on E"<<EIX<<" NYI"<<endl;}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Real pE = FDS_Parameter(iloi); TopOpeBRepDS_Transition TN;
|
Standard_Real pE = FDS_Parameter(iloi); TopOpeBRepDS_Transition TN;
|
||||||
TN.ShapeBefore(TU.ShapeBefore());TN.IndexBefore(TU.IndexBefore());
|
TN.ShapeBefore(TU.ShapeBefore());TN.IndexBefore(TU.IndexBefore());
|
||||||
TN.ShapeAfter(TU.ShapeAfter());TN.IndexAfter(TU.IndexAfter());
|
TN.ShapeAfter(TU.ShapeAfter());TN.IndexAfter(TU.IndexAfter());
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean ok =
|
|
||||||
#endif
|
|
||||||
FDS_stateEwithF2d(*myPDS,E,pE,K,G,fb,TN);
|
FDS_stateEwithF2d(*myPDS,E,pE,K,G,fb,TN);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TRC) {
|
|
||||||
TopOpeBRepDS_ListOfInterference l1;l1.Append(iloi);
|
|
||||||
TopOpeBRepDS_TKI dt;dt.FillOnGeometry(l1);dt.DumpTKIIterator("","");
|
|
||||||
if (ok) {
|
|
||||||
cout<<" ";TU.Dump(cout);cout<<endl;
|
|
||||||
cout<<"--> ";TN.Dump(cout);cout<<endl;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
cout<<"--> TN ko"<<endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} // tki.More
|
} // tki.More
|
||||||
} // RecomputeInterferences
|
} // RecomputeInterferences
|
||||||
|
@ -59,8 +59,6 @@
|
|||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepTool_GettraceNYI();
|
extern Standard_Boolean TopOpeBRepTool_GettraceNYI();
|
||||||
extern Standard_Boolean TopOpeBRepTool_GettraceKRO();
|
extern Standard_Boolean TopOpeBRepTool_GettraceKRO();
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceEDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRep_GettracePROEDG();
|
extern Standard_Boolean TopOpeBRep_GettracePROEDG();
|
||||||
extern Standard_Boolean TopOpeBRep_GetcontextTOL0();
|
extern Standard_Boolean TopOpeBRep_GetcontextTOL0();
|
||||||
extern Standard_Boolean TopOpeBRep_GetcontextNOFEI();
|
extern Standard_Boolean TopOpeBRep_GetcontextNOFEI();
|
||||||
@ -547,9 +545,6 @@ Standard_Boolean EdgesIntersector_checkT1D(const TopoDS_Edge& E1,const TopoDS_Ed
|
|||||||
TopOpeBRepDS_Transition& T1 = P2D.ChangeTransition(1);
|
TopOpeBRepDS_Transition& T1 = P2D.ChangeTransition(1);
|
||||||
TopOpeBRepDS_Transition& T2 = P2D.ChangeTransition(2);
|
TopOpeBRepDS_Transition& T2 = P2D.ChangeTransition(2);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean newT1=Standard_False, newT2=Standard_False;
|
|
||||||
#endif
|
|
||||||
Standard_Boolean isvertex12 = isvertex1 && isvertex2;
|
Standard_Boolean isvertex12 = isvertex1 && isvertex2;
|
||||||
Standard_Boolean isvertex22 = isvertex2 && !isvertex12;
|
Standard_Boolean isvertex22 = isvertex2 && !isvertex12;
|
||||||
Standard_Boolean isvertex11 = isvertex1 && !isvertex12;
|
Standard_Boolean isvertex11 = isvertex1 && !isvertex12;
|
||||||
@ -560,9 +555,6 @@ Standard_Boolean EdgesIntersector_checkT1D(const TopoDS_Edge& E1,const TopoDS_Ed
|
|||||||
const TopoDS_Vertex& V2 = P2D.Vertex(2);
|
const TopoDS_Vertex& V2 = P2D.Vertex(2);
|
||||||
TopOpeBRepDS_Transition newT; Standard_Boolean computed = ::EdgesIntersector_checkT1D(myEdge1,myEdge2,V2,newT);
|
TopOpeBRepDS_Transition newT; Standard_Boolean computed = ::EdgesIntersector_checkT1D(myEdge1,myEdge2,V2,newT);
|
||||||
if (computed) T1.Set(newT.Orientation(TopAbs_IN));
|
if (computed) T1.Set(newT.Orientation(TopAbs_IN));
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
else newT1 = Standard_False;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Standard_Boolean T2INT = (T2.Orientation(TopAbs_IN) == TopAbs_INTERNAL);
|
Standard_Boolean T2INT = (T2.Orientation(TopAbs_IN) == TopAbs_INTERNAL);
|
||||||
@ -572,9 +564,6 @@ Standard_Boolean EdgesIntersector_checkT1D(const TopoDS_Edge& E1,const TopoDS_Ed
|
|||||||
const TopoDS_Vertex& V1 = P2D.Vertex(1);
|
const TopoDS_Vertex& V1 = P2D.Vertex(1);
|
||||||
TopOpeBRepDS_Transition newT; Standard_Boolean computed = ::EdgesIntersector_checkT1D(myEdge2,myEdge1,V1,newT);
|
TopOpeBRepDS_Transition newT; Standard_Boolean computed = ::EdgesIntersector_checkT1D(myEdge2,myEdge1,V1,newT);
|
||||||
if (computed) T2.Set(newT.Orientation(TopAbs_IN));
|
if (computed) T2.Set(newT.Orientation(TopAbs_IN));
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
else newT2 = Standard_False;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// xpu121098 : cto900I7 (e12on,vG14)
|
// xpu121098 : cto900I7 (e12on,vG14)
|
||||||
@ -585,10 +574,6 @@ Standard_Boolean EdgesIntersector_checkT1D(const TopoDS_Edge& E1,const TopoDS_Ed
|
|||||||
Standard_Boolean nT2 = ( !T2INT && clE1 && isvertex11 && vcl1.IsSame(P2D.Vertex(1)) );
|
Standard_Boolean nT2 = ( !T2INT && clE1 && isvertex11 && vcl1.IsSame(P2D.Vertex(1)) );
|
||||||
if (nT2) T2.Set(TopAbs_INTERNAL);
|
if (nT2) T2.Set(TopAbs_INTERNAL);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (trc&&(newT1||nT1)) {cout<<"-> ** newT on e(1) = ";T1.Dump(cout);cout<<endl;}
|
|
||||||
if (trc&&(newT2||nT2)) {cout<<"-> ** newT on e(2) = ";T2.Dump(cout);cout<<endl;}
|
|
||||||
#endif
|
|
||||||
} // (isvertex && esd)
|
} // (isvertex && esd)
|
||||||
} // MorePoint
|
} // MorePoint
|
||||||
|
|
||||||
@ -804,11 +789,6 @@ void TopOpeBRep_EdgesIntersector::ReduceSegments()
|
|||||||
Standard_Boolean condredu = (myHasSegment && !mySameDomain);
|
Standard_Boolean condredu = (myHasSegment && !mySameDomain);
|
||||||
if (!condredu) return;
|
if (!condredu) return;
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trc = TopOpeBRepDS_GettraceDSF(); trc = trc || TopOpeBRepDS_GettraceEDSF();
|
|
||||||
if (trc) Dump("AVANT ReduceSegments");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Integer ip = 1;Standard_Integer np = mynp2d;
|
Standard_Integer ip = 1;Standard_Integer np = mynp2d;
|
||||||
while (ip < np) {
|
while (ip < np) {
|
||||||
TopOpeBRep_Point2d& psa = mysp2d(ip);
|
TopOpeBRep_Point2d& psa = mysp2d(ip);
|
||||||
|
@ -40,9 +40,6 @@
|
|||||||
IMPLEMENT_STANDARD_RTTIEXT(TopOpeBRep_FFDumper,MMgt_TShared)
|
IMPLEMENT_STANDARD_RTTIEXT(TopOpeBRep_FFDumper,MMgt_TShared)
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSNC();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSFK();
|
|
||||||
static TCollection_AsciiString PRODINP("dinp ");
|
static TCollection_AsciiString PRODINP("dinp ");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -170,7 +167,7 @@ void TopOpeBRep_FFDumper::DumpLine(const TopOpeBRep_LineInter& LI)
|
|||||||
if (VPI.More()) cout<<endl;
|
if (VPI.More()) cout<<endl;
|
||||||
for (;VPI.More();VPI.Next()) {
|
for (;VPI.More();VPI.Next()) {
|
||||||
const TopOpeBRep_VPointInter& VP = VPI.CurrentVP();
|
const TopOpeBRep_VPointInter& VP = VPI.CurrentVP();
|
||||||
Standard_Boolean dump = VP.Keep() || TopOpeBRepDS_GettraceDSFK();
|
Standard_Boolean dump = VP.Keep();
|
||||||
if (dump) { DumpVP(VP); cout<<endl; }
|
if (dump) { DumpVP(VP); cout<<endl; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,12 +203,6 @@ void TopOpeBRep_FFDumper::DumpVP(const TopOpeBRep_VPointInter& VP)
|
|||||||
cout<<PRODINP<<"L"<<il<<"P"<<VP.Index();if (k) cout<<"K";cout<<" "<<P.X()<<" "<<P.Y()<<" "<<P.Z();
|
cout<<PRODINP<<"L"<<il<<"P"<<VP.Index();if (k) cout<<"K";cout<<" "<<P.X()<<" "<<P.Y()<<" "<<P.Z();
|
||||||
cout<<"; #draw"<<endl;
|
cout<<"; #draw"<<endl;
|
||||||
|
|
||||||
if (TopOpeBRepDS_GettraceDSFK()) {
|
|
||||||
Standard_Real u,v;
|
|
||||||
VP.ParametersOnS1(u,v); cout<<"u1,v1 : "<<u<<" "<<v; cout<<" ";
|
|
||||||
VP.ParametersOnS2(u,v); cout<<"u2,v2 : "<<u<<" "<<v; cout<<endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (VP.ShapeIndex() == 1)
|
if (VP.ShapeIndex() == 1)
|
||||||
DumpVP(VP,1);
|
DumpVP(VP,1);
|
||||||
else if (VP.ShapeIndex() == 2)
|
else if (VP.ShapeIndex() == 2)
|
||||||
@ -237,7 +228,7 @@ void TopOpeBRep_FFDumper::DumpVP(const TopOpeBRep_VPointInter& VP,const Standard
|
|||||||
const TopoDS_Edge& E = TopoDS::Edge(VP.Edge(ISI));
|
const TopoDS_Edge& E = TopoDS::Edge(VP.Edge(ISI));
|
||||||
Standard_Real Epar = VP.EdgeParameter(ISI);
|
Standard_Real Epar = VP.EdgeParameter(ISI);
|
||||||
TopAbs_Orientation O = E.Orientation();
|
TopAbs_Orientation O = E.Orientation();
|
||||||
TopOpeBRepDS_Transition T = TopOpeBRep_FFTransitionTool::ProcessLineTransition(VP,ISI,O);
|
TopOpeBRep_FFTransitionTool::ProcessLineTransition(VP,ISI,O);
|
||||||
const TopoDS_Face F = myPFF->Face(ISI);
|
const TopoDS_Face F = myPFF->Face(ISI);
|
||||||
Standard_Boolean Closed = TopOpeBRepTool_ShapeTool::Closed(E,F);
|
Standard_Boolean Closed = TopOpeBRepTool_ShapeTool::Closed(E,F);
|
||||||
Standard_Boolean Degen = BRep_Tool::Degenerated(E);
|
Standard_Boolean Degen = BRep_Tool::Degenerated(E);
|
||||||
@ -252,7 +243,6 @@ void TopOpeBRep_FFDumper::DumpVP(const TopOpeBRep_VPointInter& VP,const Standard
|
|||||||
if (Closed) cout<<"on closing edge "; else cout<<"on edge ";
|
if (Closed) cout<<"on closing edge "; else cout<<"on edge ";
|
||||||
if (Degen) cout<<" on degenerated edge ";
|
if (Degen) cout<<" on degenerated edge ";
|
||||||
TopAbs::Print(O,cout); cout<<" (ds"<<dsi<<") (ex"<<exi<<") of face of "<<ISI;
|
TopAbs::Print(O,cout); cout<<" (ds"<<dsi<<") (ex"<<exi<<") of face of "<<ISI;
|
||||||
cout<<" : line transition : ";T.Dump(cout);cout<<endl;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,10 +36,6 @@
|
|||||||
#include <TopOpeBRepDS_SurfaceCurveInterference.hxx>
|
#include <TopOpeBRepDS_SurfaceCurveInterference.hxx>
|
||||||
#include <TopOpeBRepDS_Transition.hxx>
|
#include <TopOpeBRepDS_Transition.hxx>
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
//function : TransitionToOrientation
|
//function : TransitionToOrientation
|
||||||
//purpose : static
|
//purpose : static
|
||||||
@ -68,22 +64,12 @@ static Standard_Boolean TransitionToOrientation
|
|||||||
case IntSurf_Outside : result = TopAbs_EXTERNAL; break;
|
case IntSurf_Outside : result = TopAbs_EXTERNAL; break;
|
||||||
case IntSurf_Unknown :
|
case IntSurf_Unknown :
|
||||||
Odefined = Standard_False;
|
Odefined = Standard_False;
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
// if ( TopOpeBRepDS_GettraceDSF() ) {
|
|
||||||
// cout<<"TopOpeBRepDS:TransitionToOrientation : unknown situation"<<endl;
|
|
||||||
// }
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IntSurf_Undecided :
|
case IntSurf_Undecided :
|
||||||
Odefined = Standard_False;
|
Odefined = Standard_False;
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
// if ( TopOpeBRepDS_GettraceDSF() ) {
|
|
||||||
// cout<<"TopOpeBRepDS:TransitionToOrientation : undecided transition"<<endl;
|
|
||||||
// }
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -244,25 +230,14 @@ TopOpeBRepDS_Transition TopOpeBRep_FFTransitionTool::ProcessFaceTransition
|
|||||||
case IntSurf_Unknown :
|
case IntSurf_Unknown :
|
||||||
|
|
||||||
Odefined = Standard_False;
|
Odefined = Standard_False;
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if ( TopOpeBRepDS_GettraceDSF() ) {
|
|
||||||
cout<<"ProcessFaceTransition : unknown situation"<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} // case Touch
|
} // case Touch
|
||||||
|
|
||||||
case IntSurf_Undecided :
|
case IntSurf_Undecided :
|
||||||
|
Odefined = Standard_False;
|
||||||
Odefined = Standard_False;
|
break;
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if ( TopOpeBRepDS_GettraceDSF() ) {
|
|
||||||
cout<<"ProcessFaceTransition : undecided transition"<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
|
|
||||||
} // trans
|
} // trans
|
||||||
|
|
||||||
|
@ -33,7 +33,6 @@
|
|||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern void FEINT_DUMPPOINTS(TopOpeBRep_FaceEdgeIntersector& FEINT,
|
extern void FEINT_DUMPPOINTS(TopOpeBRep_FaceEdgeIntersector& FEINT,
|
||||||
const TopOpeBRepDS_DataStructure& BDS);
|
const TopOpeBRepDS_DataStructure& BDS);
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -60,12 +59,6 @@ void TopOpeBRep_FaceEdgeFiller::Insert
|
|||||||
const TopoDS_Face& FF = TopoDS::Face(F);
|
const TopoDS_Face& FF = TopoDS::Face(F);
|
||||||
const TopoDS_Edge& EE = TopoDS::Edge(E);
|
const TopoDS_Edge& EE = TopoDS::Edge(E);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSF()) {
|
|
||||||
FEINT_DUMPPOINTS(FEINT,HDS->DS());
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// exit if no point.
|
// exit if no point.
|
||||||
FEINT.InitPoint();
|
FEINT.InitPoint();
|
||||||
if ( ! FEINT.MorePoint() ) return;
|
if ( ! FEINT.MorePoint() ) return;
|
||||||
@ -258,9 +251,6 @@ void TopOpeBRep_FaceEdgeFiller::StoreInterference
|
|||||||
// append I to list LI
|
// append I to list LI
|
||||||
LI.Append(I);
|
LI.Append(I);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean appendtoG = Standard_False;
|
|
||||||
#endif
|
|
||||||
Standard_Integer G = I->Geometry();
|
Standard_Integer G = I->Geometry();
|
||||||
|
|
||||||
// append I to list of interference connected to G = I->Geometry()
|
// append I to list of interference connected to G = I->Geometry()
|
||||||
@ -273,16 +263,10 @@ void TopOpeBRep_FaceEdgeFiller::StoreInterference
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case TopOpeBRepDS_SURFACE :
|
case TopOpeBRepDS_SURFACE :
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
appendtoG = Standard_True;
|
|
||||||
#endif
|
|
||||||
BDS.ChangeSurfaceInterferences(G).Append(I);
|
BDS.ChangeSurfaceInterferences(G).Append(I);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TopOpeBRepDS_CURVE :
|
case TopOpeBRepDS_CURVE :
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
appendtoG = Standard_True;
|
|
||||||
#endif
|
|
||||||
BDS.ChangeCurveInterferences(G).Append(I);
|
BDS.ChangeCurveInterferences(G).Append(I);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -293,14 +277,6 @@ void TopOpeBRep_FaceEdgeFiller::StoreInterference
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSF()) {
|
|
||||||
cout<<"append "; I->Dump(cout);
|
|
||||||
if (appendtoG) cout<<" and to G"<<G<<" list";
|
|
||||||
cout<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
@ -73,12 +73,10 @@ void FEINT_DUMPPOINTS(TopOpeBRep_FaceEdgeIntersector& FEINT,
|
|||||||
cout<<"\t"<<P3D.X()<<" "<<P3D.Y()<<" "<<P3D.Z()<<endl;
|
cout<<"\t"<<P3D.X()<<" "<<P3D.Y()<<" "<<P3D.Z()<<endl;
|
||||||
|
|
||||||
cout<<"\t"; if (isvertexF) cout<<"IS VERTEX, ";
|
cout<<"\t"; if (isvertexF) cout<<"IS VERTEX, ";
|
||||||
cout<<"T on "<<FFindex<<" : "; T1.Dump(cout);
|
|
||||||
cout<<" pUV = "<<pUV.X()<<" "<<pUV.Y()<<endl;
|
cout<<" pUV = "<<pUV.X()<<" "<<pUV.Y()<<endl;
|
||||||
cout<<" sta = "; TopAbs::Print(sta,cout);cout<<endl;
|
cout<<" sta = "; TopAbs::Print(sta,cout);cout<<endl;
|
||||||
|
|
||||||
cout<<"\t"; if (isvertexE) cout<<"IS VERTEX, ";
|
cout<<"\t"; if (isvertexE) cout<<"IS VERTEX, ";
|
||||||
cout<<"T on "<<EEindex<<" : "; T2.Dump(cout);
|
|
||||||
cout<<" parE = "<<parE<<endl;
|
cout<<" parE = "<<parE<<endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,9 +71,6 @@ Standard_EXPORT Standard_Boolean FUN_projPonL(const gp_Pnt& P,const TopOpeBRep_L
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSFK();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSNC();
|
|
||||||
void debffsamdom(void){}
|
void debffsamdom(void){}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -221,11 +218,6 @@ Standard_Boolean TopOpeBRep_FacesFiller::CheckLine(TopOpeBRep_LineInter& L) cons
|
|||||||
TopOpeBRep_TypeLineCurve t = L.TypeLineCurve();
|
TopOpeBRep_TypeLineCurve t = L.TypeLineCurve();
|
||||||
Standard_Integer nbvp = L.NbVPoint();
|
Standard_Integer nbvp = L.NbVPoint();
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean TDSF = TopOpeBRepDS_GettraceDSF();
|
|
||||||
if (TDSF) { cout<<"CheckLine ";TopOpeBRep::Print(t,cout);cout<<" "<<nbvp<<" points"<<endl; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if ( t == TopOpeBRep_WALKING ) {
|
if ( t == TopOpeBRep_WALKING ) {
|
||||||
if ( nbvp < 2 ) {
|
if ( nbvp < 2 ) {
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
@ -267,22 +259,7 @@ Standard_Boolean TopOpeBRep_FacesFiller::CheckLine(TopOpeBRep_LineInter& L) cons
|
|||||||
if (isBV1) V2 = B.VertexOnS1();
|
if (isBV1) V2 = B.VertexOnS1();
|
||||||
if (isBV2) V2 = B.VertexOnS2();
|
if (isBV2) V2 = B.VertexOnS2();
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TDSF) {
|
|
||||||
cout<<"CheckLine : isAV1 isAV2 isBV1 isBV2 ";
|
|
||||||
cout<<isAV1<<" "<<isAV2<<" "<<isBV1<<" "<<isBV2<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if ( !V1.IsNull() && ( V1.IsSame(V2) ) ) {
|
if ( !V1.IsNull() && ( V1.IsSame(V2) ) ) {
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Real parA = A.ParameterOnLine();
|
|
||||||
Standard_Real parB = B.ParameterOnLine();
|
|
||||||
if (TDSF) {
|
|
||||||
cout<<"kpart : parA parB delta "<<parA<<" "<<parB<<" "<<parA-parB<<endl;
|
|
||||||
cout<<"kpart : rejet de ligne"<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return Standard_False;
|
return Standard_False;
|
||||||
}
|
}
|
||||||
} // LINE
|
} // LINE
|
||||||
@ -400,26 +377,12 @@ void TopOpeBRep_FacesFiller::VP_Position(TopOpeBRep_FacesIntersector& )
|
|||||||
void TopOpeBRep_FacesFiller::VP_Position(TopOpeBRep_LineInter& L)
|
void TopOpeBRep_FacesFiller::VP_Position(TopOpeBRep_LineInter& L)
|
||||||
{
|
{
|
||||||
myLine = &L;
|
myLine = &L;
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSFK()) {
|
|
||||||
cout<<endl<<"VP_Position on line "<<L.Index()<<" ";L.DumpType();cout<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
Standard_Boolean isrest = (L.TypeLineCurve() == TopOpeBRep_RESTRICTION) ;
|
Standard_Boolean isrest = (L.TypeLineCurve() == TopOpeBRep_RESTRICTION) ;
|
||||||
|
|
||||||
if (!isrest) VP_PositionOnL(L);
|
if (!isrest) VP_PositionOnL(L);
|
||||||
else VP_PositionOnR(L);
|
else VP_PositionOnR(L);
|
||||||
|
|
||||||
L.SetVPBounds();
|
L.SetVPBounds();
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSFK()) {
|
|
||||||
Standard_Integer VPF,VPL,VPN; L.VPBounds(VPF,VPL,VPN);
|
|
||||||
cout<<"SetVPBounds : VPF,VPL,VPN = "<<VPF<<","<<VPL<<","<<VPN;
|
|
||||||
if (VPN != 0) cout<<" : VP(s) kept"<<endl;
|
|
||||||
else cout<<" : NO VP kept"<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
@ -520,16 +483,6 @@ void TopOpeBRep_FacesFiller::VP_PositionOnR(TopOpeBRep_LineInter& L)
|
|||||||
VP.ChangeKeep(Standard_False); // xpu051198
|
VP.ChangeKeep(Standard_False); // xpu051198
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSFK()) {
|
|
||||||
cout<<"VP "<<VP.Index()<<" on "<<Esi<<" : ";
|
|
||||||
TopAbs::Print(VP.State(Esi),cout);
|
|
||||||
cout<<"/"<<Esi<<" ";
|
|
||||||
if (VP.Keep()) { cout<<"kept"<<endl; }
|
|
||||||
else { cout<<"NOT kept"<<endl; }
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -560,16 +513,6 @@ void TopOpeBRep_FacesFiller::VP_Position(TopOpeBRep_VPointInter& VP,TopOpeBRep_V
|
|||||||
|
|
||||||
if (c1) VPC.VPointPosition(myF1,VP,1,myPointClassifier,AssumeINON,tol);
|
if (c1) VPC.VPointPosition(myF1,VP,1,myPointClassifier,AssumeINON,tol);
|
||||||
if (c2) VPC.VPointPosition(myF2,VP,2,myPointClassifier,AssumeINON,tol);
|
if (c2) VPC.VPointPosition(myF2,VP,2,myPointClassifier,AssumeINON,tol);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSFK()) {
|
|
||||||
cout<<"VP "<<VP.Index()<<" on "<<si<<" : ";
|
|
||||||
if (c1) { TopAbs::Print(VP.State(1),cout);cout<<"/1 "; }
|
|
||||||
if (c2) { TopAbs::Print(VP.State(2),cout);cout<<"/2 "; }
|
|
||||||
if (VP.Keep()) { cout<<"kept"<<endl; }
|
|
||||||
else { cout<<"NOT kept"<<endl; }
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
@ -63,15 +63,6 @@
|
|||||||
Standard_EXPORT void debrest(const Standard_Integer i) {cout<<"+ debrest "<<i<<endl;}
|
Standard_EXPORT void debrest(const Standard_Integer i) {cout<<"+ debrest "<<i<<endl;}
|
||||||
Standard_EXPORT void debrline() {cout<<"+ debrline"<<endl;}
|
Standard_EXPORT void debrline() {cout<<"+ debrline"<<endl;}
|
||||||
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceCX(const Standard_Integer i);
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceSPSX(const Standard_Integer i);
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceSTRANGE();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceISTO();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSP();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSFK();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSNC();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSLT();
|
|
||||||
extern Standard_Boolean TopOpeBRep_GettraceNVP(Standard_Integer a,Standard_Integer b,Standard_Integer c,Standard_Integer d,Standard_Integer e);
|
extern Standard_Boolean TopOpeBRep_GettraceNVP(Standard_Integer a,Standard_Integer b,Standard_Integer c,Standard_Integer d,Standard_Integer e);
|
||||||
extern Standard_Boolean GLOBAL_bvpr;
|
extern Standard_Boolean GLOBAL_bvpr;
|
||||||
extern void debvprmess(Standard_Integer f1,Standard_Integer f2,Standard_Integer il,Standard_Integer vp,Standard_Integer si);
|
extern void debvprmess(Standard_Integer f1,Standard_Integer f2,Standard_Integer il,Standard_Integer vp,Standard_Integer si);
|
||||||
@ -370,17 +361,7 @@ void TopOpeBRep_FacesFiller::ProcessLine()
|
|||||||
Standard_Boolean reject = ( !myLineOK || myLine==NULL );
|
Standard_Boolean reject = ( !myLineOK || myLine==NULL );
|
||||||
if (reject) return;
|
if (reject) return;
|
||||||
ResetDSC();
|
ResetDSC();
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer ili = myLine->Index(),nli = myFacesIntersector->NbLines();
|
|
||||||
Standard_Boolean tcx = TopOpeBRepDS_GettraceCX(ili);
|
|
||||||
Standard_Boolean tDSF = TopOpeBRepDS_GettraceDSF();
|
|
||||||
Standard_Boolean traceDSNC = TopOpeBRepDS_GettraceDSNC();
|
|
||||||
if(tDSF)cout<<"trc tnvp 1 "<<myexF1<<" "<<myexF2<<" "<<ili<<endl;
|
|
||||||
if (tDSF||tcx) myHFFD->DumpLine(*myLine);
|
|
||||||
if (traceDSNC) cout<<"line "<<ili<<"/"<<nli<<endl;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Boolean HasVPonR = myLine->HasVPonR();
|
Standard_Boolean HasVPonR = myLine->HasVPonR();
|
||||||
if (HasVPonR) FillLineVPonR();
|
if (HasVPonR) FillLineVPonR();
|
||||||
else FillLine();
|
else FillLine();
|
||||||
@ -389,12 +370,7 @@ void TopOpeBRep_FacesFiller::ProcessLine()
|
|||||||
if (inl) return;
|
if (inl) return;
|
||||||
|
|
||||||
myHDS->SortOnParameter(myDSCIL);
|
myHDS->SortOnParameter(myDSCIL);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
TopOpeBRepDS_Dumper Dumper(myHDS);
|
|
||||||
if (tDSF||traceDSNC) Dumper.DumpLOI(myDSCIL,cout,"current curve : ");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
AddShapesLine();
|
AddShapesLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,26 +400,11 @@ void TopOpeBRep_FacesFiller::ProcessVPInotonR(TopOpeBRep_VPointInterIterator& VP
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void TopOpeBRep_FacesFiller::ProcessVPnotonR(const TopOpeBRep_VPointInter& VP)
|
void TopOpeBRep_FacesFiller::ProcessVPnotonR(const TopOpeBRep_VPointInter& VP)
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean traceDSF = TopOpeBRepDS_GettraceDSF();
|
|
||||||
Standard_Boolean traceDSP = TopOpeBRepDS_GettraceDSP();
|
|
||||||
Standard_Boolean traceISTO = TopOpeBRepDS_GettraceISTO();
|
|
||||||
if (traceDSF) cout<<endl;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Integer ShapeIndex = 0;
|
Standard_Integer ShapeIndex = 0;
|
||||||
Standard_Integer iVP = VP.Index();
|
Standard_Integer iVP = VP.Index();
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
Standard_Integer ili=myLine->Index(),ivp=iVP,isi=ShapeIndex;
|
Standard_Integer ili=myLine->Index(),ivp=iVP,isi=ShapeIndex;
|
||||||
if(traceDSF || traceDSP){
|
|
||||||
cout<<"trc tnvp 1 "<<myexF1<<" "<<myexF2<<" "<<ili<<" "<<ivp<<" "<<isi;
|
|
||||||
cout<<"; # VPonR "<<iVP<<" on "<<ShapeIndex<<endl;
|
|
||||||
}
|
|
||||||
if (traceISTO) {
|
|
||||||
cout<<"f1,f2,l,vp,si : ";
|
|
||||||
cout<<myexF1<<","<<myexF2<<","<<ili<<","<<ivp<<","<<isi<<endl;
|
|
||||||
}
|
|
||||||
GLOBAL_bvpr = TopOpeBRep_GettraceNVP(myexF1,myexF2,ili,ivp,isi);
|
GLOBAL_bvpr = TopOpeBRep_GettraceNVP(myexF1,myexF2,ili,ivp,isi);
|
||||||
if (GLOBAL_bvpr) debvprmess(myexF1,myexF2,ili,ivp,isi);
|
if (GLOBAL_bvpr) debvprmess(myexF1,myexF2,ili,ivp,isi);
|
||||||
#endif
|
#endif
|
||||||
@ -547,10 +508,6 @@ static Standard_Boolean FUN_brep_ONfirstP(const TopOpeBRep_VPointInter& vpf, con
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void TopOpeBRep_FacesFiller::ProcessRLine()
|
void TopOpeBRep_FacesFiller::ProcessRLine()
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean tDSF = TopOpeBRepDS_GettraceDSF();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (myLine->TypeLineCurve() != TopOpeBRep_RESTRICTION) {return;}
|
if (myLine->TypeLineCurve() != TopOpeBRep_RESTRICTION) {return;}
|
||||||
|
|
||||||
Standard_Boolean addIFE = Standard_True;
|
Standard_Boolean addIFE = Standard_True;
|
||||||
@ -568,12 +525,6 @@ void TopOpeBRep_FacesFiller::ProcessRLine()
|
|||||||
Standard_Integer rank = myDS->AncestorRank(iErest);
|
Standard_Integer rank = myDS->AncestorRank(iErest);
|
||||||
Standard_Integer OOrank = (rank == 1)? 2: 1;
|
Standard_Integer OOrank = (rank == 1)? 2: 1;
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tDSF) {cout<<"+ edge restriction "<<myDS->SectionEdge(Erest);
|
|
||||||
cout<<" (DS "<<iErest<<")"<<endl;}
|
|
||||||
Standard_Boolean trce = TopOpeBRepDS_GettraceSPSX(iErest); if(trce) debrest(iErest);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Integer iF1 = myDS->AddShape(myF1,1);
|
Standard_Integer iF1 = myDS->AddShape(myF1,1);
|
||||||
Standard_Integer iF2 = myDS->AddShape(myF2,2);
|
Standard_Integer iF2 = myDS->AddShape(myF2,2);
|
||||||
Handle(TopOpeBRepDS_Interference) IFE;
|
Handle(TopOpeBRepDS_Interference) IFE;
|
||||||
@ -589,10 +540,6 @@ void TopOpeBRep_FacesFiller::ProcessRLine()
|
|||||||
if (nopunk) processUNK = Standard_False;
|
if (nopunk) processUNK = Standard_False;
|
||||||
#endif
|
#endif
|
||||||
if (processUNK && (T1unk || T2unk)) {
|
if (processUNK && (T1unk || T2unk)) {
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trc = TopOpeBRepDS_GettraceSTRANGE(); trc = trc || tDSF;
|
|
||||||
if (trc) cout<<"T UNKNOWN FEI F"<<iF1<<" F"<<iF2<<" on Erest"<<iErest<<endl;
|
|
||||||
#endif
|
|
||||||
TopoDS_Shape F = (*this).Face(rank); Standard_Integer iF = myDS->Shape(F);
|
TopoDS_Shape F = (*this).Face(rank); Standard_Integer iF = myDS->Shape(F);
|
||||||
TopoDS_Shape OOF = (*this).Face(OOrank); Standard_Integer iOOF = myDS->Shape(OOF);
|
TopoDS_Shape OOF = (*this).Face(OOrank); Standard_Integer iOOF = myDS->Shape(OOF);
|
||||||
Standard_Boolean findTOOF = (T1unk && (OOrank == 1)) || (T2unk && (OOrank == 2));
|
Standard_Boolean findTOOF = (T1unk && (OOrank == 1)) || (T2unk && (OOrank == 2));
|
||||||
@ -606,12 +553,6 @@ void TopOpeBRep_FacesFiller::ProcessRLine()
|
|||||||
if (OOTok) {
|
if (OOTok) {
|
||||||
if (OOrank == 1) FDS_SetT(T1,T);
|
if (OOrank == 1) FDS_SetT(T1,T);
|
||||||
else FDS_SetT(T2,T);
|
else FDS_SetT(T2,T);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (trc) {
|
|
||||||
cout<<"F"<<iOOF<<" + new FEI(";TopAbs::Print(T.Before(),cout);cout<<",";
|
|
||||||
TopAbs::Print(T.After(),cout);cout<<" (F"<<iF<<") (E"<<iErest<<"))\n";
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
} // !findTOOF
|
} // !findTOOF
|
||||||
if (findTF) {
|
if (findTF) {
|
||||||
@ -621,10 +562,6 @@ void TopOpeBRep_FacesFiller::ProcessRLine()
|
|||||||
if (Tok) {
|
if (Tok) {
|
||||||
if (rank == 1) FDS_SetT(T1,T);
|
if (rank == 1) FDS_SetT(T1,T);
|
||||||
else FDS_SetT(T2,T);
|
else FDS_SetT(T2,T);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (trc) {cout<<"F"<<iF<<" + new FEI(";TopAbs::Print(T.Before(),cout);cout<<",";
|
|
||||||
TopAbs::Print(T.After(),cout);cout<<" (F"<<iOOF<<") (E"<<iErest<<"))\n";}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
T1unk = T1.IsUnknown();
|
T1unk = T1.IsUnknown();
|
||||||
@ -644,20 +581,9 @@ void TopOpeBRep_FacesFiller::ProcessRLine()
|
|||||||
TopOpeBRep_VPointInterIterator VPI;
|
TopOpeBRep_VPointInterIterator VPI;
|
||||||
VPI.Init((*myLine));
|
VPI.Init((*myLine));
|
||||||
Standard_Real tola = Precision::Angular()*1.e5;//NYIXPUTOL
|
Standard_Real tola = Precision::Angular()*1.e5;//NYIXPUTOL
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tDSF) {
|
|
||||||
debrline();
|
|
||||||
cout<<endl<<"------------ Rline processing --------------------"<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const TopOpeBRep_VPointInter& vpf = VPI.CurrentVP();
|
const TopOpeBRep_VPointInter& vpf = VPI.CurrentVP();
|
||||||
for (; VPI.More(); VPI.Next()) {
|
for (; VPI.More(); VPI.Next()) {
|
||||||
const TopOpeBRep_VPointInter& VP = VPI.CurrentVP();
|
const TopOpeBRep_VPointInter& VP = VPI.CurrentVP();
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tDSF) {cout<<endl;myHFFD->DumpVP(VP);}
|
|
||||||
#endif
|
|
||||||
Standard_Integer absindex = VP.ShapeIndex(); // 0,1,2,3
|
Standard_Integer absindex = VP.ShapeIndex(); // 0,1,2,3
|
||||||
Standard_Real parRest;
|
Standard_Real parRest;
|
||||||
Standard_Boolean okR = VP.ParonE(Erest,parRest);
|
Standard_Boolean okR = VP.ParonE(Erest,parRest);
|
||||||
@ -771,16 +697,10 @@ void TopOpeBRep_FacesFiller::ProcessRLine()
|
|||||||
Standard_Integer iOOFace = myDS->Shape(OOFace);
|
Standard_Integer iOOFace = myDS->Shape(OOFace);
|
||||||
|
|
||||||
TopoDS_Edge edge,OOedge; Standard_Integer OOedgeIndex;
|
TopoDS_Edge edge,OOedge; Standard_Integer OOedgeIndex;
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer SIedgeIndex;
|
|
||||||
#endif
|
|
||||||
Standard_Real paredge;
|
Standard_Real paredge;
|
||||||
Standard_Integer onbound;
|
Standard_Integer onbound;
|
||||||
if (SIErest) {
|
if (SIErest) {
|
||||||
edge = Erest;
|
edge = Erest;
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
SIedgeIndex = iErest;
|
|
||||||
#endif
|
|
||||||
paredge = parRest;
|
paredge = parRest;
|
||||||
onbound = obRest;
|
onbound = obRest;
|
||||||
OOedge = OOE;
|
OOedge = OOE;
|
||||||
@ -790,9 +710,6 @@ void TopOpeBRep_FacesFiller::ProcessRLine()
|
|||||||
OOedgeIndex = iErest;
|
OOedgeIndex = iErest;
|
||||||
onbound = obOO;
|
onbound = obOO;
|
||||||
edge = OOE;
|
edge = OOE;
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
SIedgeIndex = iOO;
|
|
||||||
#endif
|
|
||||||
paredge = OOpar;
|
paredge = OOpar;
|
||||||
}
|
}
|
||||||
// PVIndex :
|
// PVIndex :
|
||||||
@ -867,11 +784,6 @@ void TopOpeBRep_FacesFiller::ProcessRLine()
|
|||||||
if (!ok) continue;
|
if (!ok) continue;
|
||||||
transEdge.Before(Tr.Before()); transEdge.After(Tr.After());
|
transEdge.Before(Tr.Before()); transEdge.After(Tr.After());
|
||||||
}
|
}
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tDSF) {cout<<"*-> new transEdge (edge"<<SIedgeIndex<<",face"<<iOOFace<<")=";
|
|
||||||
TopAbs::Print(transEdge.Before(),cout);
|
|
||||||
cout<<" ";TopAbs::Print(transEdge.After(),cout);cout<<endl;}
|
|
||||||
#endif
|
|
||||||
}//Tunk
|
}//Tunk
|
||||||
Tunk = FDS_hasUNK(transEdge);
|
Tunk = FDS_hasUNK(transEdge);
|
||||||
if (Tunk) continue;
|
if (Tunk) continue;
|
||||||
@ -944,7 +856,6 @@ static Standard_Boolean FUN_haslastvpon0(const TopOpeBRep_LineInter& L)
|
|||||||
void TopOpeBRep_FacesFiller::FillLineVPonR()
|
void TopOpeBRep_FacesFiller::FillLineVPonR()
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
Standard_Boolean tDSF = TopOpeBRepDS_GettraceDSF();
|
|
||||||
Standard_Boolean trline = Standard_False;
|
Standard_Boolean trline = Standard_False;
|
||||||
#endif
|
#endif
|
||||||
// if a VP is on degenerated edge, adds the triplet
|
// if a VP is on degenerated edge, adds the triplet
|
||||||
@ -977,13 +888,7 @@ void TopOpeBRep_FacesFiller::FillLineVPonR()
|
|||||||
|
|
||||||
// walking (case mouch1a 1 1) : line (vpfirst on 3,vplast on 0,nvpkept = 2) => kept
|
// walking (case mouch1a 1 1) : line (vpfirst on 3,vplast on 0,nvpkept = 2) => kept
|
||||||
myLastVPison0 = ::FUN_haslastvpon0(*myLine);
|
myLastVPison0 = ::FUN_haslastvpon0(*myLine);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tDSF) {
|
|
||||||
if (myLineIsonEdge) cout<<" geometric line is on edge"<<endl;
|
|
||||||
else cout <<" geometric line not on edge"<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
//---------------------------------------------------------------------- // IMPORTANT :
|
//---------------------------------------------------------------------- // IMPORTANT :
|
||||||
// Some of Curve/Point transitions for vpoints keep on RESTRICTION lines
|
// Some of Curve/Point transitions for vpoints keep on RESTRICTION lines
|
||||||
// sharing same domain with the current geometric line are computed here
|
// sharing same domain with the current geometric line are computed here
|
||||||
@ -1014,10 +919,6 @@ void TopOpeBRep_FacesFiller::FillLineVPonR()
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void TopOpeBRep_FacesFiller::FillLine()
|
void TopOpeBRep_FacesFiller::FillLine()
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean tDSF = TopOpeBRepDS_GettraceDSF();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Integer iINON1,iINONn,nINON;
|
Standard_Integer iINON1,iINONn,nINON;
|
||||||
myLine->VPBounds(iINON1,iINONn,nINON);
|
myLine->VPBounds(iINON1,iINONn,nINON);
|
||||||
if ( nINON == 0 ) return;
|
if ( nINON == 0 ) return;
|
||||||
@ -1030,11 +931,7 @@ void TopOpeBRep_FacesFiller::FillLine()
|
|||||||
|
|
||||||
const TopOpeBRep_VPointInter& VP = VPI.CurrentVP();
|
const TopOpeBRep_VPointInter& VP = VPI.CurrentVP();
|
||||||
if ( ! VP.Keep() ) continue;
|
if ( ! VP.Keep() ) continue;
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tDSF) cout<<endl;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Integer PVIndex;
|
Standard_Integer PVIndex;
|
||||||
TopOpeBRepDS_Kind PVKind;
|
TopOpeBRepDS_Kind PVKind;
|
||||||
TopOpeBRepDS_ListIteratorOfListOfInterference itCPIL(myDSCIL);
|
TopOpeBRepDS_ListIteratorOfListOfInterference itCPIL(myDSCIL);
|
||||||
@ -1131,15 +1028,7 @@ void TopOpeBRep_FacesFiller::AddShapesLine()
|
|||||||
}
|
}
|
||||||
if (onsampt) id = Standard_True;
|
if (onsampt) id = Standard_True;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSF()) {
|
|
||||||
cout<<endl<<"minmax "<<pmin<<","<<pmax;
|
|
||||||
if (id) cout<<" --> rejet";
|
|
||||||
cout<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (id) {
|
if (id) {
|
||||||
DSC.ChangeKeep(Standard_False);
|
DSC.ChangeKeep(Standard_False);
|
||||||
return;
|
return;
|
||||||
@ -1197,12 +1086,6 @@ void TopOpeBRep_FacesFiller::StoreCurveInterference(const Handle(TopOpeBRepDS_In
|
|||||||
if ( myDSCIndex == 0 ) {
|
if ( myDSCIndex == 0 ) {
|
||||||
TopOpeBRepDS_Curve DSC;
|
TopOpeBRepDS_Curve DSC;
|
||||||
myDSCIndex = myDS->AddCurve(DSC);
|
myDSCIndex = myDS->AddCurve(DSC);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSF() || TopOpeBRepDS_GettraceDSNC())
|
|
||||||
cout<<"new DSC "<<myDSCIndex<<endl;
|
|
||||||
if (TopOpeBRepDS_GettraceDSLT()) myLine->DumpLineTransitions(cout);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
I->Support(myDSCIndex);
|
I->Support(myDSCIndex);
|
||||||
@ -1217,12 +1100,6 @@ Standard_Boolean TopOpeBRep_FacesFiller::GetGeometry(TopOpeBRepDS_ListIteratorOf
|
|||||||
{
|
{
|
||||||
TopOpeBRepDS_Point DSP = TopOpeBRep_PointGeomTool::MakePoint(VP);
|
TopOpeBRepDS_Point DSP = TopOpeBRep_PointGeomTool::MakePoint(VP);
|
||||||
Standard_Boolean b = myHDS->GetGeometry(IT,DSP,G,K);
|
Standard_Boolean b = myHDS->GetGeometry(IT,DSP,G,K);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trc = TopOpeBRepDS_GettraceDSF() || TopOpeBRepDS_GettraceDSP();
|
|
||||||
if (b && trc) {
|
|
||||||
Standard_Boolean newinDS = Standard_False; myHFFD->DumpDSP(VP,K,G,newinDS);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1245,13 +1122,6 @@ Standard_Integer TopOpeBRep_FacesFiller::MakeGeometry(const TopOpeBRep_VPointInt
|
|||||||
K = TopOpeBRepDS_POINT;
|
K = TopOpeBRepDS_POINT;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trc = TopOpeBRepDS_GettraceDSF() || TopOpeBRepDS_GettraceDSP();
|
|
||||||
if (trc) {
|
|
||||||
Standard_Boolean newinDS = Standard_True; myHFFD->DumpDSP(VP,K,G,newinDS);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return G;
|
return G;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,8 +53,6 @@
|
|||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRep_GetcontextALWLNBP(Standard_Integer&);
|
extern Standard_Boolean TopOpeBRep_GetcontextALWLNBP(Standard_Integer&);
|
||||||
extern Standard_Boolean TopOpeBRep_GettraceCONIC();
|
extern Standard_Boolean TopOpeBRep_GettraceCONIC();
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSNC();
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
@ -647,16 +645,6 @@ void TopOpeBRep_LineInter::DumpBipoint
|
|||||||
|
|
||||||
void TopOpeBRep_LineInter::SetOK(const Standard_Boolean B)
|
void TopOpeBRep_LineInter::SetOK(const Standard_Boolean B)
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSF() || TopOpeBRepDS_GettraceDSNC()) {
|
|
||||||
if (myOK != B) {
|
|
||||||
cout<<"line "<<myIndex<<" (";
|
|
||||||
TopOpeBRep::Print(myTypeLineCurve,cout);cout<<") ";
|
|
||||||
if (!B) cout<<"OK->NOK"; else cout<<"NOK->OK";
|
|
||||||
cout<<endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
myOK = B;
|
myOK = B;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -692,9 +680,7 @@ Standard_OStream& TopOpeBRep_LineInter::DumpLineTransitions(Standard_OStream& OS
|
|||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
OS<<"transition from f1 / f2 "; TopAbs::Print(myF2.Orientation(),OS);
|
OS<<"transition from f1 / f2 "; TopAbs::Print(myF2.Orientation(),OS);
|
||||||
OS<<" : "; myLineTonF1.Dump(OS); OS<<endl;
|
|
||||||
OS<<"transition from f2 / f1 "; TopAbs::Print(myF1.Orientation(),OS);
|
OS<<"transition from f2 / f1 "; TopAbs::Print(myF1.Orientation(),OS);
|
||||||
OS<<" : "; myLineTonF2.Dump(OS); OS<<endl;
|
|
||||||
#endif
|
#endif
|
||||||
return OS;
|
return OS;
|
||||||
}
|
}
|
||||||
|
@ -104,9 +104,6 @@ void TopOpeBRep_Point2d::Dump(const Standard_Integer E1index,const Standard_Inte
|
|||||||
Standard_Integer sts = Status();
|
Standard_Integer sts = Status();
|
||||||
Standard_Boolean pos = IsPointOfSegment();
|
Standard_Boolean pos = IsPointOfSegment();
|
||||||
|
|
||||||
const TopOpeBRepDS_Transition& T1 = Transition(1);
|
|
||||||
const TopOpeBRepDS_Transition& T2 = Transition(2);
|
|
||||||
|
|
||||||
Standard_Boolean isvertex1 = IsVertex(1); TopoDS_Vertex V1; if (isvertex1) V1 = Vertex(1);
|
Standard_Boolean isvertex1 = IsVertex(1); TopoDS_Vertex V1; if (isvertex1) V1 = Vertex(1);
|
||||||
Standard_Boolean isvertex2 = IsVertex(2); TopoDS_Vertex V2; if (isvertex2) V2 = Vertex(2);
|
Standard_Boolean isvertex2 = IsVertex(2); TopoDS_Vertex V2; if (isvertex2) V2 = Vertex(2);
|
||||||
|
|
||||||
@ -132,8 +129,7 @@ void TopOpeBRep_Point2d::Dump(const Standard_Integer E1index,const Standard_Inte
|
|||||||
cout<<" on (1) :";
|
cout<<" on (1) :";
|
||||||
cout<<" vertex(1) : ";
|
cout<<" vertex(1) : ";
|
||||||
cout<<(isvertex1?1:0);
|
cout<<(isvertex1?1:0);
|
||||||
cout<<" T "<<E1index<<"(1) : ";
|
cout<<" T "<<E1index<<"(1)";
|
||||||
T1.Dump(cout);
|
|
||||||
cout<<" par(1) = "<<par1;
|
cout<<" par(1) = "<<par1;
|
||||||
if (isvertex1) {
|
if (isvertex1) {
|
||||||
P3D = BRep_Tool::Pnt(V1);
|
P3D = BRep_Tool::Pnt(V1);
|
||||||
@ -144,8 +140,7 @@ void TopOpeBRep_Point2d::Dump(const Standard_Integer E1index,const Standard_Inte
|
|||||||
cout<<" on (2) :";
|
cout<<" on (2) :";
|
||||||
cout<<" vertex(2) : ";
|
cout<<" vertex(2) : ";
|
||||||
cout<<(isvertex2?1:0);
|
cout<<(isvertex2?1:0);
|
||||||
cout<<" T "<<E2index<<"(2) : ";
|
cout<<" T "<<E2index<<"(2)";
|
||||||
T2.Dump(cout);
|
|
||||||
cout<<" par(2) = "<<par2;
|
cout<<" par(2) = "<<par2;
|
||||||
if (isvertex2) {
|
if (isvertex2) {
|
||||||
P3D = BRep_Tool::Pnt(V2);
|
P3D = BRep_Tool::Pnt(V2);
|
||||||
|
@ -76,9 +76,6 @@
|
|||||||
#include <TopOpeBRep_FFDumper.hxx>
|
#include <TopOpeBRep_FFDumper.hxx>
|
||||||
#include <Geom_TrimmedCurve.hxx>
|
#include <Geom_TrimmedCurve.hxx>
|
||||||
#include <Geom_Line.hxx>
|
#include <Geom_Line.hxx>
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSNC();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDEGEN();
|
|
||||||
extern Standard_Boolean TopOpeBRep_GettraceBIPS();
|
extern Standard_Boolean TopOpeBRep_GettraceBIPS();
|
||||||
extern Standard_Boolean TopOpeBRep_GettraceDEGEN();
|
extern Standard_Boolean TopOpeBRep_GettraceDEGEN();
|
||||||
extern Standard_Boolean FUN_debnull(const TopoDS_Shape& s){Standard_Boolean isnull = s.IsNull(); if (isnull) cout <<"***"; return isnull;}
|
extern Standard_Boolean FUN_debnull(const TopoDS_Shape& s){Standard_Boolean isnull = s.IsNull(); if (isnull) cout <<"***"; return isnull;}
|
||||||
|
@ -43,12 +43,6 @@
|
|||||||
#include <TopOpeBRepTool_TOOL.hxx>
|
#include <TopOpeBRepTool_TOOL.hxx>
|
||||||
#include <TopTools_MapOfShape.hxx>
|
#include <TopTools_MapOfShape.hxx>
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSFK();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSNC();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_EXPORT Standard_Boolean FUN_EqualponR(const TopOpeBRep_LineInter& Lrest,
|
Standard_EXPORT Standard_Boolean FUN_EqualponR(const TopOpeBRep_LineInter& Lrest,
|
||||||
const TopOpeBRep_VPointInter& VP1,
|
const TopOpeBRep_VPointInter& VP1,
|
||||||
const TopOpeBRep_VPointInter& VP2);
|
const TopOpeBRep_VPointInter& VP2);
|
||||||
@ -65,7 +59,6 @@ void TopOpeBRep_FacesFiller::GetESL(TopTools_ListOfShape& LES)
|
|||||||
{
|
{
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
Standard_Boolean b22 = TopOpeBRepDS_GettraceDSNC();
|
|
||||||
Standard_Boolean trRL=Standard_False;
|
Standard_Boolean trRL=Standard_False;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -100,16 +93,7 @@ void TopOpeBRep_FacesFiller::GetESL(TopTools_ListOfShape& LES)
|
|||||||
mapES.Add(E);
|
mapES.Add(E);
|
||||||
LES.Append(E);
|
LES.Append(E);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (b22) {
|
|
||||||
if (add) cout<<" : add restriction edge of line ";
|
|
||||||
else cout<<" rejection of restriction edge of line ";
|
|
||||||
cout<<L.Index()<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // loop on lines
|
} // loop on lines
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,10 +104,6 @@ void TopOpeBRep_FacesFiller::GetESL(TopTools_ListOfShape& LES)
|
|||||||
Standard_Boolean TopOpeBRep_FacesFiller::KeepRLine
|
Standard_Boolean TopOpeBRep_FacesFiller::KeepRLine
|
||||||
(const TopOpeBRep_LineInter& L,const Standard_Boolean checkkeep) const
|
(const TopOpeBRep_LineInter& L,const Standard_Boolean checkkeep) const
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
//Standard_Boolean trc = (TopOpeBRepDS_GettraceDSF() || TopOpeBRepDS_GettraceDSNC());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
TopOpeBRep_TypeLineCurve t = L.TypeLineCurve();
|
TopOpeBRep_TypeLineCurve t = L.TypeLineCurve();
|
||||||
Standard_Boolean isrest = (t == TopOpeBRep_RESTRICTION);
|
Standard_Boolean isrest = (t == TopOpeBRep_RESTRICTION);
|
||||||
if (!isrest) return Standard_False;
|
if (!isrest) return Standard_False;
|
||||||
@ -293,11 +273,6 @@ Standard_EXPORT Standard_Boolean FUN_brep_sdmRE(const TopoDS_Edge& E1, const Top
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void TopOpeBRep_FacesFiller::ProcessSectionEdges()
|
void TopOpeBRep_FacesFiller::ProcessSectionEdges()
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean DSNC = TopOpeBRepDS_GettraceDSNC();
|
|
||||||
if (DSNC) cout<<endl<<"--- Section Edges Processing : ---"<<endl;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// recuperation des aretes d'intersection mapES
|
// recuperation des aretes d'intersection mapES
|
||||||
// MSV: replace map with list to achieve predictable order of edges
|
// MSV: replace map with list to achieve predictable order of edges
|
||||||
TopTools_ListOfShape LES;
|
TopTools_ListOfShape LES;
|
||||||
@ -311,21 +286,9 @@ void TopOpeBRep_FacesFiller::ProcessSectionEdges()
|
|||||||
Standard_Boolean isdg = BRep_Tool::Degenerated(E); //xpu290698
|
Standard_Boolean isdg = BRep_Tool::Degenerated(E); //xpu290698
|
||||||
if (isdg) continue; //xpu290698
|
if (isdg) continue; //xpu290698
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
myDS->AddSectionEdge(E);
|
||||||
Standard_Integer iSE =
|
myDS->Shape(E);
|
||||||
#endif
|
myDS->AncestorRank(E);
|
||||||
myDS->AddSectionEdge(E);
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer iE =
|
|
||||||
#endif
|
|
||||||
myDS->Shape(E);
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer rE =
|
|
||||||
#endif
|
|
||||||
myDS->AncestorRank(E);
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (DSNC) cout<<"add section edge "<<iSE<<" : "<<iE<<"("<<rE<<")"<<endl;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TColStd_ListOfInteger LOI; TColStd_ListIteratorOfListOfInteger itLOI;
|
TColStd_ListOfInteger LOI; TColStd_ListIteratorOfListOfInteger itLOI;
|
||||||
@ -391,25 +354,6 @@ void TopOpeBRep_FacesFiller::ProcessSectionEdges()
|
|||||||
|
|
||||||
TopTools_DataMapIteratorOfDataMapOfShapeListOfShape itmapELE;
|
TopTools_DataMapIteratorOfDataMapOfShapeListOfShape itmapELE;
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (DSNC) {
|
|
||||||
for (itmapELE.Initialize(mapELE); itmapELE.More(); itmapELE.Next()) {
|
|
||||||
const TopoDS_Edge& E1 = TopoDS::Edge(itmapELE.Key());
|
|
||||||
Standard_Integer iE1 = myDS->Shape(E1);
|
|
||||||
Standard_Integer rE1 = myDS->AncestorRank(iE1);
|
|
||||||
cout<<"sd3d edge "<<iE1<<"("<<rE1<<") : ";
|
|
||||||
TopTools_ListIteratorOfListOfShape itL(itmapELE.Value());
|
|
||||||
for (; itL.More(); itL.Next()) {
|
|
||||||
const TopoDS_Edge& E2 = TopoDS::Edge(itL.Value());
|
|
||||||
Standard_Integer iE2 = myDS->Shape(E2);
|
|
||||||
Standard_Integer rE2 = myDS->AncestorRank(iE2);
|
|
||||||
cout<<iE2<<"("<<rE2<<") ";
|
|
||||||
}
|
|
||||||
cout<<endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (itmapELE.Initialize(mapELE); itmapELE.More(); itmapELE.Next()) {
|
for (itmapELE.Initialize(mapELE); itmapELE.More(); itmapELE.Next()) {
|
||||||
const TopoDS_Edge& E1 = TopoDS::Edge(itmapELE.Key());
|
const TopoDS_Edge& E1 = TopoDS::Edge(itmapELE.Key());
|
||||||
Standard_Integer iE1 = myDS->Shape(E1);
|
Standard_Integer iE1 = myDS->Shape(E1);
|
||||||
|
@ -37,7 +37,6 @@
|
|||||||
#include <TopOpeBRepTool_ShapeTool.hxx>
|
#include <TopOpeBRepTool_ShapeTool.hxx>
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSFK();
|
|
||||||
static TCollection_AsciiString PRODINP("dinp ");
|
static TCollection_AsciiString PRODINP("dinp ");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -320,10 +319,10 @@ Standard_OStream& TopOpeBRep_VPointInter::Dump(const Standard_Integer I,const To
|
|||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
if (closingedge) OS<<"on closing edge "; else OS<<"on edge "; TopAbs::Print(O,cout);
|
if (closingedge) OS<<"on closing edge "; else OS<<"on edge "; TopAbs::Print(O,cout);
|
||||||
cout<<" of "<<I<<" : par : "<<Epar<<endl;
|
cout<<" of "<<I<<" : par : "<<Epar<<endl;
|
||||||
TopOpeBRepDS_Transition T = TopOpeBRep_FFTransitionTool::ProcessLineTransition(*this,I,O);
|
TopOpeBRep_FFTransitionTool::ProcessLineTransition(*this,I,O);
|
||||||
OS<<"line transition ";
|
OS<<"line transition ";
|
||||||
if (closingedge) OS<<"on closing edge "; else OS<<"on edge "; TopAbs::Print(O,cout);
|
if (closingedge) OS<<"on closing edge "; else OS<<"on edge "; TopAbs::Print(O,cout);
|
||||||
OS<<" of "<<I<<" : "; T.Dump(OS);OS<<endl;
|
OS<<" of "<<I<<endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return OS;
|
return OS;
|
||||||
@ -346,11 +345,6 @@ Standard_OStream& TopOpeBRep_VPointInter::Dump(const TopoDS_Face& FF1,const Topo
|
|||||||
OS<<PRODINP<<"P"<<myIndex<<" "; OS<<P.X()<<" "<<P.Y()<<" "<<P.Z();
|
OS<<PRODINP<<"P"<<myIndex<<" "; OS<<P.X()<<" "<<P.Y()<<" "<<P.Z();
|
||||||
OS<<"; #draw"<<endl;
|
OS<<"; #draw"<<endl;
|
||||||
|
|
||||||
if (TopOpeBRepDS_GettraceDSFK()) { Standard_Real u,v;
|
|
||||||
ParametersOnS1(u,v); OS<<"u1,v1 : "<<u<<" "<<v; OS<<" ";
|
|
||||||
ParametersOnS2(u,v); OS<<"u2,v2 : "<<u<<" "<<v; OS<<endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsVertexOnS1()) { OS<<"is vertex of 1"<<endl; }
|
if (IsVertexOnS1()) { OS<<"is vertex of 1"<<endl; }
|
||||||
if (IsVertexOnS2()) { OS<<"is vertex of 2"<<endl; }
|
if (IsVertexOnS2()) { OS<<"is vertex of 2"<<endl; }
|
||||||
if (IsMultiple()) { OS<<"is multiple"<<endl; }
|
if (IsMultiple()) { OS<<"is multiple"<<endl; }
|
||||||
|
@ -49,7 +49,6 @@
|
|||||||
#include <TopTools_IndexedMapOfShape.hxx>
|
#include <TopTools_IndexedMapOfShape.hxx>
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRep_GetcontextNEWKP();
|
extern Standard_Boolean TopOpeBRep_GetcontextNEWKP();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -136,86 +135,6 @@ static Standard_Boolean FUNBREP_SameUV(const TopOpeBRep_VPointInter& VP1,
|
|||||||
return sameuv;
|
return sameuv;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
//-------------------------------------------------------------------
|
|
||||||
void FUNBREP_topokpartDEB
|
|
||||||
(const Handle(TopOpeBRepDS_Interference)& /*Ifound*/,
|
|
||||||
const TopOpeBRepDS_ListOfInterference& DSCIL,
|
|
||||||
const TopOpeBRep_LineInter& L,
|
|
||||||
const TopOpeBRep_VPointInter& VP,
|
|
||||||
const TopOpeBRepDS_Transition& lasttransLine,
|
|
||||||
const TopOpeBRepDS_DataStructure& /*BDS*/,
|
|
||||||
const TopoDS_Shape& /*E*/,
|
|
||||||
const TopoDS_Shape& /*F*/,
|
|
||||||
const Standard_Real /*toluv*/,
|
|
||||||
const Standard_Boolean CPIfound,
|
|
||||||
const Standard_Boolean samepar,
|
|
||||||
const Standard_Boolean couture,
|
|
||||||
const Standard_Real& parline,
|
|
||||||
const TopOpeBRepDS_Transition& transLine)
|
|
||||||
//-------------------------------------------------------------------
|
|
||||||
{
|
|
||||||
Standard_Integer iVP = VP.Index();
|
|
||||||
Standard_Boolean fermee = L.IsVClosed();
|
|
||||||
Standard_Boolean onsort = (transLine.Orientation(TopAbs_OUT) == TopAbs_FORWARD);
|
|
||||||
Standard_Boolean lastdefinie = ! lasttransLine.IsUnknown();
|
|
||||||
Standard_Boolean lastonsort = Standard_False;
|
|
||||||
if (lastdefinie) lastonsort = (lasttransLine.Orientation(TopAbs_OUT) == TopAbs_FORWARD);
|
|
||||||
|
|
||||||
Standard_Boolean LITdefinie = Standard_False;
|
|
||||||
Standard_Boolean LITonsort = Standard_False;
|
|
||||||
TopOpeBRepDS_Transition LIT;
|
|
||||||
Standard_Boolean nointerf = DSCIL.IsEmpty();
|
|
||||||
|
|
||||||
if (nointerf) STATIC_lastVPind = 0;
|
|
||||||
if (!nointerf) {
|
|
||||||
const Handle(TopOpeBRepDS_Interference)& I = DSCIL.Last();
|
|
||||||
LIT = I->Transition();
|
|
||||||
LITdefinie = ! LIT.IsUnknown();
|
|
||||||
if (LITdefinie) LITonsort = (LIT.Orientation(TopAbs_OUT) == TopAbs_FORWARD);
|
|
||||||
}
|
|
||||||
|
|
||||||
Standard_Boolean iswalki = (L.TypeLineCurve() == TopOpeBRep_WALKING);
|
|
||||||
if (iswalki) cout<<"kpwalk ";
|
|
||||||
else cout<<"kpglin ";
|
|
||||||
|
|
||||||
cout<<"\tVP "<<iVP<<" : ";
|
|
||||||
|
|
||||||
if (CPIfound && samepar) cout<<"trouve ("<<parline<<")";
|
|
||||||
else if (CPIfound && !samepar) cout<<"trouve";
|
|
||||||
else cout<<"non trouve";
|
|
||||||
|
|
||||||
if (fermee) cout<<", fermee";
|
|
||||||
else cout<<", ouverte";
|
|
||||||
|
|
||||||
if (couture) cout<<", couture";
|
|
||||||
|
|
||||||
if (onsort) cout<<", sortant";
|
|
||||||
else cout<<", entrant";
|
|
||||||
|
|
||||||
if (lastdefinie && lastonsort) cout<<", prec = sortant";
|
|
||||||
else if (lastdefinie && !lastonsort) cout<<", prec = entrant";
|
|
||||||
else cout<<", prec = ?";
|
|
||||||
|
|
||||||
if (LITdefinie && LITonsort) cout<<", Lprec = sortant";
|
|
||||||
else if (LITdefinie && !LITonsort) cout<<", Lprec = entrant";
|
|
||||||
else cout<<", Lprec = ?";
|
|
||||||
cout<<endl;
|
|
||||||
|
|
||||||
if (!iswalki) {
|
|
||||||
cout<<"kpglin ";
|
|
||||||
Standard_Boolean hasfp = L.HasFirstPoint();
|
|
||||||
Standard_Boolean haslp = L.HasLastPoint();
|
|
||||||
Standard_Real f,l; L.Bounds(f,l);
|
|
||||||
if (hasfp) cout<<"\thas fp "<<f;
|
|
||||||
else cout<<"\thas NO fp";
|
|
||||||
if (haslp) cout<<", has lp "<<l;
|
|
||||||
else cout<<", has NO lp";
|
|
||||||
cout<<endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
Standard_Boolean FUNBREP_topowalki_new
|
Standard_Boolean FUNBREP_topowalki_new
|
||||||
(const Handle(TopOpeBRepDS_Interference)& Ifound,const TopOpeBRepDS_ListOfInterference& DSCIL,const TopOpeBRep_LineInter& L,
|
(const Handle(TopOpeBRepDS_Interference)& Ifound,const TopOpeBRepDS_ListOfInterference& DSCIL,const TopOpeBRep_LineInter& L,
|
||||||
@ -223,10 +142,6 @@ Standard_Boolean FUNBREP_topowalki_new
|
|||||||
TopOpeBRepDS_Transition& transLine)
|
TopOpeBRepDS_Transition& transLine)
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trc = TopOpeBRepDS_GettraceDSF();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (L.TypeLineCurve() != TopOpeBRep_WALKING) {
|
if (L.TypeLineCurve() != TopOpeBRep_WALKING) {
|
||||||
Standard_ProgramError::Raise("FUNBREP_topowalki_new : line is not a walking");
|
Standard_ProgramError::Raise("FUNBREP_topowalki_new : line is not a walking");
|
||||||
return Standard_False;
|
return Standard_False;
|
||||||
@ -278,9 +193,6 @@ Standard_Boolean FUNBREP_topowalki_new
|
|||||||
Standard_Boolean samevponcouture = samepar && keep;
|
Standard_Boolean samevponcouture = samepar && keep;
|
||||||
if (samevponcouture) {
|
if (samevponcouture) {
|
||||||
keep = Standard_False;
|
keep = Standard_False;
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (trc) cout<<"is same vp on couture";
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,10 +246,6 @@ Standard_Boolean FUNBREP_topowalki
|
|||||||
TopOpeBRepDS_Transition& transLine)
|
TopOpeBRepDS_Transition& transLine)
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trc = TopOpeBRepDS_GettraceDSF();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (L.TypeLineCurve() != TopOpeBRep_WALKING) {
|
if (L.TypeLineCurve() != TopOpeBRep_WALKING) {
|
||||||
Standard_ProgramError::Raise("FUNBREP_topowalki : line is not a walking");
|
Standard_ProgramError::Raise("FUNBREP_topowalki : line is not a walking");
|
||||||
return Standard_False;
|
return Standard_False;
|
||||||
@ -439,10 +347,6 @@ Standard_Boolean FUNBREP_topowalki
|
|||||||
Standard_Boolean samevponcouture = samepar && couture;
|
Standard_Boolean samevponcouture = samepar && couture;
|
||||||
if (keep && samevponcouture) {
|
if (keep && samevponcouture) {
|
||||||
keep = Standard_False;
|
keep = Standard_False;
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (trc) cout<<"is same vp on couture";
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keep) {
|
if (keep) {
|
||||||
@ -775,12 +679,6 @@ Standard_EXPORT Standard_Boolean FUNBREP_topokpart
|
|||||||
|
|
||||||
TopOpeBRepDS_Transition lasttransLine;
|
TopOpeBRepDS_Transition lasttransLine;
|
||||||
if (!DSCIL.IsEmpty()) lasttransLine = DSCIL.Last()->Transition(); // xpu12-12-97
|
if (!DSCIL.IsEmpty()) lasttransLine = DSCIL.Last()->Transition(); // xpu12-12-97
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (TopOpeBRepDS_GettraceDSF()) {
|
|
||||||
FUNBREP_topokpartDEB(Ifound,DSCIL,L,VP,lasttransLine,BDS,E,F,toluv,
|
|
||||||
CPIfound,samepar,couture,parline,transLine);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// A line is valid if at least it has VPi1 and VPi2 with i1 < i2 and :
|
// A line is valid if at least it has VPi1 and VPi2 with i1 < i2 and :
|
||||||
// transition on line for VPi1 : OUT/IN and for VPi2 : IN/OUT.
|
// transition on line for VPi1 : OUT/IN and for VPi2 : IN/OUT.
|
||||||
|
@ -127,7 +127,6 @@ void BREP_mergePDS(const Handle(TopOpeBRepDS_HDataStructure)& HDS)
|
|||||||
cout<<TopOpeBRepDS::SPrint(k2,iv2,str);
|
cout<<TopOpeBRepDS::SPrint(k2,iv2,str);
|
||||||
cout<<TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(f2.ShapeType()),if2," de ")<<endl;
|
cout<<TopOpeBRepDS::SPrint(TopOpeBRepDS::ShapeToKind(f2.ShapeType()),if2," de ")<<endl;
|
||||||
}
|
}
|
||||||
ITF->Dump(cout,"# BREP_mergePDS resu ","\n");
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -70,10 +70,6 @@
|
|||||||
#define M_REVERSED(st) (st == TopAbs_REVERSED)
|
#define M_REVERSED(st) (st == TopAbs_REVERSED)
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceISTO();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSP();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceSPSX(const Standard_Integer i);
|
|
||||||
extern Standard_Boolean TopOpeBRep_GettraceNVP(Standard_Integer a,Standard_Integer b,Standard_Integer c,Standard_Integer d,Standard_Integer e);
|
extern Standard_Boolean TopOpeBRep_GettraceNVP(Standard_Integer a,Standard_Integer b,Standard_Integer c,Standard_Integer d,Standard_Integer e);
|
||||||
|
|
||||||
Standard_Boolean GLOBAL_bvpr = Standard_False;
|
Standard_Boolean GLOBAL_bvpr = Standard_False;
|
||||||
@ -224,11 +220,6 @@ static void FUN_VPgeometryfound
|
|||||||
}
|
}
|
||||||
|
|
||||||
TopOpeBRepDS_ListIteratorOfListOfInterference itCPIL(DSCIL);
|
TopOpeBRepDS_ListIteratorOfListOfInterference itCPIL(DSCIL);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trc = Standard_False;
|
|
||||||
if (trc) {TopOpeBRepDS_Dumper DSD(HDS); TCollection_AsciiString aa("DSCIL :");
|
|
||||||
DSD.DumpLOI(DSCIL,cout,aa);}
|
|
||||||
#endif
|
|
||||||
CPIfound = FF.GetGeometry(itCPIL,VP,PVIndex,PVKind);
|
CPIfound = FF.GetGeometry(itCPIL,VP,PVIndex,PVKind);
|
||||||
if (CPIfound) ICPI = itCPIL.Value();
|
if (CPIfound) ICPI = itCPIL.Value();
|
||||||
|
|
||||||
@ -581,11 +572,6 @@ static void FUN_processCPI
|
|||||||
// NYI : compute uvtol with the original faces. By default, we set toluv = TolClass
|
// NYI : compute uvtol with the original faces. By default, we set toluv = TolClass
|
||||||
Standard_Real toluv = 1.e-8;
|
Standard_Real toluv = 1.e-8;
|
||||||
Standard_Boolean keep = FUNBREP_topokpart(Ifound,DSCIL,L,VP,(*pDS),E,F,toluv,parline,ttransLine);
|
Standard_Boolean keep = FUNBREP_topokpart(Ifound,DSCIL,L,VP,(*pDS),E,F,toluv,parline,ttransLine);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer trc=TopOpeBRepDS_GettraceDSF();
|
|
||||||
if (trc){if(keep)cout<<"\t-> on garde";else cout<<"\t-> on jette";cout<<endl;}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (keep) {
|
if (keep) {
|
||||||
keptVPnbr++;
|
keptVPnbr++;
|
||||||
@ -672,27 +658,9 @@ void TopOpeBRep_FacesFiller::ProcessVPonR
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
Standard_Boolean traceDSF = TopOpeBRepDS_GettraceDSF();
|
|
||||||
Standard_Boolean traceDSP = TopOpeBRepDS_GettraceDSP();
|
|
||||||
Standard_Integer ili=myLine->Index(),ivp=iVP,isi=ShapeIndex;
|
Standard_Integer ili=myLine->Index(),ivp=iVP,isi=ShapeIndex;
|
||||||
if(traceDSF || traceDSP){
|
|
||||||
cout<<endl;
|
|
||||||
cout<<"trc tnvp 1 "<<myexF1<<" "<<myexF2<<" "<<ili<<" "<<ivp<<" "<<isi;
|
|
||||||
cout<<"; # VPonR "<<iVP<<" on "<<ShapeIndex<<" from "<<absindex<<endl;
|
|
||||||
}
|
|
||||||
GLOBAL_bvpr = TopOpeBRep_GettraceNVP(myexF1,myexF2,ili,ivp,isi);
|
GLOBAL_bvpr = TopOpeBRep_GettraceNVP(myexF1,myexF2,ili,ivp,isi);
|
||||||
if (TopOpeBRepDS_GettraceISTO()) {
|
|
||||||
cout<<"f1,f2,l,vp,si : ";
|
|
||||||
cout<<myexF1<<","<<myexF2<<","<<ili<<","<<ivp<<","<<isi<<endl;
|
|
||||||
}
|
|
||||||
if (GLOBAL_bvpr) debvprmess(myexF1,myexF2,ili,ivp,isi);
|
if (GLOBAL_bvpr) debvprmess(myexF1,myexF2,ili,ivp,isi);
|
||||||
if (traceDSF){
|
|
||||||
cout<<"VP is on";if (closing) cout<<" CLOSING";
|
|
||||||
cout<<" edge "<<SIedgeIndex;
|
|
||||||
if(isrest) cout<<" RESTRICTION"; cout<<endl;
|
|
||||||
if (OOclosing) cout<<" on CLOSING OOedge "<<OOedgeIndex;
|
|
||||||
if(OOisrest) cout<<" RESTRICTION"; cout<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// degenerated edge processing
|
// degenerated edge processing
|
||||||
@ -780,9 +748,6 @@ void TopOpeBRep_FacesFiller::ProcessVPonR
|
|||||||
keepvpfirst = keepvpfirst && myLastVPison0;
|
keepvpfirst = keepvpfirst && myLastVPison0;
|
||||||
//modified by NIZHNY-MKK Mon Jul 3 11:30:21 2000.END
|
//modified by NIZHNY-MKK Mon Jul 3 11:30:21 2000.END
|
||||||
if (keepvpfirst) transLine.Set(TopAbs_FORWARD);
|
if (keepvpfirst) transLine.Set(TopAbs_FORWARD);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (traceDSF) cout<<"myLastVPison0 ->"<<endl;
|
|
||||||
#endif
|
|
||||||
ret1 = Standard_False;
|
ret1 = Standard_False;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -834,11 +799,6 @@ void TopOpeBRep_FacesFiller::ProcessVPonR
|
|||||||
// -------------------
|
// -------------------
|
||||||
TopAbs_Orientation Transori = Trans.Orientation(TopAbs_IN);
|
TopAbs_Orientation Transori = Trans.Orientation(TopAbs_IN);
|
||||||
TopOpeBRepDS_Transition transEdge = TopOpeBRep_FFTransitionTool::ProcessEdgeTransition(VP,ShapeIndex,Transori);
|
TopOpeBRepDS_Transition transEdge = TopOpeBRep_FFTransitionTool::ProcessEdgeTransition(VP,ShapeIndex,Transori);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if(traceDSF){cout<<"trans edge on f"<<ShapeIndex<<" / f"<<OOShapeIndex<<" : ";
|
|
||||||
transEdge.Dump(cout);cout<<endl;}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Boolean Tunknown = FDS_hasUNK(transEdge);
|
Standard_Boolean Tunknown = FDS_hasUNK(transEdge);
|
||||||
TopOpeBRepDS_Point PDS = TopOpeBRep_PointGeomTool::MakePoint(VP);// <VP>'s geometry
|
TopOpeBRepDS_Point PDS = TopOpeBRep_PointGeomTool::MakePoint(VP);// <VP>'s geometry
|
||||||
TopOpeBRepDS_ListOfInterference lITOOFonVP; // {I on <edge> = (T on <OOface>, G on <VP>, S)}
|
TopOpeBRepDS_ListOfInterference lITOOFonVP; // {I on <edge> = (T on <OOface>, G on <VP>, S)}
|
||||||
@ -869,10 +829,7 @@ void TopOpeBRep_FacesFiller::ProcessVPonR
|
|||||||
newtransEdge = newtransEdge || closing || OOclosing;
|
newtransEdge = newtransEdge || closing || OOclosing;
|
||||||
newtransEdge = newtransEdge && (!myLineINL);
|
newtransEdge = newtransEdge && (!myLineINL);
|
||||||
if (newtransEdge){
|
if (newtransEdge){
|
||||||
#ifdef OCCT_DEBUG
|
myDS->Shape(edge);
|
||||||
Standard_Integer iedge =
|
|
||||||
#endif
|
|
||||||
myDS->Shape(edge);
|
|
||||||
newtransEdge = !found;
|
newtransEdge = !found;
|
||||||
if (found) {
|
if (found) {
|
||||||
// Getting first transition found
|
// Getting first transition found
|
||||||
@ -891,12 +848,6 @@ void TopOpeBRep_FacesFiller::ProcessVPonR
|
|||||||
if (ok) {transEdge.Before(Tr.Before()); transEdge.After(Tr.After());}
|
if (ok) {transEdge.Before(Tr.Before()); transEdge.After(Tr.After());}
|
||||||
newtransEdge = ok;
|
newtransEdge = ok;
|
||||||
}
|
}
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (traceDSF && (found || newtransEdge))
|
|
||||||
{if (found) cout<<"*-> found "; if (newtransEdge) cout<<"*-> new ";
|
|
||||||
cout<<"transEdge (edge "<<iedge<<",face"<<iOOFace<<") = "; TopAbs::Print(transEdge.Before(),cout);
|
|
||||||
cout<<" ";TopAbs::Print(transEdge.After(),cout);cout<<endl;}
|
|
||||||
#endif
|
|
||||||
} // newtransEdge
|
} // newtransEdge
|
||||||
|
|
||||||
Standard_Boolean tredunk = transEdge.IsUnknown();
|
Standard_Boolean tredunk = transEdge.IsUnknown();
|
||||||
@ -915,9 +866,6 @@ void TopOpeBRep_FacesFiller::ProcessVPonR
|
|||||||
// OO*** : data issued from other shape
|
// OO*** : data issued from other shape
|
||||||
|
|
||||||
if (SIedgeIndex == 0) SIedgeIndex = myDS->AddShape(edge,ShapeIndex);
|
if (SIedgeIndex == 0) SIedgeIndex = myDS->AddShape(edge,ShapeIndex);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trce = TopOpeBRepDS_GettraceSPSX(SIedgeIndex); if(trce) debarc(SIedgeIndex);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Boolean SIisvertex = VP.IsVertex(ShapeIndex);
|
Standard_Boolean SIisvertex = VP.IsVertex(ShapeIndex);
|
||||||
Standard_Boolean OOisvertex = VP.IsVertex(OOShapeIndex);
|
Standard_Boolean OOisvertex = VP.IsVertex(OOShapeIndex);
|
||||||
@ -1004,10 +952,6 @@ void TopOpeBRep_FacesFiller::ProcessVPonR
|
|||||||
// Gfound = VP corresponds with an existing geometry of ShapeIndex
|
// Gfound = VP corresponds with an existing geometry of ShapeIndex
|
||||||
Standard_Boolean Gfound = ( EPIfound || CPIfound );
|
Standard_Boolean Gfound = ( EPIfound || CPIfound );
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
Standard_Boolean trcpv = TopOpeBRepDS_GettraceSPSX(PVIndex);
|
|
||||||
Standard_Boolean ispoint = (PVKind == TopOpeBRepDS_POINT);
|
|
||||||
if(trcpv && ispoint) debpoint(PVIndex);
|
|
||||||
if(trcpv && !ispoint) debvertex(PVIndex);
|
|
||||||
if (GLOBAL_bvpr) debvprmess(myexF1,myexF2,ili,ivp,isi);
|
if (GLOBAL_bvpr) debvprmess(myexF1,myexF2,ili,ivp,isi);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1076,9 +1020,6 @@ void TopOpeBRep_FacesFiller::ProcessVPonR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( correctON ) {
|
if ( correctON ) {
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trcooe=TopOpeBRepDS_GettraceSPSX(OOedgeIndex);if (trcooe) debooarc(OOedgeIndex);
|
|
||||||
#endif
|
|
||||||
if (OOedgeIndex == 0) OOedgeIndex = myDS->AddShape(OOedge,OOShapeIndex);
|
if (OOedgeIndex == 0) OOedgeIndex = myDS->AddShape(OOedge,OOShapeIndex);
|
||||||
|
|
||||||
// VP a ete classifie ON sur l'edge <OOedge>.
|
// VP a ete classifie ON sur l'edge <OOedge>.
|
||||||
@ -1123,13 +1064,6 @@ void TopOpeBRep_FacesFiller::ProcessVPonR
|
|||||||
TopAbs_State stb,sta; ok = MKT.MkTonE(stb,sta);
|
TopAbs_State stb,sta; ok = MKT.MkTonE(stb,sta);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
tOOedge.Before(stb); tOOedge.After(sta);
|
tOOedge.Before(stb); tOOedge.After(sta);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if(traceDSF){
|
|
||||||
cout<<"* !on2edges && TopAbs_ON *\n";
|
|
||||||
if(OOisrest) cout<<"* edge "<<OOedgeIndex<<" RESTRICTION *\n";
|
|
||||||
cout<<"Transition sur <OOedge> "<<OOedgeIndex<<" croisant <edge> "<<SIedgeIndex<<" ";
|
|
||||||
TopAbs::Print(edgeori,cout);cout<<" ";tOOedge.Dump(cout);cout<<endl;}
|
|
||||||
#endif
|
|
||||||
Handle(TopOpeBRepDS_Interference) OOEPIe;
|
Handle(TopOpeBRepDS_Interference) OOEPIe;
|
||||||
{
|
{
|
||||||
if (iSIFace == 0) iSIFace = myDS->AddShape(Face,ShapeIndex);
|
if (iSIFace == 0) iSIFace = myDS->AddShape(Face,ShapeIndex);
|
||||||
|
@ -51,8 +51,6 @@
|
|||||||
#define M_REVERSED(st) (st == TopAbs_REVERSED)
|
#define M_REVERSED(st) (st == TopAbs_REVERSED)
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceSPSX(const Standard_Integer i1);
|
|
||||||
Standard_EXPORT void debarc(const Standard_Integer i);
|
Standard_EXPORT void debarc(const Standard_Integer i);
|
||||||
Standard_EXPORT void debooarc(const Standard_Integer i);
|
Standard_EXPORT void debooarc(const Standard_Integer i);
|
||||||
#endif
|
#endif
|
||||||
@ -183,14 +181,8 @@ void TopOpeBRep_FacesFiller::ProcessVPonclosingR(const TopOpeBRep_VPointInter& V
|
|||||||
if (iOOFace == 0) iOOFace = myDS->AddShape(OOFace,OOShapeIndex);
|
if (iOOFace == 0) iOOFace = myDS->AddShape(OOFace,OOShapeIndex);
|
||||||
|
|
||||||
// current VPoint is on <edge>
|
// current VPoint is on <edge>
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer SIedgeIndex = 0;
|
|
||||||
#endif
|
|
||||||
const TopoDS_Edge& edge = TopoDS::Edge(VP.Edge(ShapeIndex));
|
const TopoDS_Edge& edge = TopoDS::Edge(VP.Edge(ShapeIndex));
|
||||||
if (!myDS->HasShape(edge)) myDS->AddShape(edge,ShapeIndex);
|
if (!myDS->HasShape(edge)) myDS->AddShape(edge,ShapeIndex);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
else SIedgeIndex = myDS->Shape(edge);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Real paredge = VP.EdgeParameter(ShapeIndex);
|
Standard_Real paredge = VP.EdgeParameter(ShapeIndex);
|
||||||
|
|
||||||
@ -206,12 +198,6 @@ void TopOpeBRep_FacesFiller::ProcessVPonclosingR(const TopOpeBRep_VPointInter& V
|
|||||||
else OOedgeIndex = myDS->AddShape(OOedge,OOShapeIndex);
|
else OOedgeIndex = myDS->AddShape(OOedge,OOShapeIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean traceDSF = TopOpeBRepDS_GettraceDSF();
|
|
||||||
Standard_Boolean trce = TopOpeBRepDS_GettraceSPSX(SIedgeIndex); if(trce) debarc(SIedgeIndex);
|
|
||||||
Standard_Boolean trcooe = TopOpeBRepDS_GettraceSPSX(OOedgeIndex); if(trcooe) debooarc(OOedgeIndex);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ===================================================================
|
// ===================================================================
|
||||||
// --- Edge/(POINT,VERTEX) Interference (EPI) creation ---
|
// --- Edge/(POINT,VERTEX) Interference (EPI) creation ---
|
||||||
// ===================================================================
|
// ===================================================================
|
||||||
@ -222,9 +208,6 @@ void TopOpeBRep_FacesFiller::ProcessVPonclosingR(const TopOpeBRep_VPointInter& V
|
|||||||
// transEdge should be INTERNAL/EXTERNAL.
|
// transEdge should be INTERNAL/EXTERNAL.
|
||||||
|
|
||||||
Standard_Boolean Tunk = transEdge.IsUnknown();
|
Standard_Boolean Tunk = transEdge.IsUnknown();
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (!Tunk && traceDSF) cout<<"-> on closing : transAdd = "<<endl;
|
|
||||||
#endif
|
|
||||||
TopOpeBRepDS_Transition transAdd;
|
TopOpeBRepDS_Transition transAdd;
|
||||||
Standard_Boolean newtransEdge = Tunk;
|
Standard_Boolean newtransEdge = Tunk;
|
||||||
if (newtransEdge) transAdd = GetEdgeTrans(VP,PVKind,PVIndex,ShapeIndex,OOFace);
|
if (newtransEdge) transAdd = GetEdgeTrans(VP,PVKind,PVIndex,ShapeIndex,OOFace);
|
||||||
|
@ -77,8 +77,6 @@ static Standard_Boolean local_FindVertex(const TopOpeBRep_VPointInter& theVP,
|
|||||||
// modified by NIZHNY-MKK Tue Nov 21 17:30:27 2000.END
|
// modified by NIZHNY-MKK Tue Nov 21 17:30:27 2000.END
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDEGEN();
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceDSF();
|
|
||||||
Standard_EXPORT Standard_Boolean FUN_debnull(const TopoDS_Shape& s);
|
Standard_EXPORT Standard_Boolean FUN_debnull(const TopoDS_Shape& s);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -454,11 +452,6 @@ Standard_Boolean TopOpeBRep_FacesFiller::ProcessVPondgE
|
|||||||
Standard_Boolean& EPIfound, Handle(TopOpeBRepDS_Interference)& IEPI, // out
|
Standard_Boolean& EPIfound, Handle(TopOpeBRepDS_Interference)& IEPI, // out
|
||||||
Standard_Boolean& CPIfound, Handle(TopOpeBRepDS_Interference)& ICPI) // out
|
Standard_Boolean& CPIfound, Handle(TopOpeBRepDS_Interference)& ICPI) // out
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean traceDSF = TopOpeBRepDS_GettraceDSF();
|
|
||||||
Standard_Boolean traceDEGEN = TopOpeBRepDS_GettraceDEGEN();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (PVIndex == 0) FUN_VPIndex ((*this),(*myLine),VP,ShapeIndex,myHDS,myDSCIL, //in
|
if (PVIndex == 0) FUN_VPIndex ((*this),(*myLine),VP,ShapeIndex,myHDS,myDSCIL, //in
|
||||||
PVKind,PVIndex, // out
|
PVKind,PVIndex, // out
|
||||||
EPIfound,IEPI, // out
|
EPIfound,IEPI, // out
|
||||||
@ -515,17 +508,10 @@ Standard_Boolean TopOpeBRep_FacesFiller::ProcessVPondgE
|
|||||||
if (rankFi == 1) Fi = myF1;
|
if (rankFi == 1) Fi = myF1;
|
||||||
else Fi = myF2;
|
else Fi = myF2;
|
||||||
Standard_Integer iFi = myDS->AddShape(Fi,rankFi);
|
Standard_Integer iFi = myDS->AddShape(Fi,rankFi);
|
||||||
#ifdef OCCT_DEBUG
|
myDS->AddShape(dgEd,rankdg);
|
||||||
Standard_Integer iEd =
|
|
||||||
#endif
|
|
||||||
myDS->AddShape(dgEd,rankdg);
|
|
||||||
// Standard_Integer iOOEi = 0;
|
// Standard_Integer iOOEi = 0;
|
||||||
// if (hasOOEi) iOOEi = myDS->AddShape(OOEi,rankFi);
|
// if (hasOOEi) iOOEi = myDS->AddShape(OOEi,rankFi);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean trace = traceDSF || traceDEGEN;
|
|
||||||
if (trace) cout<<" VP is on degenerated edge "<<iEd<<" :"<<endl;
|
|
||||||
#endif
|
|
||||||
Standard_Integer rkv = myDS->AncestorRank(myDS->Shape(PVIndex));
|
Standard_Integer rkv = myDS->AncestorRank(myDS->Shape(PVIndex));
|
||||||
|
|
||||||
if ((makeI == MKI1)||(makeI == MKI12)) {
|
if ((makeI == MKI1)||(makeI == MKI12)) {
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepBuild_GettraceAREA();
|
extern Standard_Boolean TopOpeBRepBuild_GettraceAREA();
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceSTRANGE();
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
@ -27,10 +27,6 @@
|
|||||||
#include <TopOpeBRepBuild_LoopClassifier.hxx>
|
#include <TopOpeBRepBuild_LoopClassifier.hxx>
|
||||||
#include <TopOpeBRepBuild_LoopSet.hxx>
|
#include <TopOpeBRepBuild_LoopSet.hxx>
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceSTRANGE();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : TopOpeBRepBuild_AreaBuilder
|
//function : TopOpeBRepBuild_AreaBuilder
|
||||||
//purpose :
|
//purpose :
|
||||||
@ -115,12 +111,6 @@ void TopOpeBRepBuild_AreaBuilder::Atomize(TopAbs_State& state,
|
|||||||
"AreaBuilder : Position Unknown");
|
"AreaBuilder : Position Unknown");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if ( TopOpeBRepDS_GettraceSTRANGE() ) {
|
|
||||||
cout<<"AreaBuilder : state "; TopAbs::Print(state,cout);
|
|
||||||
cout<<" taken as "; TopAbs::Print(newstate,cout); cout<<endl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
state = newstate;
|
state = newstate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,8 +75,6 @@ void TopOpeBRepBuild_Builder::BuildFaces(const Standard_Integer iS,
|
|||||||
//
|
//
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
Standard_Boolean tSE = TopOpeBRepBuild_GettraceSPF();
|
Standard_Boolean tSE = TopOpeBRepBuild_GettraceSPF();
|
||||||
Standard_Boolean tCU = TopOpeBRepBuild_GettraceCU();
|
|
||||||
Standard_Boolean NtCUV = !TopOpeBRepBuild_GettraceCUV();
|
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
TopOpeBRepDS_CurveIterator SCurves(HDS->SurfaceCurves(iS));
|
TopOpeBRepDS_CurveIterator SCurves(HDS->SurfaceCurves(iS));
|
||||||
@ -85,7 +83,6 @@ void TopOpeBRepBuild_Builder::BuildFaces(const Standard_Integer iS,
|
|||||||
const TopOpeBRepDS_Curve& CDS = HDS->Curve(iC);
|
const TopOpeBRepDS_Curve& CDS = HDS->Curve(iC);
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
if (tSE) cout<<endl<<"BuildFaces : C "<<iC<<" on S "<<iS<<endl;
|
if (tSE) cout<<endl<<"BuildFaces : C "<<iC<<" on S "<<iS<<endl;
|
||||||
if (tCU) { CDS.Dump(cout,iC,NtCUV); cout<<endl; }
|
|
||||||
#endif
|
#endif
|
||||||
TopoDS_Shape anEdge;
|
TopoDS_Shape anEdge;
|
||||||
TopTools_ListIteratorOfListOfShape Iti(NewEdges(iC));
|
TopTools_ListIteratorOfListOfShape Iti(NewEdges(iC));
|
||||||
|
@ -179,11 +179,6 @@ void TopOpeBRepBuild_Builder::AddIntersectionEdges
|
|||||||
TopOpeBRepDS_CurveIterator FCurves = myDataStructure->FaceCurves(aFace);
|
TopOpeBRepDS_CurveIterator FCurves = myDataStructure->FaceCurves(aFace);
|
||||||
for (; FCurves.More(); FCurves.Next()) {
|
for (; FCurves.More(); FCurves.Next()) {
|
||||||
Standard_Integer iC = FCurves.Current();
|
Standard_Integer iC = FCurves.Current();
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean tCU = TopOpeBRepBuild_GettraceCU();
|
|
||||||
Standard_Boolean NtCUV = !TopOpeBRepBuild_GettraceCUV();
|
|
||||||
if(tCU) {cout<<endl;myDataStructure->Curve(iC).Dump(cout,iC,NtCUV);}
|
|
||||||
#endif
|
|
||||||
const TopTools_ListOfShape& LnewE = NewEdges(iC);
|
const TopTools_ListOfShape& LnewE = NewEdges(iC);
|
||||||
for (TopTools_ListIteratorOfListOfShape Iti(LnewE); Iti.More(); Iti.Next()) {
|
for (TopTools_ListIteratorOfListOfShape Iti(LnewE); Iti.More(); Iti.Next()) {
|
||||||
anEdge = Iti.Value();
|
anEdge = Iti.Value();
|
||||||
|
@ -75,9 +75,7 @@ void TopOpeBRepBuild_BuilderON::Perform2d
|
|||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
Standard_Integer iFOR;Standard_Boolean tFOR=myPB->GtraceSPS(FOR,iFOR);
|
Standard_Integer iFOR;Standard_Boolean tFOR=myPB->GtraceSPS(FOR,iFOR);
|
||||||
if (tFOR) debfillonf(iFOR);
|
if (tFOR) debfillonf(iFOR);
|
||||||
if (tFOR) {cout<<endl<<"LI on F"<<iFOR<<":"<<endl;
|
if (tFOR) cout<<endl<<"LI on F"<<iFOR<<endl;
|
||||||
for (TopOpeBRepDS_ListIteratorOfListOfInterference iit(lFEI); iit.More(); iit.Next())
|
|
||||||
{iit.Value()->Dump(cout);cout<<endl;}}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (TopOpeBRepDS_ListIteratorOfListOfInterference itI(lFEI); itI.More(); itI.Next()){
|
for (TopOpeBRepDS_ListIteratorOfListOfInterference itI(lFEI); itI.More(); itI.Next()){
|
||||||
@ -147,7 +145,6 @@ void TopOpeBRepBuild_BuilderON::GFillONParts2dWES2(const Handle(TopOpeBRepDS_Int
|
|||||||
// Standard_Boolean tE=myPB->GtraceSPS(GI);
|
// Standard_Boolean tE=myPB->GtraceSPS(GI);
|
||||||
// Standard_Boolean tEFOR = (tE && tFOR);
|
// Standard_Boolean tEFOR = (tE && tFOR);
|
||||||
if (tFOR) {debON2d(iFOR);}
|
if (tFOR) {debON2d(iFOR);}
|
||||||
if (tFOR) {I->Dump(cout);cout<<endl;}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Standard_Integer iFCX=SI;
|
Standard_Integer iFCX=SI;
|
||||||
|
@ -59,8 +59,6 @@
|
|||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
extern Standard_Boolean TopOpeBRepBuild_GettracePURGE();
|
extern Standard_Boolean TopOpeBRepBuild_GettracePURGE();
|
||||||
extern Standard_Boolean TopOpeBRepDS_GettraceSTRANGE();
|
|
||||||
#include <TopOpeBRepDS_DSX.hxx>
|
|
||||||
void debifb() {}
|
void debifb() {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -92,10 +90,6 @@ TopOpeBRepBuild_FaceBuilder::TopOpeBRepBuild_FaceBuilder(TopOpeBRepBuild_WireEdg
|
|||||||
void TopOpeBRepBuild_FaceBuilder::InitFaceBuilder(TopOpeBRepBuild_WireEdgeSet& WES,const TopoDS_Shape& F,const Standard_Boolean ForceClass)
|
void TopOpeBRepBuild_FaceBuilder::InitFaceBuilder(TopOpeBRepBuild_WireEdgeSet& WES,const TopoDS_Shape& F,const Standard_Boolean ForceClass)
|
||||||
{
|
{
|
||||||
myFace = TopoDS::Face(F);
|
myFace = TopoDS::Face(F);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Boolean deb = TopOpeBRepDS_GettraceSPSX(myFace);
|
|
||||||
if (deb) debifb();
|
|
||||||
#endif
|
|
||||||
MakeLoops(WES);
|
MakeLoops(WES);
|
||||||
TopOpeBRepBuild_BlockBuilder& BB = myBlockBuilder;
|
TopOpeBRepBuild_BlockBuilder& BB = myBlockBuilder;
|
||||||
TopOpeBRepBuild_WireEdgeClassifier WEC(F,BB);
|
TopOpeBRepBuild_WireEdgeClassifier WEC(F,BB);
|
||||||
@ -374,10 +368,8 @@ void TopOpeBRepBuild_FaceBuilder::CorrectGclosedWire(const TopTools_IndexedDataM
|
|||||||
{
|
{
|
||||||
// prequesitory : edges described by <mapVon1Edge> are not closed,not degenerated
|
// prequesitory : edges described by <mapVon1Edge> are not closed,not degenerated
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
Standard_Boolean trc = TopOpeBRepDS_GettraceSTRANGE();
|
|
||||||
if (TopOpeBRepBuild_GettracePURGE()) {
|
if (TopOpeBRepBuild_GettracePURGE()) {
|
||||||
cout<<endl<<"* CorrectGclosedWire :"<<endl<<endl;
|
cout<<endl<<"* CorrectGclosedWire :"<<endl<<endl;
|
||||||
trc = Standard_True;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -397,10 +389,6 @@ void TopOpeBRepBuild_FaceBuilder::CorrectGclosedWire(const TopTools_IndexedDataM
|
|||||||
TopoDS_Vertex newVref = TopoDS::Vertex(aLocalShape);
|
TopoDS_Vertex newVref = TopoDS::Vertex(aLocalShape);
|
||||||
// TopoDS_Vertex newVref = TopoDS::Vertex(Vref.Oriented(V.Orientation()));
|
// TopoDS_Vertex newVref = TopoDS::Vertex(Vref.Oriented(V.Orientation()));
|
||||||
BB.Add(E,newVref);
|
BB.Add(E,newVref);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer iV = i,iVref = mapVVref.FindIndex(Vref),iE = mapVon1Edge.FindIndex(V);
|
|
||||||
if (trc) cout << " replacing V "<<iV<<" with V "<<iVref<<" on edge "<<iE<<endl;
|
|
||||||
#endif
|
|
||||||
TopOpeBRepDS_BuildTool BT;
|
TopOpeBRepDS_BuildTool BT;
|
||||||
BT.Parameter(E,newVref,paronE);
|
BT.Parameter(E,newVref,paronE);
|
||||||
}
|
}
|
||||||
|
@ -429,13 +429,6 @@ void TopOpeBRepBuild_Builder::GFillPointTopologyPVS(const TopoDS_Shape& E,
|
|||||||
const TopOpeBRepDS_ListOfInterference& LICur = tki.Value(Kcur,Gcur);
|
const TopOpeBRepDS_ListOfInterference& LICur = tki.Value(Kcur,Gcur);
|
||||||
Standard_Boolean point = (Kcur == TopOpeBRepDS_POINT); //xpu170498
|
Standard_Boolean point = (Kcur == TopOpeBRepDS_POINT); //xpu170498
|
||||||
Standard_Boolean vertex = (Kcur == TopOpeBRepDS_VERTEX);//xpu170498
|
Standard_Boolean vertex = (Kcur == TopOpeBRepDS_VERTEX);//xpu170498
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
// Standard_Integer nLICur = LICur.Extent();
|
|
||||||
Standard_Boolean trcI = Standard_False;
|
|
||||||
if(trcI) {TopOpeBRepDS_Dumper DSD(myDataStructure); TCollection_AsciiString aa("lI");
|
|
||||||
aa += TCollection_AsciiString(Gcur); DSD.DumpLOI(LICur,cout,aa);}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
TopoDS_Shape vGsd;
|
TopoDS_Shape vGsd;
|
||||||
if (vertex) FUN_ds_getoov(BDS.Shape(Gcur), myDataStructure, vGsd); //xpu221098
|
if (vertex) FUN_ds_getoov(BDS.Shape(Gcur), myDataStructure, vGsd); //xpu221098
|
||||||
|
|
||||||
@ -521,9 +514,6 @@ void TopOpeBRepBuild_Builder::GFillPointTopologyPVS(const TopoDS_Shape& E,
|
|||||||
|
|
||||||
TopOpeBRepDS_ListOfInterference li; li.Append(newI); TopOpeBRepDS_PointIterator itCur(li);
|
TopOpeBRepDS_ListOfInterference li; li.Append(newI); TopOpeBRepDS_PointIterator itCur(li);
|
||||||
GFillPointTopologyPVS(E,itCur,G,PVS);
|
GFillPointTopologyPVS(E,itCur,G,PVS);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if(tSPS) {newI->Dump(cout,"\nnewinterf ","\n\n"); debfillp2(iEDS);}
|
|
||||||
#endif
|
|
||||||
{tki.Next(); continue;}
|
{tki.Next(); continue;}
|
||||||
} // isSE
|
} // isSE
|
||||||
|
|
||||||
@ -542,10 +532,6 @@ void TopOpeBRepBuild_Builder::GFillPointTopologyPVS(const TopoDS_Shape& E,
|
|||||||
TopAbs_ShapeEnum SB1,SA1;Standard_Integer IB1,IA1;TopOpeBRepDS_Kind GT1,ST1;Standard_Integer G1,S1;
|
TopAbs_ShapeEnum SB1,SA1;Standard_Integer IB1,IA1;TopOpeBRepDS_Kind GT1,ST1;Standard_Integer G1,S1;
|
||||||
FDS_Idata(I1,SB1,IB1,SA1,IA1,GT1,G1,ST1,S1);
|
FDS_Idata(I1,SB1,IB1,SA1,IA1,GT1,G1,ST1,S1);
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if(tSPS) {I1->Dump(cout,"\n? keepinterf ","\n\n"); debfillp2(iEDS);}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Standard_Boolean keepinterf1 = Standard_False;
|
Standard_Boolean keepinterf1 = Standard_False;
|
||||||
if (isEd) {
|
if (isEd) {
|
||||||
keepinterf1 = Standard_True;
|
keepinterf1 = Standard_True;
|
||||||
@ -569,9 +555,6 @@ void TopOpeBRepBuild_Builder::GFillPointTopologyPVS(const TopoDS_Shape& E,
|
|||||||
Standard_Boolean id2d = (I1 == i2d);
|
Standard_Boolean id2d = (I1 == i2d);
|
||||||
if (tSPS) {
|
if (tSPS) {
|
||||||
cout<<"DEB : GFillPointTopologyPVS E"<<iEDS<<" has2d3d"<<endl;
|
cout<<"DEB : GFillPointTopologyPVS E"<<iEDS<<" has2d3d"<<endl;
|
||||||
i2d->Dump(cout,"2d : ","\n");
|
|
||||||
i3d->Dump(cout,"3d : ","\n");
|
|
||||||
I1->Dump (cout,"I1 : ","\n");
|
|
||||||
if (id3d) cout<<"--> Interference 3d ";
|
if (id3d) cout<<"--> Interference 3d ";
|
||||||
if (id2d) cout<<"--> Interference 2d ";
|
if (id2d) cout<<"--> Interference 2d ";
|
||||||
if (keepinterf1) cout<<" traitee"<<endl;
|
if (keepinterf1) cout<<" traitee"<<endl;
|
||||||
|
@ -57,7 +57,6 @@ Standard_IMPORT void FUN_draw2de (const TopoDS_Shape& ed,const TopoDS_Shape& fa)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
#include <TopOpeBRepDS_DSX.hxx>
|
|
||||||
extern void* GFABUMAKEFACEPWES_DEB;
|
extern void* GFABUMAKEFACEPWES_DEB;
|
||||||
#define DEBSHASET(sarg,meth,shaset,str) TCollection_AsciiString sarg((meth));(sarg)=(sarg)+(shaset).DEBNumber()+(str);
|
#define DEBSHASET(sarg,meth,shaset,str) TCollection_AsciiString sarg((meth));(sarg)=(sarg)+(shaset).DEBNumber()+(str);
|
||||||
Standard_Integer GLOBAL_iexE = 0;
|
Standard_Integer GLOBAL_iexE = 0;
|
||||||
@ -153,10 +152,6 @@ Standard_Boolean FUN_computeLIFfaces2d(const TopOpeBRepBuild_Builder& BU,
|
|||||||
// {I = (T(F),ES,FTRA)} / Fsdm F and ES interfers with E which has splits ON
|
// {I = (T(F),ES,FTRA)} / Fsdm F and ES interfers with E which has splits ON
|
||||||
// E is edge of F
|
// E is edge of F
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
Standard_Integer iF;Standard_Boolean tF=BU.GtraceSPS(F,iF);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const TopOpeBRepDS_DataStructure& BDS = BU.DataStructure()->DS();
|
const TopOpeBRepDS_DataStructure& BDS = BU.DataStructure()->DS();
|
||||||
const TopOpeBRepDS_ListOfInterference& LI = BDS.ShapeInterferences(E);
|
const TopOpeBRepDS_ListOfInterference& LI = BDS.ShapeInterferences(E);
|
||||||
Standard_Integer IE = BDS.Shape(E);
|
Standard_Integer IE = BDS.Shape(E);
|
||||||
@ -215,9 +210,6 @@ Standard_Boolean FUN_computeLIFfaces2d(const TopOpeBRepBuild_Builder& BU,
|
|||||||
if (ok) {
|
if (ok) {
|
||||||
newT.Index(ITRA); TopOpeBRepDS_Config C = TopOpeBRepDS_SAMEORIENTED;
|
newT.Index(ITRA); TopOpeBRepDS_Config C = TopOpeBRepDS_SAMEORIENTED;
|
||||||
Handle(TopOpeBRepDS_Interference) newI = TopOpeBRepDS_InterferenceTool::MakeFaceEdgeInterference(newT,ITRA,IE,Standard_True,C);
|
Handle(TopOpeBRepDS_Interference) newI = TopOpeBRepDS_InterferenceTool::MakeFaceEdgeInterference(newT,ITRA,IE,Standard_True,C);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tF) {cout<<"f"<<IF<<" + ";newI->Dump(cout);cout<<endl;}
|
|
||||||
#endif
|
|
||||||
pDS2d->AddShapeInterference(F,newI);
|
pDS2d->AddShapeInterference(F,newI);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -233,9 +225,6 @@ Standard_Boolean FUN_computeLIFfaces2d(const TopOpeBRepBuild_Builder& BU,
|
|||||||
if (ok) {
|
if (ok) {
|
||||||
newT.Index(IF); TopOpeBRepDS_Config C = TopOpeBRepDS_SAMEORIENTED;
|
newT.Index(IF); TopOpeBRepDS_Config C = TopOpeBRepDS_SAMEORIENTED;
|
||||||
Handle(TopOpeBRepDS_Interference) newI = TopOpeBRepDS_InterferenceTool::MakeFaceEdgeInterference(newT,IF,IE,Standard_False,C);
|
Handle(TopOpeBRepDS_Interference) newI = TopOpeBRepDS_InterferenceTool::MakeFaceEdgeInterference(newT,IF,IE,Standard_False,C);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tF) {cout<<"f"<<ITRA<<" + ";newI->Dump(cout);cout<<endl;}
|
|
||||||
#endif
|
|
||||||
pDS2d->AddShapeInterference(FTRA,newI);
|
pDS2d->AddShapeInterference(FTRA,newI);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -243,9 +232,6 @@ Standard_Boolean FUN_computeLIFfaces2d(const TopOpeBRepBuild_Builder& BU,
|
|||||||
if (ok) {
|
if (ok) {
|
||||||
newT.Index(IF); TopOpeBRepDS_Config C = TopOpeBRepDS_SAMEORIENTED;
|
newT.Index(IF); TopOpeBRepDS_Config C = TopOpeBRepDS_SAMEORIENTED;
|
||||||
Handle(TopOpeBRepDS_Interference) newI = TopOpeBRepDS_InterferenceTool::MakeFaceEdgeInterference(newT,IF,S,Standard_True,C);
|
Handle(TopOpeBRepDS_Interference) newI = TopOpeBRepDS_InterferenceTool::MakeFaceEdgeInterference(newT,IF,S,Standard_True,C);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tF) {cout<<endl<<"f"<<ITRA<<" + ";newI->Dump(cout);cout<<endl;}
|
|
||||||
#endif
|
|
||||||
pDS2d->AddShapeInterference(FTRA,newI);
|
pDS2d->AddShapeInterference(FTRA,newI);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,9 +250,6 @@ Standard_Boolean FUN_computeLIFfaces2d(const TopOpeBRepBuild_Builder& BU,
|
|||||||
if (ok) {
|
if (ok) {
|
||||||
newT.Index(ITRA); TopOpeBRepDS_Config C = TopOpeBRepDS_SAMEORIENTED;
|
newT.Index(ITRA); TopOpeBRepDS_Config C = TopOpeBRepDS_SAMEORIENTED;
|
||||||
Handle(TopOpeBRepDS_Interference) newI = TopOpeBRepDS_InterferenceTool::MakeFaceEdgeInterference(newT,ITRA,S,Standard_False,C);
|
Handle(TopOpeBRepDS_Interference) newI = TopOpeBRepDS_InterferenceTool::MakeFaceEdgeInterference(newT,ITRA,S,Standard_False,C);
|
||||||
#ifdef OCCT_DEBUG
|
|
||||||
if (tF) {cout<<"f"<<iF<<" + ";newI->Dump(cout);cout<<endl;}
|
|
||||||
#endif
|
|
||||||
pDS2d->AddShapeInterference(F,newI);
|
pDS2d->AddShapeInterference(F,newI);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -869,11 +852,8 @@ static void FUN_samgeomori(const TopOpeBRepDS_DataStructure& BDS, const Standard
|
|||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
cout<<"o-o GridFF ffil F"<<ifil<<" se E"<<iEOR<<" / "<<iWESF<<" ";
|
cout<<"o-o GridFF ffil F"<<ifil<<" se E"<<iEOR<<" / "<<iWESF<<" ";
|
||||||
TopAbs::Print(TB1,cout);cout.flush();
|
TopAbs::Print(TB1,cout);cout.flush();
|
||||||
Standard_Boolean tse = TopOpeBRepDS_GettraceSPSX(iEOR);
|
|
||||||
TopOpeBRepDS_SettraceSPSX(iEOR,Standard_True);
|
|
||||||
if (!ftg) {cout<<" : !ftg --> "; GKeepShape(EOR,LSclass,TB1);cout.flush();}
|
if (!ftg) {cout<<" : !ftg --> "; GKeepShape(EOR,LSclass,TB1);cout.flush();}
|
||||||
else {cout<<" : ftg --> non gardee"<<endl;cout.flush();}
|
else {cout<<" : ftg --> non gardee"<<endl;cout.flush();}
|
||||||
TopOpeBRepDS_SettraceSPSX(iEOR,tse);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user