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

1655 Commits

Author SHA1 Message Date
jgv
c59fcd1186 0027468: Incorrect processing of some cases by HLR algorithm
Incorrect work of HLR algorithm caused by usage of wrong tolerances, wrong sampling of 2d curve and some other bugs are fixed.

Test cases for issue CR27341
2016-05-12 10:33:35 +03:00
ika
b7b2f85ac1 0027455: Implementation of connection points
Add Import/Export connection points.
Make some improvements in STEP reading in collections shapes, to which dimension is attached.
Update tests.
2016-05-12 10:30:09 +03:00
oan
8e509b0ba1 0027442: Rotation sweep can't be rendered in 3D
Do not insert internal nodes for Cylinder in case if it is less than DefFace value or in case of long cylinder with small radius due to protection against overflow during casting to integer.

Small correction of shape name in test case for issue CR27442
2016-05-12 10:17:38 +03:00
oan
7856b126b0 0027384: BRepMesh_IncrementalMesh does not take angular deflection into account for spun/elementary surfaces
Check deviation of normals at vertices of triangles for complex surface types different from Bezier and BSpline.
Modified test cased according to changes in BRepMesh.
Do not remove more intermediate parameters than N - 3 in order to have at least one parameter related to surface internals.
Check angle for angular deflection before removement of intermediate parameters.
Unify computation of internal vertices for complex surfaces.
Discretization points of edges are taken into account during computation of step of mesh grid.
Remove parameters only if they fit the constrains along the whole surface.
Do not add random internal parameters in case if their number is just 2.
Force freezing parameters both for U and V in case of significant control point.

Modified test cases

Warnings elimination in vc14.
2016-04-29 11:48:33 +03:00
nbv
79997052f1 0027310: Huge tolerance obtained in the result of intersection of two cylindrical faces
Sometimes start point of the intersection line is in the surface boundary strictly. I.e. the parameter of this point in the surface can be equal to both 0 or 2*PI equivalently. It is important to chose correct parameter value.

The algorithm of prediction is based on monotonicity property (see CylCylMonotonicity(...) function in IntPatch_ImpImpIntersection_4.gxx). Now, this function is used wrongly. The fix improves this situation.

Small optimization in the code.
Creation of test cases .

The logic of returning value by the method BoundariesComputing() has been corrected.
2016-04-28 17:04:58 +03:00
nbv
b55bd02353 0027269: Intersection algorithm produces null-length curve
Restriction line can correspond to a degenerated edge. In this case we shall return null-curve (instead of Null-length curve).
2016-04-28 14:21:40 +03:00
aml
246c7a7554 0027371: Regression: BRepExtrema works too much slower in 691 (from 670)
I
Lipschitz constant tuning.
Shubert estimation for minimal value is added.

II
Math_GlobOptMin Refactoring.

III
Test case is added.

class NCollection_CellFilter_Inspector moved into math_GlobOptMin class.
2016-04-28 14:03:59 +03:00
bugmaster
360f800be8 Update of testing cases for current state of OCCT 2016-04-22 15:22:16 +03:00
nbv
b8f67cc236 0027302: Invalid curves number in intersection result
1. In frame of the fix for #27282 issue, we have obtained several prolonged curves, which have common point(s). Fix for this issue joins these curves if it is possible.

2. ElCLib::InPeriod(...) method has been improved. Now it has become more faster (in general cases) and more reliable (in frame of  FLT_OVERFLOW and DIVISION_BY_ZERO cases processing).

Creation of test case for issue #27302
Test case tests\bugs\modalg_6\bug27282_2 has been adjusted in accordance with its new behavior.
2016-04-22 15:21:57 +03:00
aba
3f1eb0abf9 0027359: Visualization - add support of flipping for textured text
Added option for OpenGl_Text to use previous model-view state.
Added interface to enable this option in Prs3d_Text
Added option to enable flipping in AIS_NameLabel

Eliminated warning
2016-04-22 15:21:45 +03:00
isk
83da37b115 0026434: Visualization - Textured objects should have priority over the environment mapping.
Add handle on environment texture in OpenGl_Workspace.
Add a new parameter UseEnvironmentTexture to the Graphic3d_ZLayerSettings.
OSD layers don't use environment texture by default.
zbuffertrihedron doesn't use environment texture.
vzlayer can enable/disable environment texture mappping.
Delete unnecessary files Graphic3d_TypeOfSurfaceDetail.hxx and V3d_TypeOfSurface.hxx.
Delete functions SurfaceDetailType and SetSurfaceDetailType functions from Graphic3d_CView.
Delete functions SurfaceDetailState and UpdateSurfaceDetailStateTo from OpenGl_ShaderManager.
Delete class OpenGl_SurfaceDetailState.
Delete functions SurfaceDetailType and SetSurfaceDetailType from OpenGl_View.
Delete functions SetSurfaceDetail and SurfaceDetail() from V3d_View.
Delete functions SetDefaultSurfaceDetail and DefaultSurfaceDetail from V3d_Viewer.
Delete draw command VSetTextureMode.
Add description in dox.
2016-04-22 15:21:32 +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
gka
a0bb29e79e 0027272: FixMissingSeam function creates G1 seam curves
Method BRepLib::EncodeRegularity() is improved to set regularity GeomAbs_CN for edges lying on the same-domain surfaces (where derivatives on both surfaces are equal in all points).

DRAW command getedgeregularity is added to query regularity of the edge on specified faces.
DRAW command edgeregul is removed (this functionality is provided by command encoderegularity).

Added tests: bugs modalg_6 bug27272, bug27383_1, bug27383_2

Correction of shape name in test case for issue CR27272
2016-04-15 10:59:52 +03:00
jgv
601b1c8d56 0027280: HLR algorithms taking seam edges into account
Interface of HLRAppli_ReflectLines has been modified.
New Draw command "hlrin3d" has been added.
2016-04-14 12:45:56 +03:00
nbv
309bad284d 0026918: GeomLib_CheckCurveOnSurface cannot compute distance if 3D-curve is periodic
Creation of test case for this issue.
2016-04-14 12:43:02 +03:00
nbv
79981d14cc 0027124: Invalid curve on surface in the result of General Fuse operation
Creation of test cases for issues #27124 and #27129.
2016-04-14 12:32:40 +03:00
ika
f0bf70e8cc 0027372: Import/Export dimension text position
Modify Import/Export STEP.
Add Draw commands to set and get orientation and position of dimension text.
Add Draw commands to set and get presentation.
Add test.
2016-04-14 11:53:06 +03:00
ifv
8f8398f6e4 0027322: geom/revolution_00/A1: Incorrect pcurve creation
ProjLib_Cone.cxx - correction wrong calculation of projection line on cone
GeomInt_IntSS_1.cxx - modification of method BuildPCurves(...) - adjusting first or last knots of 2d Curve
ProjLib_ComputeApprox.cxx - modification of method Function_SetUVBounds(...) for case projecting line on cone.
Modification of tests - removing first TODO

Test case for issue #27322
2016-04-14 11:50:33 +03:00
bugmaster
c62927c662 Adjusting test cases for current state of OCCT 2016-04-08 11:51:03 +03:00
jgv
f0144633d9 0027271: Unifysamedomain invalid result
Prevent merging of faces along periodic direction.

Test case "bugs heal bug27000_1" has been corrected to actual state of the algorithm.
2016-04-08 11:50:58 +03:00
ika
7644c7f4a1 0027304: Implemetation of descriptions for Dimensions
- Add poles with array of descriptions and description names to DimensionObject,
- Modify Import/Export STEP,
- Add Draw commands for descriptions,
- Create test,
- Reorganize end script for test/gdt/dimensions.
2016-04-08 11:50:53 +03:00
aml
5333268def 0027299: Incorrect result of the normal projection algorithm
Curve splitting is added to handle seam passing by initial curve.
test cases are added.

Minor corrections.
2016-04-08 11:50:43 +03:00
isn
58e14d59e7 0027117: BRepClass3d_SolidClassifier doesn't take into account vertex/edge/face tolerances
Various improvements in point-solid classifier:

1) Refactoring.
2) BndBoxTree is extracted into separate class.
3) UB-tree calculation is cashed to improve point-solid classification speed.
4) Ray / curve intersection improved by trimmed parameters and correct order.
5) Fixes in logic.
6) Calculation caching at the classifier level.

3D-claasifier now takes into the account the vertex/edges tolerances. If the given point lays inside the tolerance area of vertex or edge of the solid it's classified as TopAbs_ON.
The behavior of IntCurvesFace_Intersector::Perform was changed. Now it may use optional null-tolerance to classify 2d-point relatively to the given face.
UBTreeFiller is used to speedup intersection process between edges/vertices and the point.
The test case 'boolean gdml_private ZH2' extensively uses the SolidClassifier. After this fix it returns the correct classification statuses, which leads to incorrect result shape (reported by checkshape). Yet the result shape without this fix also seems to be incorrect (one of the isolines goes out of boundary of the face). Thats why it's marked with 'TODO'.

Corrections in test cases.

Test case is added.
2016-04-08 11:50:38 +03:00
ika
d658f27576 0027336: Update STEP entities, according to AP242
Add header  and parameter for AP242.

Update entities:
product_definition_relationship
styled_item

Update select types:
security_classification_item
person_and_organization_item
organization_item
group_item
external_identification_item
document_reference_item
date_item
approval_item
external_identification_item
draughting_callout_element
value_qualifier
invisibility_context

update gdt tests.

fix compilation warnings.
2016-04-08 11:42:59 +03:00
msv
f98965d2bc 0027315: UnifySameDomain leaves unmerged edges
Adapt the internal function MergeEdges to the case when on input it takes a set of edges constituting several connected chains.
2016-04-08 11:42:53 +03:00
nbv
243505b81b 0027300: Boolean operation produces invalid shape in terms of "bopargcheck" command
1. Check, if value found by math_PSO algorithm cannot be precised by math_NewtonMinimum algorithm. In this case, we call math_PSO algorithm repeatedly, however, with other parameters.

2. Some margin of edge tolerance value has been provided in IntTools_Tools class.

3. Interface of math_NewtonMinimum class has been changed (method GetStatus() has been added).

Correction of some test cases according to their new behavior.
2016-04-08 11:42:42 +03:00
msv
cb120537bf 0027309: Result of UnifySameDomain has InvalidMultiConnexity error
The update of the set of boundary edges has been added for the case when faces containing milti-connected edges are excluded from merging.

Update test cases for unifysamedom to generate snapshots.
2016-04-08 11:42:37 +03:00
ika
b0cef6061a 0027235: Export GDT: Annotation plane and Presentation.
Implement Null_Style STEP type.
Implement export of annotation planes and presentation as tessellated geometry.
Add tests.
2016-04-08 11:42:32 +03:00
msv
fe1a6e4e54 0027082: UnifySameDomain must add internal edges where appropriate to resolve self-intersections
The new option AllowInternalEdges has been added in the class ShapeUpgrade_UnifySameDomain. It determines how the algorithm treats the situation when two faces can be merged together but they have connection with another face via the common edge.

With this option turned on, merging of such faces is not stopped, but the multiconnected edges are added to the merged face as INTERNAL edges.

By default it is false. In this mode such merging is forbidden, so the result shape will not contain any new INTERNAL edges.

The behavior of the algorithm has been changed so that it does not merge faces from different shells.
2016-04-08 11:42:26 +03:00
aml
6220ba10a3 0027184: BRepExtrema_DistShapeShape returns wrong result.
Local optimization default algorithm is changed to "distance" based.
Test case added.
2016-04-08 11:42:21 +03:00
gka
aee24cb547 0027151: Exception is raised during performing command "splitshape" in the Test Harness
Added protection for cases of the overlapped edges.
Returning value for methods in the LocOpe_SplitShape::AddOpenWire(), LocOpe_SplitShape::AddClosedWire() are modified from void to boolean in order to avoid raising exceptions.
To avoid regression for test case modalg_5 bug25243 tolerance of vertices of the degenerated edges are increased to value of tolerance of the splitting vertex for case when splitting vertex was projected on  the degenerated edge.
2016-04-08 11:42:11 +03:00
vro
e9947e12bc 0027192: Improvement of storage of Ocaf document in XML file format
Improvement of code in XmlMDataStd_ExtStringArrayDriver.cxx

Corrected test-script
2016-04-08 11:42:05 +03:00
ski
863f782a42 0027146: Create command checkplatform
Command checkplatform was created.
All test cases were updated.

Global variable os_type was eliminated.
New option -osx (MacOS) for procedure checkplatform was added.
2016-04-08 11:42:00 +03:00
duv
d9e72440ee 0027337: [Regression vs. 6.9.1] Selection highlight is poor in ray traced mode with FSAA
For FSAA mode we now store the depth values from first sample in myRaytraceFBO1 and do not modify it while collecting the rest of samples.
When all samples are gathered we fetch color from myRaytraceFBO2 and depth from myRaytraceFBO1 and display it to the current FBO.

Test bugs vis bug27337 added.
2016-04-04 16:47:09 +03:00
nbv
6ca1c7466b 0027325: [Regression to 6.9.1] geom/revolution_00/A1: BOPTools_AlgoTools2D::AttachExistingPCurve doesn't work
1. Check, if edge is same-range, is now made with some tolerance (not strictly) in GeomLib_CheckCurveOnSurface class. Default value of this tolerance is Precision::PConfusion(). However, this value can be changed with corresponding interface.

2. DRAW-command "attachpcurve" has been added to BOPTest_UtilityCommands.cxx file. This command creates p-curve of given edge on given face. It can assign 2D-curve of one of the edge already included in the face or (if it is not possible) rebuilds new 2D-curve.

Creation of test case for this issue.
Adjusting test case boolean volumemaker A8 according to its new behavior on Windows.
2016-04-04 16:45:39 +03:00
vpa
4c0d97ac42 0027318: Memory is not released in Select3D_SensitiveSet when destroying AIS_InteractiveContext without removing objects
- destructor was added to SelectMgr_SelectableObject to clean up selections;
- test case for issue #27318

Warnings elimination
2016-04-04 14:29:29 +03:00
msv
9fc376b286 0027051: BRepBuilderAPI_GTransform produces invalid result
Test case for the bug.

Small correction of vprops reference value.
2016-03-31 11:33:56 +03:00
apn
fd0add651a 0027167: Boolean operations produce an invalid shape
Added test case bugs/modalg_6/bug27167.
Modified shape name in bugs/modalg_6/bug27190.
2016-03-30 12:40:45 +03:00
msv
afb2781582 0026929: Extrema_ECC hang/crash
Comparator functor corrected to return false in the case of equal elements.
Test case added.
2016-03-29 15:52:43 +03:00
jgv
f6fd8f0bcf 0025813: regression in Hidden Line Removal
Regressions that appeared in OCCT 6.6.0 are fixed.

Correction of test cases for issue #25813

Reference data update for test case bugs/mnodalg_6 /bug25908
2016-03-29 15:52:33 +03:00
nbv
eee615ad2a 0027282: [Regression to 6.9.1] smesh/bugs_00/A6: Cut produces an empty shape
1. The reason of the regression is not-closed intersection result. This problem has been solved (in this fix) by adding joint point to the both neighbors intersection lines (lines were extended to the this intersection point). It is made in IntPatch_WLineTool::ExtendTwoWlinesToEachOther(...) method.

2. Interface of IntPatch_PointLine and inherited classes has been changed. Methods ChangeVertex(...) and RemoveVertex(...) have been added.

Test cases for this issue have been created.

Small correction in the code.
2016-03-29 15:52:18 +03:00
nbv
93e38faa3b 0027179: The algorithm of sharing edges in Boolean operation should be improved
1. New sharing algorithm has been implemented. If intermediate point of some edge is included in the tube with center taken in another edge and radius equaled to maximal vertex-tolerance of both edges then these two edges are considered to be shared. This know-how touches edges only, which have common blocks with interfered faces. If they do not have any common-blocks the algorithm will work as before.

2. Interface of BOPAlgo_PaveFiller::IsExistingPaveBlock(...) method has been changed.

Creation of test case for issues #27128 and #27179

Adjusting some test cases according to their new behavior, because they are IMPROVEMENTS really (TODOs have been deleted).
2016-03-29 15:52:13 +03:00
msv
0d42485334 0027283: Regression vs 6.9.1: smesh/bugs_11/L9: invalid result of General Fuse
Get rid of hard-coded tolerance 0.0001 for intersection with a conical surface.

Small correction of test case for issue CR27283

Adjusting test cases
2016-03-29 15:52:07 +03:00
ifv
fe3e01db81 0027273: The computation of linear properties on shared shapes is not correct
New flag is inserted in parameters of static methods LinearProperties(...), surfaceProperties(...), volumeProperties(...). This flag defines to skip or not to skip second and next appearance shared topology entities (edges, faces, shells) in properties calculation.
Corresponding Draw commands is modified to take in account new parameter.

Test case for issue CR27273

Add option -skip into checkprops command
2016-03-28 17:31:20 +03:00
nbv
1fbf69bb21 0027175: Intersection algorithm with increased tolerance works incorrect with some shapes
1. Algorithm of coincidence check between Walking and Restriction line has been improved in IntPatch_ImpPrmIntersection.
2. Creation of test case for this issue.
2016-03-28 17:31:15 +03:00
aml
0d1536ad4e 0027133: Incorrect result of the normal projection algorithm
Topological tolerances changed to geometric tolerances.
Protection from the usage of invalid result is added to restore good projection.
Test cases are updated.
Test case added.

Correction of test case for issue CR27133
2016-03-28 17:31:09 +03:00
kgv
f68acbf47a 0027286: Visualization, TKOpenGl - avoid using light index within built-in GLSL programs for simplest configuration
OpenGl_ShaderManager::stdComputeLighting() - handle single directional light specifically
for compatibility with broken OpenGL ES drivers.

Added test cases using built-in GLSL shading programs.
2016-03-28 17:31:04 +03:00
apn
259a8d04eb 0026293: Error opening the document
Added test cases bugs/caf/bug26293_1 bug26293_2

Unnecessary catch were deleted.
2016-03-28 17:30:58 +03:00
emv
5be33fb667 0027274: Regression vs 6.9.1: Wrong result of General Fuse operation on two cylinders
When reducing the tolerance values of the vertices put on section curves take into
account all section curves, not only those for which the tolerance have been reduced
(method void BOPAlgo_PaveFiller::CorrectToleranceOfSE()).
The new protection has been added to avoid reducing of tolerance values of vertices
to the values less than the tolerance values of edges containing these vertices.

Adjusting of test case bugs/modalg_5/bug25232_9
2016-03-24 12:49:28 +03:00
apv
73e5a645f3 Adjusting test case after changes of issue 27270 2016-03-21 14:56:33 +03:00