0024157: Parallelization of assembly part of BO
[occt.git] / src / IFSelect / IFSelect_ModelModifier.gxx
CommitLineData
b311480e 1// Copyright (c) 1999-2012 OPEN CASCADE SAS
2//
3// The content of this file is subject to the Open CASCADE Technology Public
4// License Version 6.5 (the "License"). You may not use the content of this file
5// except in compliance with the License. Please obtain a copy of the License
6// at http://www.opencascade.org and read it completely before using this file.
7//
8// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
9// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
10//
11// The Original Code and all software distributed under the License is
12// distributed on an "AS IS" basis, without warranty of any kind, and the
13// Initial Developer hereby disclaims all such warranties, including without
14// limitation, any warranties of merchantability, fitness for a particular
15// purpose or non-infringement. Please see the License for the specific terms
16// and conditions governing the rights and limitations under the License.
17
7fd59977 18//#include <IFSelect_ModelModifier.ixx>
19#include <Interface_Check.hxx>
20
b311480e 21IFSelect_ModelModifier::IFSelect_ModelModifier (const Standard_Boolean grf)
7fd59977 22 : IFSelect_Modifier (grf) { }
23
24 void IFSelect_ModelModifier::Perform
25 (IFSelect_ContextModif& ctx,
26 const Handle(Interface_InterfaceModel)& target,
27 const Handle(Interface_Protocol)& protocol,
28 Interface_CopyTool& TC) const
29{
30 ctx.TraceModifier(this);
31 Handle(Model) targ = Handle(Model)::DownCast(target);
32 Handle(Proto) prot = Handle(Proto)::DownCast(protocol);
33 if (targ.IsNull()) {
34 ctx.CCheck()->AddFail("Model to Modify : unproper type");
35 return;
36 }
37 PerformProtocol (ctx,targ,prot,TC);
38}
39
40 void IFSelect_ModelModifier::PerformProtocol
41 (IFSelect_ContextModif& ctx,
42 const Handle(Model)& target,
43 const Handle(Proto)& protocol,
44 Interface_CopyTool& TC) const
45{ ctx.SetProtocol(protocol); Performing (ctx,target,TC); }