]> SALOME platform Git repositories - modules/geom.git/blob - src/GEOMImpl/BRepBuilderAPI_ModifyShape_21423.cxx
Salome HOME
Fix for the "0021580: GEOM EDF: SetColor does not work" issue.
[modules/geom.git] / src / GEOMImpl / BRepBuilderAPI_ModifyShape_21423.cxx
1 // File:        BRepBuilderAPI_ModifyShape_21423.cxx
2 // Created:     Fri Dec  2 10:37:08 1994
3 // Author:      Jacques GOUSSARD
4 //              <jag@topsn2>
5
6 #include <BRepBuilderAPI_ModifyShape_21423.hxx>
7
8 #include <BRepTools_Modification.hxx>
9
10 #include <TopoDS_Shape.hxx>
11 #include <TopTools_ListOfShape.hxx>
12
13 #include <Standard_NullObject.hxx>
14 #include <Standard_NoSuchObject.hxx>
15
16 //=======================================================================
17 //function : BRepBuilderAPI_ModifyShape_21423
18 //purpose  : 
19 //=======================================================================
20
21 BRepBuilderAPI_ModifyShape_21423::BRepBuilderAPI_ModifyShape_21423 () {}
22
23 //=======================================================================
24 //function : BRepBuilderAPI_ModifyShape_21423
25 //purpose  : 
26 //=======================================================================
27
28 BRepBuilderAPI_ModifyShape_21423::BRepBuilderAPI_ModifyShape_21423 (const TopoDS_Shape& S):
29    myModifier(S), myInitialShape(S)
30 {}
31
32
33 //=======================================================================
34 //function : BRepBuilderAPI_ModifyShape_21423
35 //purpose  : 
36 //=======================================================================
37
38 BRepBuilderAPI_ModifyShape_21423::BRepBuilderAPI_ModifyShape_21423 
39     (const Handle(BRepTools_Modification)& M)
40 {
41   myModification = M;
42 }
43
44
45 //=======================================================================
46 //function : BRepBuilderAPI_ModifyShape_21423
47 //purpose  : 
48 //=======================================================================
49
50 BRepBuilderAPI_ModifyShape_21423::BRepBuilderAPI_ModifyShape_21423 
51   (const TopoDS_Shape& S,
52    const Handle(BRepTools_Modification)& M): myModifier(S),myInitialShape(S)
53 {
54   myModification = M;
55   DoModif();
56 }
57
58
59 //=======================================================================
60 //function : DoModif
61 //purpose  : 
62 //=======================================================================
63
64 void BRepBuilderAPI_ModifyShape_21423::DoModif ()
65 {
66   if (myInitialShape.IsNull() || myModification.IsNull()) {
67     Standard_NullObject::Raise();
68   }
69   myModifier.Perform(myModification);
70   if (myModifier.IsDone()) {
71     Done();
72     myShape = myModifier.ModifiedShape(myInitialShape);
73   }
74   else {
75     NotDone();
76   }
77 }
78
79
80 //=======================================================================
81 //function : DoModif
82 //purpose  : 
83 //=======================================================================
84
85 void BRepBuilderAPI_ModifyShape_21423::DoModif (const TopoDS_Shape& S)
86 {
87   if (!S.IsEqual(myInitialShape) || !IsDone()) {
88     myInitialShape = S;
89     myModifier.Init(S);
90     DoModif();
91   }
92 }
93
94
95 //=======================================================================
96 //function : DoModif
97 //purpose  : 
98 //=======================================================================
99
100 void BRepBuilderAPI_ModifyShape_21423::DoModif (const Handle(BRepTools_Modification)& M)
101 {
102   myModification = M;
103   DoModif();
104 }
105
106
107 //=======================================================================
108 //function : DoModif
109 //purpose  : 
110 //=======================================================================
111
112 void BRepBuilderAPI_ModifyShape_21423::DoModif (const TopoDS_Shape& S,
113                                    const Handle(BRepTools_Modification)& M)
114 {
115   myInitialShape = S;
116   myModifier.Init(S);
117   myModification = M;
118   DoModif();
119 }
120
121
122 //=======================================================================
123 //function : ModifiedShape
124 //purpose  : 
125 //=======================================================================
126
127 const TopoDS_Shape& BRepBuilderAPI_ModifyShape_21423::ModifiedShape
128   (const TopoDS_Shape& S) const
129 {
130   return myModifier.ModifiedShape(S);
131 }
132
133 //=======================================================================
134 //function : Modified
135 //purpose  : 
136 //=======================================================================
137
138 const TopTools_ListOfShape& BRepBuilderAPI_ModifyShape_21423::Modified
139   (const TopoDS_Shape& F)
140 {
141   myGenerated.Clear();
142   myGenerated.Append(myModifier.ModifiedShape(F));
143   return myGenerated;
144 }