0022627: Change OCCT memory management defaults
[occt.git] / src / RWStepVisual / RWStepVisual_RWPresentationStyleByContext.cxx
1
2 #include <RWStepVisual_RWPresentationStyleByContext.ixx>
3 #include <StepVisual_StyleContextSelect.hxx>
4 #include <StepVisual_HArray1OfPresentationStyleSelect.hxx>
5 #include <StepVisual_PresentationStyleSelect.hxx>
6
7
8 #include <Interface_EntityIterator.hxx>
9
10
11 #include <StepVisual_PresentationStyleByContext.hxx>
12
13
14 RWStepVisual_RWPresentationStyleByContext::RWStepVisual_RWPresentationStyleByContext () {}
15
16 void RWStepVisual_RWPresentationStyleByContext::ReadStep
17         (const Handle(StepData_StepReaderData)& data,
18          const Standard_Integer num,
19          Handle(Interface_Check)& ach,
20          const Handle(StepVisual_PresentationStyleByContext)& ent) const
21 {
22
23
24         // --- Number of Parameter Control ---
25
26         if (!data->CheckNbParams(num,2,ach,"presentation_style_by_context")) return;
27
28         // --- inherited field : styles ---
29
30         Handle(StepVisual_HArray1OfPresentationStyleSelect) aStyles;
31         StepVisual_PresentationStyleSelect aStylesItem;
32         Standard_Integer nsub1;
33         if (data->ReadSubList (num,1,"styles",ach,nsub1)) {
34           Standard_Integer nb1 = data->NbParams(nsub1);
35           aStyles = new StepVisual_HArray1OfPresentationStyleSelect (1, nb1);
36           for (Standard_Integer i1 = 1; i1 <= nb1; i1 ++) {
37             //szv#4:S4163:12Mar99 `Standard_Boolean stat1 =` not needed
38             if (data->ReadEntity (nsub1,i1,"styles",ach,aStylesItem))
39               aStyles->SetValue(i1,aStylesItem);
40           }
41         }
42
43         // --- own field : styleContext ---
44
45         StepVisual_StyleContextSelect aStyleContext;
46         //szv#4:S4163:12Mar99 `Standard_Boolean stat2 =` not needed
47         data->ReadEntity(num,2,"style_context",ach,aStyleContext);
48
49         //--- Initialisation of the read entity ---
50
51
52         ent->Init(aStyles, aStyleContext);
53 }
54
55
56 void RWStepVisual_RWPresentationStyleByContext::WriteStep
57         (StepData_StepWriter& SW,
58          const Handle(StepVisual_PresentationStyleByContext)& ent) const
59 {
60
61         // --- inherited field styles ---
62
63         SW.OpenSub();
64         for (Standard_Integer i1 = 1;  i1 <= ent->NbStyles();  i1 ++) {
65           SW.Send(ent->StylesValue(i1).Value());
66         }
67         SW.CloseSub();
68
69         // --- own field : styleContext ---
70
71         SW.Send(ent->StyleContext().Value());
72 }
73
74
75 void RWStepVisual_RWPresentationStyleByContext::Share(const Handle(StepVisual_PresentationStyleByContext)& ent, Interface_EntityIterator& iter) const
76 {
77
78         Standard_Integer nbElem1 = ent->NbStyles();
79         for (Standard_Integer is1=1; is1<=nbElem1; is1 ++) {
80           iter.GetOneItem(ent->StylesValue(is1).Value());
81         }
82
83
84
85         iter.GetOneItem(ent->StyleContext().Value());
86 }
87