On branch IR-2019-12-27
Your branch is up to date with 'origin/IR-2019-12-27'.

Untracked files:
  (use "git add ..." to include in what will be committed)
	DrawAppliInit
	VERSION.html
	draw.bat
	env.bat
	exclude.lst
	msvc.bat
	occ_gitlog.bat
	occ_occt_build_ALL.bat
	occ_occt_build_android.bat
	occ_occt_build_wnt.bat
	occ_occt_pack_wnt.bat
	occ_occt_pack_wnt32.bat

nothing added to commit but untracked files present (use "git add" to track)
commit 0858125fd4ef81ca2965e1aa2f49c5960d7dcc62
Author: kgv 
Date:   Fri Dec 27 14:24:58 2019 +0300

    0031284: Visualization - XCAFDoc_VisMaterialPBR lacks Index of Refraction
    
    Added missing parameter.

commit 89d855ba58b60130739efd7c64d7482fadc0e674
Author: mzernova 
Date:   Fri Dec 13 11:55:50 2019 +0300

    0031225: Visualization, TKOpenGl - support cubemap for environment texture within Ray-Tracing
    
    Ray-Tracing now handles IBL and background cubemaps in similar way as PBR.
    Ambient light source is handled by Ray-Tracing in similar way as PBR,
    e.g. as coefficient for environment map (IBL) or as constant light source.
    
    Test script generating PBR spheres has been moved to Samples
    and now shared by PBR and Path-Tracing tests.

commit d415125a68253d7e975425ffbe948012b14cd3dc
Author: kgv 
Date:   Wed Dec 25 19:36:48 2019 +0300

    0031274: Data Exchange - RWObj_Reader ignores usemtl with empty name
    
    Fixed out of range access within pushMaterial().

commit 0da2ecac41ffca078d2d4c6b46bafcea36445ec4
Author: razmyslovich 
Date:   Tue Dec 17 21:17:17 2019 +0300

    0031251: Add a new meshing parameter to enforce face linear deflection
    
    Parameter has been renamed to ForceFaceDeflection. Added test case.
    
    New parameter -force_face_def has been added to incmesh command.

commit bdd09cfaf4fe4d7643d0c1c3d1d4cf9e8037a32a
Author: ifv 
Date:   Wed Dec 18 13:53:11 2019 +0300

    0031242: Scaling with different coefficients along axes produces invalid shape
    
    GeomConvert_1.cxx:
    Creation periodic BSpline surfaces from trimmed periodic surface if trim is boundaries of periodic domain is allowed
    
    BRepTools_NurbsConvertModification.cxx:
    Checking domain of 2dCurves if surfaces are periodic is added
    
    Test case tests/bugs/mesh/bug30008_2 is modified according to current behavior
    
    Test case tests/bugs/modalg_7/bug31242 is added

commit 9504a30d153b3281750b1a1ce56ae15317160032
Author: kgv 
Date:   Thu Dec 19 00:11:55 2019 +0300

    0031253: Visualization, TKOpenGl - phong shading GLSL compilation fail on Adreno 308
    
    Removed initialization of global Normal variable outside of main() block.
    occLight_IsHeadlight() flag is now packed into occLight_Position().w

commit 9a1701fbcb2f58d55a3e1893bede9744a9047662
Author: jgv 
Date:   Wed Dec 18 18:24:16 2019 +0300

    0030597: Result of BRepOffsetAPI_MakePipeShell doesn't match the given profiles
    
    Modify the local function EdgeToBSpline of BRepFill_NSections to build a BSpline curve of general type for each curve of profile.

commit c68c346d2bf899694ee756c92a3ab6c8f63effd6
Author: mzernova 
Date:   Tue Dec 10 14:39:56 2019 +0300

    0030600: Visualization, TKOpenGl - include GLES3/gl3.h instead of GLES2/gl2.h
    
    Changed GLES2/gl2.h to GLES3/gl3.h.
    
    OpenGl_Window_1.mm has been updated, now it is trying to create kEAGLRenderingAPIOpenGLES3 before trying to create kEAGLRenderingAPIOpenGLES2.

commit e2447a80ea01a85a358ea0c5e4896eaa8a7a3290
Author: ifv 
Date:   Thu Nov 28 15:22:53 2019 +0300

    0031203: Test harness command "bsection" on the planar faces return only one vertex instead edge representing intersection line
    
    BRepClass/BRepClass_FaceExplorer.cxx:
    Protection against intersection of test ray with almost parallel edges is added.
    
    SWDRAW/SWDRAW_ShapeFix.cxx: add tolerance as parameter in command checkfclass2d
    
    tests/bugs/modalg_7/bug31203:
    test case is added

commit 936ce1f273f3d28a8d547792036336f8a0926ebb
Author: oan 
Date:   Wed Dec 4 12:26:10 2019 +0300

    0031199: BRepMesh fails on thin faces
    
    Use real tolerance of a face to define threshold for tolerance of discrete model instead of empirical values based on discrete model itself

commit 6ef7a1f9e5ca2bef0fac8b0b4606a58cb5f54450
Author: jgv 
Date:   Fri Nov 29 20:03:14 2019 +0300

    0031187: Modeling Algorithms - Regression relatively 7.3.0. Unify same domain algorithm produces invalid shape.
    
    Modify the local function ReconstructMissedSeam to build new seam edges correctly.

commit 23c2ae55c797db7258027b6df30b3af36fb3d954
Author: msv 
Date:   Fri Nov 1 15:05:43 2019 +0300

    0031120: Memory leak in BRepOffsetAPI_MakeOffset
    
    Add destructor of MAT2d_Mat2d - full removal of edges and bisectors.

commit 8bfae263c1ca9f06875c9a25c3883d0b0267ee42
Author: abk 
Date:   Fri Dec 13 15:32:45 2019 +0300

    0031168: JT Import - cannot see properties attached to objects
    
    Draw command GetNDStrings was improved to sort the properties by the keys and
    skip conversions of the strings to type TCollection_AsciiString.
    
    Certain Draw commands were corrected to use the Draw interpreter instead of "std::cout".
    
    A Tcl procedure was created to compare two multi-line strings.

commit 1c2ddf56124b607d103600eac4b3f0127ccc96b5
Author: ma haidong <13501108114@163.com>
Date:   Tue Dec 10 01:00:59 2019 +0800

    0031231: Samples - the command "donl" in ModelingDemo.tcl should be "donly"
    
    Fixed misprint in Tcl sample script.

commit 5a8d30b87b5ab8f44e9011dc432d0dc8eb67a77b
Author: kgv 
Date:   Thu Dec 5 16:20:37 2019 +0300

    0030945: JT Import, JtProperty_LateLoaded - expose type of Deferred object
    
    RWMesh_NodeAttributes has been extended with NamedData property for passing Metadata.
    
    RWMesh_CafReader::addShapeIntoDoc() has been corrected to avoid
    adding calling XCAFDoc_ShapeTool::AddSubShape() for sub-shape labels.
    Attributes for Products and Instances are now set independently to shape labels.
    Sharing of Compounds (previously always duplicated) as sub-Components has been fixed.
    
    TDataStd_NamedData has been extended with interface for deferred data loading.
    Setters have been corrected to avoid duplicating lookups within map.

commit b7b22996bb8cff857eab4b64d366ef356fa69d31
Author: kgv 
Date:   Fri Dec 6 15:08:34 2019 +0300

    0031227: Tests - log number of compared images into report

commit 552a74d8292a1bcc245c9ce8fd2a8256c9a7dcd4
Author: anv 
Date:   Tue Nov 5 17:57:25 2019 +0300

    0030889: ACIS Import - Incorrect result reading SAT and SAB files
    
    Adapting CR30932 fix for a GeomLib approximator.

commit c37bd936c37f3d3b7f0c3ee3844fcc6cc0215062
Author: mzernova 
Date:   Tue Dec 3 13:51:02 2019 +0300

    0031213: Coding Rules, RWStl_Reader - misnamed variable THE_BUFFER
    
    Renamed THE_BUFFER variable.

commit 4e8c1d86666198c4b272d90daa646c64d44dedc2
Author: anv 
Date:   Thu Nov 28 12:25:20 2019 +0300

    0031202: Shape Healing - FixMissingSeam creates degenerated edge
    
    Adding tolerance to prevent degenerated cuts in cases where all vertex tolerance is covered by distance of the edge curve from vertex point.

commit 72f6dc612c43748a2c8862fe64c845d72be684d9
Author: iko 
Date:   Thu Nov 7 16:52:53 2019 +0300

    0031096: Visualization, TKOpenGl - support metallic-roughness texture mapping
    
    OpenGl_ShaderManager - metallic-roughness, emissive, occlusion
    and normal texture maps are now supported by PBR.
    Emissive, occlusion and normal texture maps are now supported by Phong shading model.
    Path-Tracing now handles metallic-roughness and emissive texture maps.
    
    Graphic3d_TextureUnit enumeration has been extended by
    new values corresponding to supported texture maps.
    
    OpenGl_TextureSet and OpenGl_ShaderProgram have been extended with
    bitmask Graphic3d_TextureSetBits identifying texture slots read from GLSL Program
    and slots defined within Texture Set to avoid undefined behavior by binding mock textures.
    
    OpenGl_TextureSet now duplicates texture unit information to handle
    textures shared across multiple slots (like Occlusion [R] + Metallic-Roughness [GB]).
    
    OpenGl_Context::BindTextures() has been extended with active GLSL program paramter
    to set mock textures to texture units used by program but undefined by texture set.
    OpenGl_Workspace::ApplyAspects() has been extended with parameter to avoid bining texture set.

commit f051908edca40189922731890778055f9af7a00e
Author: mzernova 
Date:   Wed Nov 27 10:14:30 2019 +0300

    0030982: Visualization, OpenGl_View::MinMaxValues() - do not add background quad into depth range
    
    Deleted adding background quad into depth range. Background is drawn in 2D coordinates. Fixed problem with using gradient background in tiles.

commit 420b38fde93a1c657e32f1f8b406bb80a94e15cb
Author: emv 
Date:   Fri Oct 11 07:23:19 2019 +0300

    0031148: Modeling Algorithms - Offset adjacent co-planar faces with different offset values
    
    Extend the Offset operation (Join Type "Intersection", mode "Complete") to allow different offset values on adjacent co-planar faces.
    The gap between adjacent faces is closed by creating artificial face perpendicular to the face.
    
    Adding test cases.

commit 34e7ac6817076e11ad02f58fba0bb484b446c620
Author: emv 
Date:   Thu Nov 28 10:56:55 2019 +0300

    0031201: Modeling Algorithms - Result of a section operation is incomplete
    
    Fixing misprint - use the boundaries of the cylinder for Plane/Cylinder intersection.
    Test cases for the issue.

commit 2b5a58a33cf42ab3d995e63dde8c1ff7278cb4d0
Author: osa 
Date:   Fri Nov 22 16:02:02 2019 +0300

    0031186: Foundation Classes - add additional useful methods to BVH_Box.
    
    Add Transform() and Transformed() methods by Mat4 for BVH_Box (only for 3D dimension).
    Add PointBoxProjection() method to project point to box and RayBoxIntersection() method to compute hit time of ray-box intersection to BVH_Tools.
    Add BVH_Ray class to define ray object.

commit e513a6c5389b09cfa7fbb9b3cf76c42517b7805e
Author: kgv 
Date:   Sat Nov 23 00:08:22 2019 +0300

    0031188: Draw Harness - enable colorized messages output to console by default
    
    Message_PrinterOStream now uses colorized output by default.
    DRAWEXE has been corrected to disabled colorized output
    when it is called with -f argument to avoid spoiling testgrid HTML logs.

commit 8c2d33142687b5317c84b75eafe734fe4c0f33a4
Author: kgv 
Date:   Fri Nov 22 17:02:12 2019 +0300

    0031007: Coding - eliminate warnings issued while compiling with -pedantic flag
    
    Removed duplicating semicolons ;;.
    Removed redundant semicolon at namespace closure.

commit caee80f39fc059c59f040dcc5a603d3cee158d02
Author: mzernova 
Date:   Mon May 6 23:05:13 2019 +0300

    0030697: Draw Harness - Draw_Printer should not be set to Message::DefaultMessenger() by default
    
    Fixed bugs that occurred when using the default std::cout from Message::DefaultMessenger() instead of Draw_Printer
    
    A dedicated option was added to Draw_ProgressIndicator, for outputting data to the tcl when performing tests
    
    Added -tclOutput parameter to XProgress command

commit 01b2f506d6b8162b5c26f715a1eb8b62d1298b74
Author: kgv 
Date:   Tue Nov 19 02:09:09 2019 +0300

    0030953: Data Exchange - implement export of mesh data into glTF 2.0 format
    
    Added new class RWGltf_CafWriter for exporting XCAF document into glTF file
    as well as Draw Harness command WriteGltf.
    
    Added auxiliary method OSD_Path::FileNameAndExtension() splitting file name into Name and Extension.

commit df8c7e3e18e5cccbabdfb94050698fb372a48174
Author: vsv 
Date:   Tue Nov 19 11:31:46 2019 +0300

    0031153: Visualization - Non clear highlighting of selected trihedron elements
    
    AIS_Trihedron - removed extra fields holding highlight styles; standard styles are now used instead;
    fixed unexpected modification of global aspects;
    fixed unhighligting of selected plane within Shaded trihedron.
    
    AIS_InteractiveContext now sets highlight color to highlight aspects, not only base color to drawer itself.

commit 3f1675c941dda5fda538ffa8aa10d332305a1698
Author: kgv 
Date:   Mon Nov 18 13:42:06 2019 +0300

    0031174: Visualization - support user-provided stipple line patterns

commit 6a56fe924064d9d6da00d941219871e2a53495a1
Author: kgv 
Date:   Tue Nov 19 20:21:00 2019 +0300

    0031178: Configuration, genproj - fix searching for zlib on Linux platform
    
    zlib library is called libz on Linux.

commit 51ee6a7dbb3a740ba0cfc693ce5e7a83663f05f4
Author: mzernova 
Date:   Tue Sep 17 16:05:05 2019 +0300

    0030964: Data Exchange - use Standard_ReadLineBuffer within OBJ reader
    
    Standard_ReadLineBuffer now supports a processing of the special multi-line case with \ at the end of the line.
    
    Standard_RedLineBuffer was used to load Stl files

commit 14a356b1783fcd4ece780dcbc6edb92b98aaf0de
Author: kgv 
Date:   Tue Oct 1 08:27:57 2019 +0300

    0031015: Visualization, TKOpenGl - OpenGl_WorldViewState does not cache inverted matrix
    
    Implementation has been fixed to proprely set myInverseNeedUpdate flag.

commit 4eff0c0480add8629a63c89672131e29b74d1c6d
Author: kgv 
Date:   Mon Nov 18 14:00:01 2019 +0300

    0031175: Visualization - support dumping RED channel as grayscale image
    
    Graphic3d_BufferType has been extended by Graphic3d_BT_Red.

commit 8f00325d73ba7521020db6e201786eaeab48cb75
Author: abv 
Date:   Sat Nov 16 08:59:38 2019 +0300

    0031171: Draw - support Unicode input / output in console on Windows
    
    System console is configured at DRAW start to use UTF-8 encoding, for cout and cin to deal correctly with Unicode symbols.
    Use of std::wcout is avoided as it leads to corrupted output.
    
    Command testgrid is improved to enforce UTF-8 encoding in child DRAW processes to preserve Unicode symbols in captured output.
    
    Test bugs fclasses bug22125 is refactored:
    - avoid dependency on external data file
    - avoid producing snapshot
    - check that Unicode name of the file created by OCCT procedure matches the name interpreted by Tcl functions

commit 9a90a4524e99eb594202762ce206d567c19bae61
Author: kgv 
Date:   Wed Nov 13 14:31:48 2019 +0300

    0031159: Visualization - Font_FontMgr skips sub-faces within .ttc font collections
    
    Font_SystemFont now defines Face Id in addition to file path.
    Font_FontMgr::CheckFont() has been extended to return the list of Faces from font collections.

commit 31a5a359bb1bef38ac0e3d1380dcce91e8631958
Author: abv 
Date:   Tue Nov 12 19:10:14 2019 +0300

    0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC
    
    Implementation of ShapeAnalysis::OuterWire() is revised to avoid infinite cycle if face contains internal vertex.

commit bf97419a18a544176a3d09022ddc952e65830d96
Author: jgv 
Date:   Mon Oct 21 13:50:10 2019 +0300

    0030958: BRepOffsetAPI_ThruSections operation raises an exception while building history
    
    Correct methods Build and Generated:
    use BRepTools_WireExplorer instead of TopExp_Explorer or TopoDS_Iterator, for compatibility with previous computations.

commit 4c26106f76a508beaceae1b41721814df67d07cd
Author: gka 
Date:   Thu Nov 7 18:09:48 2019 +0300

    0031140: Draw command "cirtang" raises exception on the parallel curves
    
    Exception in the algorithm Geom2dGcc_Circ2dTanOnRadGeo raised because the number of solutions exceeded the size of reserved array for solutions. A check has been added to forbid adding solutions outside of allocated place.
    
    The similar protection has been done in other algorithms of this package.

commit 15e4e6a23ecc4fd1a0a039ed582cd104fd694f30
Author: kgv 
Date:   Fri Nov 8 14:13:53 2019 +0300

    0031118: Visualization - Font_FontMgr skips fonts with unknown styles like Narrow or Black
    
    Extended Style name is now appended to Family name for unique identification of the font.
    vfont -find now accepts mask to search the font and returns family name.

commit 6b467e52bb05a771e22356db3a78adf306c58fbf
Author: kgv 
Date:   Wed Nov 6 19:26:24 2019 +0300

    0031137: Modeling Data, BinTools_ShapeSet - avoid allocation of temporary arrays
    
    BinTools_ShapeSet now defines maps with proper types instead of Standard_Transient.
    BinTools_ShapeSet now avoids allocation of temporary arrays while reading
    triangulation and polygonal data.
    
    Classes Poly_Triangle, Poly_PolygonOnTriangulation, Poly_Polygon3D and Poly_Polygon2D
    have been cleared from .lxx files and extended by new methods for preallocating and filling array,
    as alternative to passing arrays by copy.
    
    wavefront command - export "f" instead of obsolete "fo" keys into file.
    BinTools - added missing tools for reading/writing short reals.

commit 08b438b07684090e1a9b77f5ac9d152d4bec10c6
Author: kgv 
Date:   Wed Nov 6 23:53:53 2019 +0300

    0031138: Visualization - Image_AlienPixMap fails to load PNG image with palette
    
    Added fallback code converting unsupported pixel format into RGB24 using FreeImage itself.

commit a14f2b4722813756a4615d1d736efff5470b25e5
Author: kgv 
Date:   Thu Nov 7 00:11:57 2019 +0300

    0031139: Data Exchange - fix misprint in RWObj_CafReader
    
    RWObj_CafReader::BindNamedShape(), added missing bind to material map.
    XCAFDoc_VisMaterial::ConvertToCommonMaterial()/::ConvertToPbrMaterial(), added copying of base color texture.
    XCAFPrs_DocumentExplorer now properly fills XCAFDoc_VisMaterial property of XCAFPrs_Style.

commit a1a9b249523438cf9b3d510fb4ff74bd4a5675b6
Author: kgv 
Date:   Wed Nov 6 16:59:27 2019 +0300

    0031135: Visualization, TKOpenGl - texture sRGB -> linear conversion is applied twice by Path Tracer
    
    Removed from PathtraceBase.fs redundant gamma correction applied to texture.

commit f979709590843c77e5d3e477b5ac12d2af024b13
Author: abv 
Date:   Sun Oct 6 09:33:53 2019 +0300

    0031038: Draw - adaptations for running tests with CLang address sanitizer
    
    New optional environment variable CSF_CPULIMIT_FACTOR is introduced, allowing scaling the argument given to DRAW command cpulimit by specified factor.
    
    Command testgrid is extended by two new options:
    - -skipped: to re-run tests skipped in specified log
    - -skip: to skip specified number of tests in the beginning of test sequence
    
    Temporary Tcl scripts generated by test system are now removed from the test log directories immediately after the test execution, to save disk space.
    
    Advises on use of CLang sanitizers are added in guide "Debugging hints and tips".

commit e9d05765c2f7a3fa48465b5e09aedd83a80e997b
Author: oan 
Date:   Tue Nov 5 16:13:38 2019 +0300

    0031131: [REGRESSION] Mesh - location of Wire affects Poly_Polygon3D
    
    Use TopoDS_Edge without location in case of free edges to produce Poly_Polygon3D without offset.

commit 7756fc599d9c2b760296eeb290ae71152b17a792
Author: oan 
Date:   Mon Nov 4 17:49:07 2019 +0300

    0031125: BRepMesh_IncrementalMesh crash in constructor for empty compound shape
    Added check for cases of empty shapes producing null models.
    NoError status is returned as far as empty compounds are generally coorect shapes.

commit b31fbc832ddf4fb505352f457c3596d58f002212
Author: abv 
Date:   Sat Nov 2 11:10:47 2019 +0300

    0031124: Configuration - linker errors when building with CLang on Windows
    
    Standard_EXPORT is added in declaration of virtual methods where it was missing, to allow creation of sub-classes in other DLLs.
    In some classes in OpenGl package Standard_EXPORT is added for all methods to make these classes usable in other DLLs.

commit 1bd04b5a02c9d940988ec52bc7fd2673a7045188
Author: abv 
Date:   Fri Oct 11 22:04:02 2019 +0300

    0031060: Configuration - Support building with CLang compiler under VS 2019
    
    Build tools are updated to support building with Visual Studion 2019 toolset ClangCL (LLVM clang-cl):
    - In CMake builds, use of unsupported option "-std=c++0x" is avoided
    - Tool genconf recognizes availability of ClangCL toolset and proposes it in the list
    - Tool genproj recognizes new compiler specification VCVER=vclang and generates VS 2019 projects for it
    
    Note that vclang configuration puts binaries to folder "vc14" as it is compatible with vc14 CRT.
    
    Code is updated to build with Clang for Windows without errors and warnings:
    - In BVH classes, pure virtual destructors are replaced by empty ones, to avoid bogus compiler warning
    - In .lex files, pragmas are added to disable warnings in parser code
    - In OSD, signature of function _osd_wnt_set_error() is corrected to avoid warning on incorrect use of va_args (undefined behavior)
    - In OSD_Host, OSD_Parallel_TBB, warnings on usage of deprecated function are disabled
    - In Quantity_ColorRGBA and ViewerTest_CmdParser, incorrect use of predefined macro __FUNCTION__ assuming it was a string literal is avoided
    - In Standard_Macro.hxx, code is reordered to handle Clang for Windows appropriately
    - In AdvApp2Var_SysBase.hxx, inclusion of obsolete (MSVC-specific) header file is replaced by Standard_TypeDef.hxx
    - In Standard_ErrorHandler.hxx, empty statements added to avoid warning on unused class fields
    - In IVtkDraw and ViewerTest, interface is corrected to use actual type avoiding unnecessary type casts
    
    Off-topic: corrections of some errors (uninitialized class fields) reported by VS Code Analysis in TKernel

commit 6466cc9eb15a1e56aefb363704ed2a154b8b4c99
Author: vro 
Date:   Thu Oct 31 15:57:25 2019 +0300

    0031117: Visualization, AIS_ViewCube - additional properties for visualization of trihedron of a View Cube
    
    AIS_ViewCube has been extended by additional properties (previously hard-coded):
    - radius of axes of the trihedron
    - radius of cones of the axes of the trihedron
    - radius of a sphere (central point) of the trihedron
    
    ViewerTest command vviewcube has been extended to support new parameters:
    -axesradius, -axesconeradius, -axessphereradius.

commit f7fc0c03be6c5254f6f33b28e0a0b772bd4f0011
Author: osa 
Date:   Wed Oct 30 16:33:01 2019 +0300

    0029367: Visualization - simplify interface of V3d_View and V3d_Viewer
    
    The interface of V3d_View and V3d_Viewer has been simplified.
    For the fields myDefinedViews, myActiveViews, myDefinedLights, myActiveLights were added appropriate methods returning the internal raw data.
    Make the next methods deprecated:
    IfMoreLights(), InitActiveLights(), MoreActiveLights(), NextActiveLights(), ActiveLight() and
    InitActiveViews(), MoreActiveViews(), NextActiveViews(), ActiveView(), InitDefinedViews(), MoreDefinedViews(), NextDefinedViews(), DefinedView(),
    InitActiveLights(), MoreActiveLights(), NextActiveLights(), ActiveLight(), InitDefinedLights(), MoreDefinedLights(), NextDefinedLights(), DefinedLight().
    
    Remove deprecated methods added in scope of tasks 0029290 and 0028987 (Target Version 7.3.0):
    SelectMgr_SelectableObject: Init(), More(), Next(), CurrentSelection().
    SelectMgr_Selection: Init(), More(), Next(), Sensitive().
    V3d_AmbientLight: one constructor.
    V3d_DirectionalLight: two constructors.
    V3d_PositionalLight: one constructor.
    V3d_SpotLight: two constructors.

commit 67312b7991c945e66d4fa1d3a6f8e02dbabc9b5a
Author: iko 
Date:   Thu Jun 20 09:53:20 2019 +0300

    0030700: Visualization, TKOpenGl - support PBR Metallic-Roughness shading model
    
    Metallic-Roughness shading model Graphic3d_TOSM_PBR has been implemented.
    New materials descriptors Graphic3d_PBRMaterial have been added to Graphic3d_MaterialAspect.
    PBR shading model requires OpenGL 3.0+ or OpenGL ES 3.0+ hardware.
    Environment cubemap is expected to be provided for realistic look of metallic materials.
    
    occLight_IsHeadlight() now returns bool instead of int.
    Avoid using lowp for enumerations to workaround occLight_IsHeadlight()
    ignorance on Adreno 308 caused by some GLSL optimizator bugs.
    
    OpenGl_Texture::EstimatedDataSize() - fixed estimation for Cubemap textures.
    OpenGl_Sampler::applySamplerParams() - fixed uninitialized GL_TEXTURE_WRAP_R in case of GL_TEXTURE_CUBE_MAP target.

commit f4a7308f61af6cde23a6380eb8127695b75f4690
Author: tiv 
Date:   Fri Oct 25 16:01:09 2019 +0300

    0030609: Coding - eliminate warnings issued by gcc 8.1.0
    
    Warnings issued by gcc 8.1.0 are eliminated.
    
    New Standard_WarningDisableFunctionCast.hxx header file is introduced to disable GCC warning "-Wcast-function-type" in those files *.cxx where it is issued. This warning is issued when the conversion from the pointer to one function type to the pointer to another function type takes places, it was added in gcc 8.1.0.
    
    The function MyVISEDG in SWDRAW_ShapeAnalysis.cxx is removed as it does not seem to do anything useful and relevant DRAW command K_VISEDG is never used in tests.

commit 53d770b3a23215ac51c391114e0e247ed0a2e13f
Author: abv 
Date:   Fri Oct 25 17:11:33 2019 +0300

    0031092: Foundation Classes - incorrect last output value for Infinite progress indicator
    
    DRAW implementation of progress indicator is corrected to print "finished" instead of 1e100 for the end of infinite range.
    Added test bugs fclasses bug31092

commit 7ed6e985e20dd5a665f87f5c460843c01e192521
Author: abv 
Date:   Fri Oct 25 15:49:01 2019 +0300

    0013175: XCAF document with one vertex is exported to an incorrect STEP file
    
    Added non-regression test case

commit da6b95a0752b92e58c66f4d571a7702ba1bab5ab
Author: oan 
Date:   Tue Oct 29 11:04:53 2019 +0300

    0031043: GCPnts_TangentialDeflection generates points which number is inconsistent with MinimumOfPoints Parameter
    
    Updated crvtpoints command API to reproduce reported problem
    Generate number of points according to the specified minimum value

commit 565baee64be039cf745ed1d46c96dbe05228f3fb
Author: kgv 
Date:   Wed Oct 16 02:42:33 2019 +0300

    0031070: Configuration - fix building issues when using Emscripten toolchain
    
    Handled __EMSCRIPTEN__ macros to:
    - Workaround atomics (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 is undefined, but GCC atomics are provided).
    - Suppress non-standard header  warning.
    - Return OSD_LinuxREDHAT.
    - Avoid inclusion of XLib headers.
    - Skip fontconfig library.
    - Enable EGL+GLES path (translated by Emscripten into WebGL).
    - Skip eglCreatePbufferSurface() not implemented by Emscripten EGL.
    
    Fixed Graphic3d_Vec4.hxx usage within Quantity_ColorRGBA.hxx.
    
    OpenGl_ShaderManager::defaultGlslVersion() now prefers GLSL 300 es when WebGL 2.0 is available,
    as there no any OpenGL ES greater than 3.0 emulation so far.
    
    Shaders_Declarations.glsl - added workaround for GLSL compilation on WebGL 1.0
    by defining Light properties accessors as macros instead of functions
    ('[]' : Index expression must be constant).
    
    OpenGl_FrameBuffer::Init() - added workaround for initialization of GL_DEPTH24_STENCIL8
    depth-stencil attachment on WebGL 1.0 + GL_WEBGL_depth_texture extension.
    
    OpenGl_Context::Vec4FromQuantityColor() now considers myIsSRgbActive flag
    to handle use case, when Immediate Layer is drawn directly into window buffer,
    which is not sRGB-ready.
    
    Added new sample - OCCT WebGL viewer.

commit 36e28f96f677ab5799df839e3431229cabd6070b
Author: kgv 
Date:   Fri Oct 18 11:40:55 2019 +0300

    0031079: Visualization - embed minimal fallback font
    
    Font_FTFont::FindAndCreate() now loads embedded fallback font within Font_StrictLevel_Any level.
    Font_FontMgr::FindFont() - fixed misprint in message, and customized message for range fallback error.
    Font_FontMgr - added one more fallback Korean font for Linux.
    
    vfont command has been extended with options to clear Font Manager content.

commit 215dd331495712dd060376a4aee819e4193e0229
Author: kgv 
Date:   Thu Oct 24 13:44:49 2019 +0300

    0031102: Visualization, AIS_ViewController - AIS_DragAction_Stop is never emitted on mouse unclick
    
    AIS_ViewController::UpdateMousePosition() now sets myMouseStopDragOnUnclick flag
    to emit AIS_DragAction_Stop on mouse unclick.

commit 5646c90e876892c54fd973e261dbd630b433956c
Author: emv 
Date:   Thu Sep 26 14:50:10 2019 +0300

    0030878: Modeling Algorithms - BRepLib_MakeFace produces face with abnormal surface
    
    When collecting the points to build plane use the points on the curve instead of poles (in case of BSpline and Bezier curves).
    
    Side effect changes:
    Changes in Geom2dHatch_Elements are to increase the chance of correct 2d classification (by the means of Geom2dHatch_Classifier) by taking more than just one point on the edge to construct the classification ray and by checking if this ray is not tangent to the edge itself.

commit 97e0059b05fe5b476a6a0e353eacf286c58e9dab
Author: kgv 
Date:   Sun Oct 20 14:13:46 2019 +0300

    0031088: Visualization - GL_INVALID_ENUM while dumping view within OpenGL 1.1
    
    OpenGl_Sampler::resetGlobalTextureParams() - added missing version check before disabling GL_POINT_SPRITE.

commit 8445efca811468657c7532b2b489ad2e0147c40a
Author: kgv 
Date:   Sun Oct 20 14:53:13 2019 +0300

    0031082: Visualization - crash on display if there are no lights in the view
    
    OpenGl_View - fixed uninitialized property myLights.

commit a6a66c3a2115b56fa7afe2cb13b877bcea562c5c
Author: kgv 
Date:   Sat Oct 5 23:34:35 2019 +0300

    0031037: Foundation Classes - add class Message_PrinterSystemLog for printing messages into system log
    
    Added new class Message_PrinterSystemLog that can be used for logging messages into system log for debugging application in restricted environment.

commit cc99be369e0f541f681b08f163985fa44a3eb9eb
Author: kgv 
Date:   Sat Sep 28 13:36:24 2019 +0300

    0025341: Visualization - disallow displaying object as part of connected one and as a free one at the same time
    
    AIS_ConnectedInteractive::connect() now throws exception on connecting already displayed object.
    AIS_TextLabel::AcceptDisplayMode() - added missing Display Mode filter.
    
    Commands vconnect, vconnectto and vaddconnected have been corrected to
    replace dispalyed AIS_Shape with AIS_ConnectedInteractive in context.

commit 1a5007a9201098fdd8a668bc608747e94da95ce2
Author: kgv 
Date:   Sat Oct 19 15:38:48 2019 +0300

    0031067: Visualization - Aspect_Window::DoResize() should be a non-const method
    
    Removed 'const' from Aspect_Window::DoResize() virtual method.

commit 3818aacaa56a8c39dbeded6a540bfb40e8b1c69e
Author: kgv 
Date:   Thu Oct 10 17:09:07 2019 +0300

    0031056: Samples - update glfw sample to use AIS_ViewController

commit e1d039d56d6d01cc72513f898c3b30a9c165f1d3
Author: kgv 
Date:   Sat Oct 5 22:01:09 2019 +0300

    0031036: Foundation Classes, Message_PrinterOStream - add option printing colored text into console
    
    New property Message_PrinterOStream::ToColorize() can be set to colorize text output into console.
    The new option is disabled by default.

commit a4815d5509b863bea5204b39e9deb373d85fb63a
Author: kgv 
Date:   Wed Jul 3 11:28:26 2019 +0300

    0029902: Data Exchange, XCAF - provide extended Material definition for visualization purposes
    
    Introduced new attribute XCAFDoc_VisMaterial storing visualization material definition.
    
    XCAFPrs_Style has been exteneded Material() property.
    XCAFPrs_AISObject::DispatchStyles() maps new XCAFPrs_Style::Material() property onto graphics aspects.
    
    RWGltf_GltfJsonParser and RWObj_CafReader now put Material definition into XCAF document instead of a color label.
    RWGltf_MaterialMetallicRoughness - added missing properties AlphaMode, AlphaCutOff and IsDoubleSided;
    fixed default values in constructor for Metallic and Roughness.
    
    Added commands XGetAllVisMaterials, XGetVisMaterial, XAddVisMaterial,
    XRemoveVisMaterial, XSetVisMaterial, XUnsetVisMaterial for working with
    new visualization materials table in the document.

commit ba00aab7a0f30b2a77d3faa4191249b32a9e03b0
Author: kgv 
Date:   Thu Aug 29 11:04:56 2019 +0300

    0029528: Visualization, TKOpenGl - allow defining sRGB textures
    
    OpenGL rendering is now done into sRGB framebuffer.
    OpenGl_ShaderManager::prepareStdProgramFboBlit() has been extended
    by programs resolving MSAA texture and applying gamma correction as fallbacks.
    
    Quantity_Color definition has been modified to store RGB components
    in linear color space within Quantity_TOC_RGB type.
    Standard colors defined by Quantity_NameOfColor enumeration has been updated accordingly.
    New Quantity_TOC_sRGB type has been introduced to handle RGB components in non-linear sRGB color space.
    
    OpenGl_TextureFormat class definition has been moved to dedicated files.
    New method OpenGl_TextureFormat::FindFormat() replaces OpenGl_Texture::GetDataFormat().
    New method OpenGl_TextureFormat::FindSizedFormat() replaces OpenGl_FrameBuffer::getColorDataFormat()
    and OpenGl_FrameBuffer::getDepthDataFormat().
    
    Graphic3d_TextureRoot::IsColorMap() - introduced new property defining
    if RGB(A)8 image formats should be loaded as sRGB(A) textures or as data RGB(A) textures.
    OpenGl_Texture initialization methods have been extended with new theIsColorMap argument.
    
    vreadpixel - added argument -sRGB printing color in sRGB color space.
    
    Test cases have been updated to new sRGB rendered results.

commit aaf8d6a98d5aa23513bbb7f0e8528764e1e0ebb4
Author: kgv 
Date:   Mon Sep 16 23:06:38 2019 +0300

    0030969: Coding Rules - refactor Quantity_Color.cxx color table definition
    
    The table of named colors has been compressed and moved out
    from Quantity_Color.cxx into Quantity_ColorTable.pxx.
    
    Quantity_NameOfColor - grayscale enumeration values have been re-ordered to fix discontinuity.
    Duplicating colors has been merged within enumeration:
      CHARTREUSE=CHARTREUSE1, GOLD=GOLD1, GREEN=GREEN1, ORANGE=ORANGE1,
      ORANGERED=ORANGERED1, RED=RED1, TOMATO=TOMATO1, YELLOW=YELLOW1.
    Added aliases to several other common colors:
      BLUE=BLUE1, CYAN=CYAN1, LIGHTCYAN=LIGHTCYAN1, MAGENTA=MAGENTA1.
    
    Quantity_Color class definition has been cleaned to follow OCCT coding style.
    Quantity_Color now stores NCollection_Vec3 as class field instead of separate components.
    Removed unused class Quantity_ColorDefinitionError.
    
    New methods Quantity_Color::Convert_LinearRGB_To_sRGB() and Quantity_Color::Convert_sRGB_To_LinearRGB()
    converting RGB components from linear to non-linear sRGB colorspace and vice versa.
    Image_PixMap::PixelColor() and Image_PixMap::SetPixelColor() methods have been extended
    with an optional argument for performing linearization/delinearization of 8-bit sRGB pixel formats.
    
    Draw Harness command AISColor has been corrected to take color name instead of enumeration index.

commit b008226203ed49193c60aed10c2846944d77bf9c
Author: jgv 
Date:   Fri Sep 20 13:52:10 2019 +0300

    0031023: Fillet regression in OCCT 7.4 from 7.3
    
    Modify local static function ReorderFaces to be able to process multiple-faces-connecting vertices.

commit eff3eff916f16bbae5a4b1de52bc6a64dfb98848
Author: jgv 
Date:   Fri Sep 20 13:52:10 2019 +0300

    0030940: BRepFilletAPI_MakeFillet algorithm fails on closed shell
    
    1. Add check of configuration of corner in the end of spine.
    2. Correct treatment of "smooth corners".

commit bf327822d60e03b2f7a96355b5baddc0c90dc596
Author: jgv 
Date:   Fri Sep 6 17:03:59 2019 +0300

    0026071: BRepOffsetAPI_MakePipeShell produces rough result
    
    1. Correct building history: the case of closed spine.
    2. Rollback method GeomFill_CorrectedFrenet::InitInterval - correct processing singularities on spine.
    3. Correct test cases.

commit 63da0df9c2ed8637120a26030b7bd45ecdb8e6a0
Author: jgv 
Date:   Mon Oct 14 16:54:13 2019 +0300

    0031066: Infinite loop in ShapeUpgrade_UnifySameDomain
    
    Modification in local static method TransformPCurves - compute real U And V bounds of a face and use them in further computations.

commit 13a44c4b7f4795359d003bde19c19634131c5ba5
Author: skl 
Date:   Wed Aug 30 12:17:10 2017 +0300

    0029068: Data Exchange - Invalid rotation of result shape after import attached STEP file
    
    Changes for using Axis Placement(not used during creation of assembly) as transformation for root Shape Representation.
    Test for bug 29068 and auxilary command are added.

commit f04de1335ce21a0a880f828a496d755427cfcf54
Author: aml 
Date:   Fri Sep 13 11:47:17 2019 +0300

    0030932: Modeling Algorithms - Invalid result on 2d curve on surface approximation
    
    New method generating 3D curve is added when 2D curve is linear isoline.

commit c08fd127066e78d3427955b8d3a11dd880fe3244
Author: emv 
Date:   Fri Sep 20 08:56:21 2019 +0300

    0029843: Modeling Algorithms - Boolean FUSE produces incorrect result
    
    When splitting the shell/face with internal faces/edges use the 'internal' criteria of the face to choose the way to create loops.
    
    Side effect changes:
    - When performing Boolean operation - move the objects located far from Origin to the Origin to increase the accuracy of intersections.

commit d7992a77f6fdf558ed7bcfcbd1117ce2d715c9db
Author: ifv 
Date:   Mon Oct 14 16:51:52 2019 +0300

    0031029: BRepLib::SameParameter regression in OCCT 7.4 from OCCT 7.3
    
    1. BRepLib.cxx: calculation of 2d tolerance is changed in method BRepLib::SameParameter(Edge..)
    2. Geom2dConvert.cxx: incorrect comparing
    "SquareDistance < tolerance"
    is replaced by
    "SquareDistance < tolerance*tolerance"
    because tolerance is linear value.

commit 8c787b5fa9731a6332416b1901351a217d8b3d92
Author: kgv 
Date:   Wed Oct 9 18:18:14 2019 +0300

    0031050: Data Exchange - XmlXCAF persistence stores triangulation-only Faces without any geometry
    
    BRepTools_ShapeSet now ignores myWithTriangles flag in case if triangulation is the only geometry representation.

commit 44fafc477f979b02201d429a6c145889cf25bdac
Author: ifv 
Date:   Tue Oct 8 14:44:04 2019 +0300

    0031031: Incorrect result is returned from BRepPrimAPI_MakePrism::Generated()
    
    1. src\BRepSweep\BRepSweep_NumLinearRegularSweep.cxx
    
    Fix bug by adding result in list of generated shapes, if initial shape is vertex, edge or face.
    
    2. src\BRepLib\BRepLib.cxx
    
    Add protection against treatment not geometric edge in BRepLib::UpdateInnerTolerances(...)
    
    3. Add test case for bug and correct test for bug 30346 according to new behavior of algorithm

commit 780fbc28972699f8f6a8f7b36de015d91279d79f
Author: vro 
Date:   Tue Oct 1 08:36:21 2019 +0300

    0031013: Application Framework - Storage status is wrong after a failure
    
    CDF_StoreList.cxx::Store() was amended

commit 620a6baa59c9d51ed735c3c9356f12b09f043b44
Author: apn 
Date:   Fri Jul 19 16:25:59 2019 +0300

    0030456: Make OCCT_CHECK_AND_UNSET_GROUP more general
    
    Modify OCCT_CHECK_AND_UNSET_GROUP function to allow unset any group of variables

commit 89073268fd1a1a70de23deaa02af49453c497066
Author: kgv 
Date:   Tue Oct 15 20:46:57 2019 +0300

    0031021: Coding Rules - Deprecation warnings on OSX within Draw_Window_1.mm
    
    Use new renamed enumeration values instead of deprecated ones.

commit 6ed44b1ca93a2961d06157195a00b16c7b94e4e0
Author: abv 
Date:   Mon Oct 7 21:32:21 2019 +0300

    0031044: Coding - Standard_NODISCARD should be placed before Standard_EXPORT
    
    Standard_NODISCARD is put before Standard_EXPORT in all places throughout OCCT code

commit 746cb7c32872b2aa2a261f65b42cef3e826b1d6e
Author: msv 
Date:   Tue Oct 1 23:06:35 2019 +0300

    0031020: Coding - invalid inline usage in BRepBlend_AppSurface
    
    BRepBlend_AppSurface and some other classes have been corrected to avoid inlining member functions in .cxx code.

commit 8ba3d978dbb4c3dfc8657ef5c6944f04c8064d51
Author: kgv 
Date:   Fri Oct 11 14:56:03 2019 +0300

    0031048: Visualization - runtime error reported by Clang undefined behavior sanitizer in Image_AlienPixMap::Save()
    
    Image_PixMapData - use unsigned math (uintptr_t) instead of signed math with pointers for defining negative stride.

commit c275673dbf8db2e10315158ea848ceb8add9078b
Author: abv 
Date:   Tue Sep 24 08:32:09 2019 +0300

    0030993: Modeling Algorithms - heap-use-after-free reported by Clang address sanitizer in BRepFeat_MakeRevolutionForm::Perform()
    
    Use of reference to object removed from the list after that removal is avoided

commit 9e3045dae1995e31788cbc713fefe1c33baaab81
Author: abv 
Date:   Tue Oct 1 08:23:26 2019 +0300

    0030992: Foundation Classes - heap-buffer-overflow reported by Clang address sanitizer in BSplCLib::BuildKnots()
    
    Inconsistent code for guessing bspline span index is removed in Geom_OsculatingSurface::BuildOsculatingSurface().

commit c2bcd98369684f449881262dd388c5b5e64634fb
Author: kgv 
Date:   Thu Oct 3 06:49:59 2019 +0300

    0031024: Coding - invalid left shift in BVH_RadixSorter::Perform() using -fsanitize=undefined
    
    Standard_Integer has been replaced by unsigned int for bit operations.

commit 683b72c3c1b38b388322da59aaa28d1306014f95
Author: abv 
Date:   Mon Sep 30 21:37:55 2019 +0300

    0031010: Foundation Classes - heap-buffer-overflow reported by Clang address sanitizer in OSD_Path::IsUncExtendedPath()
    
    Use of memcmp is replaced by strncmp to avoid possible read access out of string buffer size

commit 3358ed643b69c0a476eac70745debdce1861c72b
Author: mpv 
Date:   Mon Sep 30 14:12:35 2019 +0300

    0031008: Application Framework - memcpy-param-overlap reported by Clang address sanitizer in LDOM_XmlReader::ReadRecord()
    
    Use memmove instead of memcpy because of copy of the possible overlapped source and destination parts of the buffer.

commit 2724a0b3cc6278022281a326081fb90b4ff60168
Author: abv 
Date:   Fri Oct 4 21:14:17 2019 +0300

    0031034: Visualization - stack-use-after-scope reported by Clang address sanitizer in AIS_FixRelation::Compute()
    
    Methods of classes Geom_ElementarySurface, Geom_Conic, and Geom2d_Conic setting or returning values of fields are made inline and return const& to avoid copying

commit 0deeff45a0903c0091ba5890ea06003455f62d70
Author: abv 
Date:   Sat Oct 19 12:30:20 2019 +0300

    Update version of OCCT up to 7.4.1

commit fd47711d682be943f0e0a13d1fb54911b0499c31
Author: bugmaster 
Date:   Thu Sep 26 17:20:26 2019 +0300

    Increment OCCT version up to 7.4.0

commit c61c864f7353ccfc49628f5061e0a999e17a5dc8
Author: kgv 
Date:   Thu Sep 26 22:53:46 2019 +0300

    0031006: Draw Harness - locate_data_file fails on path containing spaces

commit d9619512e10c0ad8fc67eeb86cbe2b7919f466b6
Author: bugmaster 
Date:   Thu Sep 26 19:30:41 2019 +0300

    Update of environment files

commit 7863dabb54039be348e368cebc82f981fdbecd7e
Author: kgv 
Date:   Thu Sep 26 13:44:03 2019 +0300

    0031002: Documentation - update Overview for 7.4.0
    
    Updated OCC logo.
    Replaced some external links to https.
    Added references to VS2019 support.
    Added glTF, OBJ, IFC, JT into listing within appropriate sections.
    Replaced dead URLs.
    
    Fixed misleading information.

commit cf9768573527a4990d1296a279b8c878833c0f09
Author: apn 
Date:   Wed Sep 25 19:30:01 2019 +0300

    0031001: Documentation - modeling_algos.md can not be generated
    
    '\n' was returned to @figure ALIAS because it doesn't cause the appearance of warnings during generation of PDF documentation

commit 92686513a2fdf6c78fef495788b1990a7046c5cc
Author: emv 
Date:   Wed Sep 25 17:24:42 2019 +0300

    0030994: Test cases of group sat/read_parallel_1/_2 are crashed with exception
    
    Revert changes by #30518

commit 8c186dad9b0bed3a5679b15aa821ba693d8cd5ba
Author: drazmyslovich 
Date:   Thu Aug 15 18:13:43 2019 +0300

    0025044: BRepMesh tweaks - treatments for degenerated and tiny faces
    
    BRepMesh_ModelHealer - recognize a small face with 1 wire and 2 small edges as a face for refinement.
    BRepMesh_DefaultRangeSplinner - reduce tolerance on tiny faces to improve the meshing results.
    
    Added new test cases: bugs mesh bug25044_*.
    Existing test cases updated to reflect improvements.