JAL-2438 clarify code and javadoc, reinstate updateFeatures() check
[jalview.git] / src / jalview / api / FeatureRenderer.java
index 839119d..7123b8c 100644 (file)
@@ -38,17 +38,25 @@ public interface FeatureRenderer
 {
 
   /**
-   * Returns the combined feature colour for a given sequence and column
-   * position, taking into account feature colour schemes, ordering, feature and
-   * feature group visibility, and transparency. Returns null if there is no
-   * visible feature at the position.
+   * Computes the feature colour for a given sequence and column position,
+   * taking into account sequence feature locations, feature colour schemes,
+   * render ordering, feature and feature group visibility, and transparency.
    * <p>
-   * The Graphics argument is optional and may be null if no transparency is
-   * applied. With feature transparency, visible features are written to the
-   * graphics context and the composite colour can be read off.
+   * The graphics argument should be provided if transparency is applied
+   * (getTransparency() < 1). With feature transparency, visible features are
+   * written to the graphics context and the composite colour may be read off
+   * from it. In this case, the returned feature colour is not the composite
+   * colour but that of the last feature drawn.
    * <p>
-   * This is provided for use by Structure Viewers and the Overview Window to
-   * get the feature colour of the rendered sequence.
+   * If no transparency applies, then the graphics argument may be null, and the
+   * returned colour is the one that would be drawn for the feature.
+   * <p>
+   * Returns null if there is no visible feature at the position.
+   * <p>
+   * This is provided to support rendering of feature colours other than on the
+   * sequence alignment, including by structure viewers and the overview window.
+   * Note this method takes no account of whether the sequence or column is
+   * hidden.
    * 
    * @param sequence
    * @param column