import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
+import java.util.ArrayList;
import java.util.List;
public class FeatureRenderer extends FeatureRendererModel
findAllFeatures();
}
+ private List<SequenceFeature> overlaps = new ArrayList<>();
+
/**
* Returns the sequence feature colour rendered at the given column position,
* or null if none found. The feature of highest render order (i.e. on top) is
* colour for features enclosing a gapped column. Check for gap before calling
* if different behaviour is wanted.
*
+ * BH 2019.07.30
+ *
+ * Adds a result ArrayList to parameters in order to avoid an unnecessary construction of that for every pixel checked.
+ *
+ *
* @param seq
* @param column
* (1..)
* @return
*/
- Color findFeatureColour(SequenceI seq, int column)
+ private Color findFeatureColour(SequenceI seq, int column)
{
/*
* check for new feature added while processing
continue;
}
- List<SequenceFeature> overlaps = seq.findFeatures(column, column,
- type);
- for (SequenceFeature sequenceFeature : overlaps)
+ overlaps.clear();
+ seq.findFeatures(column, type, overlaps);
+ if (overlaps.size() > 0)
{
- if (!featureGroupNotShown(sequenceFeature))
+ for (SequenceFeature sequenceFeature : overlaps)
{
- Color col = getColour(sequenceFeature);
- if (col != null)
+ if (!featureGroupNotShown(sequenceFeature))
{
- return col;
+ Color col = getColour(sequenceFeature);
+ if (col != null)
+ {
+ return col;
+ }
}
}
}