Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pe_cond_skip_elems(3g) — PHIGS 5.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

pe_cond_skip_elems(3g)  —  Subroutines

Name

pe_cond_skip_elems − Skips over the specified number of elements in the structure if the test succeeds. 

Operating States: PHOP, ∗, STOP, ∗
Digital PHIGS extension function
Creates a structure element

Syntax

void pe_cond_skip_elems (
  Pint               skip_count,        /∗ (I) Skip count ∗/
  Pint               test_method,       /∗ (I) Test method ∗/
  const Ptest_data  ∗test_method_data   /∗ (I) Test method data ∗/
)

Data Structures

typedef union {
    struct {
        Plimit3          extent;        /∗ extent rectangle ∗/
        Ptest_compare    relation;      /∗ test relation ∗/
        Pfloat           threshold;     /∗ threshold value ∗/
    } extent3;
    struct {
        Plimit           extent;        /∗ extent rectangle ∗/
        Ptest_compare    relation;      /∗ test relation ∗/
        Pfloat           threshold;     /∗ threshold value ∗/
    } extent;
    struct {
        Ppoint_list_list3   point_lists;    /∗ test object ∗/
        Pclip_cond          cond;           /∗ test condition ∗/
    } bounds3;
    struct {
        Ppoint_list_list    point_lists;    /∗ test object ∗/
        Pclip_cond          cond;           /∗ test condition ∗/
    } bounds;
    struct {
        Pint           filter_type;    /∗ type of filter ∗/
        Pint           filter_id;      /∗ filter identifier ∗/
        Pfilter_op     cond;           /∗ test condition ∗/
    } nameset;
    struct {
        Pint              appl_id;      /∗ application attribute
                                           selector ∗/
        Ptest_compare     comparison;   /∗ test comparison ∗/
        Pint              data;         /∗ application attribute data
                                           value ∗/
    } appl_int_attr;
    struct {
        Pint              appl_id;      /∗ application attribute
                                           selector ∗/
        Ptest_compare     comparison;   /∗ test comparison ∗/
        Pfloat            data;         /∗ application attribute data
                                           value ∗/
    } appl_real_attr;
} Ptest_data;
    typedef struct {
        Pfloat   x_min;    /∗ x minimum ∗/
        Pfloat   x_max;    /∗ x maximum ∗/
        Pfloat   y_min;    /∗ y minimum ∗/
        Pfloat   y_max;    /∗ y maximum ∗/
        Pfloat   z_min;    /∗ z minimum ∗/
        Pfloat   z_max;    /∗ z maximum ∗/
    } Plimit3;
    typedef enum {
        PTRL_EQUAL,
        PTRL_NOT_EQUAL,
        PTRL_GREATER,
        PTRL_LESS,
        PTRL_GREATER_EQUAL,
        PTRL_LESS_EQUAL,
        PTRG_BITWISE_AND,
        PTRG_BITWISE OR,
        PTRG_BITWISE_XOR
    } Ptest_compare;
    typedef struct {
        Pfloat   x_min;    /∗ x minimum ∗/
        Pfloat   x_max;    /∗ x maximum ∗/
        Pfloat   y_min;    /∗ y minimum ∗/
        Pfloat   y_max;    /∗ y maximum ∗/
    } Plimit;
    typedef struct {
        Pint           num_point_lists;     /∗ number of point lists ∗/
        Ppoint_list3  ∗point_lists;         /∗ list of point lists ∗/
    } Ppoint_list_list3;
        typedef struct {
            Pint      num_points;   /∗ number of Ppoint3s in the list ∗/
            Ppoint3  ∗points;       /∗ list of points ∗/
        } Ppoint_list3;
            typedef struct {
                Pfloat    x;    /∗ x coordinate ∗/
                Pfloat    y;    /∗ y coordinate ∗/
                Pfloat    z;    /∗ z coordinate ∗/
            } Ppoint3;
    typedef enum {
        PCLIPCOND_IS_NOT_CLIPPED,
        PCLIPCOND_IS_PARTIALLY_CLIPPED,
        PCLIPCOND_IS_FULLY_CLIPPED
    } Pclip_cond;
    typedef struct {
        Pint          num_point_lists;  /∗ number of point lists ∗/
        Ppoint_list  ∗point_lists;      /∗ list of point lists ∗/
    } Ppoint_list_list;
        typedef struct {
            Pint      num_points;   /∗ number of Ppoints in the list ∗/
            Ppoint   ∗points;       /∗ list of points ∗/
        } Ppoint_list;
            typedef struct {
                Pfloat    x;    /∗ x coordinate ∗/
                Pfloat    y;    /∗ y coordinate ∗/
            } Ppoint;
    typedef enum {
        PFILTER_FAILS,    /∗ condition was not met ∗/
        PFILTER_PASSES    /∗ condition was met ∗/
    } Pfilter_op;

Constants

 
Defined Argument     Constant                   Description
---------------------------------------------------------------------------
test_method          PTEST_ALWAYS_FAIL          The test will always fail.
                     PTEST_ALWAYS_SUCCEED       The test will always
                                                succeed.
                     PTEST_EXTENT3              This method contains a
                                                rectangular parallelepiped,
                                                a relation, and a
                                                threshold. Digital PHIGS
                                                compares the maximum of
                                                the differences between
                                                the minimum and maximum x,
                                                y, and z values
                                                against the threshold,
                                                using the specified
                                                relation. If the
                                                relationship is satisfied,
                                                the test is successful.
                     PTEST_EXTENT               This method contains a
                                                rectangle, a relation, and
                                                a threshold.  Digital PHIGS
                                                compares the maximum of
                                                the differences between
                                                the minimum and maximum
                                                x and y values against
                                                the threshold, using the
                                                specified relation.  If the
                                                relationship is satisfied,
                                                the test is successful.
                     PTEST_BOUNDS3              This method contains a
                                                description of a test
                                                object and a clip
                                                condition.  The test
                                                determines if the object
                                                will be clipped by
                                                Digital PHIGS. If the clip
                                                condition is satisfied,
                                                the test is successful.
                     PTEST_BOUNDS               This method contains a
                                                description of a test
                                                object and a clip
                                                condition.  The test
                                                determines if the object
                                                will be clipped by
                                                Digital PHIGS. If the clip
                                                condition is satisfied,
                                                the test is successful.
                     PTEST_NAMESET              This method compares the
                                                specified filter against
                                                the current name set.  If
                                                the result matches the
                                                specified filter
                                                condition, the test is
                                                successful.
                     PTEST_APPL_INTEGER_ATTR    This method compares the
                                                specified application
                                                attribute to the
                                                threshold, using the
                                                specified relation.  If the
                                                relationship is satisfied,
                                                the test is successful.
                                                Tests against undefined
                                                application attributes
                                                always fail.
 
                     PTEST_APPL_REAL_ATTR       This method compares the
                                                specified application
                                                attribute to the
                                                threshold, using the
                                                specified relation.  If the
                                                relationship is satisfied,
                                                the test is successful.
                                                Tests against undefined
                                                application attributes
                                                always fail.
 
Filter types         PFILTER_TYPE_INVIS         Compares the current
                                                invisibility filter set
                                                to the current name set.
                     PFILTER_TYPE_HIGHL         Compares the current
                                                highlighting filter set
                                                to the current name set.
                     PFILTER_TYPE_PICK          Compares the current pick
                                                filter set to the current
                                                name set.
                     PFILTER_TYPE_APPL          Compares the application
                                                filter set (selected by
                                                the filter identifier) to
                                                the current name set.
---------------------------------------------------------------------------

Description

pe_cond_skip_elems skips over the specified number of elements in the structure, if the test succeeds. 

Depending on the current edit mode, this function either inserts the new structure element directly after the element indicated by the pointer or replaces the element indicated by the pointer.  The pointer then points to the new conditional skip elements element. 

If the test succeeds, Digital PHIGS skips over the specified number of elements in the structure.  If you specify a negative number, Digital PHIGS does not skip any elements.  If you specify a number greater than the number of remaining elements in the structure, Digital PHIGS reaches the end of the structure and control returns to the parent structure.  If the test fails, Digital PHIGS does nothing, and traversal continues with the next element in the current structure. 

If Digital PHIGS is in immediate mode, it performs this function immediately, but the function does not create a structure element. 

Digital PHIGS Version 4.1 does not support this function.

See Also

pe_cond_skip_label
 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026