1 // File: StepToTopoDS_Tool.cxx
2 // Created: Tue Jan 3 11:34:47 1995
3 // Author: Frederic MAUPAS
6 // Complement : CKY, alimentation du TransientProcess
7 // (Bind general; BindVertex ?)
9 #include <StepToTopoDS_Tool.ixx>
10 #include <TransferBRep.hxx>
12 // ============================================================================
13 // Method : StepToTopoDS_Tool::StepToTopoDS_Tool
14 // Purpose : Empty Constructor
15 // ============================================================================
17 StepToTopoDS_Tool::StepToTopoDS_Tool() {}
19 // ============================================================================
20 // Method : StepToTopoDS_Tool::StepToTopoDS_Tool
21 // Purpose : Constructor with a Map and a TransientProcess
22 // ============================================================================
24 StepToTopoDS_Tool::StepToTopoDS_Tool(const StepToTopoDS_DataMapOfTRI& Map,
25 const Handle(Transfer_TransientProcess)& TP)
30 // ============================================================================
32 // Purpose : Init with a Map
33 // ============================================================================
35 void StepToTopoDS_Tool::Init(const StepToTopoDS_DataMapOfTRI& Map,
36 const Handle(Transfer_TransientProcess)& TP)
38 myComputePC = Standard_False;
40 StepToTopoDS_PointVertexMap aVertexMap;
41 StepToTopoDS_PointEdgeMap aEdgeMap;
44 myVertexMap = aVertexMap;
48 myNbC0Surf = myNbC1Surf = myNbC2Surf = 0;
49 myNbC0Cur2 = myNbC1Cur2 = myNbC2Cur2 = 0;
50 myNbC0Cur3 = myNbC1Cur3 = myNbC2Cur3 = 0;
55 // ============================================================================
56 // Method : StepToTopoDS_Tool::IsBound
57 // Purpose : Indicates weither a TRI is bound or not in the Map
58 // ============================================================================
60 Standard_Boolean StepToTopoDS_Tool::IsBound(const Handle(StepShape_TopologicalRepresentationItem)& TRI)
62 return myDataMap.IsBound(TRI);
65 // ============================================================================
66 // Method : StepToTopoDS_Tool::Bind
67 // Purpose : Binds a TRI with a Shape in the Map
68 // ============================================================================
70 void StepToTopoDS_Tool::Bind(const Handle(StepShape_TopologicalRepresentationItem)& TRI, const TopoDS_Shape& S)
72 myDataMap.Bind(TRI, S);
73 TransferBRep::SetShapeResult (myTransProc,TRI,S);
76 // ============================================================================
77 // Method : StepToTopoDS_Tool::Find
78 // Purpose : Returns the Shape corresponding to the bounded TRI
79 // ============================================================================
81 const TopoDS_Shape& StepToTopoDS_Tool::Find(const Handle(StepShape_TopologicalRepresentationItem)& TRI)
83 return myDataMap.Find(TRI);
87 // ============================================================================
88 // Method : StepToTopoDS_Tool::ClearEdgeMap
90 // ============================================================================
92 void StepToTopoDS_Tool::ClearEdgeMap()
97 // ============================================================================
98 // Method : StepToTopoDS_Tool::IsEdgeBound
100 // ============================================================================
102 Standard_Boolean StepToTopoDS_Tool::IsEdgeBound(const StepToTopoDS_PointPair& PP)
104 return myEdgeMap.IsBound(PP);
107 // ============================================================================
108 // Method : StepToTopoDS_Tool_BindEdge
110 // ============================================================================
112 void StepToTopoDS_Tool::BindEdge(const StepToTopoDS_PointPair& PP, const TopoDS_Edge& E)
114 myEdgeMap.Bind(PP, E);
117 // ============================================================================
118 // Method : StepToTopoDS_Tool::FindEdge
120 // ============================================================================
122 const TopoDS_Edge& StepToTopoDS_Tool::FindEdge(const StepToTopoDS_PointPair& PP)
124 return myEdgeMap.Find(PP);
127 // ============================================================================
128 // Method : StepToTopoDS_Tool::ClearVertexMap
130 // ============================================================================
132 void StepToTopoDS_Tool::ClearVertexMap()
137 // ============================================================================
138 // Method : StepToTopoDS_Tool::IsVertexBound
140 // ============================================================================
142 Standard_Boolean StepToTopoDS_Tool::IsVertexBound(const Handle(StepGeom_CartesianPoint)& PG)
144 return myVertexMap.IsBound(PG);
147 // ============================================================================
148 // Method : StepToTopoDS_Tool::BindVertex
150 // ============================================================================
152 void StepToTopoDS_Tool::BindVertex(const Handle(StepGeom_CartesianPoint)& P, const TopoDS_Vertex& V)
154 myVertexMap.Bind(P, V);
156 TransferBRep::SetShapeResult (myTransProc,P,V);
160 // ============================================================================
161 // Method : StepToTopoDS_Tool::FindVertex
163 // ============================================================================
165 const TopoDS_Vertex& StepToTopoDS_Tool::FindVertex(const Handle(StepGeom_CartesianPoint)& P)
167 return myVertexMap.Find(P);
170 // ============================================================================
171 // Method : ComputePCurve
173 // ============================================================================
175 void StepToTopoDS_Tool::ComputePCurve(const Standard_Boolean B)
180 // ============================================================================
181 // Method : ComputePCurve
183 // ============================================================================
185 Standard_Boolean StepToTopoDS_Tool::ComputePCurve() const
190 // ============================================================================
191 // Method : StepToTopoDS_Tool::TransientProcess
192 // Purpose : Returns the TransientProcess
193 // ============================================================================
195 Handle(Transfer_TransientProcess) StepToTopoDS_Tool::TransientProcess() const
205 void StepToTopoDS_Tool::AddContinuity (const Handle(Geom_Surface)& GeomSurf)
207 switch(GeomSurf->Continuity())
209 case GeomAbs_C0: myNbC0Surf ++; break;
210 case GeomAbs_C1: myNbC1Surf ++; break;
211 default: myNbC2Surf ++;
215 void StepToTopoDS_Tool::AddContinuity (const Handle(Geom_Curve)& GeomCurve)
217 switch(GeomCurve->Continuity())
219 case GeomAbs_C0: myNbC0Cur3 ++; break;
220 case GeomAbs_C1: myNbC1Cur3 ++; break;
221 default: myNbC2Cur3 ++;
225 void StepToTopoDS_Tool::AddContinuity (const Handle(Geom2d_Curve)& GeomCur2d)
227 switch(GeomCur2d->Continuity())
229 case GeomAbs_C0: myNbC0Cur2 ++; break;
230 case GeomAbs_C1: myNbC1Cur2 ++; break;
231 default: myNbC2Cur2 ++;
239 Standard_Integer StepToTopoDS_Tool::C0Surf() const
245 Standard_Integer StepToTopoDS_Tool::C1Surf() const
251 Standard_Integer StepToTopoDS_Tool::C2Surf() const
261 Standard_Integer StepToTopoDS_Tool::C0Cur2() const
267 Standard_Integer StepToTopoDS_Tool::C1Cur2() const
273 Standard_Integer StepToTopoDS_Tool::C2Cur2() const
283 Standard_Integer StepToTopoDS_Tool::C0Cur3() const
289 Standard_Integer StepToTopoDS_Tool::C1Cur3() const
295 Standard_Integer StepToTopoDS_Tool::C2Cur3() const