Space points, vectors and transformations
30nov98 2045
Code version 0.05
Links to code
The description below includes links to the code contained in this
package. This
version
of the code may not be the most recent.
Description
This package contains classes describing a point in space,
vectors at such points and global transformations of these
objects.
Related classes may be found in the ZOOM
Physics vectors package. The most important of these are
SpaceVector and Rotation.
The physical components include:
- SpacePoint (
header,
source,
test )
- SpacePointVector (
header,
source,
test )
- SpacePath (
header,
source,
test )
- SpaceXform (
header,
source,
test )
- TwoSpacePoint (
header,
source,
test )
The component dependencies are illustrated in the [nonexistent]
physical dependency diagram.
This package depends on no external packages.
The classes defined in the above components are described below.
Each class is defined in a component of the same name unless otherwise
indicated.
The descriptions are brief.
See the header files for details.
Point
Class SpacePoint represents a point in three-dimensional space.
It can be constructed in Cartesian, cylindrical or spherical coordinates
using the subclasses CartesianPoint, CylindricalPoint and
SphericalPoint.
Vector at a Point
Class SpacePointVector represents a spatial vector at a point in
three-dimensional space.
It can be constructed in the same coordinate systems using subclasses
CartesianPointVector, etc.
Differential path vector at a point
Class SpacePath derives from SpacePointVector and represents a differential
path element at a point. It adds methods more natural to that
interpretation. Again it is constructed in the above coordinate systems
using subclasses CartesianPath, etc.
Transformation
Abstract class SpaceXform defines an interface for transforming a
space point or space point vector.
It may include both translation and rotation:
the latter is only applied to the point and the latter is applied to both
point and vector.
TwoSpacePoint
TwoSpacePoint describes a point in two-dimensional space. It can be
constructed in Cartesian or polar (cylindrical) coordinates.
Implementation notes
Should we try integrate with ZOOM SpaceVector class?
The class GeometryXform in package
geometry_system
would derive from this class.
Should that class be moved to this package? Geometry Xform provides
a method to create a new transformed object. Should there be a method
which modifies the existing object?
We might also provide classes such as NullXform which does nothing
and MultiXform which applies a list of transformations.
Questions or comments to adams@physics.rice.edu
and hobbs@fnal.gov .