struct PK_LINE_sf_s { PK_AXIS1_sf_t basis_set; --- a cartesian point and a direction }; typedef struct PK_LINE_sf_s PK_LINE_sf_t; This is the standard form for an unbounded straight line which passes through the given location in the given direction. The parameterisation of the line is as follows: P=basis_set.location V=basis_set.direction P( t ) = P + t*V