summaryrefslogtreecommitdiff
path: root/src/IGESGraph/IGESGraph_ToolNominalSize.cxx
blob: f9ff6a237e7a5344fdc9081f9c1e49cb0cd01efa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
//--------------------------------------------------------------------
//
//  File Name : IGESGraph_NominalSize.cxx
//  Date      :
//  Author    : CKY / Contract Toubro-Larsen
//  Copyright : MATRA-DATAVISION 1993
//
//--------------------------------------------------------------------

#include <IGESGraph_ToolNominalSize.ixx>
#include <IGESData_ParamCursor.hxx>
#include <TCollection_HAsciiString.hxx>
#include <Interface_Macros.hxx>
#include <IGESData_Dump.hxx>


IGESGraph_ToolNominalSize::IGESGraph_ToolNominalSize ()    {  }


void IGESGraph_ToolNominalSize::ReadOwnParams
  (const Handle(IGESGraph_NominalSize)& ent,
   const Handle(IGESData_IGESReaderData)& /*IR*/, IGESData_ParamReader& PR) const
{ 
  //Standard_Boolean          st; //szv#4:S4163:12Mar99 not needed

  Standard_Integer          nbPropertyValues;
  Standard_Real             nominalSizeValue; 
  Handle(TCollection_HAsciiString) nominalSizeName; 
  Handle(TCollection_HAsciiString) standardName; 

  // Reading nbPropertyValues(Integer)
  PR.ReadInteger(PR.Current(), "No. of property values", nbPropertyValues); //szv#4:S4163:12Mar99 `st=` not needed
  if ( (nbPropertyValues != 2) && (nbPropertyValues != 3) )
    PR.AddFail("No. of Property values : Value is not 2/3");

  // Reading nominalSizeValue(Real)
  PR.ReadReal (PR.Current(), "Nominal size value", nominalSizeValue); //szv#4:S4163:12Mar99 `st=` not needed

  // Reading nominalSizeName(String)
  PR.ReadText (PR.Current(), "Nominal size name", nominalSizeName); //szv#4:S4163:12Mar99 `st=` not needed

  if ( PR.NbParams() >= PR.CurrentNumber() )
    {
      Standard_Integer num = PR.CurrentNumber(); 
      if ( PR.ParamType(num) == Interface_ParamText )
	// Reading standardName(String)
	PR.ReadText (PR.Current(), "Name of relevant engg. standard", 
		     standardName); //szv#4:S4163:12Mar99 `st=` not needed
    }

  DirChecker(ent).CheckTypeAndForm(PR.CCheck(),ent);
  ent->Init
    (nbPropertyValues, nominalSizeValue, nominalSizeName,  standardName);
}

void IGESGraph_ToolNominalSize::WriteOwnParams
  (const Handle(IGESGraph_NominalSize)& ent, IGESData_IGESWriter& IW)  const
{ 
  IW.Send( ent->NbPropertyValues() );
  IW.Send( ent->NominalSizeValue() );
  IW.Send( ent->NominalSizeName() );

  if (ent->HasStandardName() )
    IW.Send( ent->StandardName() );  // optionnal
}

void  IGESGraph_ToolNominalSize::OwnShared
  (const Handle(IGESGraph_NominalSize)& /*ent*/, Interface_EntityIterator& /*iter*/) const
{
}

void IGESGraph_ToolNominalSize::OwnCopy
  (const Handle(IGESGraph_NominalSize)& another,
   const Handle(IGESGraph_NominalSize)& ent, Interface_CopyTool& /*TC*/) const
{ 
  Standard_Integer          nbPropertyValues; 
  Standard_Real             nominalSizeValue; 
  Handle(TCollection_HAsciiString) nominalSizeName; 
  Handle(TCollection_HAsciiString) standardName;

  nbPropertyValues = another->NbPropertyValues();
  nominalSizeValue = another->NominalSizeValue();
  nominalSizeName  = new TCollection_HAsciiString(another->NominalSizeName());
  if (another->HasStandardName()) standardName     =
    new TCollection_HAsciiString(another->StandardName());

  ent->Init(nbPropertyValues, nominalSizeValue, nominalSizeName, standardName);
}

Standard_Boolean  IGESGraph_ToolNominalSize::OwnCorrect
  (const Handle(IGESGraph_NominalSize)& ent) const
{
  Standard_Integer nbp = 2;
  if (ent->HasStandardName()) nbp = 3;
  Standard_Boolean res = ( ent->NbPropertyValues() != nbp);
  if (res) ent->Init
    (nbp,ent->NominalSizeValue(),ent->NominalSizeName(),ent->StandardName());
  return res;    // nbpropertyvalues=2/3 selon standard
}

IGESData_DirChecker IGESGraph_ToolNominalSize::DirChecker
  (const Handle(IGESGraph_NominalSize)& /*ent*/)  const
{ 
  IGESData_DirChecker DC (406, 13);
  DC.Structure(IGESData_DefVoid);
  DC.LineFont(IGESData_DefVoid);
  DC.LineWeight(IGESData_DefVoid);
  DC.Color(IGESData_DefVoid);
  DC.BlankStatusIgnored();
  DC.UseFlagIgnored();
  DC.HierarchyStatusIgnored();
  return DC;
}

void IGESGraph_ToolNominalSize::OwnCheck
  (const Handle(IGESGraph_NominalSize)& ent,
   const Interface_ShareTool& , Handle(Interface_Check)& ach)  const
{
  Standard_Integer nbp = 2;
  if (ent->HasStandardName()) nbp = 3;
  if ( ent->NbPropertyValues() != nbp)  ach->AddFail
    ("No. of Property values : Value != 2/3 according Standard Name Status");
}

void IGESGraph_ToolNominalSize::OwnDump
  (const Handle(IGESGraph_NominalSize)& ent, const IGESData_IGESDumper& /*dumper*/,
   const Handle(Message_Messenger)& S, const Standard_Integer /*level*/)  const
{
  S << "IGESGraph_NominalSize" << endl;

  S << "No. of property values : " << ent->NbPropertyValues() << endl;
  S << "Nominal size value : "     << ent->NominalSizeValue() << endl;
  S << "Nominal size name  : ";
  IGESData_DumpString(S,ent->NominalSizeName());
  S << endl;
  S << "Name of relevant engineering standard : ";
  IGESData_DumpString(S,ent->StandardName());
  S << endl;
}