1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-03 17:56:21 +03:00

49 Commits

Author SHA1 Message Date
luzpaz
7e3d063cae
Documentation - Fix various typos found in codebase #350 2025-02-08 09:44:51 +00:00
ona
d7d89acb39 0032977: OCC V7.5, V7.6 cannot read STEP color correctly for the root label, but v6.8 can
- color overriding mechanism is implemented for assembles, parts and instances
2022-11-21 19:41:08 +03:00
atereshi
a453f9d128 0028414: Data Exchange, STEP - Face on a closed surface with single inner wire and without natural bound not correctly read
Problem: From the point of view of the STEP format (and others), it is allowed
to describe a face on a surface with natural boundaries (torus, sphere) without
specifying these boundaries. Thus, a face on a closed surface and containing
an inner wire (or several) is correctly defined and describes a face with a
cutout defined by this wire. At the same time, there is a function
(ShapeFix_Face::FixOrientation) in the ShapeHealing procedure that corrects the
orientation of the wires, and it starts before the function of adding natural
boundaries (ShapeFix_Face::FixAddNaturalBound). There are many shapes that have
incorrectly oriented wires and this procedure successfully heals them, but on a
correctly specified face with single inner wire on closed surface, we do not get
the entire surface with a cutout, but a part of the surface defined by the wire.
This fix is intended to resolve this ambiguity.

Change:
1. Added function isNeedAddNaturalBound that returns TRUE if face needs to add
 natural bounds.
2. Corrected condition in FixOrientation to ignoring faces that needs to add
 natural bounds.
3. For tests in which one wire was incorrectly oriented on a closed surface,
flag AddNaturalBound was disabled.
5. Test with cutout from torus was created: bugs step bug28414.

Result: By default, it is correct to add natural boundaries, because this case
 is correct from the point of view of the STEP format and others.
2022-10-31 18:10:55 +03:00
dpasukhi
7d5e26eb2e 0032596: [REGRESSION] Data Exchange, STEP Reader - OCCT 7.6.0dev does not open file correctly
Fixed typo in the StepToTopoDS_TranslateFace.cxx after #29564 issue
2021-10-01 19:08:36 +03:00
dpasukhi
da80ff68f1 0031382: Data Exchange - BinXCAF should preserve length unit information
Possibility for adding LengthUnit info to XCAF document using special class XCAFDoc_LenghtUnit and XCAFDoc_LenghtUnitTool is implemented.
Package UnitsMethods is split: geom methods were placed to new file GeomConvert_Units which is in the toolkit TKXSBase, internal step scale factors was placed to StepData.
Updated UnitMethods to convert scale factor to different unit types.
Now, XSAlgo::XSAlgo_AlgoContainer is used to update unit info from static interface values.
New Draw command "XSetLengthUnit" and "XGetLengthUnit" for set or get XDE attribute.
Upgraded tests for STEP, IGES, OBJ, glTF, VRML formats to check area regressing with used unit.
Upgraded tests\de test cases to use any units in the "loop back" algorithms.
2021-08-20 20:30:11 +03:00
skl
d66f7c0fa2 0029564: STEP Import and Export failure
In the result of translation one face lying on the spherical surface converted to the two separate faces due to method IsSurfaceUVPeriodic returned false for spherical surface.
Now method IsSurfaceUVPeriodic returns true for spherical surface in order to natural bounds can be added for spherical surface too.
Method ShapeFix_Face::FixOrientation was corrected to avoid reversing inner wire for case when spherical face has only one inner bound without outer bound.
Check that wire has bounding box equal to bounding box of surface was added in the method ShapeFix_Face::FixAddNaturalBound in order to avoid addition of the natural bounds ( test bugs xde bug22535_2 1 for face 2 lying on the torus)

In order to avoid regressions fix for translation "VERTEX_LOOP" entities was added. Natural bounds for "VERTEX_LOOP" lying on the Spherical and BSpline surface is added only if face does not have any other bounds.
In other case natural bounds were added during ShapeFix operation after translation in order take into account mutual position of the all bounds in the UV space of the face.
2020-11-28 12:36:49 +03:00
kgv
aaf8d6a98d 0030969: Coding Rules - refactor Quantity_Color.cxx color table definition
The table of named colors has been compressed and moved out
from Quantity_Color.cxx into Quantity_ColorTable.pxx.

Quantity_NameOfColor - grayscale enumeration values have been re-ordered to fix discontinuity.
Duplicating colors has been merged within enumeration:
  CHARTREUSE=CHARTREUSE1, GOLD=GOLD1, GREEN=GREEN1, ORANGE=ORANGE1,
  ORANGERED=ORANGERED1, RED=RED1, TOMATO=TOMATO1, YELLOW=YELLOW1.
Added aliases to several other common colors:
  BLUE=BLUE1, CYAN=CYAN1, LIGHTCYAN=LIGHTCYAN1, MAGENTA=MAGENTA1.

Quantity_Color class definition has been cleaned to follow OCCT coding style.
Quantity_Color now stores NCollection_Vec3<float> as class field instead of separate components.
Removed unused class Quantity_ColorDefinitionError.

New methods Quantity_Color::Convert_LinearRGB_To_sRGB() and Quantity_Color::Convert_sRGB_To_LinearRGB()
converting RGB components from linear to non-linear sRGB colorspace and vice versa.
Image_PixMap::PixelColor() and Image_PixMap::SetPixelColor() methods have been extended
with an optional argument for performing linearization/delinearization of 8-bit sRGB pixel formats.

Draw Harness command AISColor has been corrected to take color name instead of enumeration index.
2019-10-22 15:15:51 +03:00
ika
3b739e69c9 0030789: Data Exchange - Some names are lost during STEP import
Add importing name from PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS STEP entity.
Update test cases with files contained this entity.
2019-06-20 15:20:50 +03:00
ifv
d8406b2f3a 0030199: Extrema Point<->Curve gives inaccurate result
Special treatment of bspline curve of first degree is implemented in Extrema_GExtPC.gxx
Test case is added
Some test cases are modified according to actual state of algorithm
2018-10-23 20:08:38 +03:00
ika
87efa821fa 0030189: Data Exchange - Wrong export to STEP of located root.
Now roots-references in XCAF Document can be exported to STEP without losing structure of assembly/sharing/metadata of this root. New auxiliary root assembly with each root-reference is created to save all necessary data.
2018-10-04 17:57:13 +03:00
gka
06a505ba53 0030087: Invalid result of the translation of the assembly when relating and related products are mixed in the SRR entity
Detection of specific case of error in the definition of transformation matrix describing position of the component within assembly, when it has Axis Placements swapped, is corrected to handle the case when one of these Axis Placements is contained in both Shape Representations (of the assembly and its component).
This allows the problematic STEP file to be translated correctly.

Added test bugs step bug30087
2018-09-03 15:48:41 +03:00
gka
ffe1b14331 0029846: Data Exchange - STEP validation properties support is obsolete
Name of the PROPERTY_DEFINITION entity for validation properties is changed to "geometric validation property" according to the current version of the recommended practices.
For compatibility with older definitions (with underscores) the check is made using string with underscores replaced by spaces.
2018-07-13 16:38:08 +03:00
gka
39ab2e0c4d 0029916: Regressions in Data Exchange on VC 2017
The "end" file from folder "de" has been corrected to exclude comparing the number of edges in the shapes from current result with test data.
"TODO messages generated for differences were removed.
Data exchange tests were regenerated.
2018-07-13 15:02:58 +03:00
ifv
1dbdf099cd 0029857: Incorrect behavior of Point-Curve Extrema
Check for double solutions has been  added in algorithms Extrema_ELPCOfLocateExtPC and  Extrema_ELPCOfLocateExtPC2d
that find extrema between point and curve.
2018-06-29 12:11:45 +03:00
apn
0e443e130c 0028097: Test system does not recognize 'fail...' messages as errors
Test parse rules are improved to recognize messages with word 'fail' or 'failure' as errors.
Test cases are corrected accordingly (TODO or REQUIRED statements added where fail messages were not noticed previously).
2018-03-26 15:40:11 +03:00
ifv
69f87d091e 0029162: Geom2dInt_GInter algorithm does not find intersection of ellipse and line
Analytical intersection algorithm is implemented for ellipse-line intersection
2017-11-09 18:08:11 +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
gka
72523826de 0027575: Reading STEP file gives an empty result
Exception is raised during translation BSpline curve having only one unique knot.
Protection for such case was added
Added protection against exception during reading BSpline curve with number of control points equal to 0
Added protection against exception due to using null binder during writing XDE document

Test case for issue #27575
2016-11-17 14:45:16 +03:00
aml
6728599615 0027569: [Regression in 6.9.0] Projecting a curve hangs
Parameterization speed is taken into account to avoid ProjLib projector usage in case of bad input data.
Test case is added.
Test cases correction.
2016-06-16 12:15:22 +03:00
ika
02fd709bbb 0026930: ShapeConstruct_ProjectCurveOnSurface returns a B-Spline instead of line (again)
Upgrade check of closeness of 2dcurve to line during projection:
  For C1 and more surfaces check distance to normal, not to surface, for C0 surfaces update tolerance formula.
  Add check for possible period jump in some inner point.
Update some test cases.

Add cache saving for lines,
update fixPeriodicTroubles() function, using parameters from cashe.

Small correction of test cases for issue #26930

fix processing of points from cache.

Update of test cases according to the new behavior

Fix behavior of fixPeriodicityTroubles() on different isolines,
fix copy/paste mistake.
Update test cases:
iges_2 C4 - return to master values
step_3 E6 - improvement.
2016-04-21 11:37:32 +03:00
nbv
e784d86520 0026642: ShapeUpgrade_UnifySameDomain introduces extremely high vertex tolerances
Algorithm of computation of safe shift value along 2D-line (in order to distance between two points was less than tolerance) has been improved.

Correction of some test cases in accordance with their new behavior.

Test-case for issue #26642

Small correction of test-case

Small correction of test-case bugs heal bug26642
2015-09-17 17:01:13 +03:00
aml
c8bf1eb747 0026351: Wrong result found by the projection algorithm
C2 continuity intervals changed to Knots intervals in case of Bspline curve.
Fixed incorrect extremaPC usage.

Test case for issue CR26351
Update of test-cases according to the new behavior
2015-07-20 18:44:14 +03:00
gka
2a739b6d66 0024357: BRepBuilderAPI_Sewing returns result with too high tolerance.
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
2015-06-04 14:27:22 +03:00
azv
94f71cad33 0024682: Move out B-spline cache from curves and surfaces to dedicated classes BSplCLib_Cache and BSplSLib_Cache
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.
2015-05-28 13:38:22 +03:00
Roman Lygin
7b1c1b7cbb 0025971: Near B-Spline knots get merged after saving/restoring (exporting/importing)
Precision used to consider B-Spline knots identical is restricted to be not less than Precision::PConfusion() in Geom2d_BSplineCurve::Segment().

Affected tests updated (improvements)

Test case for issue CR25971
2015-04-30 14:19:34 +03:00
nbv
1d19db8dad 0025593: Number of intersection points for 2d curves depends on the order of arguments in command "2dintersect"
1. Unification of the polygons creation (it is regardless of arguments order).
2. Output of 2dintersect DRAW-command was changed.
3. Geom2dGcc_Circ2d2TanRadGeo.cxx:
     Precise intersection point found by Extrema Curve-Curve method (dot product between every tangent vector and vector between points on two curves must be equal to zero).
4. Some comments have been translated from French to English.

Some test case have been updated.

Changes in accordance with the last remark

Test case for issue CR25593
2015-04-16 10:34:12 +03:00
aml
3629864d0b 0025886: Wrong result obtained by projection algorithm
Usage of current iteration approximation added if necessary.

Test-case for issue #25886
2015-03-12 12:19:31 +03:00
aml
9a6ea9c479 0017129: ShapeFix projector makes 2d curves with oscillations
Usage of Projlib added in case of uneven points distribution.
Test cases are updated to the new behavior.
Test cases for issue CR17129

Correction of test case for issue CR17129
2015-02-26 13:30:45 +03:00
akz
d088c9c2a1 0025699: Crash while importing STeP file
1) Try-catch block was added on a StepToTopoDS_TranslateEdgeLoop::Init() to
catch Standard_ConstructionError during the Curve conversion.

2) Checks of BSpline curve degree added to prevent construction error when converting edges to BSpline_Curve.
3) Warning message was added in case of incorrect curve definition.

Correct of the test cases according to the new error message added with fix

Conflicts:
	tests/de/step_1/R9

Modified test cases according to new reference data
2015-02-13 17:24:52 +03:00
akz
b8f2022f8c 0025176: STEP Reader - no error report if referenced entity has wrong type.
Interface_CheckTool does not reset the Check added to CheckList now.

Added test case bugs/xde/bug25176

Update reference data in test cases.

Resolving conflicts:
	tests/de/iges_3/A4
	tests/de/step_1/R7
	tests/de/step_2/H1
2015-02-12 11:37:11 +03:00
aml
15b54261a3 0022598: Approximation of p-curve by 2D line
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
2015-02-05 18:02:16 +03:00
apn
a520f6eb9a 0025313: Review of TODOs in test cases for unused platforms
TODOs for unused platforms were deleted. Issue 22988 was closed.
2014-10-16 16:45:27 +04:00
nbv
9e20ed5793 0023547: Tests failures in debug mode
1. DRAW-commands for curve/surface continuity returning were changed.
2. Output of "distmini" DRAW-command is amended.
3. Function MinMax() was moved from Standard_Real to IntPatch_ImpImpIntersection_4.gxx.
4. Incorrect computing of nbcurveC1 in Geom2dConvert::C0BSplineToC1BSplineCurve(...) function was liquidated.

Test cases were changed.
2014-10-16 16:45:13 +04:00
dbv
ec661e4333 0024159: Colors are not imported for Step-Files created with Inventor 2014
Method STEPConstruct_Styles::LoadStyles() now imports StepVisual_StyledItem entities even if they was defined without StepVisual_MechanicalDesignGeometricPresentationRepresentation or StepVisual_DraughtingModel entity

Update of reference data
2014-09-26 16:23:58 +04:00
martinsiggel
d15f387afa 0022680: Empty result after STEP import
Fixed identical knots not correctly handled in STEP import

Test cases for issue CR22680

Correction test cases for CR22680
2014-08-21 15:51:20 +04:00
razmyslovich
0d4e350159 0024983: For the incorrect seam edge in STEP file no fix is provided
fix the notched edges twice per face - before checking for missing seam and after
Test case correction for issue CR24983
Add check for invalid Surface of linear extrusion (with basis curve - line and extrusion direction parallel to this line) during converting STEP surface
Small corrections of test cases for issue CR24983
2014-07-03 17:16:39 +04:00
razmyslovich
9cbe629085 0024958: Numerous ShapeFix_IntersectionTool code fixes
Optimize periodic normalization.
not needed split edge, if one of parts is too small
Small corrections of test cases for issue CR24958_2
2014-07-03 17:14:36 +04:00
ibs
46aed280cc 0024249: Crash on ShapeFix_Shape
MAIN CHANGES:
FixAddNaturalBound: the boundaries of "natural bound addition" are restricted: a face, that does not contains an outer wire, should not have any infinite UV boundaries due to new face building (with using a surface) requires specified UV boundaries.
FixAddNaturalBound: myResult is updated in FixAddNaturalBound when the method creates a new face with natural boundary. myResult is required to be updated for next "fix small-area wires" algorithm
IsPeriodicConicalLoop: incorrect working BRepTools_WireExplorer was replaced on TopoDS_Iterator.
a natural bound is added to all the faces are constructed with UV-periodical surfaces (not only sphere and torus; e.g., closed b-splines)

other:
ShapeAnalysis: ReverceSeq renamed to ReverseSeq
BRep_Tool Pnt and Tolerance has the check for null TShape
Test cases for issue CR24249

required null checks were added
test cases were corrected according to their new behavior
Correction test case for issue CR24249
2014-04-17 16:17:16 +04:00
mkv
dd8f1b191b Update of test cases for Debug 2014-03-28 16:02:51 +04:00
abv
bbd47d8f35 0024748: Remove unused instantiations of collection classes
Removed:
- packages PColPGeom, PColPGeom2d
- in Geom package: classes SequenceOfBoundedSurface, (H)SequenceOfSurface
- in TColGeom package: classes Array1OfBoundedCurve, (H)Array1OfBoundedSurface, HArray1OfBoundedCurve, (H)Array2OfBoundedSurface, (H)Array2OfBSplineSurface, HArray2OfBezierSurface, (H)SequenceOfBoundedSurface, HSequenceOfSurface
- in TColGeom2d package: classes (H)Array1OfGeometry, (H)Array1OfBoundedCurve, HSequenceOfGeometry
2014-03-27 16:37:21 +04:00
mkv
0a58bfe2c3 Update test cases for debug mode 2014-03-21 16:16:29 +04:00
ibs
630ab8c7fe 0024549: Faulty shape after IGES translation with xstep.cascade.unit set to M
pcurve as line isn't created to avoid incorrect parameterization
Test case for issue CR24549

Test cases were corrected according to their new behavior
2014-03-21 16:11:31 +04:00
gka
2e9fd4bc0d 0024008: ShapeAnalysis_Surface causes exception in Geom_OffsetSurface
Refactoring on current master fix for bug 0024008: ShapeAnalysis_Surface causes exception in Geom_OffsetSurface.
And modified test scripts in order to avoid report regressions
Test cases for issue CR24008
2013-11-28 12:14:17 +04:00
apn
3054a9f4df Improvements IGES and STEP interface in DEBUG mode 2013-10-18 11:51:12 +04:00
apn
b58dfc5e92 0024121: It's necessary to add TODO in test cases to avoid known regressions in debug mode 2013-09-05 13:43:39 +04:00
emv
c1746a0ac9 0024060: Wrong result done by general fuse algorithm.
Added treatment of the vertex as a single object.
Added test case bugs/modalg_5/bug24060
Modified shape's extension in test cases bugs/moddata_3/bug23943_3 bug23943_4
Modified test cases in group de according to new reference data in issue 24035
2013-07-12 12:42:42 +04:00
ika
404d419daa 0024035: Intersector is not symmetrical
asymmetrical check in  Standard_Boolean IntCurve_IntPolyPolyGen::findIntersect was changed to symmetrical.
fix wrong calculation of approx parameter on curve for last polygon segment
Added test case bugs/modalg_5/bug24035
Modified TODO in "de" test cases because there are small differences with old behaviour
Modified test case heal/split_closed_faces/G5 because of corrections in intersector's behavior, which lead to changes in checkshape
2013-06-27 13:56:52 +04:00
git
3af9db62e0 Adjusting testing case for testing on Debian60 64bit 2013-04-23 13:54:52 +04:00
ika
c97067ad95 0023439: Integration of test grid "xigs" into the new testing system
Loop back tests for iges and step files with possibility of generation of reference data.
Clean up of test scripts (removal of obsolete code, adding comments, corrected formatting)
two fixes were done (same like bug 23722 and bug 23736)
Cancelling checking for number of warnings
rewrite some test scripts in cause of this and fix 23794
Tolerance checking was weakened.
Fix to check instability on Linux (bug 23822) was added.
TODO messages was added to tests which have different results on Windows and Mandriva2010
Ability to update this TODO in regeneration mode was added.
Add fix to bug 23852
Test groups were recomposed.
'dataexch' was renamed to 'de'.
CPU limit was decreased from 2000 sec. to 1500 sec.
2013-04-05 16:09:52 +04:00