PK_SURF_extend_o_t   


struct PK_SURF_extend_o_s
    {
    int                 o_t_version;            --- option structure version
    PK_SURF_extension_t extension_type;         --- the type of the extension
                                                --- (PK_SURF_extension_none_c)
    PK_VECTOR_t         extension_point;        --- point to extend to.
    PK_BOX_t            extension_box;          --- box to extend to.
    PK_UVBOX_t          extension_uvbox;        --- uv box to extend to.
    double              u_ratio;                --- ratio of the u parameter
                                                --- range by which to extend
                                                --- the low u boundary (0.0)
    double              U_ratio;                --- ratio of the u parameter
                                                --- range by which to extend
                                                --- the high u boundary (0.0)
    double              v_ratio;                --- ratio of the v parameter
                                                --- range by which to extend
                                                --- the low v boundary (0.0)
    double              V_ratio;                --- ratio of the v parameter
                                                --- range by which to extend
                                                --- the high v boundary (0.0)
    PK_LOGICAL_t        allow_partial_extension;--- if true we will allow
                                                --- partial extensions
                                                --- (PK_LOGICAL_false)
    };

typedef struct PK_SURF_extend_o_s PK_SURF_extend_o_t;



Holds optional controls for extending a surface.


The option structure defines options applicable to extending a surface.  It
contains the following options:




 extension_type   Specifies what type of extension has been requested.

 extension_point  A three-space point to extend the surface to.  This field
                    will only be looked at if extension_type has been set
                    to PK_SURF_extension_point_c.  The resulting extended
                    surface will not necessarily contain this point.

 extension_box    A three-space box to extend the surface to.  This field
                    will only be looked at if extension_type has been set
                    to PK_SURF_extension_box_c.

 extension_uvbox  A parameter box to extend the surface to.  This field
                    will only be looked at if extension_type has been set
                    to PK_SURF_extension_uvbox_c.

The next four fields will only be looked at if the extension_type field
has been set to PK_SURF_extension_ratio_c.  Values must not be less than
zero.  A value of zero would provide no extension; a value of 0.1 would extend
a boundary by one tenth of the existing range of the boundary's parameter.

 u_ratio          An extension of the low u boundary of the surface,
                    expressed as a ratio of the existing u parameter
                    range.

 U_ratio          An extension of the high u boundary of the surface,
                    expressed as a ratio of the existing u parameter
                    range.

 v_ratio          An extension of the low v boundary of the surface,
                    expressed as a ratio of the existing v parameter
                    range.

 V_ratio          An extension of the high v boundary of the surface,
                    expressed as a ratio of the existing v parameter
                    range.


 allow_partial_extension  Whether the surface will still be extended by less
                            than the full extension requested in cases where
                            the full extension would result in an invalid
                            surface.