/*
 * STRUCT: SE_HIERARCHY_ORDER_PARAMETERS
 *
 *   Determines the traversal order of the 'branches' or 'switches' from an
 *   <Aggregate Feature> object or <Aggregate Geometry> object encountered
 *   by a Component Iterator. If an <Aggregate Feature> or <Aggregate Geometry>
 *   object contains unordered branches, then the traversal order of these
 *   branches is random by default. By using traversal order parameters, the
 *   user can control the order in which the branches will be traversed.
 *
 *   If a given type of aggregate object is not given any traversal order
 *   controls, then the components of that type of aggregate object will be
 *   traversed in a random order, unless the aggregate object itself is
 *   defined with an ordering of branches in the data model.
 *
 *   ANIMATION RELATED GEOMETRY:
 *
 *     No order parameters are provided for an <Animation Related Geometry>,
 *     because the traversal order of an <Animation Related Geometry> is
 *     already defined by the data model.  The frames of an animation are
 *     ordered, and that ordering is the order in which the frames will
 *     be traversed.
 *
 *   LEVEL OF DETAIL RELATED GEOMETRY & FEATURES:
 *
 *     Note that Ascending and Descending refer to the level of detail of
 *     the branches, thus, for distance level of detail, a smaller distance
 *     provides a higher level of detail.
 *
 *     Ascending Order:
 *         Distance - branches with higher minimum_ranges will be first
 *         Index - branches with lower indices will be first
 *         Map Scale - branches with lower map_scales will be first
 *         Spatial Resolution - branches with lower resolutions will be first
 *         Volume - volumes that occupy less volume will be first
 *
 *     Descending Order:
 *         Distance - branches with lower minimum_ranges will be first
 *         Index - branches with higher indices will be first
 *         Map Scale - branches with higher map_scales will be first
 *         Spatial Resolution - branches with higher resolutions will be first
 *         Volume - volumes that occupy more volume will be first
 *
 *     Order does not matter:
 *         A random traversal order will be taken
 *
 *   OCT TREE AND QUAD TREE RELATED GEOMETRY & FEATURES:
 *
 *     Ascending Order: from SE_SW_QUADRANT     to SE_SE_QUADRANT for Quad,
 *                           SE_UPPER_SW_OCTANT to SE_LOWER_NE_OCTANT for Oct
 *
 *     Descending Order: from SE_SE_QUADRANT     to SE_SW_QUADRANT for Quad,
 *                            SE_LOWER_NE_OCTANT to SE_UPPER_SW_OCTANT for Oct
 *
 *     Order does not matter: A random traversal order will be taken
 *
 *   SEPARATING PLANE RELATED GEOMETRY:
 *
 *     Ascending Order: False branches will be traversed first
 *
 *     Descending Order: True branches will be traversed first
 *
 *     Order does not matter: A random traversal order will be taken
 *
 *   TIME RELATED GEOMETRY & FEATURES:
 *
 *     Ascending Order:
 *         <Time Interval> - branches with earlier start_times will be first
 *         <Time Point> - branches with earlier times will be first
 *             (by definition, all Exercise relative times will be considered
 *             earlier than all GMT and Reference Relative times.  All GMT and
 *             Relative Reference times will be compared appropriately to
 *             each other.)
 *         <Season> - order based on the SE_SEASON_ENUM enum
 *         <Time of Day> - order based on the SE_TIME_OF_DAY_ENUM enum
 *
 *     Descending Order:
 *         <Time Interval> - branches with later start_times will be first
 *         <Time Point> - branches with later times will be first
 *         <Season> - order based on the SE_SEASON_ENUM enum
 *         <Time of Day> - order based on the SE_TIME_OF_DAY_ENUM enum
 *
 *     Order does not matter:
 *         A random traversal order will be taken
 *
 *   PERIMETER RELATED GEOMETRY:
 *
 *     No parameters are specified for dealing with a <Perimeter Related
 *     Geometry> object.  If the order of traversal is important to the user,
 *     then making multiple iterators, each with a different Spatial
 *     Search Boundary, is recommended.
 *
 *   CONTINUOUS LEVEL OF DETAIL GEOMETRY:
 *
 *     No ordering is allowable - the order of traversal doesn't matter
 *     to the user.
 *
 *   UNION:
 *
 *     All of the components of a Union object are already ordered by the
 *     data model, so no ordering parameters are required.
 *
 *   For all other types of <Aggregate Feature> and <Aggregate Geometry>,
 *   see the definitions for the appropriate _PARAMETERS types used in
 *   the following structure.
 */
typedef struct
{
SE_GENERAL_HIERARCHY_ORDER general_hierarchy_mask;
SE_ALT_HIERARCHY_PARAMETERS alt_hier_traversal_order;
SE_CLASSIFICATION_PARAMETERS classification_traversal_order;
SE_RANGE_ORDER_ENUM lod_traversal_order;
SE_RANGE_ORDER_ENUM oct_tree_traversal_order;
SE_RANGE_ORDER_ENUM quad_tree_traversal_order;
SE_RANGE_ORDER_ENUM sep_plane_traversal_order;
SE_SPATIAL_INDEX_GENERAL_ORDER spatial_index_general_traversal_order;
SE_SPATIAL_INDEX_PARAMETERS spatial_index_specific_traversal_order;
SE_STATE_PARAMETERS state_traversal_order;
SE_RANGE_ORDER_ENUM time_traversal_order;
} SE_HIERARCHY_ORDER_PARAMETERS;
Prev: SE_HIERARCHY_INCLUSION_ENUM. Next: SE_HIERARCHY_SELECT_PARAMETERS. Up:Index