1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-05 18:16:23 +03:00

1586 Commits

Author SHA1 Message Date
jgv
1fae7cdaf1 0028784: [HLR] Crash while getting hidden lines for a compound
Method HLRBRep_PolyHLRToShape::InternalCompound is modified: avoid creation an edge with null length.

Add testing Draw command.
2017-06-09 12:58:49 +03:00
nbv
b7a71e36aa 0028795: Boolean operations corrupt the p-curve of the source planar face if "non-destructive" option is switched off
Now, the range of BRep_CurveRepresentation of the edge is updated if at least one of its boundary is not infinite (earlier, it was updated if all two boundaries are not infinite only).
2017-06-02 11:47:42 +03:00
apv
3b337f77ed 0023378: BRepAlgoAPI_Cut returns wrong result
Adding test cases only
2017-06-01 13:55:29 +03:00
mpv
ec2039e9a7 0028714: XmlMFunction_ScopeDriver fail to read and write function label including 0 tag in label path.
Reproduced on TDF_Reference attribute that refers to label with zero-tags entry. Make checking of saved/retrieved tags in XML format pass zero-tags as correct.
2017-06-01 13:55:26 +03:00
bugmaster
4f0ba168fb 0028773: BRepAlgoAPI_Cut invalid result
Adding test case only
2017-06-01 13:55:24 +03:00
ifv
f6b08ecf71 0028346: Function ProjectOnSegments of ShapeAnalysis_Curve returns only single solution leading to projection result far from optimal
Subdivision of curve parametric interval based on deflection criteria is added for curve type OtherCurve in
Extrema_GExtPC.gxx. Algorithm of subdivision is implemented in Extrema_Curve(2d)Tool.cxx

New Draw command projpcurve for projection of point on CurveOnSurface is added in SWDRAW_ShapeAnalysis.cxx
projpcurve is modified to reflect "start parameter" in usage message and Draw help.
2017-06-01 13:55:22 +03:00
nbv
75b9688a9f 0023177: Intersection of plane and torus misses a result and never produces analytical result
Creation of the test case.
2017-06-01 13:55:20 +03:00
msv
3f5aa017e7 0028782: Shape sewing behavior not consistent for the same CAD file
Get rid of iterations on maps with shape key by replacing simple maps with indexed maps. So iteration is done on integer key.

The map containers have been updated to insert into them type definitions of key and value.

The new methods RemoveKey() and RemoveFromIndex() have been added to indexed [data] map to be able to remove an arbitrary key from the map.

All the code in OCCT has been updated where RemoveLast() and Substitute() methods were used to remove a key from indexed [data] map.
2017-06-01 13:55:15 +03:00
emv
edfa30deef 0028259: Method MakeBlocksCnx is duplicated in two different places in BOPAlgo
The methods BOPAlgo_Tools::MakeBlocksCnx(), BOPAlgo_Tools::MakeBlocks() and static method MakeBlocksCnx in BOPAlgo_Builder_2.cxx have been replaced with the new template method BOPAlgo_Tools::MakeBlocks(). The blocks of connected elements are now stored into the list of list instead of data map.
All methods BOPAlgo_Tools::FillMap() have been replaced with the new template method BOPAlgo_Tools::FillMap().

Making the Pave Block with the smallest index of original edge to be the first in the Common Block (i.e. the representing Pave Block).

The following improvements have been made in Boolean Operations algorithm to avoid regressions:
- When updating the existing common block update its pave blocks in a way that the parameters of the paves should be valid for the original edge (bugs/modalg_5/bug24809);
- When trying to reduce the tolerance of the section edge check the tolerance of all Face/Face interferences that created this edge (boolean/volumemaker/C4,D2);
- Avoid producing the different Pave Blocks for the same section edge (boolean/volumemaker/D6);

Adjustment of the test cases.
2017-06-01 10:20:25 +03:00
ifv
4560c05480 0028771: BRepOffset_MakeOffset incorrect result
Correction of tolerance of new edges, which belongs planar faces is improved
Test case added.
2017-06-01 10:10:46 +03:00
mpv
354c94b724 0025536: XmlMDataXtd_GeometryDriver doesn't support TDataXtd_SPLINE, TDataXtd_PLANE and TDataXtd_CYLINDER.
Added support of the missed geometrical types into the XML driver.
2017-06-01 10:05:04 +03:00
mpv
a38db39de6 0025537: XmlMPrsStd_PositionDriver::Paste runtime check crash.
Increased a size of buffer in array of 'char' to fit the largest possible conversion from 'double' to %.17g string.
2017-05-26 14:51:23 +03:00
vro
5ecc46c08e 0027667: OCAF binary persistence hangs on reading truncated CBF file
A check on "end of file" is added to the reader.
2017-05-26 14:49:01 +03:00
nbv
261b7d9e8a 0028222: Intersection of two cylinders fails
1. The reason of exception has been eliminated.

2. Algorithm in IntPatch_WLineTool::JoinWLines(...) method has been modified in order to forbid join curves in the point where more than two intersection lines meet. More over, joining is forbidden if local curvature in the connection point is too big (see function CheckArgumentsToJoin(...) in the file IntPatch_WLineTool.cxx).

3. Interface of IntPatch_WLineTool::JoinWLines(...) method has been modified in order to reduce number of arguments.

4. Small corrections in IsSeamOrBound(...) static function has been made. Namely, check has been added if two boundaries are in the same period region but are too far each to other (see IntPatch_WLineTool.cxx, IsSeamOrBound(...) function, line # 532).

5. "Reversed" flag has been made local. Now, it is pure local characteristic: the algorithm decides itself, shall we reverse the argument order. This correction makes the algorithm more commutative (see issue #25404). However, IntPatch_WLineTool::JoinWLines(...) method can return non-commutative result.

6. Algorithm of searching small intersection curves has been improved.

7. New methods have been added in Bnd_Range class.

Some test cases have been adjusted according to their new behavior.

1. tests\bugs\modalg_6\bug26310_3
   tests\bugs\modalg_6\bug26310_4
   tests\bugs\moddata_2\bug235
   tests\perf\modalg\bug26310_1
   tests\bugs\modalg_5\bug24915

Logic of these cases has been changed. Mover over, additional check has been added in "bug26310_1" test case. Therefore, its performance will be slower than on the current MASTER.

2. tests\bugs\modalg_5\bug25292*

Scripts have been rewritten in order to make it more readable. Logic of these cases has not been changed.
2017-05-26 14:48:59 +03:00
szy
5a1271c8b4 0027970: Improvement of standard attributes usability - containers. 2017-05-26 14:48:53 +03:00
emv
b18a83d4a7 0028776: Extend the field BOPAlgo_Builder::myOrigins so that the shape could have multiple origins
Change the type of the field BOPAlgo_Builder::myOrigins so that the new shape could have multiple origins in case of overlapping.
2017-05-26 14:48:40 +03:00
nbv
c8425f03ff 0028718: Section result has a break 2017-05-25 11:48:27 +03:00
dbv
9e6cdbcad5 0028748: XCAFDoc_GraphNode does not restore child on Undo
Fixed calling Backup method. Now it called where data really changed.
2017-05-25 11:41:58 +03:00
ifv
8c745be5e0 0028692: Projection failed (projponf)
Tolerance criterion is improved:
P.SquareDistance(p1) < Tol -> P.SquareDistance(p1) < Tol*Tol
2017-05-25 11:37:04 +03:00
ifv
b493028765 0028637: [regression] Extrema curve - curve can not find correct solution between edge based on the line and BSpline edge
Adding condition for preventing decreasing Lipschitz constant if derivative are too small
Test case is created
2017-05-25 11:35:53 +03:00
nbv
ff3f03870b 0028724: Extrema between circle and plane cannot be found
The main reason of the regression is that the Extrema algorithm finds the truth extrema point but cannot adjust it to the range of given circle. It is connected with the fact that Geom(2d)Adaptor_Curve::IsPeriodic() method returns false for given circle because adaptor contains a piece of the circle which is not closed.

New algorithm of IsPeriodic() method will return the information about periodicity of the curve itself (independently of first and last parameter of adaptor).

The documentation about Geom(2d)_TrimmedCurve and Geom_RectangularTrimmedSurface has been updated in frame of the information about IsPeriodic-methods.
2017-05-18 16:56:42 +03:00
emv
1709b02450 0028745: Wrong results of Boolean operations on hemisphere solids
Test cases for the issue.
2017-05-18 16:49:10 +03:00
kgv
d2e6068829 0028646: Draw Harness, ViewerTest - rename vsetfilter command with vselfilter
TopAbs::ShapeTypeToString() is now used instead of duplicating TopAbs_ShapeEnum printing code.
vselmode now accepts shape type string for activating standard AIS_Shape selection modes.
2017-05-18 16:49:07 +03:00
akz
a71a71de09 0028738: Data Exchange, XCAFPrs_Style - add transparency property
Use Quantity_ColorRGBA as surface color to store a transparency in XCAFPrs_Style.
2017-05-18 12:17:44 +03:00
emv
6769ec6b34 0028683: Wrong result of CUT operation
Avoid creation of the small section edges in the Boolean Operations algorithm.
2017-05-05 12:11:23 +03:00
nbv
b608f6a564 0028677: Avoid change of wire orientation in BRepLib_MakeFace if the wire is open
Method BRepLib_MakeFace::CheckInside() is not called for open wire. So, if the input wire is open its orientation is not changed in the result face.
2017-05-05 11:27:53 +03:00
emv
752f9d7201 0028675: Invalid result of Boolean Cut operation when running with fuzzy value
Avoid small edges with empty list of PaveBlocks (removed edges) in the result (BOPAlgo_Builder::FillImagesEdges()).
2017-05-05 11:27:51 +03:00
vro
c2f5b8211b 0028691: Storage of Ocaf documents in XML file format in old document version 2017-05-05 11:27:49 +03:00
ifv
5be09a153b 0027981: BRepExtrema_DistShapeShape returns not null distance on interfered shapes
The reason of the bug is bad start points on surfaces, which are used by searching roots algorithm as start points for iteration process. Starting with these points algorithm for searching roots of set of equations cannot reach correct root. To find correct start points increasing number of sampling points is applied.
2017-05-05 11:27:38 +03:00
nds
bc001a4030 0027958: Visualization, AIS_Trihedron - add shaded presentation option
A new Shaded presentation flag configured through Datum aspect (NOT as usual Display Mode).
Creation of auxiliary Axis/Point/Plane presentations in Trihedron presentation is removed.
'vtrihedron' DRAW command to change parameters of trihedron is extended to cover whole functionality of AIS_Trihedron.

The following classes are redesignede:
AIS_Trihedron,
Prs3d_DatumAspect.

The followin enumermations are created to manage properties of trihedron:
Prs3d_DatumAttribute,
Prs3d/Prs3d_DatumAxes,
Prs3d_DatumMode
2017-04-28 12:48:54 +03:00
jgv
107f794fc9 0028661: BRepOffsetAPI_MakePipeShell throws an exception Standard_NoSuchObject: NCollection_DataMap::Find
1. Clearance of fields of class has been added to the method BRepFill_PipeShell::Prepare().
2. Calculation of error on surfaces has been corrected in the method GeomFill_Sweep::BuildKPart().
3. New Draw command "errorsweep" has been added to check the error reached on the surfaces built by BRepOffsetAPI_MakePipeShell algorithm.
2017-04-28 12:44:54 +03:00
imn
0af424c23c 0028601: ShapeFix_Shape increases tolerance of sub-shapes of a valid shape
- Avoid increase of edge/vertex tolerance if the distance between 3D curve and p-curve is within old tolerance.
2017-04-28 12:44:51 +03:00
kgv
f6d4c5cf8d 0028621: Visualization - AIS_ColoredShape::UnsetTransparency() is not implemented 2017-04-20 12:36:07 +03:00
emv
6fd4ffd9eb 0028474: Boolean operations - General Fuse operator breaks validity of resulting shape
1. Re-orienting the shell before making solid from it (MakeShell in BOPAlgo_ShellSplitter);

2. The implementation of the BOPTools_AlgoTools::IsSplitToReverse() method has been changed to
   make the usage of the Hatcher for looking for the point in the face default.

3. Test cases for the issue.
2017-04-20 12:35:45 +03:00
isn
b60e8432dd 0028456: BRepBuilderAPI_MakeFace modifies the input shape
1) BRepLib::UpdateTolerances(..) & BRepLib::SameParameter(..) functions now support non-mutable input feature. reshaper is used to store modified copies of subshapes of original (input) shape(s) as substitutions.
2) IsNewShape(..) method has been added to BRepTools_ReShape to check if the given shape has been recorded as a value
2017-04-14 13:04:05 +03:00
ika
973d410ea4 0028641: Data Exchange - Support alpha-channel of color
Use Quantity_ColorRGBA instead Quantity_Color in XCAFDoc_Color attribute
Add methods to color tool for processing RGBA
Update Color driver
Update Draw commands
2017-04-14 13:03:27 +03:00
jgv
1406e955b3 0028626: Boolean CUT operation fails due to exception while intersecting two conical faces
1. Modification in static function IntersectionWithAnArc of IntPatch_ImpImpIntersection :
  small offset <du> was hardcoded as 1.e-9, now it is adapted to parametric step.

2. Removal of duplicated points of IntPatch_WLine is corrected.
2017-04-12 17:54:45 +03:00
emv
5652dc6272 0028591: BOP Cut creates wrong result
The Face/Face intersection procedure has been changed in Boolean Operations algorithm.
Previously, the intersection tolerance for all section curves between pair of faces has been calculated
as the maximal tolerance among all curves. Now, each curve has its own valid tolerance calculated
as the maximal deviation of the 3D curve from its 2D curves on faces or surfaces in case there are no 2D curves.

Thus, such methods of IntTools_FaceFace algorithm as TolReached3d(), TolReal() and TolReached2d() have been removed.
Now the tolerances of the curve can be obtained from the curve itself (IntTools_Curve - result of intersection):
- IntTools_Curve::Tolerance() - returns the valid tolerance for the curve;
- IntTools_Curve::TangentialTolerance() - returns the tangential tolerance, which depends on the size of the common
  between faces. Currently, this tolerance is computed for Plane/Plane cases only. For other case, the value
  of the tangential tolerance is the maximal tolerance of faces.

2D intersection tolerance (IntTools_FaceFace::TolReached2d()) has been completely removed from the algorithm as unused.
2017-04-12 17:53:03 +03:00
imn
353e6fa0cf 0028594: Geom2dAPI_Interpolate generated curve is not the same as proe
Boolean flag "Scale" has been added for methods "Load" in "Geom2dAPI_Interpolate" class
2017-04-12 17:52:43 +03:00
emv
2d0621bf94 0028579: Get rid of the obsolete QANewModTopOpe_* and QANewBRepNaming_* algorithms
1. The packages *QANewModTopOpe*, *QANewBRepNaming* and *QANewDBRepNaming* have been removed as containing obsolete features.
   The corresponding QA commands (such as OCC252, OCC307 and OCC294) and test cases have also been removed.

2. The QA command buc60609 has been removed. The corresponding test case bugs/moddata_1/buc60609 has been rewritten using b2dclassify command.
2017-04-12 17:52:33 +03:00
imn
90271a9003 0028207: Unexpected result of the unify same domain algorithm
- Now algorithm of merging edges uses angular tolerance
2017-04-12 17:52:17 +03:00
ika
521efa926d 0028589: Data Exchange - Writing face with NaturalRestriction flag to IGES
Add additional check for infinite surfaces

Correction of test case for issue CR28589
2017-03-30 12:50:36 +03:00
nbv
bbdf3b5c66 0028585: Wrong value of area computation
Adding new test case.
2017-03-30 12:49:05 +03:00
emv
7868210dbc 0028574: Get rid of the TestTopOpe* packages
1. The TestTopOpe* packages have been removed.

2. The commands *compare*, *issubshape* and *projponf* have been moved to BRepTest package.

3. The possibility to change the Extrema options has been added to projection algorithm (GeomAPI_ProjectPointOnSurf).

4. Documentation has been updated.
2017-03-30 12:46:01 +03:00
ika
ea6e537889 0028449: Data Exchange - Wrong orientation of Annotation Plane in GD&T
Fix orientation.
update test cases
2017-03-30 12:39:51 +03:00
emv
431d0f181e 0028573: Get rid of the old Boolean Operations in QA commands
The QA commands have been modified to use new Boolean operations instead of old.
2017-03-23 16:46:01 +03:00
emv
e45b5ff7f2 0028567: Get rid of the unused DRAW commands based on old Boolean Operations (BRepAlgo)
1. Removal of the traces of the usage of old Boolean operations in BRepFeat package.

2. The DRAW commands *fubl* and *cubl* based on old Boolean operations have been removed.
The alternative for these commands are the commands *bfuseblend* and *bcutblend* respectively.
The last two commands are based on the modern Boolean operations.

3. The DRAW command *ksection* based on old Boolean operations has been removed.
The command *bsection* should be used as alternative.

Test cases which have been using the *ksection* command have been modified to use the *bsection* command.

4. The class QANewBRepNaming_BooleanOperation has been modified to use modern Boolean operations.

The class QANewBRepNaming_BooleanOperation has been removed as not used.
The class QANewBRepNaming_BooleanOperationFeat has been renamed to QANewBRepNaming_BooleanOperation as it has nothing to do with Feat algorithm.
2017-03-23 15:57:27 +03:00
emv
f80842e34c 0028556: Invalid result of Fuse operation in the test case bugs moddata_2 bug469
1. Using appropriate intersection tolerance for splitting the degenerated edges in Boolean operations (void BOPAlgo_PaveFiller::FillPaves()).

2. Avoid creation of the wires consisting of degenerated edges only (BOPAlgo_WireSplitter).

3. Test case bugs/moddata_2/bug469 has been corrected to obtain valid result of operation. TODO statements have been removed from the case.
2017-03-23 15:57:24 +03:00
msv
19e7092d1b 0028553: Incorrect result of the ShapeUpgrade_ShapeDivideContinuity algorithm
The cause of the bug was computation of incorrect UVBounds in the method ShapeAnalysis::GetFaceUVBounds. In this patch the computation of a box for a 2D curve in the method ShapeAnalysis_Curve::FillBndBox() has been improved taking into account intervals of C2 continuity.
Also the fix makes little extension of bounds when making the new surface in ShapeUpgrade_FaceDivide::SplitSurface(), so that all p-curves were fully inside.

Test case for issue CR28553
2017-03-23 15:57:23 +03:00
nbv
3b6ffeaca7 0028492: Boolean common does not produce expected result
Generation of 3D-steps shorter than 3D tolerance has been allowed in the fix to build Walking-line.

Now, 3D-step is limited by Precision::Confusion value.
2017-03-16 13:31:01 +03:00