0024023: Revamp the OCCT Handle -- downcast (automatic)
[occt.git] / src / TopOpeBRepBuild / TopOpeBRepBuild_EdgeBuilder.cxx
1 // Created on: 1995-12-21
2 // Created by: Jean Yves LEBEY
3 // Copyright (c) 1995-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 #include <TopOpeBRepBuild_EdgeBuilder.ixx>
18 #include <TopOpeBRepBuild_Pave.hxx>
19
20 //=======================================================================
21 //function : TopOpeBRepBuild_EdgeBuilder
22 //purpose  : 
23 //=======================================================================
24
25 TopOpeBRepBuild_EdgeBuilder::TopOpeBRepBuild_EdgeBuilder()
26 {
27 }
28
29 //=======================================================================
30 //function : TopOpeBRepBuild_EdgeBuilder
31 //purpose  : 
32 //=======================================================================
33
34 TopOpeBRepBuild_EdgeBuilder::TopOpeBRepBuild_EdgeBuilder
35 (TopOpeBRepBuild_PaveSet& LS, TopOpeBRepBuild_PaveClassifier& LC,
36  const Standard_Boolean ForceClass)
37 {
38   InitEdgeBuilder(LS,LC,ForceClass);
39 }
40
41 //=======================================================================
42 //function : InitEdgeBuilder
43 //purpose  : 
44 //=======================================================================
45
46 void TopOpeBRepBuild_EdgeBuilder::InitEdgeBuilder
47 (TopOpeBRepBuild_LoopSet& LS, TopOpeBRepBuild_LoopClassifier& LC,
48  const Standard_Boolean ForceClass)
49 {
50   InitAreaBuilder(LS,LC,ForceClass);
51 }
52
53 //=======================================================================
54 //function : InitEdge
55 //purpose  : 
56 //=======================================================================
57
58 void TopOpeBRepBuild_EdgeBuilder::InitEdge()
59 {
60   InitArea();
61 }
62
63 //=======================================================================
64 //function : MoreEdge
65 //purpose  : 
66 //=======================================================================
67
68 Standard_Boolean TopOpeBRepBuild_EdgeBuilder::MoreEdge() const
69 {
70   Standard_Boolean b = MoreArea();
71   return b;
72 }
73
74 //=======================================================================
75 //function : NextEdge
76 //purpose  : 
77 //=======================================================================
78
79 void TopOpeBRepBuild_EdgeBuilder::NextEdge()
80 {
81   NextArea();
82 }
83
84 //=======================================================================
85 //function : InitVertex
86 //purpose  : 
87 //=======================================================================
88
89 void TopOpeBRepBuild_EdgeBuilder::InitVertex()
90 {
91   InitLoop();
92 }
93
94 //=======================================================================
95 //function : MoreVertex
96 //purpose  : 
97 //=======================================================================
98
99 Standard_Boolean TopOpeBRepBuild_EdgeBuilder::MoreVertex() const
100 {
101   Standard_Boolean b = MoreLoop();
102   return b;
103 }
104
105 //=======================================================================
106 //function : NextVertex
107 //purpose  : 
108 //=======================================================================
109
110 void TopOpeBRepBuild_EdgeBuilder::NextVertex()
111 {
112   NextLoop();
113 }
114
115 //=======================================================================
116 //function : Vertex
117 //purpose  : 
118 //=======================================================================
119
120 const TopoDS_Shape& TopOpeBRepBuild_EdgeBuilder::Vertex() const
121 {
122   const Handle(TopOpeBRepBuild_Loop)& L = Loop();
123   Handle(TopOpeBRepBuild_Pave) PV (Handle(TopOpeBRepBuild_Pave)::DownCast (L));
124   const TopoDS_Shape& V = PV->Vertex();
125   return V;
126 }
127
128 //=======================================================================
129 //function : Parameter
130 //purpose  : 
131 //=======================================================================
132
133 Standard_Real TopOpeBRepBuild_EdgeBuilder::Parameter() const
134 {
135   const Handle(TopOpeBRepBuild_Loop)& L = Loop();
136   Handle(TopOpeBRepBuild_Pave) PV (Handle(TopOpeBRepBuild_Pave)::DownCast (L));
137   Standard_Real parV = PV->Parameter();
138   return parV;
139 }