The Diagram Graphics (DG) package contains a model of graphical primitives that can be instantiated when mapping from a language abstract syntax models and diagram interchange (DI) models to visual presentations. The mapping effectively defines the concrete syntax of a language. This specification does not restrict how the mappings are done, or what languages are used to define them. RadialGradient is a kind of gradient that fills a graphical element by smoothly changing color values in a circle. the center point coordinates must be between 0 and 1 OCL centerX>=0 and centerX<=1 and centerY>=0 and centerY<=1 the focus point coordinates must be between 0 and 1 OCL focusX>=0 and focusX<=1 and focusY>=0 and focusY<=1 the radius must be between 0 and 1 OCL radius>=0 and radius<=1 a real number (>=0 and >=1) representing a ratio of the graphical element's width that is the x center point of the gradient. a real number (>=0 and >=1) representing a ratio of the graphical element's width that is the y center point of the gradient. a real number (>=0 and >=1) representing a ratio of the graphical element's size that is the radius of the gradient. a real number (>=0 and >=1) representing a ratio of the graphical element's width that is the x focus point of the gradient. a real number (>=0 and >=1) representing a ratio of the graphical element's width that is the y focus point of the gradient. Pattern is a kind of fill that paints a graphical element (a tile) repeatedly at fixed intervals in x and y axes to cover the areas to be filled. the bounds of the pattern that define a private coordinate system for the pattern's tile. a reference to a graphical element, owned by the pattern, that works as a tile to be painted repeatedly at a fixed interval to fill an closed area. LinearGradient is a kind of gradient that fills a graphical element by smoothly changing color values along a vector. all the components of the gradient vector must be between 0 and 1. OCL x1>=0 and x1<=1 and x2>=0 and x2<=1 and y1>=0 and y1<=1 and y2>=0 and y2<=1 a real number (>=0 and >=1) representing a ratio of the graphical element's width that is the x start point of the gradient. a real number (>=0 and >=1) representing a ratio of the graphical element's width that is the x end point of the gradient. a real number (>=0 and >=1) representing a ratio of the graphical element's height that is the y start point of the gradient. a real number (>=0 and >=1) representing a ratio of the graphical element's height that is the y end point of the gradient. GradientStop defines a color transition along the distance from a gradient's start to its end offsets. the offset must be between 0 and 1. OCL offset>=0 and offset<=1 the opacity must be between 0 and 1. OCL opacity>=0 and opacity<=1 the color to use at this gradient stop. a real number (>=0 and<=1) representing the offset of this gradient stop as a ratio of the distance between the start and end positions of the gradient. a real number (>=0 and<=1) representing the opacity of the color at the stop. A value of 0 means totally transparent, while a value of 1 means totally opaque. Gradient is a kind of fill that paints a continuously smooth color transition along the gradient range from one color to the next. a list of two or more gradient stops defining the color transitions of the gradient. Fill is the abstract super class of all kinds of fills that are used to paint the interior of graphical elements. a reference to the canvas that owns this fill. a list of zero or more transforms to apply to this fill. GraphicalElement is the abstract superclass of all graphical elements that can be nested in a canvas. the group element that owns this graphical element. a list of locally-owned styles for this graphical element. a list of shared styles for this graphical element. a list of zero or more transforms to apply to this graphical element. an optional reference to a clip path element that masks the painting of this graphical element. Group defines a group of graphical elements that can be styled, clipped and/or transformed together. the list of graphical elements that are members of (owned by) this group. Canvas is a kind of group that represents the root of containment for all graphical elements that render one diagram. a reference to a fill that is used to paint the background of the canvas itself. A backgroundFill value is exclusive with a backgroundColor value. If both are specified, the backgroundFill value is used. If none is specified, no fill is applied (i.e. the canvas becomes see-through). a color that is used to paint the background of the canvas itself. A backgroundColor value is exclusive with a backgroundFill value. If both are specified, the backgroundFill value is used. If none is specified, no fill is applied (i.e. the canvas becomes see-through). a set of fills packaged by the canvas and referenced by graphical elements in the canvas. A set of markers packaged by the canvas and referenced by marked elements in the canvas. a set of styles packaged by the canvas and referenced by graphical elements in the canvas as shared styles. Marker is a kind of group that is used as a decoration (e.g. an arrowhead) for the vertices of a marked graphical element. a reference to the canvas that owns this marker. the size of the marker a point within the bounds of the marker that aligns exactly with the marked element's vertex. MarkedElement is a graphic element that can be decorated at its vertices with markers (e.g. arrowheads). an optional start marker that aligns with the first vertex of the marked element. an optional end marker that aligns with the last vertex of the marked element. an optional mid marker that aligns with all vertices of the marked element except the first and the last. Rectangle is a graphical element that defines a rectangular shape with given bounds. A rectangle may be given rounded corners by setting its corner radius. the bounds of the rectangle in the x-y coordinate system. a radius for the rectangle's rounded corners. When the radius is 0, the rectangle is drawn with sharp corners. Ellipse is a graphical element that defines an elliptical shape with a given center point and two radii on the x and y axes. the center point of the ellipse in the x-y coordinate system. a dimension that specifies the two radii of the ellipse (a width along the x-axis and a height along the y-axis) Text is a graphical element that defines a shape that renders a character string within a bounding box. the text as a string of characters. the bounds inside which the text is rendered (possibly wrapped into multiple lines) the text alignment when wrapped into multiple lines. Line is a marked element that defines a shape consisting of one straight line between two points. the starting point of the line in the x-y coordinate system. the ending point of the line in the x-y coordinate system. Polyline is a marked element that defines a shape consisting of a sequence of connected straight line segments. a list of 2 or more points making up the polyline. Polygon is a marked element that defines a closed shape consisting of a sequence of connected straight line segments. a list of 3 or more points making up the polygon. Path is a marked element that defines a custom shape whose geometry is specified with a sequence of path commands. a list of path commands that define the geometry of the custom shape. Transform defines an operation that changes the geometry of a graphical element in a specific way. Translate is a kind of transform that translates (moves) a graphical element by a given delta along the x-y coordinate system. a real number representing a translate delta along the x-axis. Both positive and negative values are allowed. a real number representing a translate delta along the y-axis. Both positive and negative values are allowed. Scale is a kind of transform that scales (resizes) a graphical element by a given factor in the x-y coordinate system. scale factors cannot be negative. OCL factorX>=0 and factorY>=0 a real number (>=0) representing a scale factor along the x-axis. a real number(>=0) representing a scale factor along the y-axis. Rotate is a kind of transform that rotates a graphical element by a given angle about a given center point in the x-y coordinate system. a real number representing the angle (in degrees) of rotation. Both positive (clock-wise) and negative (counter-clock-wise) values are allowed. a point in the x-y coordinate system about which the rotation is performed. If the point is not specified, it is assumed to be the origin of the x-y coordinate system. Skew is a kind of transform that skews (deforms) a graphical element by given angles in the x-y coordinate system. a real number representing the angle (in degrees) of skew along the x-axis. Both positive (clock-wise) and negative (counter-clock-wise) values are allowed. a real number representing the angle (in degrees) of skew along the y-axis. Both positive (clock-wise) and negative (counter-clock-wise) values are allowed. Image is a graphical element that defines a shape that paints an image with a given URL within given bounds. the URL of a referenced image file. the bounds within which the image is rendered. wether to preserve the aspect ratio of the image upon scaling, i.e. the same scale factor for width and height. ClipPath is a kind of group whose members collectively define a painting mask for its referencing graphical elements. a reference to the owning element that is clipped by this clip path. Circle is a graphical element that defines a circular shape with a given center point and a radius. the radius cannot be negative OCL radius >= 0 the center point of the circle in the x-y coordinate system. a real number (>=0) that represents the radius of the circle. Style contains formatting properties that affect the appearance or style of graphical elements. the font size is non-negative OCL fontSize >= 0 the stroke width is non-negative OCL fillOpacity >= 0 and fillOpacity <=1 the stroke width is non-negative OCL strokeWidth >= 0 the size of the stroke dash length list must be even. OCL strokeDashLength->size().mod(2) = 0 the opacity of the fill is non-negative OCL strokeOpacity >= 0 and strokeOpacity <=1 a reference to a fill that is used to paint the enclosed regions of a graphical element. A fill value is exclusive with a fillColor value. If both are specified, the fill value is used. If none is specified, no fill is applied (i.e. the element becomes see-through). a color that is used to paint the enclosed regions of graphical element. A fillColor value is exclusive with a fill value. If both are specified, the fill value is used. If none is specified, no fill is applied (i.e. the element becomes see-through). a real number (>=0 and <=1) representing the opacity of the fill or fillColor used to paint a graphical element. A value of 0 means totally transparent, while a value of 1 means totally opaque. The default is 1. a real number (>=0) representing the width of the stroke used to paint the outline of a graphical element. A value of 0 specifies no stroke is painted. The default is 1. a real number (>=0 and <=1) representing the opacity of the stroke used for a graphical element. A value of 0 means totally transparent, while a value of 1 means totally opaque. The default is 1. the color of the stroke used to paint the outline of a graphical element. The default is black (red=0, green=0, blue=0). a list of real numbers specifying a pattern of alternating dash and gap lengths used in stroking the outline of a graphical element with the first one specifying a dash length. The size of the list is expected to be even. If the list is empty, the stroke is drawn solid. The default is empty list. a real number (>=0) representing the size (in unit of length) of the font used to render a text element. The default is 10. the name of the font used to render a text element (e.g. "Times New Roman", "Arial" or "Helvetica"). The default is "Arial". the color of the font used to render a text element. The default is black (red=0, green=0, blue=0). whether the font used to render a text element has an <i>italic</i> style. The default is false. whether the font used to render a text element has a <b>bold</b> style. The default is false. whether the font used to render a text element has an <b>underline</b> style. The default is false. whether the font used to render a text element has a <b>strike-through</b> style. The default is false. Matrix is a kind of transform that represents any transform operation with a 3x3 transformation matrix. the a value of the transform matrix. the b value of the transform matrix. the c value of the transform matrix. the d value of the transform matrix. the e value of the transform matrix. the f value of the transform matrix. PathCommand is the abstract super type of all commands that participate in specifying a path element. whether the coordinates specified by the command are relative to the current point (when true) or to the origin point of the coordinate system (when false). MoveTo is a kind of path command that establishes a new current point in the coordinate system. a point to move to in the coordinate system LineTo is a kind of path command that draw a straight line from the current point to a new point. a point to draw a straight line to from the current point in the coordinate system. CubicCurveTo is a kind of path command that draws a cubic bézier curve from the current point to a new point using a start and an end control points. a point to draw a cubic bézier curve to from the current point in the coordinate system. the start control point of the cubic bézier curve. the end control point of the cubic bézier curve. QuadraticCurveTo is a kind of path command that draws a quadratic bézier curve from the current point to a new point using a single control point. a point to draw a quadratic bézier curve to from the current point in the coordinate system. the control point of the quadratic bézier curve. EllipticalArcTo is a kind of path command that draws an elliptical arc from the current point to a new point in the coordinate system. a point to draw an elliptical arc to from the current point in the coordinate system. the two radii of the ellipse from which the arc is created. a real number representing a rotation (in degrees) of the ellipse from which the arc is created. whether the arc sweep is equal to or greater than 180 degrees (the large arc). whether the arc is drawn in a positive-angle direction ClosePath is a kind of path command that ends the current subpath and causes an automatic straight line to be drawn from the current point to the initial point of the current subpath.