The SEDRIS Data Representation Model
APPENDIX A - Classes
Polygon Control Link

Class Name: Polygon Control Link

Superclass - <Control Link>

Subclasses

This DRM class is concrete and has no subclasses.

Definition

An instance of this DRM class is a <Control Link> that has been specialized to control the polygon_flags (in a SE_Token_Set) in a <Polygon>.

Primary Page in DRM Diagram:

Secondary Pages in DRM Diagram:

Example

  1. The SE_POLY_FLAG_INVISIBLE flag on a <Polygon> is set to SE_TRUE. A <Polygon Control Link> can reset some polygon_flags values. In this case, it could set the SE_POLY_FLAG_INVISIBLE flag to be SE_FALSE.

FAQs

Why isn't there a single <Polygon Control Link> field to control the polygon_flags field of the affected <Polygon> instance(s)?

The polygon_flags field of <Polygon> is an SE_Token_Set, and users of <Polygon Control Link> are not trying to change the SE_Token_Set in question. What users are doing is setting (or clearing) individual boolean flags within the SE_Token_Set.

Consequently, instead of having a single index field for the polygon_flags field, <Polygon Control Link> provides separate index fields for each flag that can be manipulated, so that each can be driven by a separate controlling <Expression>.

Why aren't there <Polygon Control Link> fields for each of the individual flags within polygon_flags?

Simple! No one has asked to be able to control the other flags. If you'd like to be able to control another flag, we'd be happy to consider any change request you might offer.

Constraints

None.

Composed of (two-way)(inherited)

Component of (two-way)

Inherited Field Elements

SE_String description; (notes)

Field Elements

SE_Integer_Unsigned hat_test_expr_index; (notes)
SE_Integer_Unsigned collidible_expr_index; (notes)
SE_Integer_Unsigned invisible_expr_index; (notes)
SE_Integer_Unsigned laser_range_finding_expr_index; (notes)

Notes

Fields Notes


description

 This is a text description of the given <Control Link>
 instance's purpose.

hat_test_expr_index

 If non-zero, this value is the index of an ordered <Expression>
 component of the given <Polygon Control Link> instance. The
 specified <Expression> instance shall be boolean-valued, and
 shall control the inclusion or exclusion of SE_POLY_FLAG_HAT_TEST
 within the polygon_flags field of the affected <Polygon> instances
 such that SE_TRUE means that SE_POLY_FLAG_HAT_TEST shall be
 added to polygon_flags, and SE_FALSE that SE_POLY_FLAG_HAT_TEST
 shall be cleared from polygon_flags.

 If hat_test_expr_index is 0, the SE_POLY_FLAG_HAT_TEST portion of
 the polygon_flags of the affected <Polygon> instances is not
 affected.

collidible_expr_index

 If non-zero, this value is the index of an ordered <Expression>
 component of the given <Polygon Control Link> instance. The
 specified <Expression> instance shall be boolean-valued, and
 shall control the inclusion or exclusion of
 SE_POLY_FLAG_COLLIDIBLE within the polygon_flags field of the
 affected <Polygon> instances such that SE_TRUE means that
 SE_POLY_FLAG_COLLIDIBLE shall be added to the polygon_flags,
 and SE_FALSE that SE_POLY_FLAG_COLLIDIBLE shall be cleared
 from the polygon_flags.

 If collidible_expr_index is 0, the SE_POLY_FLAG_COLLIDIBLE portion
 of the polygon_flags of the affected <Polygon> instances is not
 affected.

invisible_expr_index

 If non-zero, this value is the index of an ordered <Expression>
 component of the given <Polygon Control Link> instance. The
 specified <Expression> instance shall be boolean-valued, and
 shall control the inclusion or exclusion of
 SE_POLY_FLAG_INVISIBLE within the polygon_flags field of the
 affected <Polygon> instances such that SE_TRUE means that
 SE_POLY_FLAG_INVISIBLE shall be added to the polygon_flags,
 and SE_FALSE that SE_POLY_FLAG_INVISIBLE shall be cleared
 from the polygon_flags.

 If invisible_expr_index is 0, the SE_POLY_FLAG_INVISIBLE portion
 of the polygon_flags of the affected <Polygon> instances is not
 affected.

laser_range_finding_expr_index

 If non-zero, this value is the index of an ordered <Expression>
 component of the given <Polygon Control Link> instance. The
 specified <Expression> instance shall be boolean-valued, and
 shall control the inclusion or exclusion of
 SE_POLY_FLAG_LASER_RNG_FIND within the polygon_flags field of the
 affected <Polygon> instances such that SE_TRUE means that
 SE_POLY_FLAG_LASER_RNG_FIND shall be added to the polygon_flags,
 and SE_FALSE that SE_POLY_FLAG_LASER_RNG_FIND shall be cleared
 from the polygon_flags.

 If laser_range_finding_expr_index is 0, the
 SE_POLY_FLAG_LASER_RNG_FIND portion of the polygon_flags of
 the affected <Polygon> instances is not affected.

Prev: Polygon. Next: Positional Light. Up:Index.

Last updated: May 15, 2003 Copyright © 2003 SEDRIS™