}
/**
- * This is used by Structure Viewers and the Overview Window to get the
- * feature colour of the rendered sequence
- *
- * @param seq
- * @param column
- * @return
+ * {@inheritDoc}
*/
@Override
public Color findFeatureColour(SequenceI seq, int column, Graphics g)
/**
* Draws the sequence features on the graphics context, or just determines the
- * colour that would be drawn (if flag offscreenrender is true).
+ * colour that would be drawn (if flag colourOnly is true). Returns the last
+ * colour drawn (which may not be the effective colour if transparency
+ * applies), or null if no feature is drawn in the range given.
*
* @param g
* the graphics context to draw on (may be null if colourOnly==true)
* @param seq
* @param start
- * start column (or sequence position in offscreenrender mode)
+ * start column
* @param end
- * end column (not used in offscreenrender mode)
+ * end column
* @param y1
* vertical offset at which to draw on the graphics
* @param colourOnly
Color drawnColour = null;
/*
- * iterate over features in ordering of their rendering;
- * if drawing a range of columns, use render order to ensure last is on top
- * if drawing a single column (as in findFeatureColour), with no
- * transparency, work backwards to find the topmost rendered feature colour
+ * iterate over features in ordering of their rendering (last is on top)
*/
for (int renderIndex = 0; renderIndex < renderOrder.length; renderIndex++)
{
continue;
}
+ /*
+ * a feature type may be flagged as shown but the group
+ * an instance of it belongs to may be hidden
+ */
if (featureGroupNotShown(sequenceFeature))
{
continue;
}
/*
- * check feature overlaps the visible part of the alignment,
- * unless doing offscreenRender (to the Overview window or a
- * structure viewer) which is not limited
+ * check feature overlaps the target range
+ * TODO: efficient retrieval of features overlapping a range
*/
if (sequenceFeature.getBegin() > endPos
|| sequenceFeature.getEnd() < startPos)