Poles bounding box for curve added for bezier and bspline curves.
Method Poles() for Bezier curve added.
Test case for issue CR26560
Function to compute subshape max tolerance has been added.
Fixed bounding box expanding at Face/Face step of boolean operation.
Test cases are updated to the new behavior.
Changed the rules for the types of the arguments for different operations:
1. FUSE: All arguments and tools should have the same dimension;
2. CUT: The MAXIMAL dimension of the ARGUMENTS should be less
or equal to the MINIMAL dimension of the TOOLS;
3. CUT21: The MINIMAL dimension of ARGUMENTS should be grater
or equal to the MAXIMAL dimension of the TOOLS;
4. COMMON: The arguments and tools could have any dimensions.
For the arguments of collection type (WIRE, SHELL, COMPSOLID)
the type will be passed into the result of the operation.
The documentation should be updated according to new behavior.
Documentation has been updated.
Implemented suggestions by MSV and some grammar changes.
Test cases for issue CR26565
Correction of test cases for issue CR26565
Correction of test cases for issue CR26565
Method for preanalysis of input data added (CheckInputData).
Now it is possible to work with Error() function, which return error code.
Extended output support for all offset commands added.
Test-cases for issue #26556
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 bIsIN)
The treatment of circles has been chenged to prevent
the loss of accuracy due to small differences in large values.
Small correction of test case for issue CR26582
Test case for issue CR26582
I ComputePurgedWLine() function:
Excess points in walking line are deleted when:
1) Distance between neighboring points too small.
2) Points lie in one pipe without big jump on chord length.
III
Fixed problem with extremaPC with too close knot distribution to [minParam, maxParam] borders.
IV ApproxInt_Approx.gxx
New division criteria in intersection approximator.
III Test case
Test cases update to the new behavior.
Test case for CR21564
Correction of test cases for issue CR21564
Upgrade method of computing vertex tolerance.
Update function, which used the old method.
Test case for issue CR26241
Delete obsolete variables.
Small correction of test cases for issue CR26241
1. Methods IntPolyh_MaillageAffinage::GetMinDeflection() and IntPolyh_MaillageAffinage::GetMaxDeflection() have been created (see cdl-file for more detail information).
2. Extended check, if starting point of WLine is a tangent point, has been implemented in IntWalk_PWalking::Perform(...) method.
Test cases for issue CR26151
In method Approx_SameParameter::Build() for case when 2D and 3D curves is not same parameter calculation of maximal deviation is modified by following way :
Projection is considered as done only if parameter projected point falls within the current interval of parameters.
In the Approx_SameParameter considering tolerance after static method ProjectPointOnCurve was added.
In BRepAlgoAPI_Sewing catch of exception was added and computation of tolerance of edge if same parameter was changed in according to check in BRepCheck_Analyzer
In method Approx_SameParameter::Build() for case when 2D and 3D curves is not same parameter calculation of maximal deviation is modified by following way :
Modification in order to avoid warning
Test case for issue CR24357
1. B-spline cache was moved into separated classes: BSplCLib_Cache for 2D and 3D curves and BSplSLib_Cache for surfaces.
2. The cache is used now in corresponding adaptor classes (Geom2dAdaptor_Curve, GeomAdaptor_Curve and GeomAdaptor_Surface) when the curve or surface is a B-spline.
3. Algorithms were changed to use adaptors for B-spline calculations instead of curves or surfaces.
4. Precised calculation of derivatives of surface of revolution is implemented for the points of surface placed on the axis of revolution (Geom_SurfaceOfRevolution.cxx)
5. Small modifications are made to adjust algorithms to new behavior of B-spline calculation.
6. Test cases were modified according to the modern behavior.
7. Changes in BOPAlgo_WireSplitter, BOPTools_AlgoTools, BRepLib_CheckCurveOnSurface and ShapeAnalysis_Wire to use adaptors instead of geometric entities
8. Allow Geom2dAdaptor and GeomAdaptor in case of offset curve to use corresponding adaptor for basis curve
Modification of test-cases according to the new behavior.
All uses of "MDTV-Standard" and "MDTV-Design" in tests changed to "BinOcaf", and "MDTV-XCAF" changed to "BinXCAF".
Formats changed: .std to .cbf, .dxc to .dbf.
Test groups renamed accordingly:
xcaf: brep_to_dxc -> brep_to_xbf, igs_to_dxc -> igs_to_xbf, stp_to_dxc -> stp_to_xbf, dxc -> xbf/A1, dxc_add_CL -> xbf_add_CL
xml: ocaf_std -> ocaf_cbf, xcaf_dxc -> xcaf_xbf
Test for sewing command were updated to check reference information.
Commands for testing were moved to the file src/DrawResources/CheckCommands.tcl
Documentation overview was updated.
Add one more pre-defined Z-layer Graphic3d_ZLayerId_BotOSD.
Define new Transformation Persistence flags Graphic3d_TMF_2d and Graphic3d_TMF_2d_IsTopDown
for displaying objects in screen coordinates.
Anchor point defines angle of the screen to display the object in similar way as for Graphic3d_TMF_TriedronPers.
Extend Draw Harness command vdisplay with new options:
-overlay as alias for -toposd.
-underlay and -botosd.
-noselect to prevent automatic selection activation.
-dispMode and -highMode to define displaying and highlighting modes.
-2d, -2dtopdown and -3d to manage displaying in screen coordinates.
-trsfPers and -trsfPersPos for Transformation Persistence options.
Drop command vsettransmode, replaced by vdisplay.
Correction of test-case bugs vis bug641
Redesign of selection mechanism:
- implemented 3-level BVH tree for selection;
- selection now calculates in 3D space;
- intersection tests were moved to SelectMgr_BaseFrustum descendants;
- removed .cdl files in Select3D and .cdl related to selection in MeshVS;
- SelectMgr_ViewerSelectors are now shared between local and global contexts;
- transformations of sensitive entities are now stored in SelectMgr_SelectableObject only. Sensitive entities are independent from transformations, it is applied to SelectMgr_SelectingVolumeManager instance only;
- connected and multiple connected interactive objects are now represented by their child objects only for SelectMgr_SelectionManager;
- if interactive object has child objects, they will be stored as separate objects in SelectMgr_SelectionManager now.
- test cases bugs/vis/bug24623_1, bug24623_2, bug24623_3, bug24623_4 to test performance and memory issues.
bugs/modalg_4/bug8842_7 - test stable OK (removed TODOs).
bugs/modalg_2/bug453_2 - added ?TODO according to unstable behavior (#25918)
bugs/moddata_1/bug22759 - updated reference data
bugs/vis/bug21091_4 bug21091_5 bug21091_6 bug21091_9 - updated reference data
sewing/tol_100/K1 - added ?TODO according to unstable behavior (test will be removed in #25471)
Unstable test cases were reviewed
Modified test cases using checktrend command
Modified test cases for Linux platform
Modified test cases for Debug mode
Updated test-cases from branch CR24255_3
0024255: Regressions in test cases on OCCT vc9 win64 Release
Small refactoring.
Fix for CASE bugs modalg_5 bug25298_09: FAILED (error)
Test-cases correction (bugs modalg_5 bugs25804_1, bug25704_2)
Check whether p-curve being projected can be approximated by straight line is made before full-scale projection, to improve performance.
If straight, pcurve is created as Line only if this will lead to the same range parameterization as 3d curve, otherwise BSpline of degree 1 is created.
Re-approximation of line pcurves by bsplines removed from ShapeFix_Edge.
Test case updating to new behavior.
Added "static" keyword to the fixPeriodictyTroubles() function.
Update of test-cases according new behavior
Changes:
class BRepCheck_Solid
method:
void BRepCheck_Solid::Minimum()
has been changed. The treatment of shells with INTERNAL faces has been added.
Added test case bugs/modalg_5/bug25735
Added TODOs in test cases according to issue 25735.
1. The tool of computing the max distance between 3D curve and its 2d representation on the face
has been moved from static methods in BOPTools_AlgoTools class to BRepLib_CheckCurveOnSurface class.
2. The tools has been applied to 2d curves built during Boolean Operation
and to some intersection curves.
3. The functions
Standard_Boolean BOPTools_AlgoTools::ComputeTolerance
(const TopoDS_Face& theFace,
const TopoDS_Edge& theEdge,
Standard_Real& theMaxDist,
Standard_Real& theMaxPar)
and
Standard_Boolean IntTools_Tools::ComputeTolerance
(const Handle(Geom_Curve)& theCurve3D,
const Handle(Geom2d_Curve)& theCurve2D,
const Handle(Geom_Surface)& theSurf,
const Standard_Real theFirst,
const Standard_Real theLast,
Standard_Real& theMaxDist,
Standard_Real& theMaxPar)
have been developed for easy access to BRepLib_CheckCurveOnSurface functionality.
class IntTools_FaceFace
method void IntTools_FaceFace::ComputeTolReached3d()
Case for Plane/BSpline intersection added for treatment.
Test case for issue CR25597
Fix for regression boolean bsection N7.
class BOPAlgo_PaveFiller
method
void BOPAlgo_PaveFiller::UpdateFaceInfo
(BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDME,
const BOPCol_DataMapOfIntegerInteger& theDMV)
Updating Face Info information with new vertices created in PostTreatFF.
Correction boolean/bsection/N2
Updated test cases.
Usage of QAGetPixelColor were checked and corrected.
Using simple comparison instead of regexp.
Improved usage of command vreadpixel for standard colors.
Command QAGetPixelColor was dropped from TKQADraw.
Procedures "checkcolor" and auxiliary "checkpoint" were moved to DrawResources/TestCommands.tcl
Some test cases using "checkcolor" for picking line color were simplified.
Procedures checkcolor and checkpoint were changed to handle situation when pixel is out of view.
Removed unnecessary use of command "vaspects -setwidth" in tests.
Revert -setwidth change in test bugs/vis/bug23525
Changes:
class BOPAlgo_PaveFiller
method:
void BOPAlgo_PaveFiller::PerformEF()
The index of the face has been added in post-treatment map
Test cases for issue CR25450
Correction of test case for issue CR25450
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
Existing method of Cylinder-Cylinder intersection computing is based on finding the analytic line (as a function of one argument) and converting one into the walking-line with set of equidistant (along the line parameter) points.
The main advantage of applied method is using adaptively computed step. Necessary step is computed into every point of the obtained walking-line. At that we receive final walking-line directly (without preliminary analytic line) and we determine moments more precisely, when it should be split (see IntPatch_ImpImpIntersection_4.gxx).
The main disadvantages is bad working this method for non-trimmed cylinders (with infinite bounds), because step value is depend on the boundaries values.
More over, new method always returns walking-line, while intersection result can be an analytic curve (lines, circle, ellipse). That is NO good. Therefore, analytic curve is computed by existing method.
In conclusion, in spite of covering almost all more often meeting cases, new method has limited application. Then we should use the existing old method.
Additionally, method MinMax() is added (see Standard_Real.hxx file). It uses into new algorithm.
Some test cases is changed according to their new behavior.
Test case for issue CR24915 is added.
Into GeometryTest_APICommands.cxx only tabulations were chaged.
"Extending" of isolines (see Geom2dHatch_Hatcher.cxx).
Small correction of test case for issue CR24915.
Warning was fixed.
Remarks were applied.
- class VMap in Draw was removed
- NCollection_DataMap is used to store objects
- name of object is used to associate Tcl variable with the object
- creation and changing of objects are correclty handled
Redundant casts were removed.
Initial value is restored if variable is protected.
Tests for bug #24863 were added.
Some test cases and tcl command "save" were improved.
Useless using of upvar was removed.
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
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
From now on, the panning behavior of V3d_View completely corresponds to equal operations with camera. There is no more confusing "Center" property and "ProjectionShift" which were used to introduce composite panning, while respecting view referential points: At, Eye unchanged. The V3d_View::FitAll approach has been rewritten to do "fit all" geometrically, operating with frustum, to make it working for both orthographic and perspective projections.
1) Getting rid of ProjectionShift and Center property:
- Removed ProjectionShift property of Graphic3d_Camera.
- Removed confusing Center property of V3d_View (related to projection shift).
- Removed redundant code related to the Center property of V3d_View.
- Removed WindowLimit method of Graphic3d_Camera - no more used.
2) Improvements of fit all and selector:
- Improved FitAll operation of V3d_View and reused it in NIS_View - the perspective projection is now handled correctly.
- Revised code of Select3D_Projector class - can be defined with any given projection and model-view matrices.
- Modified StdSelect_ViewerSelector3d and ensured that panning, zooming and going into the view do not lead to unwanted re-projection of sensitives. The handling of perspective selection is revised.
- Take into account graphical boundaries of infinite structure on ZFitAll.
3) Improvements of camera:
- Introduced new z range scale parameter for V3d_View::AutoZFit. See, V3d_View::AutoZFitMode.
- Allow negative ZNear, ZFar for orthographic camera to avoid clipping of viewed model.
- Moved camera ZNear, ZFar validity checks to V3d_View level.
- Use more meaningful Standard_ShortReal relative precision for ZNear, ZFar ranges computed by ZFitAll.
- Use Standard_Real type for camera projection and orientation matrices.
- Extended camera to generate both Standard_Real and Standard_ShortReal transformation matrices using the same matrix evaluation methods and converted input parameters.
Correcting picking tests for perspective view
Modify v3d face test cases for 1px changes in face picking
Modified test cases for new arguments of vviewparams DRAWEXE command
Fixed creation of extrema curve in debug mode.
Deleted space between ";" and "V" in debug output to make "llength" DRAW funcion work correctly in debug mode.
Deleted TODOs in tests/bugs/modalg_5/bug24327
Deleted TODOs in test cases with improvement in extrema output. Increased cpulimit in de, boolean and perf.
v0.0
I. New features:
no new features
II. Changes:
II.1. class BRepClass3d
- method:
Standard_Integer BRepClass3d_SolidExplorer::OtherSegment(const gp_Pnt& P,
gp_Lin& L, Standard_Real& _Par)
The condition to prevent infinite loop has been added.
III. Modified entities:
packages:
BRepClass3d
Added test case bugs/modalg_5/bug24242
The phase 1 : Parallelization Building Faces.
Part 1.2. Building Same Domain Faces
Combined by pkv
Small correction of test case for issue CR24157_3
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