occt.git
4 years ago0026249: Visualization, TKV3d - fix possible division by zero in SelectMgr_Rectangula...
vpa [Mon, 3 Aug 2015 15:41:56 +0000]
0026249: Visualization, TKV3d - fix possible division by zero in SelectMgr_RectangularFrustum

Added zero-length check for triangle normal in SelectMgr_RectangularFrustum::Overlaps

4 years ago0026272: Visualization - provide a possibility to activate selection modes without...
vpa [Fri, 31 Jul 2015 11:38:19 +0000]
0026272: Visualization - provide a possibility to activate selection modes without opening local context

- picked or selected objects are now highlighted via owners instead of interactive objects;
- support methods for owners were added to AIS_InteractiveContext;
- dynamically highlighted owners are now displayed in immediate mode;
- selection without opening of local context is enabled by default;
- added "-local" key to vselmode command to enable selection in local context;
- selection filters are now completely supported in AIS_InteractiveContext;
- the idea of differencing of selected items onto current (in interactive context) and selected (local selection) was eliminated;
- all calls to "current" were replaced by calls to "selected" in terms of future local context removal;
- AIS_InteractiveObject::mySelectionMode was removed;
- now each selectable object can define own selection mode for "global" selection of the whole object;
- whole object selection mode is 0 by default for all standard interactive objects;
- immediate structures are now added to topmost and top layer lists;
- added support of drawing immediate structures in different layers;
- unused code for immediate mode was removed;
- vfeedback and vexport commands now produce correct output for raytrace mode.

4 years ago0026477: Porting PRODUCTS and OCCT QT samples for OCCT 7.0.0
apn [Fri, 24 Jul 2015 09:44:18 +0000]
0026477: Porting PRODUCTS and OCCT QT samples for OCCT 7.0.0

Modified OCCT QT sample VoxelDemo

4 years ago0026447: Performance degradation intersecting cylindrical surfaces
apn [Thu, 30 Jul 2015 10:08:26 +0000]
0026447: Performance degradation intersecting cylindrical surfaces

Added test case bugs/modalg_6/bug26447

4 years ago0026485: Problem with the normals of a triangulated shape
oan [Thu, 30 Jul 2015 09:52:44 +0000]
0026485: Problem with the normals of a triangulated shape

Use gp::Resolution() instead of Precision::SquareConfustion() in order to normalize normal vectors according to implementation of gp_Vec::Normalize().

Test case

Test-case for issue #26485

4 years ago0026437: Visualization - Improve path tracing rendering engine
dbp [Thu, 30 Jul 2015 09:49:43 +0000]
0026437: Visualization - Improve path tracing rendering engine

Fix compile warnings.

4 years ago0026496: Error in use the BRepCheck_Analyzer
apv [Wed, 29 Jul 2015 13:38:31 +0000]
0026496: Error in use the BRepCheck_Analyzer
Test-case for issue #26496

4 years ago0026385: Fix to prevent BRepMesh from possible crash due to pointer to local variable...
abelcsik [Thu, 2 Jul 2015 14:30:57 +0000]
0026385: Fix to prevent BRepMesh from possible crash due to pointer to local variable stored inside Extrema_LocateExtPC

Made the BRepAdaptor_Curve a member of BRepMesh_EdgeParameterProvider to ensure that it is created before and destroyed after the Extrema_LocateExtPC that uses it.

4 years ago026464: BRepOffset_MakeOffset does not provide valid output
aml [Wed, 29 Jul 2015 13:14:09 +0000]
026464: BRepOffset_MakeOffset does not provide valid output

Handling of degenerated case improved.

Test-case for issue #26464

4 years ago0026481: Incorrect result of BRepOffsetAPI_MakeOffset: excess hanging arcs in the...
jgv [Wed, 29 Jul 2015 13:10:53 +0000]
0026481: Incorrect result of BRepOffsetAPI_MakeOffset: excess hanging arcs in the open result with join type GeomAbs_Arc

Test-case for issue #26481

4 years ago0026483: Option Run Parallel is not used by the command bopargcheck
pkv [Mon, 27 Jul 2015 07:06:15 +0000]
0026483: Option Run Parallel is not used by the command bopargcheck

I. New features:
No new features

II. Changes:
II.1 class BOPTest
-static function:
Standard_Integer bopargcheck (Draw_Interpretor& di,
                              Standard_Integer n,
                              const char** a )
The option has been retrieved and passed to the checker algorithm.

III. Modified entities:
packages:
BOPTest

4 years ago0026484: BRepExtrema_DistShapeShape hangs
nbv [Wed, 29 Jul 2015 12:38:41 +0000]
0026484: BRepExtrema_DistShapeShape hangs

Check in math_GlobOptMin::computeGlobalExtremum(...) method if the parameter went out of boundary(-ies).

Added test case bugs/modalg_6/bug26484

4 years ago0026473: Offset API fails to create offset shape
aml [Wed, 29 Jul 2015 12:33:30 +0000]
0026473: Offset API fails to create offset shape

Tolerance of map building changed.
Added possibility to work 0.0 offset value.

Added test cases bugs/modalg_6/bug26473_1 bug26473_2

4 years ago0026420: BOPAlgo_Builder resets "Closed" flag in the result
emv [Wed, 29 Jul 2015 12:29:42 +0000]
0026420: BOPAlgo_Builder resets "Closed" flag in the result

Set flag Closed to new Wires and Shells created in General Fuse algorithm if necessary.

Test-cases for issue #26420

4 years ago0026444: Boolean operation "bcut" gives invalid result between solid and halfspace...
emv [Wed, 29 Jul 2015 12:24:03 +0000]
0026444: Boolean operation "bcut" gives invalid result between solid and halfspace solid.

class BOPAlgo_PaveFiller
method void BOPAlgo_PaveFiller::PutPaveOnCurve
  (const Standard_Integer nV,
   const Standard_Real aTolR3D,
   BOPDS_Curve& aNC,
   const BOPCol_MapOfInteger& aMI,
   BOPCol_DataMapOfIntegerReal& aMVTol,
   const Standard_Integer iCheckExtend)

Do not put the pave on the curve in case if there is already one with the same parameter.
Update tolerance of the existing vertex to reach the new one.

Added test case bugs/modalg_6/bug26444.
Test boolean/volumemaker/G1 is stable now (deleted TODOs), test offset/faces_type_i/C9 is bad (offset is done with wrong result).

4 years ago0026467: Configuration, genproj.tcl - restore generation of Code::Blocks and XCode...
kgv [Thu, 23 Jul 2015 15:59:20 +0000]
0026467: Configuration, genproj.tcl - restore generation of Code::Blocks and XCode project files

Restore XCode generator.
Add missing dependencies to EXTERNLIB.
genproj.tcl - remove OS:mkdir() - duplicate of wokUtils:FILES:mkdir().
genproj.tcl - use osutils:usedOsLibs() for Code::Blocks.
src/OS - remove unused :LinksoWith() and :CompileWith().

adm/CMPLRS - remove unused CSF_ entities.
Remove config.h related code.
Add executable flag to codeblocks.sh and draw.sh scripts.
Setup ARCH variable using $tcl_platform(pointerSize).
wokdep:SearchLib() - use $tcl_platform(os) instead of $tcl_platform(platform)
for checking Linux-specific library paths.
wokdep:SearchFreeType() - fix misprint in ft2build.h header file name.
wokdep:SaveCustom() - export SHORTCUT_HEADERS to "custom.sh" as well, not only to "custom.bat".

4 years ago0026458: BRepBuilderAPI_Copy does not copy mesh structure
azv [Mon, 20 Jul 2015 11:23:56 +0000]
0026458: BRepBuilderAPI_Copy does not copy mesh structure

* The possibility to copy mesh is implemented. It may be enabled by copyMesh flag, by default it is disabled.
* Poly_Triangulation::Copy() method is added.
* The mesh is copied if and only if copyMesh flag is true.

4 years ago0026469: Methods Seek(), ChangeSeek() are missing in class NCollection_IndexedDataMap
pkv [Wed, 22 Jul 2015 11:11:36 +0000]
0026469: Methods Seek(), ChangeSeek() are missing in class NCollection_IndexedDataMap

I. New features:
1.1. class NCollection_IndexedDataMap
 - method:
 const TheItemType* Seek(const TheKeyType& theKey1) const
 has been added.
 The method Seek returns pointer to Item by Key.
 Returns NULL if Key was not found.

 - method:
 TheItemType* ChangeSeek (const TheKeyType& theKey1)
 has been added.
 The method ChangeSeek returns modifiable pointer to Item by Key.
 Returns NULL if Key was not found.

II. Changes:
 No changes.

III. Modified entities:
 packages:
 NCollection

4 years ago0026492: OpenGl_FrameBuffer does not releases itself correctly
duv [Tue, 28 Jul 2015 13:17:57 +0000]
0026492: OpenGl_FrameBuffer does not releases itself correctly

Logic related to myIsOwnBuffer flag in OpenGl_FrameBuffer was corrected.

4 years ago0026344: Visualization - provide a support of zoom persistent selection
apl [Mon, 20 Jul 2015 08:41:38 +0000]
0026344: Visualization - provide a support of zoom persistent selection

1) New Graphic3d_TransformPers structure for defining parameters and algorithm methods, featuring:
    a) application of transformation to projection and world view matrices;
    b) computation of model-world transformation of persistent object;
    c) computation of transformed bounding box of persistent object.

2) Transform persistence algorithm does not make any changes to model-world transformation of object (deals with projection and world view matrices only), thus making possible to employ local transformation in a usual way.

3) Support of BVH selection for transform persistent objects (pan, rotate, zoom, trihedron persistence only).

4) Support efficient frustum culling for transform persistent objects (pan, rotate, zoom, trihedron persistence only).

5) Support of z-fitting algorithm for world-view space transform persistent objects (rotate, zoom persistence only).

6) Rewrite usage of transform persistence structures and utilities classes:
    a) Replaced Graphic3d_CTransPers, TEL_TRANSFORM_PERSISTENCE by Graphic3d_TransformPers;
    b) Move functions from OpenGl_Utils.hxx to Graphic3d_TransformUtils.hxx;
    c) Extract matrix stack class from OpenGl_Utils.hxx to OpenGl_MatrixStack.hxx;

7) New class Graphic3d_WorldViewProjState to keep track of projection, world view matrices changes for a camera.

8) New test case bugs/vis/bug26344.

9) Renamed method Graphic3d_Camera::ModelViewState of  to ::WorldViewState for consistency.

4 years ago0026361: Visualization - move OpenGl_TextFormatter to Font_TextFormatter
isk [Wed, 29 Jul 2015 10:28:49 +0000]
0026361: Visualization - move OpenGl_TextFormatter to Font_TextFormatter
for usage without OpenGL.
Split OpenGl_TextFormatter into Font_TextFormatter and OpenGl_TextBuilder.
Font_TextFormatter can format a text independetly of OpenGl now.
OpenGl_TextBuilder generates primitive array required for rendering text
using OpenGl_Font instance.

4 years agoCorrected integration for issue 26393
bugmaster [Tue, 28 Jul 2015 17:55:48 +0000]
Corrected integration for issue 26393

4 years ago0026476: Visualization, TKOpenGl - do not enable GL_NORMALIZE in core profile
kgv [Fri, 24 Jul 2015 07:22:07 +0000]
0026476: Visualization, TKOpenGl - do not enable GL_NORMALIZE in core profile

4 years ago0026395: Merge clasees NCollection_CellFilter_NDim and NCollection_CellFilter
aml [Tue, 28 Jul 2015 09:18:04 +0000]
0026395: Merge clasees NCollection_CellFilter_NDim and NCollection_CellFilter

Deleted exceed class CellFilterNDim.
Now dimension count used as input parameter in NCollection_CellFilter.

minor corrections.

4 years ago0026479: Visualization, TKOpenGl - do not implicitly turn off stereo in OpenGl_Worksp...
kgv [Fri, 24 Jul 2015 11:05:35 +0000]
0026479: Visualization, TKOpenGl - do not implicitly turn off stereo in OpenGl_Workspace::RedrawImmediate()

4 years ago0025775: "Default Gradient Background" in V3d_Viewer has no effect in new created...
apl [Tue, 21 Jul 2015 18:29:09 +0000]
0025775: "Default Gradient Background" in V3d_Viewer has no effect in new created V3d_View.

4 years ago0026430: Visualization - segmentation fault in opened local context
vpa [Tue, 21 Jul 2015 14:04:42 +0000]
0026430: Visualization - segmentation fault in opened local context

- check for empty dataset in Select3D_SensitiveSet was added;
- test case for issue #26430

4 years ago0026401: Visualization - small boxes in front of big one disappear in perspective...
apl [Mon, 20 Jul 2015 17:26:05 +0000]
0026401: Visualization - small boxes in front of big one disappear in perspective view

4 years ago0026413: Visualization, SelectMgr_ViewerSelector - Pixel tolerance is overridden...
vpa [Mon, 20 Jul 2015 08:46:12 +0000]
0026413: Visualization, SelectMgr_ViewerSelector - Pixel tolerance is overridden by selection sensitivity

- now custom pixel tolerance from vselprecision is added to default sensitivity of the primitive;
- unnecessary field mytolerance was removed from SelectMgr_ViewerSelector;
- test case for issue #26413.

4 years ago0026323: Tolerance computing unification
nbv [Thu, 23 Jul 2015 13:43:37 +0000]
0026323: Tolerance computing unification

Computing is unified. ComputeFastTol3d() method was deleted.

If intersection result contains 3D- and corresponded two 2D-curves then tolerance will be computed with using BRepLib_CheckCurveOnSurface algorithm (check same-parameter).

If intersection result contains only 3D-curve (getting 2D-curve can be switched off by users) then tolerance will be computed with using GeomAPI_ProjectPointOnSurf algorithm (projects some point of 3D-curve on the surface and finds maximal distance).

Some workarounds have been deleted.

Some test case have been changed.

4 years ago0026019: Unstable behavior of test cases with operation mkvolume
emv [Wed, 15 Jul 2015 10:09:36 +0000]
0026019: Unstable behavior of test cases with operation mkvolume

The maps have been replaced with indexed maps to provide stability
of the algorithms based on the General Fuse algorithm.

4 years ago0026466: UnifySameDomain creates invalid result shape from valid input shape
isn [Tue, 28 Jul 2015 09:45:45 +0000]
0026466: UnifySameDomain creates invalid result shape from valid input shape

Test-case for issue #26466

4 years ago0026393: Add draw commands to evaluate history of modifications of BOP
emv [Tue, 28 Jul 2015 08:44:27 +0000]
0026393: Add draw commands to evaluate history of modifications of BOP

DRAW commands bmodified, bisdeleted, bgenerated have been implemented to track
the history of shapes modifications in Boolean and General Fuse operations.

Test-case for issue #26393

4 years ago0026392: Visualization, TKD3DHost - provide straight-forward base for integration...
kgv [Mon, 20 Jul 2015 08:08:12 +0000]
0026392: Visualization, TKD3DHost - provide straight-forward base for integration of TKOpenGl viewer into D3D-based application

D3DHost_GraphicDriver - new graphic driver providing D3D host for OpenGL workspace.
WNT_Window - handle virtual dimensions within virtual window.
OpenGl_FrameBuffer::Init() - add protection against 0 dimensions.
V3d_View::IsInvalidated() - add method to check view cache validation state.

ViewerTest::ViewerInit() - create virtual window without decorations on Windows.

4 years agoAdjusting test cases at new structure of OCCT
apv [Thu, 23 Jul 2015 08:46:13 +0000]
Adjusting test cases at new structure of OCCT

4 years ago0026468: Out of range exception on current master
aml [Wed, 22 Jul 2015 13:13:46 +0000]
0026468: Out of range exception on current master

Problem with different ranges fixed.

test cases update.

4 years ago0026310: Very slow boolean cut operations on cylinders
nbv [Wed, 22 Jul 2015 13:10:27 +0000]
0026310: Very slow boolean cut operations on cylinders

1. JoinWLines algorithm has been improved.
2. Reference to the V-boundaries is deleted when computing step.
3. Decreasing the tolerance when computing parameters of WLine.
4. Adding boundary point is forbidden if it lies in prolongation of found ones.
5. Possible reason of exception has been eliminated.
6. Processing of critical point has been improved.

Test cases for this issue have been created.
Correction of some test case(s).

Test case bugs/modalg_6/bug26310_4 is added

Update of test-cases for issue #26310

4 years ago0026454: Visualization, TKOpenGl - do not require deprecated function of GL_ARB_verte...
kgv [Fri, 17 Jul 2015 08:17:45 +0000]
0026454: Visualization, TKOpenGl - do not require deprecated function of GL_ARB_vertex_type_2_10_10_10_rev in core profile

4 years ago0026446: GeomConvert::ConcatC1 produces not expected curve
aml [Thu, 16 Jul 2015 09:10:38 +0000]
0026446: GeomConvert::ConcatC1 produces not expected curve

Concatenation fixed.

4 years ago0026435: Visualization - V3d_View::ConvertToGrid returns wrong coordinates for non...
apl [Tue, 14 Jul 2015 17:21:24 +0000]
0026435: Visualization - V3d_View::ConvertToGrid returns wrong coordinates for non-orthogonal projection

4 years ago0026418: Unjustified limitation on tolerance of a input shape in BRepOffset_MakeOffset
aml [Tue, 21 Jul 2015 08:19:14 +0000]
0026418: Unjustified limitation on tolerance of a input shape in BRepOffset_MakeOffset

Performance improvements and regression elimination.
Handling of degenerated case added.

Update of test-case offset faces_type_a A2 according to the new behavior
Test-case for issue #26418

4 years ago0026364: Foundation Classes, TKMath - Optimize BVH binned algorithm
dbp [Tue, 23 Jun 2015 09:34:06 +0000]
0026364: Foundation Classes, TKMath - Optimize BVH binned algorithm

4 years ago0026292: Visualization - Parallelize queue-based BVH builders (subclasses of BVH_Queu...
dbp [Fri, 17 Jul 2015 11:29:50 +0000]
0026292: Visualization - Parallelize queue-based BVH builders (subclasses of BVH_QueueBuilder)

4 years ago0026408: Exception during fixshape procedure.
gka [Tue, 21 Jul 2015 07:35:52 +0000]
0026408: Exception during fixshape procedure.

Attached invalid shape is represented by solid containing one face twice.
Protection from such case was added in ShapeFix_Shell class.
Creation of COMPSOLID was modified for case when shells composing COMPSOLID have the same shared faces in order to prevent hanging.
Small modification.Protection to avoid exception
Test-case for issue #26408

4 years ago0026424: Visualization, TKOpenGl - fix text rendering in core profile
kgv [Mon, 20 Jul 2015 17:58:55 +0000]
0026424: Visualization, TKOpenGl - fix text rendering in core profile

OpenGl_Context::init() - fix condition on initializing alien OpenGL context within core profile.
OpenGl_Font::renderGlyph() - use GL_RED data format in core profile.
OpenGl_Text::render() - do not use GL_ALPHA_TEST in core profile.

Test-case for issue #26424

4 years ago0026351: Wrong result found by the projection algorithm
aml [Wed, 24 Jun 2015 12:44:28 +0000]
0026351: Wrong result found by the projection algorithm

C2 continuity intervals changed to Knots intervals in case of Bspline curve.
Fixed incorrect extremaPC usage.

Test case for issue CR26351
Update of test-cases according to the new behavior

4 years ago0026423: Complete documentation of CPnts_AbscissaPoint Adv/Perform methods
BenjaminBihler [Mon, 20 Jul 2015 15:21:58 +0000]
0026423: Complete documentation of CPnts_AbscissaPoint Adv/Perform methods

4 years ago0026407: BRepMesh_Delaun should not take into account frontier edges on first pass...
oan [Mon, 20 Jul 2015 13:25:14 +0000]
0026407: BRepMesh_Delaun should not take into account frontier edges on first pass of algorithm

Correction of new vertices insertion: remove all triangles shot by point even if they contain frontier edges in order to prevent cases of free edge glued with frontier;
findNextPolygonLink: choose link with opposite direction to previous one as the last resort in case if the is no another option;
Enlarge bounding boxes by Precision::PConfusion() in order to not to miss possible intersections;

Test-case for issue #26407

Return NoIntersection in case of end point touch and isConsiderEndPointTouch flag is not set

Update of test-cases according to the new behavior

4 years ago0026308: Segmentation fault in BSplCLib::LocateParameter
nbv [Mon, 20 Jul 2015 12:23:00 +0000]
0026308: Segmentation fault in BSplCLib::LocateParameter

Detection of "jumping" knot value has been improved.
Test-case for issue #26308
Comment has been added in test case bugs/modalg_6/bug26308.

4 years ago0026406: BRepPrimAPI_MakeRevol crash when rotating Paraboloid face.
ifv [Mon, 20 Jul 2015 11:59:07 +0000]
0026406: BRepPrimAPI_MakeRevol crash when rotating Paraboloid face.

Test-case for issue #26406

4 years ago0026387: BRepPrimAPI_MakePrism crash when extruding Paraboloid face.
ifv [Mon, 20 Jul 2015 11:07:11 +0000]
0026387: BRepPrimAPI_MakePrism crash when extruding Paraboloid face.

Test-cases for issue #26387

4 years ago0025048: Wrong return value of GeomLib_Tool::Parameter
ifv [Fri, 10 Jul 2015 11:10:14 +0000]
0025048: Wrong return value of GeomLib_Tool::Parameter

4 years ago0026398: Tricheck command should be extended to show free nodes and links breaking...
oan [Mon, 20 Jul 2015 10:06:21 +0000]
0026398: Tricheck command should be extended to show free nodes and links breaking mesh consistency

Remark from MSV

4 years ago0026457: Failed build with OCCT_DEBUG enabled
abv [Fri, 17 Jul 2015 16:20:06 +0000]
0026457: Failed build with OCCT_DEBUG enabled

Debug code enabled with OCCT_DEBUG macro corrected for compiling with new handles.

QANCollection_Handle.cxx simplified so as to avoid need of using /bigobj option when building by Visual Studio; templates of project files, CMake projects, and test perf fclasses handle corrected accordingly.

Script genproj corrected to recognize VTK and to build DRAWEXE as executable (rather than DLL).

4 years ago0024002: Overall code and build procedure refactoring -- Mac OSX
abv [Fri, 17 Jul 2015 08:43:33 +0000]
0024002: Overall code and build procedure refactoring -- Mac OSX

Draw_Window_1.mm, Cocoa_Window.mm - fix compilation issues on OS X
CMake env.build.sh - fix libraries path

MSVC project templates - /bigobj flag added for all configurations (x64, x86, release and debug)

Standard_Type.hxx - enforce initialization of all type descriptors at library load

4 years ago0026453: NCollection_StlIterator - declare reference getters as const
kgv [Fri, 17 Jul 2015 06:44:38 +0000]
0026453: NCollection_StlIterator - declare reference getters as const

4 years ago0026448: Method Prepend() of sequence breaks it if argument is empty sequence
abv [Wed, 15 Jul 2015 21:34:02 +0000]
0026448: Method Prepend() of sequence breaks it if argument is empty sequence

Check for empty input sequence added in methods Append() and Prepend() of TCollection and NCollection sequences.

Test bugs fclasses bug26448 added

4 years ago0022827: Make non-CPP source files (CDLs, headers) to appear in MS VS project files...
ibs [Fri, 10 Jul 2015 10:44:52 +0000]
0022827: Make non-CPP source files (CDLs, headers) to appear in MS VS project files -- documentation

Generation of OCCT overview documentation added as building of "Overview" project.
BUILD_OCCT_OVERVIEW variable introduced to offer generation OCCT overview documentation in html format.
Overview md files added to overview OCCT project.

"Building with CMake" article updated; overview.html copy into an install directory.
CMAKE_BUILD_TYPE for single-configuration generators described; BUILD_CONFIGURATION removed.

4 years ago0024002: Overall code and build procedure refactoring - samples
apn [Fri, 10 Jul 2015 13:50:28 +0000]
0024002: Overall code and build procedure refactoring - samples

Modified MFC samples; minor fix in headers (for building products)

4 years ago0024786: Move functionality of WOK command wgenproj to OCCT tool genproj
ski [Wed, 9 Jul 2014 09:37:07 +0000]
0024786: Move functionality of WOK command wgenproj to OCCT tool genproj

WOK scripts used in generation of MSVC projects are put to adm/genproj.tcl
Batch script genproj.bat added, replacing 'wgenproj' command of WOK.

WOK tool for configuring custom.bat is also copied; it is called by genproj if custom.bat does not exist

Environment variable SHORTCUT_HEADERS can be defined in custom.bat to have headers put in inc just shortcuts to actual headers, instead of copies.
Corresponding option "copy OCCT short-cut headers instead of original one to inc folder" is added to genconf dialog

4 years ago0026389: The Visual Studio solution of OCCT generated by CMake should have all build...
ski [Wed, 8 Jul 2015 12:33:25 +0000]
0026389: The Visual Studio solution of OCCT generated by CMake should have all build configurations

the choice of OCCT build type moved to generated projects
debug library search removed from 3rdparty search mechanism
draw.bat receive 3 arguments: compiler, bitness and build type

4 years ago0022827: Make non-CPP source files (CDLs, headers) to appear in MS VS project files
ski [Mon, 19 Jan 2015 09:29:42 +0000]
0022827: Make non-CPP source files (CDLs, headers) to appear in MS VS project files

Header files(*.h, *.hxx, *.lxx, *.gxx) were included in Visual Studio projects.

4 years ago0026388: Setting debugging environment of the Visual Studio solution of OCCT generate...
ibs [Thu, 2 Jul 2015 13:55:21 +0000]
0026388: Setting debugging environment of the Visual Studio solution of OCCT generated by CMake

0. debugging environment added to DRAWEXE vcxproj
1. OCCT header files copied to inc directory of an installation folder. (the grouping of header files removed)
1. collect reference files of all OCCT header files in <binary dir>/inc during cmake configuration process
2. tcl installation procedure installs all dlls found in tcl bin folder (for win. this approach takes into account installing of zlib library that may be located in tcl bin folder)
4. each a OCCT project include just 3rdparty paths and <cmake binary dir>/inc folder

4 years ago0025114: CMake-based build tools for OCCT 7.0
ibs [Thu, 2 Jul 2015 15:17:54 +0000]
0025114: CMake-based build tools for OCCT 7.0

All CMake meta-projects for OCCT are put to OCCT code (including fragments previously generated by WOK).

"/bigobj" compiler flag added to TKQADraw because of the size of its object file

[GeomToStep & Graphic3d] private headers are included from current dir of including source file

4 years ago0024023: Revamp the OCCT Handle - non-cost reference cast
abv [Wed, 24 Jun 2015 21:45:56 +0000]
0024023: Revamp the OCCT Handle - non-cost reference cast

Code corrected to avoid passing object to function as non-const reference to handle of the base type where it is not necessary.

4 years ago0024023: Revamp the OCCT Handle - gcc and clang
abv [Fri, 3 Jul 2015 08:31:43 +0000]
0024023: Revamp the OCCT Handle - gcc and clang

Adaptations for compiling with GCC 4.7 and 4.8:
- Construction semantics is used for Handle objects being initialized by const Handle objects of derived type, to avoid overload resolution error in GCC 4.7.
- Missing includes added.
- Fixed bugs related to misuse of direct casts of handle.
- Eliminate CLang warnings on uninitialized and unused variables, functions, and expressions

4 years ago0024023: Revamp the OCCT Handle -- StepToGeom
abv [Fri, 3 Jul 2015 08:24:43 +0000]
0024023: Revamp the OCCT Handle -- StepToGeom

StepToGeom package refactored to avoid C-style casts of handles to derived types.

Instead of 45 classes, each defining single static method, it now defines 45 static methods in the main package class.
Results of conversion are returned in normal way rather than via function parameter.

Conflicts:
src/StepToGeom/StepToGeom_MakeSurfaceOfRevolution.cxx

4 years ago0024870: Provide OCCT RTTI test cases
abv [Tue, 30 Jun 2015 07:25:48 +0000]
0024870: Provide OCCT RTTI test cases

Test commands for checking performance and functionality of OCCT handles and RTTI added.
New test case added for that: test perf fclasses handle.

Implementation of opencascade::handle improved to enable compile-time error if two handles of incompatible types are compared.
Comparison of handle to NULL is not possible any more; method IsNull() should be used instead.

Method LDOM_MemManager::Doc() is removed to avoid cyclic dependency of headers; constructor of LDOM_Document(LDOM_MemManager&) is used directly instead.

Inclusion of headers corrected for compilation after previous patch.

4 years ago0024002: Overall code and build procedure refactoring -- manual
abv [Wed, 1 Jul 2015 14:13:27 +0000]
0024002: Overall code and build procedure refactoring -- manual

Documentation comments (mostly to package items, in package CDL) lost by CDL extraction are transferred to headers manually.
Some wrong comments (artifacts of CDL-generated code) are removed.
Missing header files added.
Yacc and Lex files removed from StepFile/FILES to avoid problems when building by WOK

Conflicts:
src/BRepOffsetAPI/BRepOffsetAPI_Sewing.hxx
src/Quantity/Quantity_AbsorbedDose.hxx
src/Quantity/Quantity_Acceleration.hxx
src/Quantity/Quantity_AcousticIntensity.hxx
src/Quantity/Quantity_Activity.hxx
src/Quantity/Quantity_Admittance.hxx
src/Quantity/Quantity_AmountOfSubstance.hxx
src/Quantity/Quantity_AngularVelocity.hxx
src/Quantity/Quantity_Area.hxx
src/Quantity/Quantity_Capacitance.hxx
src/Quantity/Quantity_CoefficientOfExpansion.hxx
src/Quantity/Quantity_Concentration.hxx
src/Quantity/Quantity_Conductivity.hxx
src/Quantity/Quantity_Consumption.hxx
src/Quantity/Quantity_Density.hxx
src/Quantity/Quantity_DoseEquivalent.hxx
src/Quantity/Quantity_ElectricCapacitance.hxx
src/Quantity/Quantity_ElectricCharge.hxx
src/Quantity/Quantity_ElectricCurrent.hxx
src/Quantity/Quantity_ElectricFieldStrength.hxx
src/Quantity/Quantity_ElectricPotential.hxx
src/Quantity/Quantity_Energy.hxx
src/Quantity/Quantity_Enthalpy.hxx
src/Quantity/Quantity_Entropy.hxx
src/Quantity/Quantity_Force.hxx
src/Quantity/Quantity_Frequency.hxx
src/Quantity/Quantity_Illuminance.hxx
src/Quantity/Quantity_Impedance.hxx
src/Quantity/Quantity_Inductance.hxx
src/Quantity/Quantity_KinematicViscosity.hxx
src/Quantity/Quantity_KineticMoment.hxx
src/Quantity/Quantity_Length.hxx
src/Quantity/Quantity_Luminance.hxx
src/Quantity/Quantity_LuminousEfficacity.hxx
src/Quantity/Quantity_LuminousExposition.hxx
src/Quantity/Quantity_LuminousFlux.hxx
src/Quantity/Quantity_LuminousIntensity.hxx
src/Quantity/Quantity_MagneticFieldStrength.hxx
src/Quantity/Quantity_MagneticFlux.hxx
src/Quantity/Quantity_MagneticFluxDensity.hxx
src/Quantity/Quantity_Mass.hxx
src/Quantity/Quantity_MassFlow.hxx
src/Quantity/Quantity_MolarConcentration.hxx
src/Quantity/Quantity_MolarMass.hxx
src/Quantity/Quantity_MolarVolume.hxx
src/Quantity/Quantity_Molarity.hxx
src/Quantity/Quantity_MomentOfAForce.hxx
src/Quantity/Quantity_MomentOfInertia.hxx
src/Quantity/Quantity_Momentum.hxx
src/Quantity/Quantity_PlaneAngle.hxx
src/Quantity/Quantity_Power.hxx
src/Quantity/Quantity_Pressure.hxx
src/Quantity/Quantity_Reluctance.hxx
src/Quantity/Quantity_Resistance.hxx
src/Quantity/Quantity_Resistivity.hxx
src/Quantity/Quantity_SolidAngle.hxx
src/Quantity/Quantity_SoundIntensity.hxx
src/Quantity/Quantity_SpecificHeatCapacity.hxx
src/Quantity/Quantity_Speed.hxx
src/Quantity/Quantity_SurfaceTension.hxx
src/Quantity/Quantity_Temperature.hxx
src/Quantity/Quantity_ThermalConductivity.hxx
src/Quantity/Quantity_Torque.hxx
src/Quantity/Quantity_Velocity.hxx
src/Quantity/Quantity_Viscosity.hxx
src/Quantity/Quantity_Volume.hxx
src/Quantity/Quantity_VolumeFlow.hxx
src/Quantity/Quantity_Weight.hxx
src/Quantity/Quantity_Work.hxx
src/V3d/V3d_Coordinate.hxx

4 years ago0024002: Overall code and build procedure refactoring -- automatic
abv [Sun, 12 Jul 2015 04:42:38 +0000]
0024002: Overall code and build procedure refactoring -- automatic

Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl":
- WOK-generated header files from inc and sources from drv are moved to src
- CDL files removed
- All packages are converted to nocdlpack

4 years ago0024023: Revamp the OCCT Handle -- ambiguity
abv [Thu, 2 Jul 2015 14:06:37 +0000]
0024023: Revamp the OCCT Handle -- ambiguity

Code corrected to avoid ambiguous situations due to changed implementation of Handle (overloaded methods accepting handles of different types).
In Adaptor3d_CurveOnSurface added method Load() with two parameters, allowing to avoid ambiguity of cast of handles when calling separate methods Load() for curve and surface, replacing by single call.
In DrawTrSurf and IGESData_IGESWriter, template variants of methods Set() and Send(), respectively, are added to avoid ambiguity when these methods are called with handles to derived types (using SFINAE).
In NCollection_DefineHSequence, method Append() accepting handle to another HSequence is made template, to be available only if argument has compatible type.

4 years ago0024023: Revamp the OCCT Handle -- downcast (manual)
abv [Thu, 2 Jul 2015 13:44:46 +0000]
0024023: Revamp the OCCT Handle -- downcast (manual)

Manual corrections of C-style casts of Handle types

4 years ago0024023: Revamp the OCCT Handle -- downcast (automatic)
abv [Thu, 2 Jul 2015 13:41:05 +0000]
0024023: Revamp the OCCT Handle -- downcast (automatic)

Automatic update by command "occt_upgrade . -downcast"

C-style cast of Handle to that of derived type (now illegal) is replaced by call to DownCast()
Const reference local variables of Handle type initialized by result of DownCast are replaced by normal variables.

4 years ago0024023: Revamp the OCCT Handle -- plugin
abv [Mon, 29 Jun 2015 06:17:43 +0000]
0024023: Revamp the OCCT Handle -- plugin

Definition of PLUGINFACTORY function changed to return Standard_Transient* instead of Handle(Standard_Transient), which cannot be returned by C-style function.
Default implementation of PLUGINFACTORY() instantiated by macro PLUGIN() is corrected accordingly.
Methods Factory() in persistence packages are made returning const & to handle; this is to reflect the fact that returned handle should point to existing object (usually statically allocated) rather than new one.

4 years ago0024023: Revamp the OCCT Handle -- GC
abv [Wed, 24 Jun 2015 21:39:28 +0000]
0024023: Revamp the OCCT Handle -- GC

Implementation of operator of type casting to resulting object simplified in classes of GC and GCE2d packages

4 years ago0024023: Revamp the OCCT Handle -- general
abv [Tue, 30 Jun 2015 07:25:12 +0000]
0024023: Revamp the OCCT Handle -- general

Missing headers added; includes of headers "Handle_...hxx" removed.

Misuses of macro Handle() and its use in typedefs corrected.

Alias classes Profile and Option are removed from IFSelect; ones defined in MoniTool are used directly.

Removed header files defining only Handle classes (except Image_PixMap_Handle.hxx)

Classes SelectMgr_BaseFrustum and now inherit Standard_Transient and can be manipulated by Handle (not NCollection_Handle)

Fixed reference-type local variable pointing to temporary object

Use of handle in conditional expressions and comparisons to NULL are replaced by call to method IsNull()

4 years ago0024023: Revamp the OCCT Handle -- automatic
abv [Thu, 2 Jul 2015 13:30:15 +0000]
0024023: Revamp the OCCT Handle -- automatic

Automatic upgrade by command "occt_upgrade . -handle"

4 years ago0024023: Revamp the OCCT Handle -- handle
abv [Wed, 1 Jul 2015 08:00:57 +0000]
0024023: Revamp the OCCT Handle -- handle

Macro defining Handle class is replaced by template class implementing the same concept (defined in Standard_Handle.hxx and Standard_Transient.hxx), opencascade::handle<>.

Header file Standard_DefineHandle.hxx becomes deprecated: the only useful macro DEFINE_STANDARD_RTTI is defined now in Standard_Type.hxx. Standard_DefineHandle.hxx is kept for compatibility, it defines macros previously used for definition of Handles and RTTI as empty. Macro DEFINE_STANDARD_HANDLE(C1,C2) is also kept for compatibility; now it expands to typedef "Handle_C1" to corresponding handle class.

Definitions of macro Handle() and STANDARD_TYPE() moved from Standard_Macro.hxx to Standard_Handle.hxx (new file) and Standard_Type.hxx, respectively.

New template class NCollection_Shared added, allowing to define sub-class manipulated by handle, for any non-transient class.

Adaptations for compiling with GCC 4.7

4 years ago0024859: Replace SortTools by STL equivalents
abv [Tue, 30 Jun 2015 07:47:45 +0000]
0024859: Replace SortTools by STL equivalents

Package SortTools and its derived classes are removed; STL sort algorithms are used instead.
Comparator objects are mostly reimplemented as local classes.

4 years ago0024750: Replace instantiations of TCollection generic classes by NCollection templat...
abv [Mon, 2 Jun 2014 06:08:25 +0000]
0024750: Replace instantiations of TCollection generic classes by NCollection templates -- manual changes

Forward declaration of TCollection instances as classes are replaced by inclusion of corresponding header.
Cyclic dependencies between declaration of collection class and its item are resolved by forward declaring a class in collection header.

4 years ago0024750: Replace instantiations of TCollection generic classes by NCollection templat...
abv [Sun, 28 Jun 2015 12:16:42 +0000]
0024750: Replace instantiations of TCollection generic classes by NCollection templates -- automatic

Automatic upgrade of code by command "occt_upgrade . -tcollection"

4 years ago0024947: Redesign OCCT legacy type system -- final corrections
abv [Thu, 14 Aug 2014 13:20:14 +0000]
0024947: Redesign OCCT legacy type system -- final corrections

Remaining missing includes added manually

4 years ago0024947: Redesign OCCT legacy type system -- automatic
abv [Sat, 11 Jul 2015 08:06:11 +0000]
0024947: Redesign OCCT legacy type system -- automatic

Automatic upgrade with command "occt_upgdare . -rtti"

4 years ago0024947: Redesign OCCT legacy type system
abv [Fri, 22 May 2015 03:40:28 +0000]
0024947: Redesign OCCT legacy type system

Global static functions instantiating RTTI descriptors for class types (used though STANDARD_TYPE macro) are replaced by template static method Instance() of the class Standard_Type.
Implementation of RTTI is revised accordingly (global registry of type descriptors added to ensure single instance of each type descriptor shared by all dynamic libraries).
Obsolete methods of Standard_Type class (IsInstance(), Ancestors()) are removed; new method Parent() is added returning type descriptor of the parent class.
Class Standard_AncestorIterator is removed; this iteration can be easily done by recursive calls to Standard_Type::Parent().

Definition of macro STANDARD_TYPE() moved from Standard_Macro.hxx to Standard_DefineHandle.hxx.
Inclusion of Standard_Type.hxx and the class header is now necessary for use of method DownCast() and function STANDARD_TYPE() for the class.
In general, Standard_Type.hxx should be included now instead of Standard_DefineHandle.hxx in places where these macros are used.

Macro DEFINE_STANDARD_EXCEPTION changed to define all methods inline; macro IMPLEMENT_STANDARD_EXCEPTION becomes obsolete.
Macros IMPLEMENT_DOWNCAST, IMPLEMENT_STANDARD_* become deprecated, they are still defined (as empty) for compatibility.

Implementation of Handle classes became fully inline.
Method get() is added in Handle classes returning pointer to the contained object.

RTTI removed from NCollection_Handle class.

Standard_Persistent is made empty descendant of Standard_Transient, instead of implementing its own hierarchy with reference counting.

Unused enumerations Standard_InternalType, Standard_WayOfLife, Standard_KindOfType are removed.
Global function HashCode() accepting Handle(Standard_Transient) is removed; HashCode() for Standard_CString with length should be used instead.

DRAW command dtryload is added for testing dynamic load / unload of the specified library.
New test perf fclasses bug24947 uses this command to measure performance of multiple (1000 times) loading / unloading OCCT libs on example of TKSTEP.

4 years ago0026369: Modeling Data - Geom_OffsetSurface direction is wrong for indirect conical...
apl [Mon, 6 Jul 2015 08:30:57 +0000]
0026369: Modeling Data - Geom_OffsetSurface direction is wrong for indirect conical surface

4 years ago0026394: Visualization - eliminate unused variable in SelectMgr_RectangularFrustum
vpa [Thu, 2 Jul 2015 17:00:32 +0000]
0026394: Visualization - eliminate unused variable in SelectMgr_RectangularFrustum

Unnecessary calculations were removed

4 years ago0026404: Visualization, Ray Tracing - use solid background color when gradient color...
kgv [Thu, 9 Jul 2015 11:25:31 +0000]
0026404: Visualization, Ray Tracing - use solid background color when gradient color is disabled

Test-case for issue #26404

4 years ago0026390: IntTools_Context should provide possibility to set tolerance used by PointOn...
oan [Thu, 2 Jul 2015 09:52:42 +0000]
0026390: IntTools_Context should provide possibility to set tolerance used by PointOnSurf projector instead using of strict value 1.e-12

New method SetPOnSProjectionTolerance to set projection tolerance has been added IntTools_Context. By default it is set to 1.e-12

4 years ago0026379: Wrong result produced by the volume maker algorithm
emv [Thu, 9 Jul 2015 11:17:49 +0000]
0026379: Wrong result produced by the volume maker algorithm

1. class BOPAlgo_ShellSplitter
static method void RefineShell(TopoDS_Shell& theShell,
                               BOPCol_ListOfShape& aLShX)
Added protection from INTERNAL edges.

2. class BOPAlgo_MakerVolume
method void BOPAlgo_MakerVolume::MakeBox(BOPCol_MapOfShape& theBoxFaces)
Creation of the overlapping box of proper size.

Test-cases for issue #26379

4 years ago0026356: Wrong result done by projection algorithm
aml [Thu, 9 Jul 2015 11:12:21 +0000]
0026356: Wrong result done by projection algorithm

Changed internal one dimension search algorithm in case of fast changing curve.

Test-case for issue #26356

4 years agoRemoving from UDLIST physically removed units
bugmaster [Fri, 3 Jul 2015 11:52:34 +0000]
Removing from UDLIST physically removed units

4 years ago0025613: Wrong distance found by xdistef command for attached shapes
nbv [Thu, 2 Jul 2015 11:44:35 +0000]
0025613: Wrong distance found by xdistef command for attached shapes

1. Divide B-spline curve on sub-intervals (bounded by knots values).
2. Class BRepLib_CheckCurveOnSurface_TargetFunc has been optimized for future implementation to checkshape algorithm (Adaptors are used instead of Geom_Curve(Surface)).
3. Parallelization of new algorithm.

The algorithm is based on math_PSO class.

Test cases for issue 25613 have been created.

Changes in accordance with the last remarks

4 years ago0026383: Incorrect tolerance computing in IntTools_FaceFace::ComputeTolerance()
aml [Wed, 1 Jul 2015 06:44:28 +0000]
0026383: Incorrect tolerance computing in IntTools_FaceFace::ComputeTolerance()

Projection of points 3d curve on faces deleted from ComputeTolerance().

4 years ago0026341: Uninitialized field in ShapeFix_Face
abv [Thu, 2 Jul 2015 11:33:54 +0000]
0026341: Uninitialized field in ShapeFix_Face

Parameter RemoveSmallAreaFaceMode in ShapeFix_Face is properly initialized; some other minor corrections

4 years ago0026342: No materials are read from STEP
ink [Thu, 2 Jul 2015 11:30:42 +0000]
0026342: No materials are read from STEP

Changed number of  arguments for descriptive_representation_item (for the case when description is absent).

Test case for issue CR26342

4 years ago0026352: Wrong intersection points found
mkv [Thu, 2 Jul 2015 11:27:47 +0000]
0026352: Wrong intersection points found

Small correction of test case for issue CR26352

4 years ago0026339: [Regression in 6.9.0] Projecting a curve hangs
aml [Thu, 2 Jul 2015 11:19:13 +0000]
0026339: [Regression in 6.9.0] Projecting a curve hangs

Changed computation of point projection to more correct.
Calculation periodicity information added to cache.
Test case for issue CR26339

Small correction of test case for issue CR26339

4 years ago0026184: GeomAPI_ExtremaCurveCurve hangs on parallel b-spline curves
aml [Thu, 2 Jul 2015 10:52:41 +0000]
0026184: GeomAPI_ExtremaCurveCurve hangs on parallel b-spline curves

Class CellFilterNDim added.
Class CellFulterNDim used in GlobOptMin to improve performance in case of many solutions.
Memory leak eliminated.

Test cases for issue CR26184

Small correction of test cases for issue CR26184

4 years ago0026332: BRepOffsetAPI_ThruSections algorithm fails on two wires with different numbe...
jgv [Thu, 2 Jul 2015 10:46:39 +0000]
0026332: BRepOffsetAPI_ThruSections algorithm fails on two wires with different number of edges

Correction according to remark.

Correction of mistake.

Test case for issue CR26332

4 years ago0026296: Errors in BRepOffsetAPI_MakeOffset: failure because of wrong direction of...
jgv [Thu, 2 Jul 2015 10:39:51 +0000]
0026296: Errors in BRepOffsetAPI_MakeOffset: failure because of wrong direction of bisector.

Test cases for issue CR26296

Fix of regressions.

Small correction of test cases for issue CR26296