2 // Created: Tue May 4 18:11:04 1993
3 // Author: Yves FRICAUD
8 #include <Standard_DomainError.hxx>
10 //========================================================================
13 //========================================================================
14 MAT_Arc::MAT_Arc (const Standard_Integer ArcIndex,
15 const Standard_Integer GeomIndex,
16 const Handle(MAT_BasicElt)& FirstElement,
17 const Handle(MAT_BasicElt)& SecondElement)
25 firstElement = FirstElement;
26 secondElement = SecondElement;
29 //========================================================================
32 //========================================================================
33 Standard_Integer MAT_Arc::Index() const
38 //========================================================================
39 // function: GeomIndex
41 //========================================================================
42 Standard_Integer MAT_Arc::GeomIndex() const
47 //========================================================================
48 // function: FirstElement
50 //========================================================================
51 Handle(MAT_BasicElt) MAT_Arc::FirstElement() const
56 //========================================================================
57 // function: SecondElement
59 //========================================================================
60 Handle(MAT_BasicElt) MAT_Arc::SecondElement() const
65 //========================================================================
66 // function: FirstNode
68 //========================================================================
69 Handle(MAT_Node) MAT_Arc::FirstNode() const
74 //========================================================================
75 // function: SecondNode
77 //========================================================================
78 Handle(MAT_Node) MAT_Arc::SecondNode() const
83 //========================================================================
84 // function: TheOtherNode
86 //========================================================================
87 Handle(MAT_Node) MAT_Arc::TheOtherNode(const Handle(MAT_Node)& aNode)const
89 if (FirstNode() == aNode)
91 else if (SecondNode() == aNode)
94 Standard_DomainError::Raise("MAT_Arc::TheOtherNode");
99 //========================================================================
100 // function: HasNeighbour
102 //========================================================================
103 Standard_Boolean MAT_Arc::HasNeighbour(const Handle(MAT_Node)& aNode,
104 const MAT_Side aSide ) const
106 if (aSide == MAT_Left) {
107 // if (aNode == FirstNode()) return (!firstArcLeft == NULL);
108 if (aNode == FirstNode()) return (!firstArcLeft == 0);
109 // if (aNode == SecondNode()) return (!secondArcLeft == NULL);
110 if (aNode == SecondNode()) return (!secondArcLeft == 0);
113 // if (aNode == FirstNode()) return (!firstArcRight == NULL);
114 if (aNode == FirstNode()) return (!firstArcRight == 0);
115 // if (aNode == SecondNode()) return (!secondArcRight == NULL);
116 if (aNode == SecondNode()) return (!secondArcRight == 0);
118 Standard_DomainError::Raise("MAT_Arc::HasNeighbour");
119 return Standard_False;
122 //========================================================================
123 // function: Neighbour
125 //========================================================================
126 Handle(MAT_Arc) MAT_Arc::Neighbour(const Handle(MAT_Node)& aNode,
127 const MAT_Side aSide )
131 if (aSide == MAT_Left) {
132 if (aNode == FirstNode()) return (MAT_Arc*)firstArcLeft;
133 if (aNode == SecondNode()) return (MAT_Arc*)secondArcLeft;
136 if (aNode == FirstNode()) return (MAT_Arc*)firstArcRight;
137 if (aNode == SecondNode()) return (MAT_Arc*)secondArcRight;
139 Standard_DomainError::Raise("MAT_Arc::Neighbour");
140 return (MAT_Arc*)firstArcLeft;
143 //========================================================================
144 // function: SetIndex
146 //========================================================================
147 void MAT_Arc::SetIndex(const Standard_Integer anInteger)
149 arcIndex = anInteger;
152 //========================================================================
153 // function: SetGeomIndex
155 //========================================================================
156 void MAT_Arc::SetGeomIndex(const Standard_Integer anInteger)
158 geomIndex = anInteger;
161 //========================================================================
162 // function: SetFirstElement
164 //========================================================================
165 void MAT_Arc::SetFirstElement(const Handle(MAT_BasicElt)& aBasicElt)
167 firstElement = aBasicElt;
170 //========================================================================
171 // function: SetSecondElement
173 //========================================================================
174 void MAT_Arc::SetSecondElement(const Handle(MAT_BasicElt)& aBasicElt)
176 secondElement = aBasicElt;
179 //========================================================================
180 // function: SetFirstNode
182 //========================================================================
183 void MAT_Arc::SetFirstNode(const Handle(MAT_Node)& aNode)
188 //========================================================================
189 // function: SetSecondNode
191 //========================================================================
192 void MAT_Arc::SetSecondNode(const Handle_MAT_Node& aNode)
197 //========================================================================
198 // function: SetFirstArc
200 //========================================================================
201 void MAT_Arc::SetFirstArc(const MAT_Side aSide ,
202 const Handle(MAT_Arc)& anArc)
204 if (aSide == MAT_Left)
205 firstArcLeft = anArc.operator->();
207 firstArcRight = anArc.operator->();
210 //========================================================================
211 // function: SetSecondArc
213 //========================================================================
214 void MAT_Arc::SetSecondArc(const MAT_Side aSide ,
215 const Handle(MAT_Arc)& anArc)
217 if (aSide == MAT_Left)
218 secondArcLeft = anArc.operator->();
220 secondArcRight = anArc.operator->();
223 //========================================================================
224 // function: SetNeighbour
226 //========================================================================
227 void MAT_Arc::SetNeighbour(const MAT_Side aSide,
228 const Handle(MAT_Node)& aNode,
229 const Handle(MAT_Arc)& anArc)
231 if (aSide == MAT_Left) {
232 if (aNode == FirstNode())
233 firstArcLeft = anArc.operator->();
234 else if (aNode == SecondNode())
235 secondArcLeft = anArc.operator->();
237 Standard_DomainError::Raise("MAT_Arc::SetNeighbour");
240 if (aNode == FirstNode())
241 firstArcRight = anArc.operator->();
242 else if (aNode == SecondNode())
243 secondArcRight = anArc.operator->();
245 Standard_DomainError::Raise("MAT_Arc::SetNeighbour");