0028414: Data Exchange, STEP - Face on a closed surface with single inner wire and without natural bound not correctly read Problem: From the point of view of the STEP format (and others), it is allowed to describe a face on a surface with natural boundaries (torus, sphere) without specifying these boundaries. Thus, a face on a closed surface and containing an inner wire (or several) is correctly defined and describes a face with a cutout defined by this wire. At the same time, there is a function (ShapeFix_Face::FixOrientation) in the ShapeHealing procedure that corrects the orientation of the wires, and it starts before the function of adding natural boundaries (ShapeFix_Face::FixAddNaturalBound). There are many shapes that have incorrectly oriented wires and this procedure successfully heals them, but on a correctly specified face with single inner wire on closed surface, we do not get the entire surface with a cutout, but a part of the surface defined by the wire. This fix is intended to resolve this ambiguity. Change: 1. Added function isNeedAddNaturalBound that returns TRUE if face needs to add natural bounds. 2. Corrected condition in FixOrientation to ignoring faces that needs to add natural bounds. 3. For tests in which one wire was incorrectly oriented on a closed surface, flag AddNaturalBound was disabled. 5. Test with cutout from torus was created: bugs step bug28414. Result: By default, it is correct to add natural boundaries, because this case is correct from the point of view of the STEP format and others.
0027567: VIS - possible memory leaks due to use of plain pointers: Fix also the VIS guide. Add the test v3d/ivtk/bug27567. Add a draw command "ivtkremove". 0027734: Configuration - TKIVtkDraw build fails with TBB: Remove unnecessary define statement (windows specific). Small correction of test case for issue CR27567
0027384: BRepMesh_IncrementalMesh does not take angular deflection into account for spun/elementary surfaces Check deviation of normals at vertices of triangles for complex surface types different from Bezier and BSpline. Modified test cased according to changes in BRepMesh. Do not remove more intermediate parameters than N - 3 in order to have at least one parameter related to surface internals. Check angle for angular deflection before removement of intermediate parameters. Unify computation of internal vertices for complex surfaces. Discretization points of edges are taken into account during computation of step of mesh grid. Remove parameters only if they fit the constrains along the whole surface. Do not add random internal parameters in case if their number is just 2. Force freezing parameters both for U and V in case of significant control point. Modified test cases Warnings elimination in vc14.
0027176: Configuration, CMake - INSTALL_DIR is a common prefix for all other install variables Possibility to customize layout of installation of OCCT is introduced by: - variable INSTALL_DIR_LAYOUT - select one of the two predefined layouts: either Windows (classic OCCT layout) or Unix (Linux standard) - variables INSTALL_DIR_* (BIN, LIB, INCLUDE, RESOURCE, DOC, TESTS, SCRIPT, SAMPLES, DATA) - specify locations of relevant components - variable INSTALL_DIR_WITH_VERSION (bool) - specifies whether full version of OCCT should be used in paths in Unix layout Files LICENSE_LGPL_21.txt and OCCT_LGPL_EXCEPTION.txt are always installed. Environment is extended to support non-default layouts. For that, environment variables "CSF_OCCT*Path" are defined, corresponding to CMake variables INSTALL_DIR_* described above. Visual Studio environment, DRAW, tests, samples are amended to use these variables instead of (or as alternative to) CASROOT. Settings of Products-specific vars are removed from environment scripts. File genconf.bat was corrected to avoid error message for the case when path to TCL contains spaces. Product name in rc files changed to "Open CASCADE Technology".
0026622: Tests - Avoid using dlog and decho commands in test scripts Added possibility to define patterns that must be present in the test log, so that test is considered OK only if all these patterns are found. New REQUIRED statement is introduced for that, documented in dox/dev_guides/tests/tests.md. Removed all uses of decho and dlog commands, added REQUIRED where necessary. Command xdistcs is modified to output to Tcl instead of cout, and extended to report errors and warnings if distances are greater than tolerance (directly, instead of complex post-processing on Tcl level). DEBUG mode for TODOs was removed (we should have no deviations in Debug mode). Corrected indentation in DrawResources/TestCommands.tcl HTML log will now highlight TODO statement causing IMPROVEMENT status, or REQUIRED statement causing FAIL, by corresponding color.
0025378: Building of triangulation for distored surfaces can take very long using BRepMesh_IncrementalMesh New parameter MinSize has been introduced to BRepMesh and GCPnts_TangentialDeflection; Check length of remaining part of curve for min size parameter instead of distance between two points to avoid large gaps in case highly distorted BSpline surfaces; Produce fine mesh for sphere and fix other surface; Test cases for issue CR25378 Correction of test cases for issue CR25378
0023493: Incorrect QAGetPixelColor usage Usage of QAGetPixelColor were checked and corrected. Using simple comparison instead of regexp. Improved usage of command vreadpixel for standard colors. Command QAGetPixelColor was dropped from TKQADraw. Procedures "checkcolor" and auxiliary "checkpoint" were moved to DrawResources/TestCommands.tcl Some test cases using "checkcolor" for picking line color were simplified. Procedures checkcolor and checkpoint were changed to handle situation when pixel is out of view. Removed unnecessary use of command "vaspects -setwidth" in tests. Revert -setwidth change in test bugs/vis/bug23525
0023947: Eliminate trivial compiler warnings in MSVC++ with warning level 4 Fix first subset of warnings (about 100) - while(1) and similar constructs replaced by for(;;) - some uninitialized variables corrected Got rid of Warning C4189: local variable is initialised but not referenced Corrected mistakes after getting rid of C4189 compiler warning Corrected some mistakes that led to compiling errors Fixed test case because of improvement message - removed unnecessary TODO. Small fix: tabs have been replaced with whitespaces. Added TODO for Windows platform removed last TODO Corrected mistakes, returned some #ifdef DEB code, fixed test case . Restoring a few places which have been modified too much Small grammar fix Deleted unnecessary puts in bugs/end
0023905: Clean obsolete test commands In parallel mode, limit number of jobs in the queue to avoid slowdown occurring with long queues Obsolete DRAW tools removed Improvement of processing of test log: - log is collected as list and not as string for better performance - short table of test cases (TOC) is added in HTML log - algorithm to combine test cases in one row in HTML log is improved to avoid long lines (group bugs) Parse rules corrected to ignore irrelevant debug messages, and to correctly report tests 3rdparty export as skipped or BAD when Gl2Ps is missing or is built in incompatible mode on windows Tests corrected to pass in Debug mode on Windows
0023818: Extend OSD_MemInfo to report C heap statistics A new counter MemHeapUsage was added to OSD_MemInfo class to examine program heap size DRAW command meminfo got new option -h (--heap ) to use new counter data The following testcases were changed to use new option -h of DRAW command meminfo myCounters[MemHeapUsage] now will always be refilled every time the OSD_MemInfo::Update() function is called. Fixed testcases to use meminfo -h instead of meminfo -w to detect memory leaks more properly.
0022898: IGES import fails in german environment Added DRAW command dlocale to set and query current locale of the C subsystem Equivalents of C functions working with conversions of strings to/from reals added in Standard_CString, providing locale-independent behavior (using always "C" locale) In DRAW packages, calls to atof() and atoi() are replaced by direct calls to Draw::Atof() and Draw::Atoi(), respectively, instead of substituting by #define Use of atof(), strtod(), and *scanf() involving floating point conversions in OCCT code replaced by locale-independent Atof() and Strtod() Calls to sprintf() involving floating point in OCCT code are replaced by call to locale-independent Sprintf(), except a few places where converted strings are used immediately for display in the 3d viewer Changes of global locale are eliminated throughout OCCT code Proposed correction for GNU libC where v*printf_l functions are absent Added test case (bugs xde bug22898) for data exchange operations with non-standard locale Use xlocale on Mac OS X and within glibc Corrected strtod_l wrapper Generate error rather than warning Introduce Standard_CLocaleSentry replacement for removed OSD_Localizer Standard_CLocaleSentry - copy locale string Standard_CLocaleSentry - use _configthreadlocale on Windows Standard_CLocaleSentry::GetCLocale() - return locale_t rather than void* Corrected misprint in ~Standard_CLocaleSentry() Use French locale in bug22898 test case Mark test case as skipped if locale is unavailable on tested system. Use fr_FR locale for tests on Mac OS X