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) [PF]
    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 [NF]
    double               u_ratio;         --- ratio of the u parameter
                                          --- range by which to extend
                                          --- the low u boundary (0.0) [NF]
    double               U_ratio;         --- ratio of the u parameter
                                          --- range by which to extend
                                          --- the high u boundary (0.0) [NF]
    double               v_ratio;         --- ratio of the v parameter
                                          --- range by which to extend
                                          --- the low v boundary (0.0) [NF]
    double               V_ratio;         --- ratio of the v parameter
                                          --- range by which to extend
                                          --- the high v boundary (0.0) [NF]
    PK_LOGICAL_t         allow_partial_extension;
                                          --- if true we will allow
                                          --- partial extensions
                                          --- (PK_LOGICAL_false)
    PK_extension_shape_t extension_shape; --- the method for extending
                                          --- the surface
                                          --- (PK_extension_shape_linear_c)
                                          --- [PF]
    PK_SURF_extend_update_t
                         update;          --- update flag
                                          --- (PK_SURF_extend_update_default_c)
    };

typedef struct PK_SURF_extend_o_s PK_SURF_extend_o_t;



This structure holds optional controls for extending a surface.


Specific Errors:
    PK_ERROR_bad_value          Indicates that a negative ratio value has
                                been supplied (MILD)

    PK_ERROR_bad_uvbox          Indicates that an invalid 'extension_uvbox'
                                has been supplied (MILD)

    PK_ERROR_bad_combination    Indicates that the 'extension_shape'
                                option was not valid with the given
                                type of surface (MILD)

Used in:

PK_SURF_extend


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.

                    Note that the values PK_SURF_extension_uvbox_c and
                    PK_SURF_extension_ratio_c are not supported for facet
                    geometry.

 '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.

 'extension_shape'  Specifies the shape of the extension.  This option
                    must be set to PK_extension_shape_linear_c for surfaces
                    of class PK_CLASS_blendsf, and for any surfaces
                    that are attached to topology or owned by other geometry.
                    The extension of blend surfaces in the u parameter
                    direction follows the shape of the underlying surfaces,
                    rather than being linear.

                    Note that the values PK_extension_shape_soft_c,
                    PK_extension_shape_reflective_c,
                    PK_extension_shape_natural_c and PK_extension_shape_arc_c
                    are not supported for facet geometry.


 'update'           The default value allows applications to take
                    advantage of the latest enhancements to the surface
                    extension algorithm. To maintain consistency when
                    rebuilding models created in a previous version of
                    Parasolid, a non-default value should be specified.

                    The default value is PK_SURF_extend_update_default_c.