Test for 0022778: Bug in BRepMesh
[occt.git] / src / XSControl / XSControl_Writer.cxx
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
18 //:i1 gka 03.04.99 BUC60301 
19
20 #include <XSControl_Writer.ixx>
21 #include <XSControl_Controller.hxx>
22 #include <XSControl_TransferWriter.hxx>
23 #include <Interface_InterfaceModel.hxx>
24 #include <Interface_Macros.hxx>
25
26
27 XSControl_Writer::XSControl_Writer ()
28 {
29   SetWS (new XSControl_WorkSession);
30 }
31
32     XSControl_Writer::XSControl_Writer (const Standard_CString norm)
33 {
34   SetNorm (norm);
35 }
36
37     XSControl_Writer::XSControl_Writer
38   (const Handle(XSControl_WorkSession)& WS, const Standard_Boolean scratch)
39 {
40   SetWS (WS,scratch);
41 }
42
43     Standard_Boolean  XSControl_Writer::SetNorm (const Standard_CString norm)
44 {
45   if (thesession.IsNull()) SetWS (new XSControl_WorkSession);
46   Standard_Boolean sess =  thesession->SelectNorm (norm);
47   Handle(Interface_InterfaceModel) model = Model ();  //:i1 gka 03.04.99 BUC60301 
48   return sess;
49 }
50
51     void  XSControl_Writer::SetWS
52   (const Handle(XSControl_WorkSession)& WS, const Standard_Boolean scratch)
53 {
54   thesession = WS;
55 //  Un controller doit etre defini ...
56   thesession->InitTransferReader(0);
57   Handle(Interface_InterfaceModel) model = Model (scratch);
58 }
59
60     Handle(XSControl_WorkSession)  XSControl_Writer::WS () const
61       {  return thesession;  }
62
63      Handle(Interface_InterfaceModel)  XSControl_Writer::Model
64   (const Standard_Boolean newone)
65 {
66   Handle(Interface_InterfaceModel) model = thesession->Model();
67   if (newone || model.IsNull()) model = thesession->NewModel();
68   return model;
69 }
70
71     IFSelect_ReturnStatus  XSControl_Writer::TransferShape
72   (const TopoDS_Shape& sh, const Standard_Integer mode)
73 {
74   thesession->SetModeWriteShape (mode);
75   return thesession->TransferWriteShape (sh);
76 }
77
78     IFSelect_ReturnStatus  XSControl_Writer::WriteFile
79   (const Standard_CString filename)
80       {  return thesession->SendAll(filename);  }
81
82     void  XSControl_Writer::PrintStatsTransfer
83   (const Standard_Integer what, const Standard_Integer mode) const
84       {  thesession->TransferWriter()->PrintStats (what,mode);  }