occt.git
4 years ago0013175: XCAF document with one vertex is exported to an incorrect STEP file
abv [Fri, 25 Oct 2019 12:49:01 +0000 (15:49 +0300)]
0013175: XCAF document with one vertex is exported to an incorrect STEP file

Added non-regression test case

4 years ago0031043: GCPnts_TangentialDeflection generates points which number is inconsistent...
oan [Tue, 29 Oct 2019 08:04:53 +0000 (11:04 +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

4 years ago0031070: Configuration - fix building issues when using Emscripten toolchain IR-2019-10-25
kgv [Tue, 15 Oct 2019 23:42:33 +0000 (02:42 +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 <sys/signal.h> 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.

4 years ago0031079: Visualization - embed minimal fallback font
kgv [Fri, 18 Oct 2019 08:40:55 +0000 (11:40 +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.

4 years ago0031102: Visualization, AIS_ViewController - AIS_DragAction_Stop is never emitted...
kgv [Thu, 24 Oct 2019 10:44:49 +0000 (13:44 +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.

4 years ago0030878: Modeling Algorithms - BRepLib_MakeFace produces face with abnormal surface
emv [Thu, 26 Sep 2019 11:50:10 +0000 (14:50 +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.

4 years ago0031088: Visualization - GL_INVALID_ENUM while dumping view within OpenGL 1.1
kgv [Sun, 20 Oct 2019 11:13:46 +0000 (14:13 +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.

4 years ago0031082: Visualization - crash on display if there are no lights in the view
kgv [Sun, 20 Oct 2019 11:53:13 +0000 (14:53 +0300)]
0031082: Visualization - crash on display if there are no lights in the view

OpenGl_View - fixed uninitialized property myLights.

4 years ago0031037: Foundation Classes - add class Message_PrinterSystemLog for printing message... IR-2019-10-20
kgv [Sat, 5 Oct 2019 20:34:35 +0000 (23:34 +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.

4 years ago0025341: Visualization - disallow displaying object as part of connected one and...
kgv [Sat, 28 Sep 2019 10:36:24 +0000 (13:36 +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.

4 years ago0031067: Visualization - Aspect_Window::DoResize() should be a non-const method
kgv [Sat, 19 Oct 2019 12:38:48 +0000 (15:38 +0300)]
0031067: Visualization - Aspect_Window::DoResize() should be a non-const method

Removed 'const' from Aspect_Window::DoResize() virtual method.

4 years ago0031056: Samples - update glfw sample to use AIS_ViewController
kgv [Thu, 10 Oct 2019 14:09:07 +0000 (17:09 +0300)]
0031056: Samples - update glfw sample to use AIS_ViewController

4 years ago0031036: Foundation Classes, Message_PrinterOStream - add option printing colored...
kgv [Sat, 5 Oct 2019 19:01:09 +0000 (22:01 +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.

4 years ago0029902: Data Exchange, XCAF - provide extended Material definition for visualization...
kgv [Wed, 3 Jul 2019 08:28:26 +0000 (11:28 +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.

4 years ago0029528: Visualization, TKOpenGl - allow defining sRGB textures
kgv [Thu, 29 Aug 2019 08:04:56 +0000 (11:04 +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.

4 years ago0030969: Coding Rules - refactor Quantity_Color.cxx color table definition
kgv [Mon, 16 Sep 2019 20:06:38 +0000 (23:06 +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<float> 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.

4 years ago0031023: Fillet regression in OCCT 7.4 from 7.3
jgv [Fri, 20 Sep 2019 10:52:10 +0000 (13:52 +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.

4 years ago0030940: BRepFilletAPI_MakeFillet algorithm fails on closed shell
jgv [Fri, 20 Sep 2019 10:52:10 +0000 (13:52 +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".

4 years ago0026071: BRepOffsetAPI_MakePipeShell produces rough result
jgv [Fri, 6 Sep 2019 14:03:59 +0000 (17:03 +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.

4 years ago0031066: Infinite loop in ShapeUpgrade_UnifySameDomain
jgv [Mon, 14 Oct 2019 13:54:13 +0000 (16:54 +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.

4 years ago0029068: Data Exchange - Invalid rotation of result shape after import attached STEP...
skl [Wed, 30 Aug 2017 09:17:10 +0000 (12:17 +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.

4 years ago0030932: Modeling Algorithms - Invalid result on 2d curve on surface approximation
aml [Fri, 13 Sep 2019 08:47:17 +0000 (11:47 +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.

4 years ago0029843: Modeling Algorithms - Boolean FUSE produces incorrect result
emv [Fri, 20 Sep 2019 05:56:21 +0000 (08:56 +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.

4 years ago0031029: BRepLib::SameParameter regression in OCCT 7.4 from OCCT 7.3
ifv [Mon, 14 Oct 2019 13:51:52 +0000 (16:51 +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.

4 years ago0031050: Data Exchange - XmlXCAF persistence stores triangulation-only Faces without...
kgv [Wed, 9 Oct 2019 15:18:14 +0000 (18:18 +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.

4 years ago0031031: Incorrect result is returned from BRepPrimAPI_MakePrism::Generated()
ifv [Tue, 8 Oct 2019 11:44:04 +0000 (14:44 +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

4 years ago0031013: Application Framework - Storage status is wrong after a failure
vro [Tue, 1 Oct 2019 05:36:21 +0000 (08:36 +0300)]
0031013: Application Framework - Storage status is wrong after a failure

CDF_StoreList.cxx::Store() was amended

4 years ago0030456: Make OCCT_CHECK_AND_UNSET_GROUP more general
apn [Fri, 19 Jul 2019 13:25:59 +0000 (16:25 +0300)]
0030456: Make OCCT_CHECK_AND_UNSET_GROUP more general

Modify OCCT_CHECK_AND_UNSET_GROUP function to allow unset any group of variables

4 years ago0031021: Coding Rules - Deprecation warnings on OSX within Draw_Window_1.mm
kgv [Tue, 15 Oct 2019 17:46:57 +0000 (20:46 +0300)]
0031021: Coding Rules - Deprecation warnings on OSX within Draw_Window_1.mm

Use new renamed enumeration values instead of deprecated ones.

4 years ago0031044: Coding - Standard_NODISCARD should be placed before Standard_EXPORT
abv [Mon, 7 Oct 2019 18:32:21 +0000 (21:32 +0300)]
0031044: Coding - Standard_NODISCARD should be placed before Standard_EXPORT

Standard_NODISCARD is put before Standard_EXPORT in all places throughout OCCT code

4 years ago0031020: Coding - invalid inline usage in BRepBlend_AppSurface
msv [Tue, 1 Oct 2019 20:06:35 +0000 (23:06 +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.

4 years ago0031048: Visualization - runtime error reported by Clang undefined behavior sanitizer...
kgv [Fri, 11 Oct 2019 11:56:03 +0000 (14:56 +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.

4 years ago0030993: Modeling Algorithms - heap-use-after-free reported by Clang address sanitize...
abv [Tue, 24 Sep 2019 05:32:09 +0000 (08:32 +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

4 years ago0030992: Foundation Classes - heap-buffer-overflow reported by Clang address sanitize...
abv [Tue, 1 Oct 2019 05:23:26 +0000 (08:23 +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().

4 years ago0031024: Coding - invalid left shift in BVH_RadixSorter::Perform() using -fsanitize...
kgv [Thu, 3 Oct 2019 03:49:59 +0000 (06:49 +0300)]
0031024: Coding - invalid left shift in BVH_RadixSorter::Perform() using -fsanitize=undefined

Standard_Integer has been replaced by unsigned int for bit operations.

4 years ago0031010: Foundation Classes - heap-buffer-overflow reported by Clang address sanitize...
abv [Mon, 30 Sep 2019 18:37:55 +0000 (21:37 +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

4 years ago0031008: Application Framework - memcpy-param-overlap reported by Clang address sanit...
mpv [Mon, 30 Sep 2019 11:12:35 +0000 (14:12 +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.

4 years ago0031034: Visualization - stack-use-after-scope reported by Clang address sanitizer...
abv [Fri, 4 Oct 2019 18:14:17 +0000 (21:14 +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

4 years agoUpdate version of OCCT up to 7.4.1
abv [Sat, 19 Oct 2019 09:30:20 +0000 (12:30 +0300)]
Update version of OCCT up to 7.4.1

4 years agoIncrement OCCT version up to 7.4.0 CR0_JT_customer_test IR-2019-10-04 IR-2019-10-11 IR-2019-10-18 OCCT-740 V7_4_0
bugmaster [Thu, 26 Sep 2019 14:20:26 +0000 (17:20 +0300)]
Increment OCCT version up to 7.4.0

4 years ago0031006: Draw Harness - locate_data_file fails on path containing spaces
kgv [Thu, 26 Sep 2019 19:53:46 +0000 (22:53 +0300)]
0031006: Draw Harness - locate_data_file fails on path containing spaces

4 years agoUpdate of environment files
bugmaster [Thu, 26 Sep 2019 16:30:41 +0000 (19:30 +0300)]
Update of environment files

4 years ago0031002: Documentation - update Overview for 7.4.0
kgv [Thu, 26 Sep 2019 10:44:03 +0000 (13:44 +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.

4 years ago0031001: Documentation - modeling_algos.md can not be generated
apn [Wed, 25 Sep 2019 16:30:01 +0000 (19:30 +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

4 years ago0030994: Test cases of group sat/read_parallel_1/_2 are crashed with exception
emv [Wed, 25 Sep 2019 14:24:42 +0000 (17:24 +0300)]
0030994: Test cases of group sat/read_parallel_1/_2 are crashed with exception

Revert changes by #30518

4 years ago0025044: BRepMesh tweaks - treatments for degenerated and tiny faces
drazmyslovich [Thu, 15 Aug 2019 15:13:43 +0000 (18:13 +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.

4 years ago0030997: Foundation Classes - name correction of dump macros
nds [Wed, 25 Sep 2019 06:12:41 +0000 (09:12 +0300)]
0030997: Foundation Classes - name correction of dump macros

4 years ago0030886: Documentation - provide information about some changes in upgrade 7.4.0
nds [Fri, 20 Sep 2019 14:59:59 +0000 (17:59 +0300)]
0030886: Documentation - provide information about some changes in upgrade 7.4.0

Modifications added to upgrade guide:
- Font_FontAspect enum digits have different values (0030439),
- Graphic3d_PolygonOffset default value change (0030716),
- AddZLayer inserts layer before Graphic3d_ZLayerId_Top, the previous implementation inserted it above all layers(0030668).

4 years ago0025588: BRepMesh_ShapeTool::FindUV check for 2d points to be the same is inconsisten...
oan [Fri, 30 Aug 2019 15:10:05 +0000 (18:10 +0300)]
0025588: BRepMesh_ShapeTool::FindUV check for 2d points to be the same is inconsistent with ShapeAnalysis_Wire::CheckLacking

4 years ago0030720: Coding - fix HashCode() function problems that are not resolved with 30550
tiv [Tue, 24 Sep 2019 13:42:21 +0000 (16:42 +0300)]
0030720: Coding - fix HashCode() function problems that are not resolved with 30550

Undefined behavior caused by left shift operations in TopLoc_Location::HashCode() function is fixed.
HashCode() function overload for Standard_Size type is made available only if Standard_Size and "unsigned int" are different types (it is usually true for 64-bit platforms). The overload for "unsigned int" is made simple non-templated function (so it behaves the same on 32-bit and 64-bit platforms).
HashCode() function overload for Standard_Utf32Char type is made available only if Standard_Utf32Char and "unsigned int" are different types (it is needed for some old compilers).

4 years ago0030990: Foundation Classes - unexpected change in numerical results on bsplines...
abv [Mon, 23 Sep 2019 03:34:09 +0000 (06:34 +0300)]
0030990: Foundation Classes - unexpected change in numerical results on bsplines after 0029769

Added DRAW command and test case for detection of inconsistent update of B-Spline surface cache

4 years ago0030966: Configuration, genproj.tcl - look for an optional libraries e57 and xerces
kgv [Mon, 16 Sep 2019 09:11:30 +0000 (12:11 +0300)]
0030966: Configuration, genproj.tcl - look for an optional libraries e57 and xerces

Added missing HAVE_RAPIDJSON to env.sh.

genconf.tcl has been extended with new option HAVE_E57
which enables looking for E57 and xerces libraries.
Added new libraries CSF_E57 and CSF_xerces to genproj.tcl.

4 years ago0030991: Draw Harness - ViewerTest::ParseColor() defines out-of-range alpha component
kgv [Sat, 21 Sep 2019 14:10:23 +0000 (17:10 +0300)]
0030991: Draw Harness - ViewerTest::ParseColor() defines out-of-range alpha component

ViewerTest::ParseColor() - fixed alpha component defined as 255 for RGB-only input.
Quantity_Color::ColorToHex() now rounds-up float values to closest integer.
Quantity_ColorRGBA::ColorToHex() - added method formatting color into hex with alpha component consistent to Quantity_Color::ColorToHex() for RGB.

vdrawtext command now uses ViewerTest::ParseColor() for parsing color argument, so that it accepts hex.
vreadpixel command now has been extended with -hex argument for printing color in hex format.

Commands XSetColor, XGetColor, XGetShapeColor, XGetAllColors, XAddColor, XRemoveColor, XFindColor,
XUnsetColor, XGetInstanceColor, XSetInstanceColor have been corrected to properly report syntax input errors
and to accept color names and hex (by reusing ViewerTest::ParseColor()).

4 years ago0029705: Foundation Classes - ShapeAnalysis_FreeBounds intention documentation is...
abv [Mon, 23 Sep 2019 07:01:51 +0000 (10:01 +0300)]
0029705: Foundation Classes - ShapeAnalysis_FreeBounds intention documentation is misleading

Description of the purpose of the class is corrected (wording improved)

4 years ago0030907: Visualization Algorithms - failure on attempt to compute iso-lines for an...
ifv [Mon, 16 Sep 2019 07:46:54 +0000 (10:46 +0300)]
0030907: Visualization Algorithms - failure on attempt to compute iso-lines for an offset face made by a face of linear extrusion

The visualization code drawing iso-lines has been protected against getting iso-lines of infinite offset surface. In such case the surface is trimmed by UV bounds of the face.
Test case added

4 years ago0029780: [REGRESSION] Shape Healing - Operator FixShape failed with exception
gka [Mon, 16 Sep 2019 13:59:52 +0000 (16:59 +0300)]
0029780: [REGRESSION] Shape Healing - Operator FixShape failed with exception

Method ShapeFix_Wire::FixNotchedEdges() is corrected to handle the case of closed notched edges: on such edges split parameter may fall to wrong end of the curve due to projection.

4 years ago0030985: Modeling Algorithms - heap-use-after-free reported by Clang address sanitize...
abv [Fri, 20 Sep 2019 04:55:05 +0000 (07:55 +0300)]
0030985: Modeling Algorithms - heap-use-after-free reported by Clang address sanitizer in TopOpeBRepTool_REGUW::InitBlock()

Code is corrected to avoid use of reference to a shape removed from the list after that removal

4 years ago0022886: Bug in Boolean
emv [Fri, 20 Sep 2019 07:05:49 +0000 (10:05 +0300)]
0022886: Bug in Boolean

Updating test case as the problem is not reproduced anymore.

4 years ago0030518: Foundation Classes - NCollection_IndexedDataMap array out of bounds
abv [Mon, 16 Sep 2019 05:01:13 +0000 (08:01 +0300)]
0030518: Foundation Classes - NCollection_IndexedDataMap array out of bounds

Implementation of NCollection_IndexedDataMap::Iterator is revised to avoid unintended access to the element out of array bounds

4 years ago0030981: Foundation Classes - heap-buffer-overflow reported by Clang address sanitize...
abv [Thu, 19 Sep 2019 05:33:31 +0000 (08:33 +0300)]
0030981: Foundation Classes - heap-buffer-overflow reported by Clang address sanitizer in TCollection_ExtendedString

Avoid using memcmp on null-terminated extended (16-bit) strings.
Plain zero is used instead of one-byte null char literal for 16-bit chars.

4 years ago0030980: Data Exchange - global-buffer-overflow reported by Clang address sanitizer...
abv [Thu, 19 Sep 2019 04:07:13 +0000 (07:07 +0300)]
0030980: Data Exchange - global-buffer-overflow reported by Clang address sanitizer in iges_newchar()

Avoid unnecessary copying of characters with zero-length string literal as source

4 years ago0030949: Foundation Classes - Dump improvement for OCCT classes
nds [Thu, 19 Sep 2019 12:13:42 +0000 (15:13 +0300)]
0030949: Foundation Classes - Dump improvement for OCCT classes

1. new file Standard_Dump to prepare and parse Dump in JSON format for OCCT objects
2. some presentations cover the proposed dump functionality.
3. 'bounding', 'vaspects' has '-dumpJson' field to see the DumpJson result
4. Bnd_Box constructor with min/max points is implemented to use Dump of this class in Dump BVH_Box
5. Limitation (some classes of Graphic3d, Prs3d has not full filling for DumpJson)

4 years ago0030180: Data Exchange - VrmlAPI_Writer is expected to return export state
mzernova [Mon, 16 Sep 2019 10:44:02 +0000 (13:44 +0300)]
0030180: Data Exchange - VrmlAPI_Writer is expected to return export state

The VrmlAPI_Writer::WriteDoc() and VrmlAPI_Writer::Write() methods now return the export state.

4 years ago0030978: Visualization - stack-use-after-scope reported by Clang address sanitizer...
abv [Wed, 18 Sep 2019 00:48:35 +0000 (03:48 +0300)]
0030978: Visualization - stack-use-after-scope reported by Clang address sanitizer in OpenGl_Text.cxx

Implementation of auxiliary class in OpenGl_Text.cxx is corrected to avoid storing reference to temporary object.

Off-topic: test parse rules are corrected to recognize situation when test is killed by elapsed time, and report it as such.

4 years ago0029308: Configuration, Inspectors - search of Qt in CMake scripts is separated from...
apn [Fri, 19 Jul 2019 10:52:33 +0000 (13:52 +0300)]
0029308: Configuration, Inspectors - search of Qt in CMake scripts is separated from search of other 3rd-party libs

Qt for inspector and samples is searched together with all 3rd-party products

4 years ago0030967: Configuration, genproj.tcl - generate OCCProducts solution for products
kgv [Mon, 16 Sep 2019 08:08:23 +0000 (11:08 +0300)]
0030967: Configuration, genproj.tcl - generate OCCProducts solution for products

genproj procedure has been extended with new parameters -solution, set to OCCT by default.
Added missing HAVE_RAPIDJSON to env.sh.

Added implicit file path normalization for PRODUCTS_PATH variable,
to avoid genconf.tcl script malfunction on backslashed.

4 years ago0030968: Update the upgrade guide regarding the issue 30778
msv [Mon, 16 Sep 2019 06:51:03 +0000 (09:51 +0300)]
0030968: Update the upgrade guide regarding the issue 30778

4 years ago0030866: Visualization - remove map of AIS_Manipulator from ViewerText
mzernova [Fri, 13 Sep 2019 12:13:29 +0000 (15:13 +0300)]
0030866: Visualization - remove map of AIS_Manipulator from ViewerText

ViewerTest_MapOfAISManipulators and ViewerTest_AISManipulator have been removed from ViewerTest

4 years ago0028144: Modeling Data, GeomAdaptor_Curve - regression in comparison of version OCCT654
abv [Wed, 4 Sep 2019 19:57:24 +0000 (22:57 +0300)]
0028144: Modeling Data, GeomAdaptor_Curve - regression in comparison of version OCCT654

Test case moved to grid modalg_7 and corrected to use BREP instead of STEP, and to use wireframe in 3D viewer

4 years ago0030302: XCAF - Typo in XCAFDoc_GeomTolerance OCCT-740beta2 V7_4_0_beta
gka [Thu, 12 Sep 2019 12:21:19 +0000 (15:21 +0300)]
0030302: XCAF - Typo in XCAFDoc_GeomTolerance

Typo in the XCAFDoc_GeomTolerance.cxx where Loc is used instead of aPnt was corrected.

4 years ago0030113: Data Exchange - STL file in text format with "Facet" keywords can't be imported
gka [Thu, 12 Sep 2019 13:30:09 +0000 (16:30 +0300)]
0030113: Data Exchange - STL file in text format with "Facet" keywords can't be imported

Case-sensitive method strncmp used in the REStl_Reader cosidered register of letter was replaced on the method _strnicmp for Windows and strncasecmp for Linux and MacOs
Test script for case 0030113

4 years ago0030831: ShapeFix algorithm (creation of seam edge) takes too long time with thin...
agv [Wed, 3 Jul 2019 17:04:16 +0000 (20:04 +0300)]
0030831: ShapeFix algorithm (creation of seam edge) takes too long time with thin faces

In class ShapeFix_ComposeShell the U- and V-closedness of input face is taken immediately avoiding the error when the face is small in any of these dimensions.
Test case for bug 0030831

4 years ago0030948: Configuration, CMake - problem building with CMake 3.15.2
abv [Fri, 6 Sep 2019 05:52:03 +0000 (08:52 +0300)]
0030948: Configuration, CMake - problem building with CMake 3.15.2

Minor corrections in CMake procedures and include statements

4 years ago0030946: Visualization - Image_AlienPixMap ignores 1-bit pixelformat when using FreeImage
mzernova [Tue, 10 Sep 2019 14:10:25 +0000 (17:10 +0300)]
0030946: Visualization - Image_AlienPixMap ignores 1-bit pixelformat when using FreeImage

Convert 1-bit image to 8-bit one during its loading because only greyscale images are supported by visualization

4 years ago0030775: Foundation Classes - Preserve application-defined top-level exception filter
kgv [Mon, 17 Jun 2019 15:42:36 +0000 (18:42 +0300)]
0030775: Foundation Classes - Preserve application-defined top-level exception filter

New overload for method OSD::SetSignal() is added accepting argument specifying how to set or unset handlers.
New enum OSD_SignalMode describes different modes of signal handlers setting used in extended version of OSD::SetSignal().
Method OSD::SignalMode() returns mode set by the last call to SetSignal().
Method OSD::IsFloatingSignalSet() is changed to return value based on actual floating point exception flags (rather than on variable set by previous call to SetSignal()).

Added new method OSD::SetThreadLocalSignal() intended to setup thread-specific handlers (e.g. _set_se_translator() on Windows) and FPE settings.
OSD_ThreadPool and Media_PlayerContext now use new method instead of OSD::SetSignal(), to avoid overriding global handlers.

dsetsignal syntax has been extended to support choice of signal handling mode.

DRAW command OCC30775 is added allowing to test signal handling in multithreaded process.

4 years ago0022777: Visualization - Unsafe way to get attribute values from MeshVS_Drawer
mzernova [Fri, 6 Sep 2019 10:56:40 +0000 (13:56 +0300)]
0022777: Visualization - Unsafe way to get attribute values from MeshVS_Drawer

Set default values for local variables used for storing values that are obtained by MeshVS_Drawer::Get****() methods

4 years ago0030963: Visualization, TKOpenGl - texture unit error during FFP global texture's...
iko [Thu, 12 Sep 2019 13:07:30 +0000 (16:07 +0300)]
0030963: Visualization, TKOpenGl - texture unit error during FFP global texture's parameters processing

The texture units used in FFP texture functions are correct now.

4 years ago0030959: OSD_Parallel_TBB: number of execution threads is strictly limited by the...
oan [Wed, 11 Sep 2019 08:04:03 +0000 (11:04 +0300)]
0030959: OSD_Parallel_TBB: number of execution threads is strictly limited by the root scope

Do not limit number of available threads by number of items processed within the root scope due to possibility of spawning of an additional threads within the subscopes.

4 years ago0030957: Data Exchange - Assembly item Id should not start with '/' symbol
tma [Mon, 9 Sep 2019 11:36:22 +0000 (14:36 +0300)]
0030957: Data Exchange - Assembly item Id should not start with '/' symbol

Fix test case: added parsing of the output of the dump note command

4 years ago0023380: BRepOffsetAPI_MakeFilling fails and leaves boundary faces with high tolerance
jgv [Thu, 5 Sep 2019 12:31:15 +0000 (15:31 +0300)]
0023380: BRepOffsetAPI_MakeFilling fails and leaves boundary faces with high tolerance

Avoid exception: use BRep_Builder for building wire instead of using BRepLib_MakeWire.

4 years ago0029858: Modeling Data - Regression in GeomAPI_ExtremaCurveCurve
aml [Tue, 3 Sep 2019 13:08:54 +0000 (16:08 +0300)]
0029858: Modeling Data - Regression in GeomAPI_ExtremaCurveCurve

Fix Newton's minimum projection algorithm onto boundaries in case of conditional optimization.
Add possibility to detect several optimal points at initialization of the math_GlobOptMin.

4 years agoIncrement OCCT version up to 7.4.0beta
bugmaster [Fri, 6 Sep 2019 16:04:41 +0000 (19:04 +0300)]
Increment OCCT version up to 7.4.0beta

4 years ago0030870: Data Exchange - Add the support for empty draughting models and empty presen...
drazmyslovich [Wed, 7 Aug 2019 08:04:53 +0000 (11:04 +0300)]
0030870: Data Exchange - Add the support for empty draughting models and empty presentation layer assignments for step import

Protections to avoid exception in the methods  RWStepVisual_RWDraughtingModel::ReadStep and RWStepVisual_RWPresentationLayerAssignment::ReadStep for case when assigned items are absent were added

4 years ago0029979: Data Exchange - Crash by reading STEP file
abv [Tue, 9 Jul 2019 11:47:21 +0000 (14:47 +0300)]
0029979: Data Exchange - Crash by reading STEP file

Added work-around against specific problem of ORIENTED_EDGE referring to another ORIENTED_EDGE instead of EDGE_CURVE.
Added handling of edges with null EDGE_CURVE, to allow passing the translation further instead of exception.

Off-topic: text of warning message is corrected in genproj

Added test bugs step bug29979

4 years ago0030880: Modeling Algorithms - Bug in BRepExtrema_ExtCF
emv [Thu, 22 Aug 2019 10:54:53 +0000 (13:54 +0300)]
0030880: Modeling Algorithms - Bug in BRepExtrema_ExtCF

Use the BRepTopAdaptor_FClass2d instead of BRepClass_FaceClassifier in BRepExtrema_ExtCF for classification of the found intersection points.

4 years ago0030704: Modeling Data, Bnd_OBB - Oriented bounding box gives a wrong result if a...
vro [Thu, 5 Sep 2019 08:23:30 +0000 (11:23 +0300)]
0030704: Modeling Data, Bnd_OBB - Oriented bounding box gives a wrong result if a box is added to a void box

Added protection on a void box to methods Bnd_OBB::Add() to escape taking into account "heap trash" coordinates of a void box.

4 years ago0030876: Data Exchange - StepToTopoDS edge translation should be resistant to malform...
drazmyslovich [Wed, 7 Aug 2019 12:49:59 +0000 (15:49 +0300)]
0030876: Data Exchange - StepToTopoDS edge translation should be resistant to malformed parameter values

Corrected misprint in the method CheckPCurves of the class StepToTopoDS_TranslateEdgeLoop for case when higher bound of the range of pcurve on the edge greater then last parameter of the pcurve.
Added check on the not periodic flag for pcurve when range pcurve on the edge is adjusted to parameters pcurve.

4 years ago0029269: Improvement for thread safety of the STEP translator - cleanup
gka [Wed, 2 Aug 2017 08:36:05 +0000 (11:36 +0300)]
0029269: Improvement for thread safety of the STEP translator - cleanup

Removal of unused stuff and some protections implemented within #29269

4 years ago0030778: [Regression to 7.3.0] Extrema raises exception StdFail_InfiniteSolutions
msv [Thu, 5 Sep 2019 15:09:06 +0000 (18:09 +0300)]
0030778: [Regression to 7.3.0] Extrema raises exception StdFail_InfiniteSolutions

The exception StdFail_InfiniteSolutions has been suppressed in all Points() methods.

4 years ago0030196: [REGRESSION] Modeling Algorithms - Crash in BRepBuilderAPI_GTransform
ifv [Tue, 3 Sep 2019 14:22:35 +0000 (17:22 +0300)]
0030196: [REGRESSION] Modeling Algorithms - Crash in BRepBuilderAPI_GTransform

Test case is added

4 years ago0030942: Draw Harness, ViewerTest - command vdefaults should abort script on unknown...
kgv [Thu, 5 Sep 2019 03:57:33 +0000 (06:57 +0300)]
0030942: Draw Harness, ViewerTest - command vdefaults should abort script on unknown argument

4 years ago0027534: [Regression to 6.9.1]: Infinite loop in Curve on Surface projection algorithm
aml [Tue, 3 Sep 2019 12:36:07 +0000 (15:36 +0300)]
0027534: [Regression to 6.9.1]: Infinite loop in Curve on Surface projection algorithm

Add test case.

4 years ago0030846: Foundation Classes - StorageInfo violates the C++ One Definition Rule
kgv [Wed, 4 Sep 2019 15:42:42 +0000 (18:42 +0300)]
0030846: Foundation Classes - StorageInfo violates the C++ One Definition Rule

Local definitions have been put into anonymouse namespace within files
OSD_MAllocHook.cxx and NCollection_BaseAllocator.cxx.

4 years ago0029717: Shape Healing - ShapeFix_Face::FixSmallAreaWire delivers a face with wrong...
drazmyslovich [Mon, 23 Apr 2018 14:38:32 +0000 (17:38 +0300)]
0029717: Shape Healing - ShapeFix_Face::FixSmallAreaWire delivers a face with wrong-oriented wires + 1 small crash-fix

- Fix FixSmallAreaWire for the reversed faces.

- Add nullptr check for FixOrient...

- Test bugs heal bug25923 is corrected to avoid relying on wrong orientation of face after fixing small wire

4 years ago0030721: Visualization - Arrows in dimensions are drawn behind some other lines after...
kgv [Wed, 4 Sep 2019 14:24:13 +0000 (17:24 +0300)]
0030721: Visualization - Arrows in dimensions are drawn behind some other lines after applying 30716

AIS_Dimension::DrawArrow() now disables polygon offsets for drawing 2D arrow,
so that it is expected to be drawn at the same depth as dimension line.

4 years agoTest for 0023979: Performance problem of STEP export for large files
abv [Wed, 4 Sep 2019 15:28:49 +0000 (18:28 +0300)]
Test for 0023979: Performance problem of STEP export for large files

4 years ago0030728: Visualization - using one implementation of highlight/unhighlight in context
nds [Wed, 4 Sep 2019 07:00:42 +0000 (10:00 +0300)]
0030728: Visualization - using one implementation of highlight/unhighlight in context

4 years ago0029516: Visualization - eliminate redundant property Graphic3d_MaterialAspect::Refle...
kgv [Fri, 30 Aug 2019 18:52:12 +0000 (21:52 +0300)]
0029516: Visualization - eliminate redundant property Graphic3d_MaterialAspect::ReflectionMode()

Decomposition of Ambient, Diffuse, Specular and Emissive properties has been eliminated within *Graphic3d_MaterialAspect* definition,
so that following methods of *Graphic3d_MaterialAspect* class have been removed:
SetReflectionMode(), SetReflectionModeOn(), Ambient(), Diffuse(), Emissive(), Specular(), SetAmbient(), SetDiffuse(), SetSpecular(), SetEmissive().

Graphic3d_NOM_NEON_GNC non-physical material definition has been corrected
and define WHITE emission color coefficient instead of YELLOW.

Added method Graphic3d_ClipPlane::SetCappingColor() for more straight-forward modification of Capping color in case of non-physical material.
Prs3d_ShadingAspect::Color() has been fixed to return InteriorColor instead of material color coefficient in case of non-physical material.

4 years ago0030938: Configuration, genproj - Support building with VS 2019
abv [Wed, 4 Sep 2019 06:35:15 +0000 (09:35 +0300)]
0030938: Configuration, genproj - Support building with VS 2019

Commands genproj and genconf are updated to support generation of projects for VS 2019, toolset v142

4 years ago0030931: Visualization, TKOpenGl - do not render into GL_FRONT within "GDI Generic...
kgv [Sun, 1 Sep 2019 10:19:40 +0000 (13:19 +0300)]
0030931: Visualization, TKOpenGl - do not render into GL_FRONT within "GDI Generic" renderer

OpenGl_Workspace now disables at initialization time
OpenGl_View::SetImmediateModeDrawToFront() property in case of "GDI Generic" OpenGL implementation.

OpenGl_View::redrawImmediate() - fixed no buffer swap in case of
myTransientDrawToFront without offscreen FBO.