## vmm.surface.implicit Class Maps

```java.lang.Object vmm.surface.implicit.Maps
```

`public class Mapsextends java.lang.Object`

This class defines several important and related linear maps of R^3 to itself as static methods; namely projection P on a one-dimemsional subspace, L, reflection R in L, and the transvection T defined by a pair of unit vectors. In what follows axis denotes a unit vector of R^3 and L the subspace it spans. The projection P onto the line L spanned by axis is the linear map (v ---> axis). where < . > denotes the dot product. We note that it has L as its +1 eigenspace and the orthogonal complement L' of L is its 0 eigenspace. Since reflection in L has L as its +1 eigenspace and L' as its -1 eigenspace, it is clear that R = 2P -I where I is the identity map. The transvection T defined by unit vectors e1 and e2 is defined whenever e2 is not equal to plus or minus e1, so that e1 and e2 are a basis for a two-dimensional subspace V. Then T is defined to be the unique rotation that is the identity on V', the orthogonal complement of V, and on V is the unique rotation of V carrying e1 into e2. It is easy to see that T is just the product of two reflections. Namely, if m denotes the midpoint of e1 and e2 on the unit sphere S^2 (obtained by normalizing e1 + e2) then T is reflection in m followed by reflection in e2, or equally well it is the reflection in e1 followed by reflection in m. For convenience, each of these maps is provided in two forms, as a Vector3D valued function and as void function returning its image as one of the arguments.

Constructor Summary
`Maps()`

Method Summary
`static Vector3D` ```ProjectionOnAxis(Vector3D axis, Vector3D source)```
returns the projection of a Vector3D, source, onto line spanned by the unit vector, axis.
`static void` ```ProjectOnAxis(Vector3D axis, Vector3D source, Vector3D destination)```
destination is the projection of a Vector3D, source, onto line spanned by the unit vector, axis.
`static void` ```ReflectInAxis(Vector3D axis, Vector3D source, Vector3D destination)```
destination is the reflection of a Vector3D, source, in the line spanned by the unit vector, axis.
`static Vector3D` ```ReflectionInAxis(Vector3D axis, Vector3D source)```
returns the reflection of a Vector3D, source, in the line spanned by the unit vector, axis.
`static void` ```Transvect(Vector3D e1, Vector3D e2, Vector3D source, Vector3D destination)```
e1 and e2 should be linearly independent unit vectors.
`static Vector3D` ```Transvection(Vector3D e1, Vector3D e2, Vector3D source)```
e1 and e2 should be linearly independent unit vectors.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Maps

`public Maps()`
Method Detail

### ProjectOnAxis

```public static void ProjectOnAxis(Vector3D axis,
Vector3D source,
Vector3D destination)```
destination is the projection of a Vector3D, source, onto line spanned by the unit vector, axis.

### ProjectionOnAxis

```public static Vector3D ProjectionOnAxis(Vector3D axis,
Vector3D source)```
returns the projection of a Vector3D, source, onto line spanned by the unit vector, axis.

### ReflectInAxis

```public static void ReflectInAxis(Vector3D axis,
Vector3D source,
Vector3D destination)```
destination is the reflection of a Vector3D, source, in the line spanned by the unit vector, axis.

### ReflectionInAxis

```public static Vector3D ReflectionInAxis(Vector3D axis,
Vector3D source)```
returns the reflection of a Vector3D, source, in the line spanned by the unit vector, axis.

### Transvect

```public static void Transvect(Vector3D e1,
Vector3D e2,
Vector3D source,
Vector3D destination)```
e1 and e2 should be linearly independent unit vectors. In the plane V spanned by e1 and e2, Transvect is the rotation carrying e1 to e2, and it is the identity orthogonal to V.

### Transvection

```public static Vector3D Transvection(Vector3D e1,
Vector3D e2,
Vector3D source)```
e1 and e2 should be linearly independent unit vectors. If V is the plane spanned by e1 and e2, Transvection returns the rotation applied to source that carries e1 to e2, and is the identity orthogonal to V.