# 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