1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-08 14:17:06 +03:00
Commit Graph

4199 Commits

Author SHA1 Message Date
oan
a589a4fe3c #32471 Mesh - Deflection of the triangulation is not recomputed for planar face
Correction fix for CR32741 to provide binary compatibility with Products 750
2023-01-16 14:59:40 +03:00
oan
73a572f26c #32471 Mesh - Deflection of the triangulation is not recomputed for planar face
Correction fix for CR32741 to provide binary compatibility with Products 750
2023-01-16 14:59:31 +03:00
oan
d44ac07d7b 0028089: Mesh - New algorithm for triangulation of 2d polygons
Added Vsprintf() wrapper for vsprintf() preserving C locale.
2023-01-16 14:59:08 +03:00
oan
27ff478ea4 0030143: Foundation Classes - provide operator[] alias for NCollection_Array1, NCollection_Vector 2023-01-16 14:58:52 +03:00
oan
f5fc2864b5 0031189: Draw Harness, ViewerTest - send messages to Message::DefaultMessenger()
Added short-cuts methods in Message_Messenger for sending message with specified gravity,
and stream buffer class for using stream-like interface for that.
Similar short-cuts to DefaultMessenger() are added in Message package.

ViewerTest has been updated to send messages to Message::DefaultMessenger()
instead of direct output to std::cout/std::cerr.

Off-topic: spelling error (duplicate "and") is corrected in two places

Added test bugs fclasses bug31189
2023-01-16 14:58:40 +03:00
oan
f3dae035ef 0031461: Mesh - Add possibility to force the meshing of the shape
BRepMesh: Add new mesh parameter *AllowQualityDecrease* which affects the criteria used for checking of the consistency of the existing mesh to new meshing parameters.
So if set to true it will force the meshing of the shape if current deflection strongly vary from the new one, no matter in which side.

BRepTools::Clean: Keep triangulation on non-geometric shapes (faces with no surface or edges with no curves).
2023-01-16 14:58:19 +03:00
oan
805ecb0df3 Porting of BRepMesh 7.5.0 2023-01-16 14:58:07 +03:00
oan
6025bf98df 0029935: Foundation Classes - introduce OSD_ThreadPool class defining a thread pool
New class OSD_ThreadPool has been introduced to define a Thread Pool for multi-threading algorithm.
Thread Pool assigns a serial number for each thread allowing Multi-Threading algorithm to allocate thread-local storage variables as an array whose size is the same as the number of threads.

OSD_ThreadPool also redirects exceptions to a thread calling parallel execution and consistently initializes FPE exception handling.

New class Standard_Condition provides a platform-independent  tool similar to Event in WinAPI.

A new auxiliary function Standard_Atomic_CompareAndSwap() has been introduced
for performing atomic compare and swap of integer number.
Standard_Atomic_Increment/Standard_Atomic_Decrement fallback implementation
using ASM code for x86 processors for GCC has been dropped;
instead, it is expected that GCC should be properly configured targeting modern x86 architectures.

OSD_Signal now declares fFltExceptions as thread_local variable accessible through OSD::ToCatchFloatingSignals() property.
Standard_THREADLOCAL macro (wrapping thread_local attribute) has been moved to public header Standard_Macro.hxx.

OSD_Parallel::ForEach() has been extended with new optional parameter theNbItems and uses OSD_ThreadPool::DefaultPool().

# Conflicts:
#	src/BRepMesh/BRepMesh_IncrementalMesh.cxx
#	src/OSD/OSD_signal.cxx
#	src/Standard/Standard_Failure.cxx
#	src/Standard/Standard_Macro.hxx

# Conflicts:
#	src/BRepMesh/BRepMesh_FastDiscret.cxx
#	src/BRepMesh/BRepMesh_IncrementalMesh.cxx
2023-01-16 14:57:54 +03:00
oan
61e2810992 0028931: Eliminate dependency from TBB in OSD_Parallel header
Implementation of methods OSD_Parallel::For() and ForEach() is moved to CXX files to avoid direct dependency of client code that uses OSD_Parallel on TBB headers, and necessity to link with TBB explicitly.
Runtime polymorphism (virtual methods) is used to hide implementation (TBB or threads-based).
2023-01-16 14:57:41 +03:00
oan
df410a6192 0030329: Move BRepMesh_IncAllocator to NCollection package
NCollection_IncAllocator has been extended with optional mutex allocation (disabled by default).
2023-01-16 14:57:25 +03:00
oan
6a2c30cdbf Update BRepMesh component according to OCCT's 7.4.0
Includes #26106 patch
2023-01-16 14:57:12 +03:00
akaftasev
906412a658 0033264: Modeling Algorithms - Result of section operation is incomplete
Taking parts of different commits to make section curve created.
2022-12-21 13:53:21 +03:00
akaftasev
6ded395641 0033265: Modeling Algorithms - Boolean operation hangs on the attached shapes
Taking  fix #29038:

Make possibility to dramatically increase the step during iteration on the curve when the global resolution of the curve is too small.
Correct the functions FindParameters, FindBestSolution, FindDistPC.

The change caused improvement of the test case "boolean bfuse_complex E4", so the bug #27697 has been fixed.

The change caused dramatic improvement of the performance of the test "bugs modalg_7 bug27160", and the bug #29080 has been fixed.
2022-12-16 16:58:35 +03:00
mzernova
6317a22462 FORAN-01-017 "Can't represent wireframe using IsoOnTriangulation flag" 2022-12-07 07:21:00 +00:00
mzernova
bc5cfb05bb SENR-22-107 "Visualization - Isoparametric lines rendered out of a face" 2022-12-07 07:19:11 +00:00
ifv
db99012dc4 0033179: Modeling Algorithms - Crash in in ShapeFix_Shape with the attached object, when healing for fixing SameParameterFlag
BSplCLib_2.cxx - method MergeBSplineKnots is modified in order to have always not empty result.
Geom2dConvert.cxx - in static function MultNumandDenom tolerance for comparing knots is decreased.
2022-10-28 15:24:48 +03:00
ifv
cbb07358e0 SENR-22-081 "BRepOffsetAPI_MakeFilling throws an exception building a face (720)
Adaptation patches from #0023380, #0031464 and #0031558 for 7.2.0
2021-11-09 12:02:29 +03:00
ifv
6bcae8fe89 SENR-22-093 "BRepBuilderAPI_MakeFace (691, 720) - Does not generate a face from a wire. Works with 750"
Methods fillPoints and fillParams are added
2021-10-14 09:44:29 +03:00
ifv
50269d8437 0032607: Modeling Algorithms - BOPAlgo_BOP returns incomplete result
IntPatch/IntPatch_ImpPrmIntersection.cxx - decreasing step for some conditions
2021-10-12 09:09:24 +03:00
ifv
9f5ad42aae 0032569: Modeling Algorithm - Section not found
src/IntPatch/IntPatch_WLineTool.cxx - adding control of maximal ratio of distances between 3 sequential points.
2021-09-20 14:31:47 +03:00
jgv
4f87641585 Fix of bug of thickshell functionality 2021-09-15 13:31:23 +03:00
emv
b4112bf761 0032108: Modeling Algorithms - BRepAlgoAPI_Section is too slow [OCCT 7.2.0 backport]
Porting parts of #0029711 - use ForceInterfEF() in PutSEInOtherFaces() to avoid duplication of the checks on the edge and face.
2021-02-02 11:44:02 +03:00
emv
599e010668 0031913: Modeling Algorithms - Invalid result of cut operation [OCCT 7.2.0 backport]
Porting parts of #0029711 - reduce tolerance of increased vertices to the actual value of the distance to the section curve on which it will be kept.
2020-11-26 17:11:26 +03:00
kgv
1abdd41c29 0031955: Visualization - Graphic3d_CView::Erase() should always remove structure from myStructsToCompute [OCCT 7.2.0 backport] 2020-11-23 17:58:01 +03:00
mgn
6a9e31de14 0031439: Visualization - Access to the active axis of AIS Manipulator
A new method that returns the active axis of the manipulator has been added.
2020-10-28 11:56:33 +03:00
kgv
bf90c28c26 0029787: Visualization - Avoid in presentation edges of certain continuity class [backport for OCCT 7.2.0]
A new flag Prs3d_Drawer::FaceBoundaryUpperContinuity() has been introduced
handled by StdPrs_ShadedShape::FillFaceBoundaries() method to exclude edges
of higher continuity class (e.g. to skip seam edges).
2020-10-23 11:16:43 +03:00
kgv
d34b3ccb8f 0030713: Visualization, TKOpenGl - stipple line artifacts [backport for OCCT 7.2.0]
Added workaround for dashed line presentation on Intel UHD Graphics 630.
2020-10-19 12:09:54 +03:00
gka
80289f0312 0031812: IGES import - NURBS patches lost in the import process - 720
Correction for case invalid color definition to avoid considering an entity that has a number corresponding to the color field as erroneous if entity is not a color entity.

Issue #322 Fix
2020-10-06 12:59:19 +03:00
akaftasev
4097ab152e 0025113: Added progress indicator to BRepMesh_IncrementalMesh [backport for OCCT 7.2.0] 2020-10-06 12:59:18 +03:00
osa
28c0c6b155 0031773: Visualization - add Prs3d_ToolTorus
Added Prs3d_ToolTorus tool to create a torus
2020-09-23 20:18:08 +03:00
osa
47b0f294be 0031758: Visualization, AIS_InteractiveContext - unify clearDynamicHighlight() method 2020-09-23 20:18:08 +03:00
mzernova
7d6be4672b 0031733: Visualization, Prs3d_ToolQuadric - create indexed arrays
Prs3d_ToolQuadric has been modified to return an indexed triangulation.
Added methods Prs3d_ToolQuadric::CreateTriangulation() and Prs3d_ToolQuadric::CreateTriangulation()
as more straightforward API returning generated triangulation.
Added missing const to constant methods.

Confusing method Prs3d_ToolQuadric::FillArray() filling both
Graphic3d_ArrayOfTriangles and Poly_Triangulation at once has been marked deprecated.

V3d_Trihedron and AIS_Manipulator
now set Closed flag to groups with shaded sphere and arrows.
2020-09-23 20:18:08 +03:00
osa
b453701e1f Visualization, PrsMgr_Presentation - remove graphic structure before nullify [OCCT 7.2.0 backport] 2020-09-23 20:18:08 +03:00
osa
c23d6ec61f 0031715: Visualization, OpenGl_ShaderProgram - add access to proxy shader program.
Back porting of setting unique ID for shader program used to manage resource in graphic driver.
2020-09-23 20:18:08 +03:00
gka
b05ff75a60 0031718: Large tolerance of vertex of the result after split attached shape with an attached contour
Corrected computation of tolerance of vertex for periodic surfaces LocOpe_WiresOnShape in the method Project
2020-09-23 20:18:07 +03:00
emv
e49dc1e054 0031662: Modeling Algorithms - Incomplete result of section operation
BOPAlgo_PaveFiller: Add method for forced Edge/Face intersection to look for additional cases of coincidence.
BOPAlgo_BuilderSolid: Avoid creating solids from unclassified faces as such solids will be useless. Just warn user about unclassified faces.
2020-09-23 20:18:07 +03:00
ifv
abca9f3eb8 0031697: Foundation Classes - Expr_GeneralExpression::Derivative does not seem to work (691 & 720) 2020-09-23 20:18:07 +03:00
kgv
68556f75f9 0031698: Visualization, Graphic3d_Aspects - provide stipple line factor parameter [OCCT 7.2.0 backport]
Added Graphic3d_AspectLine3d::LineStippleFactor() property.
Added -stippleFactor argument to vaspects command.
2020-08-06 13:31:03 +03:00
kgv
3d607bc062 0029346: Visualization, TKOpenGl - collect frame statistics [backported,
partially disabled; fixed frustum culling bug].

Graphic3d_RenderingParams::ToShowStats - new option displaying rendering statistics.

OpenGl_FrameStats - new class for accumulating frame statistics.
OpenGl_Context::FrameStats() provides an access to the frame stats
used for currently rendered context.
OpenGl_View::Redraw() and OpenGl_View::RedrawImmediate()
resets counters within OpenGl_Context::FrameStats().

OpenGl_Layer::UpdateCulling() - simplified resetting of culling state for cullable structures.

# Conflicts:
#	src/OpenGl/OpenGl_FrameBuffer.cxx
2020-07-15 16:09:42 +03:00
kgv
365585ddfb 0028760: Visualization, TKOpenGl - avoid excessive frustum culling traverse within extra OIT rendering pass
Culling traverse is no more called implicitly within OpenGl_Layer::Render().
Instead, all layers are traversed at onces within OpenGl_View::render() beforehand.

OpenGl_BVHTreeSelector methods have been renamed to better reflect their meaning.
Non-persistent culling options has been moved to dedicated structure OpenGl_BVHTreeSelector::CullingContext
so that OpenGl_BVHTreeSelector instance can be used for different Layers without modifying its state.
2020-07-15 16:09:42 +03:00
kgv
c89ab82e4c 0029300: Visualization, TKOpenGl - provide depth pre-pass option
OpenGl_LayerList::Render() now handles new option Graphic3d_RenderingParams::ToEnableDepthPrepass
which prepends additional pass to rendering pipeline filling Depth Buffer in advance.
2020-07-15 16:09:42 +03:00
kgv
cc964ef4d3 0029295: Visualization, TKOpenGl - provide distance culling option
Graphic3d_ZLayerSettings::CullingDistance() and ::CullingSize() - added
new properties configuring culling of small and distant objects, disabled by default.
OpenGl_BVHTreeSelector now handles size culling and distance culling in addition to frustom culling.
2020-07-15 16:09:41 +03:00
ifv
cb127824b2 0031616: Modeling algorithm - Section between two shells returns wire with gaps (720) 2020-07-15 16:09:41 +03:00
ifv
fbebf6078c 0031611: BRepOffsetAPI_NormalProjection - can't build wire in 720 but it was possible in 691 2020-07-15 16:09:41 +03:00
jgv
762fa70875 Fix the case SENR-22-003 "HLR - Different result between 691 and 720" 2020-02-17 14:32:57 +03:00
gka
4dd6fb9a80 # 257 Error in D1 calculation using BRepAdaptor_CompCurve using the last parameter. In OCCT7
Modifications from archive "patch_720_new.7z"
2020-02-17 13:15:35 +03:00
kgv
70608ec03d 0030706: Visualization - fetch font folder list from fontconfig library on Linux [backport occt720]
vfont command now prints fonts in alphabetical order.

# Conflicts:
#	adm/qmake/OccToolkit.pri
2020-02-17 12:40:48 +03:00
kgv
0842e31d95 0030782: Visualization, Font_FTFont - use predefined fallback fonts for extended Unicode subsets [backported to occt720]
Font_FTFont now uses fallback fonts for characters from unsupported Unicode subsets,
managed by Font_FTFont::ToUseUnicodeSubsetFallback()
and Font_FontMgr::ToUseUnicodeSubsetFallback() option, enabled by default.
The fallback list includes common font families for Chinese, Korean and Japanese languages.

Font_FTFont::RenderGlyph() now supports FT_PIXEL_MODE_MONO input format used by some CJK fonts.
OpenGl_Font::createTexture() now limits single texture size to circa 4096 glyphs.

test/testgrid now expects test scripts being in UTF-8 encoding in sync with "DRAWEXE -f script.tcl".

AIS::InitFaceLength() - fixed usage of uninitialized result.

Font_FTFont::RenderGlyph() backport bitmap
2020-02-17 12:40:48 +03:00
kgv
51204152b9 0030663: Visualization - synthesize italic style for a font having no italic style [backport OCCT720]
Font_FTFont now defines shear transformation to synthesize italic style for fonts having no such style.
Font_FontMgr::FindFont() and command "vfont -find" have been extended with -strict option
to check whether the given font is actually registered or not.
Font_FTFont::Init() - added constructor from memory buffer.
Second Font_FTFont::Init() override has been renamed to Font_FTFont::FindAndInit()
to avoid ambiguity between two similar methods taking full font path and font name as string.

# Conflicts:
#	src/AIS/AIS_Dimension.cxx
#	src/OpenGl/OpenGl_Text.cxx
2020-02-17 12:40:48 +03:00
kgv
d517575214 0030474: Visualization - fallback font is ignored for missing font alias within Font_FontMgr::FindFont() 2020-02-17 12:40:47 +03:00