occt.git
6 years ago0029595: Visualization - Wrong validation of Anchor point for Radius Dimension V7_2_0p3
vsv [Tue, 20 Mar 2018 12:26:28 +0000 (15:26 +0300)]
0029595: Visualization - Wrong validation of Anchor point for Radius Dimension

6 years ago0029580: Regression: invalid result of BOP Fuse
emv [Thu, 15 Mar 2018 14:02:46 +0000 (17:02 +0300)]
0029580: Regression: invalid result of BOP Fuse

Boolean Operation - avoid creation of INTERNAL solid from unclassified faces in Solid Builder algorithm.
Instead warn the user that some of the faces have been unclassified and not used for solids creation.

Adjustment of the test cases.
Test cases for the issue.

6 years ago0029363: No history for shapes which were produced as a result of intersection V7_2_0p2
emv [Tue, 12 Dec 2017 12:10:37 +0000 (15:10 +0300)]
0029363: No history for shapes which were produced as a result of intersection

1. Implementation of the *Generated* method for the algorithms in Boolean Component.
In terms of these algorithms the shape from the arguments can have Generated shapes only if these new shapes have been obtained as a result of pure intersection (not overlapping) of this shape with any other shapes from arguments.
Thus, the Generated shapes are always:
* VERTICES created from the intersection points and may be Generated from edges and faces only;
* EDGES created from the intersection edges and may be Generated from faces only.

So, only EDGES and FACES could have information about Generated shapes. For all other types of shapes the list of Generated shapes will be empty.

2. Optimization and simplification of the Modified and IsDeleted methods based on the correct filling of the BOPAlgo_BuilderShape::myImagesResult map.

3. Provide history of unification of the solids in the CellsBuilder algorithm.

4. Update of the documentation of Boolean Operations User guide with new chapter "History Information" describing rules for filling history for operations in Boolean Component.

5. Test cases for the issue. New grid "history" has been added into "boolean" category.

6 years ago0029333: Boolean Operations - Prevent modification of the input shapes in case their...
emv [Fri, 17 Nov 2017 13:27:36 +0000 (16:27 +0300)]
0029333: Boolean Operations - Prevent modification of the input shapes in case their sub-shapes have not been modified

Prevent modification of the input shapes in destructive mode in case their sub-shapes have not been modified:
1. Prevent edge splitting for the pave blocks with old vertices if it is possible to use the existing edge (*BOPAlgo_PaveFiller::MakeSplitEdges*);
2. Prevent creation of the new containers (WIRES/SHELLS/COMPSOLIDS) if non of its parts have been modified (*BOPAlgo_Builder::FillImagesContainer*);
3. Prevent creation of the new face if non of its wires have been modified (*BOPAlgo_Builder::FillImagesFaces*);
4. If possible, use the original face to be the representative for the group of SD faces (*BOPAlgo_Builder::FillSameDomainFaces*).

Cosmetic changes:
1. Documentation of the *BOPAlgo_Builder* class.
2. Making simple methods of the *BOPAlgo_Builder* class inline.
3. Getting rid of the *BOPAlgo_Builder::mySplits* field as it is excessive. *BOPAlgo_Builder::myImages* can be used instead.
3. Moving the Check Inverted option from *BOPAlgo_Options* to *BOPAlgo_Builder*.

Test cases for the issue.
Adjustment of the test case to their current behavior.
Test case *blend/complex/H2* has been deleted as duplicate of the test case *blend/simple/Z1*.

6 years ago0029179: Result of Boolean common depends on an order of arguments
nbv [Thu, 7 Dec 2017 08:28:20 +0000 (11:28 +0300)]
0029179: Result of Boolean common depends on an order of arguments

Usage of Bnd_Box-filtering is eliminated while putting a (definitely) common vertex between two faces on the intersection curve.

Algorithm of putting not-common (ON/IN) vertices has not been changed.

6 years ago0025609: Clean up the duplicate classes in TKBO project
emv [Thu, 23 Nov 2017 07:57:25 +0000 (10:57 +0300)]
0025609: Clean up the duplicate classes in TKBO project

1. The package BOPCol has been fully removed:
- *BOPCol_BaseAllocator* is replaced with *Handle(NCollection_BaseAllocator)*;
- *BOPCol_BoxBndTree* is replaced with *BOPTools_BoxBndTree*;
- *BOPCol_Box2DBndTree* is removed as unused;
- *BOPCol_DataMapOfIntegerInteger* is replaced with *TColStd_DataMapOfIntegerInteger*;
- *BOPCol_DataMapOfIntegerListOfInteger* is replaced with *TColStd_DataMapOfIntegerListOfInteger*;
- *BOPCol_DataMapOfIntegerListOfShape* is replaced with *TopTools_DataMapOfIntegerListOfShape*;
- *BOPCol_DataMapOfIntegerMapOfInteger.hxx* is removed as unused;
- *BOPCol_DataMapOfIntegerReal* is replaced with *TColStd_DataMapOfIntegerReal*;
- *BOPCol_DataMapOfIntegerShape* is replaced with *TopTools_DataMapOfIntegerShape*;
- *BOPCol_DataMapOfShapeBox* is replaced with *TopTools_DataMapOfShapeBox*;
- *BOPCol_DataMapOfShapeInteger* is replaced with *TopTools_DataMapOfShapeInteger*;
- *BOPCol_DataMapOfShapeListOfShape* is replaced with *TopTools_DataMapOfShapeListOfShape*;
- *BOPCol_DataMapOfShapeReal* is replaced with *TopTools_DataMapOfShapeReal*;
- *BOPCol_DataMapOfShapeShape* is replaced with *TopTools_DataMapOfShapeShape*;
- *BOPCol_DataMapOfTransientAddress* is removed as unused;
- *BOPCol_IndexedDataMapOfIntegerListOfInteger* is removed as unused;
- *BOPCol_IndexedDataMapOfShapeBox* is removed as unused;
- *BOPCol_IndexedDataMapOfShapeInteger* is removed as unused;
- *BOPCol_IndexedDataMapOfShapeListOfShape* is replaced with *TopTools_IndexedDataMapOfShapeListOfShape*;
- *BOPCol_IndexedDataMapOfShapeReal* is removed as unused;
- *BOPCol_IndexedDataMapOfShapeShape* is replaced with *TopTools_IndexedDataMapOfShapeShape*;
- *BOPCol_IndexedMapOfInteger* is replaced with *TColStd_IndexedMapOfInteger*;
- *BOPCol_IndexedMapOfOrientedShape* is replaced with *TopTools_IndexedMapOfOrientedShape*;
- *BOPCol_IndexedMapOfShape* is replaced with *TopTools_IndexedMapOfShape*;
- *BOPCol_ListOfInteger* is replaced with *TColStd_ListOfInteger*;
- *BOPCol_ListOfListOfShape* is replaced with *TopTools_ListOfListOfShape*;
- *BOPCol_ListOfShape* is replaced with *TopTools_ListOfShape*;
- *BOPCol_MapOfInteger* is replaced with *TColStd_MapOfInteger*;
- *BOPCol_MapOfOrientedShape* is replaced with *TopTools_MapOfOrientedShape*;
- *BOPCol_MapOfShape* is replaced with *TopTools_MapOfShape*;
- *BOPCol_PListOfInteger* is removed as unused;
- *BOPCol_PInteger* is removed as unused
- *BOPCol_SequenceOfPnt2d* is replaced with *TColgp_SequenceOfPnt2d*;
- *BOPCol_SequenceOfReal* is replaced with *TColStd_SequenceOfReal*;
- *BOPCol_SequenceOfShape* is replaced with *TopTools_SequenceOfShape*;
- *BOPCol_Parallel* is replaced with *BOPTools_Parallel*;
- *BOPCol_NCVector* is replaced with *NCollection_Vector*;

2. The class *BOPDS_PassKey* and containers for it have been removed as unused;

3. The unused containers from *IntTools* package have been removed:
- *IntTools_DataMapOfShapeAddress* is removed as unused;
- *IntTools_IndexedDataMapOfTransientAddress* is removed as unused;

4. The container *BiTgte_DataMapOfShapeBox* is replaced with *TopTools_DataMapOfShapeBox*;

5. The class *BOPTools* has been removed as duplicate of the class *TopExp*;

6 years ago0029188: Null shape is produced by 3D offset algorithm (mode="Complete", Join Type...
emv [Fri, 6 Oct 2017 06:35:54 +0000 (09:35 +0300)]
0029188: Null shape is produced by 3D offset algorithm (mode="Complete", Join Type="Intersection")

The following improvements have been made in the 3D offset algorithm for mode "Complete" and Join type "Intersection":
- RemoveInsideFaces() - Removal of the invalid parts outside of the solids built from the splits of offset faces is now performed. It helps to avoid their rebuilding and speed-up the computation.
- FindVerticesToAvoid() - Strengthening the criteria for the vertices to be avoided in the new splits.

Test cases for the issue.
Adjustment of the test cases to current behavior.

6 years ago0029135: 3D Offset algorithm produces a NULL shape
emv [Thu, 28 Sep 2017 08:02:05 +0000 (11:02 +0300)]
0029135: 3D Offset algorithm produces a NULL shape

UpdateValidEdges in BRepOffset_MakeOffset_1 - Perform the filtering of splits of the edges in two stages:
1. Separate filtering of the connected blocks using localized bounding edges taken only from the splits of offset faces from the block;
2. Combined treatment of the remaining splits using bounding edges from the splits of all offset faces.

6 years ago0029321: Improve performance of the 3D offset algorithm for the planar cases
emv [Mon, 13 Nov 2017 13:03:31 +0000 (16:03 +0300)]
0029321: Improve performance of the 3D offset algorithm for the planar cases

Disable additional intersection of the splits of offset faces implemented in method BRepOffset_MakeOffset::Intersection3D() for the mode "Complete" and join type "Intersection".
This method is insufficient, as it does not allow to detect the tangential faces, necessary for this mode.
Intersection is performed in the method BuildShellsCompleteInter() developed for this mode.

6 years ago0028245: Result of Cells Builder algorithm becomes invalid after removal of internal...
imn [Wed, 12 Jul 2017 07:52:41 +0000 (10:52 +0300)]
0028245: Result of Cells Builder algorithm becomes invalid after removal of internal boundaries on faces

When removing internal boundaries between faces of the same material do it once for the whole shape, and at this keep boundaries between areas with different material.

6 years ago0029293: Boolean Operations algorithm does not preserve the orientations of the faces
emv [Fri, 3 Nov 2017 09:12:34 +0000 (12:12 +0300)]
0029293: Boolean Operations algorithm does not preserve the orientations of the faces

While building splits of faces (BOPAlgo_Builder::FillImagesFaces()) make sure that the orientation of the input face will be passed to its splits.

Extend draw command "normals" with new key "[-print]" which allows printing values of the normal vector.

6 years ago0029322: Unify faces classification procedures in Boolean Operations
emv [Mon, 13 Nov 2017 08:11:27 +0000 (11:11 +0300)]
0029322: Unify faces classification procedures in Boolean Operations

1. Unify the faces classification procedure of the methods BOPAlgo_BuilderSolid::PerformInternalShapes() and BOPAlgo_Builder::FillIn3DParts() using the latter as a base.
The new method BOPAlgo_Tools::ClassifyFaces() has been created for that. Both methods mentioned above have been updated to use the new one.

2. Forced intersection of the edges after enlarge of the tolerance values of their vertices during the operation has been added into BOP's intersection algorithm (BOPAlgo_PaveFiller).
BOPAlgo_Tools::PerformCommonBlocks() method has been updated to avoid loosing faces of the already created Common blocks.

As a result the case "boolean gdml_private ZF6" became more stable, because the intermediate result is no longer invalid.
Additional test cases have been added to verify this improvement (bugs modalg_7 bug29322_*)

3. When building PCurves for edges on faces, check the existing PCurves on its validity for periodic surfaces and adjust PCurves if necessary.
The improvement helps to produce the valid result in the test case "bugs moddata_1 bug152".

4. Avoid creation of empty Edge-Edge interference if the intersection point is lying close to a shared vertex.
The improvement helps obtain the valid result of the "bopcheck" operation in the test case "bugs modalg_7 bug27683".

Adjustment of the test case to current behavior:
- Avoid usage of the self-intersecting torus in the test case "boolean gdml_public A9".
- Fix the input shape in the test case "boolean bopfuse_complex H1" to provide valid result.
- Test cases "bugs moddata_1 bug152_1 bug152_2" have been unified into single test case "bugs moddata_1 bug152". Now, the case rebuilds invalid input data and performs all types of Boolean operations.
- Change the test case "bugs modalg_7 bug22750" to produce valid intermediate results used in subsequent operations as arguments.
- The following test cases are improvements:
- "boolean volumemaker D8"
- "boolean volumemaker G1"
- "bugs modalg_7 bug27683"

6 years ago0029133: Unstable test cases
mnt [Wed, 18 Oct 2017 11:13:35 +0000 (14:13 +0300)]
0029133: Unstable test cases

Adding new and early removed for some reasons test cases

Removing TODO ?

Adding necessary TODO ? on corresponding platforms for OK and BAD cases

6 years ago0029182: BOPAlgo_PaveFiller sometimes raises exception in parallel mode
msv [Fri, 6 Oct 2017 14:07:50 +0000 (17:07 +0300)]
0029182: BOPAlgo_PaveFiller sometimes raises exception in parallel mode

Data races have been prevented in the code of BOPAlgo_PaveFiller that makes pcurves of edges on faces. For that:
- Put into treatment only unique edge-face pairs.
- If the same edge is treated with different faces in different threads simultaneously this also causes data races. To avoid this make the edge's copy in each thread and update the copy. The original edge is updated only after finishing parallel processing.

The new method BOPTools_AlgoTools::CopyEdge has been added to make a copy of an edge with vertices.

Big screenshot in the test script tests/bugs/modalg_7/bug28200 has been replaced with a small one.

6 years ago0029301: Improve performance of Boolean Operations
emv [Wed, 8 Nov 2017 06:16:35 +0000 (09:16 +0300)]
0029301: Improve performance of Boolean Operations

Improve performance of Boolean operations algorithm by:
- Improving the check of Same Domain faces (BOPAlgo_Builder::FillSameDomainFaces());
- Faster rejection of outer faces for solids using Bounding Box classification first (BOPAlgo_Builder::FillIn3DParts());
- Using IncAllocator for local containers.

Quality improvement has been made in BOPAlgo_PaveFiller class:
1. Method IsExistingPaveBlock() has been corrected to provide the correct edge tolerance and to obtain valid intermediate results in the test case "boolean gdml_private ZH3".
   New test case have been added to verify this improvement (bugs modalg_7 bug29301).
2. Method PutClosingPaveOnCurve() has been corrected to use the tolerance of the pave put on the bound for checking curve on closeness.
   Additional check for the curve to have valid range after addition of the pave on the other end has been added to prevent considering the small curves (covered by vertex tolerance) as closed ones.
   As a result of this modification the test case boolean gdml_public B2 has been fixed (TODO removed).

Adjustment of the test cases to current behavior:
- boolean bopcommon_complex J1 - the produced result was incorrect as it was self-interfered. There should be no common in this case.
- offset shape_type_i_c ZZ1 - the incorrect result is now produced instead of null shape.

6 years ago0028467: Improve UnifySameDomain performance
msv [Fri, 17 Feb 2017 08:26:25 +0000 (11:26 +0300)]
0028467: Improve UnifySameDomain performance

This patch turns off some not needed modes of fix in the called ShapeFix_Face algorithm.

It stores pcurves on planes in the edges to avoid repeated computation of the same pcurves many times (it is done only when SafeInputMode is false).

It avoids unnecessary replace/apply actions in the modification context.

It removes the code that makes decomposition of surface of the face on several faces.

The new command buildpcurvesonplane has been added, which builds and stores pcurves of edges on planar faces. This is useful for investigations how presence of pcurves on planes influence performance of algorithms.

Make drawing of dimension line in snowflake test independent on the order of vertices in the result.

6 years ago0029186: Move AddTool(), SetTools(), Tools() and other common methods of BOP tools...
oan [Thu, 12 Oct 2017 10:47:00 +0000 (13:47 +0300)]
0029186: Move AddTool(), SetTools(), Tools() and other common methods of BOP tools to separate interface class

Methods AddTool(), SetTools(), Tools() have been moved to BOPAlgo_ToolsProvider class;
BOPAlgo_BOP and BOPAlgo_Splitter are now successors of BOPAlgo_ToolsProvider

6 years ago0029237: Improve performance of Boolean Operations
emv [Wed, 18 Oct 2017 08:05:24 +0000 (11:05 +0300)]
0029237: Improve performance of Boolean Operations

In order to improve performance of Boolean Operations on the relatively fast cases the following improvements have been made:
1. Initialization of the FaceInfo information for the faces participating in Face/Face interference, even when the gluing is ON, to take into account intersection of their sub-shapes.
2. Code simplification & duplication removal - the methods BOPAlgo_ShellSplitter::MakeConnexityBlocks and BOPAlgo_WireSplitter::MakeConnexityBlocks have been unified into BOPTools_AlgoTools::MakeConnexityBlocks.
3. Avoid unnecessary bounding box computation for solids during DS initialization. The bounding boxes for solids will be computed during the building stage to find faces located inside solids.
   For the shape self-interference check (performed by the BOPAlgo_CheckerSI), the bounding box is still computed, as it is necessary to resolve Shape/Solid intersections.
4. Use only three sample points to check coincidence of line and plane.
5. Perform necessity of planes intersection only when the gluing is off.
6. Avoid repeated initialization of 2D classifier while building splits of the faces.
7. Post treat stage:
7.1. Method CorrectWires: Save edge's data (PCurve, parameter of the vertex, range) to avoid its recalculation.
7.2. Method CheckEdge: While checking vertices on edges avoid unnecessary calculation of their location.
8. Provide possibility to disable the classification of the input solids on the inverted status (to be the holes in the space).
9. Avoid building of bounding boxes for faces/solids during splitting of the input arguments for their classification relatively hole faces/shells if there are no holes created.
10. Avoid rebuilding of the faces/solids from arguments which does not acquire any inside parts from other arguments during the operation by using their draft versions as their splits.

Test cases for the issue.
Correction of the test cases boolean gdml_public A9 and bugs modalg_7 bug28485 as they are improvements.
Additional test case for the issue #28485 as it is fixed by the current changes.

6 years agoUpdate of tests database
apv [Mon, 2 Oct 2017 12:51:49 +0000 (15:51 +0300)]
Update of tests database

Test for 0028167: Fillet has strange form at its end
Test for 0028168: Exception is raised during Boolean operation
Test for 0028194: BRepMesh - Standard_OutOfRange exception on valid shape
Test for 0028200: Invalid topology of the general fuse result
Test for 0028216: Intersection of a face and a solid is broken up leading to empty result of Boolean common operation
Test for 0028245: Result of Cells Builder algorithm becomes invalid after removal of internal boundaries on faces
Test for 0028247: Effect of minSize parameter of BRepMesh_IncrementalMesh seems to be too strong
Test for 0028274: BOPAlgo_MakerVolume fails to create solid
Test for 0028279: Greater oscillations and higher degree of resulting B-Spline in cylinder-cylinder intersections in 7.1.0
Test for 0028354: Filleting destroys shape if the filleted edge touches a seam edge
Test for 0028366: BOP Common fails with solid and planar face
Test for 0028379: BRepMesh produces mangled mesh for a cone
Test for 0028388: Boolean common of simple face and solid results in empty compound
Test for 0028393: Boolean cut produce wrong result.
Test for 0028402: Modeling - calculation of properties of complex compounds is slow
Test for 0028406: High tolerances after boolean operation on OCCT 6.9.1
Test for 0028694: IGES reader produces too small edge covered by its vertices
Test for 0028719: Mesh - Display issue for special model
Test for 0028108: Sweep fails in "Right Corner" mode
Test for 0028696: Offset 2D algorithm produces micro edges
Test for 0028700: BRepBuilderAPI_Sewing produces too small edge covered by its vertices
Test for 0028722: Conversion of a spherical face to a spline produces an invalid shape
Test for 0028739: Draft on face fails
Test for 0028662: Data Exchange - Exception during reading large STEP file.
Test for 0028768: ShapeFix slighly corrupts the source face
Test for 0028485: Fuse of two shapes using gluing and non-destructive options gives invalid result
Test for 0028500: Artifact in shaded view of the shape
Test for 0028523: Fixshape reverses the orientation of the face
Test for 0028544: Big tolerance value is returned by Implicit-parametric algorithm
Test for 0028571: BRepOffsetAPI_MakeOffset build invalid wire
Test for 0028572: Wrong result of the mkface command
Test for 0028595: Shifting 2d curves for non-periodic surfaces leads to incorrect result.
Test for 0028596: Erroneous fillet
Test for 0028640: BRepBuilderAPI_Transform build invalid shape
Test for 0028656: 3d offset modifies the input shape
Test for 0000077: BUC60866. The BRepFill_Pipe fails.
Test for 0000078: BUC60875. Pipe is created incorrectly on two wires.
Test for 0000082: BUC60908. Incomplete section of shell by plane.
Test for 0000083: BUC60912. Section of simple BSpline surfaces is performed too slow.
Test for 0000862: GeomAPI_ExtremaCurveCurve fails on given curves
Test for 0002442: Error in BRepClass3d_SolidClassifier
Test for 0003936: Face on a surface of extrusion is extended after import to IGES
Test for 0005081: BRepOffset_MakeOffsetShape algorithm does not return valid result.
Test for 0005145: Wrong result of projection of a circle on a sphere.
Test for 0014846: ShapeFix_Wireframe::FixWireGaps() works wrong on a shape with seam edge
Test for 0016424: Exception in reading of attached IGES file
Test for 0010377: Incorrect fuse result when objects tangent by planar face
Test for 0013565: Incorrect result of Common operation
Test for 0013566: Incorrect result of Extrema between a large circle and a line
Test for 0024632: Artifacts during Boolean cut operation on neighboring parts
Test for 0005582: Impossible to make offset on the shape with degenerated edge

6 years ago0029234: BRepOffsetAPI_NormalProjection produces INTERNAL edges and vertices
msv [Fri, 20 Oct 2017 15:59:01 +0000 (18:59 +0300)]
0029234: BRepOffsetAPI_NormalProjection produces INTERNAL edges and vertices

Make the algorithm BRepOffsetAPI_NormalProjection use section operation instead of common to get the edge-result of projection to be in face restrictions.

Correct Boolean operation algorithm to produce correctly oriented result in the case of common between face and edge.

The algorithm ShapeUpgrade_UnifySameDomain has been patched to correctly gather same domain faces in a compound.

The TCL script snowflake.tcl has been corrected to get rid of dependence on the order of edges in the result of Boolean operation.

6 years ago0029073: Regression: General Cut produces invalid shape V7_2_0p1
emv [Fri, 15 Sep 2017 06:31:40 +0000 (09:31 +0300)]
0029073: Regression: General Cut produces invalid shape

Boolean Operations:
1. Face/Face intersection post treatment - Unify vertices put on the section curves, which were rejected as existing ones, with the vertices of edges by which these section curves have been rejected.

2. Extend Warnings Reporting system of Boolean operations with the new warnings:
- BOPAlgo_AlertIntersectionOfPairOfShapesFailed - to be added when the intersection of pair of sub-shapes of the arguments has failed;
- BOPAlgo_AlertBuildingPCurveFailed - to be added when the building of the 2D curve of the edge on face has failed;
- BOPAlgo_AlertAcquiredSelfIntersection - to be added when the positioning and tolerances of the arguments leads to creation of self-interfered shapes.

These new warnings allow completing the operation even if intersection of some of the sub-shapes or building of some of the PCurves has failed. Moreover, they allow getting the pairs of sub-shapes on which the intersection/projection has failed, providing the user ability to analyze the intersection results.

Note that if some of these warnings appear, the result of the operation should be carefully analyzed for validity.

3. Print messages for the Warnings/Errors met during checking of the shape on self-intersection ("bopcheck" command).

6 years ago0029103: No intersection curve between faces if starting points are given
nbv [Thu, 14 Sep 2017 11:49:16 +0000 (14:49 +0300)]
0029103: No intersection curve between faces if starting points are given

Sometimes the algorithm of Walking-line creation finds points out of the domain. Some such places have been detected and fixed in frame of this issue.

6 years ago0029099: Extra shapes in result of General Cut (box by ellipsoid)
emv [Wed, 13 Sep 2017 05:28:04 +0000 (08:28 +0300)]
0029099: Extra shapes in result of General Cut (box by ellipsoid)

Boolean Operations - when looking for the splitting parameters on the degenerated edges try not only the intersection of the 2D curve of degenerated edge with 2D curves of other edges bounded by the vertex of degenerated edge, but also the projection of the end points of the edges corresponding to the vertex on the 2d curve of degenerated edge.

6 years ago0029018: Documentation - Provide user guide for Qt browser OCCT-720 STR_GMBH_720 V7_2_0
nds [Mon, 28 Aug 2017 09:29:29 +0000 (12:29 +0300)]
0029018: Documentation - Provide user guide for Qt browser

Documentation is added in a new "Inspector" page of "User Guides".
Inspector plugins has some improvements by the documentation needs.
New DRAW scripts are implemented for 'tinspector' command.

6 years agoUpdate of title page of documentation (overview)
abv [Wed, 30 Aug 2017 15:54:07 +0000 (18:54 +0300)]
Update of title page of documentation (overview)

- Copyright year is updated
- Links to 3rd-party libraries and their licenses are actualized
- Description and snapshot of iOS sample added
- Visual Studio 2017 is mentioned among supported compilers

6 years ago0028932: Add possibility to install Eigen along the OCCT
ski [Thu, 24 Aug 2017 10:55:52 +0000 (13:55 +0300)]
0028932: Add possibility to install Eigen along the OCCT

Added installation of Eigen.

6 years ago0025464: Visualization - provide package for Volume Rendering
vsv [Mon, 26 Jun 2017 13:40:15 +0000 (16:40 +0300)]
0025464: Visualization - provide package for Volume Rendering

6 years ago0028968: Incorrect offset for the faces with singularities
abv [Fri, 25 Aug 2017 11:10:02 +0000 (14:10 +0300)]
0028968: Incorrect offset for the faces with singularities

Simple offset algorithm (BRepOffset_MakeSimpleOffset) is improved to handle the case when bspline surface has imprecise singularity at one of sides (when side is degenerated but not exactly to one point).
In such case, the algorithm tries to collapse all poles of singular side of the surface to the same point; this allows avoiding flapping of normal due to small fluctuations of surface.

If face being offset contains degenerated edges, then check for singularity is done using position and tolerance of corresponding vertices.
In addition, each side is checked with some user-defined tolerance (by default Precision::Confusion()); this helps to process cases when no edge is located at that side or if such edge is not encoded as degenerated.
New parameter Tolerance is introduced for that in BRepOffset_MakeSimpleOffset class.

Tests added:
bugs modelg_7 bug28968 - on isolated faces as reported in the issue, mostly for visual check (absence of loops)
offset simple F01-05 - on original shells, checking tolerances of resulting shell

6 years agoIncrementing OCCT version up to 7.2.0
bugmaster [Tue, 29 Aug 2017 14:59:55 +0000 (17:59 +0300)]
Incrementing OCCT version up to 7.2.0

6 years ago0029067: Visualization, AIS_ColoredShape - visibility of sub-shapes is ignored by...
kgv [Mon, 28 Aug 2017 18:10:28 +0000 (21:10 +0300)]
0029067: Visualization, AIS_ColoredShape - visibility of sub-shapes is ignored by ComputeSelection()

6 years ago0029056: Configuration - It is not possible to install VTK products
ski [Mon, 28 Aug 2017 13:16:37 +0000 (16:16 +0300)]
0029056: Configuration - It is not possible to install VTK products

Added installation of vtk.

6 years ago0029057: Tests - unstable test case bugs/vis/bug5682
kgv [Sun, 27 Aug 2017 17:18:29 +0000 (20:18 +0300)]
0029057: Tests - unstable test case bugs/vis/bug5682

Test case has been corrected to reduce measurements error.

6 years ago0028977: FFmpeg libraries are not presented in the CMake configuration
ski [Wed, 23 Aug 2017 15:12:47 +0000 (18:12 +0300)]
0028977: FFmpeg libraries are not presented in the CMake configuration

Corrected search of FFmpeg libraries.

6 years ago0029015: Testdiff - possibility to visualize image differences by toggling - correction
abv [Tue, 29 Aug 2017 10:51:49 +0000 (13:51 +0300)]
0029015: Testdiff - possibility to visualize image differences by toggling - correction

Javascript code is corrected to not depend on values of URLs of images

6 years ago0028985: XCAF data structures for generic text annotations linked to GD&T annotations...
snn [Fri, 10 Feb 2017 12:48:36 +0000 (15:48 +0300)]
0028985: XCAF data structures for generic text annotations linked to GD&T annotations and saved views

1. A tool to annotate items in the hierarchical product structure was added. The tool is located under
   fixed label 0:1:9. It operates two basic entities: notes and annotations located under 0:1:9:1 and 0:1:9:2
   hives correspondingly. A note is an attribute derived from base class XCAFDoc_Note that is attached to a separate
   label under the notes hive. An annotated item is represented by XCAFDoc_AssemblyItemRef attribute
   attached to a separate label under the annotated items hive. Notes are linked to annotated items by means of
   XCAFDoc_GraphNode attribute, where notes play parent roles and annotated items - child roles.
2. XCAFDoc_AssemblyItemRef defines a weak reference to a label with optional attribute GUID or sub-shape index.
3. A capability to store note/annotation labels in XCAFDoc_ViewTool was added.
4. XDE User guide was updated

6 years ago0028388: Boolean common of simple face and solid results in empty compound
mkv [Tue, 29 Aug 2017 11:34:28 +0000 (14:34 +0300)]
0028388: Boolean common of simple face and solid results in empty compound

Problem is not reproduced on current master. Issue must be closed on 7.2.0.
Test case was added only

6 years ago0028478: Scope Names Are Swallowed in Message_ProgressSentry Constructors
abv [Fri, 18 Aug 2017 12:05:34 +0000 (15:05 +0300)]
0028478: Scope Names Are Swallowed in Message_ProgressSentry Constructors

Tests are added to control output and performance of progress indicator (bugs fclasses bug28478 and perf fclasses progress, respectively).

Implementation of class Draw_ProgressIndicator is improved to update indicator basing on achieved total progress (1% by default) instead of elapsed time since last update.

Method OSD_Chronometer::Restart() is fixed to actually reset the counter.

DRAW command readstl is improved to show progress indicator if configured (by command XProgress).

Description of class Message_ProgressIndicator is updated; code example is added in description of Message_ProgressSentry.

6 years ago0029004: DRAW - update help of chrono and dchrono commands
abv [Tue, 29 Aug 2017 03:59:28 +0000 (06:59 +0300)]
0029004: DRAW - update help of chrono and dchrono commands

Help of DRAW commands chrono and dchrono is updated according to changes made within #27691

6 years ago0029063: Configuration - improve paths in environment files
apn [Mon, 28 Aug 2017 11:17:45 +0000 (14:17 +0300)]
0029063: Configuration - improve paths in environment files

Change absolute paths to relative in OCCT environment files.
Move content of vcver.bat to env.bat.

6 years ago0029055: Visualization, Image_AlienPixMap - fallback using Wincodec
kgv [Fri, 25 Aug 2017 21:48:23 +0000 (00:48 +0300)]
0029055: Visualization, Image_AlienPixMap - fallback using Wincodec

Possibility to read and write images in BMP, PNG, JPEG formats without using FreeImage library is provided on Windows using system image library.

6 years ago0028995: UnifySameDomain produces invalid shape
emv [Fri, 18 Aug 2017 10:31:57 +0000 (13:31 +0300)]
0028995: UnifySameDomain produces invalid shape

Synchronization of the ShapeAnalysis_Edge behavior with the BRepCheck_Edge by adding check for 2d curves on planes.

Implementation of the BRep_Tool::CurveOnPlane method to avoid code duplication for making PCurve of the edge on planar face.

6 years ago0029058: Coding rules, OpenGl_Window - eliminate memory leak after XGetVisualInfo
kgv [Sun, 27 Aug 2017 18:53:16 +0000 (21:53 +0300)]
0029058: Coding rules, OpenGl_Window - eliminate memory leak after XGetVisualInfo

Minor memory leak occurring at creation of the view is eliminated.

6 years ago0028131: BRepOffset_MakeOffset can't create offset with a face which created by filli...
abv [Tue, 22 Aug 2017 12:05:00 +0000 (15:05 +0300)]
0028131: BRepOffset_MakeOffset can't create offset with a face which created by filling 3 bsplinecurve

Handling of degenerated points (with all derivatives zero) in GeomEvaluator_OffsetSurface is improved by iterative movement towards middle of the surface (extension of one-step approach implemented earlier in #28112).

6 years ago0028780: HLR with focus does not seem to work
abv [Fri, 25 Aug 2017 13:23:05 +0000 (16:23 +0300)]
0028780: HLR with focus does not seem to work

Method HLRBRep_Curve::D1() is corrected to apply transformation to a point according to current projection parameters

6 years ago0029048: Draw - avoid setting default paths to scripts and test data folders if set...
abv [Thu, 24 Aug 2017 12:13:43 +0000 (15:13 +0300)]
0029048: Draw - avoid setting default paths to scripts and test data folders if set externally

Avoid adding default paths to test scripts when DRAW is started if relevant variables (CSF_TestStriptsPath) are already defined in the environment.

6 years ago0029053: Configuration, CMake - fix env.bat for starting Draw Harness for MinGW build
kgv [Fri, 25 Aug 2017 14:57:15 +0000 (17:57 +0300)]
0029053: Configuration, CMake - fix env.bat for starting Draw Harness for MinGW build

6 years ago0029051: Visualization, TKOpenGl - wrong color of transparent dynamic highlight with...
kgv [Fri, 25 Aug 2017 12:49:40 +0000 (15:49 +0300)]
0029051: Visualization, TKOpenGl - wrong color of transparent dynamic highlight with OIT tuned ON

OpenGl_PrimitiveArray::Render() - removed obsolete code, which become redundant (and broken)
after moving rendering of transparent objects into OpenGl_LayerList::renderTransparent().

6 years ago0028195: Boolean common returns empty result for a solid where some surfaces of revol...
mkv [Fri, 25 Aug 2017 10:35:15 +0000 (13:35 +0300)]
0028195: Boolean common returns empty result for a solid where some surfaces of revolution touch the axis

Problem is not reproduced on current master. Issue must be closed on 7.2.0.
Test case was added only

6 years ago0029049: Visualization - restore removed class DsgPrs_DatumPrs
kgv [Fri, 25 Aug 2017 06:14:39 +0000 (09:14 +0300)]
0029049: Visualization - restore removed class DsgPrs_DatumPrs

6 years ago0029047: Upgrade guide -- some changes in OCCT 7.2.0 are not described
abv [Thu, 24 Aug 2017 12:04:14 +0000 (15:04 +0300)]
0029047: Upgrade guide -- some changes in OCCT 7.2.0 are not described

Upgrade Guide is updated to describe:
- Removal of typedefs to double in Quantity and V3d
- Removal of support of orientation in classes BRepTools_ReShape and ShapeBuild_ReShape
- Removal of AIS methods taking/returning Quantity_NameOfColor instead of Quantity_Color
- Removal of active texture state from OpenGl_Workspace

6 years ago0029025: TInspector include files are not installed to inc directory by CMake
nds [Thu, 24 Aug 2017 05:25:47 +0000 (08:25 +0300)]
0029025: TInspector include files are not installed to inc directory by CMake

TInspector headers are collected in 'inc/tools' directory.

Extending DRAW Commands;

Eliminating warnings;

Improve Export to ShapeView dialog;

Avoid crash with QML using;

6 years agoUpdate of tests database
apv [Thu, 24 Aug 2017 09:44:03 +0000 (12:44 +0300)]
Update of tests database

Test for 0027049: Make non-destructive mode be defined by default in Boolean operations
Test for 0027052: Test boolean gdml_private ZI5 failure
Test for 0027069: IGES parser does not recognize comments in Parameters section
Test for 0027090: Point is classified IN solid but actually it is OUT
Test for 0027170: Reading STEP files produces invalid shapes
Test for 0027186: IGES - reconsider creation of Undefined entity in case of failure
Test for 0027214: Duplicate of test cases
Test for 0027224: Incorrect result of boolean operation in boolean bcut_complex Q1 test case
Test for 0027227: Intersection curve is not continued to the surface boundary
Test for 0027246: ShapeFix_Shape destroys shape
Test for 0027251: Shape becomes invalid when exported to STEP and imported back
Test for 0027316: exception when XAddShape
Test for 0027378: BRepLib_MakeFace produces invalid faces on periodic surfaces in case the given parametrization does not match the default
Test for 0027390: Box and Ellipsoid shape boolean cut and common introduce invalid result.
Test for 0028119: Blend fails on fused identical but shifted tori
Test for 0028144: Step reader - regression in comparison of version OCCT654
Test for 0028151: Sewing faces results in a shell with very big tolerance
Test for 0027160: Weird results of the pipe algorithm
Test for 0027623: Cannot find intersection line between two trimmed planar surfaces
Test for 0027683: Inaccurate result by bopcut
Test for 0027687: Section between shells of hull and deck is not closed
Test for 0027711: Blend-on-blend corrupts the shape
Test for 0027784: Thickness fails on cylinder with draft
Test for 0027908: Exception during offset computation
Test for 0027909: Exception during offset computation
Test for 0027910: Sharing between edges was lost after offset operation
Test for 0027911: Exception during offset computation
Test for 0027912: Exception during offset computation
Test for 0027928: BOP common produces empty compound
Test for 0027948: Cut produces unexcpected shape
Test for 0027950: Result of intersection algorithm depends too much on surface trim bounds
Test for 0027701: Crash when export empty solid to STEP
Test for 0027722: STEP error for Ellipse revol shape

6 years ago0029015: Testdiff - possibility to visualize image differences by toggling
abv [Fri, 18 Aug 2017 08:00:24 +0000 (11:00 +0300)]
0029015: Testdiff - possibility to visualize image differences by toggling

Command testdiff is improved to make HTML elements in the report showing diff images interactive: when user clicks on a diff image by mouse, it triggers between the A and B images.
The diff image is shown back when the mouse cursor leaves the image.

6 years ago0028964: Draw - need to have command to apply ShapeFix_FixSmallFace tool
abv [Mon, 21 Aug 2017 10:19:46 +0000 (13:19 +0300)]
0028964: Draw - need to have command to apply ShapeFix_FixSmallFace tool

DRAW command fixsmallfaces is added to fix (remove) small faces in the shape.
Command OCC22586 is removed (replaced by fixsmallfaces).

Test bug28112_2 using that command is added for the two last shapes in issue #28112; test bug28112 is renamed to bug28112_1.
Test bug22586 is changed to use the new command.

6 years ago0028287: CMake install does not copy pdb files in RelWithDebInfo mode
ski [Mon, 21 Aug 2017 13:24:06 +0000 (16:24 +0300)]
0028287: CMake install does not copy pdb files in RelWithDebInfo mode

Installation of .pdb files was corrected.

6 years ago0027018: Documentation - blockquotes are incorrectly formatted in PDF
ysn [Mon, 21 Aug 2017 10:08:27 +0000 (13:08 +0300)]
0027018: Documentation - blockquotes are incorrectly formatted in PDF

Trailing space is removed after ">" to avoid breaking the quote block in PDF output.

A section about quotes are added in the documentation guide.

6 years ago0028332: Unstable tests in group gdt export
ika [Mon, 21 Aug 2017 12:22:39 +0000 (15:22 +0300)]
0028332: Unstable tests in group gdt export

Add initialization of variable GDTMode in STEP writer.

6 years ago0029031: Visualization - Prs3d_Drawer::SetShaderProgram() has no effect
kgv [Tue, 22 Aug 2017 07:23:41 +0000 (10:23 +0300)]
0029031: Visualization - Prs3d_Drawer::SetShaderProgram() has no effect

Prs3d_Drawer::SetShaderProgram() now takes into account HasOwn*** flags.

6 years ago0028913: UnifySameDomain crashes with error: "a shape is modified and removed simulta...
emv [Fri, 18 Aug 2017 13:00:07 +0000 (16:00 +0300)]
0028913: UnifySameDomain crashes with error: "a shape is modified and removed simultaneously"

Correct filling of the history of the modifications of the shapes in ShapeUpgrade_UnifySameDomain algorithm.

Test cases for the issue.

6 years ago0027936: [regression] BRepAlgoAPI_Common returns empty result for a solid and a face
apv [Wed, 23 Aug 2017 11:24:54 +0000 (14:24 +0300)]
0027936: [regression] BRepAlgoAPI_Common returns empty result for a solid and a face

Problem is not reproduced on current master. Issue must be closed on 7.2.0.
Test case was added only.

6 years ago0028999: Modify Qt Browser build option
nds [Tue, 15 Aug 2017 13:52:59 +0000 (16:52 +0300)]
0028999: Modify Qt Browser build option

'BUILD_Inspector' CMake option switches ON/OFF Inspector in compilation procedure (add additional dependency to Qt third party product)
'inspector.bat' starts sample to demonstrate possibilities of this tool.
Replacing TOOLS to INSPECTOR key for 'pload' command in DRAW cases due to this change in DrawPlugin.

6 years ago0028997: Documentation - Visual3d_Layer removed, but still in the documentation
kgv [Tue, 15 Aug 2017 18:07:55 +0000 (21:07 +0300)]
0028997: Documentation - Visual3d_Layer removed, but still in the documentation

The User Guide has been checked for presence of removed functionality.

6 years ago0029011: Draw Harness - simplify diffimage command syntax
kgv [Thu, 17 Aug 2017 15:18:05 +0000 (18:18 +0300)]
0029011: Draw Harness - simplify diffimage command syntax

Command diffimage now accepts the following syntax:
  diffimage imageFile1 imageFile2 [diffImageFile]
            [-toleranceOfColor {0..1}=0] [-blackWhite {on|off}=off] [-borderFilter {on|off}=off]
            [-display viewName prsName1 prsName2 prsNameDiff] [-exitOnClose]

Command vinit now accepts the following syntax:
  vinit [-name viewName] [-left leftPx] [-top topPx] [-width widthPx] [-height heightPx]
        [-exitOnClose] [-display displayName]

Compatibility with old syntax is also preserved.
diffimage now can display compared images in 3D viewer.
The new option -exitOnClose can be used to exit application when closing the 3D View.

6 years ago0029021: Coding Rules - eliminate GCC warnings in Qt sample
kgv [Sat, 19 Aug 2017 11:40:40 +0000 (14:40 +0300)]
0029021: Coding Rules - eliminate GCC warnings in Qt sample

6 years ago0029016: Configuration, genproj.tcl - add missing definition of CSF_dl
kgv [Fri, 18 Aug 2017 09:33:23 +0000 (12:33 +0300)]
0029016: Configuration, genproj.tcl - add missing definition of CSF_dl

6 years ago0028854: The documentation should state where handle reference counting happens
Benjamin Bihler [Mon, 19 Jun 2017 08:55:26 +0000 (11:55 +0300)]
0028854: The documentation should state where handle reference counting happens

The comment to class opencascade::handle<> in Standard_Handle.hxx now explains better the features differing it from std::shared_ptr<>.

6 years ago0027760: [regression] BRepAlgoAPI_Common returns empty result
apv [Fri, 18 Aug 2017 11:48:13 +0000 (14:48 +0300)]
0027760: [regression] BRepAlgoAPI_Common returns empty result

Problem is not reproduced on current master. Issue must be closed on 7.2.0.
Test case was added only.

6 years agoUpdate of tests database
apv [Thu, 17 Aug 2017 07:39:08 +0000 (10:39 +0300)]
Update of tests database

Test for 0025930: thickness of spherical cap is invalid
Test for 0025939: SIGSEGV in MakeThickSolid
Test for 0025940: MakeThickSolid creates C0 continuous edges
Test for 0026604: GeomFill_Pipe doesn't fit given bounds
Test for 0026655: ChFi3d_Builder algorithm fails to build fillets if some input edges connect with seam edges
Test for 0026697: BRepFeat_MakePrism returns empty compound
Test for 0026716: Mesher cannot create a mesh of brep model due to ShapeFix_Wire::FixShifted()
Test for 0026735: Adjacent perpendicular edges are detected as overlapped by DRAW command checkoverlap.
Test for 0026793: General Fuse algorithm produces incorrect result
Test for 0026795: Unable to perform General Fuse operation on the attached faces
Test for 0026842: bopsection result does not contain any edges.
Test for 0026882: Edge/Edge intersection algorithm produces incorrect result
Test for 0026883: Wrong result of Boolean Operation
Test for 0026889: Very poor mesh result from shape
Test for 0026928: Edges are meshed too coarsly
Test for 0026933: Section works unstably due to incorrect work of the method IsExistingPaveBlock
Test for 0026943: Wrong projection of helix on cylinder by ShapeConstruct_ProjectCurveOnSurface
Test for 0026957: Unify same domain operation is slow for multiple shells
Test for 0026978: Interactive selection is insensitive to swept shell
Test for 0027004: ShapeUpgrade_UnifySameDomain produces invalid result
Test for 0026280: Mechanism 'ShapeFix' is unable to heal a shape
Test for 0026282: Mechanism 'ShapeFix' has errors revealed by wire tool 'FixTails'
Test for 0026291: BRepMesh produces mesh with gap on the attached shape
Test for 0026382: BRepMesh produces internal nodes outside the face interior
Test for 0027453: Wrongly meshed surface
Test for 0027524: The command checkshape does not find the maximal deviation between curves representations
Test for 0026225: Wrong result of chamfer in case of coinciding bound of chamfer's surface with bound of a face
Test for 0026295: Sweep fails with BRepFill_ContactOnBorder
Test for 0026374: GeomFill_Profiler fails to unify BSplines if one has knot distance less than PConf
Test for 0026558: Failing to build isoline for offset surface
Test for 0026563: Boolean cut operation in new API multi-tool mode performs fuse instead of cut
Test for 0026568: Exception when creating pipe
Test for 0027419: Incorrect result of Edge/Face intersection
Test for 0027469: Regression vs 6.9.1: Wrong result of Edge/Face intersection
Test for 0027471: Wrong result of pipe
Test for 0027472: Wrong result of cut
Test for 0027614: Sewing returns result with too high tolerance
Test for 0026154: Visualization - v3d viewer grid disappears due to automatic z-fit
Test for 0026174: Loss of color after the second write of file (iges).

6 years ago0029010: Launch custom.bat in samples before calling general environment
apn [Thu, 17 Aug 2017 13:17:20 +0000 (16:17 +0300)]
0029010: Launch custom.bat in samples before calling general environment

Replace calling custom.bat and general env.bat in samples.

6 years ago0028631: Modeling Algorithms - Crash while building a 2D circle tangent to another...
nds [Fri, 26 May 2017 14:19:51 +0000 (17:19 +0300)]
0028631: Modeling Algorithms - Crash while building a 2D circle tangent to another circle and passing through its center

Code correction includes also:
- extending GccEnt to have GccEnt_Position conversion to string value and backward;
- new GeometryTest_DrawableQualifiedCurve2d DRAW object to wrap GccEnt_QualifiedCirc/GccEnt_QualifiedLin.
  It is a DrawTrSurf_Curve2d with GccEnt_Position visualized in orange color.
- qcircle/qline DRAW command to create instance of GeometryTest_DrawableQualifiedCurve2d
- circ2d3Tan DRAW command to wrap GccAna_Circ2d3Tan taking qcircle/qline/point arguments.

6 years ago0028527: Visualization, AIS_InteractiveContext - custom selection presentation is...
kgv [Thu, 17 Aug 2017 08:43:08 +0000 (11:43 +0300)]
0028527: Visualization, AIS_InteractiveContext - custom selection presentation is never removed from View

6 years ago0029000: Update documentation of Boolean operations according to the new Error/Warnin...
emv [Wed, 16 Aug 2017 07:30:22 +0000 (10:30 +0300)]
0029000: Update documentation of Boolean operations according to the new Error/Warning reporting system

The documentation of Boolean Component has been updated - calls to ErrorStatus() method have been replaced with calls to HasErrors() method.

6 years ago0029009: Configuration - provide a way to get visual dif of SVG images
abv [Thu, 17 Aug 2017 08:50:31 +0000 (11:50 +0300)]
0029009: Configuration - provide a way to get visual dif of SVG images

New helper script svgdiff.bat is added in adm folder.
It can be used for enabling visual diff for SVG images in TortouseGit; see Git guide for details.

6 years ago0028959: Configuration, genproj - provide warning on update of scripts in root folder...
abv [Sat, 29 Jul 2017 06:42:16 +0000 (09:42 +0300)]
0028959: Configuration, genproj - provide warning on update of scripts in root folder (msvc.bat etc.)

When updating files msvc.bat and draw.bat/sh in the root folder by copying template from adm/templates, procedure genproj will give a warning (unless the files are already the same); if the target file is newer, its copy is saved with additional extension .bak.

6 years ago0028972: A not useful message is printed on copying of data in OCAF
vro [Fri, 4 Aug 2017 10:42:42 +0000 (13:42 +0300)]
0028972: A not useful message is printed on copying of data in OCAF

6 years ago0027561: Since OCCT 7.0.0, exporting a curve to STL creates a file that results in...
abv [Tue, 15 Aug 2017 14:58:53 +0000 (17:58 +0300)]
0027561: Since OCCT 7.0.0, exporting a curve to STL creates a file that results in an endless loop when read

Add check for empty triangulation when writing STL file to report error instead of creation of empty file.

STL reader has been improved to properly handle case of empty or small files, and Ascii files without EOL at the end.

6 years ago0029007: Visualization, AIS_InteractiveContext - the method for accessing Detected...
kgv [Wed, 16 Aug 2017 17:08:04 +0000 (20:08 +0300)]
0029007: Visualization, AIS_InteractiveContext - the method for accessing Detected owners iterator is missing

Added new method AIS_InteractiveContext::DetectedCurrentOwner().
AIS_InteractiveContext header has been restructured (methods moved into groups)
and description has been cleaned up.

6 years ago0027381: Visualization - update description of method AIS_InteractiveContext::SetPixe...
kgv [Wed, 16 Aug 2017 09:58:46 +0000 (12:58 +0300)]
0027381: Visualization - update description of method AIS_InteractiveContext::SetPixelTolerance()

6 years ago0028249: Upgrade Guide - mention need to use option -std=c++0x when using GCC
abv [Wed, 16 Aug 2017 13:40:01 +0000 (16:40 +0300)]
0028249: Upgrade Guide - mention need to use option -std=c++0x when using GCC

6 years ago0028967: Boolean cut fails the first time, works the second time
mkv [Wed, 16 Aug 2017 13:55:19 +0000 (16:55 +0300)]
0028967: Boolean cut fails the first time, works the second time

6 years ago0028893: BOP cut produces result with artifacts consisting of tools parts
emv [Wed, 9 Aug 2017 06:13:18 +0000 (09:13 +0300)]
0028893: BOP cut produces result with artifacts consisting of tools parts

6 years ago0028323: Documentation - explain highlighting logic of AIS_InteractiveObject in the...
kgv [Wed, 16 Aug 2017 11:06:29 +0000 (14:06 +0300)]
0028323: Documentation - explain highlighting logic of AIS_InteractiveObject in the upgrade guide

6 years ago0028225: MFC sample on OCAF uses old-style definition of a Handle-class
abv [Tue, 15 Aug 2017 14:46:38 +0000 (17:46 +0300)]
0028225: MFC sample on OCAF uses old-style definition of a Handle-class

Obsolete approach to definition of OCCT RTTI in sample classes generated by WOK from CDL is replaced by usage of standard macros

6 years ago0028892: BOPAlgo_PaveFiller returns status "error: 11" in draw or raises exception...
emv [Fri, 11 Aug 2017 06:16:38 +0000 (09:16 +0300)]
0028892: BOPAlgo_PaveFiller returns status "error: 11" in draw or raises exception in app on the given shapes set

Boolean Operations algorithm - Added processing of the untouched edges (without edge set) in the UpdatePaveBlocks method.

IntCurvesFace_Intersector algorithm - Avoid calculation of the number of sample points on the surfaces with too small UV ranges.

6 years ago0027358: ShapeAnalysis_Curve::GetSamplePoints iteration logic isn't robust
razmyslovich [Mon, 12 Sep 2016 10:52:36 +0000 (12:52 +0200)]
0027358: ShapeAnalysis_Curve::GetSamplePoints iteration logic isn't robust

The iterating logic in ShapeAnalysis_Curve::GetSamplePoints() is made more robust: instead of iterative incrementing parameter by adding step, parameter at each point is calculated independently from index.
This avoids possible accumulation of numeric errors, and ensures that generated points are equally spaced and their quantity is respected in all cases.

6 years ago0028715: Invalid shape produced by reading of attached STEP file. Regression from...
skl [Mon, 31 Jul 2017 14:20:25 +0000 (17:20 +0300)]
0028715: Invalid shape produced by reading of attached STEP file. Regression from OCCT-6.9.1 to OCCT-7.0.0.

Corrections: to use fixed shape as result in the non-manifold mode was made.

Regression was due to using modified initial shape as result in the previous version OCCT. At present initial shape is not modified during ShapeProcessing. Therefore modification to use fixed result was made.

Additionally using of nonManifold flag is added to ShapeProcessing.

6 years ago0026516: Creating revolved shapes fails in some cases
apv [Mon, 14 Aug 2017 09:53:21 +0000 (12:53 +0300)]
0026516: Creating revolved shapes fails in some cases

6 years ago0026776: Bad result of section algorithm
mkv [Fri, 11 Aug 2017 12:54:31 +0000 (15:54 +0300)]
0026776: Bad result of section algorithm

6 years agoUpdate of tests database
apv [Wed, 9 Aug 2017 14:54:16 +0000 (17:54 +0300)]
Update of tests database

Test for 0023838: Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell)
Test for 0023866: GccAna_Circ2d3Tan does not find a circle
Test for 0023925: BRepFeat_SplitShape produces invalid shape
Test for 0023942: Pipe algorithms unrobust to number rounding
Test for 0025385: steep increase in tolerance by intersection
Test for 0025395: SIGSEGV in BRepOffsetAPI_MakeThickSolid
Test for 0025458: can a sweep be used to create 1-fold tori (using a closed wire as path)
Test for 0025478: Fillets can not touch
Test for 0025481: Edge must not contain obsolete curve representations
Test for 0025515: Boolean operation become worse for unknown reason.
Test for 0025521: Fillet creates shell with bad orientation of SubShape
Test for 0025551: BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface
Test for 0025586: Poor mesh quality, or failure of meshing for closed extruded surfaces with holes
Test for 0025626: Loft of ellipses shows wrinkle near seam edge
Test for 0025628: BRepMesh fails to mesh face with open wire, considered as correct by checkshape
Test for 0025693: Wire of BSplines fails bopcheck
Test for 0025730: result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0
Test for 0025738: BRepMesh fails to produce correct mesh for the face
Test for 0025776: HLR returns intersecting edges in OutLineV of helical sweep
Test for 0025798: BRepFeat_SplitShape returns invalid result
Test for 0025817: crescent face is not meshed
Test for 0025827: BRepMesh does not synchronize parameters of glued vertices on small edges
Test for 0025837: Bad triangulation when IGES loaded in meters
Test for 0025852: Text to BRep algorithm produces bad faces for circled symbols
Test for 0025856: BRepOffsetAPI_ThruSections returns an invalid shape if one wire contains degenerated edges
Test for 0025879: result of blend fails the bopcheck
Test for 0025967: Shape Healing fails to correct a face with missing poles and pcurves
Test for 0026052: Missing pcurves are computed incorrectly on two connected faces laying on the same surface
Test for 0025061: BRepMesh should skip internal wires with self intersections to produce mesh for the shape anyway
Test for 0024490: Computed surface properties differ substantially depending on NaturalRestriction flag
Test for 0024568: Split shape produces an invalid result
Test for 0024692: fuseedge corruption of spherical edge
Test for 0024772: Intersection of cylinder and cone produces incorrect results
Test for 0024954: BRepBuilderAPI_MakeFace adds wire with aribitary orientation
Test for 0025104: Prism from BSpline curve can not be chamfered
Test for 0025206: Fillet creates edge with C0 continuity
Test for 0025979: fillet creates faces with non-closed wires
Test for 0025983: Fusion of sweep and its mirror invalid
Test for 0025994: Boolean fuse result in invalid result.
Test for 0026034: Result of revolution aborts the bopcheck if translated
Test for 0026077: nurbsconvert of psphere fails the bopargcheck
Test for 0025989: toridial surface gets damaged in STEP export

6 years ago0028983: Configuration - HAVE_NO_DLL causes compilation to fail on MSVC
Thomas Krijnen [Thu, 10 Aug 2017 08:01:40 +0000 (10:01 +0200)]
0028983: Configuration - HAVE_NO_DLL causes compilation to fail on MSVC

6 years ago0028982: 2D offset creates faulty result from wire
emv [Tue, 8 Aug 2017 08:20:57 +0000 (11:20 +0300)]
0028982: 2D offset creates faulty result from wire

Protection of the Edge/Edge intersection algorithm (IntTools_EdgeEdge) from incomplete type conversion due to presence of the Trimmed curves by using Adaptors for getting typed curves instead of direct casting.

Test case for the issue.

6 years ago0027876: Draw mkoffset does not work
emv [Mon, 7 Aug 2017 13:47:53 +0000 (16:47 +0300)]
0027876: Draw mkoffset does not work

Updating the documentation for the Draw command *mkoffset*.

6 years ago0028980: Coding rules - suppress GCC compiler warnings -Warray-bounds within AdvApp2Var
kgv [Mon, 7 Aug 2017 18:36:10 +0000 (21:36 +0300)]
0028980: Coding rules - suppress GCC compiler warnings -Warray-bounds within AdvApp2Var

6 years ago0028979: Coding rules - eliminate GCC compiler warnings -Wstrict-aliasing within...
kgv [Mon, 7 Aug 2017 16:42:34 +0000 (19:42 +0300)]
0028979: Coding rules - eliminate GCC compiler warnings -Wstrict-aliasing within Graphic3d_ArrayOfPrimitives.lxx

6 years ago0028978: Coding rules - suppress GCC compiler warnings -Warray-bounds within NCollect...
kgv [Mon, 7 Aug 2017 15:04:33 +0000 (18:04 +0300)]
0028978: Coding rules - suppress GCC compiler warnings -Warray-bounds within NCollection_Array1

6 years ago0028974: Test cases for STL reader/writer
aml [Wed, 14 Jun 2017 05:07:26 +0000 (08:07 +0300)]
0028974: Test cases for STL reader/writer

Add new test grid for STL read/write.

6 years ago0028975: Draw Harness - DBRep_DrawableShape::display() throws exception while display...
kgv [Mon, 7 Aug 2017 09:26:58 +0000 (12:26 +0300)]
0028975: Draw Harness - DBRep_DrawableShape::display() throws exception while displaying shape without free edges in Debug mode

6 years ago0028973: Undo/Redo changes the order of some attributes
vro [Mon, 7 Aug 2017 05:52:40 +0000 (08:52 +0300)]
0028973: Undo/Redo changes the order of some attributes

6 years ago0028971: Configuration - fix compatibility with glibc 2.26+ due to xlocale.h removal
kgv [Mon, 7 Aug 2017 14:09:11 +0000 (17:09 +0300)]
0028971: Configuration - fix compatibility with glibc 2.26+ due to xlocale.h removal

6 years ago0025023: Check fails after cut operation
apv [Fri, 4 Aug 2017 09:04:14 +0000 (12:04 +0300)]
0025023: Check fails after cut operation