occt.git
2 months ago0032171: Data Exchange - RWGltf_TriangulationReader doesn't copy cached bounding box IR-2021-02-26 WEEK-8
osa [Thu, 25 Feb 2021 16:18:12 +0000 (19:18 +0300)]
0032171: Data Exchange - RWGltf_TriangulationReader doesn't copy cached bounding box

Save cached bounding box in loaded triangulation getting it from "proxy" late-loaded object.

2 months ago0032165: Visualization - remove obsolete method AIS_InteractiveContext::PurgeViewer()
kgv [Thu, 25 Feb 2021 09:41:51 +0000 (12:41 +0300)]
0032165: Visualization - remove obsolete method AIS_InteractiveContext::PurgeViewer()

2 months ago0032161: Coding Rules - deprecate obsolete alias PrsMgr_PresentationManager3d
kgv [Thu, 25 Feb 2021 07:58:17 +0000 (10:58 +0300)]
0032161: Coding Rules - deprecate obsolete alias PrsMgr_PresentationManager3d

2 months ago0032168: Visualization - Wrong computation of screen axis in V3d_View::SetTwist method
kgv [Thu, 25 Feb 2021 11:10:18 +0000 (14:10 +0300)]
0032168: Visualization - Wrong computation of screen axis in V3d_View::SetTwist method

Fixed wrong axis check.

2 months ago0032160: Coding Rules - merge AIS_InteractiveContext_*.cxx into single file
kgv [Wed, 24 Feb 2021 17:03:40 +0000 (20:03 +0300)]
0032160: Coding Rules - merge AIS_InteractiveContext_*.cxx into single file

Removed redundant .lxx files from API package.

AIS_InteractiveContext_1.cxx,AIS_InteractiveContext_2.cxx,AIS_InteractiveContext_3.cxx
have been merged into AIS_InteractiveContext.cxx.
V3d_View_2.cxx,V3d_View_3.cxx,V3d_View_4.cxx have been merged into V3d_View.cxx
V3d_View_4.cxx has been merged into V3d_View.cxx.

2 months ago0032162: Visualization - move AIS_DisplayStatus from AIS_GlobalStatus to PrsMgr_Prese...
kgv [Wed, 24 Feb 2021 12:37:57 +0000 (15:37 +0300)]
0032162: Visualization - move AIS_DisplayStatus from AIS_GlobalStatus to PrsMgr_PresentableObject

AIS_DisplayStatus has been renamed to PrsMgr_DisplayStatus
and moved from AIS_GlobalStatus class field to PrsMgr_PresentableObject.

0032167: Visualization, AIS_InteractiveContext - setObjectStatus sets wrong status when AIS_DS_Erased

AIS_InteractiveContext::setObjectStatus() Fixed setting unexpected Displayed status to Erased objects.

2 months ago0032155: Tests - remove broken command OCC280
kgv [Mon, 22 Feb 2021 15:40:02 +0000 (18:40 +0300)]
0032155: Tests - remove broken command OCC280

Command OCC280 and a couple of useless tests have been removed.
Test case bug349 has been updated to reproduce scenario using standard commands.

2 months ago0032154: Tests - include vglinfo into Tests Summary
kgv [Mon, 22 Feb 2021 06:58:50 +0000 (09:58 +0300)]
0032154: Tests - include vglinfo into Tests Summary

Command testgrid now includes vglinfo into summary.
Command vinit has been extended by -virtual option creating an offscreen window.
Command vglinfo now splits long values into multiple lines.
Added test case v3d/glsl/glinfo dumping OpenGL context creation info.

OpenGl_Window - fixed initialization of OpenGL 4.6 Core Profile (was limited to 4.5).

2 months ago0032153: Visualization, Graphic3d_ArrayOfPrimitives - share common allocator
kgv [Sun, 21 Feb 2021 17:55:35 +0000 (20:55 +0300)]
0032153: Visualization, Graphic3d_ArrayOfPrimitives - share common allocator

Added method Graphic3d_Buffer::DefaultAllocator(), which is now used across code.

2 months ago0032152: Visualization - move out GLSL program generator from OpenGl_ShaderManager...
kgv [Sat, 20 Feb 2021 20:03:30 +0000 (23:03 +0300)]
0032152: Visualization - move out GLSL program generator from OpenGl_ShaderManager to Graphic3d_ShaderManager

2 months ago0032149: Draw Harness, ViewerTest - remove obsolete command vfeedback
kgv [Sat, 20 Feb 2021 17:25:31 +0000 (20:25 +0300)]
0032149: Draw Harness, ViewerTest - remove obsolete command vfeedback

2 months ago0032150: Visualization, TKOpenGl - ignore OpenGl_Caps::ffpEnable when FFP is unavailable
kgv [Sat, 20 Feb 2021 17:58:33 +0000 (20:58 +0300)]
0032150: Visualization, TKOpenGl - ignore OpenGl_Caps::ffpEnable when FFP is unavailable

OpenGl_Workspace::Activate() now implicitly disables OpenGl_Caps::ffpEnable when it is unsupported.
OpenGl_AspectsSprite::build() now ignores OpenGl_Caps::pntSpritesDisable when Display Lists are unsupported.

2 months ago0031196: Visualization, TKOpenGl - enable Ray-Tracing using OpenGL ES 3.2
kgv [Sat, 20 Feb 2021 12:01:16 +0000 (15:01 +0300)]
0031196: Visualization, TKOpenGl - enable Ray-Tracing using OpenGL ES 3.2

OpenGl_Context now activates Ray-Tracing and arbTboRGB32 for GLES 3.2.
Removed initialization of some uniforms from GLSL code.
Fixed implicit casts within Ray-Tracing shaders.

2 months ago0032147: Documentation - drop mentioning of WOK from build_3rdparty IR-2021-02-20 WEEK-7
kgv [Sat, 20 Feb 2021 10:33:19 +0000 (13:33 +0300)]
0032147: Documentation - drop mentioning of WOK from build_3rdparty

2 months ago0032139: Visualization - support single-precision floating point data within Poly_Tri...
kgv [Wed, 17 Feb 2021 11:36:03 +0000 (14:36 +0300)]
0032139: Visualization - support single-precision floating point data within Poly_Triangulation

Introduced NCollection_AliasedArray collection defining a general byte array
to be aliased as array of elements of mutable type.

Poly_ArrayOfNodes specializes this interface for collecting 2d/3d points with single/double precision.
Poly_Triangulation relies on this new class for definition of 3D nodes and UV coordinates
using gp_Pnt and gp_Pnt2d by default as before.

RWGltf_CafReader now fills in triangulation using single precision by default (as stored in the file).

2 months ago0032145: Coding Rules - move GL functions loading to OpenGl_GlFunctions.cxx
kgv [Fri, 19 Feb 2021 17:49:28 +0000 (20:49 +0300)]
0032145: Coding Rules - move GL functions loading to OpenGl_GlFunctions.cxx

2 months ago0031990: Coding, Draw Harness - Replace C-like pointers to function in Draw_SaveAndRe...
asuraven [Tue, 3 Nov 2020 14:22:14 +0000 (17:22 +0300)]
0031990: Coding, Draw Harness - Replace C-like pointers to function in Draw_SaveAndRestore class to virtual function

Save/Restore interface has been moved to Draw_Drawable3D base class.
Create a singleton Draw_Params class for DRAW parameters

2 months ago0032087: Data Exchange, STEPCAFControl_Reader - NULL representation of shape for DGT
dpasukhi [Wed, 27 Jan 2021 12:12:46 +0000 (15:12 +0300)]
0032087: Data Exchange, STEPCAFControl_Reader - NULL representation of shape for DGT

- Fixed problem with find a Path for the DimensionType_Location_WithPath
- Added check for the null object within FindShapeIndexForDGT

2 months ago0032133: Modeling Data - Restriction of access to internal arrays for Poly_Triangulat...
vro [Tue, 16 Feb 2021 11:24:15 +0000 (14:24 +0300)]
0032133: Modeling Data - Restriction of access to internal arrays for Poly_Triangulation, revision of API

Removed methods from Poly_Triangulation/Poly_PolygonOnTriangulation giving access to internal arrays of 2d and 3d nodes, triangles and normals.

2 months ago0032129: Visualization, TKOpenGl - shadowmap is broken for ZLayer having non-zero...
kgv [Sat, 13 Feb 2021 22:01:27 +0000 (01:01 +0300)]
0032129: Visualization, TKOpenGl - shadowmap is broken for ZLayer having non-zero origin

OpenGl_LayerList::renderLayer() - fixed usage of wrong camera while rendering shadowmap,
and apply Z-Layer origin shift to shadowmap matrix while applying shadow.

2 months ago0032099: Visualization - define OSD_FileSystem class managing opening of file streams CR31500 IR-2021-02-12 WEEK-6
osa [Fri, 5 Feb 2021 14:51:17 +0000 (17:51 +0300)]
0032099: Visualization - define OSD_FileSystem class managing opening of file streams

1) Remove unnecessary includes of "Standard_OStream.hxx" file and add it only into files where it is really used.
2) Create the base interface for a file stream provider OSD_FileSystem and its inheritor OSD_CachedFileSystem that keeping last stream to be reused for opening a stream with the same URL.
3) Use OSD_CachedFileSystem object instead of RWGltf_GltfSharedIStream during Gltf reading.

2 months ago0032124: Visualization, AIS_Shape - setting color will cause Iso Lines to appear...
kgv [Wed, 10 Feb 2021 08:05:33 +0000 (11:05 +0300)]
0032124: Visualization, AIS_Shape - setting color will cause Iso Lines to appear due to misprint in Prs3d_Drawer::SetOwnLineAspects()

Fixed misprint myUIsoAspect -> myVIsoAspect.

2 months ago0031974: Modeling Algorithms - Strange behavior of boolean operations on this BREP
emv [Thu, 28 Jan 2021 09:34:19 +0000 (12:34 +0300)]
0031974: Modeling Algorithms - Strange behavior of boolean operations on this BREP

Problem is fixed by #0031995. Integrating test case only.

2 months ago0031704: Visualization - add an interactive object AIS_LightSource representing a...
mkrylova [Tue, 8 Sep 2020 14:50:28 +0000 (17:50 +0300)]
0031704: Visualization - add an interactive object AIS_LightSource representing a light source

Added new class AIS_LightSource representing a light source presentation.

Graphic3d_TMF_CameraPers - added new mode to Graphic3d_TransformPers
defining 3D point relative to camera Eye position

2 months ago0032095: Tests - drop comparison in unstable perf/ncollection group
kgv [Fri, 29 Jan 2021 07:24:36 +0000 (10:24 +0300)]
0032095: Tests - drop comparison in unstable perf/ncollection group

Mark performance deviations compared to STL collections as warnings instead of errors.

2 months ago0032119: Coding Rules - eliminate msvc warning C4800 (implicit cast to bool) after...
dpasukhi [Sat, 6 Feb 2021 15:43:43 +0000 (18:43 +0300)]
0032119: Coding Rules - eliminate msvc warning C4800 (implicit cast to bool) after fix for 32115

Fixed incorrect comparison and forcing cast

2 months ago0032122: Samples - handle WASD keys in WebGL sample
kgv [Sun, 7 Feb 2021 08:03:33 +0000 (11:03 +0300)]
0032122: Samples - handle WASD keys in WebGL sample

2 months ago0032118: Visualization, Graphic3d_MarkerImage::StandardMarker() - return marker with...
kgv [Fri, 5 Feb 2021 17:40:26 +0000 (20:40 +0300)]
0032118: Visualization, Graphic3d_MarkerImage::StandardMarker() - return marker with pre-defined id

2 months ago0032117: Visualization, TKOpenGl - assert in OpenGl_AspectsSprite due to implicit...
kgv [Fri, 5 Feb 2021 17:38:15 +0000 (20:38 +0300)]
0032117: Visualization, TKOpenGl - assert in OpenGl_AspectsSprite due to implicit destruction of existing resource

RGBA and Alpha markers are now handled independently within OpenGl_AspectsSprite::build().

3 months ago0032115: Data Exchange, STEP reader - Incorrect full path to file is not caught IR-2021-02-05 WEEK-5
dpasukhi [Fri, 5 Feb 2021 10:05:22 +0000 (13:05 +0300)]
0032115: Data Exchange, STEP reader - Incorrect full path to file is not caught

Fixed a checking for a non-existent step file

3 months ago0031970: Data Exchange, STEP reader - parser syntax error messages are inaccessible
dpasukhi [Mon, 11 Jan 2021 10:20:31 +0000 (13:20 +0300)]
0031970: Data Exchange, STEP reader - parser syntax error messages are inaccessible

 - Upgraded files using new version of WinFlexBison
 - Removed global variables within StepFile_Read.cxx
 - Upgraded error message during bison analyzing ( added a expected expression information )
 - Used 'Interface_ParamType' as argument type for the StepFile_ReadData::Argument
 for a compatibility with the StepData/StepData_StepReaderData
 - Added handling parse errors and transferring it to the StepData_StepReaderData
 - Now parsing and referencing errors save in the check and non output by default
 - Step_file's and Step_Data's output info prints according by trace level of printer
 - Removed useless location.hxx
 - Removed TraceLevel for the StepFile_Reader ( now it useless,
  it is 0 by default and newer and nowhere change )
 - Translate error message into English within StepData_StepReaderData
 - Replace "Error" word in the output messages

3 months ago0032114: Visualization, TKOpenGl - broken PBR LUT on OpenGL ES 2.0
kgv [Tue, 2 Feb 2021 23:50:55 +0000 (02:50 +0300)]
0032114: Visualization, TKOpenGl - broken PBR LUT on OpenGL ES 2.0

Added image formats Image_Format_RGF_half/Image_Format_RGBAF_half
with manual conversion between 32-bit float and 16-bit half-float values.

PBR LUT table is now converted into GL_HALF_FLOAT_OES data format in case of OpenGL ES 2.0.

3 months ago0032110: Visualization, TKOpenGl - allow incomplete PBR on OpenGL ES 2.0 without...
kgv [Tue, 2 Feb 2021 11:33:57 +0000 (14:33 +0300)]
0032110: Visualization, TKOpenGl - allow incomplete PBR on OpenGL ES 2.0 without GL_EXT_shader_texture_lod

textureCube() is now used as fallback when textureCubeLod() is unavailable.

3 months ago0032113: Visualization, TKOpenGl - broken PBR diffuse map within OpenGl_Caps::buffers...
kgv [Tue, 2 Feb 2021 20:02:51 +0000 (23:02 +0300)]
0032113: Visualization, TKOpenGl - broken PBR diffuse map within OpenGl_Caps::buffersOpaqueAlpha() on OpenGL ES 2.0

Fixed enabling of alpha channel writes while baking PBR environment.

3 months ago0032108: Modeling Algorithms - BRepAlgoAPI_Section is too slow
emv [Tue, 2 Feb 2021 08:37:28 +0000 (11:37 +0300)]
0032108: Modeling Algorithms - BRepAlgoAPI_Section is too slow

Fixed by 0029711. Integrating test case only.

3 months ago0031939: Coding - correction of spelling errors in comments [part 8]
luz paz [Mon, 1 Feb 2021 09:52:47 +0000 (12:52 +0300)]
0031939: Coding - correction of spelling errors in comments [part 8]

Fix various typos

Fixed via codespell v2.1.dev

3 months ago0032105: Visualization, TKOpenGl - PBR flat shading GLSL program compilation error...
kgv [Mon, 1 Feb 2021 21:41:01 +0000 (00:41 +0300)]
0032105: Visualization, TKOpenGl - PBR flat shading GLSL program compilation error on OpenGL ES 2.0

OpenGl_ShaderManager::defaultGlslVersion() - fixed combining two extensions in header.

3 months ago0032101: Visualization, TKOpenGl - use GL_UNPACK_ROW_LENGTH within OpenGL ES 3.0...
kgv [Mon, 1 Feb 2021 17:46:00 +0000 (20:46 +0300)]
0032101: Visualization, TKOpenGl - use GL_UNPACK_ROW_LENGTH within OpenGL ES 3.0 / WebGL 2.0

Added OpenGl_Context::hasUnpackRowLength property for using GL_UNPACK_ROW_LENGTH in runtime.
OpenGl_Texture now uses GL_UNPACK_ROW_LENGTH on OpenGL ES 3.0 when necessary.
OpenGl_Texture::InitCubeMap() now allows uploading vertically-stacked cubemaps
without GL_UNPACK_ROW_LENGTH requirement.

3 months ago0032079: Coding Rules - rename AIS_KindOfInteractive enumeration values with fully...
kgv [Fri, 22 Jan 2021 16:03:45 +0000 (19:03 +0300)]
0032079: Coding Rules - rename AIS_KindOfInteractive enumeration values with fully-qualified name

In addition, several ViewerTest command have been cleared out from duplicated checks.

3 months ago0032094: Visualization, TKOpenGl - OpenGl_VertexBuffer::bindAttribute() silently... IR-2021-01-29 WEEK-4
kgv [Fri, 29 Jan 2021 02:29:50 +0000 (05:29 +0300)]
0032094: Visualization, TKOpenGl - OpenGl_VertexBuffer::bindAttribute() silently does nothing without active GLSL program

OpenGl_VertexBuffer::bindAttribute() now prints an error message indicating a possible VBO misuse.

3 months ago0032081: Visualization - WebGL sample errors when run in Safari browser with WebGL 1.0
kgv [Fri, 29 Jan 2021 01:59:41 +0000 (04:59 +0300)]
0032081: Visualization - WebGL sample errors when run in Safari browser with WebGL 1.0

"MAX_WEBGL_VERSION=2" Emscripten option is now used for building sample instead of deprecated "USE_WEBGL2=1".

3 months ago0032083: Visualization, TKOpenGl - PBR rendering is unavailable on Apple A12 Bionic...
kgv [Sun, 24 Jan 2021 15:31:54 +0000 (18:31 +0300)]
0032083: Visualization, TKOpenGl - PBR rendering is unavailable on Apple A12 Bionic (iPad)

Added "#define occLight_Index(theId) 0" workaround allowing to compile
a single light source PBR shading program on OpenGL ES 2.0,
as it disallows non-constant index expressions (even trivially deducable at compile-time).

PBR lookup table is now automatically resized to RGBA format
when RG texture format is unsupported (OpenGL ES 2.0).

OpenGl_ShaderManager now allows compiling PBR shaders
using WebGL 1.0 + GL_EXT_shader_texture_lod extension.

PBR IBL baking GLSL program has been redisigned to use
if/else to avoid non-constant index expressions.
Diffuse baking implements packing float values into a temporary RGBA8 texture
as a fallback solution on WebGL 1.0 implementations supporting float textures
but not as FBO render targets.

OpenGl_PBREnvironment now uses GL_FRAMEBUFFER instead of GL_DRAW_FRAMEBUFFER
for compatibility with OpenGL ES 2.0.

3 months ago0032093: Visualization, TKOpenGl - loading texture in BGR format fails in OpenGL ES
kgv [Fri, 29 Jan 2021 00:34:16 +0000 (03:34 +0300)]
0032093: Visualization, TKOpenGl - loading texture in BGR format fails in OpenGL ES

Graphic3d_TextureRoot::convertToCompatible() - fixed handling of
Image_Format_BGR and Image_Format_BGRA formats.

OpenGl_Texture - added error message for unsupported pixel format;
error messages have been extended by resource id.
OpenGl_Texture::InitCubeMap() now does not release cubemap
on mipmaps generation failure.

Image_PixMap::ImageFormatToString() - added method returning name of pixel format.

3 months ago0031912: Modeling Algorithms - Boolean Cut can't build resulting shape
emv [Thu, 28 Jan 2021 10:02:08 +0000 (13:02 +0300)]
0031912: Modeling Algorithms - Boolean Cut can't build resulting shape

Problem is fixed by #0032058. Integrating test case only.

3 months ago0032078: Visualization, Poly_Triangulation - add cached bounding box.
osa [Fri, 22 Jan 2021 14:56:45 +0000 (17:56 +0300)]
0032078: Visualization, Poly_Triangulation - add cached bounding box.

1) Add empty constructor for Poly_Triangulation(),
2) Add Poly_Triangulation::HasGeometry() method to check that triangulation has any geometry.
3) Add possibility to cache bounding box in Poly_Triangulation and use it later in case of empty triangulation.
4) Add Poly_Triangulation::MinMax() to extends input box with bounding box of triangulation.
5) Add Poly_Triangulation::UpdateCachedMinMax() to cache min - max range of this triangulation with bounding box of nodal data.
6) Add virtual Poly_Triangulation::computeBoundingBox() to calculate bounding box of nodal data.
7) Update BRepBndLib::Add/AddOptimal/AddOBB algorithms to check empty triangulation and use cached box in this case.
8) Update BRepGProp::roughBary/surfaceProperties/volumeProperties to skip empty triangulation.
9) Remove additional myBox from RWGltf_GltfLatePrimitiveArray and some hack to save this box as nodes of base Poly_Triangulation.
10) Cache min-max range from JT file during its parsing

3 months ago0032082: Visualization, TKOpenGl - improve formatting of error messages
kgv [Sat, 23 Jan 2021 18:35:46 +0000 (21:35 +0300)]
0032082: Visualization, TKOpenGl - improve formatting of error messages

Error messages in TKOpenGl package have been improved to format
GLenum values as string constants or hex values.
OpenGl_VertexBuffer::init() now logs a message with error details
instead of just returning Boolean flag.

3 months ago0031845: Modeling Algorithms - BRepOffsetAPI_MakeThickSolid fails IR-2021-01-22 WEEK-3
jgv [Tue, 12 Jan 2021 00:45:17 +0000 (03:45 +0300)]
0031845: Modeling Algorithms - BRepOffsetAPI_MakeThickSolid fails

Multiple changes in BRepOffset_MakeOffset algorithm:
- correct fusing vertices;
- correct building intersection edges;
- correct intersecting new edges in 2D;
- correct building wire on a new face;
- correct building history.

3 months ago0031547: Visualization - V3d_View creates V3d_Trihedron instance
mkrylova [Thu, 31 Dec 2020 06:37:51 +0000 (09:37 +0300)]
0031547: Visualization - V3d_View creates V3d_Trihedron instance

- moved creating of V3d_View::myTrihedron from constructor to first attempt of displaying or calling it;
- moved creating of V3d_Viewer::myRGrid and V3d_Viewer::myCGrid to to first attempt of displaying or calling them;
- renamed V3d_Viewer::IsActive() to V3d_Viewer::IsGridActive();
- redefined V3d_View::Trihedron() and V3d_Viewer::Grid() by adding new argument toCreate
for opportunity to check the existence of the objects without their recreating.

3 months ago0032065: Samples - use MODULARIZE within WebGL sample
kgv [Mon, 18 Jan 2021 17:50:52 +0000 (20:50 +0300)]
0032065: Samples - use MODULARIZE within WebGL sample

Fixed multitouch input.

Module is now exported with global functions hidden via MODULARIZE
as global object OccViewerModule created by createOccViewerModule().
Global Module setup has been moved to occt-webgl-viewer.js.

Use EMSCRIPTEN_KEEPALIVE attribute istead of listing C functions via EXTRA_EXPORTED_RUNTIME_METHODS.
WasmOcctView now exports static methods as Module functions using EMSCRIPTEN_BINDINGS.

Standard_ASSERT_DBGBREAK_() is now defined using emscripten_debugger().

3 months ago0032049: Data Exchange - STEP file import problems
dpasukhi [Sun, 17 Jan 2021 13:27:11 +0000 (16:27 +0300)]
0032049: Data Exchange - STEP file import problems

- Added checking for null objects
- Added support to find layers according to visible attr
- Fixed problem with same names of layers:
 Now, layers are grouped by names and visibility parameter

3 months ago0032058: Modeling Data - Extrema curve-surface gives wrong result for planar surface...
ifv [Tue, 12 Jan 2021 13:14:35 +0000 (16:14 +0300)]
0032058: Modeling Data - Extrema curve-surface gives wrong result for planar surface of revolunion and circle

Extrema_GenExtCS.cxx : added solution refinement, if solution seems to be "bad" according to special criteria.
Extrema_FuncExtCS.cxx : "cosmetic" modifications
BOPAlgo_PaveFiller_3.cxx : adding control of shape index to prevent exception in ShapeInfo
bugs/moddata_3/bug32058 : new test

3 months ago0032067: Visualization, TKOpenGl - shadowmap GLSL compilation error on WebGL 3.0
kgv [Tue, 19 Jan 2021 15:19:26 +0000 (18:19 +0300)]
0032067: Visualization, TKOpenGl - shadowmap GLSL compilation error on WebGL 3.0

Shadowmap sampler is now passed as a dedicated argument
to occDirectionalLightShadow() to workaround strict GLSL syntax validator.
Fixed texture coordinates clamping range.

Shadow antialiasing is disabled on OpenGL ES 2.0.

3 months ago0031939: Coding - correction of spelling errors in comments [part 7]
luz paz [Mon, 18 Jan 2021 09:36:06 +0000 (12:36 +0300)]
0031939: Coding - correction of spelling errors in comments [part 7]

Fix various typos

Fixed via codespell v2.1.dev

3 months ago0032064: Coding Rules - make RWGltf_GltfJsonParser non-private
kgv [Mon, 18 Jan 2021 21:13:54 +0000 (00:13 +0300)]
0032064: Coding Rules - make RWGltf_GltfJsonParser non-private

3 months ago0028026: Modeling Data - BRepTools::Clean() does not clean all triangulation from...
akaftasev [Fri, 27 Nov 2020 15:07:39 +0000 (18:07 +0300)]
0028026: Modeling Data - BRepTools::Clean() does not clean all triangulation from shape

Added flag for force clean triangulation and treatment for it
Command "trinfo" now show number of polygons on triangulation

3 months ago0032061: Data Exchange, RWGltf_CafWriter - exporting XBF file produces an invalid...
kgv [Mon, 18 Jan 2021 11:58:22 +0000 (14:58 +0300)]
0032061: Data Exchange, RWGltf_CafWriter - exporting XBF file produces an invalid glTF document

Empty Nodes are now skipped while filling in Scene node map.

3 months ago0031571: Visualization, TKOpenGl - provide depth peeling OIT option
kgv [Tue, 19 May 2020 07:47:25 +0000 (10:47 +0300)]
0031571: Visualization, TKOpenGl - provide depth peeling OIT option

Graphic3d_RenderTransparentMethod has been extended by Graphic3d_RTM_DEPTH_PEELING_OIT,
which is handled by OpenGl_LayerList::renderTransparent().

OpenGl_FrameBuffer::Init() now does not silently ignore unknown color attachment format and return failure.
OpenGl_FrameBuffer::InitWrapper() - added constructor wrapping existing color textures.

v3d/transparency/oit: test case added

3 months ago0031136: Modeling Data - BinXCAF persistence loses normals from triangulation-only...
asuraven [Tue, 17 Nov 2020 17:37:01 +0000 (20:37 +0300)]
0031136: Modeling Data - BinXCAF persistence loses normals from triangulation-only Faces

Information about normals are stored in BinOCAF, XmlOCAF, BRep and BBRep (in case of triangulation-only Faces).
Versions of formats have been changed (11 for TDocStd, 4 for BRep Shape and 3 for Binary BRep Shape)
theWithNormals parameter added to BRepTools::Write()
IsWithNormals()/SetWithNormals() function added to BRepTools_ShapeSet
-normals/-noNormals option added to StoreTriangulation DRAW command
-normals/-noNormals option added to writebrep DRAW command
Tests for writing to brep/binary brep/BinXCaf/XmlXCaf added
Test for StoreTriangulation options -normals/-noNormals added

3 months ago0031172: Unexpected result of BRepTools::OuterWire() IR-2021-01-15
aavtamon [Wed, 13 Jan 2021 09:22:58 +0000 (12:22 +0300)]
0031172: Unexpected result of BRepTools::OuterWire()

In BRepTools::OuterWire() compare of parameters was rewritten using Precision.
The test case bug31172 has been created

3 months ago0032056: Coding Rules - remove package MMgt and other types deprecated since OCCT...
kgv [Thu, 14 Jan 2021 07:03:15 +0000 (10:03 +0300)]
0032056: Coding Rules - remove package MMgt and other types deprecated since OCCT 7.2.0

Removed functionality deprecated since OCCT 7.1.0:
0027834 built-in iterator in class SelectMgr_ViewerSelector;
0027900 obsolete constructor of V3d_Viewer class;
0027816 obsolete clipping plane setters V3d_View/PrsMgr_PresentableObject:SetClipPlanes();
0027860 obsolete transformation persistence methods from class PrsMgr_PresentableObject;
0027756 obsolete methods Prs3d_Text::Draw();
0024393 obsolete enum Graphic3d_ZLayerSetting;
0025180 obsolete method Graphic3d_Structure::Transform().

Removed functionality deprecated since OCCT 7.2.0:
0028832 obsolete class MMgt_TShared;
0026937 obsolete property Standard_Failure::Caught();
0028799 obsolete types defined within Quantity package;
0028441 obsolete nested enum Image_PixMap::ImgFormat;
0025695 obsolete method PrsMgr_PresentationManager::Unhighlight();
0028205 obsolete class MeshVS_ColorHasher;
0027958 obsolete methods from Prs3d_DatumAspect class;
0025695 obsolete class Graphic3d_HighlightStyle;
0027954 obsolete BRepOffsetAPI_MakeOffsetShape,BRepOffsetAPI_MakeThickSolid constructors.

3 months ago0032057: Coding Rules - eliminate CLang warning -Wunused-parameter when targeting iOS
kgv [Thu, 14 Jan 2021 11:09:38 +0000 (14:09 +0300)]
0032057: Coding Rules - eliminate CLang warning -Wunused-parameter when targeting iOS

Cocoa_Window::Cocoa_Window()/OpenGl_Context::SetSwapInterval() have been corrected to suppress warning.

3 months ago0032055: Draw Harness, ViewerTest - add more vmanipulator position adjusting options
kgv [Wed, 13 Jan 2021 18:22:00 +0000 (21:22 +0300)]
0032055: Draw Harness, ViewerTest - add more vmanipulator position adjusting options

Draw::ParseOnOffIterator() - added auxiliary wrapper over Draw::ParseOnOff() for more compact syntax.
strncasecmp() definition for msvc compilers has been moved to Standard_CString for consistency with strcasecmp().
vmanipulator command has been refactored to use more straightforward parser.

vmanipulator now accepts "-adjustPosition {0|center|location|shapeLocation}" options
adjusting position to object's AABB center (existed before), object's local transformation or TopoDS_Shape location.

3 months ago0025055: Modeling Algorithms - Incorrect shape copying in BRepBuilderAPI_Copy
akaftasev [Mon, 11 Jan 2021 13:58:51 +0000 (16:58 +0300)]
0025055: Modeling Algorithms - Incorrect shape copying in BRepBuilderAPI_Copy

Correct test case: exclude "fixshape" calls

3 months ago0032050: Configuration - define fallback Android API version within auxiliary batch...
kgv [Mon, 11 Jan 2021 17:28:35 +0000 (20:28 +0300)]
0032050: Configuration - define fallback Android API version within auxiliary batch files

Script now defines a minimal Android API version when %anNdkApiLevel% is set to empty value
as 16 for 32-bit targets and 21 for 64-bit targets.
Added clearing of destination folders.
Added better handling of errors.

3 months ago0032048: Configuration - Extend batch files to build OCCT with Emscripten
kgv [Mon, 11 Jan 2021 14:37:46 +0000 (17:37 +0300)]
0032048: Configuration - Extend batch files to build OCCT with Emscripten

Added option USE_RAPIDJSON.
Added option toPack creating a .7z archive.
Added option toBuildSample building WebGL sample.
Improved aborting on error.

3 months ago0032045: Visualization, TKOpenGl - move light source functions from OpenGl_ShaderMana...
kgv [Sat, 9 Jan 2021 22:43:03 +0000 (01:43 +0300)]
0032045: Visualization, TKOpenGl - move light source functions from OpenGl_ShaderManager.cxx to Shaders

3 months ago0032039: Visualization, TKOpenGl - implement simple shadow mapping for a direct light...
kgv [Mon, 4 Jan 2021 09:17:44 +0000 (12:17 +0300)]
0032039: Visualization, TKOpenGl - implement simple shadow mapping for a direct light source

Graphic3d_CLight::ToCastShadows() - added new property defining if light should cast shadows (ignored by Ray-Tracing).

OpenGl_ShaderManager::stdComputeLighting() now implements shadow mapping for directional lights.
OpenGl_ShaderManager::prepareGeomMainSrc() now handles copying of arrays.
OpenGl_Context::ShadowMapTexUnit() - added property defining an offset for shadow map texture units.
OpenGl_ShadowMap - added new class storing shadow map FBO with parameters.
OpenGl_View::prepareFrameBuffers() - added resizing of shadow map FBOs.
OpenGl_View::Redraw() - added section redrawing scene into shadow map FBOs via OpenGl_View::renderShadowMap() method.

vrenderparams - added new parameters -shadowMapResolution and -shadowMapBias.

3 months ago0032042: Visualization, TKOpenGl - pre-multiply headlight flag into light source...
kgv [Thu, 7 Jan 2021 21:48:29 +0000 (00:48 +0300)]
0032042: Visualization, TKOpenGl - pre-multiply headlight flag into light source position

OpenGl_ShaderManager::pushLightSourceState() now pre-multiplies headlight transformation.
Built-in shading GLSL programs have been updated to remove special handling if headlight flag;
also removed redundant pre-normalization of light source direction
(already normalized implicitly by Graphic3d_CLight interface).

Graphic3d_CLight::SetHeadlight() now raises exception in case of ambient light type.
OpenGl_ShaderManager::SetLastView() - removed unused property.

3 months ago0032044: Foundation Classes - NCollection_Array2::Resize() does not allocate pointer...
kgv [Sat, 9 Jan 2021 21:04:32 +0000 (00:04 +0300)]
0032044: Foundation Classes - NCollection_Array2::Resize() does not allocate pointer array

NCollection_Array2::Resize() has been fixed to set myDeletable before calling Allocate().

3 months ago0032036: Visualization, TKOpenGl - broken Cubemap background on GeForce 320M
kgv [Sun, 3 Jan 2021 00:05:32 +0000 (03:05 +0300)]
0032036: Visualization, TKOpenGl - broken Cubemap background on GeForce 320M

Enable GL_DEPTH_CLAMP while rendering skybox to workaround unexpected clamping issue on some GPUs.

3 months ago0032028: Coding Rules, StepFile - eliminate CLang warning -Wmisleading-indentation
dpasukhi [Wed, 30 Dec 2020 09:20:22 +0000 (12:20 +0300)]
0032028: Coding Rules, StepFile - eliminate CLang warning -Wmisleading-indentation

Regenerated the StepFile/lex.step.cxx using the latest version of WinFlexBison
- Fixed [-Wmisleading-indentation] warning
- Removed empty lines

3 months ago0031939: Coding - correction of spelling errors in comments [part 6]
luz paz [Mon, 11 Jan 2021 09:29:28 +0000 (12:29 +0300)]
0031939: Coding - correction of spelling errors in comments [part 6]

Fix various typos

Fixed via `codespell v2.1.dev

3 months ago0032041: Modeling Data - Access violation ExchangeUV in Geom_BezierSurface
kgv [Thu, 7 Jan 2021 20:10:27 +0000 (23:10 +0300)]
0032041: Modeling Data - Access violation ExchangeUV in Geom_BezierSurface

Added missing NULL-checks to Geom_BezierSurface::ExchangeUV() and Geom_BSplineSurface::ExchangeUV().

3 months ago0032040: Visualization, OpenGl_View - merge OpenGl_View_Redraw.cxx into OpenGl_View.cxx
kgv [Mon, 4 Jan 2021 09:13:38 +0000 (12:13 +0300)]
0032040: Visualization, OpenGl_View - merge OpenGl_View_Redraw.cxx into OpenGl_View.cxx

3 months ago0032038: Visualization, OpenGl_View - move out framebuffer initialization from :...
kgv [Mon, 4 Jan 2021 00:26:51 +0000 (03:26 +0300)]
0032038: Visualization, OpenGl_View - move out framebuffer initialization from ::Redraw() to ::prepareFrameBuffers()

3 months ago0032037: Visualization - move V3d_View::FitMinMax() to Graphic3d_Camera::FitMinMax()
kgv [Mon, 4 Jan 2021 08:53:24 +0000 (11:53 +0300)]
0032037: Visualization - move V3d_View::FitMinMax() to Graphic3d_Camera::FitMinMax()

4 months ago0032027: Visualization, Prs3d_Drawer - unable to unset HasOwnFaceBoundaryDraw() property
kgv [Tue, 29 Dec 2020 12:22:50 +0000 (15:22 +0300)]
0032027: Visualization, Prs3d_Drawer - unable to unset HasOwnFaceBoundaryDraw() property

Added missing Unset methods to Prs3d_Drawer properties.

4 months ago0029750: Samples - function arrows are not updated by moving a node in FuncDemo qt... IR-2020-12-25 WEEK-52
vro [Thu, 17 Dec 2020 10:17:46 +0000 (13:17 +0300)]
0029750: Samples - function arrows are not updated by moving a node in FuncDemo qt sample

The visual links between functions are recovered.
The demo is synchronized with a corresponding demo from Qt (qt486-vc10-32\examples\graphicsview\elasticnodes). It may be successfully compiled by any further versions of Qt including 5.10.1
Also, because Open CASCADE (and OCAF in particular) is improved for usage in multi-threading mode, usage of mutexes is added in this sample (for access to the sharing TNaming_UsedShapes attribute, for example).

4 months ago0032009: Coding Rules, TKQADraw - suppress msvc10 compilation warning C4748
kgv [Sat, 19 Dec 2020 13:00:24 +0000 (16:00 +0300)]
0032009: Coding Rules, TKQADraw - suppress msvc10 compilation warning C4748

Added a workaround for msvc10 misbehavior.

4 months ago0032013: Samples - iOS sample compilation errors
kgv [Mon, 21 Dec 2020 14:14:49 +0000 (17:14 +0300)]
0032013: Samples - iOS sample compilation errors

Added missing includes.
Fixed usage of obsolete Standard_Failure interface.
Fixed file headers.

4 months ago0032011: Configuration - add batch files to build OCCT for macOS and iOS targets
kgv [Sun, 20 Dec 2020 16:52:40 +0000 (19:52 +0300)]
0032011: Configuration - add batch files to build OCCT for macOS and iOS targets

Added script adm/scripts/macos_build.sh and template macos_custom.bat.template
intended for automating building routines targeting macOS platform.

Added script adm/scripts/ios_build.sh and template ios_custom.bat.template
intended for automating building routines targeting iOS platform.

4 months ago0031999: Tests - request Core Profile on macOS for Ray-Tracing tests
kgv [Tue, 15 Dec 2020 19:15:33 +0000 (22:15 +0300)]
0031999: Tests - request Core Profile on macOS for Ray-Tracing tests

4 months ago0032015: Visualization - Select3D_SensitiveTriangulation::myDetectedIdx is inaccessible
kgv [Tue, 22 Dec 2020 13:12:57 +0000 (16:12 +0300)]
0032015: Visualization - Select3D_SensitiveTriangulation::myDetectedIdx is inaccessible

Added Select3D_SensitiveTriangulation::LastDetectedTriangle() property.

4 months ago0031939: Coding - correction of spelling errors in comments [part 5]
luz paz [Mon, 21 Dec 2020 08:48:18 +0000 (11:48 +0300)]
0031939: Coding - correction of spelling errors in comments [part 5]

Fix various typos

Fixed via `codespell v2.1.dev

4 months ago0029723: Modeling Data - Get rid of second writing format (additional save of UV...
asuraven [Tue, 15 Dec 2020 09:31:52 +0000 (12:31 +0300)]
0029723: Modeling Data - Get rid of second writing format (additional save of UV points)

Default BinTools_ShapeSet format version has been changed from 3 to 1.
BinMNaming_NamedShapeDriver (Bin OCAF) now writes shapes in 1st version of Binary format instead of 3rd.
XmlMNaming_NamedShapeDriver (Xml OCAF) now writes shapes in 1st version of ASCII  format instead of 2nd.

writebrep now by default writes into 1st binary format version instead of 3rd.

4 months ago0031756: Data Exchange - broken parsing of STEP entity in case of missing last parameter
dpasukhi [Fri, 27 Nov 2020 19:32:18 +0000 (22:32 +0300)]
0031756: Data Exchange - broken parsing of STEP entity in case of missing last parameter

- Parser is corrected to handle case of missing arguments properly (report error without corruption of the next entity)
- Added counter of entity arguments for appropriate error messages
- Plain C tools and data structures (recfile.*, stepfile.*) are converted to C++ class (StepFile_ReadData) to avoid use of static variables, so that reader can be safely used in a multi-threaded environment

4 months ago0032004: Foundation Classes, UnitsAPI - misprint in "ACCOUSTIC INTENSITY" unit name
luz paz [Thu, 10 Dec 2020 08:40:53 +0000 (11:40 +0300)]
0032004: Foundation Classes, UnitsAPI - misprint in "ACCOUSTIC INTENSITY" unit name

Found using `codespell 2.1.dev0`

4 months ago0031226: Foundation Classes - TCollection_AsciiString::IsRealValue() returns true...
mkrylova [Mon, 14 Dec 2020 12:18:43 +0000 (15:18 +0300)]
0031226: Foundation Classes - TCollection_AsciiString::IsRealValue() returns true if a string contains a non-real value

- Added comment to the method
- Added Boolean argument indicating the need for a strict
- Extended OCC11758 command in QABugs_19.cxx to verify IsRealValue()
- Updated existing places of IsRealValue() usage in ViewerTest to use new flag

4 months ago0029822: Make TDocStd_Document extensible
vro [Thu, 17 Dec 2020 11:34:47 +0000 (14:34 +0300)]
0029822: Make TDocStd_Document extensible

Two virtual methods NewDocument() and InitDocument() are moved from TDocStd_Application to its parent class CDF_Application. In TDocStd_Application these methods remain redefined. These little changes allow creation of a new document only in one virtual method NewDocument(). The methods CreateDocument() in all retrieval drivers are deleted.

Modified files:
- CDF_Application.hxx and cxx: two virtual methods NewDocument() and InitDocument() are moved from TDocStd_Application. The input parameter TDocStd_Document is changed to parent class CDM_Document.
- TDocStd_Application.hxx and cxx: redefines new virtual methods NewDocument() and InitDocument() of the parent class CDF_Application.
- BinLDrivers_DocumentRetrievalDriver.hxx and cxx, StdLDrivers_DocumentRetrievalDriver.hxx and cxx, XmlLDrivers_DocumentRetrievalDriver.hxx and cxx, PCDM_Reader.hxx: a virtual method CreateDocument() is deleted.
- TObj_Application.cxx, XCAFApp_Application.hxx and cxx: down-casting to a descendant class TDocStd_Document is applied.

Documentation:
- upgrade.md is modified.

4 months ago0031945: Foundation Classes - unique names of alerts of message report in DumpJson IR-2020-12-18 WEEK-51
nds [Fri, 18 Dec 2020 10:09:08 +0000 (13:09 +0300)]
0031945: Foundation Classes - unique names of alerts of message report in DumpJson

- add OCCT_DUMP_FIELD_VALUE_NUMERICAL_INC and OCCT_DUMP_FIELD_VALUES_DUMPED_INC - to increment key Value;
- add OCCT_DUMP_STREAM_VALUE_DUMPED - to give stream as a parameter of the DumpJson;
- correct Message_Report, Message_CompositeAlerts to increment keys;
- correct Message_AttributeMeter to have in result start and stop values united in value block: [start stop]. It's better for parsing;
- correct result of Message::MetricToString output for updated in 29451 Message_MetricType enum;
- correct Standard_Dump::AddValuesSeparator to avoid adding ',' in additional case;
- correct Standard_Dump::FormatJson to add opening/closing brace for the whole result (for valid parsing);
- correct Standard_Dump::FormatJson to ignore '\n' in value.

4 months ago0032001: Visualization - moving dump of selection owner from sensitive to selection...
nds [Wed, 16 Dec 2020 09:19:17 +0000 (12:19 +0300)]
0032001: Visualization - moving dump of selection owner from sensitive to selection manager

4 months ago0031998: Tests - unexpected file artifact at the root of repository
asuraven [Wed, 16 Dec 2020 14:28:36 +0000 (17:28 +0300)]
0031998: Tests - unexpected file artifact at the root of repository

Saving path for .obj file changed

4 months ago0031350: Foundation Classes - Dump improvement for OCAF classes
nds [Wed, 16 Dec 2020 09:08:49 +0000 (12:08 +0300)]
0031350: Foundation Classes - Dump improvement for OCAF classes

- do not dump document in CDM_MetaData, just pointer text;
- move ID dump in to TDF_Attribute;
- extend TDF_Attribute with other important states(obtained by methods);
- extend TDocStd_Document  with other important states;
- avoid dumping of shapes in TNaming_UsedShapes (it takes much time);
- extend XCAFDoc, XCAFDimTolObjects dump to json;
- correct XCAFDoc_ColorTool, XCAFDoc_MaterialTool, XCAFDoc_LayerTool to dump only connected to the object information;
- correct XCAFDoc_Material to dump name and density value only if it exists;
- add check on correct direction in gp_Ax3.

4 months ago0032000: Foundation Classes - collect OSD_Timer time in message report
nds [Wed, 16 Dec 2020 09:29:06 +0000 (12:29 +0300)]
0032000: Foundation Classes - collect OSD_Timer time in message report

Added Message_MetricType_WallClock metric type handled by Message_AttributeMeter.
Added public OSD_Timer::GetWallClockTime() method.

4 months ago0031983: Samples - CSharp cannot be compiled "atomic<> is not supported by C++/CLI"
mpv [Wed, 16 Dec 2020 11:49:13 +0000 (14:49 +0300)]
0031983: Samples - CSharp cannot be compiled "atomic<> is not supported by C++/CLI"

Removed includes-dependency of the CSharp sample from TDF_Label.hxx

4 months ago0031995: Modeling Data - Bounding box wrong for face
ifv [Wed, 9 Dec 2020 14:28:37 +0000 (17:28 +0300)]
0031995: Modeling Data - Bounding box wrong for face

BndLib/BndLib_AddSurface.cxx : algorithm of building bounding box for BSpline surfaces is improved

Test cases are modified according to current state of algorithm
Test case bug31995 added

4 months ago0031944: Foundation Classes, Message_Report - add missing mutex locks for message...
nds [Sat, 31 Oct 2020 19:58:22 +0000 (22:58 +0300)]
0031944: Foundation Classes, Message_Report - add missing mutex locks for message level

4 months ago0031939: Coding - correction of spelling errors in comments [part 4]
luz paz [Wed, 16 Dec 2020 08:58:16 +0000 (11:58 +0300)]
0031939: Coding - correction of spelling errors in comments [part 4]

Fix various typos

Fixed via `codespell v2.1.dev

4 months ago0030762: Foundation Classes - include backtrace within OSD_SIGSEGV
kgv [Mon, 3 Jun 2019 05:06:24 +0000 (08:06 +0300)]
0030762: Foundation Classes - include backtrace within OSD_SIGSEGV

Standard_Failure now holds an optional stack trace dump.
Added function Standard::StackTrace() dumping backtrace to the string.
SegvHandler within OSD_signal now appends backtrace to the message
if OSD::SignalStackTraceLength() is set to non-zero value
or environment variable "CSF_DEBUG_MODE" is set for debugging.

Added auxiliary macros Standard_NOINLINE disallowing function inlining.

Command "dsetsignal" has been extended by -strackTraceLength argument
for defining stack trace length within signals redirected to C++ exceptions.
Added "ddebugtraces" command for debugging purposes (adding stack traces to all exceptions).

4 months ago0031946: Modeling Data - replace version numbers with enumerations in TopTools and...
asuraven [Tue, 3 Nov 2020 14:22:14 +0000 (17:22 +0300)]
0031946: Modeling Data - replace version numbers with enumerations in TopTools and BinTools

Added enumerations BinTools_FormatVersion & TopTools_FormatVersion for more clear version tracking in the code.
Added new BinTools::Write() & BRepTools::Write() overloaded functions with version & isWithTriangles parameters.

Added new "readbrep"/"writebrep" DRAW commands handling reading and writing of both Binary and ASCII .brep formats
and providing arguments to setup writing of triangulation data and of format version.
"binrestore" is made an alias to new command "readbrep".
"binsave" now is an alias to new "writebrep" saving into binary format by default ("writebrep" writes into ASCII format by default).