0024057: Eliminate compiler warning C4100 in MSVC++ with warning level 4
[occt.git] / src / IGESAppli / IGESAppli_ToolRegionRestriction.cxx
1 // Created by: CKY / Contract Toubro-Larsen
2 // Copyright (c) 1993-1999 Matra Datavision
3 // Copyright (c) 1999-2012 OPEN CASCADE SAS
4 //
5 // The content of this file is subject to the Open CASCADE Technology Public
6 // License Version 6.5 (the "License"). You may not use the content of this file
7 // except in compliance with the License. Please obtain a copy of the License
8 // at http://www.opencascade.org and read it completely before using this file.
9 //
10 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 //
13 // The Original Code and all software distributed under the License is
14 // distributed on an "AS IS" basis, without warranty of any kind, and the
15 // Initial Developer hereby disclaims all such warranties, including without
16 // limitation, any warranties of merchantability, fitness for a particular
17 // purpose or non-infringement. Please see the License for the specific terms
18 // and conditions governing the rights and limitations under the License.
19
20 //--------------------------------------------------------------------
21 //--------------------------------------------------------------------
22
23 #include <IGESAppli_ToolRegionRestriction.ixx>
24 #include <IGESData_ParamCursor.hxx>
25 #include <IGESData_LevelListEntity.hxx>
26
27
28 IGESAppli_ToolRegionRestriction::IGESAppli_ToolRegionRestriction ()    {  }
29
30
31 void  IGESAppli_ToolRegionRestriction::ReadOwnParams
32   (const Handle(IGESAppli_RegionRestriction)& ent,
33    const Handle(IGESData_IGESReaderData)& /*IR*/, IGESData_ParamReader& PR) const
34 {
35   Standard_Integer tempNbPropertyValues;
36   Standard_Integer tempElectViasRestrict;
37   Standard_Integer tempElectCompRestrict;
38   Standard_Integer tempElectCktRestrict;
39
40   PR.ReadInteger(PR.Current(),"No. of Property values",tempNbPropertyValues);
41   PR.ReadInteger(PR.Current(),"Electrical vias restriction",tempElectViasRestrict);
42   PR.ReadInteger(PR.Current(),"Electrical components restriction", tempElectCompRestrict);
43   PR.ReadInteger(PR.Current(), " Electrical circuitary restriction",tempElectCktRestrict);
44
45   DirChecker(ent).CheckTypeAndForm(PR.CCheck(),ent);
46   ent->Init(tempNbPropertyValues,tempElectViasRestrict,tempElectCompRestrict, tempElectCktRestrict);
47 }
48
49 void  IGESAppli_ToolRegionRestriction::WriteOwnParams
50   (const Handle(IGESAppli_RegionRestriction)& ent, IGESData_IGESWriter& IW) const
51 {
52   IW.Send(ent->NbPropertyValues());
53   IW.Send(ent->ElectricalViasRestriction());
54   IW.Send(ent->ElectricalComponentRestriction());
55   IW.Send(ent->ElectricalCktRestriction());
56 }
57
58 void  IGESAppli_ToolRegionRestriction::OwnShared
59   (const Handle(IGESAppli_RegionRestriction)& /*ent*/, Interface_EntityIterator& /*iter*/) const
60 {
61 }
62
63 void  IGESAppli_ToolRegionRestriction::OwnCopy
64   (const Handle(IGESAppli_RegionRestriction)& another,
65    const Handle(IGESAppli_RegionRestriction)& ent, Interface_CopyTool& /*TC*/) const
66 {
67   ent->Init
68     (3,another->ElectricalViasRestriction(),
69      another->ElectricalComponentRestriction(),
70      another->ElectricalCktRestriction());    // nbprops = 3
71 }
72
73 Standard_Boolean  IGESAppli_ToolRegionRestriction::OwnCorrect
74   (const Handle(IGESAppli_RegionRestriction)& ent) const
75 {
76   Standard_Boolean res = (ent->NbPropertyValues() != 3);
77   if (res) ent->Init
78     (3,ent->ElectricalViasRestriction(),ent->ElectricalComponentRestriction(),
79      ent->ElectricalCktRestriction());    // nbprops = 3
80   if (ent->SubordinateStatus() != 0) {
81     Handle(IGESData_LevelListEntity) nulevel;
82     ent->InitLevel(nulevel,0);
83     res = Standard_True;
84   }
85   return res;    // + RAZ level selon subordibate
86 }
87
88 IGESData_DirChecker  IGESAppli_ToolRegionRestriction::DirChecker
89   (const Handle(IGESAppli_RegionRestriction)& /*ent*/ ) const
90 {
91   IGESData_DirChecker DC(406,2);  //Form no = 2 & Type = 406
92   DC.Structure(IGESData_DefVoid);
93   DC.GraphicsIgnored();
94   DC.BlankStatusIgnored();
95   DC.UseFlagIgnored();
96   DC.HierarchyStatusIgnored();
97   return DC;
98 }
99
100 void  IGESAppli_ToolRegionRestriction::OwnCheck
101   (const Handle(IGESAppli_RegionRestriction)& ent,
102    const Interface_ShareTool& , Handle(Interface_Check)& ach) const
103 {
104   if (ent->SubordinateStatus() != 0)
105     if (ent->DefLevel() != IGESData_DefOne &&
106         ent->DefLevel() != IGESData_DefSeveral)
107       ach->AddFail("Level type: Not value/reference");
108   if (ent->NbPropertyValues() != 3)
109     ach->AddFail("Number of Property Values != 3");
110   if (ent->ElectricalViasRestriction() < 0 || ent->ElectricalViasRestriction() > 2)
111     ach->AddFail("Incorrect value for Electrical Vias Restriction");
112   if (ent->ElectricalComponentRestriction() < 0 || ent->ElectricalComponentRestriction() > 2)
113     ach->AddFail("Incorrect value for Electrical Component Restriction");
114   if (ent->ElectricalCktRestriction() < 0 || ent->ElectricalCktRestriction() > 2)
115     ach->AddFail("Incorrect value for Electrical Circuit Restriction");
116   //UNFINISHED
117   //level ignored if this property is subordinate -- queried
118 }
119
120 void  IGESAppli_ToolRegionRestriction::OwnDump
121   (const Handle(IGESAppli_RegionRestriction)& ent, const IGESData_IGESDumper& /*dumper*/,
122    const Handle(Message_Messenger)& S, const Standard_Integer /*level*/) const
123 {
124   S << "IGESAppli_RegionRestriction" << endl;
125   S << "Number of property values : " << ent->NbPropertyValues() << endl;
126   S << "Electrical vias restriction       : "
127     << ent->ElectricalViasRestriction() << endl;
128   S << "Electrical components restriction : "
129     << ent->ElectricalComponentRestriction() << endl;
130   S << "Electrical circuitary restriction : "
131     << ent->ElectricalCktRestriction()  << endl;
132 }