<h1>
    Gauge Architecture
</h1>

<h3>
    Gauge Classes
</h3>
<p>
    The hierarchy of gauge classes is as follows:
</p>
<ul>
    <li>
        <b>Gauge</b>: Abstract base class.
        <ul>
            <li>
                <b>RadialGauge</b>: Displays values along a circular scale.
            </li>
            <li>
                <b>LinearGauge</b>: Displays values along a linear scale.
                <ul>
                    <li>
                        <b>BulletGraph</b>: Displays actual and target values
                        along a linear scale.
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
<p>
    The root Gauge class provides basic elements shares by all
    Gauge classes:
</p>
<ul>
    <li>
        An SVG-based control template with customizable parts.
    </li>
    <li>
        A common set of properties, events and methods including
        "min", "max", "value", and "ranges".
    </li>
</ul>

<h3>
    Gauge Ranges
</h3>
<p>
    C1 MVC gauges are composed of <b>Range</b> objects.
    Every gauge has at least two ranges: the "face" and
    the "pointer":
</p>
<ul>
    <li>
        <b>face</b>:
        Represents the gauge background. The "min" and "max" properties
        of the face range correspond to the "min" and "max" properties
        of the gauge, and limit the values that the gauge can display.
    </li>
    <li>
        <b>pointer</b>:
        Indicates the gauge's current value. The "max" property of
        the pointer range corresponds to the "value" property of
        the gauge.
    </li>
</ul>
<p>
    In addition to these two special ranges, gauges may have any number
    of additional ranges added to their "ranges" collection.
</p>