Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0031401Open CASCADE[OCCT] OCCT:Visualizationpublic2020-03-04 10:192021-04-17 20:42
Assigned Tokgv 
PrioritynormalSeverityintegration request 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.6.0*Fixed in Version 
Summary0031401: Visualization - revise Toolkits dependency graph
DescriptionVisualization module consists of the following Toolkits:
- TKService
  Key dependencies: TKBRep.
  External: FreeType, FreeImage (optional), FFmpeg (optional).
- TKV3d
  Key dependencies: TKService, TKBRep, TKHLR, TKMesh [implies TKShHealing since 0026106]
- TKOpenGl [depends on TKV3d and OpenGL]
- TKMeshVS [depends on TKV3d]
- TKD3DHost [depends on TKOpenGl and D3D9]
- TKIVtk [depends on TKV3d and VTK]

There are numerous problems in current dependency graph:
- TKOpenGl depends on a bunch of unrelated libraries,
  while it is supposed only to provide OpenGL backend
  to Graphic3d_GraphicDriver interface.
     * Proposition: Move out Graphic3d package from TKV3d to dedicated toolkit TKGraphic3d.
     * Problems: Should be trivial to do?
- TKService depends on TKBRep for implementing Font_BRepFont class
  (previously depending also on TKShHealing, which has been eliminated 0025852).
     * Proposition: Move out Font_BRepFont to another toolkit.
     * Problems: ?.
- TKV3d depends on TKMesh (implying TKShHealing and big set of fat dependencies)
     * Proposition: Move out TKMesh dependency by using plugin interface (IMeshTools_MeshAlgoFactory).
     * Problems: Make sure making porting of existing applications implicit or smooth.
- TKV3d depends on TKHLR
     * Proposition: HLR is a rarely used presentation, which is better being provided via plugin interface.
     * Problems: implement transparent plugin interface and make porting of existing application smooth.
- TKV3d depends on TKBRep
     * Proposition: move out TopoDS_Shape from TKV3d to dedicated toolkit.
     * Problems: AIS, StdPrs and StdSelect are tightly bound/mixed with TopoDS_Shape;
                 separating will require splitting existing packages, renaming classes
                 and probably introduction of new sub-classes
                (how to handle AIS_InteractiveContext - remove deprecated methods?).
- TKService depends on FreeType unconditionally;
  in rare cases, it is acceptable using OCCT 3D Viewer without text output.
     * Proposition: make FreeType dependency optional 0031087.
     * Problems: updating CMake scripts.

This is a meta issue - progress is expected to be done by small steps as child issues.
TagsNo tags attached.
Test case number
Attached Files

- Relationships
related to 0026106closedbugmaster Open CASCADE BRepMesh - revision of data model 
related to 0023049closedbugmaster Open CASCADE Optimize packaging and dependencies of visualization libraries 
parent of 0025852closedbugmaster Open CASCADE Visualization - Font_BRepFont produces bad faces for circled symbols 
parent of 0031087verifiedkgv Open CASCADE Configuration - make FreeType dependency optional 
parent of 0031429newkgv Open CASCADE Visualization - move out core AIS packages from TKV3d to TKService 
parent of 0031431closedkgv Open CASCADE Visualization, PrsMgr_PresentableObject - simplify HLR computing interface 
parent of 0031456closedbugmaster Open CASCADE Visualization - move out Dimensions and Relations from package AIS to PrsDims 
parent of 0031458closedbugmaster Open CASCADE Visualization - refine classes across Prs3d and StdPrs packages 
parent of 0032286closedbugmaster Community Configuration, TKService - make Xlib dependency optional 
parent of 0032232verifiedbugmaster Open CASCADE Draw Harness - make Tk dependency optional 
parent of 0032308verifiedbugmaster Open CASCADE Configuration - make Xlib dependency optional 
related to 0032268assigneddrazmyslovich Community Configuration, CMake - a proposal for minimal build flag in CMake 
Not all the children of this issue are yet resolved or closed.

-  Notes
pdn (reporter)
2020-03-04 20:18

It is strange that BRepMesh requires ShapeHealing.

Actually it depends on ShapeAnalysis. The dependence of ShapeAnalysis_Edge is easy to avoid.

Concerning ShapeAnalysis_Wire (used for reorder) may be to put this tool in more "core" packages?

- Issue History
Date Modified Username Field Change
2020-03-04 10:19 kgv New Issue
2020-03-04 10:19 kgv Assigned To => kgv
2020-03-04 10:23 kgv Description Updated View Revisions
2020-03-04 10:23 kgv Relationship added related to 0025852
2020-03-04 10:23 kgv Relationship replaced parent of 0025852
2020-03-04 10:24 kgv Description Updated View Revisions
2020-03-04 10:25 kgv Description Updated View Revisions
2020-03-04 10:28 kgv Relationship added parent of 0031087
2020-03-04 10:28 kgv Description Updated View Revisions
2020-03-04 12:18 kgv Description Updated View Revisions
2020-03-04 20:18 pdn Note Added: 0090824
2020-03-04 20:54 kgv Relationship added related to 0026106
2020-03-04 20:55 kgv Description Updated View Revisions
2020-03-04 21:14 kgv Relationship added related to 0031070
2020-03-14 13:31 kgv Relationship added parent of 0031429
2020-03-14 21:03 kgv Relationship added parent of 0031431
2020-03-21 16:35 kgv Relationship added parent of 0031456
2020-03-22 13:30 kgv Relationship added parent of 0031458
2020-09-21 17:42 kgv Target Version 7.5.0 => 7.6.0*
2021-04-06 20:45 kgv Relationship added related to 0032268
2021-04-06 20:50 kgv Relationship added related to 0023049
2021-04-06 21:18 kgv Relationship added parent of 0032286
2021-04-15 12:41 kgv Relationship added parent of 0032232
2021-04-17 20:42 kgv Relationship added parent of 0032308

Copyright © 2000 - 2021 MantisBT Team
Powered by Mantis Bugtracker