1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00

0024940: WOK: Cyclic dependency detected between: BOPInt IntTools

Classes  BOPInt_Context, BOPInt_ShrunkRange, BOPInt_Tools have been removed.
Package BOPInt has been removed
Classes IntTools_Context, IntTools_ShrunkRange have been added to replace corresponding BOPInt_ classes.
The classes provide same functionality as corresponding BOPInt_ classes.
Classes :
BOPAlgo_ArgumentAnalyzer
BOPAlgo_Builder
BOPAlgo_BuilderArea
BOPAlgo_BuilderFace
BOPAlgo_BuilderSolid
BOPAlgo_CheckerSI
BOPAlgo_PaveFiller
BOPAlgo_ShellSplitter
BOPTools_AlgoTools3D
BRepFill_TrimShellCorner
IntTools_BeanFaceIntersector
IntTools_EdgeFace
IntTools_FaceFace
IntTools_Tools
have been modified to use new classes IntTools_Context IntTools_ShrunkRange

Class IntTools_Tools has been modofied to provide the functionality that was in BOPInt_Tools.
This commit is contained in:
pkv 2014-05-26 10:48:29 +04:00 committed by apn
parent 68bd84a5f0
commit 1e143abba6
45 changed files with 1798 additions and 1972 deletions

View File

@ -475,4 +475,3 @@ p Font
p BOPAlgo
p BOPDS
p BOPCol
p BOPInt

View File

@ -28,7 +28,6 @@ uses
IntSurf,
--
BOPDS,
BOPInt,
BOPCol,
BOPTools
is

View File

@ -47,7 +47,7 @@
#include <IntTools_EdgeEdge.hxx>
#include <IntTools_CommonPrt.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <BOPTools_AlgoTools3D.hxx>
#include <BOPTools_AlgoTools.hxx>
@ -76,7 +76,6 @@ myMergeEdgeMode(Standard_False),
myContinuityMode(Standard_False),
myEmpty1(Standard_False),
myEmpty2(Standard_False)
// myMergeFaceMode(Standard_False)
{
}
@ -379,9 +378,9 @@ void BOPAlgo_ArgumentAnalyzer::TestSmallEdge()
{
Standard_Integer i = 0;
BRepExtrema_DistShapeShape aDist;
Handle(BOPInt_Context) aCtx;
Handle(IntTools_Context) aCtx;
//
aCtx = new BOPInt_Context;
aCtx = new IntTools_Context;
for(i = 0; i < 2; i++) {
const TopoDS_Shape& aS = (i == 0) ? myShape1 : myShape2;
@ -816,12 +815,3 @@ void BOPAlgo_ArgumentAnalyzer::TestContinuity()
}
}
}
// ================================================================================
// function: TestMergeFace
// purpose:
// ================================================================================
// void BOPAlgo_ArgumentAnalyzer::TestMergeFace()
// {
// not implemented
// }

View File

@ -32,7 +32,7 @@ uses
MapOfShape from BOPCol,
DataMapOfShapeShape from BOPCol,
DataMapOfShapeListOfShape from BOPCol,
Context from BOPInt,
Context from IntTools,
PDS from BOPDS,
PaveFiller from BOPAlgo,
PPaveFiller from BOPAlgo
@ -218,7 +218,7 @@ fields
myMapFence : MapOfShape from BOPCol is protected;
myPaveFiller : PPaveFiller from BOPAlgo is protected;
myDS : PDS from BOPDS is protected;
myContext : Context from BOPInt is protected;
myContext : Context from IntTools is protected;
myEntryPoint : Integer from Standard is protected;
--
myImages : DataMapOfShapeListOfShape from BOPCol is protected;

View File

@ -26,7 +26,7 @@ uses
BaseAllocator from BOPCol,
ListOfShape from BOPCol,
MapOfOrientedShape from BOPCol,
Context from BOPInt
Context from IntTools
--raises
@ -39,7 +39,7 @@ is
returns BuilderArea from BOPAlgo;
SetContext(me:out;
theContext:Context from BOPInt);
theContext:Context from IntTools);
Shapes(me)
returns ListOfShape from BOPCol;
@ -67,15 +67,13 @@ is
is deferred protected;
fields
myContext : Context from BOPInt is protected;
myContext : Context from IntTools is protected;
myShapes : ListOfShape from BOPCol is protected;
myLoops : ListOfShape from BOPCol is protected;
myLoopsInternal : ListOfShape from BOPCol is protected;
myAreas : ListOfShape from BOPCol is protected;
myShapesToAvoid : MapOfOrientedShape from BOPCol is protected;
--
end BuilderArea;

View File

@ -25,10 +25,9 @@
//function :
//purpose :
//=======================================================================
BOPAlgo_BuilderArea::BOPAlgo_BuilderArea()
BOPAlgo_BuilderArea::BOPAlgo_BuilderArea()
:
BOPAlgo_Algo(),
//myContext(NULL),
myShapes(myAllocator),
myLoops(myAllocator),
myLoopsInternal(myAllocator),
@ -40,10 +39,10 @@
//function :
//purpose :
//=======================================================================
BOPAlgo_BuilderArea::BOPAlgo_BuilderArea(const Handle(NCollection_BaseAllocator)& theAllocator)
BOPAlgo_BuilderArea::BOPAlgo_BuilderArea
(const Handle(NCollection_BaseAllocator)& theAllocator)
:
BOPAlgo_Algo(theAllocator),
//myContext(NULL),
myShapes(myAllocator),
myLoops(myAllocator),
myLoopsInternal(myAllocator),
@ -55,14 +54,15 @@
//function : ~
//purpose :
//=======================================================================
BOPAlgo_BuilderArea::~BOPAlgo_BuilderArea()
BOPAlgo_BuilderArea::~BOPAlgo_BuilderArea()
{
}
//=======================================================================
//function : SetContext
//purpose :
//=======================================================================
void BOPAlgo_BuilderArea::SetContext(const Handle(BOPInt_Context)& theContext)
void BOPAlgo_BuilderArea::SetContext
(const Handle(IntTools_Context)& theContext)
{
myContext=theContext;
}
@ -85,7 +85,7 @@
//function : Shapes
//purpose :
//=======================================================================
const BOPCol_ListOfShape& BOPAlgo_BuilderArea::Shapes()const
const BOPCol_ListOfShape& BOPAlgo_BuilderArea::Shapes()const
{
return myShapes;
}
@ -93,7 +93,7 @@
//function : Loops
//purpose :
//=======================================================================
const BOPCol_ListOfShape& BOPAlgo_BuilderArea::Loops()const
const BOPCol_ListOfShape& BOPAlgo_BuilderArea::Loops()const
{
return myLoops;
}
@ -105,33 +105,3 @@
{
return myAreas;
}
/*
//=======================================================================
//function :PerformShapesToAvoid
//purpose :
//=======================================================================
void BOPAlgo_BuilderArea::PerformShapesToAvoid()
{
}
//=======================================================================
//function : PerformLoops
//purpose :
//=======================================================================
void BOPAlgo_BuilderArea::PerformLoops()
{
}
//=======================================================================
//function : PerformAreas
//purpose :
//=======================================================================
void BOPAlgo_BuilderArea::PerformAreas()
{
}
//=======================================================================
//function : PerformInternalShapes
//purpose :
//=======================================================================
void BOPAlgo_BuilderArea::PerformInternalShapes()
{
}
*/

View File

@ -44,7 +44,7 @@
#include <TopExp_Explorer.hxx>
#include <IntTools_FClass2d.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
//
#include <BOPTools_AlgoTools.hxx>
@ -67,7 +67,7 @@ static
static
Standard_Boolean IsInside(const TopoDS_Shape& ,
const TopoDS_Shape& ,
Handle(BOPInt_Context)& );
Handle(IntTools_Context)& );
static
void MakeInternalWires(const BOPCol_MapOfShape& ,
BOPCol_ListOfShape& );
@ -199,7 +199,7 @@ void BOPAlgo_BuilderFace::CheckData()
return;
}
if (myContext.IsNull()) {
myContext = new BOPInt_Context;
myContext = new IntTools_Context;
}
}
//=======================================================================
@ -261,9 +261,6 @@ void BOPAlgo_BuilderFace::PerformShapesToAvoid()
if (!myShapesToAvoid.Contains(aE)) {
BOPTools::MapShapesAndAncestors(aE, TopAbs_VERTEX, TopAbs_EDGE, aMVE);
}
//else {
//int a=0;
//}
}
aNbV=aMVE.Extent();
//
@ -393,7 +390,10 @@ void BOPAlgo_BuilderFace::PerformLoops()
aItM.Initialize(myShapesToAvoid);
for (; aItM.More(); aItM.Next()) {
const TopoDS_Shape& aEE=aItM.Key();
BOPTools::MapShapesAndAncestors(aEE, TopAbs_VERTEX, TopAbs_EDGE, aVEMap);
BOPTools::MapShapesAndAncestors(aEE,
TopAbs_VERTEX,
TopAbs_EDGE,
aVEMap);
}
//
bFlag=Standard_True;
@ -769,7 +769,7 @@ void MakeInternalWires(const BOPCol_MapOfShape& theME,
//=======================================================================
Standard_Boolean IsInside(const TopoDS_Shape& theHole,
const TopoDS_Shape& theF2,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bRet;
Standard_Real aT, aU, aV;

View File

@ -66,7 +66,7 @@
#include <BOPTools_CoupleOfShape.hxx>
#include <BOPTools_AlgoTools.hxx>
//
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
//
#include <BOPAlgo_ShellSplitter.hxx>
@ -75,11 +75,11 @@ static
const BOPCol_IndexedMapOfShape& );
static
Standard_Boolean IsHole(const TopoDS_Shape& ,
Handle(BOPInt_Context)& );
Handle(IntTools_Context)& );
static
Standard_Boolean IsInside(const TopoDS_Shape& ,
const TopoDS_Shape& ,
Handle(BOPInt_Context)& );
Handle(IntTools_Context)& );
static
void MakeInternalShells(const BOPCol_MapOfShape& ,
BOPCol_ListOfShape& );
@ -185,7 +185,7 @@ void BOPAlgo_BuilderSolid::Perform()
myErrorStatus=0;
//
if (myContext.IsNull()) {
myContext=new BOPInt_Context;
myContext=new IntTools_Context;
}
//
TopoDS_Compound aC;
@ -775,7 +775,7 @@ void MakeInternalShells(const BOPCol_MapOfShape& theMF,
//purpose :
//=======================================================================
Standard_Boolean IsHole(const TopoDS_Shape& theS2,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
TopoDS_Solid *pS2=(TopoDS_Solid *)&theS2;
BRepClass3d_SolidClassifier& aClsf=theContext->SolidClassifier(*pS2);
@ -790,7 +790,7 @@ Standard_Boolean IsHole(const TopoDS_Shape& theS2,
//=======================================================================
Standard_Boolean IsInside(const TopoDS_Shape& theS1,
const TopoDS_Shape& theS2,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
TopExp_Explorer aExp;
TopAbs_State aState;

View File

@ -38,7 +38,7 @@
#include <BOPCol_NCVector.hxx>
#include <BOPCol_TBB.hxx>
//
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
//
#include <BOPDS_PaveBlock.hxx>
#include <BOPDS_ShapeInfo.hxx>
@ -132,9 +132,9 @@ class BOPAlgo_BuilderSDFaceFunctor {
void operator()( const flexible_range<Standard_Integer>& aBR ) const {
Standard_Boolean bFlag;
Standard_Integer i, iBeg, iEnd;
Handle(BOPInt_Context) aContext;
Handle(IntTools_Context) aContext;
//
aContext=new BOPInt_Context;
aContext=new IntTools_Context;
//
BOPAlgo_VectorOfPairOfShapeBoolean& aVPSB=*myPVPSB;
//
@ -223,11 +223,11 @@ class BOPAlgo_VFI {
return myFlag;
}
//
void SetContext(const Handle(BOPInt_Context)& aContext) {
void SetContext(const Handle(IntTools_Context)& aContext) {
myContext=aContext;
}
//
const Handle(BOPInt_Context)& Context()const {
const Handle(IntTools_Context)& Context()const {
return myContext;
}
//
@ -241,7 +241,7 @@ class BOPAlgo_VFI {
Standard_Integer myFlag;
TopoDS_Vertex myV;
TopoDS_Face myF;
Handle(BOPInt_Context) myContext;
Handle(IntTools_Context) myContext;
};
//
typedef BOPCol_NCVector<BOPAlgo_VFI> BOPAlgo_VectorOfVFI;
@ -249,13 +249,13 @@ typedef BOPCol_NCVector<BOPAlgo_VFI> BOPAlgo_VectorOfVFI;
typedef BOPCol_TBBContextFunctor
<BOPAlgo_VFI,
BOPAlgo_VectorOfVFI,
Handle(BOPInt_Context),
BOPInt_Context> BOPAlgo_VFIFunctor;
Handle(IntTools_Context),
IntTools_Context> BOPAlgo_VFIFunctor;
//
typedef BOPCol_TBBContextCnt
<BOPAlgo_VFIFunctor,
BOPAlgo_VectorOfVFI,
Handle(BOPInt_Context)> BOPAlgo_VFICnt;
Handle(IntTools_Context)> BOPAlgo_VFICnt;
//
//=======================================================================
//function : FillImagesFaces

View File

@ -52,7 +52,7 @@
#include <BOPCol_NCVector.hxx>
#include <BOPCol_TBB.hxx>
//
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
//
#include <BOPDS_DS.hxx>
#include <BOPDS_ShapeInfo.hxx>
@ -434,9 +434,8 @@ void BOPAlgo_Builder::BuildDraftSolid(const TopoDS_Shape& theSolid,
theLIF.Append(aFSDx);
}
else {
bToReverse=BOPTools_AlgoTools::IsSplitToReverse(aFSDx,
aF,
myContext);
bToReverse=BOPTools_AlgoTools::IsSplitToReverse
(aFSDx, aF, myContext);
if (bToReverse) {
aFSDx.Reverse();
}

View File

@ -39,7 +39,7 @@
#include <BOPDS_VectorOfInterfEF.hxx>
#include <BOPDS_VectorOfInterfFF.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <BOPTools.hxx>
#include <BOPTools_AlgoTools.hxx>
@ -115,7 +115,7 @@ void BOPAlgo_CheckerSI::Init()
myIterator=theIterSI;
//
// 3 myContext
myContext=new BOPInt_Context;
myContext=new IntTools_Context;
//
myErrorStatus=0;
}

View File

@ -20,7 +20,7 @@
#include <BOPDS_DS.hxx>
#include <BOPDS_IteratorSI.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <BOPDS_Interf.hxx>
#include <TopoDS_Solid.hxx>

View File

@ -38,7 +38,7 @@ uses
DataMapOfIntegerReal from BOPCol,
DataMapOfIntegerInteger from BOPCol,
--
Context from BOPInt,
Context from IntTools,
--
SectionAttribute from BOPAlgo,
@ -87,7 +87,7 @@ is
---C++: alias "Standard_EXPORT void SetArguments(const BOPCol_ListOfShape& theLS);"
Context(me:out)
returns Context from BOPInt;
returns Context from IntTools;
SetSectionAttribute(me:out;
theSecAttr : SectionAttribute from BOPAlgo);
@ -449,7 +449,7 @@ fields
myArguments : ListOfShape from BOPCol is protected;
myDS : PDS from BOPDS is protected;
myIterator : PIterator from BOPDS is protected;
myContext : Context from BOPInt is protected;
myContext : Context from IntTools is protected;
mySectionAttribute : SectionAttribute from BOPAlgo is protected;
end PaveFiller;

View File

@ -22,7 +22,7 @@
#include <NCollection_BaseAllocator.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <BOPDS_DS.hxx>
#include <BOPDS_Iterator.hxx>
@ -93,7 +93,7 @@ BOPDS_PDS BOPAlgo_PaveFiller::PDS()
//function : Context
//purpose :
//=======================================================================
Handle(BOPInt_Context) BOPAlgo_PaveFiller::Context()
Handle(IntTools_Context) BOPAlgo_PaveFiller::Context()
{
return myContext;
}
@ -150,7 +150,7 @@ void BOPAlgo_PaveFiller::Init()
myIterator->Prepare();
//
// 3 myContext
myContext=new BOPInt_Context;
myContext=new IntTools_Context;
//
myErrorStatus=0;
}

View File

@ -24,7 +24,7 @@
#include <BOPCol_NCVector.hxx>
#include <BOPCol_TBB.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <BOPDS_Iterator.hxx>
#include <BOPDS_VectorOfInterfVE.hxx>
@ -87,11 +87,11 @@ class BOPAlgo_VertexEdge {
return myT;
}
//
void SetContext(const Handle(BOPInt_Context)& aContext) {
void SetContext(const Handle(IntTools_Context)& aContext) {
myContext=aContext;
}
//
const Handle(BOPInt_Context)& Context()const {
const Handle(IntTools_Context)& Context()const {
return myContext;
}
//
@ -107,7 +107,7 @@ class BOPAlgo_VertexEdge {
Standard_Real myT;
TopoDS_Vertex myV;
TopoDS_Edge myE;
Handle(BOPInt_Context) myContext;
Handle(IntTools_Context) myContext;
};
//=======================================================================
typedef BOPCol_NCVector
@ -116,13 +116,13 @@ typedef BOPCol_NCVector
typedef BOPCol_TBBContextFunctor
<BOPAlgo_VertexEdge,
BOPAlgo_VectorOfVertexEdge,
Handle(BOPInt_Context),
BOPInt_Context> BOPAlgo_VertexEdgeFunctor;
Handle(IntTools_Context),
IntTools_Context> BOPAlgo_VertexEdgeFunctor;
//
typedef BOPCol_TBBContextCnt
<BOPAlgo_VertexEdgeFunctor,
BOPAlgo_VectorOfVertexEdge,
Handle(BOPInt_Context)> BOPAlgo_VertexEdgeCnt;
Handle(IntTools_Context)> BOPAlgo_VertexEdgeCnt;
//
//=======================================================================
// function: PerformVE

View File

@ -49,9 +49,9 @@
#include <BOPCol_NCVector.hxx>
#include <BOPCol_TBB.hxx>
//
#include <BOPInt_Context.hxx>
#include <BOPInt_ShrunkRange.hxx>
#include <BOPInt_Tools.hxx>
#include <IntTools_Context.hxx>
#include <IntTools_ShrunkRange.hxx>
#include <IntTools_Tools.hxx>
//
#include <BOPDS_DataMapOfPaveBlockListOfPaveBlock.hxx>
#include <BOPDS_MapOfPaveBlock.hxx>
@ -216,11 +216,11 @@ class BOPAlgo_PVE {
return myT;
}
//
void SetContext(const Handle(BOPInt_Context)& aContext) {
void SetContext(const Handle(IntTools_Context)& aContext) {
myContext=aContext;
}
//
const Handle(BOPInt_Context)& Context()const {
const Handle(IntTools_Context)& Context()const {
return myContext;
}
//
@ -236,7 +236,7 @@ class BOPAlgo_PVE {
TopoDS_Vertex myV;
TopoDS_Edge myE;
Handle(BOPDS_PaveBlock) myPB;
Handle(BOPInt_Context) myContext;
Handle(IntTools_Context) myContext;
};
//=======================================================================
typedef BOPCol_NCVector
@ -245,13 +245,13 @@ typedef BOPCol_NCVector
typedef BOPCol_TBBContextFunctor
<BOPAlgo_PVE,
BOPAlgo_VectorOfPVE,
Handle(BOPInt_Context),
BOPInt_Context> BOPAlgo_PVEFunctor;
Handle(IntTools_Context),
IntTools_Context> BOPAlgo_PVEFunctor;
//
typedef BOPCol_TBBContextCnt
<BOPAlgo_PVEFunctor,
BOPAlgo_VectorOfPVE,
Handle(BOPInt_Context)> BOPAlgo_PVECnt;
Handle(IntTools_Context)> BOPAlgo_PVECnt;
/////////////////////////////////////////////////////////////////////////
//=======================================================================
// function: PerformEE
@ -394,20 +394,20 @@ void BOPAlgo_PaveFiller::PerformEE()
TopoDS_Vertex aVnew;
IntTools_Range aCR1, aCR2;
//
BOPInt_Tools::VertexParameters(aCPart, aT1, aT2);
IntTools_Tools::VertexParameters(aCPart, aT1, aT2);
aTol = Precision::Confusion();
aCR1 = aCPart.Range1();
aCR2 = aCPart.Ranges2()(1);
//
//decide to keep the pave or not
bIsOnPave[0] = BOPInt_Tools::IsOnPave1(aT1, aR11, aTol) ||
BOPInt_Tools::IsOnPave1(aR11.First(), aCR1, aTol);
bIsOnPave[1] = BOPInt_Tools::IsOnPave1(aT1, aR12, aTol) ||
BOPInt_Tools::IsOnPave1(aR12.Last(), aCR1, aTol);
bIsOnPave[2] = BOPInt_Tools::IsOnPave1(aT2, aR21, aTol) ||
BOPInt_Tools::IsOnPave1(aR21.First(), aCR2, aTol);
bIsOnPave[3] = BOPInt_Tools::IsOnPave1(aT2, aR22, aTol) ||
BOPInt_Tools::IsOnPave1(aR22.Last(), aCR2, aTol);
bIsOnPave[0] = IntTools_Tools::IsOnPave1(aT1, aR11, aTol) ||
IntTools_Tools::IsOnPave1(aR11.First(), aCR1, aTol);
bIsOnPave[1] = IntTools_Tools::IsOnPave1(aT1, aR12, aTol) ||
IntTools_Tools::IsOnPave1(aR12.Last(), aCR1, aTol);
bIsOnPave[2] = IntTools_Tools::IsOnPave1(aT2, aR21, aTol) ||
IntTools_Tools::IsOnPave1(aR21.First(), aCR2, aTol);
bIsOnPave[3] = IntTools_Tools::IsOnPave1(aT2, aR22, aTol) ||
IntTools_Tools::IsOnPave1(aR22.Last(), aCR2, aTol);
//
aPB1->Indices(nV[0], nV[1]);
aPB2->Indices(nV[2], nV[3]);
@ -824,7 +824,7 @@ void BOPAlgo_PaveFiller::FillShrunkData(Handle(BOPDS_PaveBlock)& thePB)
{
Standard_Integer nE, nV1, nV2, iErr;
Standard_Real aT1, aT2, aTS1, aTS2;
BOPInt_ShrunkRange aSR;
IntTools_ShrunkRange aSR;
//
myErrorStatus=0;
myWarningStatus = 0;

View File

@ -29,7 +29,7 @@
#include <BOPCol_NCVector.hxx>
#include <BOPCol_TBB.hxx>
//
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
//
#include <BOPDS_Iterator.hxx>
#include <BOPDS_VectorOfInterfVF.hxx>
@ -94,11 +94,11 @@ class BOPAlgo_VertexFace {
aT2=myT2;
}
//
void SetContext(const Handle(BOPInt_Context)& aContext) {
void SetContext(const Handle(IntTools_Context)& aContext) {
myContext=aContext;
}
//
const Handle(BOPInt_Context)& Context()const {
const Handle(IntTools_Context)& Context()const {
return myContext;
}
//
@ -115,7 +115,7 @@ class BOPAlgo_VertexFace {
Standard_Real myT2;
TopoDS_Vertex myV;
TopoDS_Face myF;
Handle(BOPInt_Context) myContext;
Handle(IntTools_Context) myContext;
};
//=======================================================================
typedef BOPCol_NCVector<BOPAlgo_VertexFace>
@ -124,13 +124,13 @@ typedef BOPCol_NCVector<BOPAlgo_VertexFace>
typedef BOPCol_TBBContextFunctor
<BOPAlgo_VertexFace,
BOPAlgo_VectorOfVertexFace,
Handle(BOPInt_Context),
BOPInt_Context> BOPAlgo_VertexFaceFunctor;
Handle(IntTools_Context),
IntTools_Context> BOPAlgo_VertexFaceFunctor;
//
typedef BOPCol_TBBContextCnt
<BOPAlgo_VertexFaceFunctor,
BOPAlgo_VectorOfVertexFace,
Handle(BOPInt_Context)> BOPAlgo_VertexFaceCnt;
Handle(IntTools_Context)> BOPAlgo_VertexFaceCnt;
//
//=======================================================================
// function: PerformVF

View File

@ -40,8 +40,8 @@
#include <BOPCol_NCVector.hxx>
#include <BOPCol_TBB.hxx>
//
#include <BOPInt_Context.hxx>
#include <BOPInt_Tools.hxx>
#include <IntTools_Context.hxx>
#include <IntTools_Tools.hxx>
//
#include <BOPDS_Interf.hxx>
#include <BOPDS_Iterator.hxx>
@ -110,13 +110,13 @@ typedef BOPCol_NCVector<BOPAlgo_EdgeFace> BOPAlgo_VectorOfEdgeFace;
typedef BOPCol_TBBContextFunctor
<BOPAlgo_EdgeFace,
BOPAlgo_VectorOfEdgeFace,
Handle(BOPInt_Context),
BOPInt_Context> BOPAlgo_EdgeFaceFunctor;
Handle(IntTools_Context),
IntTools_Context> BOPAlgo_EdgeFaceFunctor;
//
typedef BOPCol_TBBContextCnt
<BOPAlgo_EdgeFaceFunctor,
BOPAlgo_VectorOfEdgeFace,
Handle(BOPInt_Context)> BOPAlgo_EdgeFaceCnt;
Handle(IntTools_Context)> BOPAlgo_EdgeFaceCnt;
//
//=======================================================================
//function : PerformEF
@ -270,7 +270,7 @@ void BOPAlgo_PaveFiller::PerformEF()
Standard_Real aT, aTolToDecide;
TopoDS_Vertex aVnew;
//
BOPInt_Tools::VertexParameter(aCPart, aT);
IntTools_Tools::VertexParameter(aCPart, aT);
BOPTools_AlgoTools::MakeNewVertex(aE, aT, aF, aVnew);
//
const IntTools_Range& aR=aCPart.Range1();
@ -278,8 +278,8 @@ void BOPAlgo_PaveFiller::PerformEF()
//
IntTools_Range aR1(aT1,anewSR.First()),aR2(anewSR.Last(), aT2);
//
bIsOnPave[0]=BOPInt_Tools::IsInRange(aR1, aR, aTolToDecide);
bIsOnPave[1]=BOPInt_Tools::IsInRange(aR2, aR, aTolToDecide);
bIsOnPave[0]=IntTools_Tools::IsInRange(aR1, aR, aTolToDecide);
bIsOnPave[1]=IntTools_Tools::IsInRange(aR2, aR, aTolToDecide);
//
if (bIsOnPave[0] && bIsOnPave[1]) {
bV[0]=CheckFacePaves(nV[0], aMIFOn, aMIFIn);

View File

@ -65,8 +65,8 @@
#include <BOPCol_NCVector.hxx>
#include <BOPCol_TBB.hxx>
#include <BOPInt_Context.hxx>
#include <BOPInt_Tools.hxx>
#include <IntTools_Context.hxx>
#include <IntTools_Tools.hxx>
#include <BOPDS_Interf.hxx>
#include <BOPDS_Iterator.hxx>
@ -89,7 +89,7 @@
#include <BOPAlgo_Tools.hxx>
#include <BRepBuilderAPI_MakeVertex.hxx>
#include <TopExp.hxx>
#include <BOPInt_ShrunkRange.hxx>
#include <IntTools_ShrunkRange.hxx>
#include <BOPDS_DataMapOfPaveBlockListOfPaveBlock.hxx>
static void ToleranceFF(const BRepAdaptor_Surface& aBAS1,
@ -313,7 +313,7 @@ void BOPAlgo_PaveFiller::PerformFF()
//
const IntTools_Curve& aIC=aCvsX(i);
const Handle(Geom_Curve)& aC3D= aIC.Curve();
bValid=BOPInt_Tools::CheckCurve(aC3D, aTolR3D, aBox);
bValid=IntTools_Tools::CheckCurve(aC3D, aTolR3D, aBox);
if (bValid) {
iC=aVNC.Append()-1;
BOPDS_Curve& aNC=aVNC(iC);

View File

@ -28,16 +28,16 @@
#include <BOPDS_Iterator.hxx>
#include <BOPDS_ListOfPaveBlock.hxx>
#include <BOPInt_ShrunkRange.hxx>
#include <IntTools_ShrunkRange.hxx>
//=======================================================================
//class : BOPAlgo_ShrunkRange
//purpose :
//=======================================================================
class BOPAlgo_ShrunkRange : public BOPInt_ShrunkRange {
class BOPAlgo_ShrunkRange : public IntTools_ShrunkRange {
public:
BOPAlgo_ShrunkRange()
: BOPInt_ShrunkRange(),
: IntTools_ShrunkRange(),
myWarningStatus(0) {
}
//
@ -56,7 +56,7 @@ class BOPAlgo_ShrunkRange : public BOPInt_ShrunkRange {
//
myWarningStatus=0;
//
BOPInt_ShrunkRange::Perform();
IntTools_ShrunkRange::Perform();
if (myErrorStatus) {
myWarningStatus=1;
}
@ -78,13 +78,13 @@ typedef BOPCol_NCVector
typedef BOPCol_TBBContextFunctor
<BOPAlgo_ShrunkRange,
BOPAlgo_VectorOfShrunkRange,
Handle(BOPInt_Context),
BOPInt_Context> BOPAlgo_ShrunkRangeFunctor;
Handle(IntTools_Context),
IntTools_Context> BOPAlgo_ShrunkRangeFunctor;
//
typedef BOPCol_TBBContextCnt
<BOPAlgo_ShrunkRangeFunctor,
BOPAlgo_VectorOfShrunkRange,
Handle(BOPInt_Context)> BOPAlgo_ShrunkRangeCnt;
Handle(IntTools_Context)> BOPAlgo_ShrunkRangeCnt;
//
//=======================================================================
// function: FillShrunkData

View File

@ -32,7 +32,7 @@
#include <BOPCol_NCVector.hxx>
#include <BOPCol_IndexedDataMapOfShapeListOfShape.hxx>
//
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
//
#include <BOPTools.hxx>
#include <BOPTools_AlgoTools.hxx>
@ -320,7 +320,7 @@ void BOPAlgo_ShellSplitter::SplitBlock(BOPTools_ConnexityBlock& aCB)
BOPCol_MapOfOrientedShape AddedFacesMap;
BOPCol_IndexedDataMapOfShapeListOfShape aEFMap, aMEFP;
//
Handle (BOPInt_Context) aContext=new BOPInt_Context;
Handle (IntTools_Context) aContext=new IntTools_Context;
//
const BOPCol_ListOfShape& myShapes=aCB.Shapes();
//

View File

@ -1,46 +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.
package BOPInt
---Purpose:
uses
gp,
Bnd,
TopAbs,
Geom,
GeomAPI,
Geom2dHatch,
BRepClass3d,
TopoDS,
TopTools,
IntTools,
--
BOPCol
is
--
-- classes
--
class Context;
--class Range;
class ShrunkRange;
class Tools;
--
-- pointers
--
end BOPInt;

View File

@ -1,84 +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.
class Tools from BOPInt
---Purpose:
uses
Box from Bnd,
Lin from gp,
Pln from gp,
Pnt from gp,
Curve from Geom,
Edge from TopoDS,
Face from TopoDS,
Range from IntTools,
CommonPrt from IntTools
--raises
is
CheckCurve(myclass;
theC:Curve from Geom;
theTol:Real from Standard;
theBox:out Box from Bnd)
returns Boolean from Standard;
IsOnPave(myclass;
theT:Real from Standard;
theRange:Range from IntTools;
theTol: Real from Standard)
returns Boolean from Standard;
VertexParameters(myclass;
theCP:CommonPrt from IntTools;
theT1:out Real from Standard;
theT2:out Real from Standard);
VertexParameter(myclass;
theCP:CommonPrt from IntTools;
theT:out Real from Standard);
IsOnPave1(myclass;
theT:Real from Standard;
theRange:Range from IntTools;
theTol: Real from Standard)
returns Boolean from Standard;
IsInRange(myclass;
theRRef : Range from IntTools;
theR : Range from IntTools;
theTol : Real from Standard)
returns Boolean from Standard;
---Purpose: Checks if the range <theR> interfere with the range <theRRef>
SegPln(myclass;
theLin : Lin from gp;
theTLin1 : Real from Standard;
theTLin2 : Real from Standard;
theTolLin: Real from Standard;
thePln : Pln from gp;
theTolPln: Real from Standard;
theP :out Pnt from gp;
theT :out Real from Standard;
theTolP :out Real from Standard;
theTmin :out Real from Standard;
theTmax :out Real from Standard)
returns Integer from Standard;
--fields
end Tools;

View File

@ -1,218 +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 <BOPInt_Tools.ixx>
#include <gp_Pnt.hxx>
#include <BndLib_Add3dCurve.hxx>
#include <Bnd_Box.hxx>
#include <Geom_Curve.hxx>
#include <GeomAdaptor_Curve.hxx>
//=======================================================================
//function : CheckCurve
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Tools::CheckCurve(const Handle (Geom_Curve)& aC3D,
const Standard_Real aTolR3D,
Bnd_Box& aBox)
{
Standard_Boolean bRet;
Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax, dX, dY, dZ;
Standard_Real dS, aTol;
GeomAdaptor_Curve aGAC;
//
aGAC.Load(aC3D);
BndLib_Add3dCurve::Add(aGAC, aTolR3D, aBox);
// 910/B1
aBox.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
dX=aXmax-aXmin;
dY=aYmax-aYmin;
dZ=aZmax-aZmin;
dS=1.e-12;
aTol=2.*aTolR3D+dS;
bRet=(dX>aTol || dY>aTol || dZ>aTol);
//
return bRet;
}
//=======================================================================
//function : IsOnPave
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Tools::IsOnPave(const Standard_Real aT1,
const IntTools_Range& aRange,
const Standard_Real aTolerance)
{
Standard_Boolean firstisonpave1, firstisonpave2, bIsOnPave;
//
firstisonpave1 = (Abs(aRange.First() - aT1) < aTolerance);
firstisonpave2 = (Abs(aRange.Last() - aT1) < aTolerance);
bIsOnPave=(firstisonpave1 || firstisonpave2);
return bIsOnPave;
}
//=======================================================================
// function: VertexParameters
// purpose:
//=======================================================================
void BOPInt_Tools::VertexParameters(const IntTools_CommonPrt& aCPart,
Standard_Real& aT1,
Standard_Real& aT2)
{
const IntTools_Range& aR1=aCPart.Range1();
aT1=0.5*(aR1.First()+aR1.Last());
//
if((aCPart.VertexParameter1() >= aR1.First()) &&
(aCPart.VertexParameter1() <= aR1.Last())) {
aT1 = aCPart.VertexParameter1();
}
//
const IntTools_SequenceOfRanges& aRanges2=aCPart.Ranges2();
const IntTools_Range& aR2=aRanges2(1);
aT2=0.5*(aR2.First()+aR2.Last());
//
if((aCPart.VertexParameter2() >= aR2.First()) &&
(aCPart.VertexParameter2() <= aR2.Last())) {
aT2 = aCPart.VertexParameter2();
}
}
//=======================================================================
// function: VertexParameter
// purpose:
//=======================================================================
void BOPInt_Tools::VertexParameter(const IntTools_CommonPrt& aCPart,
Standard_Real& aT)
{
const IntTools_Range& aR=aCPart.Range1();
aT=0.5*(aR.First()+aR.Last());
if((aCPart.VertexParameter1() >= aR.First()) &&
(aCPart.VertexParameter1() <= aR.Last())) {
aT = aCPart.VertexParameter1();
}
}
//=======================================================================
// function: IsOnPave1
// purpose:
//=======================================================================
Standard_Boolean BOPInt_Tools::IsOnPave1(const Standard_Real aTR,
const IntTools_Range& aCPRange,
const Standard_Real aTolerance)
{
Standard_Boolean bIsOnPave;
Standard_Real aT1, aT2, dT1, dT2;
//
aT1=aCPRange.First();
aT2=aCPRange.Last();
bIsOnPave=(aTR>=aT1 && aTR<=aT1);
if (bIsOnPave) {
return bIsOnPave;
}
//
dT1=Abs(aTR-aT1);
dT2=Abs(aTR-aT2);
bIsOnPave=(dT1<=aTolerance || dT2<=aTolerance);
return bIsOnPave;
}
//=======================================================================
// function: IsInRange
// purpose:
//=======================================================================
Standard_Boolean BOPInt_Tools::IsInRange(const IntTools_Range& aRRef,
const IntTools_Range& aR,
const Standard_Real aTolerance)
{
Standard_Boolean bIsIn;
Standard_Real aT1, aT2, aTRef1, aTRef2;
//
aR.Range(aT1, aT2);
aRRef.Range(aTRef1, aTRef2);
//
aTRef1-=aTolerance;
aTRef2+=aTolerance;
//
bIsIn = (aT1>=aTRef1 && aT1<=aTRef2) ||
(aT2>=aTRef1 && aT2<=aTRef2);
//
return bIsIn;
}
//=======================================================================
//function : SegPln
//purpose :
//=======================================================================
Standard_Integer BOPInt_Tools::SegPln(const gp_Lin& theLin,
const Standard_Real theTLin1,
const Standard_Real theTLin2,
const Standard_Real theTolLin,
const gp_Pln& thePln,
const Standard_Real theTolPln,
gp_Pnt& theP,
Standard_Real& theTP,
Standard_Real& theTolP,
Standard_Real& theTPmin,
Standard_Real& theTPmax)
{
Standard_Integer iRet;
Standard_Real aTol, aA, aB, aC, aD, aE, aH, aTP, aDist1, aDist2;
gp_Pnt aP1, aP2;
//
iRet=0;
aTol=theTolLin+theTolPln;
//
const gp_Ax3& aPosPln=thePln.Position();
const gp_Dir& aDirPln=aPosPln.Direction();
const gp_Pnt& aLocPln=aPosPln.Location();
//
const gp_Dir& aDirLin=theLin.Direction();
const gp_Pnt& aLocLin=theLin.Location();
//
aP1.SetXYZ(aLocLin.XYZ()+theTLin1*aDirLin.XYZ());
aDist1=aDirPln.X()*(aP1.X()-aLocPln.X())+
aDirPln.Y()*(aP1.Y()-aLocPln.Y())+
aDirPln.Z()*(aP1.Z()-aLocPln.Z());
//
aP2.SetXYZ(aLocLin.XYZ()+theTLin2*aDirLin.XYZ());
aDist2=aDirPln.X()*(aP2.X()-aLocPln.X())+
aDirPln.Y()*(aP2.Y()-aLocPln.Y())+
aDirPln.Z()*(aP2.Z()-aLocPln.Z());
//
if (aDist1<aTol && aDist2<aTol){
iRet=1; // common block
return iRet;
}
//
if (aDist1*aDist2 > 0.) {
iRet=2; // segment lays on one side to the Plane
return iRet;
}
//
thePln.Coefficients(aA, aB, aC, aD);
aE=aA*aLocLin.X()+aB*aLocLin.Y()+aC*aLocLin.Z()+aD;
aH=aA*aDirLin.X()+aB*aDirLin.Y()+aC*aDirLin.Z();
aTP=-aE/aH;
if (aTP < theTLin1-aTol || aTP > theTLin2+aTol) {
iRet=3; // no intersections due to range of the Line
return iRet;
}
//
theTP=aTP;
theP.SetXYZ(aLocLin.XYZ()+aTP*aDirLin.XYZ());
theTolP=aTol;
theTPmin=theTP-theTolPln;
theTPmax=theTP+theTolPln;
iRet=0; // intersection point
return iRet;
}

View File

@ -29,8 +29,7 @@ uses
IntTools,
ProjLib,
--
BOPCol,
BOPInt
BOPCol
is
--

View File

@ -38,7 +38,7 @@ uses
ListOfShape from BOPCol,
IndexedMapOfShape from BOPCol,
IndexedDataMapOfShapeListOfShape from BOPCol,
Context from BOPInt,
Context from IntTools,
ListOfCoupleOfShape from BOPTools,
Range from IntTools
@ -90,7 +90,7 @@ is
IsSplitToReverse(myclass;
theSplit : Shape from TopoDS;
theShape : Shape from TopoDS;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Returns True if the shape theSplit has opposite
-- direction than theShape
-- theContext - cashed geometrical tools
@ -99,7 +99,7 @@ is
IsSplitToReverse(myclass;
theSplit : Face from TopoDS;
theShape : Face from TopoDS;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Returns True if normal direction of the face
-- theShape is not the same as for the face
-- theSplit
@ -109,20 +109,20 @@ is
IsSplitToReverse (myclass;
aE1: Edge from TopoDS;
aE2: Edge from TopoDS;
aContext:out Context from BOPInt)
aContext:out Context from IntTools)
returns Boolean from Standard;
AreFacesSameDomain(myclass;
theF1: Face from TopoDS;
theF2: Face from TopoDS;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
returns Boolean from Standard;
CheckSameGeom (myclass;
theF1: Face from TopoDS;
theF2: Face from TopoDS;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
returns Boolean from Standard;
Sense (myclass;
@ -145,7 +145,7 @@ is
theFace :Face from TopoDS;
theLCEF :out ListOfCoupleOfShape from BOPTools;
theFaceOff :out Face from TopoDS;
theContext :out Context from BOPInt)
theContext :out Context from IntTools)
returns Boolean from Standard;
---Purpose: For the face theFace and its edge theEdge
@ -158,7 +158,7 @@ is
theEdge :Edge from TopoDS;
theFace1 :Face from TopoDS;
theFace2 :Face from TopoDS;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Returns True if the face theFace is inside of the
-- couple of faces theFace1, theFace2.
-- The faces theFace, theFace1, theFace2 must
@ -169,7 +169,7 @@ is
theFace :Face from TopoDS;
theEdge :Edge from TopoDS;
theLF :out ListOfShape from BOPCol;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Returns True if the face theFace is inside of the
-- appropriate couple of faces (from the set theLF) .
-- The faces of the set theLF and theFace must
@ -181,7 +181,7 @@ is
theSolid :Solid from TopoDS;
theMEF :out IndexedDataMapOfShapeListOfShape from BOPCol;
theTol :Real from Standard;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Returns True if the face theFace is inside the
-- solid theSolid.
-- theMEF - Map Edge/Faces for theSolid
@ -204,7 +204,7 @@ is
thePoint :Pnt from gp;
theSolid :Solid from TopoDS;
theTol :Real from Standard;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Computes the 3-D state of the point thePoint
-- toward solid theSolid.
-- theTol - value of precision of computation
@ -216,7 +216,7 @@ is
theVertex:Vertex from TopoDS;
theSolid :Solid from TopoDS;
theTol :Real from Standard;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Computes the 3-D state of the vertex theVertex
-- toward solid theSolid.
-- theTol - value of precision of computation
@ -228,7 +228,7 @@ is
theEdge :Edge from TopoDS;
theSolid :Solid from TopoDS;
theTol :Real from Standard;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Computes the 3-D state of the edge theEdge
-- toward solid theSolid.
-- theTol - value of precision of computation
@ -241,7 +241,7 @@ is
theSolid :Solid from TopoDS;
theTol :Real from Standard;
theBounds:out IndexedMapOfShape from BOPCol;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Computes the 3-D state of the face theFace
-- toward solid theSolid.
-- theTol - value of precision of computation
@ -254,7 +254,7 @@ is
theShape :Shape from TopoDS;
theSolid :Solid from TopoDS;
theTol :Real from Standard;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
---Purpose: Computes the 3-D state of the shape theShape
-- toward solid theSolid.
-- theTol - value of precision of computation
@ -426,7 +426,7 @@ is
aShR : Range from IntTools;
aF : Face from TopoDS;
aE : Edge from TopoDS;
aContext:out Context from BOPInt)
aContext:out Context from IntTools)
returns Boolean from Standard;
---Purpose:
--- Returns TRUE if PaveBlock <aPB> lays on the face <aF>, i.e
@ -434,7 +434,7 @@ is
IsMicroEdge(myclass;
theEdge : Edge from TopoDS;
theContext : Context from BOPInt)
theContext : Context from IntTools)
returns Boolean from Standard;
---Purpose:
--- Checks if it is possible to compute shrunk range for the edge <aE>.

View File

@ -64,7 +64,7 @@
#include <BOPCol_IndexedMapOfShape.hxx>
#include <BOPCol_MapOfShape.hxx>
//
#include <BOPInt_ShrunkRange.hxx>
#include <IntTools_ShrunkRange.hxx>
//
static
@ -76,7 +76,7 @@ static
Standard_Boolean FindFacePairs (const TopoDS_Edge& theE,
const BOPCol_ListOfShape& thLF,
BOPTools_ListOfCoupleOfShape& theLCFF,
Handle(BOPInt_Context)& theContext);
Handle(IntTools_Context)& theContext);
static
TopAbs_Orientation Orientation(const TopoDS_Edge& anE,
const TopoDS_Face& aF);
@ -89,7 +89,7 @@ static
const gp_Dir& aDTgt,
gp_Dir& aDN,
gp_Dir& aDB,
Handle(BOPInt_Context)& theContext,
Handle(IntTools_Context)& theContext,
GeomAPI_ProjectPointOnSurf& aProjPL,
const Standard_Real aDt);
static
@ -97,7 +97,7 @@ static
const gp_Pnt& aP,
gp_Dir& aDB,
gp_Pnt& aPOut,
Handle(BOPInt_Context)& theContext,
Handle(IntTools_Context)& theContext,
GeomAPI_ProjectPointOnSurf& aProjPL,
const Standard_Real aDt);
static
@ -432,7 +432,7 @@ TopAbs_State BOPTools_AlgoTools::ComputeStateByOnePoint
(const TopoDS_Shape& theS,
const TopoDS_Solid& theRef,
const Standard_Real theTol,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
TopAbs_State aState;
TopAbs_ShapeEnum aType;
@ -459,7 +459,7 @@ TopAbs_State BOPTools_AlgoTools::ComputeState
const TopoDS_Solid& theRef,
const Standard_Real theTol,
BOPCol_IndexedMapOfShape& theBounds,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
TopAbs_State aState;
TopExp_Explorer aExp;
@ -504,7 +504,7 @@ TopAbs_State BOPTools_AlgoTools::ComputeState
(const TopoDS_Vertex& theV,
const TopoDS_Solid& theRef,
const Standard_Real theTol,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
TopAbs_State aState;
gp_Pnt aP3D;
@ -522,7 +522,7 @@ TopAbs_State BOPTools_AlgoTools::ComputeState
(const TopoDS_Edge& theE,
const TopoDS_Solid& theRef,
const Standard_Real theTol,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Real aT1, aT2, aT = 0.;
TopAbs_State aState;
@ -574,7 +574,7 @@ TopAbs_State BOPTools_AlgoTools::ComputeState
(const gp_Pnt& theP,
const TopoDS_Solid& theRef,
const Standard_Real theTol,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
TopAbs_State aState;
//
@ -594,7 +594,7 @@ Standard_Integer BOPTools_AlgoTools::IsInternalFace
const TopoDS_Solid& theSolid,
BOPCol_IndexedDataMapOfShapeListOfShape& theMEF,
const Standard_Real theTol,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bDegenerated;
Standard_Integer aNbF, iRet, iFound;
@ -709,7 +709,7 @@ Standard_Integer BOPTools_AlgoTools::IsInternalFace
(const TopoDS_Face& theFace,
const TopoDS_Edge& theEdge,
BOPCol_ListOfShape& theLF,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Integer aNbF, iRet;
//
@ -754,7 +754,7 @@ Standard_Integer BOPTools_AlgoTools::IsInternalFace
const TopoDS_Edge& theEdge,
const TopoDS_Face& theFace1,
const TopoDS_Face& theFace2,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bRet;
Standard_Integer iRet;
@ -808,7 +808,7 @@ Standard_Boolean BOPTools_AlgoTools::GetFaceOff
const TopoDS_Face& theF1,
BOPTools_ListOfCoupleOfShape& theLCSOff,
TopoDS_Face& theFOff,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bRet;
Standard_Real aT, aT1, aT2, aAngle, aTwoPI, aAngleMin, aDt3D;
@ -917,7 +917,7 @@ Standard_Boolean BOPTools_AlgoTools::GetEdgeOff(const TopoDS_Edge& theE1,
Standard_Boolean BOPTools_AlgoTools::AreFacesSameDomain
(const TopoDS_Face& theF1,
const TopoDS_Face& theF2,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bFlag;
Standard_Integer iErr;
@ -965,7 +965,7 @@ Standard_Boolean BOPTools_AlgoTools::AreFacesSameDomain
Standard_Boolean BOPTools_AlgoTools::CheckSameGeom
(const TopoDS_Face& theF1,
const TopoDS_Face& theF2,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bRet;
Standard_Real aTolF1, aTolF2, aTol;
@ -1041,7 +1041,7 @@ Standard_Integer BOPTools_AlgoTools::Sense (const TopoDS_Face& theF1,
Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
(const TopoDS_Shape& theSp,
const TopoDS_Shape& theSr,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bRet;
TopAbs_ShapeEnum aType;
@ -1076,7 +1076,7 @@ Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
(const TopoDS_Face& theFSp,
const TopoDS_Face& theFSr,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bRet, bFound, bInFace;
Standard_Real aT1, aT2, aT, aU, aV, aScPr;
@ -1169,7 +1169,7 @@ Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
(const TopoDS_Edge& aEF1,
const TopoDS_Edge& aEF2,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bRet, bIsDegenerated;
//
@ -1557,7 +1557,7 @@ Standard_Boolean BOPTools_AlgoTools::GetEdgeOnFace
Standard_Boolean FindFacePairs (const TopoDS_Edge& theE,
const BOPCol_ListOfShape& thLF,
BOPTools_ListOfCoupleOfShape& theLCFF,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bFound;
Standard_Integer i, aNbCEF;
@ -1683,7 +1683,7 @@ Standard_Boolean BOPTools_AlgoTools::IsBlockInOnFace
(const IntTools_Range& aShrR,
const TopoDS_Face& aF,
const TopoDS_Edge& aE1,
Handle(BOPInt_Context)& aContext)
Handle(IntTools_Context)& aContext)
{
Standard_Boolean bFlag;
Standard_Real f1, l1, ULD, VLD;
@ -1772,7 +1772,7 @@ Standard_Boolean BOPTools_AlgoTools::IsBlockInOnFace
//=======================================================================
Standard_Boolean BOPTools_AlgoTools::IsMicroEdge
(const TopoDS_Edge& aE,
const Handle(BOPInt_Context)& aCtx)
const Handle(IntTools_Context)& aCtx)
{
Standard_Boolean bRet;
Standard_Integer iErr;
@ -1796,7 +1796,7 @@ Standard_Boolean BOPTools_AlgoTools::IsMicroEdge
aT2=aTmp;
}
//
BOPInt_ShrunkRange aSR;
IntTools_ShrunkRange aSR;
aSR.SetContext(aCtx);
aSR.SetData(aE, aT1, aT2, aV1, aV2);
aSR.Perform();
@ -1817,7 +1817,7 @@ void GetFaceDir(const TopoDS_Edge& aE,
const gp_Dir& aDTgt,
gp_Dir& aDN,
gp_Dir& aDB,
Handle(BOPInt_Context)& theContext,
Handle(IntTools_Context)& theContext,
GeomAPI_ProjectPointOnSurf& aProjPL,
const Standard_Real aDt)
{
@ -1846,7 +1846,7 @@ Standard_Boolean FindPointInFace(const TopoDS_Face& aF,
const gp_Pnt& aP,
gp_Dir& aDB,
gp_Pnt& aPOut,
Handle(BOPInt_Context)& theContext,
Handle(IntTools_Context)& theContext,
GeomAPI_ProjectPointOnSurf& aProjPL,
const Standard_Real aDt)
{

View File

@ -38,7 +38,7 @@ uses
ListOfShape from BOPCol,
Context from BOPInt,
Context from IntTools,
IndexedDataMapOfShapeListOfShape from BOPCol
@ -95,7 +95,7 @@ is
aT: Real from Standard;
aPx:out Pnt from gp;
aD:out Dir from gp;
theContext:out Context from BOPInt);
theContext:out Context from IntTools);
---Purpose:
--- Computes normal to the face <aF> for the 3D-point that
--- belonds to the edge <aE> at parameter <aT>.
@ -136,7 +136,7 @@ is
aT: Real from Standard;
aP2D:out Pnt2d from gp;
aPx:out Pnt from gp;
theContext:out Context from BOPInt);
theContext:out Context from IntTools);
---Purpose:
--- Computes the point <aPx>, (<aP2D>) that is near to
--- the edge <aE> at parameter <aT> towards to the
@ -148,7 +148,7 @@ is
aF: Face from TopoDS;
aP2D:out Pnt2d from gp;
aPx:out Pnt from gp;
theContext:out Context from BOPInt);
theContext:out Context from IntTools);
---Purpose:
--- Compute the point <aPx>, (<aP2D>) that is near to
--- the edge <aE> at arbitrary parameter towards to the
@ -183,7 +183,7 @@ is
theF:Face from TopoDS;
theP:out Pnt from gp;
theP2D:out Pnt2d from gp;
theContext:out Context from BOPInt)
theContext:out Context from IntTools)
returns Integer from Standard;
---Purpose: Computes a point <theP> inside the face <theF>. <br>
-- <theP2D> - 2D representation of <theP> <br>

View File

@ -68,7 +68,7 @@
#include <BRep_TFace.hxx>
#include <Poly_Triangulation.hxx>
#include <BRep_Builder.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <Geom2dAdaptor_Curve.hxx>
#include <Geom2dHatch_Hatcher.hxx>
#include <HatchGen_Domain.hxx>
@ -355,7 +355,7 @@ void BOPTools_AlgoTools3D::GetApproxNormalToFaceOnEdge
const Standard_Real aT,
gp_Pnt& aPNear,
gp_Dir& aDNF,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Real aFirst, aLast;
Handle(Geom2d_Curve) aC2D=
@ -471,7 +471,7 @@ void BOPTools_AlgoTools3D::PointNearEdge
const Standard_Real aT,
gp_Pnt2d& aPx2DNear,
gp_Pnt& aPxNear,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Real aTolE, aTolF, dTx, dT2D;
Handle(Geom_Surface) aS;
@ -530,7 +530,7 @@ void BOPTools_AlgoTools3D::PointNearEdge
const TopoDS_Face& aF,
gp_Pnt2d& aPInFace2D,
gp_Pnt& aPInFace,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Real aT, aT1, aT2;
//
@ -718,7 +718,7 @@ Standard_Integer BOPTools_AlgoTools3D::PointInFace
(const TopoDS_Face& aF,
gp_Pnt& theP,
gp_Pnt2d& theP2D,
Handle(BOPInt_Context)& theContext)
Handle(IntTools_Context)& theContext)
{
Standard_Boolean bIsDone, bHasFirstPoint, bHasSecondPoint;
Standard_Integer iErr, aIx, aNbDomains;

View File

@ -25,7 +25,7 @@
#include <TopoDS_Compound.hxx>
#include <IntTools_BeanFaceIntersector.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <IntTools_Range.hxx>
#include <Geom_Curve.hxx>
@ -58,7 +58,7 @@
#include <TColgp_SequenceOfPnt.hxx>
#include <gce_MakeLin.hxx>
#include <BOPInt_Tools.hxx>
#include <IntTools_Tools.hxx>
#include <BOPAlgo_PaveFiller.hxx>
#include <BOPDS_DS.hxx>
#include <BOPAlgo_BOP.hxx>
@ -971,9 +971,9 @@ Standard_Boolean FindCommonVertex(const BOPDS_PDS& theDS,
if(aCP.Type() == TopAbs_VERTEX) {
theCommonVertex = *(TopoDS_Vertex*)&theDS->Shape(aEE.IndexNew());
if (theEIndex1 == aEE.Index1()) {
BOPInt_Tools::VertexParameters(aCP, theParamOnE1, theParamOnE2);
IntTools_Tools::VertexParameters(aCP, theParamOnE1, theParamOnE2);
} else {
BOPInt_Tools::VertexParameters(aCP, theParamOnE2, theParamOnE1);
IntTools_Tools::VertexParameters(aCP, theParamOnE2, theParamOnE1);
}
//
bvertexfound = Standard_True;
@ -1931,7 +1931,7 @@ Standard_Boolean FilterSectionEdges(const BOPDS_VectorOfCurve& theBCurves,
BRep_Tool::Range(anEdge, f, l);
anIntersector.SetBeanParameters(f, l);
//
Handle(BOPInt_Context) aContext = new BOPInt_Context;
Handle(IntTools_Context) aContext = new IntTools_Context;
anIntersector.SetContext(aContext);
//
anIntersector.Perform();

View File

@ -43,10 +43,14 @@ uses
BRepClass3d,
TColgp,
MMgt,
BOPInt
Geom2dHatch,
BOPCol
is
class Context;
class ShrunkRange;
--
class Range;
class CommonPrt;
class Root;
@ -154,7 +158,7 @@ is
Address from Standard,
MapTransientHasher from TColStd);
--modified by NIZHNY-MKK Wed Oct 5 18:06:39 2005
class ListOfCurveRangeSample instantiates
List from TCollection(CurveRangeSample from IntTools);
@ -202,6 +206,7 @@ is
anEpsT: Real from Standard);
---Purpose: Sort the sequence aSeq of the Roots to arrange the
-- Roons in increasing order
FindRootStates (aSeq :out SequenceOfRoots from IntTools;
anEpsNull: Real from Standard);
---Purpose: Find the states (before and after) for each Root

View File

@ -28,7 +28,7 @@ uses
SequenceOfRoots from IntTools,
MarkedRangeSet from IntTools,
SequenceOfRanges from IntTools,
Context from BOPInt,
Context from IntTools,
ExtCS from Extrema,
ProjectPointOnSurf from GeomAPI,
Edge from TopoDS,
@ -123,12 +123,12 @@ is
---
SetContext(me: in out;
theContext: Context from BOPInt);
theContext: Context from IntTools);
---Purpose:
--- Sets the intersecton context
---
Context(me)
returns Context from BOPInt;
returns Context from IntTools;
---C++: return const &
---Purpose:
--- Gets the intersecton context
@ -242,7 +242,7 @@ fields
myProjector : ProjectPointOnSurf from GeomAPI;
myRangeManager : MarkedRangeSet from IntTools;
myDeflection : Real from Standard;
myContext : Context from BOPInt;
myContext : Context from IntTools;
-- results
myResults : SequenceOfRanges from IntTools;

View File

@ -41,7 +41,7 @@
#include <Extrema_ExtCS.hxx>
#include <Extrema_ExtPS.hxx>
#include <IntTools.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <IntTools_Tools.hxx>
#include <GeomAPI_ProjectPointOnCurve.hxx>
#include <IntCurveSurface_HInter.hxx>
@ -67,10 +67,8 @@ static Standard_Boolean AdjustPeriodic(const Standard_Real U,
static Standard_Boolean SetEmptyResultRange(const Standard_Real theParameter,
IntTools_MarkedRangeSet& theMarkedRange);
// static Standard_Boolean TestCoinside(const BRepAdaptor_Curve& theCurve,
// const BRepAdaptor_Surface& theSurface);
// Modified by skv - Wed Nov 2 15:21:11 2005 Optimization Begin
static Bnd_Box GetSurfaceBox
(const Handle(Geom_BSplineSurface) &theSurf,
const Standard_Real theFirstU,
@ -96,7 +94,6 @@ static void BuildBox(const Handle(Geom_BSplineSurface) &theSurf,
const Standard_Real theLastV,
IntTools_SurfaceRangeLocalizeData &theSurfaceData,
Bnd_Box &theBox);
// Modified by skv - Wed Nov 2 15:21:11 2005 Optimization End
static void MergeSolutions(const IntTools_ListOfCurveRangeSample& theListCurveRange,
const IntTools_ListOfSurfaceRangeSample& theListSurfaceRange,
@ -113,6 +110,7 @@ static void CheckSampling(const IntTools_CurveRangeSample& theCurveRange,
Standard_Boolean& bAllowSamplingC,
Standard_Boolean& bAllowSamplingU,
Standard_Boolean& bAllowSamplingV);
// ==================================================================================
// function: IntTools_BeanFaceIntersector
// purpose:
@ -140,16 +138,16 @@ myIsDone(Standard_False)
// ==================================================================================
IntTools_BeanFaceIntersector::IntTools_BeanFaceIntersector(const TopoDS_Edge& theEdge,
const TopoDS_Face& theFace) :
myFirstParameter(0.),
myLastParameter(0.),
myUMinParameter(0.),
myUMaxParameter(0.),
myVMinParameter(0.),
myVMaxParameter(0.),
myBeanTolerance(0.),
myFaceTolerance(0.),
myDeflection(0.01),
myIsDone(Standard_False)
myFirstParameter(0.),
myLastParameter(0.),
myUMinParameter(0.),
myUMaxParameter(0.),
myVMinParameter(0.),
myVMaxParameter(0.),
myBeanTolerance(0.),
myFaceTolerance(0.),
myDeflection(0.01),
myIsDone(Standard_False)
{
Init(theEdge, theFace);
}
@ -162,14 +160,14 @@ IntTools_BeanFaceIntersector::IntTools_BeanFaceIntersector(const BRepAdaptor_Cur
const BRepAdaptor_Surface& theSurface,
const Standard_Real theBeanTolerance,
const Standard_Real theFaceTolerance) :
myFirstParameter(0.),
myLastParameter(0.),
myUMinParameter(0.),
myUMaxParameter(0.),
myVMinParameter(0.),
myVMaxParameter(0.),
myDeflection(0.01),
myIsDone(Standard_False)
myFirstParameter(0.),
myLastParameter(0.),
myUMinParameter(0.),
myUMaxParameter(0.),
myVMinParameter(0.),
myVMaxParameter(0.),
myDeflection(0.01),
myIsDone(Standard_False)
{
Init(theCurve, theSurface, theBeanTolerance, theFaceTolerance);
}
@ -188,16 +186,16 @@ IntTools_BeanFaceIntersector::IntTools_BeanFaceIntersector(const BRepAdaptor_Cur
const Standard_Real theVMaxParameter,
const Standard_Real theBeanTolerance,
const Standard_Real theFaceTolerance) :
myFirstParameter(theFirstParOnCurve),
myLastParameter(theLastParOnCurve),
myUMinParameter(theUMinParameter),
myUMaxParameter(theUMaxParameter),
myVMinParameter(theVMinParameter),
myVMaxParameter(theVMaxParameter),
myBeanTolerance(theBeanTolerance),
myFaceTolerance(theFaceTolerance),
myDeflection(0.01),
myIsDone(Standard_False)
myFirstParameter(theFirstParOnCurve),
myLastParameter(theLastParOnCurve),
myUMinParameter(theUMinParameter),
myUMaxParameter(theUMaxParameter),
myVMinParameter(theVMinParameter),
myVMaxParameter(theVMaxParameter),
myBeanTolerance(theBeanTolerance),
myFaceTolerance(theFaceTolerance),
myDeflection(0.01),
myIsDone(Standard_False)
{
myCurve = theCurve;
@ -276,7 +274,7 @@ void IntTools_BeanFaceIntersector::Init(const BRepAdaptor_Curve& theCurve,
// function: SetContext
// purpose:
// ==================================================================================
void IntTools_BeanFaceIntersector::SetContext(const Handle(BOPInt_Context)& theContext)
void IntTools_BeanFaceIntersector::SetContext(const Handle(IntTools_Context)& theContext)
{
myContext = theContext;
}
@ -284,7 +282,7 @@ void IntTools_BeanFaceIntersector::SetContext(const Handle(BOPInt_Context)& theC
// function: Context
// purpose:
// ==================================================================================
const Handle(BOPInt_Context)& IntTools_BeanFaceIntersector::Context()const
const Handle(IntTools_Context)& IntTools_BeanFaceIntersector::Context()const
{
return myContext;
}
@ -329,7 +327,7 @@ void IntTools_BeanFaceIntersector::Perform()
myDeflection = aRelativeDeflection;
//
if (myContext.IsNull()) {
myContext=new BOPInt_Context;
myContext=new IntTools_Context;
}
//
if(myCurve.GetType()==GeomAbs_Line && mySurface.GetType()==GeomAbs_Plane) {
@ -647,11 +645,11 @@ void IntTools_BeanFaceIntersector::ComputeAroundExactIntersection()
Standard_Real V = aPoint.V();
if(UIsNotValid || VIsNotValid) {
// modified by NIZHNY-MKK Thu Jun 17 12:50:39 2004
// modified by NIZHNY-MKK Thu Jun 17 12:50:39 2004
Standard_Boolean bUCorrected = Standard_True;
if(UIsNotValid) {
// modified by NIZHNY-MKK Thu Jun 17 12:50:37 2004
// modified by NIZHNY-MKK Thu Jun 17 12:50:37 2004
bUCorrected = Standard_False;
solutionIsValid = Standard_False;
@ -660,14 +658,14 @@ void IntTools_BeanFaceIntersector::ComputeAroundExactIntersection()
if(AdjustPeriodic(U, myUMinParameter, myUMaxParameter, mySurface.UPeriod(), aNewU)) {
solutionIsValid = Standard_True;
// modified by NIZHNY-MKK Thu Jun 17 12:51:01 2004
// modified by NIZHNY-MKK Thu Jun 17 12:51:01 2004
bUCorrected = Standard_True;
U = aNewU;
}
}
}
// modified by NIZHNY-MKK Thu Jun 17 12:51:03 2004
// if(solutionIsValid && VIsNotValid) {
// if(solutionIsValid && VIsNotValid) {
if(bUCorrected && VIsNotValid) {
solutionIsValid = Standard_False;
@ -1647,14 +1645,14 @@ Standard_Boolean IntTools_BeanFaceIntersector::LocalizeSolutions(const IntTools_
if(!theSurfaceData.FindBox(aNewRangeS, aBoxS)) {
if(mySurface.GetType() == GeomAbs_BSplineSurface) {
// if(Standard_False ) {
// if(Standard_False ) {
Handle(Geom_BSplineSurface) aSurfBspl = Handle(Geom_BSplineSurface)::DownCast(myTrsfSurface);
aBoxS = GetSurfaceBox(aSurfBspl, aPrevParU, aCurParU, aPrevParV, aCurParV, myCriteria, theSurfaceData);
}
else {
BndLib_AddSurface::Add(mySurface, aPrevParU, aCurParU, aPrevParV, aCurParV, myCriteria, aBoxS);
}
// Bnd_Box aMainBoxC;
// Bnd_Box aMainBoxC;
if(!bMainBoxFoundC && theCurveData.FindBox(aRootRangeC, aMainBoxC)) {
bMainBoxFoundC = Standard_True;
@ -1665,7 +1663,7 @@ Standard_Boolean IntTools_BeanFaceIntersector::LocalizeSolutions(const IntTools_
bHasOutV = Standard_True;
continue;
}
// }
// }
theSurfaceData.AddBox(aNewRangeS, aBoxS);
}
@ -1719,7 +1717,7 @@ Standard_Boolean IntTools_BeanFaceIntersector::LocalizeSolutions(const IntTools_
if(!theCurveData.FindBox(aCurRangeC, aBoxC)) {
BndLib_Add3dCurve::Add(myCurve, aPrevPar, aCurPar, myCriteria, aBoxC);
// Bnd_Box aMainBoxS;
// Bnd_Box aMainBoxS;
if(!bMainBoxFoundS && theSurfaceData.FindBox(aRootRangeS, aMainBoxS)) {
bMainBoxFoundS = Standard_True;
@ -1729,7 +1727,7 @@ Standard_Boolean IntTools_BeanFaceIntersector::LocalizeSolutions(const IntTools_
bHasOutC = Standard_True;
continue;
}
// }
// }
theCurveData.AddBox(aCurRangeC, aBoxC);
}
@ -1821,9 +1819,9 @@ Standard_Boolean IntTools_BeanFaceIntersector::LocalizeSolutions(const IntTools_
}
else {
// if(bUseOldS || bAllowSamplingU || bAllowSamplingV) {
// theSurfaceData.AddBox(aNewRangeS, aBoxS);
// }
// if(bUseOldS || bAllowSamplingU || bAllowSamplingV) {
// theSurfaceData.AddBox(aNewRangeS, aBoxS);
// }
if(bUseOldS && aNewRangeC.IsEqual(theCurveRange)) {
return Standard_False;
@ -1842,7 +1840,7 @@ Standard_Boolean IntTools_BeanFaceIntersector::LocalizeSolutions(const IntTools_
aListOfBox.Clear();
if(bHasOutV) {
// theSurfaceData.AddBox(aNewRangeS, aBoxS);
// theSurfaceData.AddBox(aNewRangeS, aBoxS);
if(bUseOldC && bAllowSamplingC && (bAllowSamplingU || bAllowSamplingV)) {
if(!LocalizeSolutions(theCurveRange, theBoxCurve,

View File

@ -12,7 +12,8 @@
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class Context from BOPInt
class Context from IntTools
inherits TShared from MMgt
@ -48,11 +49,12 @@ uses
is
Create
returns Context from BOPInt;
---C++: alias "Standard_EXPORT virtual ~BOPInt_Context();"
returns Context from IntTools;
---C++: alias "Standard_EXPORT virtual ~IntTools_Context();"
Create (theAllocator: BaseAllocator from BOPCol)
returns Context from BOPInt;
returns Context from IntTools;
FClass2d(me:mutable;
aF: Face from TopoDS)
@ -151,32 +153,6 @@ is
--- 3. projection algorithm failed (-3)
---
--ComputeVE (me:mutable;
--aV : Vertex from TopoDS;
--aE : Edge from TopoDS;
--aT :out Real from Standard;
--bToUpdateVertex:out Boolean from Standard;
--aDist :out Real from Standard)
--returns Integer from Standard;
---Purpose:
--- Computes parameter aT of the vertex aV on
--- the edge aE.
--- Returns zero if the distance between vertex
--- and edge is less than sum of tolerances,
--- otherwise and for following conditions returns
--- negative value
--- 1. the edge is degenerated (-1)
--- 2. the edge does not contain 3d curve and pcurves (-2)
--- 3. projection algorithm failed (-3)
---
--- Output parameters
--- bToUpdateVertex - the flag that indicates whether the
--- vertex tolerance should be modified or not
--- aDist - the value of the distance between the vertex
--- and the edge
ComputeVF (me:mutable;
aV : Vertex from TopoDS;
aF : Face from TopoDS;

View File

@ -12,7 +12,7 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <BOPInt_Context.ixx>
#include <IntTools_Context.ixx>
#include <Precision.hxx>
@ -46,7 +46,7 @@
//function :
//purpose :
//=======================================================================
BOPInt_Context::BOPInt_Context()
IntTools_Context::IntTools_Context()
:
myAllocator(new NCollection_IncAllocator()),
myFClass2dMap(100, myAllocator),
@ -63,7 +63,8 @@
//function :
//purpose :
//=======================================================================
BOPInt_Context::BOPInt_Context(const Handle(NCollection_BaseAllocator)& theAllocator)
IntTools_Context::IntTools_Context
(const Handle(NCollection_BaseAllocator)& theAllocator)
:
myAllocator(theAllocator),
myFClass2dMap(100, myAllocator),
@ -80,7 +81,7 @@
//function : ~
//purpose :
//=======================================================================
BOPInt_Context::~BOPInt_Context()
IntTools_Context::~IntTools_Context()
{
Standard_Address anAdr;
BOPCol_DataMapIteratorOfDataMapOfShapeAddress aIt;
@ -162,7 +163,7 @@
//function : FClass2d
//purpose :
//=======================================================================
IntTools_FClass2d& BOPInt_Context::FClass2d(const TopoDS_Face& aF)
IntTools_FClass2d& IntTools_Context::FClass2d(const TopoDS_Face& aF)
{
Standard_Address anAdr;
IntTools_FClass2d* pFClass2d;
@ -191,7 +192,7 @@
//function : ProjPS
//purpose :
//=======================================================================
GeomAPI_ProjectPointOnSurf& BOPInt_Context::ProjPS(const TopoDS_Face& aF)
GeomAPI_ProjectPointOnSurf& IntTools_Context::ProjPS(const TopoDS_Face& aF)
{
Standard_Address anAdr;
GeomAPI_ProjectPointOnSurf* pProjPS;
@ -228,7 +229,7 @@
//function : ProjPC
//purpose :
//=======================================================================
GeomAPI_ProjectPointOnCurve& BOPInt_Context::ProjPC(const TopoDS_Edge& aE)
GeomAPI_ProjectPointOnCurve& IntTools_Context::ProjPC(const TopoDS_Edge& aE)
{
Standard_Address anAdr;
GeomAPI_ProjectPointOnCurve* pProjPC;
@ -257,7 +258,8 @@
//function : ProjPT
//purpose :
//=======================================================================
GeomAPI_ProjectPointOnCurve& BOPInt_Context::ProjPT(const Handle(Geom_Curve)& aC3D)
GeomAPI_ProjectPointOnCurve& IntTools_Context::ProjPT
(const Handle(Geom_Curve)& aC3D)
{
Standard_Address anAdr;
@ -286,7 +288,8 @@
//function : SolidClassifier
//purpose :
//=======================================================================
BRepClass3d_SolidClassifier& BOPInt_Context::SolidClassifier(const TopoDS_Solid& aSolid)
BRepClass3d_SolidClassifier& IntTools_Context::SolidClassifier
(const TopoDS_Solid& aSolid)
{
Standard_Address anAdr;
BRepClass3d_SolidClassifier* pSC;
@ -311,7 +314,7 @@
//function : Hatcher
//purpose :
//=======================================================================
Geom2dHatch_Hatcher& BOPInt_Context::Hatcher(const TopoDS_Face& aF)
Geom2dHatch_Hatcher& IntTools_Context::Hatcher(const TopoDS_Face& aF)
{
Standard_Address anAdr;
Geom2dHatch_Hatcher* pHatcher;
@ -375,13 +378,15 @@
//function : SurfaceData
//purpose :
//=======================================================================
IntTools_SurfaceRangeLocalizeData& BOPInt_Context::SurfaceData(const TopoDS_Face& aF)
IntTools_SurfaceRangeLocalizeData& IntTools_Context::SurfaceData
(const TopoDS_Face& aF)
{
Standard_Address anAdr;
IntTools_SurfaceRangeLocalizeData* pSData;
//
if (!myProjSDataMap.IsBound(aF)) {
pSData=new IntTools_SurfaceRangeLocalizeData(3,
pSData=new IntTools_SurfaceRangeLocalizeData
(3,
3,
10. * Precision::PConfusion(),
10. * Precision::PConfusion());
@ -402,7 +407,8 @@
//function : ComputePE
//purpose :
//=======================================================================
Standard_Integer BOPInt_Context::ComputePE(const gp_Pnt& aP1,
Standard_Integer IntTools_Context::ComputePE
(const gp_Pnt& aP1,
const Standard_Real aTolP1,
const TopoDS_Edge& aE2,
Standard_Real& aT)
@ -436,7 +442,8 @@
//function : ComputeVE
//purpose :
//=======================================================================
Standard_Integer BOPInt_Context::ComputeVE(const TopoDS_Vertex& aV1,
Standard_Integer IntTools_Context::ComputeVE
(const TopoDS_Vertex& aV1,
const TopoDS_Edge& aE2,
Standard_Real& aT)
{
@ -479,7 +486,8 @@
//function : ComputeVS
//purpose :
//=======================================================================
Standard_Integer BOPInt_Context::ComputeVF(const TopoDS_Vertex& aV1,
Standard_Integer IntTools_Context::ComputeVF
(const TopoDS_Vertex& aV1,
const TopoDS_Face& aF2,
Standard_Real& U,
Standard_Real& V)
@ -521,7 +529,8 @@
//function : StatePointFace
//purpose :
//=======================================================================
TopAbs_State BOPInt_Context::StatePointFace(const TopoDS_Face& aF,
TopAbs_State IntTools_Context::StatePointFace
(const TopoDS_Face& aF,
const gp_Pnt2d& aP2d)
{
TopAbs_State aState;
@ -533,7 +542,8 @@
//function : IsPointInFace
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Context::IsPointInFace(const TopoDS_Face& aF,
Standard_Boolean IntTools_Context::IsPointInFace
(const TopoDS_Face& aF,
const gp_Pnt2d& aP2d)
{
TopAbs_State aState=StatePointFace(aF, aP2d);
@ -546,7 +556,7 @@
//function : IsPointInOnFace
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Context::IsPointInOnFace(const TopoDS_Face& aF,
Standard_Boolean IntTools_Context::IsPointInOnFace(const TopoDS_Face& aF,
const gp_Pnt2d& aP2d)
{
TopAbs_State aState=StatePointFace(aF, aP2d);
@ -559,7 +569,8 @@
//function : IsValidPointForFace
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Context::IsValidPointForFace(const gp_Pnt& aP,
Standard_Boolean IntTools_Context::IsValidPointForFace
(const gp_Pnt& aP,
const TopoDS_Face& aF,
const Standard_Real aTol)
{
@ -588,7 +599,8 @@
//function : IsValidPointForFaces
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Context::IsValidPointForFaces (const gp_Pnt& aP,
Standard_Boolean IntTools_Context::IsValidPointForFaces
(const gp_Pnt& aP,
const TopoDS_Face& aF1,
const TopoDS_Face& aF2,
const Standard_Real aTol)
@ -606,7 +618,8 @@
//function : IsValidBlockForFace
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Context::IsValidBlockForFace (const Standard_Real aT1,
Standard_Boolean IntTools_Context::IsValidBlockForFace
(const Standard_Real aT1,
const Standard_Real aT2,
const IntTools_Curve& aC,
const TopoDS_Face& aF,
@ -629,7 +642,8 @@
//function : IsValidBlockForFaces
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Context::IsValidBlockForFaces (const Standard_Real aT1,
Standard_Boolean IntTools_Context::IsValidBlockForFaces
(const Standard_Real aT1,
const Standard_Real aT2,
const IntTools_Curve& aC,
const TopoDS_Face& aF1,
@ -668,7 +682,8 @@
//function : IsVertexOnLine
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Context::IsVertexOnLine (const TopoDS_Vertex& aV,
Standard_Boolean IntTools_Context::IsVertexOnLine
(const TopoDS_Vertex& aV,
const IntTools_Curve& aC,
const Standard_Real aTolC,
Standard_Real& aT)
@ -677,7 +692,7 @@
Standard_Real aTolV;
//
aTolV=BRep_Tool::Tolerance(aV);
bRet=BOPInt_Context::IsVertexOnLine(aV, aTolV, aC, aTolC , aT);
bRet=IntTools_Context::IsVertexOnLine(aV, aTolV, aC, aTolC , aT);
//
return bRet;
}
@ -685,7 +700,8 @@
//function : IsVertexOnLine
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Context::IsVertexOnLine (const TopoDS_Vertex& aV,
Standard_Boolean IntTools_Context::IsVertexOnLine
(const TopoDS_Vertex& aV,
const Standard_Real aTolV,
const IntTools_Curve& aC,
const Standard_Real aTolC,
@ -811,7 +827,8 @@
//function : ProjectPointOnEdge
//purpose :
//=======================================================================
Standard_Boolean BOPInt_Context::ProjectPointOnEdge(const gp_Pnt& aP,
Standard_Boolean IntTools_Context::ProjectPointOnEdge
(const gp_Pnt& aP,
const TopoDS_Edge& anEdge,
Standard_Real& aT)
{

View File

@ -31,7 +31,7 @@ uses
FClass2d from IntTools,
SequenceOfRoots from IntTools,
SequenceOfCommonPrts from IntTools,
Context from BOPInt,
Context from IntTools,
Range from IntTools
--raises
@ -118,12 +118,12 @@ is
--- The algorithm processes edge inside these boundaries.
SetContext (me: in out;
theContext: Context from BOPInt);
theContext: Context from IntTools);
---Purpose:
--- Sets the intersecton context
Context (me)
returns Context from BOPInt;
returns Context from IntTools;
---C++:return const &
---Purpose:
--- Gets the intersecton context
@ -276,7 +276,7 @@ fields
myErrorStatus : Integer from Standard;
--- internal members
myContext : Context from BOPInt;
myContext : Context from IntTools;
myProjectableRanges: SequenceOfRanges from IntTools;
myFClass2d : FClass2d from IntTools;
myFuncArray : CArray1OfReal from IntTools;

View File

@ -28,7 +28,7 @@
#include <IntTools_CommonPrt.hxx>
#include <IntTools_Root.hxx>
#include <IntTools_BeanFaceIntersector.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <BRep_Tool.hxx>
@ -100,7 +100,7 @@ static
//function : SetContext
//purpose :
//=======================================================================
void IntTools_EdgeFace::SetContext(const Handle(BOPInt_Context)& theContext)
void IntTools_EdgeFace::SetContext(const Handle(IntTools_Context)& theContext)
{
myContext = theContext;
}
@ -109,7 +109,7 @@ void IntTools_EdgeFace::SetContext(const Handle(BOPInt_Context)& theContext)
//function : Context
//purpose :
//=======================================================================
const Handle(BOPInt_Context)& IntTools_EdgeFace::Context()const
const Handle(IntTools_Context)& IntTools_EdgeFace::Context()const
{
return myContext;
}
@ -1221,7 +1221,7 @@ void IntTools_EdgeFace::Perform()
}
//
if (myContext.IsNull()) {
myContext=new BOPInt_Context;
myContext=new IntTools_Context;
}
//
myIsDone = Standard_False;

View File

@ -28,7 +28,7 @@ uses
SequenceOfCurves from IntTools,
LineConstructor from IntTools,
SequenceOfPntOn2Faces from IntTools,
Context from BOPInt
Context from IntTools
@ -39,7 +39,6 @@ is
returns FaceFace from IntTools;
---Purpose:
--- Empty constructor.
---
SetParameters(me: in out;
@ -58,7 +57,6 @@ is
--- Intersects underliing surfaces of F1 and F2
--- Use sum of tolerance of F1 and F2 as intersection
--- criteria
---
IsDone(me)
returns Boolean from Standard;
@ -85,7 +83,6 @@ is
---Purpose:
--- Returns tolerance reached during approximation.
--- If approximation was not done, returns zero.
---
TolReached2d(me)
returns Real from Standard;
@ -137,16 +134,16 @@ is
is protected;
SetContext(me:out;
aContext : Context from BOPInt);
aContext : Context from IntTools);
---Purpose:
--- Sets the intersecton context
Context(me)
returns Context from BOPInt;
returns Context from IntTools;
---C++: return const &
---Purpose:
--- Gets the intersecton context
---
fields
myIsDone : Boolean from Standard;
@ -173,7 +170,7 @@ fields
myListOfPnts : ListOfPntOn2S from IntSurf;
myContext : Context from BOPInt;
myContext : Context from IntTools;
end FaceFace from IntTools;

View File

@ -111,7 +111,7 @@
#include <IntTools_TopolTool.hxx>
#include <IntTools_PntOnFace.hxx>
#include <IntTools_PntOn2Faces.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <IntSurf_ListIteratorOfListOfPntOn2S.hxx>
static
@ -186,7 +186,7 @@ static
const Standard_Boolean theAvoidLConstructor,
IntPatch_SequenceOfLine& theNewLines,
Standard_Real& theReachedTol3d,
const Handle(BOPInt_Context)& );
const Handle(IntTools_Context)& );
static
Standard_Boolean ParameterOutOfBoundary(const Standard_Real theParameter,
@ -196,7 +196,7 @@ static
const Standard_Real theOtherParameter,
const Standard_Boolean bIncreasePar,
Standard_Real& theNewParameter,
const Handle(BOPInt_Context)& );
const Handle(IntTools_Context)& );
static
Standard_Boolean IsCurveValid(Handle(Geom2d_Curve)& thePCurve);
@ -225,7 +225,7 @@ static
Handle(TColgp_HArray1OfPnt2d)& theResultOnS1,
Handle(TColgp_HArray1OfPnt2d)& theResultOnS2,
Handle(TColStd_HArray1OfReal)& theResultRadius,
const Handle(BOPInt_Context)& );
const Handle(IntTools_Context)& );
static
Standard_Boolean FindPoint(const gp_Pnt2d& theFirstPoint,
@ -296,7 +296,7 @@ static
const Handle(GeomAdaptor_HSurface) myHS2,
const TopoDS_Face& aF1,
const TopoDS_Face& aF2,
const Handle(BOPInt_Context)& aCtx);
const Handle(IntTools_Context)& aCtx);
static
Standard_Boolean CheckPCurve(const Handle(Geom2d_Curve)& aPC,
@ -314,7 +314,7 @@ static
const Handle(GeomAdaptor_HSurface)& myHS2,
const TopoDS_Face& aF1,
const TopoDS_Face& aF2,
const Handle(BOPInt_Context)& aCtx);
const Handle(IntTools_Context)& aCtx);
//=======================================================================
//function :
@ -336,7 +336,7 @@ IntTools_FaceFace::IntTools_FaceFace()
//function : SetContext
//purpose :
//=======================================================================
void IntTools_FaceFace::SetContext(const Handle(BOPInt_Context)& aContext)
void IntTools_FaceFace::SetContext(const Handle(IntTools_Context)& aContext)
{
myContext=aContext;
}
@ -344,7 +344,7 @@ void IntTools_FaceFace::SetContext(const Handle(BOPInt_Context)& aContext)
//function : Context
//purpose :
//=======================================================================
const Handle(BOPInt_Context)& IntTools_FaceFace::Context()const
const Handle(IntTools_Context)& IntTools_FaceFace::Context()const
{
return myContext;
}
@ -522,7 +522,7 @@ static Standard_Boolean isTreatAnalityc(const TopoDS_Face& theF1,
Standard_Boolean RestrictLine = Standard_False, hasCone = Standard_False;
if (myContext.IsNull()) {
myContext=new BOPInt_Context;
myContext=new IntTools_Context;
}
mySeqOfCurve.Clear();
@ -3396,7 +3396,7 @@ Standard_Integer ComputeTangentZones( const Handle(GeomAdaptor_HSurface)& theSur
Handle(TColgp_HArray1OfPnt2d)& theResultOnS1,
Handle(TColgp_HArray1OfPnt2d)& theResultOnS2,
Handle(TColStd_HArray1OfReal)& theResultRadius,
const Handle(BOPInt_Context)& aContext)
const Handle(IntTools_Context)& aContext)
{
Standard_Integer aResult = 0;
if ( !CheckTangentZonesExist( theSurface1, theSurface2 ) )
@ -3608,7 +3608,7 @@ Standard_Boolean DecompositionOfWLine(const Handle(IntPatch_WLine)& theWLine,
const Standard_Boolean theAvoidLConstructor,
IntPatch_SequenceOfLine& theNewLines,
Standard_Real& theReachedTol3d,
const Handle(BOPInt_Context)& aContext)
const Handle(IntTools_Context)& aContext)
{
Standard_Boolean bRet, bAvoidLineConstructor;
@ -4333,7 +4333,7 @@ Standard_Boolean ParameterOutOfBoundary(const Standard_Real theParameter,
const Standard_Real theOtherParameter,
const Standard_Boolean bIncreasePar,
Standard_Real& theNewParameter,
const Handle(BOPInt_Context)& aContext)
const Handle(IntTools_Context)& aContext)
{
Standard_Boolean bIsComputed = Standard_False;
theNewParameter = theParameter;
@ -4965,7 +4965,7 @@ Standard_Real FindMaxSquareDistance (const Standard_Real aT1,
const Handle(GeomAdaptor_HSurface)& myHS2,
const TopoDS_Face& myFace1,
const TopoDS_Face& myFace2,
const Handle(BOPInt_Context)& myContext)
const Handle(IntTools_Context)& myContext)
{
Standard_Real aA, aB, aCf, aX1, aX2, aF1, aF2, aX, aF;
//
@ -5019,7 +5019,7 @@ Standard_Real MaxSquareDistance (const Standard_Real aT,
const Handle(GeomAdaptor_HSurface) myHS2,
const TopoDS_Face& aF1,
const TopoDS_Face& aF2,
const Handle(BOPInt_Context)& aCtx)
const Handle(IntTools_Context)& aCtx)
{
Standard_Boolean bIsDone;
Standard_Integer i;

View File

@ -12,7 +12,7 @@
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class ShrunkRange from BOPInt
class ShrunkRange from IntTools
---Purpose:
--- The class provides the computation of
@ -23,14 +23,14 @@ uses
Box from Bnd,
Edge from TopoDS,
Vertex from TopoDS,
Context from BOPInt
Context from IntTools
--raises
is
Create
returns ShrunkRange from BOPInt;
---C++: alias "Standard_EXPORT virtual ~BOPInt_ShrunkRange();"
returns ShrunkRange from IntTools;
---C++: alias "Standard_EXPORT virtual ~IntTools_ShrunkRange();"
SetData (me:out;
aE : Edge from TopoDS;
@ -40,10 +40,10 @@ is
aV2 : Vertex from TopoDS);
SetContext(me:out;
aCtx: Context from BOPInt);
aCtx: Context from IntTools);
Context(me)
returns Context from BOPInt;
returns Context from IntTools;
---C++: return const &
SetShrunkRange(me:out;
@ -89,7 +89,7 @@ fields
myTS1 : Real from Standard is protected;
myTS2 : Real from Standard is protected;
myBndBox : Box from Bnd is protected;
myCtx : Context from BOPInt is protected;
myCtx : Context from IntTools is protected;
myErrorStatus : Integer from Standard is protected;
end ShrunkRange;

View File

@ -12,7 +12,7 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <BOPInt_ShrunkRange.ixx>
#include <IntTools_ShrunkRange.ixx>
#include <Precision.hxx>
@ -25,7 +25,7 @@
#include <BRepBuilderAPI_MakeVertex.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <BndLib_Add3dCurve.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <gp_Lin.hxx>
#include <ElCLib.hxx>
@ -33,7 +33,7 @@
//function :
//purpose :
//=======================================================================
BOPInt_ShrunkRange::BOPInt_ShrunkRange ()
IntTools_ShrunkRange::IntTools_ShrunkRange ()
{
myT1=-99;
myT2=myT1;
@ -45,14 +45,14 @@
//function : ~
//purpose :
//=======================================================================
BOPInt_ShrunkRange::~BOPInt_ShrunkRange ()
IntTools_ShrunkRange::~IntTools_ShrunkRange ()
{
}
//=======================================================================
//function : SetData
//purpose :
//=======================================================================
void BOPInt_ShrunkRange::SetData(const TopoDS_Edge& aE,
void IntTools_ShrunkRange::SetData(const TopoDS_Edge& aE,
const Standard_Real aT1,
const Standard_Real aT2,
const TopoDS_Vertex& aV1,
@ -69,7 +69,7 @@ void BOPInt_ShrunkRange::SetData(const TopoDS_Edge& aE,
//function : SetContext
//purpose :
//=======================================================================
void BOPInt_ShrunkRange::SetContext(const Handle(BOPInt_Context)& aCtx)
void IntTools_ShrunkRange::SetContext(const Handle(IntTools_Context)& aCtx)
{
myCtx=aCtx;
}
@ -77,7 +77,7 @@ void BOPInt_ShrunkRange::SetContext(const Handle(BOPInt_Context)& aCtx)
//function : Context
//purpose :
//=======================================================================
const Handle(BOPInt_Context)& BOPInt_ShrunkRange::Context()const
const Handle(IntTools_Context)& IntTools_ShrunkRange::Context()const
{
return myCtx;
}
@ -85,7 +85,7 @@ const Handle(BOPInt_Context)& BOPInt_ShrunkRange::Context()const
//function : Edge
//purpose :
//=======================================================================
const TopoDS_Edge& BOPInt_ShrunkRange::Edge() const
const TopoDS_Edge& IntTools_ShrunkRange::Edge() const
{
return myEdge;
}
@ -93,7 +93,7 @@ const TopoDS_Edge& BOPInt_ShrunkRange::Edge() const
//function : ShrunkRange
//purpose :
//=======================================================================
void BOPInt_ShrunkRange::ShrunkRange(Standard_Real& aT1,
void IntTools_ShrunkRange::ShrunkRange(Standard_Real& aT1,
Standard_Real& aT2) const
{
aT1=myTS1;
@ -103,7 +103,7 @@ void BOPInt_ShrunkRange::ShrunkRange(Standard_Real& aT1,
//function : BndBox
//purpose :
//=======================================================================
const Bnd_Box& BOPInt_ShrunkRange::BndBox() const
const Bnd_Box& IntTools_ShrunkRange::BndBox() const
{
return myBndBox;
}
@ -111,7 +111,7 @@ const Bnd_Box& BOPInt_ShrunkRange::BndBox() const
//function : ErrorStatus
//purpose :
//=======================================================================
Standard_Integer BOPInt_ShrunkRange::ErrorStatus() const
Standard_Integer IntTools_ShrunkRange::ErrorStatus() const
{
return myErrorStatus;
}
@ -120,7 +120,7 @@ Standard_Integer BOPInt_ShrunkRange::ErrorStatus() const
//function : SetShrunkRange
//purpose :
//=======================================================================
void BOPInt_ShrunkRange::SetShrunkRange(const Standard_Real aT1,
void IntTools_ShrunkRange::SetShrunkRange(const Standard_Real aT1,
const Standard_Real aT2)
{
myTS1=aT1;
@ -134,7 +134,7 @@ void BOPInt_ShrunkRange::SetShrunkRange(const Standard_Real aT1,
//function : Perform
//purpose :
//=======================================================================
void BOPInt_ShrunkRange::Perform()
void IntTools_ShrunkRange::Perform()
{
Standard_Real aCF, aCL, aTolE, aTolV1;
Standard_Real aTolV2, t1, t11, t1C, t2, t12, t2C;

View File

@ -28,11 +28,15 @@ uses
Pnt2d from gp,
Pnt from gp,
Dir from gp,
Lin from gp,
Pln from gp,
CommonPrt from IntTools,
Curve from IntTools,
Range from IntTools,
SequenceOfCurves from IntTools,
Curve from Geom,
State from TopAbs
State from TopAbs,
Box from Bnd
is
ComputeVV (myclass;V1,V2:Vertex from TopoDS)
@ -183,5 +187,55 @@ is
--- if aC is trimmed curve and basis curve is parabola,
--- otherwise returns value of aTolBase
---
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CheckCurve(myclass;
theC:Curve from Geom;
theTol:Real from Standard;
theBox:out Box from Bnd)
returns Boolean from Standard;
IsOnPave(myclass;
theT:Real from Standard;
theRange:Range from IntTools;
theTol: Real from Standard)
returns Boolean from Standard;
VertexParameters(myclass;
theCP:CommonPrt from IntTools;
theT1:out Real from Standard;
theT2:out Real from Standard);
VertexParameter(myclass;
theCP:CommonPrt from IntTools;
theT:out Real from Standard);
IsOnPave1(myclass;
theT:Real from Standard;
theRange:Range from IntTools;
theTol: Real from Standard)
returns Boolean from Standard;
IsInRange(myclass;
theRRef : Range from IntTools;
theR : Range from IntTools;
theTol : Real from Standard)
returns Boolean from Standard;
---Purpose: Checks if the range <theR> interfere with the range <theRRef>
SegPln(myclass;
theLin : Lin from gp;
theTLin1 : Real from Standard;
theTLin2 : Real from Standard;
theTolLin: Real from Standard;
thePln : Pln from gp;
theTolPln: Real from Standard;
theP :out Pnt from gp;
theT :out Real from Standard;
theTolP :out Real from Standard;
theTmin :out Real from Standard;
theTmax :out Real from Standard)
returns Integer from Standard;
end Tools;

View File

@ -110,16 +110,11 @@ static
//
//modified by NIZNHY-PKV Mon Jul 04 11:58:23 2011f
aPC=Precision::Confusion();
aPC=aPC*aPC;
aDist=aP1.SquareDistance(aP2);
bRet=aDist<aPC;
return bRet;
//
//aDist=aP1.Distance(aP2);
//return (aDist < Precision::Confusion());
//modified by NIZNHY-PKV Mon Jul 04 11:59:50 2011t
}
//=======================================================================
@ -305,15 +300,10 @@ static
//
aPv=BRep_Tool::Pnt(aV);
//
//modified by NIZNHY-PKV Mon Jul 04 12:00:37 2011f
aD=aPv.SquareDistance(aP);
aTolV=aTolV*aTolV;
bRet=(aD<=aTolV);
return bRet;
//
//aD=aPv.Distance(aP);
//return (aD<=aTolV);
//modified by NIZNHY-PKV Mon Jul 04 12:00:40 2011t
}
@ -415,11 +405,8 @@ static
aP1=BRep_Tool::Pnt(aV1);
aP2=BRep_Tool::Pnt(aV2);
//modified by NIZNHY-PKV Mon Jul 04 11:55:52 2011f
aTolSum=aTolSum*aTolSum;
d=aP1.SquareDistance(aP2);
//d=aP1.Distance(aP2);
//modified by NIZNHY-PKV Mon Jul 04 11:55:53 2011t
if (d<aTolSum) {
return 0;
}
@ -482,17 +469,10 @@ static
C2->D0(m2, aP2);
aSumTol=aTol1+aTol2;
//modified by NIZNHY-PKV Mon Jul 04 12:02:20 2011f
aSumTol=aSumTol*aSumTol;
aD2=aP1.SquareDistance(aP2);
bRet=aD2<aSumTol;
return bRet;
//
//if (aP1.Distance(aP2) < aSumTol) {
// return Standard_True;
//}
//return Standard_False;
//modified by NIZNHY-PKV Mon Jul 04 12:02:24 2011t
}
//=======================================================================
@ -535,6 +515,7 @@ static
#include <Geom_Parabola.hxx>
#include <gp_Parab.hxx>
#include <BndLib_Add3dCurve.hxx>
//=======================================================================
//function : ParabolaTolerance
//purpose :
@ -603,4 +584,197 @@ void ParabolaTolerance(const Handle(Geom_Curve)& aC3D,
aTolMax=(aTol1>aTol2) ? aTol1 : aTol2;
aTolMin=(aTol1<aTol2) ? aTol1 : aTol2;
}
/////////////////////////////////////////////////////////////////////////
//=======================================================================
//function : CheckCurve
//purpose :
//=======================================================================
Standard_Boolean IntTools_Tools::CheckCurve(const Handle (Geom_Curve)& aC3D,
const Standard_Real aTolR3D,
Bnd_Box& aBox)
{
Standard_Boolean bRet;
Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax, dX, dY, dZ;
Standard_Real dS, aTol;
GeomAdaptor_Curve aGAC;
//
aGAC.Load(aC3D);
BndLib_Add3dCurve::Add(aGAC, aTolR3D, aBox);
// 910/B1
aBox.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
dX=aXmax-aXmin;
dY=aYmax-aYmin;
dZ=aZmax-aZmin;
dS=1.e-12;
aTol=2.*aTolR3D+dS;
bRet=(dX>aTol || dY>aTol || dZ>aTol);
//
return bRet;
}
//=======================================================================
//function : IsOnPave
//purpose :
//=======================================================================
Standard_Boolean IntTools_Tools::IsOnPave(const Standard_Real aT1,
const IntTools_Range& aRange,
const Standard_Real aTolerance)
{
Standard_Boolean firstisonpave1, firstisonpave2, bIsOnPave;
//
firstisonpave1 = (Abs(aRange.First() - aT1) < aTolerance);
firstisonpave2 = (Abs(aRange.Last() - aT1) < aTolerance);
bIsOnPave=(firstisonpave1 || firstisonpave2);
return bIsOnPave;
}
//=======================================================================
// function: VertexParameters
// purpose:
//=======================================================================
void IntTools_Tools::VertexParameters(const IntTools_CommonPrt& aCPart,
Standard_Real& aT1,
Standard_Real& aT2)
{
const IntTools_Range& aR1=aCPart.Range1();
aT1=0.5*(aR1.First()+aR1.Last());
//
if((aCPart.VertexParameter1() >= aR1.First()) &&
(aCPart.VertexParameter1() <= aR1.Last())) {
aT1 = aCPart.VertexParameter1();
}
//
const IntTools_SequenceOfRanges& aRanges2=aCPart.Ranges2();
const IntTools_Range& aR2=aRanges2(1);
aT2=0.5*(aR2.First()+aR2.Last());
//
if((aCPart.VertexParameter2() >= aR2.First()) &&
(aCPart.VertexParameter2() <= aR2.Last())) {
aT2 = aCPart.VertexParameter2();
}
}
//=======================================================================
// function: VertexParameter
// purpose:
//=======================================================================
void IntTools_Tools::VertexParameter(const IntTools_CommonPrt& aCPart,
Standard_Real& aT)
{
const IntTools_Range& aR=aCPart.Range1();
aT=0.5*(aR.First()+aR.Last());
if((aCPart.VertexParameter1() >= aR.First()) &&
(aCPart.VertexParameter1() <= aR.Last())) {
aT = aCPart.VertexParameter1();
}
}
//=======================================================================
// function: IsOnPave1
// purpose:
//=======================================================================
Standard_Boolean IntTools_Tools::IsOnPave1(const Standard_Real aTR,
const IntTools_Range& aCPRange,
const Standard_Real aTolerance)
{
Standard_Boolean bIsOnPave;
Standard_Real aT1, aT2, dT1, dT2;
//
aT1=aCPRange.First();
aT2=aCPRange.Last();
bIsOnPave=(aTR>=aT1 && aTR<=aT1);
if (bIsOnPave) {
return bIsOnPave;
}
//
dT1=Abs(aTR-aT1);
dT2=Abs(aTR-aT2);
bIsOnPave=(dT1<=aTolerance || dT2<=aTolerance);
return bIsOnPave;
}
//=======================================================================
// function: IsInRange
// purpose:
//=======================================================================
Standard_Boolean IntTools_Tools::IsInRange(const IntTools_Range& aRRef,
const IntTools_Range& aR,
const Standard_Real aTolerance)
{
Standard_Boolean bIsIn;
Standard_Real aT1, aT2, aTRef1, aTRef2;
//
aR.Range(aT1, aT2);
aRRef.Range(aTRef1, aTRef2);
//
aTRef1-=aTolerance;
aTRef2+=aTolerance;
//
bIsIn = (aT1>=aTRef1 && aT1<=aTRef2) ||
(aT2>=aTRef1 && aT2<=aTRef2);
//
return bIsIn;
}
//=======================================================================
//function : SegPln
//purpose :
//=======================================================================
Standard_Integer IntTools_Tools::SegPln(const gp_Lin& theLin,
const Standard_Real theTLin1,
const Standard_Real theTLin2,
const Standard_Real theTolLin,
const gp_Pln& thePln,
const Standard_Real theTolPln,
gp_Pnt& theP,
Standard_Real& theTP,
Standard_Real& theTolP,
Standard_Real& theTPmin,
Standard_Real& theTPmax)
{
Standard_Integer iRet;
Standard_Real aTol, aA, aB, aC, aD, aE, aH, aTP, aDist1, aDist2;
gp_Pnt aP1, aP2;
//
iRet=0;
aTol=theTolLin+theTolPln;
//
const gp_Ax3& aPosPln=thePln.Position();
const gp_Dir& aDirPln=aPosPln.Direction();
const gp_Pnt& aLocPln=aPosPln.Location();
//
const gp_Dir& aDirLin=theLin.Direction();
const gp_Pnt& aLocLin=theLin.Location();
//
aP1.SetXYZ(aLocLin.XYZ()+theTLin1*aDirLin.XYZ());
aDist1=aDirPln.X()*(aP1.X()-aLocPln.X())+
aDirPln.Y()*(aP1.Y()-aLocPln.Y())+
aDirPln.Z()*(aP1.Z()-aLocPln.Z());
//
aP2.SetXYZ(aLocLin.XYZ()+theTLin2*aDirLin.XYZ());
aDist2=aDirPln.X()*(aP2.X()-aLocPln.X())+
aDirPln.Y()*(aP2.Y()-aLocPln.Y())+
aDirPln.Z()*(aP2.Z()-aLocPln.Z());
//
if (aDist1<aTol && aDist2<aTol){
iRet=1; // common block
return iRet;
}
//
if (aDist1*aDist2 > 0.) {
iRet=2; // segment lays on one side to the Plane
return iRet;
}
//
thePln.Coefficients(aA, aB, aC, aD);
aE=aA*aLocLin.X()+aB*aLocLin.Y()+aC*aLocLin.Z()+aD;
aH=aA*aDirLin.X()+aB*aDirLin.Y()+aC*aDirLin.Z();
aTP=-aE/aH;
if (aTP < theTLin1-aTol || aTP > theTLin2+aTol) {
iRet=3; // no intersections due to range of the Line
return iRet;
}
//
theTP=aTP;
theP.SetXYZ(aLocLin.XYZ()+aTP*aDirLin.XYZ());
theTolP=aTol;
theTPmin=theTP-theTolPln;
theTPmax=theTP+theTolPln;
iRet=0; // intersection point
return iRet;
}

View File

@ -24,7 +24,7 @@
#include <BRep_Tool.hxx>
#include <BRep_Builder.hxx>
#include <Geom_Surface.hxx>
#include <BOPInt_Context.hxx>
#include <IntTools_Context.hxx>
#include <TopExp_Explorer.hxx>
#include <TopExp.hxx>
#include <GeomAPI_ProjectPointOnSurf.hxx>

View File

@ -1,7 +1,6 @@
IntTools
BRepAlgoAPI
BOPCol
BOPInt
BOPDS
BOPAlgo
BOPTools