1 // Created on: 2011-10-12
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_ISHAPEDATA_H__
17 #define __IVTK_ISHAPEDATA_H__
19 #include <IVtk_Interface.hxx>
20 #include <IVtk_Types.hxx>
22 DEFINE_STANDARD_HANDLE( IVtk_IShapeData, IVtk_Interface )
24 //! @class IVtk_IShapeData
25 //! @brief Interface for working with triangulated data.
26 class IVtk_IShapeData : public IVtk_Interface
29 typedef Handle(IVtk_IShapeData) Handle;
31 virtual ~IVtk_IShapeData() { }
33 DEFINE_STANDARD_RTTI( IVtk_IShapeData )
35 //! Insert a coordinate
36 //! @param [in] theX X coordinate
37 //! @param [in] theY Y coordinate
38 //! @param [in] theZ Z coordinate
39 //! @return id of added point
40 virtual IVtk_PointId InsertCoordinate (double theX, double theY, double theZ) = 0;
43 //! @param [in] theShapeID id of the sub-shape to which the vertex belongs.
44 //! @param [in] thePointId id of the point that defines the coordinates of the vertex
45 //! @param [in] theMeshType mesh type of the sub-shape (MT_Undefined by default)
46 virtual void InsertVertex (const IVtk_IdType theShapeID,
47 const IVtk_PointId thePointId,
48 const IVtk_MeshType theMeshType = MT_Undefined) = 0;
51 //! @param [in] theShapeID id of the subshape to which the line belongs.
52 //! @param [in] thePointId1 id of the first point
53 //! @param [in] thePointId2 id of the second point
54 //! @param [in] theMeshType mesh type of the subshape (MT_Undefined by default)
55 virtual void InsertLine (const IVtk_IdType theShapeID,
56 const IVtk_PointId thePointId1,
57 const IVtk_PointId thePointId2,
58 const IVtk_MeshType theMeshType = MT_Undefined) = 0;
60 //! Insert a poly-line.
61 //! @param [in] shapeID id of the subshape to which the polyline belongs.
62 //! @param [in] pointIds vector of point ids
63 //! @param [in] meshType mesh type of the subshape (MT_Undefined by default)
64 virtual void InsertLine (const IVtk_IdType theShapeID,
65 const IVtk_PointIdList* thePointIds,
66 const IVtk_MeshType theMeshType = MT_Undefined) = 0;
69 //! @param [in] theShapeID id of the subshape to which the triangle belongs.
70 //! @param [in] thePointId1 id of the first point
71 //! @param [in] thePointId2 id of the second point
72 //! @param [in] thePointId3 id of the third point
73 //! @param [in] theMeshType mesh type of the subshape (MT_Undefined by default)
74 virtual void InsertTriangle (const IVtk_IdType theShapeID,
75 const IVtk_PointId thePointId1,
76 const IVtk_PointId thePointId2,
77 const IVtk_PointId thePointId3,
78 const IVtk_MeshType theMeshType = MT_Undefined) = 0;
81 #endif // __IVTK_ISHAPEDATA_H__