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

76 Commits

Author SHA1 Message Date
oan
00af0ebb9d 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).
2017-10-06 10:28:10 +03:00
kgv
dc2cc1350e 0028945: Visualization - StdPrs_ToolTriangulatedShape::ComputeNormals() is extremely slow for triangulation-only surface
StdPrs_ToolTriangulatedShape::ComputeNormals() now calls Poly::ComputeNormals() for triangulation-only surfaces.
Poly::ComputeNormals() now averages normal considering triangle size.
2017-07-27 14:00:24 +03:00
kgv
1eeef710bb 0028895: Visualization, V3d_View::SetComputedMode() - HLR calculation is performed multiple times when 'hlr on' has been called
V3d_View::SetComputedMode() - removed implicit View update.

Graphic3d_CView::SetComputedMode(), ::ReCompute() - fixed
uninitialized bounding box of Computed structure.

PrsMgr_Presentation::Compute() - fixed computation of Computed structure
with transformation within Connected presentation.

StdPrs_HLRPolyShape::Add() now creates Graphic3d_ArrayOfSegments instead of
inefficient Graphic3d_ArrayOfPolylines with boundaries at every segment.

Fixed error in test case bugs/vis/bug24388_1.
2017-07-13 17:29:40 +03:00
kgv
5e3047fd4a 0028815: Visualization, StdPrs_WFShape - fix misprint in condition 2017-06-09 12:58:47 +03:00
kgv
ee2be2a881 0028316: Coding Rules - Elimilate confusing aliases of Standard_Real type in V3d_View
Quantity_Factor, Quantity_Parameter, Quantity_Ratio, Quantity_Coefficient,
Quantity_PlaneAngle, Quantity_Length, V3d_Parameter and V3d_Coordinate
have been replaced by Standard_Real in visualization classes.
2017-06-01 13:55:18 +03:00
kgv
884cafd893 0028788: Visualization, StdPrs_WFShape - Add option to compute Isolines using multiple threads
StdPrs_WFShape::Add() now accepts new argument theIsParallel (FALSE by default)
for computing Isolines using multiple threads (if there is more then 1 Face).
StdPrs_Isolines::addOnTriangulation() - changed the iteration order (cosmetics).
2017-06-01 10:18:34 +03:00
kgv
450c83adcf 0028630: Visualization, StdPrs_ShadedShape - do not create Poly_Connect without need 2017-04-12 17:53:22 +03:00
kgv
f40644350e 0028469: Visualization, StdPrs_ShadedShape - do not create redundant copy of normal array 2017-03-02 12:31:58 +03:00
kgv
b6826918fe 0028232: Visualization, StdPrs_ShadedShape - create WireFrame presentation for sole Vertex / Edge / Wire 2016-12-22 17:24:28 +03:00
kgv
0a8630615d 0028213: Visualization, StdPrs_ShadedShape - compute face edges for triangulation-only Faces 2016-12-15 16:37:35 +03:00
kgv
9c86076b21 0028036: Visualization, AIS_ColoredShape - handle correctly nested compounds within Shaded display mode
AIS_ColoredShape::Compute() now parses nested compounds in two passes
to handle complex cases with compounds used for grouping styles.
2016-11-08 19:29:58 +03:00
abk
681f3919f0 0027870: Modeling - refactoring of HLR algorithms
Toolkit 'TKHLR' was fully refactored for 'Standard_Address' and macros except about half of package 'HLRBREP' there 'Standard_Address' is used through the 'generic' mechanism.
2016-11-03 14:16:56 +03:00
isk
62ef08dfc8 0028010: Visualization, Prs3d_Arrow - add Shading presentation builder
StdPrs_ToolCylinder, StdPrs_ToolDisk, StdPrs_ToolQuadric and StdPrs_ToolSphere
have been moved from StdPrs package to Prs3d.
2016-11-03 14:15:55 +03:00
isk
caf231b050 0024291: Visualization - move Z-buffer trihedron presentation from TKOpenGl to TKV3d
Not implemented method V3d_View::TriedronEcho() and enum Aspect_TypeOfTriedronEcho have been removed.
The following methods have been removed from Graphic3d_CView class:
TriedronDisplay(), TriedronErase(), ZBufferTriedronSetup(), TriedronEcho().
New class V3d_Trihedron has been added as replacement of removed OpenGl_Trihedron
which now uses Graphic3d_TMF_TriedronPers persistence.
2016-10-21 11:12:05 +03:00
kgv
88e55ec7ef 0024073: Coding rules - ambiguous call to overloaded function StdPrs_DeflectionCurve::Match()
Default parameters values have been removed from the methods
StdPrs_DeflectionCurve::Match() to avoid ambiguity.
2016-10-06 12:21:18 +03:00
akz
413b1c1a97 0027821: Visualization, AIS_Shape - add NULL checks for displaying TopoDS_Face with NULL surface NULL surface 2016-09-01 13:19:13 +03:00
kgv
4ad142d9cb 0027756: Visualization - add Draw() method taking Graphic3d_Group to tools Prs3d_Arrow, Prs3d_Text
and deprecate Draw() methods taking Prs3d_Presentation.
2016-08-11 12:41:24 +03:00
san
6887652ac6 0027717: Visualization - drop broken Prs3d_Drawer::ShadingAspectGlobal() flag 2016-08-04 11:41:28 +03:00
kgv
b647266461 0027670: Visualization - avoid duplication of structures defining primitive array presentation aspects
Quantity_ColorRGBA has been introduced as convenient structure holding Vec4 for OpenGL.
Graphic3d_PolygonOffset has been added as replacement for TEL_POFFSET_PARAM.

Duplicating definition of Hatch Styles TEL_HS_*** has been removed;
Aspect_HatchStyle enum now follows values of TEL_HS_*** for compatibility.
TelCullMode enum has been removed.

Aspect_AspectLine has been merged into Graphic3d_AspectLine3d.
Aspect_AspectMarker has been merged into Graphic3d_AspectMarker3d.
Aspect_AspectFillArea has been merged into Graphic3d_AspectFillArea3d.
Graphic3d_CAspectFillArea have been removed.

OpenGl_AspectLine now stores Graphic3d_AspectLine3d as class field.
OpenGl_AspectMarker now stores Graphic3d_AspectMarker3d as class field.
OpenGl_AspectText now stores Graphic3d_AspectText3d as class field.
OpenGl_AspectFace now stores Graphic3d_AspectFillArea3d as class field.

Graphic3d_AspectFillArea3d - back face culling is now enabled by default.
TKOpenGl now relies on Graphic3d_Group::IsClosed() flag to disable face culling.
StdPrs_ShadedShape now does not modify aspect for different culling modes.

Headers InterfaceGraphic_Graphic3d.hxx, InterfaceGraphic_telem.hxx, InterfaceGraphic_tgl_all.hxx
defining obsolete structures CALL_DEF_COLOR, CALL_DEF_POINT,
CALL_DEF_MATERIAL, CALL_DEF_TRANSFORM_PERSISTENCE, TEL_POINT, TEL_COLOUR
have been removed.

Useless and broken test case bugs/vis/buc60821 has been removed.

OpenGl_Workspace::myAspectFaceApplied and myAspectMarkerApplied have been replaced
from OpenGl_AspectFace*/OpenGl_AspectMarker*
to Handle(Graphic3d_AspectFillArea3d)/Handle(Graphic3d_AspectMarker3d).
This eliminates reading from freed memory
(e.g. when OpenGl_AspectFace is allocated on stack like in OpenGl_Trihedron).

OpenGl_PrimitiveArray::drawEdges() - fix drawing non-indexed array from VBO (access violation due to NULL handle).

AIS_Dimension::DrawArrow() - added missing initialization of 3D arrow aspect.
AIS_Manipulator::Compute() now creates dedicated Face Aspect for each axis.
V3d_CircularGrid, V3d_RectangularGrid now create dedicated line aspects with different color.
AIS_InteractiveObject::SetMaterial() - do not modify global ShadingAspect.
2016-07-14 13:24:40 +03:00
kgv
1b9f5d9504 0027596: Visualization, StdPrs_WFShape - pack isolines into single group of primitives
StdPrs_ShadedShape, computeFaceBoundaries() now does not create additional temporary buffer for edges.
StdPrs_Isolines::AddOnTriangulation() now reconstacts polylines from segments projected onto triangulation.

StdPrs_WFShape::Add() now packs isolines into single group in presentation (instead of per-face group).
Even more - StdPrs_WFShape now groups lines with the same aspects.

Prs3d_Drawer::UIsoAspect(), ::VIsoAspect(), ::VIsoAspect() - default width
has been changed from 0.5 to 1.0.
2016-06-16 14:58:24 +03:00
kgv
83b0f13a58 0027555: Visualization, AIS_Shape - own deviation coefficient change is not considered by Wireframe presentation mode 2016-06-09 12:18:49 +03:00
apl
625e195819 0027038: Visualization - add new presentation for object manipulation
AIS_Manipulator class has been created to provide interactive services for manipulating with mouse local transformations of other interactive objects.

The class features three kinds of transformation modes for attached objects:
- translation of through axis
- scaling within axis
- rotation around axis

For more details please have a look at description of the class in reference manual or in header file.

The patch includes DRAW test workbench for evaluating the AIS_Manipulator features.

Clang warning (override)
2016-06-02 14:23:22 +03:00
jgv
c59fcd1186 0027468: Incorrect processing of some cases by HLR algorithm
Incorrect work of HLR algorithm caused by usage of wrong tolerances, wrong sampling of 2d curve and some other bugs are fixed.

Test cases for issue CR27341
2016-05-12 10:33:35 +03:00
abv
68858c7dd6 0027097: GCC and CLang compiler warnings and errors with -Wpedantic
Useless semicolons are removed after closing braces of namespaces and macros in code dependent on FreeImage and VTK.
Comments added at the closing braces of namespaces to help comprehension.
In OSD_File.cxx and OSD_Disk.cxx, unnecessary declarations of system functions are removed
2016-01-22 11:42:51 +03:00
Jacob Abel
a3f6f591fc 0027105: Make code ISO-compliant [-Wpedantic fixes]
Remove extra semicolons and correct function prototypes for GCC -pedantic ISO compliance option
2016-01-22 11:29:24 +03:00
abv
92efcf78a6 0026936: Drawbacks of inlining in new type system in OCCT 7.0 -- automatic
Automatic restore of IMPLEMENT_STANDARD_RTTIEXT macro (upgrade -rtti)
2015-12-04 14:15:06 +03:00
pdn
e71669c6e5 0026664: Triangulating a very small polygon fails
Parameter for adaptive computation of minimal 2D meshing precision added in BRepMesh_IncrementalMesh API.
Corresponding option -adaptive added in DRAW command

All meshing parameters are collected in structure, BRepMesh_FastDiscret::Parameters, which is now used to define and manipulate parameters of the algorithm.
2015-11-19 15:21:10 +03:00
kgv
cb6a2fbc18 0026602: Configuration, genproj.tcl - drop code generating Automake files
StdPrs/FILES - drop duplicates
genproj.sh - fix launcher
2015-08-27 16:47:58 +03:00
vpa
5ad8c033aa 0025300: Visualization - Build wireframe representation consistent with the shape's triangulation
1) Remove duplicating presentation algorithms for shapes StdPrs_WFShape, StdPrs_WFDeflectionShape.
2) Rewrite Prs3d_WFShape to use deflection for non-triangulated shapes and rename it to StdPrs_WFShape.
3) Revise and correct references in code.
4) Rename StdPrs_ToolShadedShape to StdPrs_ToolTriangulatedShape (reused in StdPrs_WFShape, StdPrs_ShadedShape).
5) Add StdPrs_BndBox for drawing bounding box presentation.
6) Implemented on-triangulation isoline builder.
7) Add option -isoontriangulation to vaspects command to enable on-triangulation isoline builder for shape.
8) Drawer's maximum UV parameter value is taken into account in isolines calculation correctly.
9) Add option -setMaxParamValue to vaspects command to change drawer's maximum UV parameter value.
2015-08-20 16:45:54 +03:00
abv
42cf5bc1ca 0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl":
- WOK-generated header files from inc and sources from drv are moved to src
- CDL files removed
- All packages are converted to nocdlpack
2015-07-12 07:42:38 +03:00
abv
c04c30b3ee 0024023: Revamp the OCCT Handle -- general
Missing headers added; includes of headers "Handle_...hxx" removed.

Misuses of macro Handle() and its use in typedefs corrected.

Alias classes Profile and Option are removed from IFSelect; ones defined in MoniTool are used directly.

Removed header files defining only Handle classes (except Image_PixMap_Handle.hxx)

Classes SelectMgr_BaseFrustum and now inherit Standard_Transient and can be manipulated by Handle (not NCollection_Handle)

Fixed reference-type local variable pointing to temporary object

Use of handle in conditional expressions and comparisons to NULL are replaced by call to method IsNull()
2015-07-11 12:08:02 +03:00
abv
35c0599a42 0024023: Revamp the OCCT Handle -- automatic
Automatic upgrade by command "occt_upgrade . -handle"
2015-07-11 12:08:01 +03:00
abv
b7c077b9ee 0024750: Replace instantiations of TCollection generic classes by NCollection templates -- manual changes
Forward declaration of TCollection instances as classes are replaced by inclusion of corresponding header.
Cyclic dependencies between declaration of collection class and its item are resolved by forward declaring a class in collection header.
2015-07-11 12:01:54 +03:00
osa
7f91733552 0025540: Visualization - discretization of the circle differs in shaded and wireframe modes.
1. "HilightDrawer" were added to SelectMgr_SelectableObject.
2. Static drawer in StdSelect_Shape was replaced by class member. It's value is taken from special HilightDrawer of Selectable() object.
3. Computed relative deflection is stored as absolute deflection to be used for sub-shapes.
4. The ColoredShape object was updated to use for sub-shapes relative deflection computed for main shape.
5. Test case was added.

Tuning of test-case bug25532
2015-03-05 15:58:26 +03:00
osa
4c5133866b 0023200: Visualization - prevent multiple triangulating of a shape that already has been triangulated
Add new flag IsAutoTriangulated to Prs3d_Drawer. It is True by default.
If this flag is True automatic re-triangulation with deflection-check logic will be applied.
Else this feature will be disable and triangulation is expected to be computed by application itself.

Change the syntax of vdefalts command.
Add new parameter -autoTriang for check of AutoTriangulated functionality.

Adjust camera position in test case bugs/xde/bug23969
2015-03-05 14:49:32 +03:00
osa
6262338c4b 0025773: Visualization - remove AIS_Drawer class and transfer its Link() logic to Prs3d_Drawer 2015-03-05 13:25:18 +03:00
apn
d2094e110f 0025765: Coding rules - clean up code from obsolete macro checks
Unused code paths (including definition of these macros and meaningless comments) were eliminated.
2015-03-05 13:02:27 +03:00
ibs
5bffb88282 0025687: Visualization, XCAF - eliminate visual artifacts at the edges of faces
AIS_ColoredShape::Compute() - improve logic to split input shape into Closed and Open volumes
with back-face culling enabled when possible.

Change last argument of method StdPrs_ShadedShape::Add() from boolean to enumeration StdPrs_Volume
which controls parsing of Closed/Open volumes within input shape.
Make method StdPrs_ShadedShape::ExploreSolids() public.

Extend Draw Harness command vaspects with option -setvisibility to hide subshape (using AIS_ColoredShape).
Add new test cases bugs/bis/bug25687_1 and bugs/bis/bug25687_2.

the logic of bindSubShapes method clarified

Conflicts:

	src/AIS/AIS_ColoredShape.cxx

AIS_ColoredShape::dispatchColors considers the colors of displayed shapes in connection with specific priority

the color of specific shape can be exported from several ways: the color of this shape, the color of a compound containing this shape. The highest priority has the color of shape than the one of the compound. The color with highest priority will be displayed.

This patch accounts for the highest priority of the shape color.

For example: w - wire has GREEN color; e - edge has RED color; "w" contains "e"; all edges of "w" will be displayed in GREEN color except "e" edge, it will be displayed in RED color

Added sample generating model of Intel i7-4790 CPU on which the problem can be reproduced
2015-02-26 12:51:24 +03:00
kgv
8d3aa19e69 0025768: Visualization, Graphic3d_Structure - do not use invalid bounding boxes of empty groups
Prs3d_WFShape::Add() - do not create empty group

Graphic3d_Structure::minMaxCoord() - do not use uninitialized bounding box

Added test case bugs/vis/bug25768
2015-02-05 18:06:21 +03:00
abv
0797d9d30a 0025418: Debug output to be limited to OCC development environment
Macros ending on "DEB" are replaced by OCCT_DEBUG across OCCT code; new macros described in documentation.
Macros starting with DEB are changed to start with "OCCT_DEBUG_".
Some code cleaned.
2014-11-05 16:55:24 +03:00
dbv
63c629aa3a 0025266: Debug statements in the source are getting flushed on to the console
Output to cout activated previously in Debug mode by #ifdef DEB is suppressed by using macro <PACKAGE>_DEB instead of DEB
2014-10-16 16:44:56 +04:00
duv
7d9e854bdc 0025276: Visualization - Lighting is broken if some kinds of transformation applied to a shape
In order to solve the problem, triangle vertices order is inverted in
mirrored mesh (triangulation). Mesh considered to be mirrored if its
transformation matrix determinant is less than 0.

To handle AIS object mirror transformations "Mirrored" flag stored in
OpenGl_Structure. If this flag is enabled, glFrontFace (GL_CW) applied
before the draw call.

New DRAW commands for visualization level transformations added.
2014-10-16 14:58:33 +04:00
san
50b830a09b 0025142: Visualization breaks triangulation on shared solids in composite solid model
Test case for 0025142: Visualization breaks triangulation on shared solids in composite solid model

Do not clean the triangulation in StdPrs_ShadedShape::Tessellate() and
let the triangulation tool process the sub-shapes properly.
Treat triangulation consistently in all AIS classes (AIS_Shape, AIS_TexturedShape).

Test cases for issue CR25142
2014-10-09 13:39:25 +04:00
oan
848fa7e315 0025154: Collections in BRepMesh package are named in non-conformant manner
- BRepMesh converted to nocdlpack,
- Collections are defined in namespace BRepMesh,
- Doxygen comments corrected to use @ instead of \.
2014-10-02 15:42:13 +04:00
apl
d33222c108 0025129: Visualization - add interactive object for Points Cloud objects
New class AIS_PointCloud for displaying point sets.
Update Graphic3d_ArrayOfPoints, OpenGl_PrimitiveArray and OpenGl_VertexBuffer classes to be able to use normals for points.

Add Draw Harness command vpointcloud.
Add test case v3d/point_cloud/sphere.

Move protected method AIS_Shape::DisplayBox() to public function StdPrs_WFDeflectionRestrictedFace::AddBox().

Small correction of grids.list for v3d tests
2014-09-25 15:58:15 +04:00
san
4769a39529 0025132: Visualization - treat any TopoDS_Solid as closed volume
Advanced mechanism implemented:
- BRep_Tool::IsClosed() method is used to detect non-manifold solids and open shells
- Non-manifold solids are split into closed and open shells

Adding message in test case
2014-08-28 17:38:11 +04:00
san
53b15292f1 0025099: Visualization - Option to show vertices of a shape
Option to display all vertices of a shape by AIS_Shape implemented
in addition to the old behavior (when only isolated vertices were drawn).

Eliminate new compiler warning
2014-08-21 11:30:42 +04:00
oan
14434f3e6c 0025088: Revert or change API of BRepMesh_IncrementalMesh to prevent possible errors occurred due to changed order of parameters
Revert old constructor
2014-07-24 13:13:47 +04:00
san
9dba391d4c 0025071: Visualization - Inconsistent deflection values used by AIS_Shape
Fix misprint

Small correction for issue CR25071
2014-07-17 13:40:05 +04:00
oan
9a148b08df Fix compilation errors for mfc samples. 2014-07-11 11:02:27 +04:00