OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
OffsetGeometry.cpp
Go to the documentation of this file.
1 // ------------------------------------------------------------------------
2 // $RCSfile: OffsetGeometry.cpp,v $
3 // ------------------------------------------------------------------------
4 // $Revision: 1.1.1.1 $
5 // ------------------------------------------------------------------------
6 // Copyright: see Copyright.readme
7 // ------------------------------------------------------------------------
8 //
9 // Class: OffsetGeometry
10 // Represents a geometry which is offset with respect to some global
11 // (super) geometry.
12 //
13 // ------------------------------------------------------------------------
14 // Class category: BeamlineGeometry
15 // ------------------------------------------------------------------------
16 //
17 // $Date: 2000/03/27 09:32:34 $
18 // $Author: fci $
19 //
20 // ------------------------------------------------------------------------
21 
23 
24 
25 // Class OffsetGeometry.
26 // ------------------------------------------------------------------------
27 
29  const Euclid3D &t):
30  global(g), local(l), g2l(t)
31 {}
32 
33 
35  global(g), local(g), g2l(t)
36 {}
37 
38 
40  BGeometryBase(og),
41  global(og.global), local(og.local), g2l(og.g2l)
42 {}
43 
44 
46 {}
47 
48 
50  return global.getArcLength();
51 }
52 
53 
55  return global.getElementLength();
56 }
57 
58 
60  return g2l;
61 }
62 
63 
65  g2l = t;
66 }
67 
68 
69 double OffsetGeometry::getOrigin() const {
70  return global.getOrigin();
71 }
72 
73 
75  return global.getEntrance();
76 }
77 
78 
79 double OffsetGeometry::getExit() const {
80  return global.getExit();
81 }
82 
83 
84 Euclid3D OffsetGeometry::getTransform(double fromS, double toS) const {
85  return global.getTransform(fromS, toS);
86 }
87 
88 
90  return global.getTotalTransform();
91 }
92 
93 
95  return global.getTransform(s);
96 }
97 
98 
100  return global.getEntranceFrame();
101 }
102 
103 
105  return global.getExitFrame();
106 }
107 
108 
111 }
112 
113 
116 }
117 
118 
120 (double gs, double ls) const {
121  Euclid3D tl = local.getTransform(ls);
122  Euclid3D tgi = Inverse(local.getTransform(gs));
123 
124  return tl * g2l * tgi;
125 }
126 
OffsetGeometry(const BGeometryBase &global, const BGeometryBase &local, const Euclid3D &euclid)
Constructor.
virtual ~OffsetGeometry()
A geometry which offset with respect to some global geometry.
virtual Euclid3D getTransform(double fromS, double toS) const =0
Get transform.
virtual Euclid3D getEntranceFrame() const
Get transform.
virtual Euclid3D getTotalTransform() const
Get transform.
virtual Euclid3D getEntrancePatch() const
Get patch.
virtual double getOrigin() const
Get origin.
virtual double getEntrance() const
Get entrance position.
Definition: Geometry.cpp:41
virtual Euclid3D getEntranceFrame() const
Get transform.
Definition: Geometry.cpp:61
virtual double getOrigin() const
Get origin position.
Definition: Geometry.cpp:36
virtual Euclid3D getExitFrame() const
Get transform.
virtual double getExit() const
Get exit position.
Definition: Geometry.cpp:46
Euclid3D Inverse(const Euclid3D &t)
Euclidean inverse.
Definition: Euclid3D.h:204
virtual double getEntrance() const
Get entrance position.
virtual double getElementLength() const =0
Get geometry length.
virtual Euclid3D getExitPatch() const
Get patch.
Abstract base class for accelerator geometry classes.
Definition: Geometry.h:43
Euclid3D getGlobalToLocalTransform(double globalS, double localS) const
Transform global to local.
virtual Euclid3D getTotalTransform() const
Get transform.
Definition: Geometry.cpp:51
Displacement and rotation in space.
Definition: Euclid3D.h:68
virtual double getExit() const
Get exit position.
virtual Euclid3D getTransform(double fromS, double toS) const
Get transform.
virtual double getArcLength() const =0
Get arc length.
void setGtoL(const Euclid3D &)
Set displacement.
const BGeometryBase & local
const BGeometryBase & global
Euclid3D getGtoL() const
Get displacement.
virtual double getElementLength() const
Get design length.
virtual Euclid3D getExitFrame() const
Get transform.
Definition: Geometry.cpp:66
virtual double getArcLength() const
Get arc length.