fc9b36d6 |
1 | // Copyright (c) 2013-2014 OPEN CASCADE SAS |
2 | // |
3 | // This file is part of Open CASCADE Technology software library. |
4 | // |
5 | // This library is free software; you can redistribute it and/or modify it under |
6 | // the terms of the GNU Lesser General Public License version 2.1 as published |
7 | // by the Free Software Foundation, with special exception defined in the file |
8 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
9 | // distribution for complete text of the license and disclaimer of any warranty. |
10 | // |
11 | // Alternatively, this file may be used under the terms of Open CASCADE |
12 | // commercial license or contractual agreement. |
13 | |
14 | #ifndef _MeshTest_DrawableMesh_HeaderFile |
15 | #define _MeshTest_DrawableMesh_HeaderFile |
16 | |
17 | #include <Standard.hxx> |
ec357c5c |
18 | #include <Standard_Type.hxx> |
ceb418e1 |
19 | #include <BRepMesh_IncrementalMesh.hxx> |
fc9b36d6 |
20 | #include <TColStd_SequenceOfInteger.hxx> |
21 | #include <Draw_Drawable3D.hxx> |
fc9b36d6 |
22 | #include <Standard_OStream.hxx> |
23 | #include <Draw_Interpretor.hxx> |
24 | |
25 | class TopoDS_Shape; |
fc9b36d6 |
26 | class Draw_Display; |
fc9b36d6 |
27 | |
28 | //! A drawable mesh. |
29 | //! Provides a mesh object inherited from Drawable3d to draw a triangulation. |
30 | //! It contains a sequence of highlighted edges and highlighted vertices. <br> |
31 | class MeshTest_DrawableMesh : public Draw_Drawable3D |
32 | { |
33 | public: |
34 | |
35 | Standard_EXPORT MeshTest_DrawableMesh(); |
36 | |
ceb418e1 |
37 | Standard_EXPORT MeshTest_DrawableMesh(const TopoDS_Shape& theShape, |
38 | const Standard_Real theDeflection); |
fc9b36d6 |
39 | |
ceb418e1 |
40 | Standard_EXPORT MeshTest_DrawableMesh(const Handle(BRepMesh_IncrementalMesh)& theMesher); |
fc9b36d6 |
41 | |
ceb418e1 |
42 | Standard_EXPORT void Add(const TopoDS_Shape& theShape); |
fc9b36d6 |
43 | |
ceb418e1 |
44 | Standard_EXPORT TColStd_SequenceOfInteger& Edges(); |
fc9b36d6 |
45 | |
ceb418e1 |
46 | Standard_EXPORT TColStd_SequenceOfInteger& Vertices(); |
fc9b36d6 |
47 | |
ceb418e1 |
48 | Standard_EXPORT TColStd_SequenceOfInteger& Triangles(); |
fc9b36d6 |
49 | |
79104795 |
50 | Standard_EXPORT void DrawOn(Draw_Display& theDisplay) const Standard_OVERRIDE; |
fc9b36d6 |
51 | |
79104795 |
52 | Standard_EXPORT virtual Handle(Draw_Drawable3D) Copy() const Standard_OVERRIDE; |
fc9b36d6 |
53 | |
79104795 |
54 | Standard_EXPORT virtual void Dump(Standard_OStream& theStream) const Standard_OVERRIDE; |
fc9b36d6 |
55 | |
79104795 |
56 | Standard_EXPORT virtual void Whatis(Draw_Interpretor& theDi) const Standard_OVERRIDE; |
fc9b36d6 |
57 | |
ceb418e1 |
58 | Standard_EXPORT const Handle(BRepMesh_IncrementalMesh)& Mesher() const; |
fc9b36d6 |
59 | |
ec357c5c |
60 | DEFINE_STANDARD_RTTI(MeshTest_DrawableMesh, Draw_Drawable3D) |
fc9b36d6 |
61 | |
62 | private: |
63 | |
ceb418e1 |
64 | Handle(BRepMesh_IncrementalMesh) myMesher; |
65 | Standard_Real myDeflection; |
66 | TColStd_SequenceOfInteger myEdges; |
67 | TColStd_SequenceOfInteger myVertices; |
68 | TColStd_SequenceOfInteger myTriangles; |
fc9b36d6 |
69 | }; |
70 | |
71 | DEFINE_STANDARD_HANDLE(MeshTest_DrawableMesh, Draw_Drawable3D) |
72 | |
73 | #endif |