0031682: Visualization - Prs3d_ShadingAspect::SetTransparency() has no effect with...
[occt.git] / src / IVtk / IVtk_Types.hxx
CommitLineData
ee9e67ed 1// Created on: 2011-10-11
913a4c4a 2// Created by: Roman KOZLOV
ee9e67ed 3// Copyright (c) 2011-2014 OPEN CASCADE SAS
4//
913a4c4a 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 __IVTK_TYPES_H__
17#define __IVTK_TYPES_H__
18
19#include <gp_XY.hxx>
20#include <NCollection_List.hxx>
21#include <NCollection_TListIterator.hxx>
22#include <NCollection_DataMap.hxx>
23#include <NCollection_Map.hxx>
913a4c4a 24#include <Standard_Boolean.hxx>
ee9e67ed 25#include <Standard_Integer.hxx>
26#include <vtkType.h>
913a4c4a 27
ee9e67ed 28#ifdef VTK_USE_64BIT_IDS
29#if defined(_WIN32) && !defined(_WIN64)
30#error "64-bit VTK library can not be linked for 32-bit target platform"
31#endif
32#else
33#ifdef _WIN64
34#error "32-bit VTK library can not be linked for 64-bit target platform"
35#endif
36#endif
913a4c4a 37
ee9e67ed 38
39typedef vtkIdType IVtk_IdType;
913a4c4a 40typedef IVtk_IdType IVtk_PointId;
41
42typedef IVtk_IdType IVtk_FaceId;
43typedef IVtk_IdType IVtk_EdgeId;
44
45typedef NCollection_List <IVtk_IdType> IVtk_ShapeIdList;
46typedef NCollection_List <IVtk_PointId> IVtk_PointIdList;
47
48typedef NCollection_DataMap <IVtk_IdType, IVtk_ShapeIdList> IVtk_SubShapeMap;
49typedef NCollection_Map <IVtk_IdType> IVtk_IdTypeMap;
50
51typedef NCollection_List <gp_XY> IVtk_Pnt2dList;
52
ee9e67ed 53
913a4c4a 54//! @enum IVtk_SelectionMode Selection modes for 3D shapes
55//!
56//! Enumeration that describes all supported selection modes for 3D shapes.
57//! SM_None means that the shape should become non-selectable.
58//! SM_Shape makes the shape selectable as a whole.
59//! Other modes activate selection of sub-shapes of corresponding types.
60typedef enum
61{
62 SM_None = -1, //!< No selection
63 SM_Shape = 0, //!< Shape selection
64 SM_Vertex = 1, //!< Vertex selection
65 SM_Edge = 2, //!< Edge selection
66 SM_Wire = 3, //!< Wire selection
67 SM_Face = 4, //!< Face selection
68 SM_Shell = 5, //!< Shell selection
69 SM_Solid = 6, //!< Solid selection
70 SM_CompSolid = 7, //!< CompSolid selection
71 SM_Compound = 8, //!< Compound selection
72} IVtk_SelectionMode;
73
74typedef NCollection_List< IVtk_SelectionMode > IVtk_SelectionModeList;
75
76//! @enum IVtk_MeshType Types of mesh parts for 3D shapes
77//!
78//! Enumeration that describes all supported types of mesh parts for 3D shapes.
79typedef enum
80{
81 MT_Undefined = -1, //!< Undefined
82 MT_IsoLine = 0, //!< Isoline
83 MT_FreeVertex = 1, //!< Free vertex
84 MT_SharedVertex = 2, //!< Shared vertex
85 MT_FreeEdge = 3, //!< Free edge
86 MT_BoundaryEdge = 4, //!< Boundary edge (related to a single face)
87 MT_SharedEdge = 5, //!< Shared edge (related to several faces)
88 MT_WireFrameFace = 6, //!< Wireframe face
2ba1172b 89 MT_ShadedFace = 7, //!< Shaded face
90 MT_SeamEdge = 8 //!< Seam edge between faces
913a4c4a 91} IVtk_MeshType;
92
93//! @enum IVtk_DisplayMode Display modes for 3D shapes
94//!
95//! Enumeration that describes all supported display modes for 3D shapes.
96typedef enum
97{
98 DM_Wireframe = 0, //!< Wireframe display mode
99 DM_Shading = 1 //!< Shaded display mode
100} IVtk_DisplayMode;
101
102#endif // __IVTK_TYPES_H__
103