29 double sin,
double sout):
30 srotIn(sin), srotOut(sout), geom(g)
36 srotIn(srot), srotOut(0), geom(g) {
42 srotIn(rhs.srotIn), srotOut(rhs.srotOut), geom(rhs.geom)
133 return tout * t * tin;
virtual double getArcLength() const
Get arc length.
virtual double getElementLength() const
Get design length.
const BGeometryBase & geom
virtual Euclid3D getTransform(double fromS, double toS) const =0
Get transform.
Euclid3D getExitPatch() const
Get patch.
srotOut is set to -srotIn.
Tps< T > sin(const Tps< T > &x)
Sine.
double getEntrance() const
Get entrance.
Euclid3D getTransform(double fromS, double toS) const
Get transform.
virtual double getEntrance() const
Get entrance position.
virtual Euclid3D getEntranceFrame() const
Get transform.
virtual double getOrigin() const
Get origin position.
virtual double getExit() const
Get exit position.
double getSrotIn() const
Get entrance rotation.
virtual double getElementLength() const =0
Get geometry length.
Abstract base class for accelerator geometry classes.
Euclid3D getExitFrame() const
Get transform.
SRotatedGeometry(const BGeometryBase &geom, double srotIn, double srotOut)
Constructor.
void setSrotIn(double)
Set entrance rotation.
double getOrigin() const
Get origin.
double getExit() const
Get exit.
virtual Euclid3D getTotalTransform() const
Get transform.
Displacement and rotation in space.
void setSrotOut(double)
Set exit rotation.
Euclid3D getEntranceFrame() const
Get transform.
virtual double getArcLength() const =0
Get arc length.
void balanceSrots(BalanceMode mode=tilt)
Balance rotations.
double getSrotOut() const
Get exit rotation.
A Geometry which wraps an arbitrary geometry in two s-rotations.
virtual ~SRotatedGeometry()
Euclid3D getTotalTransform() const
Get transform.
static Euclid3D ZRotation(double angle)
Make rotation.
virtual Euclid3D getExitFrame() const
Get transform.
Euclid3D getEntrancePatch() const
Get patch.