mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-16 10:08:36 +03:00
0025174: Provide ShapeCustom and BRepModifier with ProgressIndicator and ReShape features
Conflicts: src/TNaming/TNaming_Name.cxx
This commit is contained in:
parent
2958244411
commit
b350f6ee1e
@ -352,7 +352,7 @@ class BOPTools_CheckCurveOnSurface :
|
|||||||
//
|
//
|
||||||
theFVal = -1.0*aP1.SquareDistance(aP2);
|
theFVal = -1.0*aP1.SquareDistance(aP2);
|
||||||
}
|
}
|
||||||
catch(...) {
|
catch(Standard_Failure) {
|
||||||
return Standard_False;
|
return Standard_False;
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
@ -382,7 +382,7 @@ class BOPTools_CheckCurveOnSurface :
|
|||||||
|
|
||||||
theGrad(1) = -2.0*aP1.XYZ().Dot(aP2.XYZ());
|
theGrad(1) = -2.0*aP1.XYZ().Dot(aP2.XYZ());
|
||||||
}
|
}
|
||||||
catch(...) {
|
catch(Standard_Failure) {
|
||||||
return Standard_False;
|
return Standard_False;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1260,7 +1260,7 @@ Standard_Boolean BOPTools_AlgoTools::
|
|||||||
|
|
||||||
theMaxDist = sqrt(Abs(theMaxDist));
|
theMaxDist = sqrt(Abs(theMaxDist));
|
||||||
}
|
}
|
||||||
catch (...) {
|
catch (Standard_Failure) {
|
||||||
return Standard_False;
|
return Standard_False;
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
@ -644,7 +644,7 @@ void BRepFill_OffsetWire::Perform (const Standard_Real Offset,
|
|||||||
PerformWithBiLo(myWorkSpine,Offset,myBilo,myLink,myJoinType,Alt);
|
PerformWithBiLo(myWorkSpine,Offset,myBilo,myLink,myJoinType,Alt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (...)//Every exception was caught.
|
catch (Standard_Failure)//Every exception was caught.
|
||||||
{
|
{
|
||||||
myShape.Nullify();
|
myShape.Nullify();
|
||||||
myIsDone = Standard_False;
|
myIsDone = Standard_False;
|
||||||
|
@ -333,7 +333,7 @@ void BRepOffsetAPI_MakeOffset::Perform(const Standard_Real Offset,
|
|||||||
else
|
else
|
||||||
Done();
|
Done();
|
||||||
}
|
}
|
||||||
catch(...) //Every exception was caught.
|
catch(Standard_Failure) //Every exception was caught.
|
||||||
{
|
{
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
cout<<"An exception was caught in BRepOffsetAPI_MakeOffset::Perform : ";
|
cout<<"An exception was caught in BRepOffsetAPI_MakeOffset::Perform : ";
|
||||||
|
@ -20,7 +20,8 @@ class Modifier from BRepTools
|
|||||||
|
|
||||||
uses Shape from TopoDS,
|
uses Shape from TopoDS,
|
||||||
Modification from BRepTools,
|
Modification from BRepTools,
|
||||||
DataMapOfShapeShape from TopTools
|
DataMapOfShapeShape from TopTools,
|
||||||
|
ProgressIndicator from Message
|
||||||
|
|
||||||
raises NullObject from Standard,
|
raises NullObject from Standard,
|
||||||
NoSuchObject from Standard
|
NoSuchObject from Standard
|
||||||
@ -47,7 +48,7 @@ is
|
|||||||
---Purpose: Initializes the modifier with the shape <S>.
|
---Purpose: Initializes the modifier with the shape <S>.
|
||||||
|
|
||||||
|
|
||||||
Perform(me: in out; M: Modification from BRepTools)
|
Perform(me: in out; M: Modification from BRepTools; aProgress: ProgressIndicator from Message = NULL)
|
||||||
---Purpose: Performs the modifications described by <M>.
|
---Purpose: Performs the modifications described by <M>.
|
||||||
raises NullObject from Standard
|
raises NullObject from Standard
|
||||||
-- if the modifier has not been initialized with a shape.
|
-- if the modifier has not been initialized with a shape.
|
||||||
@ -82,7 +83,7 @@ is
|
|||||||
is static private;
|
is static private;
|
||||||
|
|
||||||
|
|
||||||
Rebuild(me: in out; S: Shape from TopoDS; M: Modification from BRepTools)
|
Rebuild(me: in out; S: Shape from TopoDS; M: Modification from BRepTools; aProgress: ProgressIndicator from Message = NULL)
|
||||||
returns Boolean from Standard
|
returns Boolean from Standard
|
||||||
is static private;
|
is static private;
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
#include <Standard_NullObject.hxx>
|
#include <Standard_NullObject.hxx>
|
||||||
#include <gp_Trsf.hxx>
|
#include <gp_Trsf.hxx>
|
||||||
#include <BRepTools_TrsfModification.hxx>
|
#include <BRepTools_TrsfModification.hxx>
|
||||||
|
#include <Message_ProgressSentry.hxx>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -108,7 +109,7 @@ void BRepTools_Modifier::Init(const TopoDS_Shape& S)
|
|||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
void BRepTools_Modifier::Perform(const Handle(BRepTools_Modification)& M)
|
void BRepTools_Modifier::Perform(const Handle(BRepTools_Modification)& M, const Handle(Message_ProgressIndicator) & aProgress)
|
||||||
{
|
{
|
||||||
if (myShape.IsNull()) {
|
if (myShape.IsNull()) {
|
||||||
Standard_NullObject::Raise();
|
Standard_NullObject::Raise();
|
||||||
@ -132,7 +133,17 @@ void BRepTools_Modifier::Perform(const Handle(BRepTools_Modification)& M)
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Rebuild(myShape,M);
|
Message_ProgressSentry aPSentry(aProgress, "Converting Shape", 0, 2, 1);
|
||||||
|
|
||||||
|
Rebuild(myShape, M, aProgress);
|
||||||
|
|
||||||
|
if (!aPSentry.More())
|
||||||
|
{
|
||||||
|
// The processing was broken
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
aPSentry.Next();
|
||||||
|
|
||||||
if (myShape.ShapeType() == TopAbs_FACE) {
|
if (myShape.ShapeType() == TopAbs_FACE) {
|
||||||
if (myShape.Orientation() == TopAbs_REVERSED) {
|
if (myShape.Orientation() == TopAbs_REVERSED) {
|
||||||
@ -236,7 +247,8 @@ void BRepTools_Modifier::Put(const TopoDS_Shape& S)
|
|||||||
|
|
||||||
Standard_Boolean BRepTools_Modifier::Rebuild
|
Standard_Boolean BRepTools_Modifier::Rebuild
|
||||||
(const TopoDS_Shape& S,
|
(const TopoDS_Shape& S,
|
||||||
const Handle(BRepTools_Modification)& M)
|
const Handle(BRepTools_Modification)& M,
|
||||||
|
const Handle(Message_ProgressIndicator)& aProgress)
|
||||||
{
|
{
|
||||||
TopoDS_Shape& result = myMap(S);
|
TopoDS_Shape& result = myMap(S);
|
||||||
// if (!result.IsNull()) return ! S.IsEqual(result);
|
// if (!result.IsNull()) return ! S.IsEqual(result);
|
||||||
@ -325,11 +337,25 @@ Standard_Boolean BRepTools_Modifier::Rebuild
|
|||||||
|
|
||||||
TopoDS_Iterator it;
|
TopoDS_Iterator it;
|
||||||
|
|
||||||
for (it.Initialize(S, Standard_False); it.More(); it.Next()) {
|
{
|
||||||
|
Standard_Integer aShapeCount = 0;
|
||||||
|
{
|
||||||
|
for (it.Initialize(S, Standard_False); it.More(); it.Next()) ++aShapeCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
Message_ProgressSentry aPSentry(aProgress, "Converting SubShapes", 0, aShapeCount, 1);
|
||||||
|
//
|
||||||
|
for (it.Initialize(S, Standard_False); it.More() && aPSentry.More(); it.Next(), aPSentry.Next()) {
|
||||||
// always call Rebuild
|
// always call Rebuild
|
||||||
Standard_Boolean subrebuilt = Rebuild(it.Value(),M);
|
Standard_Boolean subrebuilt = Rebuild(it.Value(), M, aProgress);
|
||||||
rebuild = subrebuilt || rebuild ;
|
rebuild = subrebuilt || rebuild ;
|
||||||
}
|
}
|
||||||
|
if (!aPSentry.More())
|
||||||
|
{
|
||||||
|
// The processing was broken
|
||||||
|
return Standard_False;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// make an empty copy
|
// make an empty copy
|
||||||
if (rebuild && !newgeom) {
|
if (rebuild && !newgeom) {
|
||||||
@ -362,8 +388,7 @@ Standard_Boolean BRepTools_Modifier::Rebuild
|
|||||||
{
|
{
|
||||||
const TopoDS_Edge& edge = TopoDS::Edge(ex.Current());
|
const TopoDS_Edge& edge = TopoDS::Edge(ex.Current());
|
||||||
|
|
||||||
if (M->NewCurve2d(edge, face,TopoDS::Edge(myMap(ex.Current())),
|
if (M->NewCurve2d(edge, face, TopoDS::Edge(myMap(ex.Current())), TopoDS::Face(result), curve2d, tol))
|
||||||
TopoDS::Face(result),curve2d, tol))
|
|
||||||
{
|
{
|
||||||
// rem dub 16/09/97 : Make constant topology or not make at all.
|
// rem dub 16/09/97 : Make constant topology or not make at all.
|
||||||
// Do not make if CopySurface = 1
|
// Do not make if CopySurface = 1
|
||||||
@ -439,9 +464,7 @@ Standard_Boolean BRepTools_Modifier::Rebuild
|
|||||||
|
|
||||||
TopLoc_Location theLoc;
|
TopLoc_Location theLoc;
|
||||||
Standard_Real theF,theL;
|
Standard_Real theF,theL;
|
||||||
Handle(Geom_Curve) C3D =
|
Handle(Geom_Curve) C3D = BRep_Tool::Curve(TopoDS::Edge(myMap(ex.Current())), theLoc, theF, theL);
|
||||||
BRep_Tool::Curve(TopoDS::Edge(myMap(ex.Current())),
|
|
||||||
theLoc,theF,theL);
|
|
||||||
if (C3D.IsNull()) { // Update vertices
|
if (C3D.IsNull()) { // Update vertices
|
||||||
Standard_Real param;
|
Standard_Real param;
|
||||||
TopExp_Explorer ex2(edge,TopAbs_VERTEX);
|
TopExp_Explorer ex2(edge,TopAbs_VERTEX);
|
||||||
@ -457,21 +480,18 @@ Standard_Boolean BRepTools_Modifier::Rebuild
|
|||||||
// Update considere l'edge FORWARD, et le vertex en relatif
|
// Update considere l'edge FORWARD, et le vertex en relatif
|
||||||
vtxrelat= TopAbs::Reverse(vtxrelat);
|
vtxrelat= TopAbs::Reverse(vtxrelat);
|
||||||
}
|
}
|
||||||
// if (myMap(edge).Orientation() == TopAbs_REVERSED) {
|
//if (myMap(edge).Orientation() == TopAbs_REVERSED) {
|
||||||
// vtxrelat= TopAbs::Reverse(vtxrelat);
|
// vtxrelat= TopAbs::Reverse(vtxrelat);
|
||||||
// }
|
//}
|
||||||
|
|
||||||
TopoDS_Vertex aLocalVertex = TopoDS::Vertex(myMap(vertex));
|
TopoDS_Vertex aLocalVertex = TopoDS::Vertex(myMap(vertex));
|
||||||
aLocalVertex.Orientation(vtxrelat);
|
aLocalVertex.Orientation(vtxrelat);
|
||||||
// B.UpdateVertex(TopoDS::Vertex
|
//B.UpdateVertex(TopoDS::Vertex
|
||||||
// (myMap(vertex).Oriented(vtxrelat)),
|
//(myMap(vertex).Oriented(vtxrelat)),
|
||||||
B.UpdateVertex(aLocalVertex,
|
B.UpdateVertex(aLocalVertex, param, TopoDS::Edge(myMap(edge)), tol);
|
||||||
param,
|
|
||||||
TopoDS::Edge(myMap(edge)),
|
|
||||||
tol);
|
|
||||||
ex2.Next();
|
ex2.Next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -493,23 +513,19 @@ Standard_Boolean BRepTools_Modifier::Rebuild
|
|||||||
param = BRep_Tool::Parameter(vertex,edge);
|
param = BRep_Tool::Parameter(vertex,edge);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TopAbs_Orientation vtxrelat = vertex.Orientation();
|
TopAbs_Orientation vtxrelat = vertex.Orientation();
|
||||||
if (edor == TopAbs_REVERSED) {
|
if (edor == TopAbs_REVERSED) {
|
||||||
// Update considere l'edge FORWARD, et le vertex en relatif
|
// Update considere l'edge FORWARD, et le vertex en relatif
|
||||||
vtxrelat= TopAbs::Reverse(vtxrelat);
|
vtxrelat= TopAbs::Reverse(vtxrelat);
|
||||||
}
|
}
|
||||||
// if (result.Orientation() == TopAbs_REVERSED) {
|
|
||||||
// vtxrelat= TopAbs::Reverse(vtxrelat);
|
//if (result.Orientation() == TopAbs_REVERSED) {
|
||||||
// }
|
// vtxrelat= TopAbs::Reverse(vtxrelat);
|
||||||
|
//}
|
||||||
TopoDS_Vertex aLocalVertex = TopoDS::Vertex(myMap(vertex));
|
TopoDS_Vertex aLocalVertex = TopoDS::Vertex(myMap(vertex));
|
||||||
aLocalVertex.Orientation(vtxrelat);
|
aLocalVertex.Orientation(vtxrelat);
|
||||||
// B.UpdateVertex(TopoDS::Vertex
|
//B.UpdateVertex(TopoDS::Vertex(myMap(vertex).Oriented(vtxrelat)),
|
||||||
// (myMap(vertex).Oriented(vtxrelat)),
|
B.UpdateVertex(aLocalVertex, param, TopoDS::Edge(result), tol);
|
||||||
B.UpdateVertex(aLocalVertex,
|
|
||||||
param,
|
|
||||||
TopoDS::Edge(result),
|
|
||||||
tol);
|
|
||||||
|
|
||||||
ex.Next();
|
ex.Next();
|
||||||
}
|
}
|
||||||
|
@ -697,7 +697,8 @@ static Standard_Integer DNaming_AttachShape (Draw_Interpretor& di,
|
|||||||
TNaming_Selector aSelector(aResultLabel);
|
TNaming_Selector aSelector(aResultLabel);
|
||||||
if(!aSelector.Select(aShape, aCONTEXT, aGeometry, aKeepOrientation))
|
if(!aSelector.Select(aShape, aCONTEXT, aGeometry, aKeepOrientation))
|
||||||
return 1;
|
return 1;
|
||||||
}catch (...) {
|
}
|
||||||
|
catch (Standard_Failure) {
|
||||||
cout << "EXCEPTION: SELECTION_IMPOSSIBLE" <<endl;
|
cout << "EXCEPTION: SELECTION_IMPOSSIBLE" <<endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -773,7 +774,8 @@ static Standard_Integer DNaming_XAttachShape (Draw_Interpretor& di,
|
|||||||
TNaming_Selector aSelector(aResultLabel);
|
TNaming_Selector aSelector(aResultLabel);
|
||||||
if(!aSelector.Select(aShape, aCONTEXT, aGeometry, aKeepOrientation))
|
if(!aSelector.Select(aShape, aCONTEXT, aGeometry, aKeepOrientation))
|
||||||
return 1;
|
return 1;
|
||||||
} catch (...) {
|
}
|
||||||
|
catch (Standard_Failure) {
|
||||||
cout << "EXCEPTION: SELECTION_IMPOSSIBLE" <<endl;
|
cout << "EXCEPTION: SELECTION_IMPOSSIBLE" <<endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,9 @@ uses
|
|||||||
BRepTools,
|
BRepTools,
|
||||||
TopTools,
|
TopTools,
|
||||||
TColgp,
|
TColgp,
|
||||||
Precision
|
Precision,
|
||||||
|
Message,
|
||||||
|
ShapeBuild
|
||||||
|
|
||||||
is
|
is
|
||||||
|
|
||||||
@ -64,7 +66,9 @@ is
|
|||||||
ApplyModifier(S : Shape from TopoDS;
|
ApplyModifier(S : Shape from TopoDS;
|
||||||
M : Modification from BRepTools;
|
M : Modification from BRepTools;
|
||||||
context: in out DataMapOfShapeShape from TopTools;
|
context: in out DataMapOfShapeShape from TopTools;
|
||||||
MD : in out Modifier from BRepTools)
|
MD : in out Modifier from BRepTools;
|
||||||
|
aProgress : ProgressIndicator from Message = NULL;
|
||||||
|
aReShape : ReShape from ShapeBuild = NULL )
|
||||||
|
|
||||||
returns Shape from TopoDS;
|
returns Shape from TopoDS;
|
||||||
---Purpose: Applies modifier to shape and checks sharing in the case assemblies.
|
---Purpose: Applies modifier to shape and checks sharing in the case assemblies.
|
||||||
|
@ -32,7 +32,11 @@
|
|||||||
#include <TopoDS_Iterator.hxx>
|
#include <TopoDS_Iterator.hxx>
|
||||||
#include <BRep_Builder.hxx>
|
#include <BRep_Builder.hxx>
|
||||||
#include <BRepTools_Modifier.hxx>
|
#include <BRepTools_Modifier.hxx>
|
||||||
|
#include <ShapeBuild_ReShape.hxx>
|
||||||
|
#include <Standard_ErrorHandler.hxx>
|
||||||
|
|
||||||
|
#include <Message_ProgressIndicator.hxx>
|
||||||
|
#include <Message_ProgressSentry.hxx>
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
//function : ApplyModifier
|
//function : ApplyModifier
|
||||||
@ -42,7 +46,9 @@
|
|||||||
TopoDS_Shape ShapeCustom::ApplyModifier (const TopoDS_Shape &S,
|
TopoDS_Shape ShapeCustom::ApplyModifier (const TopoDS_Shape &S,
|
||||||
const Handle(BRepTools_Modification) &M,
|
const Handle(BRepTools_Modification) &M,
|
||||||
TopTools_DataMapOfShapeShape &context,
|
TopTools_DataMapOfShapeShape &context,
|
||||||
BRepTools_Modifier& MD )
|
BRepTools_Modifier& MD,
|
||||||
|
const Handle(Message_ProgressIndicator) & aProgress,
|
||||||
|
const Handle(ShapeBuild_ReShape) & aReShape)
|
||||||
{
|
{
|
||||||
// protect against INTERNAL/EXTERNAL shapes
|
// protect against INTERNAL/EXTERNAL shapes
|
||||||
TopoDS_Shape SF = S.Oriented(TopAbs_FORWARD);
|
TopoDS_Shape SF = S.Oriented(TopAbs_FORWARD);
|
||||||
@ -53,14 +59,23 @@ TopoDS_Shape ShapeCustom::ApplyModifier (const TopoDS_Shape &S,
|
|||||||
TopoDS_Compound C;
|
TopoDS_Compound C;
|
||||||
BRep_Builder B;
|
BRep_Builder B;
|
||||||
B.MakeCompound ( C );
|
B.MakeCompound ( C );
|
||||||
for ( TopoDS_Iterator it(SF); it.More(); it.Next() ) {
|
|
||||||
|
Standard_Integer aShapeCount = 0;
|
||||||
|
{
|
||||||
|
for (TopoDS_Iterator it(SF); it.More(); it.Next()) ++aShapeCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
Message_ProgressSentry aPSentry(aProgress, "Applying Modifier For Solids", 0, aShapeCount, 1);
|
||||||
|
for ( TopoDS_Iterator it(SF); it.More() && aPSentry.More(); it.Next(), aPSentry.Next() ) {
|
||||||
TopoDS_Shape shape = it.Value();
|
TopoDS_Shape shape = it.Value();
|
||||||
TopLoc_Location L = shape.Location(), nullLoc;
|
TopLoc_Location L = shape.Location(), nullLoc;
|
||||||
shape.Location ( nullLoc );
|
shape.Location ( nullLoc );
|
||||||
TopoDS_Shape res;
|
TopoDS_Shape res;
|
||||||
if ( context.IsBound ( shape ) )
|
if ( context.IsBound ( shape ) )
|
||||||
res = context.Find ( shape ).Oriented ( shape.Orientation() );
|
res = context.Find ( shape ).Oriented ( shape.Orientation() );
|
||||||
else res = ApplyModifier ( shape, M, context ,MD);
|
else
|
||||||
|
res = ApplyModifier ( shape, M, context ,MD, aProgress);
|
||||||
|
|
||||||
if ( ! res.IsSame ( shape ) ) {
|
if ( ! res.IsSame ( shape ) ) {
|
||||||
context.Bind ( shape, res );
|
context.Bind ( shape, res );
|
||||||
locModified = Standard_True;
|
locModified = Standard_True;
|
||||||
@ -68,17 +83,48 @@ TopoDS_Shape ShapeCustom::ApplyModifier (const TopoDS_Shape &S,
|
|||||||
res.Location ( L );
|
res.Location ( L );
|
||||||
B.Add ( C, res );
|
B.Add ( C, res );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( !aPSentry.More() )
|
||||||
|
{
|
||||||
|
// Was cancelled
|
||||||
|
return S;
|
||||||
|
}
|
||||||
|
|
||||||
if ( ! locModified ) return S;
|
if ( ! locModified ) return S;
|
||||||
context.Bind ( SF, C );
|
context.Bind ( SF, C );
|
||||||
return C.Oriented ( S.Orientation() );
|
return C.Oriented ( S.Orientation() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Message_ProgressSentry aPSentry(aProgress, "Modify the Shape", 0, 1, 1);
|
||||||
// Modify the shape
|
// Modify the shape
|
||||||
//BRepTools_Modifier Op(SF,M);
|
|
||||||
MD.Init(SF);
|
MD.Init(SF);
|
||||||
MD.Perform(M);
|
MD.Perform(M, aProgress);
|
||||||
|
|
||||||
|
if ( !aPSentry.More() || !MD.IsDone() ) return S;
|
||||||
|
if ( !aReShape.IsNull() )
|
||||||
|
{
|
||||||
|
for(TopoDS_Iterator theIterator(SF,Standard_False);theIterator.More();theIterator.Next())
|
||||||
|
{
|
||||||
|
const TopoDS_Shape & current = theIterator.Value();
|
||||||
|
TopoDS_Shape result;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
OCC_CATCH_SIGNALS
|
||||||
|
result = MD.ModifiedShape( current );
|
||||||
|
}
|
||||||
|
catch (Standard_NoSuchObject)
|
||||||
|
{
|
||||||
|
// the sub shape isn't in the map
|
||||||
|
result.Nullify();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!result.IsNull() && !current.IsSame(result))
|
||||||
|
{
|
||||||
|
aReShape->Replace(current, result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( ! MD.IsDone() ) return S;
|
|
||||||
return MD.ModifiedShape(SF).Oriented(S.Orientation());
|
return MD.ModifiedShape(SF).Oriented(S.Orientation());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
|
|
||||||
#include <Standard_NotImplemented.hxx>
|
#include <Standard_NotImplemented.hxx>
|
||||||
#include <Standard_ConstructionError.hxx>
|
#include <Standard_ConstructionError.hxx>
|
||||||
|
#include <Standard_ErrorHandler.hxx>
|
||||||
#include <TopTools_Array1OfShape.hxx>
|
#include <TopTools_Array1OfShape.hxx>
|
||||||
#include <TColStd_Array1OfInteger.hxx>
|
#include <TColStd_Array1OfInteger.hxx>
|
||||||
#include <TopoDS_Wire.hxx>
|
#include <TopoDS_Wire.hxx>
|
||||||
@ -2075,6 +2076,7 @@ Standard_Boolean TNaming_Name::Solve(const TDF_Label& aLab,
|
|||||||
PrintEntry(aLab);
|
PrintEntry(aLab);
|
||||||
#endif
|
#endif
|
||||||
try {
|
try {
|
||||||
|
OCC_CATCH_SIGNALS
|
||||||
switch (myType) {
|
switch (myType) {
|
||||||
case TNaming_UNKNOWN :
|
case TNaming_UNKNOWN :
|
||||||
{
|
{
|
||||||
@ -2145,7 +2147,7 @@ case TNaming_SHELLIN:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (...) {
|
} catch (Standard_Failure) {
|
||||||
#ifdef OCCT_DEBUG
|
#ifdef OCCT_DEBUG
|
||||||
cout << "Name::Solve: EXCEPTION==> NameType = " << NameTypeToString(myType) << " ";
|
cout << "Name::Solve: EXCEPTION==> NameType = " << NameTypeToString(myType) << " ";
|
||||||
PrintEntry(aLab);
|
PrintEntry(aLab);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user