"Attribute that represents the shape of the associated hot spot." tagged("enumerated attribute") shared class Shape of circle | default | poly | rect satisfies AttributeValueProvider { shared actual String attributeValue; "In the circle state, area elements must have a coords attribute present, with three integers, the last of which must be non-negative. The first integer must be the distance in CSS pixels from the left edge of the image to the center of the circle, the second integer must be the distance in CSS pixels from the top edge of the image to the center of the circle, and the third integer must be the radius of the circle, again in CSS pixels." shared new circle { attributeValue = "circle"; } "In the default state state, area elements must not have a coords attribute. The area is the whole image." shared new default { attributeValue = "default"; } "In the polygon state, area elements must have a coords attribute with at least six integers, and the number of integers must be even. Each pair of integers must represent a coordinate given as the distances from the left and the top of the image in CSS pixels respectively, and all the coordinates together must represent the points of the polygon, in order." shared new poly { attributeValue = "poly"; } "In the rectangle state, area elements must have a coords attribute with exactly four integers, the first of which must be less than the third, and the second of which must be less than the fourth. The four points must represent, respectively, the distance from the left edge of the image to the left side of the rectangle, the distance from the top edge to the top side, the distance from the left edge to the right side, and the distance from the top edge to the bottom side, all in CSS pixels." shared new rect { attributeValue = "rect"; } }