New features:
class BOPTools_AlgoTools2D
method:
Standard_Integer BOPTools_AlgoTools2D::AttachExistingPCurve
(const TopoDS_Edge& aEold,
const TopoDS_Edge& aEnew,
const TopoDS_Face& aF,
const Handle(IntTools_Context)& aCtx)
has been added.
Purpose:
To attach P-Curve on surface of the face <aF> from the edge <aEold>
to the edge <aEnew>
It returns 0 in case of success.
Changes:
1. class BOPTools_AlgoTools
method:
Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
(const TopoDS_Face& theFSp,
const TopoDS_Face& theFSr,
Handle(IntTools_Context)& theContext)
The condition for a point on the surface of a face has been changed.
2. class BOPAlgo_PaveFiller
method:
void BOPAlgo_PaveFiller::MakePCurves()
The treatment of E/E common bocks has been changed
to use mechanism of attacment P-Curves [ I.1 ]
Test case for issue CR25880
Changes:
class BOPTools_AlgoTools
- method:
void BOPTools_AlgoTools::MakeVertex(BOPCol_ListOfShape& aLV,
TopoDS_Vertex& aVnew)
has been changed.
The section for case of two vertices has been added
Test case for issue CR24803
Changes:
class BOPTools_AlgoTools
method:
Standard_Boolean BOPTools_AlgoTools::GetFaceOff
(const TopoDS_Edge& theE1,
const TopoDS_Face& theF1,
BOPTools_ListOfCoupleOfShape& theLCSOff,
TopoDS_Face& theFOff,
Handle(IntTools_Context)& theContext)
has been changed.
The comparison of the angles done with the angular tolerance value
Test case for issue CR25838
class BOPTools_AlgoTools
1. method Standard_Boolean FindPointInFace(const TopoDS_Face& aF,
const gp_Pnt& aP,
gp_Dir& aDB,
gp_Pnt& aPOut,
Handle(IntTools_Context)& theContext,
GeomAPI_ProjectPointOnSurf& aProjPL,
const Standard_Real aDt,
const Standard_Real aTolE)
Use different method of finding a point in the face if the start and projected points are close to each other.
2. method Standard_Real MinStep3D(const TopoDS_Edge& theE1,
const TopoDS_Face& theF1,
const BOPTools_ListOfCoupleOfShape& theLCS,
const gp_Pnt& aP)
The min 3D step has been increased for the spherical faces.
Test case for issue CR25600
Correction of test case for issue CR25600
Changes:
class BOPTools_AlgoTools
static function:
Standard_Boolean FindPointInFace(const TopoDS_Face& aF,
const gp_Pnt& aP,
gp_Dir& aDB,
gp_Pnt& aPOut,
Handle(IntTools_Context)& theContext,
GeomAPI_ProjectPointOnSurf& aProjPL,
const Standard_Real aDt,
const Standard_Real aTolE)
Binormal calculation starts from the point located outside the tolerance circle of the edge
Test case for issue CR25432
Correction of test cases for issue CR25432
class BOPTools_AlgoTools
method
Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
(const TopoDS_Face& theFSp,
const TopoDS_Face& theFSr,
Handle(IntTools_Context)& theContext)
Reverse normal direction for REVERSED faces.
Test case for issue CR25127
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.
Modifications:
1. class BOPAlgo_WireSplitter
1.1. Removed static method RecomputeAngles(...).
1.2. Minor corrections.
2. class BOPTools_AlgoTools
2.1 method GetFaceOff
For definition of an angles between faces the same step in 3D space has been used for all faces in the list.
To define that step new static function MinStep3D has been implemented.
Added test case bugs/modalg_5/bug24879
Deleted unnecessary TODOs in test case bugs/modalg_2/bug497_3
Range of changing of some analytic curves is computed by other methods. It allows computing face's boundaries with more precise.
Tolerance was increased to provide successful work of some algorithms.
Functions BRepOffsetAPI_MiddlePath::Build() and ApproxWithPCurves(...) (file IntTools_FaceFace.cxx) were changed according to new result of algorithm's work.
It is possibly for "outboundaried faces" (see bug#23675) to compute incorrect UV-Bounds, when first parameter is more than last. To avoid it, extended control of computed bounds was added.
Function for fail sameparameter fixing was added to HLRAppli_ReflectLines to avoid creation bad shapes after algorithm's work.
In file ShapeFix_ComposeShell.cxx only text formatting was changed.
Some test cases are changed according to their new behavior.
Added test case bugs/moddata_3/bug23511
License statement text corrected; compiler warnings caused by Bison 2.41 disabled for MSVC; a few other compiler warnings on 54-bit Windows eliminated by appropriate type cast
Wrong license statements corrected in several files.
Copyright and license statements added in XSD and GLSL files.
Copyright year updated in some files.
Obsolete documentation files removed from DrawResources.
When warnings are enabled, compilers report lots of occurrences
of unused local variables, which makes it harder to find other
meaningful warnings.
This commit does not fix all unused local variables.
Fix new type conversion warning
Code cleaned to avoid MSVC compiler warnings on unused function arguments.
Several useless pieces of code are removed.
Changes in IntTools_EdgeFace.cxx, Blend_Walking_1.gxx, Bnd_BoundSortBox.cxx, ProjLib_ProjectedCurve.cxx are reverted (separated to specific issue for more in-depth analysis).
New features
class BOPAlgo_BuilderSolid
-method:
void BOPAlgo_BuilderSolid::SetSolid(const TopoDS_Solid& theSolid) has been added.
Purpose: Sets the source solid <theSolid>
class BOPAlgo_BuilderSolid
-method:
const TopoDS_Solid& BOPAlgo_BuilderSolid::Solid()const
has been added.
Purpose: Returns the source solid
Auxiliary classes
BOPAlgo_BuilderSolidFunctor
BOPAlgo_BuilderSolidCnt
have been added.
Purpose: The classes provide the interface and implementation of the parallel computations.
class BOPTools_AlgoTools
-method:
Standard_Boolean BOPTools_AlgoTools::IsOpenShell(const TopoDS_Shell& theShell) has been added.
Purpose: Returns true if the shell <theShell> is open
class BOPTools_AlgoTools
-method:
Standard_Boolean BOPTools_AlgoTools::IsInvertedSolid(const TopoDS_Solid& theSolid) has been added.
Purpose: Returns true if the solid <theSolid> is inverted
class BOPDS_DS
-protected method:
void BOPDS_DS::BuildBndBoxSolid(const Standard_Integer theIndex, Bnd_Box& theBoxS) has been added.
The method computes bouding box <theBoxS> for the solid with DS-index <theIndex>
Changes
class BOPDS_DS
- method:
void BOPDS_DS::Init()
The block to compute bouding box for the solids has been added.
class BOPAlgo_Builder
- method:
void BOPAlgo_Builder::FillIn3DParts
(BOPCol_DataMapOfShapeListOfShape& theInParts,
BOPCol_DataMapOfShapeShape& theDraftSolids,
const BOPCol_BaseAllocator& theAllocator)
The order of treatment of the unbalanced binary tree of overlapped bounding boxes has been changed
class BOPAlgo_Builder
- method:
void BOPAlgo_Builder::BuildSplitSolids
(BOPCol_DataMapOfShapeListOfShape& theInParts,
BOPCol_DataMapOfShapeShape& theDraftSolids,
const BOPCol_BaseAllocator& theAllocator)
The algorithm has been adapted to provide the parallel computations
Changes:
1. class BOPTools
- method:
void BOPTools_AlgoTools::MakeVertex(BOPCol_ListOfShape& aLV,
TopoDS_Vertex& aVnew)
The function fsqrt that calculates the square root of a real number
has been replaced by the standard sqrt.
2. class BOPAlgo_WireSplitter
- static function:
Standard_Real Angle2D (const TopoDS_Vertex& aV,
const TopoDS_Edge& anEdge,
const TopoDS_Face& myFace,
const GeomAdaptor_Surface& aGAS,
const Standard_Boolean aFlag)
The value parametric deltas for computations of 2D-angles
have been changed for Bezier, B-Spline 2D-curves.
Rebuild normal for the face if the method FindPointInFace fails (unable to find point in the face in bi-normal direction).
Adding test case for issue CR24154
I. New features:
no New features.
II. Changes:
II.1. class : BOPAlgo_Builder
- method:
void BOPAlgo_Builder::FillIn3DParts(BOPCol_DataMapOfShapeListOfShape& ,
BOPCol_DataMapOfShapeShape& ,
const BOPCol_BaseAllocator& )
The algorithm of finding 3D-parts for solids has ben changed.
To improve the performance the unbalanced binary tree is used.
II.2. class : BOPTools_AlgoTools
- method:
Standard_Boolean BOPTools_AlgoTools::GetFaceOff
(const TopoDS_Edge&,
const TopoDS_Face&
BOPTools_ListOfCoupleOfShape& ,
TopoDS_Face&
Handle(BOPInt_Context& )
The data treatment for tangent cases has been changed
III. Modified entities:
packages:
BOPAlgo
BOPTools
Small corrections of test cases
Removing pPotentially uninitialized local variable
Got rid of most of warnings C4701: Potentially uninitialized local variable
Removed redundant variable definitions.
Refactored a part of AppParCurves_ResolConstraint CTOR.
Replaced 0. to Precision::Confusion for tolerance vars;
Changed values for min and max parameter vars;
Got rid of redundant variables' initialization.
Fix first subset of warnings (about 100)
- while(1) and similar constructs replaced by for(;;)
- some uninitialized variables corrected
Got rid of Warning C4189: local variable is initialised but not referenced
Corrected mistakes after getting rid of C4189 compiler warning
Corrected some mistakes that led to compiling errors
Fixed test case because of improvement message - removed unnecessary TODO.
Small fix: tabs have been replaced with whitespaces.
Added TODO for Windows platform
removed last TODO
Corrected mistakes, returned some #ifdef DEB code, fixed test case .
Restoring a few places which have been modified too much
Small grammar fix
Deleted unnecessary puts in bugs/end
Modifications:
Changed the way of finding the angle between the faces.
New static functions:
GetFaceDir - builds direction for the face;
FindPointInFace - finds the point in the face in bi normal direction.
New square values have been set in the following test cases:
boolean bopcommon_complex J1
bugs modalg_2 bug202085_6
bug202085_7
bug202085_8
bug202085_9
bug202085_10.
"TODO" marks have been removed from these cases.
Added test cases bugs modalg_5 bug23853
Modifications:
- BRepOffset/BRepOffset_Tool.cxx, Features and Fillets algorithms have been ported on new BO algorithm.
- Old BO algorithm, that was implemented in BOP, BooleanOperations and BOPTools packages, has - been deleted.
- Porting SALOME algorithms to new BOP algorithm.
- Fixing regressions. Rebased on current master.
- Corrections in post treatment of section edges;
- Corrections in the accordance with the bug 0023293;
- Small corrections in the bopcheck and bopargcheck commands.
- NCollection maps have been replaced by NCollection indexed maps to guarantee the constant order of sub-shapes in the result of boolean operation.
- Test case feat featprism M9 has been fixed.
- Test cases chl 902 E3 H3 have been fixed (corrections in the treatment of section edges).
- Test cases caf driver B6 B7, caf named_shape F6 F7 have been modified according to the new order of sub-shapes in the result of boolean operation.
- Test cases blend buildevol G1, blend simple K4, bcommon_complex C7, feat featprism L6 have been modified as they are improvements.
- Test case boolean bsection A3 has been modified according to the new syntax of the bsection command.
- Test cases boolean bfuse_complex J1 P9 have been fixed (the function IsInternalFace has been modified to use the function GetFaceOff);
- Test case chl 902 H3 has been fixed (changes in the treatment of section edges);
- Test case boolean bsection D8 has been modified (removed TODO statement);
- Test case boolean bsection A3 has been modified (as the shapes have been changed).
- Added correction of the tolerance values of the shapes according to the bug 0023610.
- test cases:
boolean bcommon_complex C3,
boolean bcut_complex F2 O7,
boolean bfuse_complex C4 C5 E4,
boolean bsection B6 M8 M9 N4 N5 N7,
boolean bfuse_simple ZP6,
draft angle G8,
feat featprism S2
have been marked as invalid according to the bug 0022033;
- New value of result has been set in the test cases :
boolean bopsection D4
boolean bsection R8
as it is correct.
- test case bugs modalg bug23472 has been rewritten according to the new format of bsection command.
- The classes IntTools_Context and IntTools_ShrunkRange have been replaced by BOPInt_Context and BOPInt_ShrunkRange accordingly.
- The new class BRepAlgoAPI_Check has been added according to the bug 0023648.
- Some regressions have been fixed.
- The following test cases have been marked as invalid or rewritten
bugs modalg buc60462_2, 60531_2, 60776_1, bug472_1, bug472_2, bug472_3, bug497_3, bug62
bugs moddata bug26_1, bug26_2,
- The test case bugs modalg buc60533 has been rewritten to use the general fuse algorithm for building the result.
- The new value of the result has been set in the test case bugs modalg 60776_2.
- The following test cases have been rewritten according to the new format of the bsection command
bugs modlag fra62369, pro18892
bugs moddata bug75_1, bug75_2
- Corrected BRepAlgoAPI_Check.
- Removed package BOPTColStd.
- Rewritten test cases caf named_shape F8 F9.
- Removed unnecessary comments.
- Corrected the following test scripts :
boolean bcut_complex(012) O3 O4 O5 O6 O8
boolean bfuse_complex(013) O5 O6 P8
boolean bopcommon_complex(021) D8 D9
boolean bopfuse_complex(022) H1 J6
boolean boptuc_complex(024) D5
bugs modalg(006) bug399 bug497_1
feat featprism(003) C4
- Corrections in the treatment of section edges (putting paves on the curves);
- Corrections in BRepOffset_Tool;
- The following test cases have been rewritten according to the new format of the bsection command
bugs modalg bug6502, bug6554, bug6766_1, bug6766_3
- The new value of the result has been set in the following test cases
bugs modalg bug1255, bug1255_1
- The following test cases have been marked as invalid or rewritten
bugs modalg bug472_2, bug472_3, bug825_2
bugs moddata bug10603, bug152_1, bug152_2, bug3721_1, bug3721_2, bug3721_3
- The following test cases have been rewritten as improvements
bugs modalg bug693, bug693_1, bug817_1
bugs moddata bug3721_5, bug3721_6, bug6862_3, bug6862_4, bug6862_6
- Test cases bugs modlag buc60787_1, buc60787_2, buc60788_2, buc60788_3 have been corrected.
- Fixed some SALOME regressions (modifications in the treatment of the section edges);
- Fixed test case bugs modalg bug23100;
- Test cases bugs modalg bug21754, bug22990 have been corrected according to the new format of the bsection command.
- Test cases bugs modalg bug13116_*, bug23711 have been fixed;
- Test cases bugs modalg bug697_2, bug697_4, bug697_7, bug697_8 have been marked as invalid according to the issue 0022033;
- Test cases bugs modalg bug22109_2, bug22109_3 have been corrected;
- Test case bugs modalg bug18186 has been corrected as it is improvement;
- Test case bugs modalg bug22802 has been deleted as there is no package BOPTColStd.