PK_BODY_create_solid_torus   


PK_ERROR_code_t      PK_BODY_create_solid_torus
(
--- received arguments ---
double               major_radius, --- torus major radius
double               minor_radius, --- torus minor radius (> 0)
const PK_AXIS2_sf_t *basis_set,    --- position and orientation (may be NULL)

--- returned arguments ---
PK_BODY_t     *const body          --- solid body returned
)


This function creates a solid torus.


Specific Errors:
    PK_ERROR_R1_R2_mismatch         major_radius = minor_radius, or
                                    major_radius + minor_radius <= 0
    PK_ERROR_distance_le_0          minor_radius <= zero, or
                                    major_radius = zero


In its local coordinate system, this function creates a solid torus of the
given major_radius and minor_radius centred at the origin, and whose spine
lies in the xy plane. If minor_radius is larger in magnitude than
major_radius then an apple torus or lemon torus is created (depending
upon whether major_radius is positive or negative respectively.

basis_set positions and orientates the local coordinate system in the world
coordinate system.  If it is given as NULL, then the local and world
coordinate systems are the same.

The basis_set in the standard form of the created TORUS surface inherits the
axis and ref_direction from the given basis_set.