1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-07-20 12:45:50 +03:00
occt/src/IFSelect/IFSelect_SelectSignedShared.cxx
bugmaster b311480ed5 0023024: Update headers of OCCT files
Added appropriate copyright and license information in source files
2012-03-21 19:43:04 +04:00

68 lines
2.7 KiB
C++
Executable File

// Copyright (c) 1999-2012 OPEN CASCADE SAS
//
// The content of this file is subject to the Open CASCADE Technology Public
// License Version 6.5 (the "License"). You may not use the content of this file
// except in compliance with the License. Please obtain a copy of the License
// at http://www.opencascade.org and read it completely before using this file.
//
// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
//
// The Original Code and all software distributed under the License is
// distributed on an "AS IS" basis, without warranty of any kind, and the
// Initial Developer hereby disclaims all such warranties, including without
// limitation, any warranties of merchantability, fitness for a particular
// purpose or non-infringement. Please see the License for the specific terms
// and conditions governing the rights and limitations under the License.
#include <IFSelect_SelectSignedShared.ixx>
IFSelect_SelectSignedShared::IFSelect_SelectSignedShared
(const Handle(IFSelect_Signature)& matcher,
const Standard_CString signtext, const Standard_Boolean exact,
const Standard_Integer level)
: IFSelect_SelectExplore (level) ,
thematcher (matcher) , thesigntext (signtext) , theexact (exact) { }
Handle(IFSelect_Signature) IFSelect_SelectSignedShared::Signature () const
{ return thematcher; }
const TCollection_AsciiString& IFSelect_SelectSignedShared::SignatureText () const
{ return thesigntext; }
Standard_Boolean IFSelect_SelectSignedShared::IsExact () const
{ return theexact; }
Standard_Boolean IFSelect_SelectSignedShared::Explore
(const Standard_Integer level, const Handle(Standard_Transient)& ent,
const Interface_Graph& G, Interface_EntityIterator& explored) const
{
if (thematcher->Matches (ent,G.Model(),thesigntext,theexact)) return Standard_True;
// sinon, on fait le tri ici
Interface_EntityIterator list = G.Shareds (ent);
// Si plus de Shared, alors c est cuit
if (list.NbEntities() == 0) return Standard_False;
// Sinon, trier si on est au niveau
if (level < Level()) { explored = list; return Standard_True; }
for (list.Start(); list.More(); list.Next()) {
if (thematcher->Matches (list.Value(),G.Model(),thesigntext,theexact))
explored.AddItem (list.Value());
}
return Standard_True;
}
TCollection_AsciiString IFSelect_SelectSignedShared::ExploreLabel () const
{
TCollection_AsciiString lab("Shared,");
lab.AssignCat (thematcher->Name());
if (theexact) lab.AssignCat(" matching ");
else lab.AssignCat(" containing ");
lab.AssignCat(thesigntext);
return lab;
}