class
SRotatedGeometry
: public Geometry
(Return to index)
A Geometry which wraps an arbitrary geometry in two s-rotations.
An SRotatedGeometry object is a Geometry wrapper which adds two
arbitrary s-rotations (local z-axis rotations) to the entrance and
exit planes of an arbitrary geometry. Any Geometry object can be
wrapped, including another SRotatedGeometry. The s-rotations become
part of the global geometry definition. Functions for setting the
two in- and out-rotations using certain constraints are provided.
NOTE: in general the transformations returned include the effects of
the s-rotations when the required distance parameter specified is
either the entrance or exit point. Requests for transformations
within the geometry (i.e. from s1 to s2, where s1 and/or s2 are not
the entrance or exit planes) do not contain the s-rotations.
Type: |
Instantiable |
Superclasses: |
public Geometry |
Include file: |
./BeamlineGeometry/SRotatedGeometry.hh |
Inheritance
Synopsis (including inherited members):
Documentation:
- Public members:
-
enum BalanceMode
;
- Balance mode.
-
SRotatedGeometry
(const Geometry&,double,double)
;
- srotOut is set to -srotIn.
srotOut calculated.
Constructor.
srotOut is calculated to be the vlaue which returns the local
x-axis after rotation to be in a plane parallel with the local
x-axis before application of srotIn.
Use the wrapped geometry geom,
and the two angles srotIn and srotOut.
-
SRotatedGeometry
(const Geometry&,double,BalanceMode)
;
- Constructor.
Use the wrapped geometry geom,
the entrance rotation srotIn,
and the balanc mode mode.
-
void balanceSrots
(BalanceMode)
;
- Balance rotations.
Set the exit rotation in one of two modes:
- if mode==tilt, then srotOut is set to -srotIn.
- if mode==balanceX, then srotOut is calculated to be
the value which returns the local x-axis after rotation to be in
a parallel plane with the local x-axis before the application of
srotIn.
-
virtual double getArcLength
()const
;
- Get arc length.
Return or the design length of the embedded geometry.
This is the length of the straight line connecting entrance and exit.
-
virtual double getElementLength
()const
;
- Get design length.
Return or the design length of the embedded geometry.
Depending on the element this may be the arc length or the straight
length.
-
double getEntrance
()const
;
- Get entrance.
Return the arc length from the origin to the entrance of the
geometry (non-positive)
-
Euclid3D getEntranceFrame
()const
;
- Get transform.
Equivalent to getTransform(0.0, getEntrance()).
Return the transform of the local coordinate system from the
origin to the entrance of the element.
-
Euclid3D getEntrancePatch
()const
;
- Get patch.
Returns the entrance patch (transformation) which is used to
transform the global geometry to the local geometry at entrance.
-
double getExit
()const
;
- Get exit.
Return the arc length from the origin to the exit of the
geometry (non-negative)
-
Euclid3D getExitFrame
()const
;
- Get transform.
Equivalent to getTransform(0.0, getExit()).
Return the transform of the local coordinate system from the
origin to the exit of the element.
-
Euclid3D getExitPatch
()const
;
- Get patch.
Returns the entrance patch (transformation) which is used to
transform the local geometry to the global geometry at exit.
-
double getOrigin
()const
;
- Get origin.
Return the arc length from the entrance to the origin of the
geometry (non-negative).
-
double getSrotIn
()const
;
- Get entrance rotation.
-
double getSrotOut
()const
;
- Get exit rotation.
-
Euclid3D getTotalTransform
()const
;
- Get transform.
Equivalent to getTransform(getEntrance(), getExit()).
Return the transform of the local coordinate system from the
entrance to the exit of the element.
-
Euclid3D getTransform
(double,double)const
;
- Get transform.
Return the transform of the local coordinate system from the
position fromS to the position toS.
-
Euclid3D getTransform
(double)const
;
- Get transform.
Equivalent to getTransform(0.0, s).
Return the transform of the local coordinate system from the
origin and s.
-
void setSrotIn
(double)
;
- Set entrance rotation.
-
void setSrotOut
(double)
;
- Set exit rotation.
Documentation generated by fci on Mon Feb 7 11:41:52 2000