I. New features:
No new features.
II. Changes:
II.1. class BOPAlgo_ShellSplitter
- statc function:
void RefineShell(TopoDS_Shell& theShell);
has been addded.
The function provides splitting connexity block of faces when the block begins with
the face that is intended to be internal.
II.2. class BOPAlgo_ShellSplitter
- statc function:
Standard_Boolean IsClosedShell(const TopoDS_Shell& theShell);
has been modified to process empty shells.
II.3. class BOPAlgo_ShellSplitter
- method:
void BOPAlgo_ShellSplitter::SplitBlock(BOPTools_ConnexityBlock& aCB);
has been modified to process connexity blocks of faces when the block
begins with the face that is intended to be internal [ II.1 ].
III. Modified entities:
packages:
BOPAlgo
Test case for issue CR24861
Modifications:
class IntTools_EdgeEdge
1. method
Standard_Boolean IntTools_EdgeEdge::FindParameters(
const BRepAdaptor_Curve& theB
const Standard_Real aT1,
const Standard_Real aT2,
const Standard_Real theRes,
const Standard_Real thePTol,
const Bnd_Box& theCBox,
Standard_Real& aTB1,
Standard_Real& aTB2)
Added protection for large values of parameters of the edges.
2. methods
static Standard_Boolean BndCommon(const Bnd_Box& theB1,
const Bnd_Box& theB2,
Bnd_Box& theBOut)
and
IntTools_EdgeEdge::FindSolutions()
have been removed as redundant.
Test case for issue CR24823
class IntTools_FaceFace
- statc function:
void CorrectSurfaceBoundaries(const TopoDS_Face& theFace,
const Standard_Real theTolerance,
Standard_Real& theumin,
Standard_Real& theumax,
Standard_Real& thevmin,
Standard_Real& thevmax)
The faces based on cylidrical surface has been added to the list of candidates to extend the boundaries
Test case for issue CR24851
On attached shape command "bfillds -s" hangs in Test Harness on the long time. In debug mode exception is raised.
Vectors are normalized before calculation of an angle.
Added test case bugs/modalg_5/bug24809
class BOPAlgo_ArgumentAnalyzer
- method:
void BOPAlgo_ArgumentAnalyzer::TestSelfInterferences()
The new shapes has been excluded from the treatment
void BOPAlgo_CheckerSI::PostTreat()
The new shapes has been excluded from the treatment
Standard_Integer bopcheck
(Draw_Interpretor& di, Standard_Integer n, const char** a )
The new shapes has been excluded from the treatment.
The interferences of the type */Solid has been included in the treatment.
Test case for issue CR24764
Added new static method PointBoxDistance() to compute distance between point and bounding box.
Removed method IntTools_EdgeEdge::FindRoughRanges().
Test cases for issue CR24751
Performance improvements in IntTools_EdgeEdge algorithm:
1. Added check for common box between edges: if common box between edges is thin,
find exact solutions at once, without looking for rough ranges first;
2. Improved methods IntTools_EdgeEdge::FindBestSolution() and
IntTools_EdgeEdge::CheckCoincidence(...) by using method SplitRangeOnSegments
with resolution of the curve as a criteria for size of the ranges.
Test cases for issue CR24696
Edge/Edge Interferences
Changes:
1. class BOPAlgo_PaveFiller
- method:
void BOPAlgo_PaveFiller::PerformEE()
the chages provides the parallel computations of
Edge/Edge interferences.
- auxiliary classes:
BOPAlgo_EdgeEdge
BOPAlgo_EdgeEdgeFunctor
BOPAlgo_EdgeEdgeCnt
have been added.
The classes are auxiliary classes to provide the parallel computations
of Edge/Edge interferences.
2. class BOPTest
-method:
void BOPTest::PartitionCommands(Draw_Interpretor& theCommands)
- static function:
Standard_Integer bfillds(Draw_Interpretor& di,
Standard_Integer n,
const char** a)
The syntax of the command "bfillds" has been changed.
> bfillds [-s -t]
options:
-s - launch the algorithm in sequential mode
-t - display CPU time
Test case for issue CR24639
The map for collecting pave blocks of two faces has been replaced with indexed map
to ensure the constant order of pave blocks when checking section curves for existents.
Test case for issue CR24628
Main changes are in "IntWalk_IWalking::TestDeflection(...)" function (IntWalk_IWalking_5.gxx).
Some test cases were corrected according to their new behavior.
void BOPAlgo_CheckerSI::PrepareCopy()
has been added.
Purpose:
- provides the copy of the argument
- provides links between the copy and the original
- protected method:
void BOPAlgo_CheckerSI::PostTreatCopy()
has been added.
Purpose: provides post treat actions wit the copy.
void BOPAlgo_PaveFiller::Perform()
The try/catch mechanism is used inside the method
Standard_Integer bopcheck
(Draw_Interpretor& di, Standard_Integer n, const char** a )
The redundant copying is removed.
Standard_Integer bopargcheck
(Draw_Interpretor& di, Standard_Integer n, const char** a )
The redundant copying is removed.
packages:
BOPAlgo
BOPTest
Test cases for issue CR24620
Small correction of text case for issue CR24620
Changes: class BOPDS_DS
- method:
void BOPDS_DS::AloneVertices(const Standard_Integer theI,
BOPCol_ListOfInteger& theLI)const
The condition for DS-index of a vertex has been corrected
class BOPTools_AlgoTools3D
- static function:
Standard_Boolean HasGeometry(const TopoDS_Shape& aS)
The returnig value has been corrected for shapes of vertex type
Modified entities:
packages:
BOPDS
BOPTools
Test cases for issue CR24618
PCurve is extended to surface boundary forcefully.
It is made by finding some additional points (if it is possibly).
"bopcurves" DRAW-command returns number of found 3D-curves and (as an option) 2D-curve (see help for more detail information).
Test cases for issue CR24585
Changes:
class BOPDS_DS
- method:
void BOPDS_DS::Init()
- method:
void BOPDS_DS::FaceInfoIn
(const Standard_Integer theF,
BOPDS_IndexedMapOfPaveBlock& theMPB,
BOPCol_MapOfInteger& theMI)
Add the information about internal vertices on faces to the Data Structure
Test case for issue CR24597
1. Checking, if intersection curve is collapsed, is added. (file GeomInt_LineConstructor.cxx)
2. Earlier, intersection line was considered as valid if only mid-point of every interval of this line is into two intersected surfaces (with given tolerance). That's no good because after inserting of new points, old points, which is considered as valid only because they are into beginning or into end of interval (therefore, they was not checked), moved to mid of interval and became invalid. Therefore, checking for first and last points was added. (file GeomInt_LineConstructor.cxx)
3. Intersection line became valid (see bug description) after adding of new additional points into it (file IntPatch_PrmPrmIntersection.cxx). Methods for finding and adding of new points were added. (file IntWalk_PWalking_1.gxx)
Some test cases were changed.
Test cases for issue CR24472
Main problem:
Algorithm of locale extrema, which is called by "sameparameter" command, cannot find extrema because extremal point is far from initial point. Therefore, reparametrization of edge's curve (for same-parameter) cannot be made properly.
Solve:
Using of global extrema (see Approx_SameParameter.cxx).
As the given edge contains two 2d-curves and the second from them is problem, for select needed curve, an interface of "mk2dcurve" DRAW-command is changed. Now there can be used an index of curve (by default, index = 1, as earlier), see help for more detail information.
Test "heal advanced Z3":
Now checkshape finds only two invalid subshapes. Earlier, it found four subshapes. I think it is not regression. Therefore, test case was changed.
Tolerance reducing.
test
The intersection between Cone and one of the following surfaces: Cylinder, Sphere, Cone and Torus
is treated as analytical when the axes of the surfaces are collinear.
Test case for issue CR24505
Added test case bugs/modalg_5/bug24204
Modified following test cases:
bugs modalg_3 bug605 - case with bad input data, command "settolerance w1 1.e-7" was added;
bugs modalg_4 bug629 - wrong case, now the algorithm can not build pipes on such profiles, test case was removed;
bugs modalg_4 bug13595_1, bug13595_1 - number of subshapes was has changed;
bugs modalg_5 bug23706_2 - square of resulting face was changed;
bugs modalg_5 bug23870_1, bug23870_2, bug23870_3, bug23870_4, bug23870_5 - the number of subshapes was changed.