Class TextGrid

java.lang.Object
org.stathissideris.ascii2image.text.TextGrid
Direct Known Subclasses:
GridPattern

public class TextGrid extends Object
  • Constructor Details

    • TextGrid

      public TextGrid()
    • TextGrid

      public TextGrid(int width, int height)
    • TextGrid

      public TextGrid(TextGrid otherGrid)
  • Method Details

    • addToMarkupTags

      public void addToMarkupTags(Collection<String> tags)
    • makeSameSizeAs

      public static TextGrid makeSameSizeAs(TextGrid grid)
    • clear

      public void clear()
    • get

      public char get(int x, int y)
    • get

      public char get(TextGrid.Cell cell)
    • getRow

      public StringBuffer getRow(int y)
    • getSubGrid

      public TextGrid getSubGrid(int x, int y, int width, int height)
    • getTestingSubGrid

      public TextGrid getTestingSubGrid(TextGrid.Cell cell)
    • getStringAt

      public String getStringAt(int x, int y, int length)
    • getStringAt

      public String getStringAt(TextGrid.Cell cell, int length)
    • getNorthOf

      public char getNorthOf(int x, int y)
    • getSouthOf

      public char getSouthOf(int x, int y)
    • getEastOf

      public char getEastOf(int x, int y)
    • getWestOf

      public char getWestOf(int x, int y)
    • getNorthOf

      public char getNorthOf(TextGrid.Cell cell)
    • getSouthOf

      public char getSouthOf(TextGrid.Cell cell)
    • getEastOf

      public char getEastOf(TextGrid.Cell cell)
    • getWestOf

      public char getWestOf(TextGrid.Cell cell)
    • writeStringTo

      public void writeStringTo(int x, int y, String str)
    • writeStringTo

      public void writeStringTo(TextGrid.Cell cell, String str)
    • set

      public void set(TextGrid.Cell cell, char c)
    • set

      public void set(int x, int y, char c)
    • setRow

      public void setRow(int y, String row)
    • setRow

      public void setRow(int y, StringBuffer row)
    • getWidth

      public int getWidth()
    • getHeight

      public int getHeight()
    • printDebug

      public void printDebug()
    • getDebugString

      public String getDebugString()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • add

      public boolean add(TextGrid grid)
      Adds grid to this. Space characters in this grid are replaced with the corresponding contents of grid, otherwise the contents are unchanged.
      Parameters:
      grid -
      Returns:
      false if the grids are of different size
    • replaceTypeOnLine

      public void replaceTypeOnLine()
      Replaces letters or numbers that are on horizontal or vertical lines, with the appropriate character that will make the line continuous (| for vertical and - for horizontal lines)
    • replacePointMarkersOnLine

      public void replacePointMarkersOnLine()
    • getPointMarkersOnLine

      public CellSet getPointMarkersOnLine()
    • replaceHumanColorCodes

      public void replaceHumanColorCodes()
    • replaceAll

      public void replaceAll(char c1, char c2)
      Replace all occurences of c1 with c2
      Parameters:
      c1 -
      c2 -
    • hasBlankCells

      public boolean hasBlankCells()
    • getAllNonBlank

      public CellSet getAllNonBlank()
    • getAllBoundaries

      public CellSet getAllBoundaries()
    • getAllBlanksBetweenCharacters

      public CellSet getAllBlanksBetweenCharacters()
    • findStrings

      public ArrayList<TextGrid.CellStringPair> findStrings()
      Returns an ArrayList of CellStringPairs that represents all the continuous (non-blank) Strings in the grid. Used on buffers that contain only type, in order to find the positions and the contents of the strings.
      Returns:
    • hasEntryPoint

      public boolean hasEntryPoint(TextGrid.Cell cell, int entryPointId)
      This is done in a bit of a messy way, should be impossible to go out of sync with corresponding GridPatternGroup.
      Parameters:
      cell -
      entryPointId -
      Returns:
    • isBlankBetweenCharacters

      public boolean isBlankBetweenCharacters(TextGrid.Cell cell)
      true if cell is blank and the east and west cells are not (used to find gaps between words)
      Parameters:
      cell -
      Returns:
    • removeNonText

      public void removeNonText()
      Makes blank all the cells that contain non-text elements.
    • removeArrowheads

      public void removeArrowheads()
    • removeColorCodes

      public void removeColorCodes()
    • removeBoundaries

      public void removeBoundaries()
    • findArrowheads

      public ArrayList findArrowheads()
    • findColorCodes

      public ArrayList<TextGrid.CellColorPair> findColorCodes()
    • findMarkupTags

      public ArrayList<TextGrid.CellTagPair> findMarkupTags()
    • removeMarkupTags

      public void removeMarkupTags()
    • matchesAny

      public boolean matchesAny(GridPatternGroup criteria)
    • matchesAll

      public boolean matchesAll(GridPatternGroup criteria)
    • matches

      public boolean matches(GridPattern criteria)
    • isOnHorizontalLine

      public boolean isOnHorizontalLine(TextGrid.Cell cell)
    • isOnVerticalLine

      public boolean isOnVerticalLine(TextGrid.Cell cell)
    • isBoundary

      public static boolean isBoundary(char c)
    • isBoundary

      public boolean isBoundary(int x, int y)
    • isBoundary

      public boolean isBoundary(TextGrid.Cell cell)
    • isLine

      public boolean isLine(TextGrid.Cell cell)
    • isHorizontalLine

      public static boolean isHorizontalLine(char c)
    • isHorizontalLine

      public boolean isHorizontalLine(TextGrid.Cell cell)
    • isHorizontalLine

      public boolean isHorizontalLine(int x, int y)
    • isVerticalLine

      public static boolean isVerticalLine(char c)
    • isVerticalLine

      public boolean isVerticalLine(TextGrid.Cell cell)
    • isVerticalLine

      public boolean isVerticalLine(int x, int y)
    • isLinesEnd

      public boolean isLinesEnd(int x, int y)
    • isLinesEnd

      public boolean isLinesEnd(TextGrid.Cell cell)
      Stubs are also considered end of lines
      Parameters:
      cell -
      Returns:
    • isVerticalLinesEnd

      public boolean isVerticalLinesEnd(TextGrid.Cell cell)
    • isHorizontalLinesEnd

      public boolean isHorizontalLinesEnd(TextGrid.Cell cell)
    • isPointCell

      public boolean isPointCell(TextGrid.Cell cell)
    • containsAtLeastOneDashedLine

      public boolean containsAtLeastOneDashedLine(CellSet set)
    • exactlyOneNeighbourIsBoundary

      public boolean exactlyOneNeighbourIsBoundary(TextGrid.Cell cell)
    • isStub

      public boolean isStub(TextGrid.Cell cell)
      A stub looks like that:
      
       +- or -+ or + or + or /- or -/ or / (you get the point)
                   |    |                |
      
       
      Parameters:
      cell -
      Returns:
    • isCrossOnLine

      public boolean isCrossOnLine(TextGrid.Cell cell)
    • isHorizontalCrossOnLine

      public boolean isHorizontalCrossOnLine(TextGrid.Cell cell)
    • isVerticalCrossOnLine

      public boolean isVerticalCrossOnLine(TextGrid.Cell cell)
    • isStarOnLine

      public boolean isStarOnLine(TextGrid.Cell cell)
    • isLoneDiagonal

      public boolean isLoneDiagonal(TextGrid.Cell cell)
    • isHorizontalStarOnLine

      public boolean isHorizontalStarOnLine(TextGrid.Cell cell)
    • isVerticalStarOnLine

      public boolean isVerticalStarOnLine(TextGrid.Cell cell)
    • isArrowhead

      public boolean isArrowhead(TextGrid.Cell cell)
    • isNorthArrowhead

      public boolean isNorthArrowhead(TextGrid.Cell cell)
    • isEastArrowhead

      public boolean isEastArrowhead(TextGrid.Cell cell)
    • isWestArrowhead

      public boolean isWestArrowhead(TextGrid.Cell cell)
    • isSouthArrowhead

      public boolean isSouthArrowhead(TextGrid.Cell cell)
    • isBullet

      public boolean isBullet(int x, int y)
    • isBullet

      public boolean isBullet(TextGrid.Cell cell)
    • replaceBullets

      public void replaceBullets()
    • isStringsStart

      public boolean isStringsStart(TextGrid.Cell cell)
      true if the cell is not blank but the previous (west) is
      Parameters:
      cell -
      Returns:
    • isStringsEnd

      public boolean isStringsEnd(TextGrid.Cell cell)
      true if the cell is not blank but the next (east) is
      Parameters:
      cell -
      Returns:
    • otherStringsStartInTheSameColumn

      public int otherStringsStartInTheSameColumn(TextGrid.Cell cell)
    • otherStringsEndInTheSameColumn

      public int otherStringsEndInTheSameColumn(TextGrid.Cell cell)
    • isColumnBlank

      public boolean isColumnBlank(int x)
    • followLine

      public CellSet followLine(int x, int y)
    • followIntersection

      public CellSet followIntersection(TextGrid.Cell cell)
    • followIntersection

      public CellSet followIntersection(TextGrid.Cell cell, TextGrid.Cell blocked)
    • followLine

      public CellSet followLine(TextGrid.Cell cell)
      Returns the neighbours of a line-cell that are boundaries (0 to 2 cells are returned)
      Parameters:
      cell -
      Returns:
      null if the cell is not a line
    • followLine

      public CellSet followLine(TextGrid.Cell cell, TextGrid.Cell blocked)
    • followCorner

      public CellSet followCorner(TextGrid.Cell cell)
    • followCorner

      public CellSet followCorner(TextGrid.Cell cell, TextGrid.Cell blocked)
    • followCorner1

      public CellSet followCorner1(TextGrid.Cell cell)
    • followCorner1

      public CellSet followCorner1(TextGrid.Cell cell, TextGrid.Cell blocked)
    • followCorner2

      public CellSet followCorner2(TextGrid.Cell cell)
    • followCorner2

      public CellSet followCorner2(TextGrid.Cell cell, TextGrid.Cell blocked)
    • followCorner3

      public CellSet followCorner3(TextGrid.Cell cell)
    • followCorner3

      public CellSet followCorner3(TextGrid.Cell cell, TextGrid.Cell blocked)
    • followCorner4

      public CellSet followCorner4(TextGrid.Cell cell)
    • followCorner4

      public CellSet followCorner4(TextGrid.Cell cell, TextGrid.Cell blocked)
    • followStub

      public CellSet followStub(TextGrid.Cell cell)
    • followStub

      public CellSet followStub(TextGrid.Cell cell, TextGrid.Cell blocked)
    • followCell

      public CellSet followCell(TextGrid.Cell cell)
    • followCell

      public CellSet followCell(TextGrid.Cell cell, TextGrid.Cell blocked)
    • getCellTypeAsString

      public String getCellTypeAsString(TextGrid.Cell cell)
    • followCrossOnLine

      public CellSet followCrossOnLine(TextGrid.Cell cell, TextGrid.Cell blocked)
    • isOutOfBounds

      public boolean isOutOfBounds(TextGrid.Cell cell)
    • isOutOfBounds

      public boolean isOutOfBounds(int x, int y)
    • isBlank

      public boolean isBlank(TextGrid.Cell cell)
    • isBlank

      public boolean isBlank(int x, int y)
    • isCorner

      public boolean isCorner(TextGrid.Cell cell)
    • isCorner

      public boolean isCorner(int x, int y)
    • matchesAny

      public boolean matchesAny(TextGrid.Cell cell, GridPatternGroup criteria)
    • isCorner1

      public boolean isCorner1(TextGrid.Cell cell)
    • isCorner2

      public boolean isCorner2(TextGrid.Cell cell)
    • isCorner3

      public boolean isCorner3(TextGrid.Cell cell)
    • isCorner4

      public boolean isCorner4(TextGrid.Cell cell)
    • isCross

      public boolean isCross(TextGrid.Cell cell)
    • isK

      public boolean isK(TextGrid.Cell cell)
    • isInverseK

      public boolean isInverseK(TextGrid.Cell cell)
    • isT

      public boolean isT(TextGrid.Cell cell)
    • isInverseT

      public boolean isInverseT(TextGrid.Cell cell)
    • isNormalCorner

      public boolean isNormalCorner(TextGrid.Cell cell)
    • isNormalCorner

      public boolean isNormalCorner(int x, int y)
    • isRoundCorner

      public boolean isRoundCorner(TextGrid.Cell cell)
    • isRoundCorner

      public boolean isRoundCorner(int x, int y)
    • isIntersection

      public boolean isIntersection(TextGrid.Cell cell)
    • isIntersection

      public boolean isIntersection(int x, int y)
    • copyCellsTo

      public void copyCellsTo(CellSet cells, TextGrid grid)
    • equals

      public boolean equals(TextGrid grid)
    • fillCellsWith

      public void fillCellsWith(Iterable cells, char c)
      Fills all the cells in cells with c
      Parameters:
      cells -
      c -
    • fillContinuousArea

      public CellSet fillContinuousArea(int x, int y, char c)
    • fillContinuousArea

      public CellSet fillContinuousArea(TextGrid.Cell cell, char c)
    • findBoundariesExpandingFrom

      public CellSet findBoundariesExpandingFrom(TextGrid.Cell seed)
      Locates and returns the '*' boundaries that we would encounter if we did a flood-fill at seed.
      Parameters:
      seed -
      Returns:
    • cellContainsDashedLineChar

      public boolean cellContainsDashedLineChar(TextGrid.Cell cell)
    • initialiseWithText

      public boolean initialiseWithText(String text, ProcessingOptions options) throws UnsupportedEncodingException
      Throws:
      UnsupportedEncodingException
    • initialiseWithLines

      public boolean initialiseWithLines(ArrayList<StringBuffer> lines, ProcessingOptions options) throws UnsupportedEncodingException
      Throws:
      UnsupportedEncodingException
    • getRows

      protected ArrayList<StringBuffer> getRows()
      Returns: