Creating and editing arbn primitives

An arbn primitive is an arbitrary complex polyhedron bounded by N three-dimensional planes.

Such solids are constructed by specifying N sets of plane coefficients and distances, which collectively define the space ~outside~ of the solid. The coefficients define a vector whose normal is a plane parallel to the face of the solid. The surface of the solid is at the specified distance along this vector.

The distances may be negative and are used when a face lies on the opposite side of the origin as the tip of its vector. An example is if the left side of a box lies on the positive X axis. In this case, because the left side is being defined, the vector points left (coefficients -1 0 0), but since the point is on the positive X axis its distance is opposite its vector and therefore negative.

Handled by
make in create
Arguments
Number of planes
xyz direction vector and distance for each plane
Example
in arbn.s arbn 8 1 0 1 1 -1 0 0 1 0 1 0 1 0 -1 0 1 0 0 1 1 0 0 -1 1 0.5 0.5 0.5 1 -0.5 -0.5 -0.5 1
Example with negative distance
in arbn2.s arbn 6 1 0 0 100 -1 0 0 -10 0 1 0 200 0 -1 0 -10 0 0 -1 0 0 0 1 1.5
...is equivalent to...
in rpp.s rpp 10 100 10 200 0 1.5