0026447: Performance degradation intersecting cylindrical surfaces
[occt.git] / samples / qt / VoxelDemo / inc / VoxelClient_VisDrawer.h
1 /*
2  Copyright (c) 1999-2014 OPEN CASCADE SAS
3
4  This file is part of Open CASCADE Technology software library.
5
6  This library is free software; you can redistribute it and / or modify it
7  under the terms of the GNU Lesser General Public version 2.1 as published
8  by the Free Software Foundation, with special exception defined in the file
9  OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10  distribution for complete text of the license and disclaimer of any warranty.
11
12  Alternatively, this file may be used under the terms of Open CASCADE
13  commercial license or contractual agreement.
14 */
15
16 #ifndef _VOXEL_VISDRAWER_H_
17 #define _VOXEL_VISDRAWER_H_
18
19 #include "Voxel_VisData.h"
20 #include <Graphic3d_BndBox4f.hxx>
21
22 class Handle(OpenGl_GraphicDriver);
23
24 class VoxelClient_VisDrawer
25 {
26 public:
27
28   class VisElement;
29
30 public:
31
32   Standard_EXPORT static void Init (Handle(OpenGl_GraphicDriver)& theDriver);
33
34         Standard_EXPORT VoxelClient_VisDrawer(Voxel_VisData* theData);
35         Standard_EXPORT virtual ~VoxelClient_VisDrawer();
36
37         Standard_EXPORT void EvalMinMax(Graphic3d_BndBox4f& theMinMax) const;
38         Standard_EXPORT void Display(const Standard_Boolean theHighlight);
39
40 private:
41     
42         Standard_EXPORT void DisplayVoxels(const Standard_Boolean theHighlight);
43         Standard_EXPORT void DisplayPoints(const Standard_Boolean nearest);
44         Standard_EXPORT void DisplayBoxes(const Standard_Boolean nearest);
45     Standard_EXPORT void HighlightVoxel();
46         
47     Standard_EXPORT void DisplayTriangulation(const Standard_Boolean theHighlight);
48
49         Voxel_VisData* myData;
50 };
51
52 #endif // _VOXEL_VISDRAWER_H_