0025099: Visualization - Option to show vertices of a shape
[occt.git] / src / Prs3d / Prs3d_ShapeTool.cdl
1 -- Created on: 1993-01-27
2 -- Created by: Jean-Louis Frenkel
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class ShapeTool from Prs3d
18         ---Purpose: describes the behaviour requested for a wireframe
19         --          shape presentation.
20
21 uses
22     Shape             from TopoDS,
23     Face              from TopoDS,
24     Edge              from TopoDS,
25     Vertex            from TopoDS,
26     HSequenceOfShape  from TopTools,
27     Box               from Bnd,
28     Location          from TopLoc,
29     Triangulation     from Poly,
30     PolygonOnTriangulation     from Poly,
31     Polygon3D         from Poly,
32     HArray1OfInteger  from TColStd,
33     Explorer          from TopExp,
34     IndexedDataMapOfShapeListOfShape from TopTools,
35     IndexedMapOfShape                from TopTools
36
37 is
38
39     Create ( theShape      : Shape from TopoDS;
40              theAllVertices: Boolean from Standard = Standard_False)
41     ---Purpose: Constructs the tool and initializes it using theShape and theAllVertices
42     -- (optional) arguments. By default, only isolated and internal vertices are considered,
43     -- however if theAllVertices argument is equal to True, all shape's vertices are taken into account.
44     returns ShapeTool from Prs3d;
45
46     InitFace (me: in out);
47     MoreFace (me) returns Boolean from Standard;
48     NextFace (me: in out);
49     GetFace(me) returns Face from TopoDS;
50         ---C++: return const&
51     FaceBound(me) returns Box from Bnd;
52     IsPlanarFace(me) returns Boolean from Standard;
53
54     InitCurve (me: in out);
55     MoreCurve (me) returns Boolean from Standard;
56     NextCurve (me: in out);
57     GetCurve(me) returns Edge from TopoDS;
58         ---C++: return const&
59     CurveBound(me) returns Box from Bnd;
60     Neighbours(me) returns Integer from Standard;   
61     FacesOfEdge(me) returns HSequenceOfShape from TopTools;
62
63     InitVertex(me: in out);
64     MoreVertex(me) returns Boolean from Standard;
65     NextVertex(me: in out);
66     GetVertex(me) returns Vertex from TopoDS;
67         ---C++: return const&
68
69     HasSurface(me) returns Boolean;
70     
71     CurrentTriangulation(me; l: out Location from TopLoc) 
72     returns Triangulation from Poly;
73
74     HasCurve(me) returns Boolean;
75
76     PolygonOnTriangulation(me; Indices: out PolygonOnTriangulation from  Poly;
77                                T:       out Triangulation          from Poly; 
78                                l:       out Location               from TopLoc); 
79                                
80     Polygon3D(me; l: out Location from TopLoc) 
81     returns Polygon3D from Poly;
82
83 fields
84     myShape:        Shape                            from TopoDS;
85     myFaceExplorer: Explorer                         from TopExp;
86     myEdgeMap:      IndexedDataMapOfShapeListOfShape from TopTools;
87     myVertexMap:    IndexedMapOfShape                from TopTools;
88     myEdge :        Integer                          from Standard;
89     myVertex :      Integer                          from Standard;
90
91 end ShapeTool from Prs3d;