Merge branch 'releases/Release_2_11_1_Branch'
[jalview.git] / src / jalview / api / AlignViewportI.java
index 785dd14..2a82a32 100644 (file)
@@ -38,6 +38,7 @@ import jalview.viewmodel.ViewportRanges;
 import java.awt.Color;
 import java.awt.Font;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -267,6 +268,15 @@ public interface AlignViewportI extends ViewStyleI
   AlignmentView getAlignmentView(boolean selectedOnly, boolean markGroups);
 
   /**
+   * @return an alignment view, optionally without a complement view
+   * @param selectedOnly
+   * @param markGroups
+   * @param withComplement - false if no complement view required
+   */
+  AlignmentView getAlignmentViewWithComplement(boolean selectedOnly,
+          boolean markGroups, boolean withComplement);
+
+  /**
    * This method returns the visible alignment as text, as seen on the GUI, ie
    * if columns are hidden they will not be returned in the result. Use this for
    * calculating trees, PCA, redundancy etc on views which contain hidden
@@ -528,4 +538,16 @@ public interface AlignViewportI extends ViewStyleI
    *          - a group defined on sequences in the alignment held by the view
    */
   void addSequenceGroup(SequenceGroup sequenceGroup);
+
+  /**
+   * Returns an interator over the [start, end] column positions of the visible
+   * regions of the alignment
+   * 
+   * @param selectedRegionOnly
+   *                             if true, and the view has a selection region,
+   *                             then only the intersection of visible columns
+   *                             with the selection region is returned
+   * @return
+   */
+  Iterator<int[]> getViewAsVisibleContigs(boolean selectedRegionOnly);
 }