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:

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.


Release notes


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 .