d814148fa927784eff881ea09a84bd762e73890d
[occt.git] / src / IVtkTools / IVtkTools.hxx
1 // Created on: 2011-10-14 
2 // Created by: Roman KOZLOV
3 // Copyright (c) 2011-2014 OPEN CASCADE SAS 
4 // 
5 //This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #ifndef IVtkTOOLS_H
17 #define IVtkTOOLS_H
18
19 #include <IVtk_Types.hxx>
20 #include <vtkSmartPointer.h>
21
22 #if defined(_WIN32) && !defined(HAVE_NO_DLL)
23   #ifdef __IVtkTools_DLL
24     #define IVtkTools_EXPORT __declspec( dllexport )
25   #else
26     #define IVtkTools_EXPORT __declspec( dllimport )
27   #endif
28 #else
29   #define IVtkTools_EXPORT
30 #endif
31
32 class vtkLookupTable;
33 class vtkMapper;
34
35 //! Helper methods to facilitate usage of VIS classes in an application.
36 namespace IVtkTools
37 {
38
39   //! Returns vtkLookupTable instance initialized by standrad OCCT colors used 
40   //! in wireframe mode for different kinds of sub-shapes (free/boundary/shared 
41   //! edges, isolines,...)
42   Standard_EXPORT vtkSmartPointer<vtkLookupTable> InitLookupTable();
43
44   //! Set a color for given type of sub-shapes.
45   //! @param [in,out] theColorTable vtkLookupTable to set the color.
46   //! @param [in]  theColorRole type of sub-shapes to set the color.
47   //! @param [in]  theR red color component. Use [0,1] double values.
48   //! @param [in]  theG green color component. Use [0,1] double values.
49   //! @param [in]  theB blue color component. Use [0,1] double values.
50   //! @param [in]  theA the alpha value (the opacity) as a double between 0 and 1.
51   Standard_EXPORT void SetLookupTableColor (vtkLookupTable* theColorTable, 
52                                             const IVtk_MeshType theColorRole, 
53                                             const double theR, const double theG, const double theB, 
54                                             const double theA = 1);
55
56   //! Get a color for given type of sub-shapes.
57   //! @param [in]  theColorTable vtkLookupTable to set the color.
58   //! @param [in]  theColorRole type of sub-shapes to set the color.
59   //! @param [out] theR red color component as a double between 0 and 1.
60   //! @param [out] theG green color component as a double between 0 and 1.
61   //! @param [out] theB blue color component as a double between 0 and 1.
62   Standard_EXPORT void GetLookupTableColor (vtkLookupTable* theColorTable, 
63                                             const IVtk_MeshType theColorRole, 
64                                             double &theR, double &theG, double &theB);
65
66   //! Get a color for given type of sub-shapes.
67   //! @param [in]  theColorTable vtkLookupTable to set the color.
68   //! @param [in]  theColorRole type of sub-shapes to set the color.
69   //! @param [out] theR red color component as a double between 0 and 1.
70   //! @param [out] theG green color component as a double between 0 and 1.
71   //! @param [out] theB blue color component as a double between 0 and 1.
72   //! @param [out] theA the alpha value (the opacity) as a double between 0 and 1.
73   Standard_EXPORT void GetLookupTableColor (vtkLookupTable* theColorTable, 
74                                             const IVtk_MeshType theColorRole, 
75                                             double &theR, double &theG, double &theB, 
76                                             double &theA);
77
78   //! Set up the initial shape mapper parameters with default OCC colors.
79   Standard_EXPORT void InitShapeMapper (vtkMapper* theMapper);
80
81   //! Set up the initial shape mapper parameters with user colors.
82   //! @param [in,out] theMapper mapper to initialize
83   //! @param [in] theColorTable a table with user's colors definition
84   Standard_EXPORT void InitShapeMapper (vtkMapper* theMapper, 
85                                         vtkLookupTable* theColorTable);
86
87 }
88
89 #endif // IVtkTOOLS_H