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.