pe_cond_exec_struct(3g) — Subroutines
Name
pe_cond_exec_struct − Executes the structure if the specified condition is met.
Operating States: PHOP, ∗, STOP, ∗
Digital PHIGS extension function
Syntax
void pe_cond_exec_struct (
Pint struct_id, /∗ (I) Structure identifier ∗/
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_exec_struct executes the specified structure if the specified condition is met. If the test succeeds, Digital PHIGS executes the structure as if you called pexec_struct. If the test fails, Digital PHIGS does nothing, and continues traversing the next element in the structure.
Digital PHIGS Version 4.1 does not support this function.
See Also
pexec_struct
pe_incl_struct