occt.git
4 years ago0031454: Visualization - perceptually uniform color scale
abv [Thu, 19 Mar 2020 07:03:40 +0000 (10:03 +0300)]
0031454: Visualization - perceptually uniform color scale

Support of CIE Lab and Lch color spaces is introduced in Quantity_Color:
- Enumeration Quantity_TypeOfColor is extended by new values representing CIE Lab and Lch color spaces (with D65 2 deg illuminant).
- Conversion of RGB color to and from these color spaces is implemented in Quantity_Color class (within existing API).
- Color difference calculation using CIE Delta E 200 formula is implemented in method DeltaE2000().

New methods MakeUniformColors() and SetUniformColors() are added in class AIS_ColorScale, generating and setting color scale based on colors of the same lightness in CIE Lch color model.

DRAW commands vcolorconvert and vcolordiff are added to perform conversions and compute difference, respectively.
A new option -uniform is added in DRAW command vcolorscale, to set uniform color scale.

Added test grid v3d colors (color conversions and difference), test bugs vis bug31454 (uniform color scale)

4 years ago0029803: STEP Import: Units (inch) not applied to entity possessing GEOMETRIC_REPRESE...
gka [Mon, 17 Feb 2020 17:24:59 +0000 (20:24 +0300)]
0029803: STEP Import: Units (inch) not applied to entity possessing GEOMETRIC_REPRESENTATION_CONTEXT

Translation of the entities AXIS2_PLACEMENT_3D including in the entity CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP was added.
Entity  AXIS2_PLACEMENT_3D is translated to the planar face with axis equal to AXIS2_PLACEMENT_3D.
New parameter "read.step.constructivegeom.relationship" is added to enable this translation (by default it is OFF).

Added test bugs step bug29803

4 years ago0031460: Modeling Algorithms - Regression: Revolution not done.
ifv [Tue, 24 Mar 2020 07:23:46 +0000 (10:23 +0300)]
0031460: Modeling Algorithms - Regression: Revolution not done.

BRepPrimAPI_MakeRevol.cxx: check of intersection of edge with rotation axis is improved.
Test case added

4 years ago0028880: Modeling Algorithms - add missing BRepFeat_SplitShape::Right() getter
antonavt [Mon, 2 Mar 2020 09:16:14 +0000 (12:16 +0300)]
0028880: Modeling Algorithms - add missing BRepFeat_SplitShape::Right() getter

- Added Right() method to BRepFeat_SplitShape;
- Added an option in command buc60854, which allows to select Left() or Right() method;
- Modified method BUC60854 in QABugs_14.cxx;
- Added new option to the help of command buc60854;
- Modified test case buc60854. Now its state is "OK";
- Added check Right() in buc60854 test case.

4 years ago0031455: Modeling Algorithms - useless pointer casts in BRepAlgoAPI classes
abv [Fri, 20 Mar 2020 20:41:52 +0000 (23:41 +0300)]
0031455: Modeling Algorithms - useless pointer casts in BRepAlgoAPI classes

Useless casts are removed.

Off-topic: corrected description of constructor of TCollection_HAsciiString class from TCollection_HExtendedString for the case when input string contains non-Ascii character.

4 years ago0031301: Data Exchange - Export to STEP corrupts the shape IR-2020-03-20
gka [Thu, 27 Feb 2020 12:26:42 +0000 (15:26 +0300)]
0031301: Data Exchange - Export to STEP corrupts the shape

For small edges fully covered by tolerances of vertices BSpline periodic curves are converted to not periodic BSpline curves by cutting segment before writing.
In the class TopoDSToStep_MakeStepEdge permute of edge vertices for closed curves was added for the case when the range obtained from the vertex projection contradicts the edge range in order to avoid computation of the invalid edge range after reading.

Second test script for bug 0031301

4 years ago0031442: Samples - remove unsupported sample mfc/occtdemo
kgv [Thu, 19 Mar 2020 06:47:09 +0000 (09:47 +0300)]
0031442: Samples - remove unsupported sample mfc/occtdemo

4 years ago0031445: Advanced wrappers, C# wrapper - provide device info in About dialog of WPF...
kgv [Thu, 19 Mar 2020 14:14:48 +0000 (17:14 +0300)]
0031445: Advanced wrappers, C# wrapper - provide device info in About dialog of WPF sample

D3DHost_View::DiagnosticInformation() now appends D3D device information to the map.

4 years ago0031404: Modeling Algorithms - BOP Fuse produces a self-interfering or a good shape...
ifv [Tue, 17 Mar 2020 08:45:30 +0000 (11:45 +0300)]
0031404: Modeling Algorithms - BOP Fuse produces a self-interfering or a good shape depending on the order of arguments

Approx_ComputeCLine.gxx : number of possible cuttings is increased

tests/bugs/modalg_7/bug31404 : test case added

4 years ago0030052: Data Exchange - STEP import missing surfaces IR-2020-03-19
gka [Wed, 26 Feb 2020 13:35:58 +0000 (16:35 +0300)]
0030052: Data Exchange - STEP import missing surfaces

Changes made for #31233 are reverted.

Correction in the ShapeFix_ComposeShell:
 Modification of the method SplitByLine in order to find all points of the intersection for case when initial curve shifts in the positive or negative direction
 to avoid splitting edge when split point lies in the limits of the tolerance of the vertex.
 to correct shift of the pcurves for case when initial shift is more than 1 in the method ShapeFix_ComposeShell::SplitByLine

In the method ShapeFix_Face::FixMissingSeam added removing small edges having length less than working precision and removing wires having area less than working precision

Modified test cases; added test for related issue: bugs step bug31301

4 years ago0031439: Visualization - Access to the active axis of AIS Manipulator
mgn [Wed, 18 Mar 2020 09:30:44 +0000 (12:30 +0300)]
0031439: Visualization - Access to the active axis of AIS Manipulator

A new method that returns the active axis of the manipulator has been added.

4 years ago0031430: Offset surfaces on C1 surfaces (with multiplicity equal to degree) may still...
Roman Lygin [Sat, 14 Mar 2020 10:49:17 +0000 (13:49 +0300)]
0031430: Offset surfaces on C1 surfaces (with multiplicity equal to degree) may still throw exception

In constructor of Geom_RectangularTrimmedSurface, skip check if an offset surface has insufficient continuity. The reason is that this surface has already passed the check once created. So, here we must not apply more strict check than that first time.

4 years ago0031424: Visualization - stop using Prs3d_Drawer::HLRAngle() parameter
kgv [Thu, 12 Mar 2020 21:35:06 +0000 (00:35 +0300)]
0031424: Visualization - stop using Prs3d_Drawer::HLRAngle() parameter

Prs3d_Drawer, AIS_Shape, AIS_InteractiveContext - removed properties HLRDeviationCoefficient() and HLRAngle().
Prs3d_Drawer::HLRAngle() is kept as alias to Prs3d_Drawer::DeviationAngle() with deprecated flag.
Prs3d_Drawer::DeviationAngle() default value is changed from 12 to 20 degrees
to match Prs3d_Drawer::HLRAngle() which has been previously used in majority of cases.
Removed unused property HLRBRep_PolyAlgo::Angle().

4 years ago0031431: Visualization, PrsMgr_PresentableObject - simplify HLR computing interface
kgv [Sat, 14 Mar 2020 17:34:46 +0000 (20:34 +0300)]
0031431: Visualization, PrsMgr_PresentableObject - simplify HLR computing interface

Multiple PrsMgr_PresentableObject::Compute() methods have been replaced by single one
PrsMgr_PresentableObject::computeHLR().
Dummy implementations of previously declared methods have been removed
from AIS classes not implementng HLR presentation.
Class Prs3d_Projector has been removed and Graphic3d_Camera is now passed directly,
so that redundant dependency from HLRAlgo_Projector in Prs3d interfaces has been eliminated.
StdPrs_HLRShape and StdPrs_HLRPolyShape now implement common interface StdPrs_HLRShapeI.

4 years ago0031425: Visualization - free Edge has selection sensitivity inconsistent to presentation IR-2020-03-13
kgv [Wed, 11 Mar 2020 14:06:49 +0000 (17:06 +0300)]
0031425: Visualization - free Edge has selection sensitivity inconsistent to presentation

BRepTools::Triangulation() has been extended with a new parameter for checking Poly_Polygon3D presense within free Edges.
StdPrs_WFShape::Add() now performs auto-triangulation in the same way as StdPrs_ShadedShape::Add().
StdSelect_BRepSelectionTool::GetEdgeSensitive() now creates Select3D_SensitiveSegment instead of Select3D_SensitiveCurve for tessellated segment.
Select3D_SensitiveSegment default sensitivity factor has been changed to 3 pixels to match Select3D_SensitiveCurve.

Test case bug23625_1, added workaround for out-of-range crash in HLRBRep_PolyAlgo on re-triangulated shape.

4 years ago0031419: Visualization, TKOpenGl - per-object Graphic3d_TOSM_FACET is ignored within...
kgv [Tue, 10 Mar 2020 18:56:59 +0000 (21:56 +0300)]
0031419: Visualization, TKOpenGl - per-object Graphic3d_TOSM_FACET is ignored within obsolete FFP

OpenGl_ShaderManager::PushState() now sets GL_SHADE_MODEL within FFP.
OpenGl_Context::SetShadeModel(), added property holding cached GL_SHADE_MODEL state.

4 years ago0031303: Different calculation of offset direction in Adaptor2d_OffsetCurve and Geom2...
ifv [Tue, 25 Feb 2020 08:27:28 +0000 (11:27 +0300)]
0031303: Different calculation of offset direction in Adaptor2d_OffsetCurve and Geom2d_OffsetCurve

Calculations in Adaptor2d_OffsetCurve are unified with similar calculations in Geom2d_OffsetCurve using   methods extracted from Geom2dEvaluator_OffsetCurve to Geom2dEvaluator.cxx

BRepFill_OffsetWire.cxx, Geom2dGcc_Circ2d2TanRadGeo.cxx, Geom2dGcc_Circ2dTanOnRadGeo.cxx, MAT2d_Circuit.cxx are modified to satisfy changing offset direction.

4 years ago0031407: [Regression to 7.3.0] Extrema does not process parallel circles correctly IR-2020-03-06
azv [Thu, 5 Mar 2020 08:07:37 +0000 (11:07 +0300)]
0031407: [Regression to 7.3.0] Extrema does not process parallel circles correctly

Use correct ranges of circles when processing the concentric case. Repeat the range comparison 3 times shifting each time for a half-period to process the extrema between boundary points of arcs.

4 years ago0031405: Advanced wrappers, C# wrapper - dark colors in WPF sample
kgv [Wed, 4 Mar 2020 14:32:44 +0000 (17:32 +0300)]
0031405: Advanced wrappers, C# wrapper - dark colors in WPF sample

D3DHost_FrameBuffer::IsSRGBReady() - added new propery defining if
D3D application handles FBO as sRGB-ready texture or not.

4 years ago0027531: Modeling Algorithms - Make the algorithm Approx_SameParameter more clear...
ifv [Fri, 31 May 2019 13:36:44 +0000 (16:36 +0300)]
0027531: Modeling Algorithms - Make the algorithm Approx_SameParameter more clear and robust

Approx/Approx_SameParameter.cxx,hxx:
Class Approx_SameParameter refactoring. Logic is changed in many places to unify usage, simplify maintenance.
Method Curve2d() is changed to return Geom2d_Curve instead of Geom2d_BSplineCurve. Corresponding message is added to the upgrade guide.
.lxx file is merged into .hxx.
Tangent computation is extracted into special method.
Comparing number of sample points after CheckSameParameter(...) is added to define cases with projection fails.
Undesirable behavior when curves are not same parameterized is fixed.

Geom2dAdaptor/Geom2dAdaptor.cxx: treatment of offset curve is added

Adaptor3d/Adaptor3d_TopolTool.cxx: minor improvement of performance for BSpline surfaces with huge number of knots

Tests were modified according to new behavior of sameparameter algorithm

4 years ago0030386: Modeling Algorithms - Unable to perform Cut operation
emv [Fri, 21 Feb 2020 15:19:03 +0000 (18:19 +0300)]
0030386: Modeling Algorithms - Unable to perform Cut operation

Get rid of requirement for the arguments of Boolean operations of type CUT and COMMON to be one-dimensional shape. For FUSE operation this requirement is kept.

4 years ago0031381: Foundation Classes -wrong evaluations for rational BSpline curves using...
ifv [Thu, 20 Feb 2020 11:42:47 +0000 (14:42 +0300)]
0031381: Foundation Classes -wrong evaluations for rational BSpline curves using Adaptor curves

BSplCLib_Cache.cxx - it is forbidden zeroing derivatives for rational splines when derivative order more than degree

bug31381 - test case added

4 years ago0031400: Application Framework, TPrsStd_AISPresentation - Ocaf selection mechanism... CR0_AFAN740 IR-2020-02-28
vro [Fri, 28 Feb 2020 12:37:44 +0000 (15:37 +0300)]
0031400: Application Framework, TPrsStd_AISPresentation - Ocaf selection mechanism doesn't allow multiple selection

TPrsStd_AISPresentation::ActivateSelectionMode() uses Multiple enumeration for definition of the selection mode instead of GlobalOrLocal.

4 years ago0031394: Visualization, TKOpenGl - define OpenGl_Element::EstimatedDataSize() interface
kgv [Tue, 25 Feb 2020 11:00:31 +0000 (14:00 +0300)]
0031394: Visualization, TKOpenGl - define OpenGl_Element::EstimatedDataSize() interface

OpenGl_FrameStats::updateStructures() now relies on OpenGl_Element inteface
instead of handling OpenGl_PrimitiveArray specifically
for collecting Graphic3d_FrameStatsCounter_EstimatedBytesGeom counter.
OpenGl_PrimitiveArray and OpenGl_Text implement new interface.

4 years ago0031366: Documentation - Doxygen warnings in Standard_Dump.hxx IR-2020-02-22
nds [Tue, 18 Feb 2020 05:53:37 +0000 (08:53 +0300)]
0031366: Documentation - Doxygen warnings in Standard_Dump.hxx

4 years ago0030749: Inspectors - compilation under tcl scripts
nds [Sun, 9 Feb 2020 15:20:13 +0000 (18:20 +0300)]
0030749: Inspectors - compilation under tcl scripts

- 'Search Qt4' is renamed into 'Search Qt'. Configuration uses Qt5 from now. For Qt4 use CMake configuration.
- 'Build Inspector' check box is added. It causes 'tools' toolkits compilation. Activates automatically 'Search Qt' control.
- Many Tcl procedures are extended with additional parameter to giving a directory of processed toolkits. The default directory is 'src', inspector directory is 'tools'. This way is similar Inspector compilation implemented in Cmake build procedure.
- Dependency libraries in DEBUG are stored in __TKDEP_DEBUG__. Qt requires it as names of debug and release libraries are different.

4 years ago0030101: Application Framework - A mistake reading a RealArray attribute with too...
vro [Mon, 14 Oct 2019 07:29:54 +0000 (10:29 +0300)]
0030101: Application Framework - A mistake reading a RealArray attribute with too small value

A case of reading of a very small value was skipped, for example: 2.1219957909652723e-314.
Fixed in XmlMDataStd_RealArrayDriver.cxx and XmlMDataStd_RealListDriver.cxx

// A test file bug29452.xml is extended to check this skipped case.

4 years ago0031315: Visualization - marker texture is lost after multi-textured object
kgv [Sun, 16 Feb 2020 12:04:17 +0000 (15:04 +0300)]
0031315: Visualization - marker texture is lost after multi-textured object

OpenGl_Context::BindTextures() now iterates over pair of texture sets
considering inconsistent texture unit ranges.

4 years ago0031206: Foundation Classes, Message_PrinterSystemLog - log messages to Browser conso...
kgv [Fri, 14 Feb 2020 18:27:58 +0000 (21:27 +0300)]
0031206: Foundation Classes, Message_PrinterSystemLog - log messages to Browser console within Emscripten

Message_PrinterOStream::SetConsoleTextColor() skips color tags in case of Emscripten.
Message_PrinterSystemLog now implements log via emscripten_log().

4 years ago0031375: Visualization, TKOpenGl - suppress warning on WebGL 1.0
kgv [Mon, 17 Feb 2020 10:59:58 +0000 (13:59 +0300)]
0031375: Visualization, TKOpenGl - suppress warning on WebGL 1.0

Check for WebGL version in advance.

4 years ago0031372: Visualization, TKOpenGl - failed to create texture on OpenGL ES 2.0 due...
kgv [Fri, 14 Feb 2020 16:29:51 +0000 (19:29 +0300)]
0031372: Visualization, TKOpenGl - failed to create texture on OpenGL ES 2.0 due to unknown GL_TEXTURE_BASE_LEVEL

OpenGl_Sampler::applySamplerParams() has been corrected to check for OpenGL ES 3.0
when applying GL_TEXTURE_BASE_LEVEL/GL_TEXTURE_MAX_LEVEL parameters.

4 years ago0031014: Inspectors - variables for Qt in CMake IR-2020-02-14
nds [Mon, 10 Feb 2020 14:00:39 +0000 (17:00 +0300)]
0031014: Inspectors - variables for Qt in CMake

It restores path to Qt binaries in 3RDPARTY_DLL_DIRS for correct start TInspectorEXE under VStudio.

4 years ago0031336: Modeling data - extend BRepPrimAPI_MakeBox with planar shape creation
sshutina [Mon, 10 Feb 2020 13:32:56 +0000 (16:32 +0300)]
0031336: Modeling data - extend BRepPrimAPI_MakeBox with planar shape creation

-Create a new package BRepPreviewAPI, inherited from BRepPrimAPI to create both, valid and degenerative shapes
-Create a new class BRepPreviewAPI_MakeBox for working with a box
    Preview can be vertex, edge, rectangle or box
-BRepPrim_GWedge: in the case of non-valid data, the exception does not happen in the constructor, but at the moment of access to the shape
-BRepPrimAPI_MakeBox: myWedge is now not private, but protected, because used in  BRepPreviewAPI_MakeBox which inherits from BRepPrimAPI_MakeBox
-Add tests for checking of a creation a preview in tests/geometry/preview (vertex, edge, rectangle, box)
-Update a command "box": add new parameters

4 years ago0030268: Inspectors - improvements in VInspector plugin
nds [Fri, 31 Jan 2020 10:12:45 +0000 (13:12 +0300)]
0030268: Inspectors - improvements in VInspector plugin

- Convert package creation. It is used to prepare some auxiliary presentations/methods to prepare variables for inspector based on occt classes.
- ViewControl package improvement:
  Classes for property view, table, table model are implemented to visualize view of properties.
  This view is filled by selection in tree if the selected object has implemented DumpJson functionality.
- TreeModel package improvements:
  Method InitColumn is implemented in TreeModel_TreeModel to fill default columns in base model. The default columns are:
    Name, Visibility, Rows. Additional columns should be added in successors.
  Container of root items is moved into the base class
- View package imrovements:
  Store preferences: display mode, fit all checked state and type of external context
  View_DisplayPreview is added to process preview for selected in tree view objects
  hide actions Clear, Multi, Single by default (as selection in tree view or Visibility state of item define which presentations should be displayed or erased)
- ShapeView plugin improvements:
  Property View content based on DumpJson (columns in tree view for properties are removed),
  Properties for TopoDS_Shape are displayed
  Explode shape action in tree view to see content of shape by selected shape type. Type of displayed shapes is only preview, it is not used in export action.
  Export shape into BREP. The previous implementation about BREP files in some directory and default view is removed.
- VInspector plugin imrovements:
  Property View content based on DumpJson (columns in tree view for properties are removed),
  Properties for AIS_InteractiveContext and AIS_InteractiveObject are displayed
  obsolete classes to provide properties are removed.
- DFBrowser plugin improvements:
  Property View content based on DumpJson is not used yet. But there is the USE_DUMPJSON macro. It's switch off by default.
  If switch ON, it creates a Property View filled with DumpJson. It's a way of DFBrowser moving on this property view.
  Init uses static variable CDF_Session::CurrentSession()->CurrentApplication to fill plugin if application in plugin is not set but OCAF application exists

- OCC_VERSION_HEX variable used for previous OCCT versions support (before 6.9.0 or 7.2.0) is removed

4 years ago0031341: Visualization - Graphic3d_Layer::UpdateCulling() ignores Presentation range
kgv [Fri, 31 Jan 2020 21:50:04 +0000 (00:50 +0300)]
0031341: Visualization - Graphic3d_Layer::UpdateCulling() ignores Presentation range

Graphic3d_Layer::UpdateCulling() now takes into account BVH_Tree::EndPrimitive().
'vstatprofiler structs' now properly prints number of structures in case of no culling.

4 years ago0031364: Foundation Classes - unused enumerations in GeomAbs package
abv [Mon, 10 Feb 2020 07:29:57 +0000 (10:29 +0300)]
0031364: Foundation Classes - unused enumerations in GeomAbs package

Files GeomAbs_CurveForm.hxx, GeomAbs_SurfaceForm.hxx, GeomAbs_UVSense.hxx are removed

4 years ago0031363: Documentation - broken Doxygen documentation of header files in Standard...
abv [Mon, 10 Feb 2020 07:25:15 +0000 (10:25 +0300)]
0031363: Documentation - broken Doxygen documentation of header files in Standard package

Documentation is corrected

4 years ago0031360: Modeling Algorithms - Removing redundant class IR-2020-02-07
anv [Fri, 7 Feb 2020 10:12:31 +0000 (13:12 +0300)]
0031360: Modeling Algorithms - Removing redundant class

math_GaussPoints was removed.

4 years ago0031356: Visualization - out of range within StdPrs_WFShape::AddEdgesOnTriangulation()
kgv [Thu, 6 Feb 2020 17:12:55 +0000 (20:12 +0300)]
0031356: Visualization - out of range within StdPrs_WFShape::AddEdgesOnTriangulation()

Removed unused code causing the issue.

4 years ago0031233: Reading SAT files produces invalid shapes
anv [Tue, 21 Jan 2020 11:47:38 +0000 (14:47 +0300)]
0031233: Reading SAT files produces invalid shapes

Added removal of overlapping "tails" while splitting wires with a seam edge in ShapeFix_ComposeShell::SplitWire.

4 years ago0031333: Data Exchange - RWGltf_TriangulationReader::readBuffer() fails to read inter...
kgv [Thu, 30 Jan 2020 14:10:29 +0000 (17:10 +0300)]
0031333: Data Exchange - RWGltf_TriangulationReader::readBuffer() fails to read interleaved buffer at the end of file

Standard_ReadBuffer has been extended with a flag for reading an interleaved data.
RWGltf_TriangulationReader::readBuffer() uses new flag for reading vertex attributes.

4 years ago0025551: BRepMesh can produce internal nodes outside the face interior based on disto...
oan [Mon, 21 Oct 2019 08:52:01 +0000 (11:52 +0300)]
0025551: BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface

updated test script to see the difference on current version of OCCT

4 years ago0028247: Effect of minSize parameter of BRepMesh_IncrementalMesh seems to be too...
oan [Sat, 19 Oct 2019 13:28:55 +0000 (16:28 +0300)]
0028247: Effect of minSize parameter of BRepMesh_IncrementalMesh seems to be too strong Updated description of MinSize parameter of IMeshTools_Parameters

4 years ago0026382: BRepMesh produces internal nodes outside the face interior
oan [Sat, 19 Oct 2019 22:23:53 +0000 (01:23 +0300)]
0026382: BRepMesh produces internal nodes outside the face interior
updated test script: clean up shape before meshing to see the difference

4 years ago0031313: Foundation Classes - Dump improvement for classes IR-2020-01-31
nds [Tue, 28 Jan 2020 09:03:38 +0000 (12:03 +0300)]
0031313: Foundation Classes - Dump improvement for classes

- Provide DumpJson for geometrical, ocaf and visualization classes;
- Change depth parameter of DumpJson (constant is not obligate here)
- Introduce a new macro for transient objects to be called as the first row in DumpJson: OCCT_DUMP_TRANSIENT_CLASS_BEGIN. We need not put the class name in the macro, using get_type_name of Standard_Transient for it.
- change implementation of OCCT_DUMP_CLASS_BEGIN and OCCT_DUMP_TRANSIENT_CLASS_BEGIN. It is not an sentry more and it does not create a new hierarchy level. It appends a new row into the output stream: "className": <className>
- OCCT_DUMP_* does not require semicolon
- class header is included first in source files of TDataStd, TDocStd, TCAFDoc

4 years ago0031321: C# wrapper - wrap AIS_ViewController
kgv [Tue, 28 Jan 2020 19:51:24 +0000 (22:51 +0300)]
0031321: C# wrapper - wrap AIS_ViewController

Added missing virtual destructor for AIS_ViewController.

4 years ago0031322: Visualization, Select3D_SensitiveEntity - method NbSubElements() should...
nds [Thu, 30 Jan 2020 07:47:55 +0000 (10:47 +0300)]
0031322: Visualization, Select3D_SensitiveEntity - method NbSubElements() should be const

Set constant state for the method NbSubElement to be able to call it from other constant methods (e.g. DumpJson of Select3D_SensitiveEntity).

4 years ago0031332: Data Exchange - RWGltf_CafReader ignores bufferView.byteStride within glTF 2.0
kgv [Wed, 29 Jan 2020 17:48:24 +0000 (20:48 +0300)]
0031332: Data Exchange - RWGltf_CafReader ignores bufferView.byteStride within glTF 2.0

RWGltf_GltfJsonParser::gltfParseBufferView() now reads byteStride parameter within bufferView.

4 years ago0030904: Visualization - OSD_MemInfo provide Update with parameter of computation...
nds [Tue, 28 Jan 2020 12:01:42 +0000 (15:01 +0300)]
0030904: Visualization - OSD_MemInfo provide Update with parameter of computation kind

Added method OSD_MemInfo::SetActive() for disabling specific counter.

4 years ago0031275: Visualization, TKOpenGl - handle normal-map texture with Path-Tracing CR0_TS_740 IR-2020-01-24
iko [Tue, 21 Jan 2020 13:01:03 +0000 (16:01 +0300)]
0031275: Visualization, TKOpenGl - handle normal-map texture with Path-Tracing

Base normal map support has been implemented in path tracing (just geometry normal replacement).
Smooth normal adaptation has been implemeneted in order to avoid black areas artefacts during path tracing.
Tangent normal space calcuation has been moved to separate unified function.
Tangent space orthogonalization algorithm has been changed in order to handle all orientations and combinations of UV coordinates.

4 years ago0031312: Data Exchange - RWGltf_CafReader fails reading texture embedded into base64...
kgv [Wed, 22 Jan 2020 17:18:44 +0000 (20:18 +0300)]
0031312: Data Exchange - RWGltf_CafReader fails reading texture embedded into base64 bufferView

RWGltf_GltfJsonParser::gltfParseTexture() now handles images embedded into bufferView of non-glb file.

4 years ago0031258: Mesh - OCCT 7.4.0 VIS get wrong render data
oan [Tue, 21 Jan 2020 10:21:38 +0000 (13:21 +0300)]
0031258: Mesh - OCCT 7.4.0 VIS get wrong render data

Check intervals for infinite value causing exception in GeomLib::NormEstim

4 years ago0031306: Modeling Algorithms - Incomplete result of Cut operation
emv [Fri, 17 Jan 2020 13:46:20 +0000 (16:46 +0300)]
0031306: Modeling Algorithms - Incomplete result of Cut operation

The problem is fixed by #0029323. Integrating test case only.

4 years ago0031309: Data Exchange - RWObj_Reader fails to read mh03.obj with multi-line syntax
kgv [Mon, 20 Jan 2020 15:09:32 +0000 (18:09 +0300)]
0031309: Data Exchange - RWObj_Reader fails to read mh03.obj with multi-line syntax

Standard_ReadLineBuffer::SetMultilineMode() now accepts a flag to put gap space while joining lines, enabled by default.

4 years ago0031304: Configuration - TKACIS building failure due to duplicated symbol GeomFillFus... IR-2020-01-17
kgv [Fri, 17 Jan 2020 09:12:11 +0000 (12:12 +0300)]
0031304: Configuration - TKACIS building failure due to duplicated symbol GeomFillFusInt()

Added missing "static" to internal methods of GeomFill package.

4 years ago0031302: Visualization, TKOpenGl - wrong tangent space calculation for normal maps
iko [Thu, 16 Jan 2020 12:55:29 +0000 (15:55 +0300)]
0031302: Visualization, TKOpenGl - wrong tangent space calculation for normal maps

The normal after tangent space calculation has been reverted in order to be in right orientation.
The tangent space calculation has been modified in order to handle back faces with inverted normal.

4 years ago0031260: Geom2dGcc_Circ2d2TanRad fails in this case (720)
ifv [Thu, 16 Jan 2020 09:07:33 +0000 (12:07 +0300)]
0031260: Geom2dGcc_Circ2d2TanRad fails in this case (720)

Adaptor2d/Adaptor2d_OffsetCurve.cxx:
Function nbPoints(...) is modified

Test case added

4 years ago0031294: Modeling Algorithms - Regression relatively 7.3.0. Crash in method BRepPrimA...
ifv [Mon, 13 Jan 2020 11:50:03 +0000 (14:50 +0300)]
0031294: Modeling Algorithms - Regression relatively 7.3.0. Crash in method BRepPrimAPI_MakePrism::Generated(...)

BRepSweep_NumLinearRegularSweep.cxx: raising exeption is removed

Test case is added

QABugs_20.cxx - test command is added

4 years ago0031293: Visualization, TKOpenGl - broken capping when PBR shading is ON
iko [Mon, 13 Jan 2020 10:41:39 +0000 (13:41 +0300)]
0031293: Visualization, TKOpenGl - broken capping when PBR shading is ON

Division by 'w' component has been added in texture coordinates calculations in PBR functions.

4 years ago0031295: Foundation Classes, BVH_Tools - incorrect detection of ray-box intersection
osa [Mon, 13 Jan 2020 09:14:59 +0000 (12:14 +0300)]
0031295: Foundation Classes, BVH_Tools - incorrect detection of ray-box intersection

4 years ago0031292: Data Exchange - SIGSEGV on reading STEP file with references to invalid...
msv [Fri, 10 Jan 2020 17:59:51 +0000 (20:59 +0300)]
0031292: Data Exchange - SIGSEGV on reading STEP file with references to invalid entities

Changes:

- in StepData_StepReaderData::ReadEntity, make sure that entity handle is not null before calling IsKind() of it.

- in StepData_StepReaderData::SetEntityNumbers, do not invert the sign of entity number of referenced parameter if the second pass is not required. Otherwise, the number -1 (obviously invalid) becomes 1 (invalid, but not obviously) without further correction of it.

- in StepData_UndefinedEntity::ReadRecord, consider the case when the entity number is positive but refers to non-existing entity. In this case literal value will be used instead of null entity for the problematic parameter.

4 years ago0025287: BRepMesh_IncrementalMesh produces (way) out of tolerance mesh Added test...
oan [Mon, 30 Dec 2019 22:01:06 +0000 (01:01 +0300)]
0025287: BRepMesh_IncrementalMesh produces (way) out of tolerance mesh Added test case

4 years ago0031099: Visualization, TKOpenGl - support Point light source with artistic full...
iko [Tue, 24 Dec 2019 13:05:00 +0000 (16:05 +0300)]
0031099: Visualization, TKOpenGl - support Point light source with artistic full cut-off distance

"Range" parameter of point light sources (positional and spot) concidering in PBR has been added.
Angular attenuation parameter of spot light in PBR has been reimplemented based on existing "concentration" parameter.

4 years ago0031284: Visualization - XCAFDoc_VisMaterialPBR lacks Index of Refraction IR-2019-12-27
kgv [Fri, 27 Dec 2019 11:24:58 +0000 (14:24 +0300)]
0031284: Visualization - XCAFDoc_VisMaterialPBR lacks Index of Refraction

Added missing parameter.

4 years ago0031225: Visualization, TKOpenGl - support cubemap for environment texture within...
mzernova [Fri, 13 Dec 2019 08:55:50 +0000 (11:55 +0300)]
0031225: Visualization, TKOpenGl - support cubemap for environment texture within Ray-Tracing

Ray-Tracing now handles IBL and background cubemaps in similar way as PBR.
Ambient light source is handled by Ray-Tracing in similar way as PBR,
e.g. as coefficient for environment map (IBL) or as constant light source.

Test script generating PBR spheres has been moved to Samples
and now shared by PBR and Path-Tracing tests.

4 years ago0031274: Data Exchange - RWObj_Reader ignores usemtl with empty name
kgv [Wed, 25 Dec 2019 16:36:48 +0000 (19:36 +0300)]
0031274: Data Exchange - RWObj_Reader ignores usemtl with empty name

Fixed out of range access within pushMaterial().

4 years ago0031251: Add a new meshing parameter to enforce face linear deflection
razmyslovich [Tue, 17 Dec 2019 18:17:17 +0000 (21:17 +0300)]
0031251: Add a new meshing parameter to enforce face linear deflection

Parameter has been renamed to ForceFaceDeflection. Added test case.

New parameter -force_face_def has been added to incmesh command.

4 years ago0031242: Scaling with different coefficients along axes produces invalid shape
ifv [Wed, 18 Dec 2019 10:53:11 +0000 (13:53 +0300)]
0031242: Scaling with different coefficients along axes produces invalid shape

GeomConvert_1.cxx:
Creation periodic BSpline surfaces from trimmed periodic surface if trim is boundaries of periodic domain is allowed

BRepTools_NurbsConvertModification.cxx:
Checking domain of 2dCurves if surfaces are periodic is added

Test case tests/bugs/mesh/bug30008_2 is modified according to current behavior

Test case tests/bugs/modalg_7/bug31242 is added

4 years ago0031253: Visualization, TKOpenGl - phong shading GLSL compilation fail on Adreno 308 IR-2019-12-20
kgv [Wed, 18 Dec 2019 21:11:55 +0000 (00:11 +0300)]
0031253: Visualization, TKOpenGl - phong shading GLSL compilation fail on Adreno 308

Removed initialization of global Normal variable outside of main() block.
occLight_IsHeadlight() flag is now packed into occLight_Position().w

4 years ago0030597: Result of BRepOffsetAPI_MakePipeShell doesn't match the given profiles
jgv [Wed, 18 Dec 2019 15:24:16 +0000 (18:24 +0300)]
0030597: Result of BRepOffsetAPI_MakePipeShell doesn't match the given profiles

Modify the local function EdgeToBSpline of BRepFill_NSections to build a BSpline curve of general type for each curve of profile.

4 years ago0030600: Visualization, TKOpenGl - include GLES3/gl3.h instead of GLES2/gl2.h
mzernova [Tue, 10 Dec 2019 11:39:56 +0000 (14:39 +0300)]
0030600: Visualization, TKOpenGl - include GLES3/gl3.h instead of GLES2/gl2.h

Changed GLES2/gl2.h to GLES3/gl3.h.

OpenGl_Window_1.mm has been updated, now it is trying to create kEAGLRenderingAPIOpenGLES3 before trying to create kEAGLRenderingAPIOpenGLES2.

4 years ago0031203: Test harness command "bsection" on the planar faces return only one vertex...
ifv [Thu, 28 Nov 2019 12:22:53 +0000 (15:22 +0300)]
0031203: Test harness command "bsection" on the planar faces return only one vertex instead edge representing intersection line

BRepClass/BRepClass_FaceExplorer.cxx:
Protection against intersection of test ray with almost parallel edges is added.

SWDRAW/SWDRAW_ShapeFix.cxx: add tolerance as parameter in command checkfclass2d

tests/bugs/modalg_7/bug31203:
test case is added

4 years ago0031199: BRepMesh fails on thin faces
oan [Wed, 4 Dec 2019 09:26:10 +0000 (12:26 +0300)]
0031199: BRepMesh fails on thin faces

Use real tolerance of a face to define threshold for tolerance of discrete model instead of empirical values based on discrete model itself

4 years ago0031187: Modeling Algorithms - Regression relatively 7.3.0. Unify same domain algorit...
jgv [Fri, 29 Nov 2019 17:03:14 +0000 (20:03 +0300)]
0031187: Modeling Algorithms - Regression relatively 7.3.0. Unify same domain algorithm produces invalid shape.

Modify the local function ReconstructMissedSeam to build new seam edges correctly.

4 years ago0031120: Memory leak in BRepOffsetAPI_MakeOffset
msv [Fri, 1 Nov 2019 12:05:43 +0000 (15:05 +0300)]
0031120: Memory leak in BRepOffsetAPI_MakeOffset

Add destructor of MAT2d_Mat2d - full removal of edges and bisectors.

4 years ago0031168: JT Import - cannot see properties attached to objects IR-2019-12-14
abk [Fri, 13 Dec 2019 12:32:45 +0000 (15:32 +0300)]
0031168: JT Import - cannot see properties attached to objects

Draw command GetNDStrings was improved to sort the properties by the keys and
skip conversions of the strings to type TCollection_AsciiString.

Certain Draw commands were corrected to use the Draw interpreter instead of "std::cout".

A Tcl procedure was created to compare two multi-line strings.

4 years ago0031231: Samples - the command "donl" in ModelingDemo.tcl should be "donly"
ma haidong [Mon, 9 Dec 2019 17:00:59 +0000 (01:00 +0800)]
0031231: Samples - the command "donl" in ModelingDemo.tcl should be "donly"

Fixed misprint in Tcl sample script.

4 years ago0030945: JT Import, JtProperty_LateLoaded - expose type of Deferred object IR-2019-12-06
kgv [Thu, 5 Dec 2019 13:20:37 +0000 (16:20 +0300)]
0030945: JT Import, JtProperty_LateLoaded - expose type of Deferred object

RWMesh_NodeAttributes has been extended with NamedData property for passing Metadata.

RWMesh_CafReader::addShapeIntoDoc() has been corrected to avoid
adding calling XCAFDoc_ShapeTool::AddSubShape() for sub-shape labels.
Attributes for Products and Instances are now set independently to shape labels.
Sharing of Compounds (previously always duplicated) as sub-Components has been fixed.

TDataStd_NamedData has been extended with interface for deferred data loading.
Setters have been corrected to avoid duplicating lookups within map.

4 years ago0031227: Tests - log number of compared images into report
kgv [Fri, 6 Dec 2019 12:08:34 +0000 (15:08 +0300)]
0031227: Tests - log number of compared images into report

4 years ago0030889: ACIS Import - Incorrect result reading SAT and SAB files
anv [Tue, 5 Nov 2019 14:57:25 +0000 (17:57 +0300)]
0030889: ACIS Import - Incorrect result reading SAT and SAB files

Adapting CR30932 fix for a GeomLib approximator.

4 years ago0031213: Coding Rules, RWStl_Reader - misnamed variable THE_BUFFER
mzernova [Tue, 3 Dec 2019 10:51:02 +0000 (13:51 +0300)]
0031213: Coding Rules, RWStl_Reader - misnamed variable THE_BUFFER

Renamed THE_BUFFER variable.

4 years ago0031202: Shape Healing - FixMissingSeam creates degenerated edge
anv [Thu, 28 Nov 2019 09:25:20 +0000 (12:25 +0300)]
0031202: Shape Healing - FixMissingSeam creates degenerated edge

Adding tolerance to prevent degenerated cuts in cases where all vertex tolerance is covered by distance of the edge curve from vertex point.

4 years ago0031096: Visualization, TKOpenGl - support metallic-roughness texture mapping IR-2019-11-29
iko [Thu, 7 Nov 2019 13:52:53 +0000 (16:52 +0300)]
0031096: Visualization, TKOpenGl - support metallic-roughness texture mapping

OpenGl_ShaderManager - metallic-roughness, emissive, occlusion
and normal texture maps are now supported by PBR.
Emissive, occlusion and normal texture maps are now supported by Phong shading model.
Path-Tracing now handles metallic-roughness and emissive texture maps.

Graphic3d_TextureUnit enumeration has been extended by
new values corresponding to supported texture maps.

OpenGl_TextureSet and OpenGl_ShaderProgram have been extended with
bitmask Graphic3d_TextureSetBits identifying texture slots read from GLSL Program
and slots defined within Texture Set to avoid undefined behavior by binding mock textures.

OpenGl_TextureSet now duplicates texture unit information to handle
textures shared across multiple slots (like Occlusion [R] + Metallic-Roughness [GB]).

OpenGl_Context::BindTextures() has been extended with active GLSL program paramter
to set mock textures to texture units used by program but undefined by texture set.
OpenGl_Workspace::ApplyAspects() has been extended with parameter to avoid bining texture set.

4 years ago0030982: Visualization, OpenGl_View::MinMaxValues() - do not add background quad...
mzernova [Wed, 27 Nov 2019 07:14:30 +0000 (10:14 +0300)]
0030982: Visualization, OpenGl_View::MinMaxValues() - do not add background quad into depth range

Deleted adding background quad into depth range. Background is drawn in 2D coordinates. Fixed problem with using gradient background in tiles.

4 years ago0031148: Modeling Algorithms - Offset adjacent co-planar faces with different offset...
emv [Fri, 11 Oct 2019 04:23:19 +0000 (07:23 +0300)]
0031148: Modeling Algorithms - Offset adjacent co-planar faces with different offset values

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

Adding test cases.

4 years ago0031201: Modeling Algorithms - Result of a section operation is incomplete
emv [Thu, 28 Nov 2019 07:56:55 +0000 (10:56 +0300)]
0031201: Modeling Algorithms - Result of a section operation is incomplete

Fixing misprint - use the boundaries of the cylinder for Plane/Cylinder intersection.
Test cases for the issue.

4 years ago0031186: Foundation Classes - add additional useful methods to BVH_Box.
osa [Fri, 22 Nov 2019 13:02:02 +0000 (16:02 +0300)]
0031186: Foundation Classes - add additional useful methods to BVH_Box.

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

4 years ago0031188: Draw Harness - enable colorized messages output to console by default
kgv [Fri, 22 Nov 2019 21:08:22 +0000 (00:08 +0300)]
0031188: Draw Harness - enable colorized messages output to console by default

Message_PrinterOStream now uses colorized output by default.
DRAWEXE has been corrected to disabled colorized output
when it is called with -f argument to avoid spoiling testgrid HTML logs.

4 years ago0031007: Coding - eliminate warnings issued while compiling with -pedantic flag
kgv [Fri, 22 Nov 2019 14:02:12 +0000 (17:02 +0300)]
0031007: Coding - eliminate warnings issued while compiling with -pedantic flag

Removed duplicating semicolons ;;.
Removed redundant semicolon at namespace closure.

4 years ago0030697: Draw Harness - Draw_Printer should not be set to Message::DefaultMessenger... IR-2019-11-22
mzernova [Mon, 6 May 2019 20:05:13 +0000 (23:05 +0300)]
0030697: Draw Harness - Draw_Printer should not be set to Message::DefaultMessenger() by default

Fixed bugs that occurred when using the default std::cout from Message::DefaultMessenger() instead of Draw_Printer

A dedicated option was added to Draw_ProgressIndicator, for outputting data to the tcl when performing tests

Added -tclOutput parameter to XProgress command

4 years ago0030953: Data Exchange - implement export of mesh data into glTF 2.0 format
kgv [Mon, 18 Nov 2019 23:09:09 +0000 (02:09 +0300)]
0030953: Data Exchange - implement export of mesh data into glTF 2.0 format

Added new class RWGltf_CafWriter for exporting XCAF document into glTF file
as well as Draw Harness command WriteGltf.

Added auxiliary method OSD_Path::FileNameAndExtension() splitting file name into Name and Extension.

4 years ago0031153: Visualization - Non clear highlighting of selected trihedron elements
vsv [Tue, 19 Nov 2019 08:31:46 +0000 (11:31 +0300)]
0031153: Visualization - Non clear highlighting of selected trihedron elements

AIS_Trihedron - removed extra fields holding highlight styles; standard styles are now used instead;
fixed unexpected modification of global aspects;
fixed unhighligting of selected plane within Shaded trihedron.

AIS_InteractiveContext now sets highlight color to highlight aspects, not only base color to drawer itself.

4 years ago0031174: Visualization - support user-provided stipple line patterns
kgv [Mon, 18 Nov 2019 10:42:06 +0000 (13:42 +0300)]
0031174: Visualization - support user-provided stipple line patterns

4 years ago0031178: Configuration, genproj - fix searching for zlib on Linux platform
kgv [Tue, 19 Nov 2019 17:21:00 +0000 (20:21 +0300)]
0031178: Configuration, genproj - fix searching for zlib on Linux platform

zlib library is called libz on Linux.

4 years ago0030964: Data Exchange - use Standard_ReadLineBuffer within OBJ reader
mzernova [Tue, 17 Sep 2019 13:05:05 +0000 (16:05 +0300)]
0030964: Data Exchange - use Standard_ReadLineBuffer within OBJ reader

Standard_ReadLineBuffer now supports a processing of the special multi-line case with \ at the end of the line.

Standard_RedLineBuffer was used to load Stl files

4 years ago0031015: Visualization, TKOpenGl - OpenGl_WorldViewState does not cache inverted...
kgv [Tue, 1 Oct 2019 05:27:57 +0000 (08:27 +0300)]
0031015: Visualization, TKOpenGl - OpenGl_WorldViewState does not cache inverted matrix

Implementation has been fixed to proprely set myInverseNeedUpdate flag.

4 years ago0031175: Visualization - support dumping RED channel as grayscale image
kgv [Mon, 18 Nov 2019 11:00:01 +0000 (14:00 +0300)]
0031175: Visualization - support dumping RED channel as grayscale image

Graphic3d_BufferType has been extended by Graphic3d_BT_Red.

4 years ago0031171: Draw - support Unicode input / output in console on Windows
abv [Sat, 16 Nov 2019 05:59:38 +0000 (08:59 +0300)]
0031171: Draw - support Unicode input / output in console on Windows

System console is configured at DRAW start to use UTF-8 encoding, for cout and cin to deal correctly with Unicode symbols.
Use of std::wcout is avoided as it leads to corrupted output.

Command testgrid is improved to enforce UTF-8 encoding in child DRAW processes to preserve Unicode symbols in captured output.

Test bugs fclasses bug22125 is refactored:
- avoid dependency on external data file
- avoid producing snapshot
- check that Unicode name of the file created by OCCT procedure matches the name interpreted by Tcl functions

4 years ago0031159: Visualization - Font_FontMgr skips sub-faces within .ttc font collections
kgv [Wed, 13 Nov 2019 11:31:48 +0000 (14:31 +0300)]
0031159: Visualization - Font_FontMgr skips sub-faces within .ttc font collections

Font_SystemFont now defines Face Id in addition to file path.
Font_FontMgr::CheckFont() has been extended to return the list of Faces from font collections.

4 years ago0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained...
abv [Tue, 12 Nov 2019 16:10:14 +0000 (19:10 +0300)]
0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC

Implementation of ShapeAnalysis::OuterWire() is revised to avoid infinite cycle if face contains internal vertex.