On branch CR29337_2
Your branch is ahead of 'origin/CR29337_2' by 4 commits.
  (use "git push" to publish your local commits)

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 7206b845234a5ec61e80dc60b2d3d7951cc0b34d
Author: kgv 
Date:   Wed Feb 14 22:58:34 2018 +0300

    0029509: Visualization, TKOpenGl - Weighted OIT + MSAA shader compilation errors
    
    Fix implicit cast ivec2->vec2 and specify GLSL version to "320 es" on appropriate devices.

commit ab5461efee4ef431abe03f799f84bfaa6ab6165c
Author: kgv 
Date:   Wed Feb 14 20:18:39 2018 +0300

    0029508: Visualization, TKOpenGl - visual artifacts on Adreno 305/308
    
    OpenGl_ShaderManager now:
    - prefers GLSL ES 100 over GLSL ES 300 on devices reporting OpenGL ES 3.0;
    - prefers GLSL ES 300 on devices reporting OpenGL ES 3.1+.
    to workaround known buggy implementations of OpenGL ES 3.0 drivers.

commit 8bcadb1c6cfe3adc80724e188a4c108a7519a573
Author: kgv 
Date:   Wed Feb 14 16:10:48 2018 +0300

    0029507: Visualization, TKOpenGl - uninitialized class field OpenGl_FrameBuffer::myIsOwnDepth

commit 43967da0eb704bfd5bbc61195d68f90a13f93435
Author: kgv 
Date:   Wed Feb 14 00:07:48 2018 +0300

    0029503: Visualization, TKOpenGl - fix access violation due to misprint in OpenGl_AspectMarker
    
    Misprint mySprite->mySpriteA has been corrected.

commit 39d9f60e5120c618eedd1b1ddef1f910337b2fcb
Author: apl 
Date:   Mon Nov 27 15:16:21 2017 +0300

    0029337: Visualization, TKOpenGl - visual artifacts on Intel Broadwell GPU
    
    Enable multiple draw buffers in shader program only if its required by specific application.
    
    occSetFragColor() - a new GLSL function has been introduced
    as an alternative to setting occFragColor/occFragCoverage variables.

commit f8e0c6c48a9b03a633ccb02a1c6e32b37f6594f4
Author: kgv 
Date:   Thu Feb 8 09:30:39 2018 +0300

    0029491: Visualization, AIS_Shape - filter unsupported Display Modes within ::AcceptDisplayMode()
    
    AIS_Shape::AcceptDisplayMode() now accepts only modes 0,1 and 2.
    AIS_ColoredShape::Compute() no more computes presentation for unknown display mode.

commit 8a7476a62292cb359f2459138e8a267d1aa07ce2
Author: emv 
Date:   Wed Feb 7 14:31:43 2018 +0300

    0029488: Regression: boolean operation " general fuse" creates solid containing 5 not connected shells lying on the one level.
    
    Boolean Operations - when checking two faces with the same bounds on Same Domain, take into account possible deviation of the edges from the faces surfaces.
    
    Test cases for the issue.

commit a8fea2a924e746995be81bf5cfd5a7b52eed6c4e
Author: gka 
Date:   Fri Feb 2 12:32:46 2018 +0300

    0029473: DRAW command "splitshape" produces invalid result on the cylindrical face.
    
    Added taking into account distance between edges in the UV space for periodical surfaces in the LocOpe_SplitShape.cxx method ChoixUV

commit a98108292579258c97bcba7b322d5665068c1323
Author: emv 
Date:   Mon Feb 5 15:10:32 2018 +0300

    0029484: Avoid inheritance of the BRepAlgoAPI_Check from BRepBuilderAPI_MakeShape
    
    Inherit BRepAlgoAPI_Check class from BOPAlgo_Options instead of BRepAlgoAPI_Algo, as the latter is too excessive for checking purposes.
    
    Implementation of the Draw command "bopapicheck" for testing the BRepAlgoAPI_Check algorithm.

commit 03a3ba9ebe3613569fc7fe1432ff9029bad3d129
Author: nbv 
Date:   Mon Dec 11 17:04:01 2017 +0300

    0028886: infinite loop at intersecting two faces / surfaces
    
    The reason of constantly increasing/decreasing steps has been eliminated for the problem case.

commit 161e0e95b71a9612e54b37aff4427482704ce0db
Author: kgv 
Date:   Fri Feb 2 20:14:49 2018 +0300

    0029477: Visualization, TKOpenGl - MSAA FBO initialization failure on OpenGL ES 3.2 device
    
    OpenGl_View::myFboColorFormat now initialized using sized texture format GL_RGBA8
    on mobile platforms (as in case of desktop platform).

commit f9ffd4f9f3ea24e5bd588c95005d2933ea80dc53
Author: emv 
Date:   Thu Feb 1 13:10:16 2018 +0300

    0029465: Regression relation to 691 version: Extrema_ExtCC returns IsParallel equal to true for not parallel curves
    
    Strengthening of the criteria of the parallel status of the curves by additional checking if the ends of the curves do not diverge.
    Test cases for the issue.

commit 05fb2b05afb28edb0de8d7630ecb6816690a9cea
Author: kgv 
Date:   Fri Feb 2 16:21:47 2018 +0300

    0029474: Visualization, TKOpenGl - GLSL compilation errors on buggy OpenGL ES driver for PowerVR SGX 544MP
    
    OpenGl_ShaderProgram::Initialize() now defines THE_MAX_LIGHTS/THE_MAX_CLIP_PLANES
    to zeros to workaround issues with some buggy OpenGL drivers.

commit 03cca6f742e2377fff6fa97bf357dfe3e6e832cc
Author: emv 
Date:   Tue Dec 26 14:28:27 2017 +0300

    0028599: Replacement of old Boolean operations with new ones in BRepProj_Projection algorithm
    
    The usage of *BRepAlgo_Section* has been replaced with the usage of *BRepAlgoAPI_Section* in *BRepProj_Projection* algorithm.
    
    The TODO statements have been removed from the failing test case in the "prj" grid as they are working correctly now.
    
    The following changes have been made to improve the performance *BRepAlgoAPI_Section*:
    1. Revision of the *IntPolyh_Intersection* class to avoid repeated calculation of the deflection of the same triangulation.
    2. Small revision of the Edge/Face intersection algorithm to perform Extrema computation on the whole intersection range of the edge instead of discrete ranges.
    3. Implementation of the extrema computation for the Circle and Sphere.
    4. Correct computation of the parameter of the point on the Circle.

commit 95f688263d57d9d1a99d065b3bf718065d7701f8
Author: kgv 
Date:   Mon Jan 29 11:05:20 2018 +0300

    0029069: Samples - handle UNICODE filenames within C++/CLI CSharp sample

commit 1d53219a28ca939a78d5c4f8934957355e1214cf
Author: msv 
Date:   Tue Jan 30 16:03:06 2018 +0300

    0029463: Regression relation to 691 version: Method BndBox::IsOut() returns true for point lying on the planar face
    
    Correct the method BRepBndLib::Add so that to enlarge the bounding box on the tolerance of edges which curves participate in calculation of the box.

commit 9b1d4e7fbedf104579ddfcf7c05ea8b308e89b7a
Author: aml 
Date:   Sat Jan 27 11:20:27 2018 +0300

    0028176: Draw Harness - "reshape" command usage is not properly documented
    
    Help message is corrected for "reshape" command. Command implementation is corrected according OCCT coding rules.

commit 32712d67c18be0d2eebaa479f0789becc60fdc11
Author: abv 
Date:   Sun Jan 28 19:49:43 2018 +0300

    0029447: The constructor of Message_PrinterOStream mixes up cout and cerr
    
    Use of cerr or cout is corrected in Message_PrinterOStream constructor

commit ca4e36ae5b9076340fb14716da44ca367314dab8
Author: aml 
Date:   Fri Jan 26 09:35:19 2018 +0300

    0029453: Draw Harness - unclear syntax of "add" command
    
    Help message is corrected for "add" command.

commit 07bbde451a11595140977b457e50b60c35cab354
Author: abv 
Date:   Sun Dec 24 09:44:04 2017 +0300

    0029399: Optimize reading of floating point values from text strings
    
    Function Strtod() is reimplemented using open source (MIT-style license) code by David M. Gay instead of strtod() provided by standard run-time library. This improves its performance by 3-10 times.
    
    Functions Atof(), Strtod(), Printf(), Sprintf(), Fprintf() are declared as extern "C" to be usable from C programs.
    
    Strtod() is used in Interface_FileReaderData::Fastof() and in RWStl_Reader to accelerate their work.
    
    DRAW command QATestAtof and test perf fclasses strtod are added to check correctness and performance of Strtod().
    Test perf draw restore is added to monitor performance of reading BREP files.
    
    Minor off-topic corrections:
    - method Standard_GUID::Assign (const Standard_UUID&) is implemented (was empty);
    - Precision.hxx is included in BRepMesh_Vertex.hxx that uses it.

commit 0edbf10564f1d06f96d5eb936af909ac0ec36d85
Author: abv 
Date:   Wed Jan 10 21:17:35 2018 +0300

    0029399: Optimize reading of floating point values from text strings -- base dtoa.c
    
    Fast implementation of strtod downloaded from www.netlib.org/fp/dtoa.c (base version) is integrated as Standard_Strtod.cxx.

commit ca9faa284d2f968e6dc2659a72b89b8173ba593b
Author: msv 
Date:   Thu Jan 25 12:00:46 2018 +0300

    0029448: The method Extrema_FuncExtCS::GetStateNumber mixes up parameter on curve with parameter U on surface
    
    The code has been corrected to eliminate the mess.

commit 779d6bc6a598c81aba1e9efea47bab6e0b1d75d4
Author: nbv 
Date:   Fri Jan 19 18:07:06 2018 +0300

    0028102: Problem cutting a plate with several holes (670)
    
    Algorithm of processing cases when point of splitting Walking-line is near to the boundary of the intersection domain but does not match this boundary has been improved.

commit 93445088d83f250f33234766a960dc46d8f0609b
Author: vro 
Date:   Tue Jan 23 14:06:18 2018 +0300

    0029443: It is not possible to store an ExtStringArray Ocaf attribute to any previous version in XML file format

commit 00dfcc765ab38e91df547c9e8dfa70a87a6eb836
Author: ika 
Date:   Fri Jan 19 13:36:30 2018 +0300

    0029436: Data Exchange - Extend Expand compounds functionality.
    
    Extend permissions for expand in ShapeTool
    Fix processing of subshapes
    Fix misprints
    Add test cases

commit b6cf8ffa35f902f9e8807ebd2b24e07fe8ddf321
Author: emv 
Date:   Mon Nov 27 15:52:55 2017 +0300

    0028385: Improve drawing isolines (DBRep_IsoBuilder algorithm)
    
    1. When computing the iso-lines for the face (*DBRep_IsoBuilder*) prepare the Hatching algorithm with the following elements:
    a. Trimmed p-curves of edges. The trimming parameters are computed by intersection with p-curves of the neighboring edges. The trimming will be performed only if the intersection point is covered by the tolerance of common vertex.
    b. 2D segments connecting the p-curves of the neighboring edges. These segments will close the 2D gaps, which are closed in 3D by the tolerance of vertices shared between edges. This will allow trimming correctly the iso-lines passing through such gaps.
    
    2. Implementation of the additional Init() method for WireExplorer algorithm taking UV bounds of the face to avoid their repeated computation when work working with a face having multiple wires.
    
    3. Test cases for the issue.

commit f24150b851a4fa78e36bb58b7f8702a32d57a9bd
Author: nbv 
Date:   Tue Jan 16 16:03:01 2018 +0300

    0029430: [Regression] Curve evaluation at boundary point.
    
    Before the fix, BRepAdaptor_CompCurve considered the input wire to be periodic with period LastParameter()-FirstParameter().
    Now, method IsPeriodic will always return FALSE because it is impossible to obtain correspondence between the members of BRepAdaptor_CompCurve class and its periodicity status.
    New behavior has been documented in upgrade-guide.

commit 4bc805bfc68d535cb5b5d0334ccb6b7db24ef173
Author: msv 
Date:   Mon Dec 11 18:00:19 2017 +0300

    0029368: Incorrect intersection state of the intersection point of two 2d curves
    
    In the algorithm math_FunctionRoots, improve the case when it is needed to find the extremum of the function. Earlier, to solve this task the method of gold section was used. With the patch, firstly the algorithm tries to find zero value of the derivative function. In most cases it gives precise result. Secondly, the algorithm tries to find zero value of the function using the old approach. The algorithm chooses the best solution among two computed by different methods.
    
    In the method PutStickPavesOnCurve of BOPAlgo_PaveFiller, forbid putting a vertex to the end of the curve if this end already has a vertex assigned to it. This allows getting rid of unwanted colliding of vertices.
    
    In the method UpdatePaveBlocks of BOPAlgo_PaveFiller, make the check for micro edges more precise.
    
    New category of tests "lowalgos" has been added. Tests for low level algorithms are to be put there. "2dinter" is a new group of tests in this category.
    
    Introduction of the new key for "2dintersect" command, allowing printing the intersection state for each point.
    It has the following syntax now:
    "2dintersect curve1 [curve2] [-tol tol] [-state]"
    Options:
    -tol - allows changing the intersection tolerance (default value is 1.e-3);
    -state - allows printing the intersection state for each point.
    
    Correct the test case bugs/modalg_7/bug28274 to make proper checks of the result.

commit 14abe5dc8181e514f3dc7adb328a95fa4f489f53
Author: szy 
Date:   Thu Dec 28 16:53:41 2017 +0300

    0029385: OCAF - TDataStd_IntPackedMap lacks interface to set map as TColStd_PackedMapOfInteger
    
    Added method ChangeMap (const TColStd_PackedMapOfInteger& theMap).

commit fcca9d7cd0264593423edab813fc737829f4157e
Author: abv 
Date:   Thu Jan 11 23:23:09 2018 +0300

    0029422: OCAF, old persistence - wrong implementation of writing a reference

commit 2651bb324e0e9e38038a5db100561ef2d1719b03
Author: msv 
Date:   Fri Dec 29 17:44:42 2017 +0300

    0028211: Modeling Algorithms - Boolean fuse operation produces incorrect result
    
    Correct procedure of initialization of BRepTopAdaptor_FClass2d and IntTools_FClass2d classifiers so as to produce more tight polygon in the case of self-intersections on very thin faces.
    
    The idea is concluded in checking the condition:
    defl < 2 * S / P, where S - is the surface area computed on produced polygon, P - its perimeter, defl - deflection computed on it.
    If the condition is not true the polygon is discretized again using QuasiUniformDeflection tool.

commit 67b3d2a8ad814ac30fb814fbf0a7e401988f21e9
Author: kgv 
Date:   Fri Jan 12 10:36:18 2018 +0300

    0029419: Make V3d_Viewer::PrivilegedPlane() return const reference rather than a temp object

commit 1f59dfa9c224792eaf408b443f2f3e2dd7adbb1c
Author: isn 
Date:   Mon Sep 11 16:53:31 2017 +0300

    0028681: UnifySameDomain distorts face boundary when merges a chain of small linear edges
    
    In case of sequence of edges based on lines (which are going to be unified into one line-segment), take into account a linear tolerance  value.
    Get rid of regressions.
    Updates of USD-tests.

commit 2c3f1a579bc55e23d1cf08b33eb0110956f484a5
Author: abv 
Date:   Tue Jan 2 14:03:16 2018 +0300

    0029409: Configuration, macOS - "Appkit" is spelled in CMake scripts using wrong case for "K"
    
    Spelling error is corrected in name of AppKit library in CMake and genproj scripts for macOS

commit 5d010b1d05110c24421370ee5a23e90d1e18ec32
Author: ifv 
Date:   Fri Dec 15 10:23:29 2017 +0300

    0028499: Checkshape incorrectly reports BRepCheck_NotClosed when gap is covered by vertex tolerance
    
    Calculation of 2d tolerance is improved

commit 409095ba18a4089995cad1eab9986e4b973b2b9a
Author: szy 
Date:   Wed Dec 27 17:28:54 2017 +0300

    0029402: In OCCT7.2.1-dev the names written into a FSD_File are associated with the wrong shapes.
    
    The issue of incorrect Roots indexing is fixed by changing DataMap to IndexedDataMap.
    Draw command fsdread was improved to allow restoring of shapes with kept names.

commit 44f2982356234b246d80d3e18b4b0ebe76897c67
Author: ika 
Date:   Tue Dec 26 13:46:08 2017 +0300

    0029403: Data Exchange - subshapes names are not imported from step
    
    Fix processing of subshape names in STEP in reading and writing.
    Replace creating subshapes in Document as tree (invalid) with plain subshapes structure.
    Update test cases.

commit 62a672fb35ee7f49341a29a2cb3599aa305619ee
Author: msv 
Date:   Tue Dec 26 12:14:32 2017 +0300

    0029358: Unifysamedomain is unable to merge faces with the same underlying surface
    
    The documentation has been updated to avoid misunderstanding of algorithm behavior.

commit bfb6523573ccd1429308f6b3c7aa301b428eae9a
Author: emv 
Date:   Thu Dec 21 17:24:28 2017 +0300

    0029387: Incorrect result of cut a face with several shapes
    
    Remove section edges having no valid range.
    Test case for the issue.

commit 4a5eefb909cb34f517437b9f3abfe18d7e2e7061
Author: szy 
Date:   Wed Dec 20 12:20:29 2017 +0300

    0029371: The problem of the attributes constructor call
    
    Default Guid is assigned in constructor.
    Add test case: tests\bugs\caf\bug29371.

commit 153fee015d904100ef303ae539c5b1d7f87194ed
Author: skl 
Date:   Thu Dec 21 11:15:10 2017 +0300

    0029391: Invalid import of TrimmedSurface
    
    Fix and test for bug 29391.

commit d9f2bc6b0834bc5c2c9692886021bd1edbd50c70
Author: msv 
Date:   Mon Dec 25 13:03:00 2017 +0300

    0029380: Delete "checknbshapes" from bugs/modalg_6/bug27341* test cases

commit e25185fff00ab370800b0af074313ca0c728731b
Author: emv 
Date:   Mon Dec 25 11:47:53 2017 +0300

    0029400: Fuse of two edges creates self-interfered shape
    
    Avoid creation of the edges with too small valid range (not allowing to split the edge) and interfering vertices.
    Test case for the issue.

commit 8197951d7e2f9e8408f25a5329a6cbca8d172576
Author: ski 
Date:   Thu Dec 21 15:37:53 2017 +0300

    0029396: Configuration, Cmake: restore 3rd-party libraries into INTERFACE_LINK_LIBRARIES property of installed OCCT targets
    
    Changes from branch CR29277 were reverted.

commit 2e473bb0492995ae64f0de5b030b8fb72275ed78
Author: bugmaster 
Date:   Fri Dec 22 10:31:15 2017 +0300

    0029398: Configuration - list lex and yacc files in the StepFile/FILES to avoid CMake warnings
    
    Adding step.lex and step.yacc to StepFile/FILES

commit 83ae35919c66c327d86f08497ea804570d18ccc6
Author: szy 
Date:   Wed Dec 13 15:27:50 2017 +0300

    0029220: Application Framework - replace CDM_MessageDriver interface by Message_Messenger.

commit 31e026ba639953c2836a3872722b19c3ba00f677
Author: anv 
Date:   Tue Nov 28 12:31:08 2017 +0300

    0029352: Adding support of GBK and Big5 code pages
    
    Added methods to convert GBK and Big5 encodings to Unicode

commit 0ab4e621833f4eae945a3762c9a29ee12e2eec53
Author: msv 
Date:   Tue Dec 19 16:01:06 2017 +0300

    0028248: [Regression] HLR Algo result is retrieved from the last added shape only
    
    Mistakes in retrieving of HLRBRep_EdgeData by value instead of reference have been corrected.

commit 81a2800c0d73fbcf1749c5845e3f3bef51b2cb8e
Author: kgv 
Date:   Tue Dec 19 14:00:10 2017 +0300

    0029393: Samples - AndroidQt sample build fail
    
    AndroidQt - dropped removed arguments within V3d_View::SetWindow() usage [0024776].
    AndroidQt_Window - add missing NativeFBConfig() method declared in the interface [0026732].

commit c805f9a8f8e17e529096b323c2a4417090beebe1
Author: ifv 
Date:   Mon Dec 4 16:20:19 2017 +0300

    0028722: Conversion of a spherical face to a spline produces an invalid shape
    
    Correction of 2d tolerance calculation for BSpline/Bezier surfaces
    Test cases are corrected according to current behavior of algorithm

commit 5b7f8e0a695f1ddd609a3bc4323bcef096e284b7
Author: ika 
Date:   Mon Dec 4 11:05:02 2017 +0300

    0029362: Data Exchange - Crash during reading step file
    
    Additional check for wires into searching of attached shapes,
    Fix Dimension value processing,

commit 77cd443b9988c27674923a2fece0152935dba289
Author: kgv 
Date:   Fri Dec 8 15:13:14 2017 +0300

    0029377: Configuration, CMake - linkage errors while using static OCCT libraries on Windows platform
    
    HAVE_NO_DLL is now defined when building Static libraries.

commit 683d15cbd47e08137e4bc26c3abe43c259e5ff9d
Author: kgv 
Date:   Thu Dec 7 20:58:36 2017 +0300

    0029376: Coding Rules, TColStd_PackedMapOfInteger - declare Iterator as nested class of map collection

commit 803a8cafe5f80b6d2917f407d1186171ff353d5e
Author: emv 
Date:   Tue Dec 12 15:10:37 2017 +0300

    0029363: No history for shapes which were produced as a result of intersection
    
    1. Implementation of the *Generated* method for the algorithms in Boolean Component.
    In terms of these algorithms the shape from the arguments can have Generated shapes only if these new shapes have been obtained as a result of pure intersection (not overlapping) of this shape with any other shapes from arguments.
    Thus, the Generated shapes are always:
    * VERTICES created from the intersection points and may be Generated from edges and faces only;
    * EDGES created from the intersection edges and may be Generated from faces only.
    
    So, only EDGES and FACES could have information about Generated shapes. For all other types of shapes the list of Generated shapes will be empty.
    
    2. Optimization and simplification of the Modified and IsDeleted methods based on the correct filling of the BOPAlgo_BuilderShape::myImagesResult map.
    
    3. Provide history of unification of the solids in the CellsBuilder algorithm.
    
    4. Update of the documentation of Boolean Operations User guide with new chapter "History Information" describing rules for filling history for operations in Boolean Component.
    
    5. Test cases for the issue. New grid "history" has been added into "boolean" category.

commit 6f1ea0f4b1bc48a023f191712ea1f680434ff107
Author: nbv 
Date:   Thu Dec 7 11:28:20 2017 +0300

    0029179: Result of Boolean common depends on an order of arguments
    
    Usage of Bnd_Box-filtering is eliminated while putting a (definitely) common vertex between two faces on the intersection curve.
    
    Algorithm of putting not-common (ON/IN) vertices has not been changed.

commit 624c599cd37e0c8db76688af1ca69d868a666c0b
Author: nbv 
Date:   Thu Nov 30 13:44:48 2017 +0300

    0029359: Approximation algorithm computes multidimensional distance in Euclidean space incorrectly
    
    Wrong distance computation has been corrected.
    
    Some test-cases have been corrected according to their new behavior. Namely, built (by approximation algorithm) curve(s) has changed its geometrical position.
    
    1. tests/blend/simple/X4
    
    It is not a regression because the result is not correct on both MASTER and FIX (see explanation in the issue #26740). This problem is expected to be solved after porting Fillet-algorithm to new Boolean operation. Old Boolean operations do not cover Edge-Edge tangent-zone by vertex.
    
    2. tests/bugs/modalg_6/bug27341_318
    
    "checknbshapes" has been deleted in order to avoid non-stable behavior (see issue #29360) of this test case. New result is OK on both Linux and Windows platform.

commit 0a807dd9a320d93306dfea222ae5976a7a355549
Author: emv 
Date:   Tue Dec 5 14:22:22 2017 +0300

    0029351: Boolean Operations create invalid pcurves
    
    When making pcurve for edge on face make sure that the produced 2D curve will have the same range as 3D curve of the edge.

commit 4e882c7153c62fc54b2c67deac5eb9a22ae796d2
Author: vro 
Date:   Wed Aug 19 10:25:11 2015 +0300

    0026570: Crash on attempt to rotate a shape.
    
    An extended draw-command trotate (ttranslate, tmirror, ...) by an additional parameter "-copy".
    New check of edge range is added in BRepCheck/BRepCheck_Edge.cxx
    The same checking is added in ShapeAnalysis_Edge.cxx
    Fixing this problem is added in ShapeFix_Wire.cxx
    GeomLib::SameRange(...) and BRepTools_TrsfModification::NewCurve2d(...) are modified to avoid exception in TrimmedCurve

commit 472433e2c7345c113fc7558fd3365eb2768e9be4
Author: abv 
Date:   Sat Dec 2 11:24:58 2017 +0300

    0029355: OCCT 6.9.1 persistence restored in OCCT 7.2.0 not working
    
    Auxiliary classes StdObjMgt_ReadData::Object and StdObjMgt_WriteData::Object are renamed to "ObjectSentry" (to better reflect their nature); constructor is made explicit to ensure that such objects are always created intentionally.
    These objects are instantiated explicitly in the body of relevant functions, instead of implicit creation as temporary objects when function requires such object as argument.
    Variable used to get char from stream is nullified in several places in FSD_File and other classes, to avoid possible usage of uninitialized memory in case if stream is bad.

commit 67160f4e793db10185323fb7ff22ce270dd58129
Author: kgv 
Date:   Thu Dec 7 10:57:26 2017 +0300

    0029372: Graphic3d_TransformPers - improve description of Local Coordinate system defined by Transformation Persistence

commit 5dc0517d2d7da44309c1dc0a13030937a4634cae
Author: kgv 
Date:   Mon Dec 4 15:16:34 2017 +0300

    0029365: Visualization, TKOpenGl - do not include hidden structures to Rendered within frame statistics
    
    OpenGl_Layer::UpdateCulling() now considers structure as culled in case if it has Hidden state.

commit 944768d27781240469f685604cb78e4822dbbf71
Author: emv 
Date:   Wed Nov 1 11:30:30 2017 +0300

    0029312: Using OBB to speed up Boolean Operations
    
    1. Implementation of the user-defined option for usage of Oriented Bounding Boxes (OBB) in Boolean Operations for additional filtering (rejection) of selected for intersection pairs of sub-shapes.
    
    By default the usage of OBB is turned off.
    To enable/disable its usage the method SetUseOBB(flag) should be used. This method is available for all operations in Boolean Component.
    To enable/disable it in draw the command "buseobb 0/1" should be used. Note, that this will affect all subsequent operations.
    
    The OBB for the shapes are built by first necessity and stored into operation context (IntTools_Context).
    
    2. Usage of the OBB in some test cases.

commit 1a0339b46484927ca2e1adeb35d018f0def7f6c7
Author: nbv 
Date:   Wed Nov 8 15:47:09 2017 +0300

    0029311: Implementation of the Oriented Bounding Boxes (OBB) functionality
    
    1. The class Bnd_OBB has been created to describe the Oriented Bounding Box.
    
    2. Several key methods have been implemented: Bnd_OBB::IsOut(...), Bnd_OBB::Add(...) and Bnd_OBB::Enlarge(...).
    
    3. Interface of Bnd_Box class has changed. New methods have been created. See Bnd_Box.hxx for detailed information.
    
    4. BRepBndLib and Draw_Box classes have been amended in order to provide correct work with Bnd_OBB class.
    
    5. Interface of "bounding" DRAW-command has been changed. Please see help for detailed information.
    
    6. New DRAW-command "isbbinterf" has been created. Please see help for detailed information.
    
    7. "boundingstr" and "optbounding" DRAW-commands have been eliminated because their function can be made by "bounding" DRAW-command (e.g. see tests/bugs/vis/buc60857 or samples/tcl/snowflake.tcl test cases).
    
    8. Documentation has been updated.

commit 8d1a539c4a8c8d59852174d6de0928aedaf8251b
Author: kgv 
Date:   Mon Dec 4 16:29:43 2017 +0300

    0029366: Visualization, OpenGl_Text - artifacts when using Aspect_TODT_SHADOW/Aspect_TODT_DEKALE at different zoom level
    
    OpenGl_Text now applies Polygon Offset instead of Z-shift in world coordinates for drawing background.
    OpenGl_Context::SetPolygonOffset() - polygon offset state has been moved from OpenGl_Workspace to OpenGl_Context.

commit faaa95cbe7bcf29c33d2bf6ee2355ad8bfaa2c70
Author: nbv 
Date:   Mon Nov 13 13:55:48 2017 +0300

    0029323: Intersection algorithm produces the curve with oscillation
    
    Sometimes the algorithm of purging of extra points in the walking line makes enormous difference in distance between two neighbor segments of the line. This badly impacts the quality of approximation result. This patch balances the difference in distances by forbidding deletion of some points.
    
    1. tests/bugs/modalg_6/bug27615
    
    The reason of the correction is explained in the message ~0072580 (see issue #28557).
    
    2. tests/bugs/modalg_7/bug28892*
       tests/bugs/modalg_7/bug28984
    
    The reason of the correction is explained in the message ~0072583 (see issue #28984).

commit 48a2dd2012acf5d81b5d3721e7852bd82570c817
Author: kgv 
Date:   Fri Nov 24 18:37:01 2017 +0300

    0029344: Foundation Classes, TCollection_AsciiString - replace confusing strncpy with memcpy
    
    strncpy() usage within TCollection_AsciiString has been replaced by memcpy()
    where string length has been already determined.
    
    TCollection_AsciiString::SetValue() now throws exception
    on attempt to set '\0' - TCollection_AsciiString::Trunc() should be used instead.
    TCollection_AsciiString(const char* , int ) has been modified to properly set string length
    in case of NULL-terminator appeared earlier then specified length.
    
    Interface_LineBuffer has been revised for using NCollection_Array1 instead of TCollection_AsciiString
    to avoid misusing TCollection_AsciiString interface.

commit 15669413da726f1e569eaf3b85b6bcb6825187af
Author: kgv 
Date:   Fri Nov 24 18:43:01 2017 +0300

    0029346: Visualization, TKOpenGl - collect frame statistics
    
    Graphic3d_RenderingParams::ToShowStats - new option displaying rendering statistics.
    
    OpenGl_FrameStats - new class for accumulating frame statistics.
    OpenGl_Context::FrameStats() provides an access to the frame stats
    used for currently rendered context.
    OpenGl_View::Redraw() and OpenGl_View::RedrawImmediate()
    resets counters within OpenGl_Context::FrameStats().
    
    OpenGl_Layer::UpdateCulling() - simplified resetting of culling state for cullable structures.

commit ab3ff92cc07c89d7f665268f6e7db79568c02958
Author: vro 
Date:   Wed Nov 29 16:36:21 2017 +0300

    0029353: Optimization of TPrsStd_AISPresentation::SetSelectionMode()

commit 992ed6b3c05f5fa60edfde74d4bb6c49daa27574
Author: kgv 
Date:   Thu Nov 2 15:36:20 2017 +0300

    0029290: Visualization, TKOpenGl - allow defining Light source per ZLayer
    
    Graphic3d_CLight is now defined as a class inheriting Standard_Transient,
    so that it's fields now should be accessed through methods.
    Graphic3d_CLight::IsEnabled() - new property allowing to disable light source everywhere.
    Confusing alias OpenGl_Light has been removed.
    
    Graphic3d_CLight::SetAttenuation() - the upper limit 1.0 of attenuation factors has been removed
    since it contradicts to OpenGL specs and does not make sense.
    
    Graphic3d_ZLayerSettings::Lights() - light sources list is now property of ZLayer.
    When defined, it overrides light sources defined for View/Viewer.
    New class Graphic3d_LightSet has been defined to define a set of light sources.
    
    V3d_Light - removed obsolete interface for debug drawing lights sources.
    V3d_Light is now an alias to Graphic3d_CLight.
    V3d_TypeOfLight is now defined as a typedef to Graphic3d_TypeOfLightSource.

commit 3cbd0a8e87d9cecdc434b6db33d6b611fbeedb82
Author: kgv 
Date:   Tue Nov 28 09:46:42 2017 +0300

    0029350: Visualization, OpenGl_Text - add Aspect_TODT_SHADOW text style
    
    Within new style Aspect_TODT_SHADOW, a tiny shadow is drawn at right-bottom corner
    with one pixel shift, producing a slightly nicer visual look than Aspect_TODT_DEKALE.

commit 64c6d8df50bb1ff01cb32a9750c8b785b370294f
Author: kgv 
Date:   Thu Nov 16 22:57:48 2017 +0300

    0029331: Visualization, TKOpenGl - make OpenGl_PrimitiveArray::IsFillDrawMode() as virtual method of OpenGl_Element

commit f47849f49ece72237f905d1ca6a933cbfe904d1e
Author: kgv 
Date:   Tue Jan 31 11:26:48 2017 +0300

    0028416: Visualization - SelectMgr_SelectionManager::Activate() should not implicitly deactivate Global Selection Mode
    
    Implicit deactivation of global selection mode has been removed from SelectMgr_SelectionManager::Activate().
    
    Added new method AIS_InteractiveContext::SetSelectionModeActive() as replacement
    of AIS_InteractiveContext::Activate() / ::Deactivate().
    New method takes an argument AIS_SelectionModesConcurrency which defines
    what to do with already activated selection modes in 3 ways:
    - AIS_SelectionModesConcurrency_Single, only one selection mode can be activated at
      the same moment - previously activated should be deactivated
    - AIS_SelectionModesConcurrency_GlobalOrLocal, either Global (AIS_InteractiveObject::GlobalSelectionMode()
      or Local (multiple) selection modes can be active at the same moment
    - AIS_SelectionModesConcurrency_Multiple, any combination of selection modes can be activated.

commit 81a55a6996dd7db9210fa3cb1518825d1f87148b
Author: emv 
Date:   Fri Nov 17 16:27:36 2017 +0300

    0029333: Boolean Operations - Prevent modification of the input shapes in case their sub-shapes have not been modified
    
    Prevent modification of the input shapes in destructive mode in case their sub-shapes have not been modified:
    1. Prevent edge splitting for the pave blocks with old vertices if it is possible to use the existing edge (*BOPAlgo_PaveFiller::MakeSplitEdges*);
    2. Prevent creation of the new containers (WIRES/SHELLS/COMPSOLIDS) if non of its parts have been modified (*BOPAlgo_Builder::FillImagesContainer*);
    3. Prevent creation of the new face if non of its wires have been modified (*BOPAlgo_Builder::FillImagesFaces*);
    4. If possible, use the original face to be the representative for the group of SD faces (*BOPAlgo_Builder::FillSameDomainFaces*).
    
    Cosmetic changes:
    1. Documentation of the *BOPAlgo_Builder* class.
    2. Making simple methods of the *BOPAlgo_Builder* class inline.
    3. Getting rid of the *BOPAlgo_Builder::mySplits* field as it is excessive. *BOPAlgo_Builder::myImages* can be used instead.
    3. Moving the Check Inverted option from *BOPAlgo_Options* to *BOPAlgo_Builder*.
    
    Test cases for the issue.
    Adjustment of the test case to their current behavior.
    Test case *blend/complex/H2* has been deleted as duplicate of the test case *blend/simple/Z1*.

commit 1155d05a06702191afb2039d6d0c8d6ee197da37
Author: emv 
Date:   Thu Nov 23 10:57:25 2017 +0300

    0025609: Clean up the duplicate classes in TKBO project
    
    1. The package BOPCol has been fully removed:
    - *BOPCol_BaseAllocator* is replaced with *Handle(NCollection_BaseAllocator)*;
    - *BOPCol_BoxBndTree* is replaced with *BOPTools_BoxBndTree*;
    - *BOPCol_Box2DBndTree* is removed as unused;
    - *BOPCol_DataMapOfIntegerInteger* is replaced with *TColStd_DataMapOfIntegerInteger*;
    - *BOPCol_DataMapOfIntegerListOfInteger* is replaced with *TColStd_DataMapOfIntegerListOfInteger*;
    - *BOPCol_DataMapOfIntegerListOfShape* is replaced with *TopTools_DataMapOfIntegerListOfShape*;
    - *BOPCol_DataMapOfIntegerMapOfInteger.hxx* is removed as unused;
    - *BOPCol_DataMapOfIntegerReal* is replaced with *TColStd_DataMapOfIntegerReal*;
    - *BOPCol_DataMapOfIntegerShape* is replaced with *TopTools_DataMapOfIntegerShape*;
    - *BOPCol_DataMapOfShapeBox* is replaced with *TopTools_DataMapOfShapeBox*;
    - *BOPCol_DataMapOfShapeInteger* is replaced with *TopTools_DataMapOfShapeInteger*;
    - *BOPCol_DataMapOfShapeListOfShape* is replaced with *TopTools_DataMapOfShapeListOfShape*;
    - *BOPCol_DataMapOfShapeReal* is replaced with *TopTools_DataMapOfShapeReal*;
    - *BOPCol_DataMapOfShapeShape* is replaced with *TopTools_DataMapOfShapeShape*;
    - *BOPCol_DataMapOfTransientAddress* is removed as unused;
    - *BOPCol_IndexedDataMapOfIntegerListOfInteger* is removed as unused;
    - *BOPCol_IndexedDataMapOfShapeBox* is removed as unused;
    - *BOPCol_IndexedDataMapOfShapeInteger* is removed as unused;
    - *BOPCol_IndexedDataMapOfShapeListOfShape* is replaced with *TopTools_IndexedDataMapOfShapeListOfShape*;
    - *BOPCol_IndexedDataMapOfShapeReal* is removed as unused;
    - *BOPCol_IndexedDataMapOfShapeShape* is replaced with *TopTools_IndexedDataMapOfShapeShape*;
    - *BOPCol_IndexedMapOfInteger* is replaced with *TColStd_IndexedMapOfInteger*;
    - *BOPCol_IndexedMapOfOrientedShape* is replaced with *TopTools_IndexedMapOfOrientedShape*;
    - *BOPCol_IndexedMapOfShape* is replaced with *TopTools_IndexedMapOfShape*;
    - *BOPCol_ListOfInteger* is replaced with *TColStd_ListOfInteger*;
    - *BOPCol_ListOfListOfShape* is replaced with *TopTools_ListOfListOfShape*;
    - *BOPCol_ListOfShape* is replaced with *TopTools_ListOfShape*;
    - *BOPCol_MapOfInteger* is replaced with *TColStd_MapOfInteger*;
    - *BOPCol_MapOfOrientedShape* is replaced with *TopTools_MapOfOrientedShape*;
    - *BOPCol_MapOfShape* is replaced with *TopTools_MapOfShape*;
    - *BOPCol_PListOfInteger* is removed as unused;
    - *BOPCol_PInteger* is removed as unused
    - *BOPCol_SequenceOfPnt2d* is replaced with *TColgp_SequenceOfPnt2d*;
    - *BOPCol_SequenceOfReal* is replaced with *TColStd_SequenceOfReal*;
    - *BOPCol_SequenceOfShape* is replaced with *TopTools_SequenceOfShape*;
    - *BOPCol_Parallel* is replaced with *BOPTools_Parallel*;
    - *BOPCol_NCVector* is replaced with *NCollection_Vector*;
    
    2. The class *BOPDS_PassKey* and containers for it have been removed as unused;
    
    3. The unused containers from *IntTools* package have been removed:
    - *IntTools_DataMapOfShapeAddress* is removed as unused;
    - *IntTools_IndexedDataMapOfTransientAddress* is removed as unused;
    
    4. The container *BiTgte_DataMapOfShapeBox* is replaced with *TopTools_DataMapOfShapeBox*;
    
    5. The class *BOPTools* has been removed as duplicate of the class *TopExp*;

commit 2da51263712183523c17b2726bf8ca1b85b3632f
Author: kgv 
Date:   Tue Nov 28 08:42:40 2017 +0300

    0029349: Foundation Classes, OSD_Timer - add missing theThisThreadOnly constructor option available in OSD_Chronometer
    
    OSD_Timer constructor now has theThisThreadOnly option passed to OSD_Chronometer,
    which is FALSE by default.
    
    OSD_Chronometer now provides methods ::UserTimeCPU(), ::SystemTimeCPU() allowing
    to fetch CPU times without akward syntax through overloaded ::Show().

commit 18d8e3e79428c19c4ac43099cea0b3eb45118e3f
Author: ifv 
Date:   Thu Nov 9 17:20:10 2017 +0300

    0029289: Wrong derivatives in math_TrigonometricFunctionRoots.cxx file
    
    Class MyTrigoFunction is removed from file math_TrigonometricFunctionRoots.cxx.
    New class math_TrigonometricEquationFunction with the same functionality is created to provide possibilities
    for individual testing.
    Expressions for derivatives are corrected.
    New Draw command "intconcon" for intersection 2d conic curves is created.
    Test command OCC29289 (file QABugs_20.cxx) is created for individual testing math_TrigonometricEquationFunction.
    It is used in tests/bugs/modalg_7/bug29289

commit b8bf95957832d639e71c9166a213bd65162856a2
Author: ika 
Date:   Thu Nov 23 12:40:59 2017 +0300

    0029338: Data Exchange - Add Planes for Tolerance zones in Geometric tolerances
    
    Add new poles to Geometric Tolerance objects
    Some code refactoring in GDT attributes
    Add Draw functions for affected plane

commit c2e47bdd8db82982b53c3f160f4eb1c14b3b2e7c
Author: mkv 
Date:   Thu Oct 26 11:59:25 2017 +0300

    Update of tests database
    
    Test for 0023171: Got wrong result after stitching
    Test for 0023612: BRepPrimAPI_MakeTorus
    Test for 0023610: checkshape command does not detect mismatch of the tolerance values among the sub-shapes of the shape
    Test for 0023660: 'bsection' produces result with gap
    Test for 0024397: BRepBuilderAPI_Copy works not correct
    Test for 0023927: BRepProj_Projection produces Edge with one Vertex outside from curve
    Test for 0023902: Cannot build fillet
    Test for 0023669: Error in Boolean operations algorithm: section between cylindrical face and prism is incomplete
    Test for 0023660: 'bsection' produces result with gap
    Test for 0024100: Bad pcurve is built on a face while converting the shape from STEP format.
    Test for 0024319: Sewing makes a solid transparent
    Test for 0024302: Section operation modifies input argument
    Test for 0024397: BRepBuilderAPI_Copy works not correct
    Test for 0024418: Wrong section curves when intersecting analytical surfaces

commit a7378539f128398d3c581248e0e65bfcda227ab1
Author: szy 
Date:   Mon Nov 20 17:31:15 2017 +0300

    0029142: Exception on Redo.
    
    Order of attributes deltas is fixed.

commit 0ccd71060a3da823caf50ec3124d31ea28d62cc2
Author: emv 
Date:   Wed Nov 22 16:29:40 2017 +0300

    0029175: BRepOffsetAPI_MakeOffset problem
    
    The problem is fixed by the fix for the issue #29162.
    Creating test case for the issue.

commit e7384fd437c6fccba9d7f59d6268a1bfb92bc608
Author: emv 
Date:   Mon Nov 13 16:03:31 2017 +0300

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

commit b7cd7c2b7c54cca90dedfa38e7e59f0cc0a0ccd8
Author: emv 
Date:   Mon Nov 13 11:11:27 2017 +0300

    0029322: Unify faces classification procedures in Boolean Operations
    
    1. Unify the faces classification procedure of the methods BOPAlgo_BuilderSolid::PerformInternalShapes() and BOPAlgo_Builder::FillIn3DParts() using the latter as a base.
    The new method BOPAlgo_Tools::ClassifyFaces() has been created for that. Both methods mentioned above have been updated to use the new one.
    
    2. Forced intersection of the edges after enlarge of the tolerance values of their vertices during the operation has been added into BOP's intersection algorithm (BOPAlgo_PaveFiller).
    BOPAlgo_Tools::PerformCommonBlocks() method has been updated to avoid loosing faces of the already created Common blocks.
    
    As a result the case "boolean gdml_private ZF6" became more stable, because the intermediate result is no longer invalid.
    Additional test cases have been added to verify this improvement (bugs modalg_7 bug29322_*)
    
    3. When building PCurves for edges on faces, check the existing PCurves on its validity for periodic surfaces and adjust PCurves if necessary.
    The improvement helps to produce the valid result in the test case "bugs moddata_1 bug152".
    
    4. Avoid creation of empty Edge-Edge interference if the intersection point is lying close to a shared vertex.
    The improvement helps obtain the valid result of the "bopcheck" operation in the test case "bugs modalg_7 bug27683".
    
    Adjustment of the test case to current behavior:
    - Avoid usage of the self-intersecting torus in the test case "boolean gdml_public A9".
    - Fix the input shape in the test case "boolean bopfuse_complex H1" to provide valid result.
    - Test cases "bugs moddata_1 bug152_1 bug152_2" have been unified into single test case "bugs moddata_1 bug152". Now, the case rebuilds invalid input data and performs all types of Boolean operations.
    - Change the test case "bugs modalg_7 bug22750" to produce valid intermediate results used in subsequent operations as arguments.
    - The following test cases are improvements:
    - "boolean volumemaker D8"
    - "boolean volumemaker G1"
    - "bugs modalg_7 bug27683"

commit c5b89fa358ab0932d7edb54af82b86bb4164dd5c
Author: aml 
Date:   Fri Nov 10 18:21:21 2017 +0300

    0025879: result of blend fails the bopcheck
    
    Protection from the zero-length gp_Dir construction is added.

commit e7174545ebf9d1a106b72b245258b4ffa5780f82
Author: abv 
Date:   Fri Sep 15 10:52:14 2017 +0300

    0029113: Coding Rules - fix convention to have one header per API type
    
    Paragraph on naming of classes is revised to describe correspondence of names of public types and files.

commit 977ad98334bf5e13c0b350a2a5ecf4d5ad349b70
Author: msv 
Date:   Fri Oct 20 18:59:01 2017 +0300

    0029234: BRepOffsetAPI_NormalProjection produces INTERNAL edges and vertices
    
    Make the algorithm BRepOffsetAPI_NormalProjection use section operation instead of common to get the edge-result of projection to be in face restrictions.
    
    Correct Boolean operation algorithm to produce correctly oriented result in the case of common between face and edge.
    
    The algorithm ShapeUpgrade_UnifySameDomain has been patched to correctly gather same domain faces in a compound.
    
    The TCL script snowflake.tcl has been corrected to get rid of dependence on the order of edges in the result of Boolean operation.

commit 2c26e60bf9e12a6666df3dfaee49b7d93cb91667
Author: kgv 
Date:   Tue Nov 14 11:38:31 2017 +0300

    0029317: Configuration, CMake - CSF_d3d9 should be processed for building TKD3DHost using MinGW

commit 282909754755806c3e1c239b83babc538fc11751
Author: msv 
Date:   Wed Nov 8 18:13:47 2017 +0300

    0029287: Move package GProp from TKG2d to TKG3d

commit 833e75611fbce55045cc671b73857d016607e6ab
Author: jgv 
Date:   Wed Oct 18 17:35:58 2017 +0300

    0029204: BRepOffsetAPI_MakePipeShell produces invalid result and raises exception in Draw
    
    1.The algorithm searching the section in the corner (ChooseSection) is modified to be able to find simple cases with rather big tolerance.
    
    2. The constructor of BRepFill_Section is modified: now it removes locations in the shape of section like it was done in BRepFill_Pipe.
    
    3. Correction of U-edges by Same Parameter has been added to the method BRepFill_Sweep::Build.

commit d193f101a7036cebe5f826a20b08421fb4ff12e8
Author: aml 
Date:   Sat Nov 11 10:33:45 2017 +0300

    0025968: boolean returning an invalid shape
    
    Problem is not reproduced on current master.
    Testing case was created

commit 86218548533c19fc289cd5d3dee94092cce3c17e
Author: emv 
Date:   Wed Nov 8 09:16:35 2017 +0300

    0029301: Improve performance of Boolean Operations
    
    Improve performance of Boolean operations algorithm by:
    - Improving the check of Same Domain faces (BOPAlgo_Builder::FillSameDomainFaces());
    - Faster rejection of outer faces for solids using Bounding Box classification first (BOPAlgo_Builder::FillIn3DParts());
    - Using IncAllocator for local containers.
    
    Quality improvement has been made in BOPAlgo_PaveFiller class:
    1. Method IsExistingPaveBlock() has been corrected to provide the correct edge tolerance and to obtain valid intermediate results in the test case "boolean gdml_private ZH3".
       New test case have been added to verify this improvement (bugs modalg_7 bug29301).
    2. Method PutClosingPaveOnCurve() has been corrected to use the tolerance of the pave put on the bound for checking curve on closeness.
       Additional check for the curve to have valid range after addition of the pave on the other end has been added to prevent considering the small curves (covered by vertex tolerance) as closed ones.
       As a result of this modification the test case boolean gdml_public B2 has been fixed (TODO removed).
    
    Adjustment of the test cases to current behavior:
    - boolean bopcommon_complex J1 - the produced result was incorrect as it was self-interfered. There should be no common in this case.
    - offset shape_type_i_c ZZ1 - the incorrect result is now produced instead of null shape.

commit b39485d9e3cdacddaae740c3f03883b02a4e2acf
Author: aml 
Date:   Sat Nov 11 10:44:41 2017 +0300

    0025966: Booleans with tangent faces
    
    Problem is not reproduced on current master.
    Testing case was created

commit 90f0fdad2a0e9baa0e3aa3e65c2d3afd61230800
Author: aml 
Date:   Thu Nov 2 12:08:18 2017 +0300

    0025104: Prism from BSpline curve can not be chamfered
    
    Protection from zero-length vectors has been added.

commit f16a6cc5aa69f4f6ae57d2b7bad05bbaa3e43520
Author: msv 
Date:   Fri Feb 17 11:26:25 2017 +0300

    0028467: Improve UnifySameDomain performance
    
    This patch turns off some not needed modes of fix in the called ShapeFix_Face algorithm.
    
    It stores pcurves on planes in the edges to avoid repeated computation of the same pcurves many times (it is done only when SafeInputMode is false).
    
    It avoids unnecessary replace/apply actions in the modification context.
    
    It removes the code that makes decomposition of surface of the face on several faces.
    
    The new command buildpcurvesonplane has been added, which builds and stores pcurves of edges on planar faces. This is useful for investigations how presence of pcurves on planes influence performance of algorithms.
    
    Make drawing of dimension line in snowflake test independent on the order of vertices in the result.

commit 2b8832bb0ebd09520819fa2bc574e1a3e112b132
Author: kgv 
Date:   Wed Nov 8 09:44:27 2017 +0300

    0028760: Visualization, TKOpenGl - avoid excessive frustum culling traverse within extra OIT rendering pass
    
    Culling traverse is no more called implicitly within OpenGl_Layer::Render().
    Instead, all layers are traversed at onces within OpenGl_View::render() beforehand.
    
    OpenGl_BVHTreeSelector methods have been renamed to better reflect their meaning.
    Non-persistent culling options has been moved to dedicated structure OpenGl_BVHTreeSelector::CullingContext
    so that OpenGl_BVHTreeSelector instance can be used for different Layers without modifying its state.

commit daf73ab7c996c96a03869b931988b8dd25aef2c2
Author: kgv 
Date:   Tue Oct 31 20:02:13 2017 +0300

    0029283: Visualization - allow defining more than 8 light sources
    
    OpenGl_ShaderManager now overrides THE_MAX_LIGHTS within built-in shading programs
    so that maximum number of lights is now limited only by OpenGL hardware
    (e.g. length of GLSL program, number of defined uniforms, result performance, etc.).
    THE_MAX_CLIP_PLANES is now also defined by OpenGl_ShaderManager,
    so that unused lights and clipping planes do not reserve extra uniforms in GLSL programs.
    
    V3d_View::SetLightOn() does not throw exception anymore, when the number of lights exceeds 8.
    Instead, OpenGl_ShaderManager::PushLightSourceState() emits warning
    in case of usage of FFP providing consistent behavior with Clipping Planes number limit.

commit 182bd7bc42097b93a66f01cdfb4b58895ff8acf5
Author: kgv 
Date:   Thu Nov 9 10:18:49 2017 +0300

    0029304: Draw Harness, DBRep_DrawableShape - fix inappropriate use of unordered map
    
    TColStd_DataMapOfIntegerInteger has been replaced by NCollection_Vector.

commit b6a0525bcb609cef57b8268aaf4a9962e1cf32b4
Author: kgv 
Date:   Tue Nov 7 17:23:29 2017 +0300

    0029299: Foundation Classes, NCollection - define explicit empty constructor for map classes
    
    Ambiguous constructors have been marked with explicit keyword for classes
    NCollection_DataMap, NCollection_DoubleMap, NCollection_IndexedDataMap, NCollection_IndexedMap,
    NCollection_List, NCollection_LocalArray, NCollection_Map, NCollection_Sequence,
    NCollection_SparseArray, NCollection_UBTree,

commit 510cb8524159a23a32a33be81d49f55a40526a5e
Author: kgv 
Date:   Wed Nov 8 15:25:51 2017 +0300

    0029302: Foundation Classes, NCollection - optimize iteration of indexed maps
    
    NCollection_IndexedMap and NCollection_IndexedDataMap
    now access Key by Index number without computing Hash code.
    IndexedMapNode::myNext2 and IndexedDataMapNode::myNext2 fields
    have been removed, so that indexed map now may utilize less memory.
    
    TCollection::NextPrimeForMap() has been extended upto 2038431745
    (almost full signed 32-bit integer range),
    and NCollection_BaseMap::mySaturated property has been removed.
    
    NCollection_IndexedDataMap::RemoveFromIndex(), FindKey(), FindFromIndex(),
    ChangeFromIndex() - removed duplicating checks for out of range input.

commit f88457e638094d194da87d104ef1743d77bd5cfe
Author: kgv 
Date:   Wed Nov 8 00:11:57 2017 +0300

    0029300: Visualization, TKOpenGl - provide depth pre-pass option
    
    OpenGl_LayerList::Render() now handles new option Graphic3d_RenderingParams::ToEnableDepthPrepass
    which prepends additional pass to rendering pipeline filling Depth Buffer in advance.

commit 21b2385fcb78237c38b4972a632d25a0e138d1f1
Author: kgv 
Date:   Thu Nov 2 16:29:17 2017 +0300

    0029292: Coding Rules - remove Graphic3d_Vector duplicating gp_XYZ
    
    Graphic3d_Vector has been replaced by gp_Pnt/gp_XYZ/gp_Dir depending on context.
    StdSelect_ViewerSelector3d::ToPixMap() - fixed unsafe float math causing out-of-range color results.