The simplest buffer.
This is maps which char belong to which cell skipping the whitespaces
4x8 - 32 subcells
Contains a group of fragments that are touching each other
The purpose of Contacts is to group fragments together
Fragment buffer contains the drawing fragments for each cell
Svg can be converted to fragment buffer
then from the fragment we can match which characters is best suited for
a particular set of fragment contained in a cell and then create a stringbuffer.
The stringbuffer becomes the ascii diagrams
SVG -> FragmentBuffer -> StringBuffer -> Ascii Diagrams
TODO: Maybe rename to Characteristic
PropertyBuffer is a buffer
which contains the property of each cell
This will be used in the first phase of converting ascii diagrams into fragment buffer
The properties are generated once and will be repeatedly used for the second phase
where testing the neighboring characters to determine the fragment to be drawn for that cell.
A describes where a char came from relative to the source ascii text
The primary purpose of span is to group adjacent cell together
A 2D string buffer
where you can insert a character to any cell on the 2D grid
each cell can be assigned with a string
taking into account utf8 code which can not be char
including but not limited to multi-width chars