On branch IR-2018-08-03
Your branch is up to date with 'origin/IR-2018-08-03'.

Untracked files:
  (use "git add ..." to include in what will be committed)

	DrawAppliInit
	VERSION.html
	custom - Copy.bat
	custom_vc10.bat
	custom_vc14.bat
	draw.bat
	env.bat
	exclude.lst
	msvc.bat
	occ_occt_build_ALL.bat
	occ_occt_build_android.bat
	occ_occt_build_wnt.bat
	occ_occt_pack_wnt.bat

nothing added to commit but untracked files present (use "git add" to track)
commit c16c60a40235f4344ca28847be5ae49e2c123aac
Author: abv 
Date:   Thu Jul 26 10:36:12 2018 +0300

    0029978: Data Exchange, macOS - the result of reading some entity from STEP looks odd
    
    On Apple with XCode 9.4.1 and onwards, the compiler optimization is disabled for method gp_Mat::Transpose() as optimizer generates invalid code when that method is used.
    Some refactoring of the code affected by this bug.

commit 170175554f5aa01b790e66d00b637f44dc562cd6
Author: mnv 
Date:   Mon Jul 23 15:08:01 2018 +0300

    0029938: Visualization - SelectMgr_ViewerSelector::PickedPoint() should return point lying on an object
    
    Extended SelectBasics_PickResult structure by myObjPickedPnt field, which contained the value of the 3d point on the selected object.
    Changed all Overlaps methods. Parameter theDepth replaced on object of the structure SelectBasics_PickResult. This approach will be able to add new fields to SelectBasics_PickResult structure without big changes in modules which contained Overlaps method.

commit c348746059c30939abd0b60c2f061c9ed8dcef2d
Author: kgv 
Date:   Tue Jul 31 22:12:04 2018 +0300

    0030005: Visualization, OpenGl_Context - replace NCollection_SparseArray with NCollection_Array1 for myDrawBuffers

commit b11aef43d4d3bb4f1ec04e64a07d2a71d05a7454
Author: kgv 
Date:   Tue Jul 31 17:37:49 2018 +0300

    0030004: Visualization, AIS_Manipulator - disable detection of Rotating circle when picking ray lies on its plane

commit 4a3610588f094981a3be0205177bf29e4b62ab67
Author: jgv 
Date:   Tue Jul 17 21:16:35 2018 +0300

    0029915: Porting to VC 2017 : Regressions in Modeling Algorithms on VC 2017
    
    Methods GeomConvert::ConcatG1, GeomConvert::ConcatC1, Geom2dConvert::ConcatG1, Geom2dConvert::ConcatC1 are corrected to prevent exceeding maximum degree of BSpline curve in case of closed contour.

commit 31e8d3c1852b4873d4be98dfe056d4c23cb0fd51
Author: vro 
Date:   Tue Jul 10 14:58:08 2018 +0300

    0029940: The method TPrsStd_AISPresentation::SetSelectionMode() seems useless for transactions
    
    A boolean parameter is added with a default value to the method TPrsStd_AISPresentation::SetSelectionMode().
    By default, behavior of the method is not changed. But if the parameter's value is changed to FALSE, change of selection mode for the object will not influence the transaction. In other words, the attribute will not set modified and will not put into transaction delta. This behavior suits the usual notion of the object in an application: the object has color, material, transparency, but selection mode is not a property of the object. It is a property of an operation involving the object. Therefore, it has sense to remove the method SetSelectionMode() from TPrsStd_AISPresentation. For a while, it is marked as obsolete.

commit 6487fb1c9cda7871b401975aac5cd0594f06a742
Author: nbv 
Date:   Fri Jul 27 16:29:55 2018 +0300

    0029994: Misprint in IntWalk_PWalking::Perform(...) method
    
    In the fragment
    
            if (aNewPnt[0] < u1min || aNewPnt[0] > u1max ||
                aNewPnt[1] < v1min || aNewPnt[1] > v1max ||
                aNewPnt[2] < u2min || aNewPnt[2] > u2max ||
                aNewPnt[3] < v2min || aNewPnt[3] > v2max)
            {
              break; // Out of borders, handle this later.
            }
    
    the parameters are compared with values obtained by IntPolyh_MaillageAffinage algorithm and do not have any relations to the domain boundaries.
    
    This misprint has been eliminated.

commit 94783b5111cbefcedf4f6eae72e7cd3b78c7b13b
Author: nbv 
Date:   Tue Jul 17 12:32:14 2018 +0300

    0028085: Incorrect result of CUT operation
    
    Before the fix, small arc of circle returned as intersection result. It was connected with the fact that the circle always was limited in 0 and 2*PI points. Currently the bounds of the circle (retrieved as an intersection curve) are computed from the real domain of the arguments (there is not a snap to the fixed 0 and 2*PI points).

commit 39b7b2a46508d3ed10d6877a59163fcea4f65ee5
Author: kgv 
Date:   Sat Jul 28 21:18:05 2018 +0300

    0029997: Coding Rules - eliminate GCC compiler warnings -Wmaybe-uninitialized in Select3D_InteriorSensitivePointSet.cxx

commit 73a7509fde0e4a3cd4bee5f6b462f7000e0d6499
Author: ifv 
Date:   Fri Jul 27 10:21:43 2018 +0300

    0029573: ConcatenateWireC0 crashes on two edges wire
    
    Wrong setting first/last vertices is fixed
    Test case added

commit 7686e915e21c4b3420bec707696077fc9baf37e9
Author: abv 
Date:   Tue Jul 24 17:45:15 2018 +0300

    0029911: Porting to Debian80-64 : Regressions in Foundation Classes
    
    Test for handles is updated according to behavior expected from modern compilers.
    
    Performance test perf ncollection A1 is updated (valid range extended) according to measurements made on Debian 8 with GCC 4.9 and on Ubuntu 16.04 with CLang 3.8 and 6.0 and GCC 4.7, 4.9, and 5.0.

commit 9dc6c9b8d410ece0a8355f8269aca362f03471ce
Author: abv 
Date:   Thu Jul 26 07:48:56 2018 +0300

    0029859: Coding - GCC compiler warning -Warray-bounds in IntPatch_InterferencePolyhedron.cxx

commit 1f26f80bb7dcfef391ea5d168757183de5ccecaa
Author: kgv 
Date:   Fri Jul 20 13:07:47 2018 +0300

    0029967: Draw Harness - command bounding has annoying syntax
    
    Bnd_OBB constructor from Bnd_Box is fixed for VOID input.
    
    DRAW command bounding command is adjusted:
    - Support of old syntax 'bounding shape'is restored.
    - Exception on VOID bounding box is avoided.
    - Arguments are handled in case-insensitive way.
    - Options -s, -perfmeter, and ability to set result as first argument are removed as redundant.
    - Help is moved to command definition.
    
    Separate command OCC29311 is added (in QADraw) to do the same as option -perfmeter did; tests are updated.

commit 3dc5809557a675453fd352f69a4cfd948d64cd59
Author: emv 
Date:   Fri Jul 20 15:16:50 2018 +0300

    0029973: Modeling Algorithms - access violation within BRepAlgoAPI_Cut on empty input shape
    
    Boolean Operations algorithm has been improved to handle the cases with empty shapes arguments correctly.
    Test cases for the issue.

commit d3578357e3e819c259d2ddd882a5f9932c7c95ee
Author: emv 
Date:   Wed May 16 12:12:09 2018 +0300

    0029711: General Fuse operation produces invalid result
    
    The following improvements have been introduced in Boolean Operations algorithm s:
    1. UBTree is replaced with EBTree in Boolean operations to be able to add/remove elements into the tree of bounding boxes.
    2. Repeated (nested) intersection of sub-shapes is performed with argument vertices whose tolerances increased during the operation.
    3. The algorithms of Edge/Edge and Edge/Face intersection have been improved for the cases when the intersection point is located close to the edge boundaries .
    4. New procedure has been implemented to ensure forced creation of Edge/Face common blocks in cases when the edge is really close to the face.
    5. Post-processing of Face/Face intersection results has been improved.
    6. Extension of the planar faces for Plane/Plane intersection is avoided.
    7. Builder Face now better classifies potentially internal edges relatively to new faces with filtering by bounding boxes.
    
    Side effect changes:
    1. IntTools_ShrunkRange now keeps the length of the valid range of the edge.
    2. The method BOPDS_DS::UpdateEdgeTolerance() has been removed as unused (replaced by the BOPAlgo_PaveFiller::UpdateEdgeTolerance()).
    
    Test case for the issue 0029900.
    Test case for the issue 0029711.
    Adjustments of the existing test cases.
    
    Avoid using uninitialized variables.

commit fb60181a3a213c25c4c63797f52cf48798532d96
Author: kgv 
Date:   Sat Jul 14 13:59:22 2018 +0300

    0029958: Visualization - add method Graphic3d_ArrayOfPrimitives::AddEdges() taking up to 4 edges

commit 6f26baa0fcf640f1829f984ec9e5e6907561af59
Author: kgv 
Date:   Fri Jul 20 10:40:14 2018 +0300

    0029975: Visualization - Graphic3d_ClipPlane::ProbeBox() returns Out for fully In box

commit 321659b075f2233f65a4ee138d3ab563172d8469
Author: abv 
Date:   Mon Jul 23 21:58:47 2018 +0300

    0029981: Coding - Clang 6.0 warning [-Wenum-compare-switch]
    
    In implementation of DRAW command "mkplane", the case labels of the switch statement are corrected to use values of the enum matching the type of the switch argument.

commit 27a4b067ff43710964f4b7e1e816d9a6adaddd8f
Author: kgv 
Date:   Mon Jul 23 19:13:29 2018 +0300

    0029980: Configuration, CMake - impossible to override CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS
    
    Variables are not assigning only if have not been previously defined.

commit 8f521168b40c198f3bd81ad5f2be6054595142f5
Author: kgv 
Date:   Mon Jul 23 21:12:13 2018 +0300

    0029740: Draw Harness - eliminate redundant casts to AIS_InteractiveObject
    
    NCollecton_DoubleMap has been extended with two new methods Find1() and Find2()
    performing lookup and returning found key withoout throwing an exception
    (similar to NCollection_DataMap::Find()).
    
    ViewerTest_DoubleMapOfInteractiveAndName has been redeclared to define
    Handle(AIS_InteractiveObject) key instead of Handle(Standard_Transient).

commit a6df1715edb46edd645a99b15326ca200c462f72
Author: kgv 
Date:   Thu Jul 19 20:32:51 2018 +0300

    0029974: Visualization - OpenGl_Layer::Render() produces inconsistent state of Polygon Offset settings
    
    OpenGl_Layer::Render() now calls OpenGl_Workspace::SetDefaultPolygonOffset()
    for managing default polygon offset settings considering OpenGl_Workspace applied aspect logic.

commit 9427bc1d1eaa05b8734e49421007e6abd0384695
Author: kgv 
Date:   Wed Jul 11 17:50:39 2018 +0300

    0029949: Draw Harness - simplify vtriangle command implementation
    
    vtriangle and vsegment commands now share presentation created by vdrawparray command.
    
    Added missing accessors to Graphic3d_ArrayOfPrimitives properties
    VertexNumberAllocated(), EdgeNumberAllocated() and BoundNumberAllocated().

commit 288fff89cc83bdffdaccf8a7437e80fc7e74cb02
Author: kgv 
Date:   Wed Jul 18 01:04:58 2018 +0300

    0029969: Modeling Algorithms - BRepPrimAPI_MakeHalfSpace::Shape() returns NULL shape while reporting IsDone()

commit edc9567475d1a110e52440eb99aa2f990b3612e9
Author: emv 
Date:   Tue Jul 17 10:08:27 2018 +0300

    0029955: Face and Solid BOP: Building 2D curve of edge on face has failed
    
    Test case for the issue as it is not reproduced anymore.

commit 4ccdb6f675dee9482cc47cb56d058d35c5dcc8e1
Author: emv 
Date:   Tue Jul 17 12:07:59 2018 +0300

    0028113: BOPAlgo_Builder produces invalid shape
    
    Fast rebuilding of the face is now avoided if its edges have been unified during the intersection.
    Full rebuilding of the face is required in this case (using BuilderFace algorithm).

commit 6e3a8b035db817979d40a70aedd23ec7420bde10
Author: kgv 
Date:   Fri Jul 20 11:08:34 2018 +0300

    0029970: Coding Rules - StdSelect_BRepOwner::Set() method is declared but undefined
    
    Undefined method has been removed.

commit 67740c81cf327142f3e131e036e9f789b7e65e60
Author: emv 
Date:   Mon Jul 16 15:45:02 2018 +0300

    0028123: Boolean Cut produces faulty shape
    
    Test case for the issue as it is not reproduced anymore.

commit ae276302f609e64e709faa96467bfa9d8c8d2883
Author: emv 
Date:   Wed Jul 18 15:31:52 2018 +0300

    0029968: Modeling Algorithms - BRepAlgoAPI_Cut produces an empty result with half-space
    
    IntTools_Context::IsInfiniteFace() - Make the conclusion about infinity of the face basing on its bounding box only. No need to check NaturalRestriction flag.

commit 63cdf48ec1e3e55fdebf40292ecca39e4ff9c07f
Author: msv 
Date:   Fri Jun 1 14:38:39 2018 +0300

    0029830: STEPCAFControl_Reader poor performance - quadratic dependence
    
    Various performance improvements in STEP read/write algorithms:
    - Search for the  label of a shape or component shape is improved using map mechanism instead of brute force iteration.
    - Invariant FindEntities() is moved out of the loop in the method getStyledItem in STEPCAFControl/STEPCAFControl_Writer.cxx.
    - A pointer to the end of binders chain is added in Transfer_Binder class to speed up adding a binder to the chain.
    - Small fixes are added  to eliminate excess copying of handles, calls of handle DownCasts and so on.
    
    Stack overflow is removed during destruction of STEP model with long chains of Transfer_Binder.
    It is possible to use the Draw commands ReadStep and WriteStep to read/write from the session without accessing the disk file (use '.' for the file name).
    
    Performance test cases for STEP reading/writing have been added.

commit 0a96e0bbc4c529db4d0185c938df5b2a5d89f5c6
Author: abv 
Date:   Sun Jun 10 22:40:12 2018 +0300

    0029769: Uninitialized data with BSplCLib_Cache, BSplSLib_Cache
    
    Implementation of classes BSplCLib_Cache and BSplSLib_Cache is revised:
    - Common functionality dealing with spans along one parametric direction is separated to new struct BSplCLib_CacheParams
    - Empty constructors are removed; copying is prohibited
    - Code reconsidering degree and other parameters on each call to BuildCache() is eliminated; curve parameters must be the same in constructor and all calls to BuildCache()
    - Extra call to BuildCache() from constructor is eliminated

commit 3388cf17dc9ec97814180227f11e679c8b3d26ec
Author: skl 
Date:   Thu Jul 12 09:47:02 2018 +0300

    0025852: Visualization - Font_BRepFont produces bad faces for circled symbols
    
    Font_BRepFont now uses a dedicated algorithm for text-to-BRep transformation instead of relying on ShapeFix.
    It orders wires based on wire classification, analyzes internal zones and creates a few faces (if needed).
    TKService dependency from TKShHealing has been dropped.

commit 59694b5da3b0aad38b23208f304be9965897f333
Author: jgv 
Date:   Fri Jun 15 20:22:38 2018 +0300

    0029861: Modeling Algorithms - BiTgte_Blend gives exception
    
    The algorithm has been corrected to avoid exception.
    Now both Draw commands "brollingball" and "rollingball" give correct results.
    Test cases "offset faces_type_a A3, A4, A9" are good now.

commit b5ea6319752f6be5cc17a70e6ed3498f1336e016
Author: gka 
Date:   Mon Jul 16 12:08:00 2018 +0300

    0029959: Coding - new warnings after integration 29846
    
    Erroneous label declaration has been removed in function SetMaterial from XDEDRAW_Props.cxx

commit feaedd5756afb37c26cdd01fb75ad01bfdc7a107
Author: emv 
Date:   Mon Jul 16 13:03:17 2018 +0300

    0027230: Boolean operations fails on attached shapes
    
    Test case for the issue as it is not reproduced anymore.

commit 45117bfc1db8d88680511cd8e598f8267b8ae9fe
Author: kgv 
Date:   Sun Jul 15 11:35:12 2018 +0300

    0029961: Foundation Classes - NCollection_Shared constructor passes arguments by copy
    
    New NCollection_Shared constructors taking arguments by reference have been added.

commit ca0962a1e946296f6d6d19c0dea11af730f74b45
Author: kgv 
Date:   Sat Jul 14 19:17:26 2018 +0300

    0029960: Foundation Classes - disarm OSD_ThreadPool copy constructor
    
    Private copy constructors have been added to OSD_ThreadPool
    and Standard_Condition to protect misuse.

commit ffe1b14331b448bcb50d8ca137af7f2d9e9aad1b
Author: gka 
Date:   Thu Jul 5 19:10:31 2018 +0300

    0029846: Data Exchange - STEP validation properties support is obsolete
    
    Name of the PROPERTY_DEFINITION entity for validation properties is changed to "geometric validation property" according to the current version of the recommended practices.
    For compatibility with older definitions (with underscores) the check is made using string with underscores replaced by spaces.

commit 07f2b74116b0a121386227b2e73dc2fae627cd4b
Author: ysn 
Date:   Mon Jul 9 13:53:01 2018 +0300

    0029817: Documentation - avoid excessive use of "please"
    
    "Please" is now used in the documentation only in sensitive cases.

commit 3b7f55e9d169e1c95cc1cec390c02adbaed43f3f
Author: skl 
Date:   Tue Jul 10 14:45:11 2018 +0300

    0029873: Data Exchange - STEPCAFControl_Reader::Transfer() returns TRUE even when external files are missing
    
    Output information about failure during reading of external file has been added (it can be checked by using Draw command "tpstat").
    If the reader cannot find an external file at the first found location
    (using entity APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT) it checks other information about file path
    (using entity DOCUMENT_FILE related with the above-mentioned entity) and uses a new location for import of the external file.

commit 6f498847fa9c31e473ae528ba6d05944da679f8a
Author: kgv 
Date:   Sat Jul 7 02:27:51 2018 +0300

    0029935: Foundation Classes - introduce OSD_ThreadPool class defining a thread pool
    
    New class OSD_ThreadPool has been introduced to define a Thread Pool for multi-threading algorithm.
    Thread Pool assigns a serial number for each thread allowing Multi-Threading algorithm to allocate thread-local storage variables as an array whose size is the same as the number of threads.
    
    OSD_ThreadPool also redirects exceptions to a thread calling parallel execution and consistently initializes FPE exception handling.
    
    New class Standard_Condition provides a platform-independent  tool similar to Event in WinAPI.
    
    A new auxiliary function Standard_Atomic_CompareAndSwap() has been introduced
    for performing atomic compare and swap of integer number.
    Standard_Atomic_Increment/Standard_Atomic_Decrement fallback implementation
    using ASM code for x86 processors for GCC has been dropped;
    instead, it is expected that GCC should be properly configured targeting modern x86 architectures.
    
    OSD_Signal now declares fFltExceptions as thread_local variable accessible through OSD::ToCatchFloatingSignals() property.
    Standard_THREADLOCAL macro (wrapping thread_local attribute) has been moved to public header Standard_Macro.hxx.
    
    OSD_Parallel::ForEach() has been extended with new optional parameter theNbItems and uses OSD_ThreadPool::DefaultPool().

commit be3d8cbc020dba1aa1859274ff6ad388d0707694
Author: kgv 
Date:   Thu Jun 21 12:19:08 2018 +0300

    0029425: Visualization - AIS_InteractiveContext::SetAutomaticHilight() has no affect
    
    AIS_InteractiveContext::MoveTo() and ::Select() now do not highlight entities
    when ::AutomaticHilight() option is turned off.
    
    vselprops command has been extended with new arguments -autoHighlight and -highlightSelected
    (vhighlightselected command is now deprecated).

commit df6f165a2b572d53142a776cde62682676ab1179
Author: ika 
Date:   Wed Jul 11 17:29:34 2018 +0300

    0029945: Export body of revolution to STEP breaks the shape
    
    Now vertex loops on surfaces of revolution are imported from STEP format in the same way as on spheres and b-spline surfaces: in case of a single vertex loop neutral bounds will be used.

commit 1f886fae1b87534faa142836f985b49bdd5b597e
Author: kgv 
Date:   Sat Jul 7 04:08:57 2018 +0300

    0029936: Documentation - improve description of AIS_Animation class

commit e2aba8ebf3f0d39a158a9ea78b0e7846a2ed73ce
Author: kgv 
Date:   Wed Jul 11 15:52:02 2018 +0300

    0029947: Visualization - SelectMgr_SelectableObject::GetSelectPresentation() should copy object clipping planes
    
    Methods SelectMgr_SelectableObject::GetHilightPresentation(), ::GetSelectPresentation() and ::UpdateClipping()
    have been corrected to copy clipping planes of the object into highlighting and selection presentations.

commit 73e403b8c60317b16c00bfdbc222da369f32c912
Author: nbv 
Date:   Wed Jul 11 17:29:54 2018 +0300

    0029948: Uninitialized variable in GeomEvaluator_OffsetSurface::CalculateD0(...) method
    
    Variable "NStatus" from GeomEvaluator_OffsetSurface class is now initialized correctly.

commit 92a55b01af1612164fae3b35e8eff5cff22527fe
Author: nbv 
Date:   Tue Jul 3 18:14:30 2018 +0300

    0029866: Intersector returns two overlapped curves as a result
    
    Since now a new WLine is not created if its start point lies in another earlier computed WLine. It allows avoiding creation of duplicate WLines in the intersection result.
    
    
    
    1. Methods IsOutSurf1Box(...), IsOutSurf2Box(...), IsOutBox(...) for classes IntSurf_LineOn2S and IntPatch_RLine have been created.

commit 8ff2e494f575fdd718dc34be09c4acd56a405c3f
Author: kgv 
Date:   Wed Jul 4 12:09:50 2018 +0300

    0029939: Modeling Algorithms - add NULL check to BRepGProp_Face::Load()
    
    BRepGProp_Face::Load() has been protected against crash in case of edges without p-curves.

commit e119b6c3c7bba89204c5c677292387836ae02ae0
Author: gka 
Date:   Tue Jul 10 19:20:50 2018 +0300

    0029944: Porting to VC 2017 : Regressions on the gcc (Debian 4.9.2-10) 4.9.2. Exception is raised during load STEP file.
    
    Boolean parameter "same_sence" from class RWStepShape_RWAdvancedFace.cxx is now initialized correctly.

commit c520fb2aa2dd7245b65fc6ac9510010fa8b365e4
Author: nbv 
Date:   Tue Jul 10 12:50:03 2018 +0300

    0029942: Porting to Debian80-64 : Regressions in Modeling Algorithms after integration fix for 29807
    
    Correction in the test case perf/modalg/bug27021.

commit 39ab2e0c4d53856953129ff1f0cd92060f46c233
Author: gka 
Date:   Wed Jul 4 19:45:58 2018 +0300

    0029916: Regressions in Data Exchange on VC 2017
    
    The "end" file from folder "de" has been corrected to exclude comparing the number of edges in the shapes from current result with test data.
    "TODO messages generated for differences were removed.
    Data exchange tests were regenerated.

commit 029594a052d4c136762f449f011b2d407a5a2296
Author: kgv 
Date:   Fri Jul 6 19:04:49 2018 +0300

    0029934: Visualization - handle properly orthogonal clipping plane within SelectMgr_RectangularFrustum::computeClippingRange()
    
    SelectMgr_RectangularFrustum now considers the direction of clipping plane orthogonal to picking ray.

commit 98b15dbfceedf1593b974da1e8cb2621465ab81b
Author: mnv 
Date:   Mon Jul 2 11:21:35 2018 +0300

    0029823: Visualization, TKOpenGl - highlighting by Bounding Box mistreats Local Transformation
    
    The problem when object transformation was applied to the bounding box twice has been fixed in OpenGl_Structure.
    OpenGl_ShaderManager has been extended with GLSL program drawing bounding box.
    OpenGl_Structure does not create extra Groups for drawing bounding box.

commit 1b661a81d561e4de7c9bbc8665ef0656eaf39eb4
Author: kgv 
Date:   Fri Jun 15 19:39:31 2018 +0300

    0029874: Visualization - capping plane transparency does not work
    
    Interface OpenGl_RenderFilter and its implementations have been merged into OpenGl_Workspace.
    This limits flexibility of interface, but simplifies logic.
    - OpenGl_RenderFilter_FillModeOnly flag replaces OpenGl_CappingAlgoFilter;
    - OpenGl_RenderFilter_NonRaytraceableOnly flag replaces OpenGl_RaytraceFilter;
    - OpenGl_RenderFilter_OpaqueOnly flag replaces OpenGl_OpaqueFilter;
    - OpenGl_RenderFilter_TransparentOnly flag replaces OpenGl_TransparentFilter.
    
    OpenGl_CappingAlgo now:
    - avoids redundant Stencil clearing when Layer contains at least one transparent Element;
    - renders semitransparent capping plane within transparent elements pass.
    
    vclipplane command has been extended by new argument -transparency.

commit 14823c6f5ea2587c84c84b22631040f748baca2c
Author: kgv 
Date:   Thu Jul 5 12:54:05 2018 +0300

    0029929: Visualization, V3d_View - make method ::FitMinMax() public

commit 73b07eddd099077ce6f4a3f568504b5306eb3885
Author: apn 
Date:   Wed Jul 4 13:17:51 2018 +0300

    0029928: Regressions: a lot of warnings produced during generation Overview by Doxygen
    
    Warnings in upgrade.md have been eliminated.

commit b053e5d673bb1ce74a5b7984c79a07e17dd9b35c
Author: kgv 
Date:   Wed Jul 4 10:49:44 2018 +0300

    0029927: Coding Rules - eliminate GCC compiler warnings -Wmaybe-uninitialized in BRepApprox
    
    The code has been fixed to avoid taking a reference from a field of a temporary variable
    (BRepApprox_ApproxLine::Point() returns non-reference structure).

commit 5efab28a44f3b237335cf5261261487979508378
Author: abv 
Date:   Wed Jul 4 00:54:46 2018 +0300

    0029834: Coding Rules - eliminate GCC compiler warnings -Wformat-overflow in IGESData_IGESWriter
    
    String buffers have been increased to be sufficient to accommodate result of sprintf() for any possible printed integer values.

commit 4c4420dfe9d87335c4f920a4ee409e3d8cfd0203
Author: kgv 
Date:   Thu Jun 14 18:45:58 2018 +0300

    0029868: Draw Harness - help message for readstl command is unclear
    
    readstl syntax has been modified, so that it creates a single-face triangulation by default.
    The argument "trinagulation" is no more supported.
    The new argument "-brep" has been introduced to generate
    a compound of per-triangle faces instead (old default behavior of the command).

commit b2cd90e2b6855d54c3db1eef7e90162039137e9c
Author: kgv 
Date:   Tue Jul 3 14:31:40 2018 +0300

    0029909: Coding - GCC compiler warnings in Qt headers while building Samples in OCCT and Products on Debian80 64 bit
    
    Standard_WarningsDisable.hxx has been extended by ignoring -Wunused-local-typedefs within GCC compiler.

commit 3306fdd954ad583d2652f0454612b6183176eb2e
Author: nbv 
Date:   Fri May 25 11:05:58 2018 +0300

    0029807: [Regression to 7.0.0] Impossible to cut cone from prism
    
    The algorithm has been improved for the cases when the intersection line goes through the cone apex.
    
    
    
    1. All special points are put to the ALine forcefully (if they are true intersection point). Currently this step has not been implemented yet.
    
    2. Now the tolerance of IntPatch_Point (put into ALine) is computed in order to cover the distance between it and the correspond ALine.
    
    3. Test cases have been created.
    
    4. Procedure of trimming IntAna_Curve has been improved.
    
    5. Criterion when the discriminant of IntAna_Curve can be considered to be equal to 0 has been improved.
    
    6. Methods IntAna_Curve::FindParameter(...) (and IntPatch_ALine::FindParameter(...)) currently returns list of all parameters corresponding the given point (IntAna_Curve can be self-interfered curve). Before the fix, this method always returned only one (randomly chosen) parameter.
    
    7. Interfaces of the following methods have been changed: IntAna_Curve::FindParameter(...), IntPatch_ALine::FindParameter(...), IntPatch_ALine::ChangeVertex(...), IntPatch_SpecialPoints::AddPointOnUorVIso(...), IntPatch_SpecialPoints::AddSingularPole(...), IntPatch_WLineTool::ExtendTwoWLines().
    
    8. Following methods have been added: IntAna_Quadric::SpecialPoints(...), IntPatch_ALineToWLine::GetSectionRadius(...), IntPatch_SpecialPoints::ProcessSphere(...), IntPatch_SpecialPoints::ProcessCone(...), IntPatch_SpecialPoints::GetTangentToIntLineForCone(...).
    
    ------------------
    1) tests/boolean/volumemaker/C5
       tests/boolean/volumemaker/C6
       tests/boolean/volumemaker/E7
    
    They are real IMPROVEMENTS. In the FIX (in compare with MASTER), section result between pairs of faces f2&f6 (C5), f3&f7 (C6) and f1&f5 (E7) is closed. Separated test cases have been created in order to focus on the problem with section. Bug #28503 has been fixed.
    
    Correction in test cases.

commit d9d3107d8df19cacc3d7a0cd46ba51deee0bf6f2
Author: kgv 
Date:   Tue Jul 3 00:45:41 2018 +0300

    0029925: Foundation Classes - add missing cast to LowerCase() and UpperCase() arguments
    
    Argument of LowerCase() and UpperCase() is cast to int via unsigned char to avoid passing negative integer in the case if the argument char is in the extended part of ASCII table (which would result in undefined behavior according to C++ standard).

commit 70aac17140aa5058374c80004c335b406cdbd2b8
Author: abv 
Date:   Mon Jul 2 18:48:44 2018 +0300

    0029924: Configuration - remove obsolete folders from .gitignore
    
    Folders drv, sun, sil and ao1 have been removed from .gitignore

commit 1dbdf099cdd2560386ef86181b17995d92260a67
Author: ifv 
Date:   Tue Jun 26 14:54:35 2018 +0300

    0029857: Incorrect behavior of Point-Curve Extrema
    
    Check for double solutions has been  added in algorithms Extrema_ELPCOfLocateExtPC and  Extrema_ELPCOfLocateExtPC2d
    that find extrema between point and curve.

commit 35cbf341d14c588115da658e68bcab75f162760a
Author: mnv 
Date:   Tue Jun 26 16:27:12 2018 +0300

    0029894: Visualization - AIS_ColorScale ColorRange returns only min color
    
    A typo in AIS_ColorScale::ColorRange function has been fixed.

commit fcdb829c2503c44114a0360f1133f595c51a6b64
Author: ika 
Date:   Thu Jun 21 15:57:39 2018 +0300

    0029890: Data Exchange - Problem in Expand Compounds
    
    XCAFDoc_ShapeTool::Expand method now avoids creation of subshapes under assemblies.
    XCAFDoc_ShapeTool::AddSubShape now avoids creation subshapes under all labels except for simple parts.

commit 8cbf1f8d41f51660c8f87c5367ba26aa734f6cb9
Author: ika 
Date:   Thu Jun 21 17:21:02 2018 +0300

    0029888: [Regression] Data Exchange - XCAFDoc_Editor::Expand() removes names
    
    XCAFDoc_Editor::Expand function avoids expanding references to assemblies.

commit 4680b22c2c19235f7c3e62e936fd80ece58578c3
Author: nbv 
Date:   Wed Jun 20 17:30:00 2018 +0300

    0029887: Wrong result of CUT operation due to incorrect point-face classification
    
    Use of input tolerance has been eliminated in Geom2dInt_GInter algorithm called from BRepClass_Intersector::Perform(...) method.
    Now the input tolerance is used only for checking ON-status of classification.

commit 12280e4bfc2bfecd278b4c242fd651cb87d70700
Author: kgv 
Date:   Wed Jun 20 14:56:09 2018 +0300

    0029885: Visualization, AIS_Manipulator - Translation is done in wrong direction depending on Camera orientation
    
    AIS_Manipulator::ObjectTransformation() has ceased to use undefined point for myStartPick initialization within AIS_MM_Translation mode.
    AIS_MM_Scaling cas has been merged into AIS_MM_Translation to reduce code duplication.
    Extrema_ExtElC/IntAna_IntConicQuad are now used directly instead of more generic GeomAPI_ExtremaCurveCurve/GeomAPI_IntCS.

commit 68dcee028df46bf2677e05c00bb1099cdecb994e
Author: kgv 
Date:   Wed Jun 20 08:48:40 2018 +0300

    0025467: Visualization - Possibility to remove AIS_LocalContext class
    
    Deprecated functionality related to Local Context has been removed.
    
    The following classes and types have been removed:
    AIS_LocalContext, AIS_DataMapOfILC, AIS_LocalStatus, SelectMgr_SequenceOfSelector, SelectMgr_DataMapOfObjectSelectors.
    Value AIS_DS_Temporary has been removed from enumeration AIS_DisplayStatus.
    
    The following methods related to Local Context have been removed from AIS_InteractiveContext:
    ::HasOpenedContext(), ::HighestIndex(), ::LocalContext(),
    ::LocalSelector(), ::OpenLocalContext(), ::CloseLocalContext(),
    ::IndexOfCurrentLocal(), ::CloseAllContexts(), ::ResetOriginalState(),
    ::ClearLocalContext(), ::UseDisplayedObjects(), ::NotUseDisplayedObjects(),
    ::SetShapeDecomposition(), ::SetTemporaryAttributes(),
    ::ActivateStandardMode(), ::DeactivateStandardMode(), ::KeepTemporary(),
    ::SubIntensityOn(), ::SubIntensityOff(),
    ::ActivatedStandardModes(), ::IsInLocal()
    and ::AddOrRemoveSelected() taking TopoDS_Shape.
    
    The methods AIS_InteractiveContext::Display() and ::Load()
    taking argument theToAllowDecomposition have been marked as deprecated;
    the new methods without this unused argument should be used instead.
    AIS_InteractiveContext::DisplayedObjects() - removed argument theOnlyFromNeutral.
    
    SelectMgr_SelectionManager has been simplified so that now it support only single Viewer Selector.
    
    The argument -local has been removed from Draw Harness commands vselmode, vremove, vdisplay, vdisplayall, verase.

commit d9f79dae49e0e0cdf2e5fdb440b030e6362dd7bd
Author: kgv 
Date:   Tue Jun 19 10:48:50 2018 +0300

    0029882: Visualization - AcceptDisplayMode() should be redefined in class AIS_TexturedShape

commit 4b114473efae0e071c33e84dd70a2342e00b029f
Author: ifv 
Date:   Thu May 17 15:38:17 2018 +0300

    0029734: Modeling Algorithms - Compute global properties of tessellated shape
    
    New algorithms calculating global properties on mesh data have been added:
    - BRepGProp_MeshCinert computes the global properties of polylines represented by a set of points;
    - BRepGProp_MeshProps computes the global properties of a surface mesh.
    
    Existing tool BRepGProp now automatically uses new algorithm for triangulation-only faces.
    By default, algorithm will use exact geometry objects (surfaces), when it is available (as before the patch);
    this behavior can be switched by a new flag UseTriangulation, forcing usage of triangulation instead of exact geometry when both defined.

commit a820bd4f136dd7ed8caeb08192b0df1936c03353
Author: abv 
Date:   Tue Jun 12 22:18:34 2018 +0300

    0029859: Coding - GCC compiler warning -Warray-bounds in IntPatch_InterferencePolyhedron.cxx
    
    Code is corrected to avoid copying uninitialized element of the array

commit 56cc44e0f5f301fedb71180e08bb97203f9f0c74
Author: dipts 
Date:   Wed Jun 6 22:42:11 2018 +0300

    0029847: Visualization, Image_Diff - Tolerance is not effective for 24/32bit image formats
    
    Image_Color - removed semibroken summ/difference operators.
    Image_Diff now uses signed integer for computing differnce between ubyte3 components;
    properly compare squared tolerance.
    
    Image_Diff - dropped declaration of Image_ColorXXX24.
    RGB color difference is now computed using Chebyshev distance instead of Euclidean distance
    Image_PixMap - added methods RawValue()/ChangeRawValue() returning a pointer
    to image where specified pixel data is defined.

commit cf12784f94777e337491745fcaea1461d778d295
Author: emv 
Date:   Thu Jun 7 08:29:21 2018 +0300

    0029845: UnifySameDomain does not account the accumulated angle when unifying edges
    
    Check that the accumulated angle does not exceed the given angular tolerance while merging the linear edges.
    Test case for the issue.

commit 0c44027cb9efe4c977845ed092ec4acccdec5cdd
Author: nds 
Date:   Thu Jun 7 15:59:03 2018 +0300

    0029841: Test cases from tools/dfbrowser periodically hang on Windows platform
    
    Do not start new thread if the thread has been already started. Restart the thread after the previous has finished.

commit bc37935836a82b8c548ee7617dcc4d95affbddca
Author: kgv 
Date:   Wed May 30 18:59:12 2018 +0300

    0029825: Foundation Classes, NCollection_Vec4 - workaround gcc optimizer issues with xyz() method
    
    Methods of NCollection_Vec3 and NCollection_Vec3 that returned reference to internal buffer as vector of lower dimension (non-const xy(), xyz() etc.) are eliminated.
    Use of these methods could led to generation of incorrect binary code by GCC.
    Instead added new method SetValues() accepting vector of lower dimension and additional value.
    
    DRAW test command QANColTestVec4 reproducing one situation where the bug occurs is added, along with a test case.

commit 4e73d75b03399fe7424b6f73bdc48e3c47e91f27
Author: abv 
Date:   Tue Jun 5 16:38:45 2018 +0300

    0029826: Tests - test case perf/fclasses/strtod is unstable
    
    Check of performance of accelerated Strtod() vs. standard strtod() in the test is relaxed: now test passes if Strtod() is at least 1.5 times faster

commit bd6f0d2ff9f7a10bd282a1bc5437e4575627ad95
Author: vro 
Date:   Mon Jun 4 10:47:18 2018 +0300

    0029116: [Regression] OCAF attributes insertion order is violated again

commit b2d1851c43c5c33e1926cad69033057bf3a0224f
Author: kgv 
Date:   Thu May 24 18:06:37 2018 +0300

    0029814: Modeling Data - add method TopoDS_Shape::NbChildren() for simple check of sub-shapes number
    
    TopoDS_Shape::NbChildren() - new method has been introduced.
    TopoDS_Shape.lxx, TopoDS_TShape.lxx - inline methods have been moved to hxx.
    TopoDS_TShape_Flags has been redeclared as enumeration instead of preprocessor macros.
    
    Cyclic dependency between headers TopoDS_Shape.hxx and TopoDS_TShape.hxx eliminated.
    
    Places where TopoDS_Iterator is used only for calculation of number of sub-shapes are updated to use NbChildren() instead

commit e67e482d99f639a666790d995180ccf1a02e2d4e
Author: jgv 
Date:   Fri Mar 30 13:30:44 2018 +0300

    0029511: Section fails for these two faces
    
    Modified method: Approx_ComputeLine::Compute
    Check of multicurve is now always unconditional, the procedure of check is modified to avoid infinite loops.
    
    Modified classes: GeomLib_CheckBSplineCurve and GeomLib_Check2dBSplineCurve
    Correction of poles at the ends of curve is modified to fit the direction of tangent defined by two first points or two last points of walking line.
    
    Also modified:
    
    BOPAlgo_PaveFiller: modified methods PostTreatFF, RemoveUsedVertices - now unused vertices are included in the list of vertices to be absorbed by other ones.

commit d60e8ddedcd0cf4fba10c44d9db477ee4ed7587e
Author: jgv 
Date:   Mon May 28 19:13:01 2018 +0300

    0029813: BRepFill_PipeShell algorithm produces invalid result
    
    Modified method: BRepFill_Sweep::BuildShell
    case of global closedness of path containing several C0-connected parts is corrected.

commit f277ba3771b0115ad586ba5c383876a175b7d85d
Author: ika 
Date:   Mon May 28 13:15:37 2018 +0300

    0029821: Data Exchange - Wrong processing of subshapes in ShapeTool
    
    Improve FindSubShape method in ShapeTool.
    Update Expand compounds, according to changes in ShapeTool.
    Add FindSubShape and AddSubShape commands for Draw.

commit 948fe6ca88af6a91710910e5f35c4bfbddae393b
Author: emv 
Date:   Thu Apr 26 14:35:35 2018 +0300

    0028747: Incorrect result of the section operation after edge refinement
    
    Implementation of the method for simplification of the result of Boolean Operation on the API level.
    The method BRepAlgoAPI_BuilderAlgo::SimplifyResult has been added, so the derived classes such as BooleanOpeation and Splitter can also use this method.
    The result shape simplification should be called after the operation is done. The simplification is performed by the means of ShapeUpgrade_UnifySameDomain algorithm.
    
    Draw command "bsimplify" has been added to control the simplification options.
    Documentation for new functionality and draw commands controlling the options of Boolean operations.
    Test cases for the new functionality.
    
    Side-effect change:
    The algorithms in Boolean component have been changed to use the BRepTools_History as a History tool.
    Now it became possible to disable the collection of shapes modifications during Boolean Operations, which may be useful for performance sake (in draw the option is controlled by *setfillhistory* command).
    Draw command "unifysamedom" has been changed to accept the angular tolerance in degrees instead of radians.

commit 894dba72a3798c807367a1c897f85bd024822677
Author: nbv 
Date:   Tue May 22 12:15:27 2018 +0300

    0029694: Geom2dGcc_Circ2dTanCenGeo crash
    
    The reason of this issue is in incorrectly interpreted the generic class "TheExtPC" (eliminated after the fix 0024773) as Extrema_ExtPC2d. Correct interpretation must be "Extrema_EPCOfExtPC2d" class.
    
    Now this problem has been fixed in the class Geom2dGcc_Circ2dTanCenGeo.
    
    New testgrid "lowalgos 2dgcc" has been created.

commit 638ad7f3c53b5277ab66413c677749b5d3c11453
Author: nbv 
Date:   Fri Apr 20 17:00:48 2018 +0300

    0029712: Extrema algorithm raises exception
    
    1. Extrema algorithm calls Curve-surface intersector. This intersector returns flag about infinite solution (in spite of extrema's returning not-parallel status correctly - axes of considered cylinder and circle are not parallel). In this case, attempt of obtaining number of intersection points leads to exception.
    
    So, the fix adds check of infinite solution after the intersection algorithm.
    
    2. The methods IsDone(), IsParallel(), NbExt(), SquareDistance() and Points() (of Extrema_* classes) have been corrected to make them consistent to the documentation.
    
    3. Revision of some Extrema_* classes has been made in order to avoid places with uninitialized variables.
    
    4. Currently Extrema does not store any points in case when the arguments are parallel. It stores the distance only.
    
    5. Some cases on Extrema-algo have been moved from "fclasses"-group to "modalg"-group.

commit 395a5977d54f4ab826706207882c2233b020d57d
Author: msv 
Date:   Wed May 23 10:18:49 2018 +0300

    0029777: Foundation Classes - The methods of moving of one NCollection_Sequence to another are unsafe
    
    Make the methods Append, Prepend, InsertBefore and InsertAfter, which take another sequence as an argument, copying the sequence instead of joining if the allocators are different.
    
    Add test cases for collection classes.

commit ef33df518a21aceb02edfc2374197bf24e84ef56
Author: nbv 
Date:   Thu Apr 12 11:10:22 2018 +0300

    0029691: Constructor of BRepFill_MultiLine adjusts V-parameter of sphere in the range -PI/2 ... +PI/2 mistakenly.
    
    1. Sphere is not V-periodic surface. See the section "Periodicity concept" written in frame of the fix 0029115. Therefore, applying ElCLib::AdjustPeriodic(...) method is unreasonable.
    
    2. Default U work range of sphere is 0 ... 2*PI. Therefore, adjusting U parameter in range -PI/2 ... +PI/2 is unreasonable.

commit 7e4ff648982ab30f1c564dba734027c0ef7300d2
Author: ifv 
Date:   Fri Mar 23 11:33:27 2018 +0300

    0029586: Revolution creates solid with degenerated edges shared among faces
    
    Substitution of degenerated edges by their copies is implemented to make edges not shared
    in BRepPrimAPI_MakeRevol::Build().
    Method BRepPrimAPI_MakeRevol::Generated(...) is changed in order to use history of substitutions.
    Test case is added.

commit 9f785738a1b92bbbbd8e8391736c9db248fd4dd2
Author: drazmyslovich 
Date:   Mon Apr 23 17:52:43 2018 +0300

    0029719: Modeling Algorithms - GeomPlate_BuildPlateSurface has no progress information and is not abortable
    
    The Message_ProgressIndicator handle is added as a parameter to the function LU_Decompose and the the member functions of math_Gauss, Plate_Plate and GeomPlate_BuildPlateSurface classes.

commit 25c35042b6db0ee8f85df4097f448a721c2461e0
Author: kgv 
Date:   Fri May 25 10:13:38 2018 +0300

    0029729: Visualization, Graphic3d_ClipPlane - add support of clipping plane chains
    
    Graphic3d_ClipPlane now can define a Chain of Planes (logical AND).
    OpenGl_ShaderManager - added new GLSL sub-programs for clipping plane chains.
    Bnd_Range::TrimFrom(), ::TrimTo() - added auxiliary methods for trimming the range.
    SelectMgr_ViewClipRange now handles non-continuous clipping range.
    Graphic3d_SequenceOfHClipPlane now aggregates NCollection_Sequence instead of inheritance.
    OpenGl_CappingPlaneResource - triangulation has been adjusted to make front face following CCW order.

commit 012264339e1485fb1c5a4eadd6e9ab6fe93bd938
Author: Benjamin Bihler 
Date:   Tue May 15 10:43:57 2018 +0300

    0029765: BOPTools_AlgoTools::MakeSplitEdge Creates Illegal Edge
    
    Method MakeSplitEdge checks arguments order.
    This makes the method more generic.
    Taking vertex orientation into account.

commit e52ba46e3b5ceb9a08687d0d56c7e900d580748a
Author: kgv 
Date:   Tue Feb 20 08:37:38 2018 +0300

    0029520: Visualization - drop deprecated V3d_View::Export() functionality and dependency from gl2ps

commit 7775636a15c95c4d6d0c85b33ada796a75d291bb
Author: bugmaster 
Date:   Thu Jun 14 13:27:03 2018 +0300

    Switching #define OCC_VERSION_DEVELOPMENT "dev"

commit ec86d65faf27685e2aa6783d9a8c581fd63db160
Author: bugmaster 
Date:   Thu Jun 14 14:01:17 2018 +0300

    Update version of OCCT up to 7.3.1

commit 42da0d5115bff683c6b596e66cdeaff957f81e7d
Author: bugmaster 
Date:   Mon May 28 13:39:20 2018 +0300

    Correction of corrupted png file

commit d25f0522083a8b52ce0e561004b4915891ba8e1a
Author: abv 
Date:   Fri May 25 18:52:41 2018 +0300

    Raise OCCT version up to 7.3.0 (comment out "beta")

commit 60fddce474b9fcf57356f77598f46a2682faf8f9
Author: abv 
Date:   Fri May 25 21:26:45 2018 +0300

    0029669: Crash on opening a document with same Ocaf attributes with different IDs
    
    Added protection against clash of attributes with the same GUID when more than one attribute of the same type but with different GUIDs are stored in the file.
    If attribute with default GUID has already been read, then adding next empty attribute of the same type (done at start of its reading) will fail; in such case another attempt is made with Null GUID.

commit 61ace3dc72b47a726746b43f05f1473dd4ccb044
Author: isn 
Date:   Tue Mar 13 16:22:28 2018 +0300

    0029816: Add possibility to get/set shape presentations for GD&T label through one function
    
    new methods GetGDTPresentations(.) and GetGDTPresentations(.) for Dimension Tool

commit 2e32a645778d9ad6773f8e52dc4125b962f5d55c
Author: apn 
Date:   Fri May 25 18:23:01 2018 +0300

    0029407: Generating static libraries on macOS
    
    Update "Building with Xcode" documentation

commit 6acbb1c641edb0587d05b6fabed0ae11ec228d70
Author: apn 
Date:   Thu May 24 16:54:00 2018 +0300

    0029266: Configuration - CMake install does not copy pdb files in Debug mode due to the changes in 0028287
    
    Define variable "OCCT_INSTALL_BIN_LETTER" only if compiler is some version of Microsoft Visual C.