you probably could use swizzle here:
```
vec4 base(halflines, 0, 0, 1);
...
gl_Position = transform * ( base.xyz + k * ...
gl_Position = transform * (-base.xyz + k * ...
gl_Position = transform * ( base.zyx + k * ...
gl_Position = transform * (-base.zyx + k * ...
```