1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-04 18:06:22 +03:00

2287 Commits

Author SHA1 Message Date
bugmaster
ab9f6cabdc 0028936: Draw freezes while making a 3d representation
Adding testing case
2019-02-06 16:18:00 +03:00
kgv
c1197a1575 0030464: Visualization - unable to set sub-shape transparency using vaspects command
Added AIS_ColoredShape::SetCustomTransparency() for simple way for assigning sub-shape transparency.
2019-02-01 13:26:24 +03:00
vro
a0d0f96afe 0030451: Selection mode of TPrsStd_AISPresentation attribute is restricted to one value
Two classes TDataXtd_Presentation and TPrsStd_AISPresentation were improved so that they accept a list of selection modes.
A new non-regression test is added: caf presentation N1
2019-01-23 15:33:06 +03:00
kgv
5b377041e3 0030439: Visualization - extend fonts search within Font_FontMgr::FindFont() on Linux
Font_FontMgr has been redesigned to:
- Store fonts in a map instead a list.
- Allow mapping multiple fonts to a single alias.
- Log informative message about usage of non-requested font (fallback).
- Register all font files within standard folders on Linux when "fonts.dir" is not found.
- Prefer specific alias ("serif") as default fallback font instead of arbitrary one in a system.

A couple of obsolete and broken font aliases have been removed;
instead, new aliases of fonts popular on Linux platform have been added.

Font_NameOfFont.hxx has been extended with more neutral aliases
"monospace", "serif", "sans-serif", "cjk" and "korean".

Font_FontAspect enumeration values have been renamed Font_FA_ -> Font_FontAspect_
with old values preserved as alias.

Font_SystemFont has been extended with a list of paths to Font_FontAspect styles,
so that entire Font Family is now defined within a single Font_SystemFont instance.
Non-resizable fonts are now ignored by Font Manager.
2019-01-21 16:15:33 +03:00
osa
79b544e652 0030437: Visualization, TKV3d - add Draw command to print rendering statistics
Add new command "vstatprofiler" to manage rendering parameters and print them.
If there are some input parameters - print corresponding statistic counters values,
else - print all performance counters set previously.
2019-01-11 18:57:53 +03:00
osa
0e3025bc14 0030434: Visualization, TKV3d - add "NoUpdate" state of frustum culling optimization
Frustum culling is now managed by Graphic3d_RenderingParams::FrustumCullingState flag
and can be switched into Graphic3d_RenderingParams::FrustumCulling_NoUpdate state
useful for debugging the algorithm.

Draw Harness command vrustumculling has been replaced by vrenderparams -frustumCulling.
2019-01-11 18:57:52 +03:00
osa
30a1b24e19 0030412: Visualization, TKV3d - add presentation of camera frustum
1) Added method Graphic3d_Camera::FrustumPoints() returning corner points of camera frustum.
2) Refactored methods OpenGl_BVHTreeSelector::isFullOut(...) and OpenGl_BVHTreeSelector::CacheClipPtsProjections()
3) Changed computation algorithm of frustum planes (build them by corner points)
4) Added interactive object AIS_CameraFrustum to draw camera frustum.
5) Extended Draw command "vcamera" with option displaying camera frustum.
2019-01-11 18:57:52 +03:00
abv
8de8dacd02 0030430: Draw - command testgrid in parallel mode hangs if DRAW is launched without GUI
Ensure that initialization of Tcl interpretor is performed in the same thread where commands are evaluated.

Added test demo draw bug30430
2019-01-10 16:35:02 +03:00
ifv
80eeb3cef1 0030346: Modeling Algorithms - BRepPrimAPI_MakeRevol throws "BRepSweep_Translation::MakeEmptyVertex"
Implementation of method "IsDeleted(...)" for MakeRevol and MakePrism algorithms.

Problem (exception) occurs during history building and was caused by an attempt to obtain generated shape for subshape, which was really "deleted" by algorithm - this input subshape and its possible generated shape was not used in result.
2018-12-28 15:54:30 +03:00
msv
4473e33655 0030396: Infinite recursion during ShapeFix after BRepAlgoAPI_Cut
Two test cases are added. One for Boolean operation (it is good, because BO has been fixed already), and another for fixshape operation (it causes Draw crash).
2018-12-21 19:45:20 +03:00
oan
6c27a5d993 0029964: Bad arc discretization
Added test cases.
2018-12-21 15:39:24 +03:00
nbv
4fe725a46a 0027976: Unstable work of 2d intersection algorithm for two lines
1. Test case for the issue has been created.
The problem is still reproduced on MASTER.

2. Some test cases have been moved to lowalgos/2dinter grid.
2018-12-21 15:38:03 +03:00
kgv
3d999c6090 0030411: Data Exchange - attached model is exported as empty JT and VRML file
VrmlData_ShapeConvert::ConvertDocument() now handles reference labels within free shapes in the document.
2018-12-14 12:08:42 +03:00
kgv
7803c28d96 0030409: Data Exchange - exception during VRML file export
VrmlData_ShapeConvert::addShape() - handle case when parent node is NULL.
2018-12-14 12:07:56 +03:00
kgv
eeabb8f86a 0030413: Tests - increase counters within perf/ncollection/A1 2018-12-14 12:06:01 +03:00
skl
1d441d1ac7 0030402: Data Exchange - exported VRML file has broken location information 2018-12-13 13:34:41 +03:00
emv
d4db985b5e 0030395: DRAW bop: Some sub-shapes of some of the argument become connected through other shapes and the argument became self-interfered.
Integrating only test case for the issue as it is not reproduced any more.
2018-12-13 13:32:53 +03:00
jgv
405b6fc5f9 0030391: Improvement of the method BRepOffset_Tool::EnLargeFace
Add options to set the length of enlargement for each of 4 directions.
Add restriction of enlargement in the case of singularity on the surface.
2018-12-11 19:15:54 +03:00
emv
2ebb10988d 0030394: Modeling Algorithms - Empty result of offset operation (mode "Complete", join type - "Intersection")
The following changes have been made for improving the offset algorithm:
1. Multi-connexity support - intersection of the faces connected to the edge belonging to more than two faces is now performed.
2. Avoid intersection of the faces connected through internal edge.
3. Filling gaps (holes) in the splits of the created offset faces to increase possibility of creation of the closed volume from these splits.

Test cases for the issue.
2018-12-07 18:52:29 +03:00
emv
0c09fd3c6f 0029692: Add functionality to make the group of touching same-dimensional shapes connected
Implementation of the new class *BOPAlgo_MakeConnected* for making the group of touching same-dimensional shapes connected.
Provide the material association for the first sub-elements of the input shapes.
Provide possibility to make the connected shape periodic.

Draw commands for new algorithm:
* makeconnected - make the input shapes connected or glued, performs material associations;
* cmaterialson - returns the materials located on the requested side of a shape;
* cmakeperiodic - makes the connected shape periodic in requested directions;
* crepeatshape - repeats the periodic connected shape in requested directions requested number of times;
* cperiodictwins - returns all periodic twins for the shape;
* cclearrepetitions - clears all previous repetitions of the periodic shape, keeping the shape periodic.

Documentation & test cases for the new algorithm.
2018-12-07 18:49:58 +03:00
emv
53a73fc1d1 0029683: Add functionality to make the TopoDS_Shape periodic in 3D space
Implementation of the new class *BOPAlgo_MakePeriodic* for making the shape periodic in 3D space.
Periodicity of the shape means that the shape can be repeated in any periodic direction any number of times without creation of the new geometry or splits.
The idea of this algorithm is to make the shape look similarly on the opposite sides or on the period bounds of periodic directions.
It does not mean that the opposite sides of the shape will be mirrored. It just means the the opposite sides of the shape should be split by each other and obtain the same geometry on opposite sides.
Such approach will allow repeating the shape, i.e. translating the copy of a shape on the period, without creation of new geometry because there will be no coinciding parts of different dimension.

Draw commands for the new algorithm:
* makeperiodic - makes the shape periodic in required directions;
* repeatshape - repeats the periodic shape in requested periodic direction;
* periodictwins - returns the periodic twins for the shape;
* clearrepetitions - clears all previous repetitions of the periodic shape.

Documentation & test cases for the algorithm.
2018-12-07 18:49:44 +03:00
jgv
e9c073b866 0030363: BRepLib::SameParameter with option "forced" corrupts valid shape
Method BRepLib::SameParameter has been corrected to synchronize check of resulting tolerance with BRepCheck.
2018-12-03 15:57:36 +03:00
nbv
061cd2d841 0029149: BRepMesh produces invalid mesh on the bound of adjacent faces
1. Test case for the issue has been created. The issue is fixed by the patch #26106.

2. Since now, "tricheck" command uses edge tolerance instead of edge deflection to check cross-face-errors (set of nodes of the edge on 1st face must be equal to set of nodes of the same edge on 2nd face).
2018-11-30 18:49:27 +03:00
oan
e2fc86bbd9 0025594: Valid shape is not visualize in shading mode.
Added test case.
2018-11-30 17:28:13 +03:00
oan
1bb8ce7b7d 0025628: BRepMesh fails to mesh face with open wire, considered as correct by checkshape
Do not check status for "UnorientedWire", but check number of triangles instead.
2018-11-30 15:33:19 +03:00
oan
87036bbb70 0028719: Mesh - Display issue for special model
Clean existing triangulation before meshing.
2018-11-30 14:16:46 +03:00
ika
99524c4d24 0030273: Modeling Algorithms - Crash in postprocessing of imported shape.
Now end points of intervals calculated in GeomAdapter_Curve are not replaced by GeomAdapter_Surface.
Left bound of periodic curve less than UMin is not corrupted by LocateParameter during intervals calculating.
2018-11-30 13:39:16 +03:00
emv
44d5a096a3 0030389: Data Exchange - StlAPI_Writer does not check if the face has triangulation
When merging triangulation of the faces skip those having no triangulation.
Test case for the issue.
2018-11-30 13:38:25 +03:00
abv
e05c25c123 0027620: Test perf bop boxholes crashes DRAW
Implementation of capturing of output to standard streams in DRAW (see command dlog) is revised to avoid problems with command "test" executing long test scripts:

1. Method OSD_File::Capture() is removed: on Windows it was allocating a C file descriptor for a file opened using WinAPI, and never released that descriptor (once allocated, it cannot be released separately from WinAPI file handle). Direct calls to dup/dup2 are used instead.

2. In Draw_Window.cxx the standard Tcl channels are initialized manually using corrected version of Tcl internal function. This works around a problem with Tcl channels on Windows being bound to OS device handle owned by the system which can get invalidated as result of calls to dup2() (used to capture output to standard streams).

3. Temporary file for capturing is opened once and used to store whole log, thus the need to collect log in the string stream in memory is avoided

4. Possible errors of dup() and dup2() are checked and reported

Test demo draw dlog is added

Off-topic changes:

- Test demo draw getsource is corrected for VS2017 which generates file name in lowercase
- Field myFaceBounds is initialized in constructor of the class BRepAlgo_NormalProjection to avoid undefined behavior
- Test bugs modalg_5 bug24012 is corrected to use command nproject instead of custom one, and to check propertes of the resulting shape
2018-11-23 12:18:42 +03:00
nbv
0df4bbd689 0030380: Exception while reading Step-file
Incorrect initialization of array (when upper bound is less than lower bound) has been avoided in some places.
2018-11-23 12:17:38 +03:00
jgv
1d54b80764 0028828: Modeling Algorithms - New functionalities of BRepFilletAPI_MakeChamfer algorithm
Two new functionalities have been added in BRepFilletAPI_MakeChamfer:
- constant throat (the section of chamfer is isosceles triangle, its height is constant in all sections - this is the "throat" of the weld);
- constant throat with penetration(the section of chamfer is right-angled triangle, the first of two surfaces (where is the top of the chamfer) is virtually moved inside the solid by offset operation, the apex of the section is on the intersection curve between moved surface and second surface, right angle is at the top of the chamfer, the length of the leg from apex to top is constant - this is the "throat" of the weld).

- New abstract classes BlendFunc_GenChamfer and BlendFunc_GenChamfInv have been added;
- Class BlendFunc_Chamfer is now descended from BlendFunc_GenChamfer, class BlendFunc_ChamfInv is now descended from BlendFunc_GenChamfInv.
- New class BlendFunc_ConstThroat is descended from BlendFunc_GenChamfer, new class BlendFund_ConstThroatInv is descended from BlendFunc_GenChamfInv.
- New class BlendFunc_ConstThroatWithPenetration is descended from BlendFunc_GenChamfer, new class BlendFund_ConstThroatWithPenetrationInv is descended from BlendFunc_GenChamfInv.
- Class ChFi3d_ChBuilder has now mode of chamfer that can be ClassicChamfer, ConstThroatChamfer and ConstThroatWithPenetrationChamfer.
- Two new DRAW Test Harness commands "chamf_throat" ant "chamf_throat_with_penetration" have been added for the second mode of ChBuilder.
- The interface of DRAW Test Harness command "chamf" changed for symmetric case.
2018-11-16 19:16:05 +03:00
nbv
364c88864b 0025950: Bad performance of intersection algorithm.
1. Test case has been created.

2. Minor correction in DrawTrSurf.cxx file.
2018-11-15 17:34:44 +03:00
ika
5290fb106f 0030362: Data Exchange - Writing dimensions with inches produced invalid file.
Writing dimensions into STEP files in inches not produce invalid references between STEP entities.
2018-11-15 17:34:43 +03:00
nbv
5fe14d0fac 0030354: BOP Cut doesn't modify the attached face
The reason of this problem is in wrong work of classifier algorithm (see the message ~0080992 to the issue #30354). Therefore, the algorithm of IntTools_FClass2d class has been improved. Namely, now orientation of the polygon is computed from area-criterion instead of angle. As result, some simplification of the method IntTools_FClass2d::Init(...) has been made.

<!break>

1. New constructor has been added to the class CSLib_Class2d. It allows applying TColgp_SequenceOfPnt2d.

2. DRAW-commands "addpolygonnode" and "polygonprops" have been created. They are covered by the test case "tests/geometry/2dpolygon/A1".

3. New method Poly::PolygonProperties(...) has been created. See help for detailed information.

4. New testgrid "lowalgos classifier" has been created.
2018-11-15 17:34:42 +03:00
oan
dc57476a0e 0028379: BRepMesh produces mangled mesh for a cone
Split seam edge of a cone according to the specified parameters.
Seam edge functor is called before check of triangulation consistency in order to keep face status consistent.
The cause is that split seam edge can set Outdated flag when Reused is set by another functor without reset which can lead to refusement of such face by triangulation procedure.
Fix compilation error on VS2008
2018-11-13 15:45:19 +03:00
nbv
9d083161b6 0025952: Wrong intersection curve
Test cases for the issue have been created.
2018-11-13 15:45:18 +03:00
nbv
1f17d5fbf7 0030234: BRepMesh_IncrementalMesh fail to discretize some zero-length free edges
Test case for the issue has been created.
This problem is fixed by the patch #30345.
2018-11-11 11:34:31 +03:00
nbv
0f16fd3cec 0029962: Master version of BRepMesh does not respect obvious details despite of specified deflection
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-11 11:34:30 +03:00
nbv
ac2ee719c0 0029685: Meshing - BRepMesh does not respect requested deflection
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-11 11:34:29 +03:00
nbv
9d09a1263e 0029751: Incremental mesh produces different meshes for windows and linux (debian 8)
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-11 11:34:27 +03:00
nbv
57d0f56b58 0027158: BRepMesh manage vertex tolerance in parametric space in improper way
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-11 11:34:26 +03:00
nbv
a385e6d1cd 0026889: Very poor mesh result from shape
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-11 11:34:25 +03:00
nbv
70bc8e4a71 0023795: Performance regression of meshing
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-11 11:34:24 +03:00
nbv
080fcebfca 0026928: Edges are meshed too coarsly
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-11 11:34:22 +03:00
nbv
e2f8fe449c 0025042: Cone Meshing: Missing two connecting edges.
Adding test case for the issue.
The problem has been fixed after the patch #28379.
2018-11-11 11:34:20 +03:00
nbv
42a213c67f 0023513: BRepMesh doesn't stop until out-of-memory
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-09 17:32:42 +03:00
nbv
fb99e177e1 0027693: BRepMesh: fine edge tessellation leads to excess number of triangles along the whole U or V stripes
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-09 17:32:41 +03:00
nbv
24f355f097 0027845: BRepMesh produces invalid result on spline cavity
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-09 17:32:40 +03:00
nbv
1741292616 0026965: BRepMesh_IncrementalMesh hangs, and consumes infinite memory
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-09 17:32:40 +03:00
nbv
3f9b6e9ea4 0029205: BRepMesh skips some edges and generates invalid triangulation for the face
Adding test case for the problem.
The issue has been fixed by a patch for #26106.
2018-11-09 17:32:39 +03:00