occt.git
15 months ago0033247: Modeling Algorithm - BOP report small edges problem and produce empty result CR0-WEEK-51 IR-2022-12-23
akaftasev [Fri, 9 Dec 2022 11:01:08 +0000 (14:01 +0300)]
0033247: Modeling Algorithm - BOP report small edges problem and produce empty result

Build shifted pcurve for ellipse and circle cases.

16 months ago0033265: Modeling Algorithms - Boolean operation hangs on the attached shapes IR-2022-12-16
akaftasev [Fri, 9 Dec 2022 16:32:00 +0000 (19:32 +0300)]
0033265: Modeling Algorithms - Boolean operation hangs on the attached shapes

Added test case.

16 months ago0033244: Modeling Algorithms - Surface-surface intersection produces the double curves CR0-WEEK-50
ifv [Tue, 6 Dec 2022 07:12:22 +0000 (10:12 +0300)]
0033244: Modeling Algorithms - Surface-surface intersection produces the double curves

IntAna_QuadQuadGeo.cxx - estimation of angular tolerance is added for case cone-cone

tests/lowalgos/intss/bug33244 - new test case added

16 months ago0030781: Sweep algorithm creates non-planar edges (orig. BOPAlgo_MakerVolume fails... CR0-WEEK-49 IR-2022-12-11
ifv [Fri, 2 Dec 2022 08:47:37 +0000 (11:47 +0300)]
0030781: Sweep algorithm creates non-planar edges (orig. BOPAlgo_MakerVolume fails to build a solid)

BRepFill/BRepFill_AdvancedEvolved.cxx - estimation of angular tolerance is added in method GetLids()

tests/evolved/voluved/bug30781 - new test added

16 months ago0033246: Data Exchange, DE Wrapper - Checking license leads to performance problem
dpasukhi [Fri, 2 Dec 2022 09:14:38 +0000 (09:14 +0000)]
0033246: Data Exchange, DE Wrapper - Checking license leads to performance problem

ReWork UpdateLoad functionality:
UpdateLoad calls only if provider is found.
UpdateLoad calls only for chosen type of translation (read/write)
Add new method to UpdateLoad all registered nodes.

16 months ago0031919: Modeling Algorithms - General Fuse raises exception on attempt to imprint...
nunomsil [Wed, 7 Dec 2022 14:45:36 +0000 (14:45 +0000)]
0031919: Modeling Algorithms - General Fuse raises exception on attempt to imprint a contour to a shell

Exception no longer occurs in current version. However, fuzzyvalue should be set to 1 for the result of the operation to make sense (result of common is 1 wire). Test case added

16 months ago0033235: Configuration - Solving the problem with static building of ExpToCasExe IR-2022-12-04
dpasukhi [Tue, 29 Nov 2022 21:27:40 +0000 (21:27 +0000)]
0033235: Configuration - Solving the problem with static building of ExpToCasExe

Added new dependency to ExpToCasExe - CSF_wsock32 (on Win only)

16 months ago0033250: Configuration - Missing Limits header file
dpasukhi [Fri, 2 Dec 2022 16:08:06 +0000 (16:08 +0000)]
0033250: Configuration - Missing Limits header file

Added new include limits to fix build problem

16 months ago0033218: Data Exchange - XCAFPrs_Texture not allow to use classes inherited from...
stv [Thu, 24 Nov 2022 09:48:22 +0000 (12:48 +0300)]
0033218: Data Exchange - XCAFPrs_Texture not allow to use classes inherited from Image_Texture

Type of field XCAFPrs_Texture::myImageSource was changed from Image_Texture to Handle(Image_Texture)

16 months ago0033232: Data Exchange, DE_Wrapper - Implement ability to change global session
dpasukhi [Tue, 29 Nov 2022 15:43:56 +0000 (15:43 +0000)]
0033232: Data Exchange, DE_Wrapper - Implement ability to change global session

Add ability to set/get global session

16 months ago0033230: Data Exchange, DE Wrapper - Update API to find CAD provider
dpasukhi [Tue, 29 Nov 2022 14:38:48 +0000 (14:38 +0000)]
0033230: Data Exchange, DE Wrapper - Update API to find CAD provider

Moved FindProvider method to public section
Made FindProvider as virtual to make it possible to overwrite.

16 months ago0033228: Data Exchange, DE Wrapper - Make the document argument of the method Read...
dpasukhi [Tue, 29 Nov 2022 09:36:58 +0000 (09:36 +0000)]
0033228: Data Exchange, DE Wrapper - Make the document argument of the method Read const handle

Rewrite document argument for DE_Wrapper Read method

16 months ago0032965: PMIVis - PMIVis_TOT_Vectorized text regressions
sshutina [Mon, 16 May 2022 09:11:15 +0000 (12:11 +0300)]
0032965: PMIVis - PMIVis_TOT_Vectorized text regressions

Added the ability to draw a shaded shape in the required group.

16 months ago0031865: Mesh - triangulation fails with large deflection values due to unhandled...
oan [Mon, 21 Nov 2022 17:04:09 +0000 (20:04 +0300)]
0031865: Mesh - triangulation fails with large deflection values due to unhandled Standard_OutOfRange, BRepMesh_PairOfIndex::Append()

Define minimum number of points for specific types of curves like it was done for circular edges.

16 months ago0033156: Modeling Algorithms - Planar face creation problem
knosulko [Fri, 28 Oct 2022 13:38:45 +0000 (16:38 +0300)]
0033156: Modeling Algorithms - Planar face creation problem

BRepLib_MakeFace::BRepLib_MakeFace: deleted degenerative edges from the input wire;
add test tests\mkface\mkplane\bug33156.

16 months ago0022821: Crash with BRepFilletAPI_MakeFillet
ddzama [Fri, 21 Oct 2022 13:28:30 +0000 (16:28 +0300)]
0022821: Crash with BRepFilletAPI_MakeFillet

test bugs modalg_7 bug22821 failed on fillet shape with 5-th edge.
Experimentally has been found that reducing of parameter
ChFi3d_Builder::tolesp for this task solves the issue.

So, as soluton it is proposed to link parameter toleps with parameter range of
spine curve. So, production coefficient has been set to pass all tests and
2 teset was extended: tests/blend/complex/A6, tests/bugs/modalg_7/bug22821

first has been extended to test different scaling factors,
second has been extended to make fillet on all edges from 12.

Additionally:
 - fixed misusage of tolesp in contexts where tolerance of point in 3d is excepted;
     In some context usage of tol_esp is irrelevant, because its essentiality - tolerance of the parameter on the 3d curve.
     So, in such context it has been replaced with new parameter tol3d (with fix value 1.0e-4).
     Get rid of tolapp3d duplication constant - tol_3d
 - tolesp = 5.0e-5 * (umax - umin)
 - tolesp replaced by tolpoint2d/tolpoint3d in several classes.
     Blend_Walking
     BRepBlend_SurfRstLineBuilder
     BRepBlend_RstRstLineBuilder
     Blend_CSWalking
     Instead `tolesp` - `tolgui` is employed in contexts where tolerance of guide curve parameter is excepted.
     Instead `tolesp` - `tolpoint2d` or `tolpoint3d` is employed in contexts where tolerance of point in 2d or 3d space is excepted.
 - Replace tolesp with tolpoint2d/tolpoint3d in BBPP function argument.
 - Use tolapp3d instead tolesp in BonVoisin function,

16 months ago0032934: Modelling Algorithms - BRepExtrema_DistShapeShape returns two solutions...
ddzama [Thu, 24 Nov 2022 13:24:14 +0000 (16:24 +0300)]
0032934: Modelling Algorithms - BRepExtrema_DistShapeShape returns two solutions instead of one

distmini of two edges returns two solution points instead one.
Second unneeded solution point is the same as first.

The problem was in fact that second edge has continuity C0.
In this case additional extremas analysis performed in special procedure

PERFORM_C0

And second point found in this procedure.
Folowing code of

BRepExtrema_DistanceSS::Perform (variant for Edge/Edge)

we should this additional solution extremas set
to be object of test TRI_SOLUTION before pushing
into main list of solution.
This solves the problem.
Corresponding test and compound with edges has been created.

Additionally, in the function

PERFORM_C0

an obvious error has fixed.

16 months ago0033180: We had a problem calling the OCC library at the customer site, and the progr...
akaftasev [Thu, 17 Nov 2022 07:25:36 +0000 (10:25 +0300)]
0033180: We had a problem calling the OCC library at the customer site, and the program crashed

Added status for thrusection operations and changed throw constructions to set of the status and break the function.

16 months ago0033225: Changing the status of tests on Ubuntu 20.04 and Windows 64 VC142 CR0-WEEK-47 IR-2022-11-28
smoskvin [Sat, 26 Nov 2022 12:37:37 +0000 (15:37 +0300)]
0033225: Changing the status of tests on Ubuntu 20.04 and Windows 64 VC142

16 months ago0033217: DRAW - Missed Standard_EXPORT attribute in DrawTrSurf_Set* functions
atereshi [Tue, 22 Nov 2022 13:46:06 +0000 (16:46 +0300)]
0033217: DRAW - Missed Standard_EXPORT attribute in DrawTrSurf_Set* functions

16 months ago0032818: Modeling Algorithms - Result of sweep operation is invalid
gelin [Wed, 9 Feb 2022 05:26:39 +0000 (13:26 +0800)]
0032818: Modeling Algorithms - Result of sweep operation is invalid

BRepFill_TrimShellCorner.cxx - setting correct orientation for NewEdge
tests/pipe/bugs/bug32818 - new test case added

16 months ago0030256: ACIS Import - crash while importing SAT file on constructing a pipe
ika [Thu, 6 Oct 2022 09:39:03 +0000 (12:39 +0300)]
0030256: ACIS Import - crash while importing SAT file on constructing a pipe

Fix for thin section with both first and last parameters located in one segment.

16 months ago0033193: Modeling Algorithms - Regression: UnifySameDomain raises SIGSEGV
ifv [Sat, 12 Nov 2022 17:45:36 +0000 (20:45 +0300)]
0033193: Modeling Algorithms - Regression: UnifySameDomain raises SIGSEGV

ShapeUpgrade_UnifySameDomain.cxx - method ReconstructMissedSeam is improved.

tests/bugs/heal/bug33193 - new test case added

16 months ago0027122: Data Exchange - invalid shapes are produced during model translation due...
atereshi [Fri, 15 Jul 2022 11:09:09 +0000 (14:09 +0300)]
0027122: Data Exchange - invalid shapes are produced during model translation due to huge face tolerance

Problem: The shape has two faces that dimensions are less than tolerance in the specified STEP file. This situation produces the invalid shape.
Change: Shape process has operator FixFaceSize, that is exactly suitable for this shape. The only option of FixFaceSize operator was added to InterfaceStatic, to manage the operator from DRAW command.
Result: The shape without artifacts can be reproduced from STEP file with an extra healing procedure.

16 months ago0033179: Modeling Algorithms - Crash in ShapeFix_Shape with the attached object,...
ifv [Mon, 24 Oct 2022 09:25:03 +0000 (12:25 +0300)]
0033179: Modeling Algorithms - Crash in ShapeFix_Shape with the attached object, when healing for fixing SameParameterFlag

BSplCLib_2.cxx - method MergeBSplineKnots is modified in order to have always not empty result.
Geom2dConvert.cxx - in static function MultNumandDenom tolerance for comparing knots is decreased.

tests/bugs/modalg_8/bug33179 test case added

16 months ago0026441: Modeling Algorithms - BRepOffset_MakeOffset affects original shape
ifv [Fri, 30 Sep 2022 12:45:10 +0000 (15:45 +0300)]
0026441: Modeling Algorithms - BRepOffset_MakeOffset affects original shape

BRepOffset_MakeOffset.cxx - tolerance control for building planar faces is implemented,
                            updating tolerance for initial entities is avoided

BRepAlgo_Loop.cxx - "total" setting tolerance 0.001 is removing

BRepLib.cxx - checking of "locked" for vertex is removing in static function UpdShTol

QABugs_20.cxx - add new command OCC26441 for checking tolerance differenses between two "identical" shapes

tests/bugs/modalg_7/bug30054 - case now is "BAD", because really result shape is invalid: many faces has not closed wires with huge gaps between ends of edges. Result was "OK" only because tolerances of vertices were increased by algorithm to cover all gaps.

tests/bugs/modalg_8/bug26441 - new test case added

Other test: B3, C8, A7, C8: they were "BAD" and now are "BAD", only some problems are changed.

16 months ago0033173: Modeling Algorithms - Regression in BRepExtrema_DistShapeShape causing Stand...
ifv [Mon, 17 Oct 2022 14:22:44 +0000 (17:22 +0300)]
0033173: Modeling Algorithms - Regression in BRepExtrema_DistShapeShape causing Standard_OutOfRange exception

Extrema/Extrema_ExtCC.cxx - checking number of solutions is added

tests/bugs/modalg_8/bug33173 - test case added

16 months ago0033187: Modeling Algorithms - Crash in postprocessing of imported shape
atereshi [Wed, 26 Oct 2022 13:59:54 +0000 (16:59 +0300)]
0033187: Modeling Algorithms - Crash in postprocessing of imported shape

Problem: Desynchronization of behaviors of GeomAdaptor_Curve::NbIntervals and
 GeomAdaptor_Curve::Intervals functions. First calculates number of intervals, then
 array is created and second fills the array. In some cases the size of array
 is less than need for filling.

Change:
1. Added function BSplCLib::Intervals that calculates number of interval and fills
 the array with its (if needed).
2. Simplified the algorithm of intervals calculation.
3. GeomAdaptor_Curve::NbIntervals/Intervals and Geom2dAdaptor_Curve::NbIntervals/Intervals
 use BSplCLib::Intervals.
4. When creating an adapter for the base curve, the boundaries of the adapter for the offset curve are applied.
5. Test for problem shape was created: bugs modalg_8 bug33187.

Result: The new approach eliminates the problem of writing outside the array bounds.

16 months ago0033144: Modeling Algorithms - Wrong result of Shape Proximity
knosulko [Thu, 20 Oct 2022 10:15:07 +0000 (13:15 +0300)]
0033144: Modeling Algorithms - Wrong result of Shape Proximity

Added step of refinement the coarser of the two shapes meshes to produce two meshes with approximately the same density.
Added tests lowalgos/proximity.

Fixed accounting of parameters to adjust number of initial sample points

16 months ago0033170: Modeling Algorithms - Checking for canonical geometry: plane detection problems
ifv [Fri, 14 Oct 2022 09:59:06 +0000 (12:59 +0300)]
0033170: Modeling Algorithms - Checking for canonical geometry: plane detection problems

GeomLib_IsPlanarSurface.cxx - using poles for checking BSpline, Bezier curves and surface changed
                              on checking by curve, surface points.

BRepOffset_MakeOffset.cxx - set normal of plane surface according to normal of initial face surface

tests/cr/bugs/bug33170 - new test case added

16 months ago0032977: OCC V7.5, V7.6 cannot read STEP color correctly for the root label, but...
ona [Tue, 11 Oct 2022 12:43:39 +0000 (15:43 +0300)]
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

16 months ago0033171: Modeling Algorithms - Invalid result of faces unification
Eugeny Maltchikov [Thu, 13 Oct 2022 14:44:47 +0000 (17:44 +0300)]
0033171: Modeling Algorithms - Invalid result of faces unification

Avoid unification of the faces belonging to the different shells.

17 months agoIncrement OCCT version up to 7.8.0dev
smoskvin [Wed, 2 Nov 2022 10:27:07 +0000 (13:27 +0300)]
Increment OCCT version up to 7.8.0dev

17 months ago0033198: Using a third-party Draco to compile in DEBUG mode OCCT-770 V7_7_0
dpasukhi [Fri, 11 Nov 2022 17:04:00 +0000 (17:04 +0000)]
0033198: Using a third-party Draco to compile in DEBUG mode

Added new CMake variables to build using DRACO
Windows OS works with Debug and Release configuration DRACO
Linux works with Release configuration DRACO

17 months agofixed compilation by the genproj tool
smoskvin [Wed, 9 Nov 2022 15:27:55 +0000 (18:27 +0300)]
fixed compilation by the genproj tool

17 months ago0033190: Error on de_wrapper/configuration/A3
atychini [Wed, 2 Nov 2022 19:10:10 +0000 (22:10 +0300)]
0033190: Error on de_wrapper/configuration/A3

Removing provider.VRML.OCC.read.memory.limit from the test because this parameter doesn't exist inside the Vrml_ConfigurationNode class

17 months ago0027142: Data Exchange - add possibility to set location in XCAFDoc_ShapeTool interface
aba [Mon, 8 Feb 2016 11:47:57 +0000 (14:47 +0300)]
0027142: Data Exchange - add possibility to set location in XCAFDoc_ShapeTool interface

17 months ago0033032: Samples - Warning on Ubuntu 20.04
azv [Wed, 29 Jun 2022 14:32:17 +0000 (17:32 +0300)]
0033032: Samples - Warning on Ubuntu 20.04

Fix warnings:
* catching polymorphic type 'class Standard_Failure' by value [-Wcatch-value=]
* this 'if' clause does not guard... [-Wmisleading-indentation]

17 months ago0032350: Data Exchange - STEPControl_Writer.writeStream(std::ostream)
mahaidong [Fri, 14 May 2021 06:35:28 +0000 (14:35 +0800)]
0032350: Data Exchange - STEPControl_Writer.writeStream(std::ostream)

STEPCAFControl_Writer::WriteStream(), STEPControl_Writer::WriteStream() - added interface for writing into stream.
STEPCAFControl_Reader::ReadStream() - added stream reading method (similar to STEPControl_Reader::ReadStream()).

Added option -stream to commands ReadStep, WriteStep, and testwritestep.

17 months ago0032053: Mesh - Invalid mesh after shape scaling
oan [Thu, 20 Oct 2022 18:09:09 +0000 (21:09 +0300)]
0032053: Mesh - Invalid mesh after shape scaling

Added test case

17 months ago0031926: Shape Healing - ShapeAnalysis::OuterWire() considers next iteration element...
oan [Wed, 31 Aug 2022 14:40:33 +0000 (17:40 +0300)]
0031926: Shape Healing - ShapeAnalysis::OuterWire() considers next iteration element always to be a wire causing skipping of primal one

ShapeAnalysis::OuterWire(): fixed missed logic when TopoDS_Iterator notifies about more objects to iterate, but there are only vertices and no additional wires at all.

17 months ago0033050: [Regression to OCCT 7.3.0] Mesh - meshing deflection is not reached
oan [Thu, 20 Oct 2022 11:25:26 +0000 (14:25 +0300)]
0033050: [Regression to OCCT 7.3.0] Mesh - meshing deflection is not reached

Add parameter EnableControlSurfaceDeflectionAllSurfaces to IMeshTools_Parameters enabling possibility to optimize mesh even on analytical surfaces;
Add corresponding parameter -surf_def_all to incmesh Draw command.

17 months ago0029093: BOP PaveFiller hungs and constantly consumes memory
akaftasev [Fri, 14 Oct 2022 08:00:50 +0000 (11:00 +0300)]
0029093: BOP PaveFiller hungs and constantly consumes memory

Method IntWalk_PWalking::ExtendLineInCommonZone(...) now is not called if the already found intersection point is on surface boundary.
As result, the intersection line going along any boundary will never be extended. It is appropriate for high-level OCCT-algorithm because they will take the boundary (not computed line) as intersection result.

17 months ago0032691: Modeling Algorithms - Exception when trying to build solid during sweep...
akaftasev [Tue, 18 Oct 2022 06:39:03 +0000 (09:39 +0300)]
0032691: Modeling Algorithms - Exception when trying to build solid during sweep algorithm

Changed the condition for checking the correctness of the sweep algorithm. Exception is no longer raised, algorithm finishes with "Not done" status.

17 months ago0033165: Data exchange - Instance name is not saved during writing step file
vmigunov [Wed, 19 Oct 2022 09:15:09 +0000 (12:15 +0300)]
0033165: Data exchange - Instance name is not saved during writing step file

Instance name is saved also with identity location transformation

17 months ago0028500: Artifact in shaded view of the shape
oan [Wed, 30 Oct 2019 09:08:19 +0000 (12:08 +0300)]
0028500: Artifact in shaded view of the shape

Increase minimum number of discretization points by one explicitly on each iteration of model healer to cover cases degenerated to line (for cases when face consists of 2 edges only).

17 months ago0033163: Bad definition of values in IMeshData_Status
oan [Tue, 18 Oct 2022 21:49:02 +0000 (00:49 +0300)]
0033163: Bad definition of values in IMeshData_Status

Corrected value of status enum

17 months ago0031476: Wrong shading of a toroidal face from a SAT file
oan [Tue, 18 Oct 2022 12:50:59 +0000 (15:50 +0300)]
0031476: Wrong shading of a toroidal face from a SAT file

Added test case

17 months ago0033141: BVH_BaseBox<T, 3, BVH_Box>::Transformed() returns empty box for identity...
kgv [Tue, 13 Sep 2022 10:01:00 +0000 (13:01 +0300)]
0033141: BVH_BaseBox<T, 3, BVH_Box>::Transformed() returns empty box for identity matrix

17 months ago0033138: [Foundation Classes] - NCollection_IncAllocator- Decrease the default block...
Eugeny Maltchikov [Mon, 12 Sep 2022 08:00:49 +0000 (11:00 +0300)]
0033138: [Foundation Classes] - NCollection_IncAllocator- Decrease the default block size

Set default memory block size for IncAllocator to 12KB to make sure the Low Fragmentation Heap is used for memory allocations on Windows platform.

17 months ago0023954: Modeling Algorithms - BRepPrimAPI_MakeRevol fails to recognize a torus case
abulyche [Fri, 9 Sep 2022 10:21:03 +0000 (13:21 +0300)]
0023954: Modeling Algorithms - BRepPrimAPI_MakeRevol fails to recognize a torus case

Fixed the Toroidal surface recognition;
The test case bugs/moddata_1/bug22296: the result is a torus with parameters: u [0, 2*PI], v [PI, 3*PI];
The test case bugs/modalg_5/bug23954: BAD -> OK.

17 months ago0033153: Configuration: Linker error when building from source for VS2022 x64.
ddzama [Thu, 6 Oct 2022 10:29:08 +0000 (13:29 +0300)]
0033153: Configuration: Linker error when building from source for VS2022 x64.

With enabled flag BUILD_USE_PCH we get an error of compilation of TKService:

1>Image_VideoRecorder.obj :
  error LNK2019:
    unresolved external symbol
      "int __cdecl av_strerror(int,char *,unsigned __int64)"
      (?av_strerror@@YAHHPEAD_K@Z) referenced in function
      "protected: class TCollection_AsciiString __cdecl Image_VideoRecorder::formatAvError(int)const "
      (?formatAvError@Image_VideoRecorder@@IEBA?AVTCollection_AsciiString@@H@Z)
1>Media_FormatContext.obj :
  error LNK2001:
    unresolved external symbol
      "int __cdecl av_strerror(int,char *,unsigned __int64)" (?av_strerror@@YAHHPEAD_K@Z)

And many other similar errors. Similar errors occures in some other projects too:

TKService
TKOpenGl
TKOpenGles
TKXCAF
TKXDEDRAW
TKDFBrowser
TKMessageModel
TKMessageView
TKShapeView
TKTInspector
TKTreeModel
TKVInspector
TKView

Proposed solution: turn off cotire from targets, whose compilation cause error while applying cotire tool.
In this ticket migration to cotire 1.8.1 (from 1.7.9) is done.

COTIRE_PREFIX_HEADER_IGNORE_PATH does not apply here, because its employing
causes some errors in 3rdparty libraries (for example, in TKService project).

Projects (TKDFBrowser TKMessageModel TKMessageView TKShapeView TKTInspector TKTreeModel TKVInspector TKView)
which use Qt may be proceeded by cotire tool, but after fixing a bug of cotire:

https://gitlab.kitware.com/cmake/cmake/-/issues/18353

0033153: Fix cotire bug, causing impossibility of compilation targets depending from Qt.

Solution is proposed in:
https://gitlab.kitware.com/cmake/cmake/-/issues/18353

17 months ago0033155: Regression [0033117] Coding, relocation R_X86_64_PC32 against symbol `TT_Run...
ddzama [Tue, 4 Oct 2022 10:40:57 +0000 (13:40 +0300)]
0033155: Regression [0033117] Coding, relocation R_X86_64_PC32 against symbol `TT_RunIns' can not be used.

After emploing intel oneTBB of version 2021.5 on NEXT platforms arises error on OCC Pr.:

`
*/ld: */libfreetype.a(truetype.o): relocation R_X86_64_PC32 against symbol `TT_RunIns' can not be used when making a shared object; recompile with -fPIC
*/ld: final link failed: bad value
`

Proposed solution: linking with shared object of libfreetype, rather than with archive library.
Despite that error occurred only in OCC Pr., it is worth to accept changes for OCCT too.

17 months ago0033147: [Regression to 7.6.3] Coding, Configuration - CMake Error TBB "Directory...
ddzama [Mon, 3 Oct 2022 07:37:14 +0000 (10:37 +0300)]
0033147: [Regression to 7.6.3] Coding, Configuration - CMake Error TBB "Directory is not set".

Previous approach do not taking into account, that oneTBB library may be installed in the system folder
on Linux. So, solve the problem it is proposed to employ find_package utility, that works great
as on Windows, as on Linux.

17 months ago0028414: Data Exchange, STEP - Face on a closed surface with single inner wire and...
atereshi [Tue, 20 Sep 2022 08:48:14 +0000 (11:48 +0300)]
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.

17 months ago0032850: Modeling Algorithms - Surface Surface Intersect Lost one line
gelin [Mon, 28 Feb 2022 06:13:31 +0000 (09:13 +0300)]
0032850: Modeling Algorithms - Surface Surface Intersect Lost one line

IntStart_SearchOnBoundaries.gxx - improving tangent criteria

17 months ago0033149: Mesh - misprint in BRepMesh_NURBSRangeSplitter::computeGrainAndFilterParamet...
kgv [Wed, 28 Sep 2022 16:56:48 +0000 (19:56 +0300)]
0033149: Mesh - misprint in BRepMesh_NURBSRangeSplitter::computeGrainAndFilterParameters()

17 months ago0028024: Data Exchange - create a convenient mechanism for managing shape healing...
atereshi [Mon, 16 May 2022 13:17:12 +0000 (16:17 +0300)]
0028024: Data Exchange - create a convenient mechanism for managing shape healing options when reading STEP or IGES file

Problem: There is no possibility to change shape healing options from DRAW without rewriting resource file.
Change: Shape healing parameters from STEP and IGES resource files were duplicated to InterfaceStatic. Resource manager initialize from InterfaceStatic if resource file name is empty.
Result: User can operationally change shape healing parameters from DRAW command using "param" command.

17 months ago0033152: Fix searching tbb in 3rdparty directory.
ddzama [Mon, 3 Oct 2022 07:34:39 +0000 (10:34 +0300)]
0033152: Fix searching tbb in 3rdparty directory.

Currently directory containing tbb 3rdparty installation should match the template tbb*.
But after using oneTbb of version 2021.5 standard installation directory is onetbb*.
So, for this 3rdparty modify searching template.

18 months ago0028640: Modeling Algorithms - BRepBuilderAPI_Transform builds invalid shape
nmanchen [Tue, 27 Sep 2022 06:46:43 +0000 (09:46 +0300)]
0028640: Modeling Algorithms - BRepBuilderAPI_Transform builds invalid shape

Adapt test case, the problem is not reproduced any more.
Problem is fixed by the commit: 46478ffe32cfca537a35b744700e082f59ec4c4c (0030008: BRepMesh does not respect angular deflection in internal area of bspline surface)

18 months agoUpdate version up to 7.7.0 V7_7_0_beta
smoskvin [Mon, 26 Sep 2022 17:06:01 +0000 (20:06 +0300)]
Update version up to 7.7.0

18 months ago0033117: migration to intel oneTBB 2021.5.0 (c++20 ready) IR-2022-09-23
ddzama [Thu, 15 Sep 2022 06:40:48 +0000 (09:40 +0300)]
0033117: migration to intel oneTBB 2021.5.0 (c++20 ready)

MSVC 2022/c++20.

After employed c++20 language standard errors of compilation in intel oneTBB occurred.
To get rid of compilation errors proposed moving on actual (2021.5.0) intel oneTBB occ products and occt.

After migration errors of compilation of TKernel and TMath have been occurred...
...Error occurred if using c++20 standard with new oneTBB 2021.5.0.
The error was:
   Error C2672 'tbb::v1::parallel_for_each': no matching overloaded function found TKernel
   could be 'void tbb::detail::d2::parallel_for_each(Iterator,Iterator,const Body &)' TKernel
   'tbb::detail::d2::parallel_for_each': the associated constraints are not satisfied TKernel
Note, that if we use c++14 or c++17, all ok, error does not occures.
To solve the problem, i have to modify `UniversalIterator` class:
`value_type` instead `UniversalIterator` converted to `IteratorInterface*`
`pointer` = `reference` = `value_type`
Method `DownCast` moved into `FunctorInterface` abstract class.
argument `UniversalIterator& item` of the unary fuctions converted to `IteratorInterface*`.
The proposed solution removes compilation error.

Affected projects: TKernel, TMath
Affected sources: src/OSD/OSD_Parallel.hxx, src/OSD/OSD_Parallel_Threads.cxx
Affected classes: class OSD_Parallel, OSD_Parallel::UniversalIterator, OSD_Parallel::FunctorInterface, OSD_Parallel::FunctorWrapperIter, OSD_Parallel:;FunctorWrapperInt.

18 months ago0031992: Modeling Algorithms - Offset of closed B-spline edge fails
jgv [Thu, 22 Sep 2022 09:51:18 +0000 (12:51 +0300)]
0031992: Modeling Algorithms - Offset of closed B-spline edge fails

1. Increase the tolerance of approximation.
2. Update auxiliary Draw command "topoload" for usage of option "-approx".

Add missing comment

18 months ago0032820: Data Exchange - add VRML reader to XCAF document
atychini [Tue, 12 Jul 2022 20:48:02 +0000 (23:48 +0300)]
0032820: Data Exchange - add VRML reader to XCAF document

Implementing VRML reader into XCAF document.
Updating DE_Wrapper according to VRML Reader.

18 months ago0032239: Data Exchange, STEP import - bounding box is too large
ona [Wed, 7 Sep 2022 15:48:09 +0000 (18:48 +0300)]
0032239: Data Exchange, STEP import - bounding box is too large

- ShapeFix_Face::FixMissingSeam method is fixed in order to handle degenerated torus
- Calculation of degenerated torus bounding box is fixed
- Test reference data is changed

18 months ago0033114: Visualization - AIS_Animation returns 0 elapsed time after finishing playback
mzernova [Fri, 2 Sep 2022 15:08:46 +0000 (18:08 +0300)]
0033114: Visualization - AIS_Animation returns 0 elapsed time after finishing playback

Added -elapsedTime option to DRAW vanim command

19 months ago0031853: Mesh - holes in triangulation with large linear deflection IR-2022-09-16
oan [Fri, 16 Sep 2022 14:28:22 +0000 (17:28 +0300)]
0031853: Mesh - holes in triangulation with large linear deflection

0030442: Mesh - broken triangulation on pipe shape

Scale down min size parameter for NURBS taking into account its U and V resolution in order to prevent comparison of 2d parameters with 3d value involved in filtering process.

19 months ago0032241: Mesh - wrong shading display of thrusections [regression since OCCT 7.4.0]
oan [Fri, 9 Sep 2022 08:29:38 +0000 (11:29 +0300)]
0032241: Mesh - wrong shading display of thrusections [regression since OCCT 7.4.0]

0032422: Mesh - Weird rendering
0029641: Mesher produce 'bad' result for extruded spline with given deviation coefficient

Added method BRepMesh_NURBSRangeSplitter::getUndefinedInterval() intended to compute checkpoint parameters for those NURBS surfaces which have no intervals at all. In this case number of poles is used to produce artificial regular grid which can be refined further. Add at least one midpoint for surfaces with one interval and only two poles.

Added BRepMesh_ExtrusionRangeSplitter and BRepMesh_UndefinedRangeSplitter derivatives from BRepMesh_NURBSRangeSplitter intended to handle special cases of extrusion surfaces and general surfaces with undefined parameters.

19 months ago0031449: Mesh - BRepMesh works too long and produces many free nodes on a valid face
oan [Thu, 1 Sep 2022 10:49:19 +0000 (13:49 +0300)]
0031449: Mesh - BRepMesh works too long and produces many free nodes on a valid face

Added test cases

19 months ago0033017: Implement an algorithm to find a proximity between a pair of shapes
knosulko [Fri, 5 Aug 2022 09:44:29 +0000 (12:44 +0300)]
0033017: Implement an algorithm to find a proximity between a pair of shapes

Extend "proximity" command to be able to compute the proximity value;
Implement classes for calculate proximity value between two shapes;
Add possibility to set up the number of sample points for the input shapes;
Add tests lowalgos/proximity.

19 months ago0033142: Configuration, genproj - ExpToCasExe building fails with generated VS projects
kgv [Tue, 13 Sep 2022 11:31:47 +0000 (14:31 +0300)]
0033142: Configuration, genproj - ExpToCasExe building fails with generated VS projects

Generate executable single MSVC project per-Unit instead of per-source file.

19 months ago0032960: Wrong result of BRepExtrema_DistShapeShape after translation.
ddzama [Mon, 29 Aug 2022 14:27:16 +0000 (17:27 +0300)]
0032960: Wrong result of BRepExtrema_DistShapeShape after translation.

Add corresponding test.

19 months ago0032859: Modeling Algorithms - BRepLib_FindSurface not return an expect plane IR-2022-09-09
ifv [Thu, 8 Sep 2022 11:08:00 +0000 (14:08 +0300)]
0032859: Modeling Algorithms - BRepLib_FindSurface not return an expect plane

BRepLib/BRepLib_FindSurface.cxx = removing very small values from coordinate of normal
bug32859 - test case added

19 months ago0033137: Updating minimal supported Microsoft Visual Studio version up to 2015 (VC140).
ddzama [Fri, 9 Sep 2022 06:29:27 +0000 (09:29 +0300)]
0033137: Updating minimal supported Microsoft Visual Studio version up to 2015 (VC140).

Microsoft Visual C++ compiler of version 2015 or higher should used to compile OCCT and Products on Windows.

19 months ago0032982: [Regression to 7.3.0] Mesh - Meshing the shape takes too long and visualizat...
oan [Fri, 26 Aug 2022 15:54:33 +0000 (18:54 +0300)]
0032982: [Regression to 7.3.0] Mesh - Meshing the shape takes too long and visualization is bad

New formula to calculate number of points along V axis of a cone depending on ratio of its size along V and U.

19 months ago0033058: JT Import - perform XT translation in multiple threads
atychini [Tue, 5 Jul 2022 15:39:08 +0000 (18:39 +0300)]
0033058: JT Import - perform XT translation in multiple threads

Creating mutex for proper parallel processing.

19 months ago0032921: Configuration, CMake - allow selecting C++ standard.
ddzama [Wed, 4 May 2022 09:57:51 +0000 (12:57 +0300)]
0032921: Configuration, CMake - allow selecting C++ standard.

Make C++ standard to be enable from cmake settings:

User will be able choosing C++ language standard by selecting cmake variable BUILD_CPP_STANDARD.
For correct working, CMAKE_CXX_STANDARD cmake built-in variable should be available.
To enable CMAKE_CXX_STANDARD, minimum CMAKE version has been updated to 3.1.

Available next standard items:
C++11
C++14
C++17
C++20
C++23

This issue consists from several steps to achive main goal:
1) Configuratiuon, CMake - allow selecting C++ standard.
2) Require minimum CMAKE version 3.1 (for enabling CMAKE_CXX_STANDARD).
3) More flexible CMAKE_CXX_COMPILER_ID identification (fixups previous commit!)
4) Add description of new CMAKE variable `BUILD_CPP_STANDARD` into documentation.
5) Update CMAKE requirements in documentation.
6) Set C++11 standard for several projects.

19 months ago0032214: Modeling Algorithms - 2d Offset produces wrong result
jgv [Mon, 22 Aug 2022 09:15:42 +0000 (12:15 +0300)]
0032214: Modeling Algorithms - 2d Offset produces wrong result

Add new option to convert input contours into ones consisting of 2D circular arcs and 2D linear segments only.

Update documentation

19 months ago0031481: Data Exchange - provide parser of STEP EXPRESS schema for generation of...
abv [Wed, 1 Apr 2020 22:21:08 +0000 (01:21 +0300)]
0031481: Data Exchange - provide parser of STEP EXPRESS schema for generation of new STEP entities

Integration of ExpToCas tool ported to modern state of OCCT:
- new package Express and toolkit TKExpress for EXPRESS data structures and OCCT class generator
- executable ExpToCasExe including lax/yacc parsers, for parsing a Part 21 file and generating classes

Formatting added files from package Express following OCCT Coding Rules

Changes for correspondence generated files to OCCT Code Rules.

Add generation hxx files with declaration of arrays.
If field is a HArray1 method for get length of array and method for get element of array by its index are generated.

Changes for generation parser from Lex and YACC files.

Update description file ReadMe.md

19 months ago0032986: Samples - csharp sample is crashed on compilation with VC++ 2022
ddzama [Fri, 19 Aug 2022 11:41:49 +0000 (14:41 +0300)]
0032986: Samples - csharp sample is crashed on compilation with VC++ 2022

While demanding c++ language standard c++20, the error of OCCTProxy compilation is occured:

warning C4857: C++/CLI mode does not support C++ versions newer than C++17; setting language to /std:c++17
error C7681: two-phase name lookup is not supported for C++/CLI or C++/CX; use /Zc:twoPhase-

Officially, C++/CLI mode does not support C++ version newer than C++17, so we should not demand C++20 to compile csharp samples.
Alternative solution - using /permissive (ConformanceMode = false), rather than default value /permissive- (ConformanceMode = true)
option to compile OCCTProxy. But alternative solution has been denied.
So, here is nothing to do to fix compilation of OCCTProxy project.

Nevertheless, error occures in IE_WPF_WinForms and IE_WinForms - if we trying to compile with VC++ 2022 (not demanding c++20):

warning MSB3274: The primary reference "*\OCCTProxy.dll" could not be resolved because it was built against the ".NETFramework,Version=v4.7.2" framework.
This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0".

To solve the problem it is proposed to demand by default the highest version of NETFramework - 4.8.
So, demanding NETFramework v4.8 does not crashing compilation of csharp samples with VC++ 2015.

19 months ago0032876: Modeling algorithms - BRepClass_FaceClassifier issue
abulyche [Thu, 1 Sep 2022 12:41:59 +0000 (15:41 +0300)]
0032876: Modeling algorithms - BRepClass_FaceClassifier issue

Modification of checking points for the state "ON" in BRepClass_Intersector.cxx;
Added the test for this ticket;
test case lowalgos/classifier/bug377: BAD -> OK

19 months ago0033104: Modeling Algorithms - Checking for canonical geometry: surface, close to...
ifv [Wed, 24 Aug 2022 06:14:05 +0000 (09:14 +0300)]
0033104: Modeling Algorithms - Checking for canonical geometry: surface, close to a cylinder, is not recognized
Adjusting parameters of algorithm for recognizing cylindrical surfaces.
Test case added

19 months ago0033112: Visualization - AIS_InteractiveContext::RecomputeSelectionOnly() may should...
mzernova [Fri, 2 Sep 2022 07:43:19 +0000 (10:43 +0300)]
0033112: Visualization - AIS_InteractiveContext::RecomputeSelectionOnly() may should handle selection tolerance changes

19 months ago0030955: [Regression to 7.3.0] Modeling Algorithms - Incorrect result of fuse operation CR0-WEEK-35 IR-2022-09-02
akaftasev [Wed, 31 Aug 2022 14:35:00 +0000 (17:35 +0300)]
0030955: [Regression to 7.3.0] Modeling Algorithms - Incorrect result of fuse operation

Added test case.

19 months ago0032172: Visualization, TKOpenGl - implement simple shadow mapping for a spot light...
mzernova [Wed, 24 Aug 2022 12:04:10 +0000 (15:04 +0300)]
0032172: Visualization, TKOpenGl - implement simple shadow mapping for a spot light source

added test: opengl/data/shadows/spotlight

19 months ago0033053: Data Exchange, Step Export - Compound with vertex is ignored IR-2022-08-26
dpasukhi [Tue, 5 Jul 2022 13:10:36 +0000 (16:10 +0300)]
0033053: Data Exchange, Step Export - Compound with vertex is ignored

Fixed problem with deep compound including with vertex group.

19 months ago0032547: Visualization, Select3D_SensitiveCylinder - implement picking of a hollow...
mzernova [Thu, 18 Aug 2022 14:12:03 +0000 (17:12 +0300)]
0032547: Visualization, Select3D_SensitiveCylinder - implement picking of a hollow cylinder

Select3D_SensitiveCircle now inherits directly from Select3D_SensitiveEntity.
The sensitive circle sector is created using the Select3D_SensitivePoly class directly.

Added appropriate methods for selecting sensitive circles.
Added parameter myIsHollow to Select3D_SensitiveCylinder class.
It allows you to search for intersections with cylinders without covers.

The Draw vcircle command has been extended with UStart and UEnd parameters
to create a sector of a circle.

Added tests: vselect/cone_cylinder/circle_sector
             vselect/cone_cylinder/circle_wire
             vselect/cone_cylinder/filled_circle
             vselect/cone_cylinder/transformed
             vselect/cone_cylinder/hollow_cone_cyl

19 months ago0032782: Visualization, TKD3DHost - improve robustness of test case opengl/drivers...
ngavrilo [Fri, 19 Aug 2022 09:33:52 +0000 (12:33 +0300)]
0032782: Visualization, TKD3DHost - improve robustness of test case opengl/drivers/d3dhost

19 months ago0033101: Data Exchange - STEP reader makes unexpected enormous scaling of some parts
gka [Wed, 17 Aug 2022 13:58:24 +0000 (16:58 +0300)]
0033101: Data Exchange - STEP reader makes unexpected enormous scaling of some parts

Modification to apply units scale factor for faces based on the triangulation

20 months ago0032957: Add Standard_Noexcept definition CR0-WEEK-33 IR-2022-08-19
ddzama [Wed, 17 Aug 2022 08:11:26 +0000 (11:11 +0300)]
0032957: Add Standard_Noexcept definition
into Standard_Macro.hxx and
employ Standard_Noexcept.

20 months ago0033100: Modeling Algorithms - XCAFDoc_Editor::RescaleGeometry does not rescale trian... IR-2022-08-12
msv [Thu, 11 Aug 2022 20:46:23 +0000 (23:46 +0300)]
0033100: Modeling Algorithms - XCAFDoc_Editor::RescaleGeometry does not rescale triangulations

Make XCAFDoc_Editor::RescaleGeometry to pass the flag theCopyMesh==true
in call to BRepBuilderAPI_Transform::Perform.

Correct the help of the command XRescaleGeometry.

20 months ago0032979: Data Exchange, RWGltf_CafWriter - support multi-threaded Draco compression
ichesnok [Tue, 26 Jul 2022 11:06:58 +0000 (14:06 +0300)]
0032979: Data Exchange, RWGltf_CafWriter - support multi-threaded Draco compression

'MultiThread' field was added to structure RWGltf_DracoParameters for using multithreading.
Class CafWriter_DracoEncodingFunctor was added for multithreaded compression.

20 months ago0033095: Data Exchange, Step Import - Wrong PMI values when loading a *.stp file...
dpasukhi [Wed, 10 Aug 2022 12:17:13 +0000 (15:17 +0300)]
0033095: Data Exchange, Step Import - Wrong PMI values when loading a *.stp file in m

Fixed problem with dimension tolerance values (upper/lower)
 - Update supported type for tolerance measure unit, now we can handle base class

20 months ago0033084: Visualization - Cylindrical prism is selectable only by its base when extrud... IR-2022-08-05
mzernova [Wed, 3 Aug 2022 09:46:53 +0000 (12:46 +0300)]
0033084: Visualization - Cylindrical prism is selectable only by its base when extruded in some directions

Fixed bounding boxes for Select3D_SensitiveCylinder.

Added display of Select3D_SensitiveCylinder presentation using the "vsensdis" command.
Added test vselect/bugs/bug33084.

20 months ago0032992: Visualization - Font_TextFormatter should wrap words when possible
ngavrilo [Thu, 14 Jul 2022 13:53:58 +0000 (16:53 +0300)]
0032992: Visualization - Font_TextFormatter should wrap words when possible

20 months ago0033006: Modelling Algorithms - UnifySameDomain raises exception IR-2022-07-29
jgv [Sat, 23 Jul 2022 14:22:30 +0000 (17:22 +0300)]
0033006: Modelling Algorithms - UnifySameDomain raises exception

Correct processing cases where a group of faces lies on U-periodic and V-periodic (torus-like) surface.

Add comments according to the remarks

20 months ago0033080: Wrong projection point from ShapeAnalysis_Surface
jgv [Thu, 28 Jul 2022 13:11:45 +0000 (16:11 +0300)]
0033080: Wrong projection point from ShapeAnalysis_Surface

Correct Draw command "projface" so that it really finds only projection points belonging to the face.

20 months ago0033068: Draw Harness, XDEDRAW - improve XGetProperties command to work with all...
dpasukhi [Mon, 20 Jun 2022 13:28:50 +0000 (16:28 +0300)]
0033068: Draw Harness, XDEDRAW - improve XGetProperties command to work with all document labels

Upgrade DRAW function XGetProperties to work with all document labels or sequence of labels

20 months ago0033074: Visualization, TKOpenGl - PBR shader compilation error on Mesa OpenGL 3... IR-2022-07-22
kgv [Fri, 22 Jul 2022 07:55:28 +0000 (10:55 +0300)]
0033074: Visualization, TKOpenGl - PBR shader compilation error on Mesa OpenGL 3.10033074

Graphic3d_ShaderManager::getPBREnvBakingProgram() - fix setting Graphic3d_ShaderProgram::SetPBR()
before defining GLSL version via defaultGlslVersion() that relies on this property.

20 months ago0033073: Coding Rules, RWGltf_CafWriter - suppress CLang warning coming from Draco...
kgv [Fri, 22 Jul 2022 06:53:33 +0000 (09:53 +0300)]
0033073: Coding Rules, RWGltf_CafWriter - suppress CLang warning coming from Draco library