mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
Next version.
This commit is contained in:
@@ -3248,7 +3248,8 @@ Standard_Boolean BRepOffset_Tool::EnLargeFace
|
|||||||
const Standard_Boolean UpdatePCurve,
|
const Standard_Boolean UpdatePCurve,
|
||||||
const Standard_Boolean enlargeU,
|
const Standard_Boolean enlargeU,
|
||||||
const Standard_Boolean enlargeVfirst,
|
const Standard_Boolean enlargeVfirst,
|
||||||
const Standard_Boolean enlargeVlast)
|
const Standard_Boolean enlargeVlast,
|
||||||
|
const Standard_Boolean UseInfini)
|
||||||
{
|
{
|
||||||
//---------------------------
|
//---------------------------
|
||||||
// extension de la geometrie.
|
// extension de la geometrie.
|
||||||
@@ -3270,8 +3271,20 @@ Standard_Boolean BRepOffset_Tool::EnLargeFace
|
|||||||
}
|
}
|
||||||
|
|
||||||
S->Bounds (US1,US2,VS1,VS2);
|
S->Bounds (US1,US2,VS1,VS2);
|
||||||
UU1 = VV1 = - TheInfini;
|
if (UseInfini)
|
||||||
UU2 = VV2 = TheInfini;
|
{
|
||||||
|
UU1 = VV1 = - TheInfini;
|
||||||
|
UU2 = VV2 = TheInfini;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Standard_Real FaceDU = UF2 - UF1;
|
||||||
|
Standard_Real FaceDV = VF2 - VF1;
|
||||||
|
UU1 = UF1 - FaceDU;
|
||||||
|
UU2 = UF2 + FaceDU;
|
||||||
|
VV1 = VF1 - FaceDV;
|
||||||
|
VV2 = VF2 + FaceDV;
|
||||||
|
}
|
||||||
|
|
||||||
if (CanExtentSurface) {
|
if (CanExtentSurface) {
|
||||||
SurfaceChange = EnlargeGeometry( S, UU1, UU2, VV1, VV2, isVV1degen, isVV2degen, UF1, UF2, VF1, VF2,
|
SurfaceChange = EnlargeGeometry( S, UU1, UU2, VV1, VV2, isVV1degen, isVV2degen, UF1, UF2, VF1, VF2,
|
||||||
@@ -4148,4 +4161,4 @@ void PerformPlanes(const TopoDS_Face& theFace1,
|
|||||||
Standard_Boolean IsInf(const Standard_Real theVal)
|
Standard_Boolean IsInf(const Standard_Real theVal)
|
||||||
{
|
{
|
||||||
return (theVal > TheInfini*0.9);
|
return (theVal > TheInfini*0.9);
|
||||||
}
|
}
|
||||||
|
@@ -104,7 +104,14 @@ public:
|
|||||||
//! if <UpdatePCurve> is TRUE, update the pcurves of the
|
//! if <UpdatePCurve> is TRUE, update the pcurves of the
|
||||||
//! edges of <F> on the new surface.if the surface has been changed,
|
//! edges of <F> on the new surface.if the surface has been changed,
|
||||||
//! Returns True if The Surface of <NF> has changed.
|
//! Returns True if The Surface of <NF> has changed.
|
||||||
Standard_EXPORT static Standard_Boolean EnLargeFace (const TopoDS_Face& F, TopoDS_Face& NF, const Standard_Boolean ChangeGeom, const Standard_Boolean UpDatePCurve = Standard_False, const Standard_Boolean enlargeU = Standard_True, const Standard_Boolean enlargeVfirst = Standard_True, const Standard_Boolean enlargeVlast = Standard_True);
|
Standard_EXPORT static Standard_Boolean EnLargeFace (const TopoDS_Face& F,
|
||||||
|
TopoDS_Face& NF,
|
||||||
|
const Standard_Boolean ChangeGeom,
|
||||||
|
const Standard_Boolean UpDatePCurve = Standard_False,
|
||||||
|
const Standard_Boolean enlargeU = Standard_True,
|
||||||
|
const Standard_Boolean enlargeVfirst = Standard_True,
|
||||||
|
const Standard_Boolean enlargeVlast = Standard_True,
|
||||||
|
const Standard_Boolean UseInfini = Standard_True);
|
||||||
|
|
||||||
Standard_EXPORT static void ExtentFace (const TopoDS_Face& F, TopTools_DataMapOfShapeShape& ConstShapes, TopTools_DataMapOfShapeShape& ToBuild, const TopAbs_State Side, const Standard_Real TolConf, TopoDS_Face& NF);
|
Standard_EXPORT static void ExtentFace (const TopoDS_Face& F, TopTools_DataMapOfShapeShape& ConstShapes, TopTools_DataMapOfShapeShape& ToBuild, const TopAbs_State Side, const Standard_Real TolConf, TopoDS_Face& NF);
|
||||||
|
|
||||||
|
@@ -221,7 +221,9 @@ static Standard_Boolean IsTangentFaces(const TopoDS_Edge& theEdge,
|
|||||||
Handle(BRepTopAdaptor_TopolTool) aTool2 = new BRepTopAdaptor_TopolTool(aBAHS2);
|
Handle(BRepTopAdaptor_TopolTool) aTool2 = new BRepTopAdaptor_TopolTool(aBAHS2);
|
||||||
Standard_Integer aNbSamples1 = aTool1->NbSamples();
|
Standard_Integer aNbSamples1 = aTool1->NbSamples();
|
||||||
Standard_Integer aNbSamples2 = aTool2->NbSamples();
|
Standard_Integer aNbSamples2 = aTool2->NbSamples();
|
||||||
Standard_Integer aNbSamples = Max(aNbSamples1, aNbSamples2);
|
const Standard_Integer aNbSamplesMax = 23;
|
||||||
|
Standard_Integer aNbSamples = Min(aNbSamplesMax, Max(aNbSamples1, aNbSamples2));
|
||||||
|
const Standard_Real aTolAngle = M_PI/18;
|
||||||
|
|
||||||
|
|
||||||
// Computation of the continuity.
|
// Computation of the continuity.
|
||||||
@@ -233,14 +235,14 @@ static Standard_Boolean IsTangentFaces(const TopoDS_Edge& theEdge,
|
|||||||
if (i == aNbSamples) aPar = aLast;
|
if (i == aNbSamples) aPar = aLast;
|
||||||
|
|
||||||
LocalAnalysis_SurfaceContinuity aCont(aC2d1, aC2d2, aPar,
|
LocalAnalysis_SurfaceContinuity aCont(aC2d1, aC2d2, aPar,
|
||||||
aSurf1, aSurf2, Order,
|
aSurf1, aSurf2, Order,
|
||||||
0.001, TolC0, 0.1, 0.1, 0.1);
|
0.001, TolC0, aTolAngle, 0.1, 0.1);
|
||||||
if (!aCont.IsDone())
|
if (!aCont.IsDone())
|
||||||
{
|
{
|
||||||
nbNotDone++;
|
nbNotDone++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Order == GeomAbs_G1)
|
if (Order == GeomAbs_G1)
|
||||||
{
|
{
|
||||||
if (!aCont.IsG1())
|
if (!aCont.IsG1())
|
||||||
@@ -320,7 +322,8 @@ void BRepOffsetAPI_PatchFaces::Build()
|
|||||||
aNeighborFace.Orientation(TopAbs_FORWARD);
|
aNeighborFace.Orientation(TopAbs_FORWARD);
|
||||||
TopoDS_Face aNewFace;
|
TopoDS_Face aNewFace;
|
||||||
BRepOffset_Tool::EnLargeFace(aNeighborFace, aNewFace,
|
BRepOffset_Tool::EnLargeFace(aNeighborFace, aNewFace,
|
||||||
Standard_True,Standard_True,Standard_True,Standard_True,Standard_True);
|
Standard_True,Standard_True,Standard_True,Standard_True,Standard_True,
|
||||||
|
Standard_False); //not too big
|
||||||
myFaceNewFace.Add(aNeighborFace, aNewFace);
|
myFaceNewFace.Add(aNeighborFace, aNewFace);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user