o1, o2, o3
A direction can be defined indicating explicitly the coordinates of a node
where the direction passes. For each direction family, there is a direction
passing through the origin node and as nodes are equivalent, it follows
that for any node, there is a direction of any family passing through there.
When the lattice is primitive or vectors are primitive, coordinates
o1, 
o2, 
o3 are enough to identify any cell node.
By default, a crystallographic direction passes through the origin,
with node coordinates equal to 
0, 
0, 
0, respectively.
Example: <direction ... o1="0" o2="0" o3="0"/> (default)
Allowed values: integer (optional, coupled)
o4
When the lattice is centered and vectors are conventional, the coordinates 
o1, 
o2, 
o3 indicate the node in the lower-left
corner of the cell where the direction passes. A fourth coordinate 
o4
is needed to point the centered node where the direction passes. By default, 
o4 is 
000, so no change is introduced.
When the cell lattice is primitive 
P or the vectors defining the
node are primitive, that is the only possible value for 
o4.
For I, C, F, R centered lattices, 
o4 can also take the values:
I: 111
C: 110
F: 110, 101, 011
R: 211, 122
corresponding to the numerators of the inner node coordinates,
(1/2 1/2 1/2) for 
I lattices, (1/2 1/2 0) for 
C
lattices, (0 1/2 1/2) (1/2 0 1/2) (1/2 1/2 0) for 
F
lattices and (1/3 2/3 2/3) (2/3 1/3 1/3) for 
R lattices.
Example: <direction ... o4="000"/> (default)
Allowed values: 000, 111, 110 101, 011, 211, 122 (optional)
data
The geometric data defining a line direction must be entered in order to make
the direction completely independent from its reference objects. This is
accomplished with attributes 
begin_x, 
begin_y, 
begin_z,
and 
end_x, 
end_y, 
end_z, defining the coordinates
of the two end points.
Example: <direction ... begin_x="0.0" begin_y="0.0" begin_z="0.0"
end_x="1.0" end_y="1.0" end_z="1.0"/>
Allowed values: real (optional, coupled)