Test for 0022778: Bug in BRepMesh
[occt.git] / src / BinMXCAFDoc / BinMXCAFDoc_CentroidDriver.cxx
1 // Created on: 2005-05-17
2 // Created by: Eugeny NAPALKOV
3 // Copyright (c) 2005-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 #include <BinMXCAFDoc_CentroidDriver.ixx>
23 #include <XCAFDoc_Centroid.hxx>
24
25 //=======================================================================
26 //function :
27 //purpose  : 
28 //=======================================================================
29 BinMXCAFDoc_CentroidDriver::BinMXCAFDoc_CentroidDriver(const Handle(CDM_MessageDriver)& theMsgDriver)
30      : BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_Centroid)->Name()) {
31 }
32
33 //=======================================================================
34 //function :
35 //purpose  : 
36 //=======================================================================
37 Handle(TDF_Attribute) BinMXCAFDoc_CentroidDriver::NewEmpty() const {
38   return new XCAFDoc_Centroid();
39 }
40
41 //=======================================================================
42 //function :
43 //purpose  : 
44 //=======================================================================
45 Standard_Boolean BinMXCAFDoc_CentroidDriver::Paste(const BinObjMgt_Persistent& theSource,
46                                                    const Handle(TDF_Attribute)& theTarget,
47                                                    BinObjMgt_RRelocationTable& /*theRelocTable*/) const
48 {
49   Handle(XCAFDoc_Centroid) anAtt = Handle(XCAFDoc_Centroid)::DownCast(theTarget);
50   Standard_Real x, y, z;
51   Standard_Boolean isOk = theSource >> x >> y >> z;
52   if(isOk) {
53     gp_Pnt aPnt(x, y, z);
54     anAtt->Set(aPnt);
55   }
56   return isOk;
57 }
58
59 //=======================================================================
60 //function :
61 //purpose  : 
62 //=======================================================================
63 void BinMXCAFDoc_CentroidDriver::Paste(const Handle(TDF_Attribute)& theSource,
64                                        BinObjMgt_Persistent& theTarget,
65                                        BinObjMgt_SRelocationTable& /*theRelocTable*/) const
66 {
67   Handle(XCAFDoc_Centroid) anAtt = Handle(XCAFDoc_Centroid)::DownCast(theSource);
68   gp_Pnt aPnt = anAtt->Get();
69   theTarget << aPnt.X() << aPnt.Y() << aPnt.Z();
70 }
71