# Aspects for SEIR Diseases
#
# "Aspects" is a comma separated list of Aspect codes.
# All of the valid aspects have to be listed.
# The Default Aspect displayed if not otherwise specified 
# is specified by the Default statement.
Aspects = S,E,I,R
Default = I
#
# The KMLDisplayClass property names the class that is 
# called to generate the KML file use to display STEM 
# aspects on the GoogleEarth map. 
# The default class KmlDisplay specified below uses the Aspect properties 
# to generate the KML and new Disease aspects can be added
# simply by adding them to this properties file.
# KmlDisplayCustom is customized to only work with SEIR diseases.
# New Display implementations may be created easily.
# 
KmlDisplay = org.eclipse.stem.ui.ge.kml.KmlDisplay
#kmlDisplay = org.eclipse.stem.ui.ge.kml.KmlDisplayCustom
#
# Following the Aspects statements are groups of 
# specifications for each of the aspects listed above.
# each specification is the aspect code + "." + the
# specification name + "=" + the value. 
# The following are required:
#   aspect.name =
#   aspect.description =
#   aspect.color =  ( where color is [red blue or green] ) 
#   
# The following are optional and the defaults are used
# if not specified.
#    aspect.range = Comma separated list of double values
#        DEFAULT_RANGE = {0.0, 0.33, 0.66, 1.0};
#    aspect.opacity = Comma separated list of values 0-255
#        DEFAULT_OPACITY = {0,128,160,192};
#    aspect.red =  Comma separated list of values 0-255
#    aspect.green =  Comma separated list of values 0-255
#    aspect.blue =  Comma separated list of values 0-255
# See Aspect javadoc for more information.
#####################################################################
# S is Susceptible
S.name = Susceptible
S.description = Percentage of people who are suseptible to the disease.
S.range = 0.001,0.2,0.4,0.6,0.8,1.0
S.opacity = 0,96,128,128,160,160
S.blue = 0,240,240,240,240,240
S.red = 0
S.green = 0
#
# E is exposed
E.name = Exposed
E.Description = Percentage of people who are exposed to the disease.
E.range = 0.0001,0.01,0.1,0.3,0.6,1.0
E.opacity = 0,     96,128,144,160,176
E.red = 240
E.green = 240
#
# I is Infectious
I.name = Infectious
I.Description = Percentage of people who are infected by the disease.
I.range = 0.00001,0.01,0.1,0.3,0.6,1.0
I.opacity = 0,      96,128,144,160,176
I.red = 240

#
# R is Recovered
R.name = Recovered
R.Description = Percentage of people who are recovered from the disease.
R.range = 0.0001,0.01,0.1,0.3,0.6,1.0
R.opacity = 0,     96,128,128,160,160
R.green = 240