05488e5aaa959df29e8e83145060f998ec783603
[occt.git] / src / TopLoc / TopLoc_ItemLocation.cxx
1 // Created on: 1991-01-21
2 // Created by: Christophe MARION
3 // Copyright (c) 1991-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #include <TopLoc_ItemLocation.ixx>
18
19 //=======================================================================
20 //function : TopLoc_ItemLocation
21 //purpose  : constructor
22 //=======================================================================
23
24 TopLoc_ItemLocation::TopLoc_ItemLocation 
25   (const Handle(TopLoc_Datum3D)& D, 
26    const Standard_Integer P,
27 //   const Standard_Boolean fromtrsf) :
28    const Standard_Boolean ) :
29   myDatum(D),
30   myPower(P),
31   myTrsf(NULL)
32 {
33 }
34
35
36 TopLoc_ItemLocation::TopLoc_ItemLocation(const TopLoc_ItemLocation& anOther): myTrsf(NULL)
37 {
38   if (anOther.myTrsf != NULL) {
39     myTrsf = new gp_Trsf;  
40     *myTrsf = *(anOther.myTrsf);
41   }
42   myDatum = anOther.myDatum;
43   myPower = anOther.myPower;
44 }
45
46 TopLoc_ItemLocation& TopLoc_ItemLocation::Assign(const TopLoc_ItemLocation& anOther)
47 {
48   if (anOther.myTrsf == NULL) {
49     if (myTrsf != NULL) delete myTrsf;
50     myTrsf = NULL;
51   }
52   else if (myTrsf != anOther.myTrsf) {
53     if (myTrsf == NULL) myTrsf = new gp_Trsf;  
54     *myTrsf = *(anOther.myTrsf);
55   }
56   myDatum = anOther.myDatum;
57   myPower = anOther.myPower;
58
59   return *this;
60 }
61
62 void TopLoc_ItemLocation::Destroy()
63 {
64   if (myTrsf != NULL) delete myTrsf;
65   myTrsf = NULL;
66 }
67