mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-16 10:08:36 +03:00
- Ensure that the subshapes from the original shape will not be changed after nurbsconvert operation. For that create the new vertexes (NewPoint(..)) as well as new curves (NewCurve(..)) and new surfaces (NewSurface(..)) before calling of Rebuild() method. Make copies of all vertexes impacted by curve or surface modifications. This eliminates necessity of creation of new vertices during recursive rebuilding of the entire shape. - Compatibility with the old behavior of BRepTools_Modifier has been retained as an option. For that the new flag MutableInput has been added in the interface of the class. - This patch also impacts other operations based on BRepTools_Modifier, in the sense that they also become safe regarding input shapes. - Create new test cases. Some test cases with nurbsconvert command are changed to lock input shapes from modifications. fix regressions
93 lines
2.4 KiB
C++
93 lines
2.4 KiB
C++
// Created on: 2000-08-31
|
|
// Created by: Andrey BETENEV
|
|
// Copyright (c) 2000-2014 OPEN CASCADE SAS
|
|
//
|
|
// This file is part of Open CASCADE Technology software library.
|
|
//
|
|
// This library is free software; you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License version 2.1 as published
|
|
// by the Free Software Foundation, with special exception defined in the file
|
|
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
// distribution for complete text of the license and disclaimer of any warranty.
|
|
//
|
|
// Alternatively, this file may be used under the terms of Open CASCADE
|
|
// commercial license or contractual agreement.
|
|
|
|
#ifndef _ShapeProcess_OperLibrary_HeaderFile
|
|
#define _ShapeProcess_OperLibrary_HeaderFile
|
|
|
|
#include <Standard.hxx>
|
|
#include <Standard_DefineAlloc.hxx>
|
|
#include <Standard_Handle.hxx>
|
|
|
|
#include <TopTools_DataMapOfShapeShape.hxx>
|
|
class TopoDS_Shape;
|
|
class ShapeProcess_ShapeContext;
|
|
class BRepTools_Modification;
|
|
class ShapeExtend_MsgRegistrator;
|
|
|
|
|
|
//! Provides a set of following operators
|
|
//!
|
|
//! DirectFaces
|
|
//! FixShape
|
|
//! SameParameter
|
|
//! SetTolerance
|
|
//! SplitAngle
|
|
//! BSplineRestriction
|
|
//! ElementaryToRevolution
|
|
//! SurfaceToBSpline
|
|
//! ToBezier
|
|
//! SplitContinuity
|
|
//! SplitClosedFaces
|
|
//! FixWireGaps
|
|
//! FixFaceSize
|
|
//! DropSmallEdges
|
|
//! FixShape
|
|
//! SplitClosedEdges
|
|
class ShapeProcess_OperLibrary
|
|
{
|
|
public:
|
|
|
|
DEFINE_STANDARD_ALLOC
|
|
|
|
|
|
//! Registers all the operators
|
|
Standard_EXPORT static void Init();
|
|
|
|
//! Applies BRepTools_Modification to a shape,
|
|
//! taking into account sharing of components of compounds.
|
|
//! if theMutableInput vat is set to true then imput shape S
|
|
//! can be modified during the modification process.
|
|
Standard_EXPORT static TopoDS_Shape ApplyModifier (const TopoDS_Shape& S,
|
|
const Handle(ShapeProcess_ShapeContext)& context,
|
|
const Handle(BRepTools_Modification)& M,
|
|
TopTools_DataMapOfShapeShape& map,
|
|
const Handle(ShapeExtend_MsgRegistrator)& msg = 0,
|
|
Standard_Boolean theMutableInput = Standard_False);
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif // _ShapeProcess_OperLibrary_HeaderFile
|