0026377: Passing Handle objects as arguments to functions as non-const reference...
[occt.git] / src / IFSelect / IFSelect_SelectDiff.cxx
1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14
15 #include <IFGraph_Compare.hxx>
16 #include <IFSelect_SelectDiff.hxx>
17 #include <Interface_EntityIterator.hxx>
18 #include <Interface_Graph.hxx>
19 #include <Standard_Type.hxx>
20 #include <TCollection_AsciiString.hxx>
21
22 IMPLEMENT_STANDARD_RTTIEXT(IFSelect_SelectDiff,IFSelect_SelectControl)
23
24 IFSelect_SelectDiff::IFSelect_SelectDiff ()    {  }
25
26
27     Interface_EntityIterator  IFSelect_SelectDiff::RootResult
28   (const Interface_Graph& G) const 
29 {
30   IFGraph_Compare GC(G);
31   GC.GetFromIter(MainInput()->RootResult(G),Standard_True);    // first
32   if (HasSecondInput())
33     GC.GetFromIter(SecondInput()->RootResult(G),Standard_False);   // second
34   return GC.FirstOnly();
35 }
36
37     Standard_Boolean  IFSelect_SelectDiff::HasUniqueResult () const 
38       {  return Standard_True;  }    // naturellement unique
39
40     TCollection_AsciiString  IFSelect_SelectDiff::Label () const 
41       {  return TCollection_AsciiString("Differences");  }