0033531: Configuration - Rework DataExchange ToolKits organization Integrated DE plugin functionality. Reworked DE components: - TKDESTEP: Handling STEP file format. - TKDEOBJ: Handling OBJ file format. - TKDEIGES: Handling IGES file format. - TKDEGLTF: Handling GLTF file format. - TKDEVRML: Handling VRML file format. - TKDEPLY: Handling PLY file format. - TKDESTL: Handling STL file format. Reworked DE DRAW components: TKXSDRAWSTEP: Container for DE command to work with STEP. TKXSDRAWOBJ: Container for DE command to work with OBJ. TKXSDRAWIGES: Container for DE command to work with IGES. TKXSDRAWGLTF: Container for DE command to work with GLTF. TKXSDRAWVRML: Container for DE command to work with VRML. TKXSDRAWPLY: Container for DE command to work with PLY. TKXSDRAWSTL: Container for DE command to work with STL. TKXSDRAW rework to be base DRAW plugin to keep DE session and utils. Updated documentation Updated samples
0033370: Foundation Classes - Moving into STL and Boost functionality NCollection containers update: - NCollection_Array1 - updated functionality - NCollection_Array2 - NCollection_Array1 as a wrapper for 2array - NCollection_Vector -> NCollection_DynamicArray was renamed and reworked. TCollection: - Use static empty string to avoid allocations on empty string NCollection allocators update: - NCollection_Allocator - allocator that used Standard::Allocate - NCollection_OccAllocator - allocator-wrapper that used OCC BaseAllocator objects - NCollection_IncAllocator - rework to increase performance Standard: - Rework functionality to use different allocation libs - Implement basic of new way to wrap allocations tools - Define 4 ways to allocation (defines in configure stage) Additional changes: - Hash function uses std::hash functionality - size_t as a hash value - New HashUtils with Murmur and FVN hash algo for x32 and x64 - Deprecated _0.cxx and .gxx DE classes reorganized - Create own utility for std memory - Update Standard_Transient to be more platform-independent Math TK changes: - math_Vector -> match_BaseVector<> - Buffer decreased to cash 32 elements instead of 512
0032921: Configuration, CMake - allow selecting C++ standard. Make C++ standard to be enable from cmake settings: User will be able choosing C++ language standard by selecting cmake variable BUILD_CPP_STANDARD. For correct working, CMAKE_CXX_STANDARD cmake built-in variable should be available. To enable CMAKE_CXX_STANDARD, minimum CMAKE version has been updated to 3.1. Available next standard items: C++11 C++14 C++17 C++20 C++23 This issue consists from several steps to achive main goal: 1) Configuratiuon, CMake - allow selecting C++ standard. 2) Require minimum CMAKE version 3.1 (for enabling CMAKE_CXX_STANDARD). 3) More flexible CMAKE_CXX_COMPILER_ID identification (fixups previous commit!) 4) Add description of new CMAKE variable `BUILD_CPP_STANDARD` into documentation. 5) Update CMAKE requirements in documentation. 6) Set C++11 standard for several projects.
0032986: Samples - csharp sample is crashed on compilation with VC++ 2022 While demanding c++ language standard c++20, the error of OCCTProxy compilation is occured: warning C4857: C++/CLI mode does not support C++ versions newer than C++17; setting language to /std:c++17 error C7681: two-phase name lookup is not supported for C++/CLI or C++/CX; use /Zc:twoPhase- Officially, C++/CLI mode does not support C++ version newer than C++17, so we should not demand C++20 to compile csharp samples. Alternative solution - using /permissive (ConformanceMode = false), rather than default value /permissive- (ConformanceMode = true) option to compile OCCTProxy. But alternative solution has been denied. So, here is nothing to do to fix compilation of OCCTProxy project. Nevertheless, error occures in IE_WPF_WinForms and IE_WinForms - if we trying to compile with VC++ 2022 (not demanding c++20): warning MSB3274: The primary reference "*\OCCTProxy.dll" could not be resolved because it was built against the ".NETFramework,Version=v4.7.2" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0". To solve the problem it is proposed to demand by default the highest version of NETFramework - 4.8. So, demanding NETFramework v4.8 does not crashing compilation of csharp samples with VC++ 2015.
0032862: Visualization, Graphic3d_TextureMap - add 3D texture definition Image_PixMap has been extended to support definition of 3D bitmap (as an array of 2D slices). Graphic3d_TypeOfTexture enumeration values have been renamed to include full enum prefix. Added Graphic3d_TypeOfTexture_3D redirecting to GL_TEXTURE_3D. OpenGl_Texture::Init() has been extended to allow initialization of 3D texture. Graphic3d_Texture2Dmanual merged into Graphic3d_Texture2D and marked as deprecated alias. Graphic3d_TOT_2D_MIPMAP has been deprecated in favor of dedicated Graphic3d_TextureRoot::SetMipMaps(). Added Graphic3d_Texture3D class. vtexture - added argument -3d for uploading 3D texture.
0032723: Draw Harness, ViewerTest - sloppy animation in WebGL Fixed emscripten_async_call() calls to use requestAnimationFrame() instead of setTimeout(). ViewerTest_EventManager::handleViewRedraw() - fixed queuing new onWasmRedrawView() before previous one has been processed (leading to multiplying of pending redraws executed at the same time). RWGltf_TriangulationReader::readDracoBuffer - suppressed CLang compilation warnings.
0032709: Samples, MFC - remove samples Viewer2d, Viewer3d, Ocaf, Triangulation, Animation, Convert
0032704: Visualization, Prs3d_Drawer - do not implicitly create aspects within getters Prs3d_Drawer getters now return NULL instead of implicitly creating "default" aspects. Added missing initialization of default properties in AIS_InteractiveContext. AIS_InteractiveContext::setContextToObject() - added missing propagation of Context to child presentations.
0032662: Coding - Missing header file in AIS_DataMapOfSelStat.hxx Removed obsolete header files AIS_DataMapOfSelStat.hxx and AIS_DataMapIteratorOfDataMapOfSelStat.hxx. Removed obsolete types AIS_DataMapofIntegerListOfinteractive, AIS_ClearMode, AIS_ConnectStatus, AIS_IndexedDataMapOfOwnerPrs, AIS_MapOfInteractive.
0032551: Documentation - Novice user guide for OCCT Documentation Added novice guide. Improved structure of Tutorials & Samples.
0032638: Draw Harness, ViewerTest - HTML input range misbehavior in WebAssembly ViewerTest_EventManager - added tracking of EMSCRIPTEN_EVENT_FOCUSOUT event. onWasmMouseCallback() has been adjusted to return FALSE for EMSCRIPTEN_EVENT_TARGET_WINDOW target to avoid misbehavior of other HTML controls. WNT_Window::ProcessMessage() now handles WM_SETFOCUS/WM_KILLFOCUS instead of WM_ACTIVATE to track focus changes. AIS_ViewController::ProcessFocus() now redirects to AIS_ViewController::ResetViewInput() on focus loss. This fixes issues when key action (like WASD navigation) keep working even after releasing key if window has been switched.
0032609: Visualization, Wasm_Window - handle mouse movements outside canvas element Wasm_Window::ProcessMouseEvent() - removed redundant check on EMSCRIPTEN_EVENT_MOUSEUP event. ViewerTest and WebGL sample - mouse movements are now tracked on window element to allow tracking updates when mouse with clicked button is moved outside canvas element.