1 // Created on: 2011-10-11
2 // Created by: Roman KOZLOV
3 // Copyright (c) 2011-2014 OPEN CASCADE SAS
5 // This file is part of Open CASCADE Technology software library.
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.
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
16 #ifndef __IVTK_TYPES_H__
17 #define __IVTK_TYPES_H__
20 #include <NCollection_List.hxx>
21 #include <NCollection_TListIterator.hxx>
22 #include <NCollection_DataMap.hxx>
23 #include <NCollection_Map.hxx>
24 #include <Standard_Integer.hxx>
25 #include <Standard_Boolean.hxx>
27 typedef Standard_Size IVtk_IdType;
29 typedef IVtk_IdType IVtk_PointId;
31 typedef IVtk_IdType IVtk_FaceId;
32 typedef IVtk_IdType IVtk_EdgeId;
34 typedef NCollection_List <IVtk_IdType> IVtk_ShapeIdList;
35 typedef NCollection_List <IVtk_PointId> IVtk_PointIdList;
37 typedef NCollection_DataMap <IVtk_IdType, IVtk_ShapeIdList> IVtk_SubShapeMap;
38 typedef NCollection_Map <IVtk_IdType> IVtk_IdTypeMap;
40 typedef NCollection_List <gp_XY> IVtk_Pnt2dList;
42 //! @enum IVtk_SelectionMode Selection modes for 3D shapes
44 //! Enumeration that describes all supported selection modes for 3D shapes.
45 //! SM_None means that the shape should become non-selectable.
46 //! SM_Shape makes the shape selectable as a whole.
47 //! Other modes activate selection of sub-shapes of corresponding types.
50 SM_None = -1, //!< No selection
51 SM_Shape = 0, //!< Shape selection
52 SM_Vertex = 1, //!< Vertex selection
53 SM_Edge = 2, //!< Edge selection
54 SM_Wire = 3, //!< Wire selection
55 SM_Face = 4, //!< Face selection
56 SM_Shell = 5, //!< Shell selection
57 SM_Solid = 6, //!< Solid selection
58 SM_CompSolid = 7, //!< CompSolid selection
59 SM_Compound = 8, //!< Compound selection
62 typedef NCollection_List< IVtk_SelectionMode > IVtk_SelectionModeList;
64 //! @enum IVtk_MeshType Types of mesh parts for 3D shapes
66 //! Enumeration that describes all supported types of mesh parts for 3D shapes.
69 MT_Undefined = -1, //!< Undefined
70 MT_IsoLine = 0, //!< Isoline
71 MT_FreeVertex = 1, //!< Free vertex
72 MT_SharedVertex = 2, //!< Shared vertex
73 MT_FreeEdge = 3, //!< Free edge
74 MT_BoundaryEdge = 4, //!< Boundary edge (related to a single face)
75 MT_SharedEdge = 5, //!< Shared edge (related to several faces)
76 MT_WireFrameFace = 6, //!< Wireframe face
77 MT_ShadedFace = 7 //!< Shaded face
80 //! @enum IVtk_DisplayMode Display modes for 3D shapes
82 //! Enumeration that describes all supported display modes for 3D shapes.
85 DM_Wireframe = 0, //!< Wireframe display mode
86 DM_Shading = 1 //!< Shaded display mode
89 #endif // __IVTK_TYPES_H__