0024070: OpenGL capped object-level clipping planes
authorapl <apl@opencascade.com>
Thu, 19 Sep 2013 12:58:00 +0000 (16:58 +0400)
committerbugmaster <bugmaster@opencascade.com>
Fri, 20 Sep 2013 08:09:54 +0000 (12:09 +0400)
commit4269bd1b11727b8b96277ac5dba823b46e5fec15
tree975ae110bb5adb14dbab658c6392ff0ec0d55b01
parent788cbaf4c4c90b6c1da67f55765abd3d1aa64e8f
0024070: OpenGL capped object-level clipping planes

Graphical clipping:
- Use "Graphic3d_ClipPlane" to defined clipping for PrsMgr_PresentableObject (local clipping), for V3d_View (global clipping).

Get rid of old implementations:
- Remove Visual3d_ClipPlane.
- Port V3d_Plane to Graphic3d_ClipPlane core.

Selection Sensitives:
- Port "Matches" method to add full set of arguments (SelectBasics_PickArgs), including min-max depth coming from selector.
- Get rid of transient data for pair Matches -> ComputeDepth.
- Extend SelectMgr_ViewerSelector::LoadResult to work with local clipping, add virtual callbacks to compute globa/local depth clipping for picking.

Capping rendering algorithm:
- Recursive rendering algorithm for OpenGl_Groups.
- Introduced Rendering filter for groups.

Clipping plane management in TKOpenGl:
- Added OpenGl_ClippingState to OpenGl_Context.

DRAWEXE commands:
- Ported "vclipplane" command for new approach.
- Added "vsettexturemode" command for changing texture details in views (enable / disable textures).

Correct DownCast syntax (compilation error)

Fix new compiler warnings

tests/bugs/vis/bug22906 migrated to the new vclipplane syntax
111 files changed:
src/AIS/AIS_InteractiveContext_2.cxx
src/Graphic3d/FILES
src/Graphic3d/Graphic3d.cdl
src/Graphic3d/Graphic3d_CPlane.hxx [deleted file]
src/Graphic3d/Graphic3d_CStructure.hxx
src/Graphic3d/Graphic3d_CView.hxx
src/Graphic3d/Graphic3d_ClipPlane.cxx [new file with mode: 0644]
src/Graphic3d/Graphic3d_ClipPlane.hxx [new file with mode: 0644]
src/Graphic3d/Graphic3d_ClipPlane_Handle.hxx [new file with mode: 0644]
src/Graphic3d/Graphic3d_GraphicDriver.cdl
src/Graphic3d/Graphic3d_GraphicDriver.cxx
src/Graphic3d/Graphic3d_MarkerImage.cxx
src/Graphic3d/Graphic3d_SetOfHClipPlane.hxx [new file with mode: 0644]
src/Graphic3d/Graphic3d_Structure.cdl
src/Graphic3d/Graphic3d_Structure.cxx
src/InterfaceGraphic/InterfaceGraphic_Visual3d.hxx
src/MeshVS/MeshVS_DummySensitiveEntity.cdl
src/MeshVS/MeshVS_DummySensitiveEntity.cxx
src/MeshVS/MeshVS_SensitiveMesh.cdl
src/MeshVS/MeshVS_SensitiveMesh.cxx
src/MeshVS/MeshVS_SensitivePolyhedron.cdl
src/MeshVS/MeshVS_SensitivePolyhedron.cxx
src/OpenGl/FILES
src/OpenGl/OpenGl_AspectFace.cxx
src/OpenGl/OpenGl_AspectFace.hxx
src/OpenGl/OpenGl_CappingAlgo.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_CappingAlgo.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_CappingPlaneResource.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_CappingPlaneResource.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_ClippingState.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_ClippingState.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Context.cxx
src/OpenGl/OpenGl_Context.hxx
src/OpenGl/OpenGl_Element.hxx
src/OpenGl/OpenGl_GraphicDriver.hxx
src/OpenGl/OpenGl_GraphicDriver_7.cxx
src/OpenGl/OpenGl_Group.cxx
src/OpenGl/OpenGl_Group.hxx
src/OpenGl/OpenGl_Matrix.hxx
src/OpenGl/OpenGl_RenderFilter.cxx [moved from src/Graphic3d/Graphic3d_CPlane.cxx with 77% similarity, mode: 0644]
src/OpenGl/OpenGl_RenderFilter.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Structure.cxx
src/OpenGl/OpenGl_Structure.hxx
src/OpenGl/OpenGl_View.cxx
src/OpenGl/OpenGl_View.hxx
src/OpenGl/OpenGl_View_2.cxx
src/OpenGl/OpenGl_Workspace.cxx
src/OpenGl/OpenGl_Workspace.hxx
src/PrsMgr/PrsMgr_PresentableObject.cdl
src/PrsMgr/PrsMgr_PresentableObject.cxx
src/PrsMgr/PrsMgr_PresentableObject.lxx
src/QABugs/QABugs_3.cxx
src/Select3D/Select3D_Projector.cdl
src/Select3D/Select3D_Projector.cxx
src/Select3D/Select3D_Projector.lxx
src/Select3D/Select3D_SensitiveBox.cdl
src/Select3D/Select3D_SensitiveBox.cxx
src/Select3D/Select3D_SensitiveCircle.cdl
src/Select3D/Select3D_SensitiveCircle.cxx
src/Select3D/Select3D_SensitiveCurve.cdl
src/Select3D/Select3D_SensitiveCurve.cxx
src/Select3D/Select3D_SensitiveEntity.cdl
src/Select3D/Select3D_SensitiveEntity.cxx
src/Select3D/Select3D_SensitiveFace.cdl
src/Select3D/Select3D_SensitiveFace.cxx
src/Select3D/Select3D_SensitiveGroup.cdl
src/Select3D/Select3D_SensitiveGroup.cxx
src/Select3D/Select3D_SensitivePoint.cdl
src/Select3D/Select3D_SensitivePoint.cxx
src/Select3D/Select3D_SensitivePoly.cxx
src/Select3D/Select3D_SensitiveSegment.cdl
src/Select3D/Select3D_SensitiveSegment.cxx
src/Select3D/Select3D_SensitiveTriangle.cdl
src/Select3D/Select3D_SensitiveTriangle.cxx
src/Select3D/Select3D_SensitiveTriangulation.cdl
src/Select3D/Select3D_SensitiveTriangulation.cxx
src/Select3D/Select3D_SensitiveWire.cdl
src/Select3D/Select3D_SensitiveWire.cxx
src/SelectBasics/FILES [new file with mode: 0644]
src/SelectBasics/SelectBasics.cdl
src/SelectBasics/SelectBasics_PickArgs.hxx [new file with mode: 0644]
src/SelectBasics/SelectBasics_SensitiveEntity.cdl
src/SelectBasics/SelectBasics_SensitiveEntity.cxx
src/SelectMgr/FILES
src/SelectMgr/SelectMgr.cdl
src/SelectMgr/SelectMgr_ViewerSelector.cdl
src/SelectMgr/SelectMgr_ViewerSelector.cxx
src/StdSelect/StdSelect_ViewerSelector3d.cdl
src/StdSelect/StdSelect_ViewerSelector3d.cxx
src/V3d/FILES
src/V3d/V3d.cdl
src/V3d/V3d_Plane.cdl [deleted file]
src/V3d/V3d_Plane.cxx [changed mode: 0755->0644]
src/V3d/V3d_Plane.hxx [new file with mode: 0644]
src/V3d/V3d_View.cdl
src/V3d/V3d_View.cxx
src/V3d/V3d_View_2.cxx
src/V3d/V3d_Viewer.cdl
src/V3d/V3d_Viewer.cxx
src/V3d/V3d_Viewer_1.cxx
src/ViewerTest/ViewerTest.cdl
src/ViewerTest/ViewerTest_ObjectCommands.cxx
src/ViewerTest/ViewerTest_ViewerCommands.cxx
src/Visual3d/Visual3d.cdl
src/Visual3d/Visual3d_ClipPlane.cdl [deleted file]
src/Visual3d/Visual3d_ClipPlane.cxx [deleted file]
src/Visual3d/Visual3d_ContextView.cdl
src/Visual3d/Visual3d_ContextView.cxx
src/Visual3d/Visual3d_View.cdl
src/Visual3d/Visual3d_View.cxx
tests/bugs/vis/bug22906