sdr_attrList_type Derived Type

type, public :: sdr_attrList_type


type~~sdr_attrlist_type~~InheritsGraph type~sdr_attrlist_type sdr_attrList_type type~dyn_labelarray_type dyn_labelarray_type type~sdr_attrlist_type->type~dyn_labelarray_type uni_name type~grw_distancerefinearray_type grw_distancerefinearray_type type~sdr_attrlist_type->type~grw_distancerefinearray_type distRefine type~grw_logicalarray_type grw_logicalarray_type type~sdr_attrlist_type->type~grw_logicalarray_type bc_uni_calcdist type~dyn_attributearray_type dyn_attributearray_type type~sdr_attrlist_type->type~dyn_attributearray_type dynArray type~grw_intarray_type grw_intarray_type type~sdr_attrlist_type->type~grw_intarray_type kindpos type~sdr_distancerefine_type sdr_distanceRefine_type type~grw_distancerefinearray_type->type~sdr_distancerefine_type val type~sdr_attribute_type sdr_attribute_type type~dyn_attributearray_type->type~sdr_attribute_type val

Inherited by

type~~sdr_attrlist_type~~InheritedByGraph type~sdr_attrlist_type sdr_attrList_type type~sdr_geometry_type sdr_geometry_type type~sdr_geometry_type->type~sdr_attrlist_type attribute



type(dyn_attributearray_type), private :: dynArray

Dynamic array of all unique attributes.

Attributes are distinguished by kind, label, color and level.

type(dyn_labelarray_type), private :: uni_name(sdr_object_kinds_max)

Unique list of used names for the various attribute kinds.

(Labels for boundaries, colors for seeds, not relevant otherwise) This is especially needed to find the actual number of different colors.

integer, private :: none_color_id =-1

uni_id of the 'none' color.

The none color is special in that it will not be stored to disk. However, it will be used just like any other color during construction of the prototree. To filter the color later before writing the colors to disk, we store the index of the 'none' color here. If there is no 'none' color, this id is -1.

integer, private, allocatable:: bc_color_id(:)

ID of unique colors for each kindpos(sdr_Boundary_object).

Required to identify the colors to which a certain boundary should apply. 'none' and 'all' boundaries: negative value matching seed labels: positive uni_id of that color non-matching: 0 (affecting no flooding color at all)

logical, private, allocatable:: color_inverted(:)

Flag for each unique color, wether it should be inverted.

Inverted colors will change reverse their flooded flags after flooding. Only elements that are flooded by the none color are considered, and the none color itself can not be inverted.

type(grw_logicalarray_type), private :: bc_uni_calcdist

Growing array with flags on whether to calculate distances for each unique boundary.

There might be conflicting calc_dist settings for attributes with the same boundary label. The bc_uni_calcdist consolidates this. If any of the attributes with the same label has the calc_dist set to true, this will be true and all attributes with that label will be changed accordingly.

type(grw_intarray_type), private :: kindpos(sdr_object_kinds_max)

A list of all the attribute positions for each kind. This provides the mapping of the kind id to the attribute position.

type(grw_distancerefinearray_type), private :: distRefine

Growing array of distance refinement info for boundary attribute. Use dynArray%distRefine_id to create attribute with distance refine