mirror of
https://github.com/braillerap/BrailleRap.git
synced 2025-06-08 18:09:57 +02:00
143 lines
4.4 KiB
Java
143 lines
4.4 KiB
Java
import java.awt.Point;
|
||
import java.util.ArrayList;
|
||
|
||
/**
|
||
*
|
||
*/
|
||
|
||
/**
|
||
* @author lenovo
|
||
*
|
||
*/
|
||
public class Braille6GcodeEncoding implements BrailleGcodeEncoding {
|
||
private static final BrailleGcodeDot[] dot = new BrailleGcodeDot[] {
|
||
new BrailleGcodeDot('a', new int[] {1}),
|
||
new BrailleGcodeDot('b', new int[] {1,2}),
|
||
new BrailleGcodeDot('c', new int[] {1,4}),
|
||
|
||
|
||
|
||
new BrailleGcodeDot('d', new int[]{1,4,5}),
|
||
new BrailleGcodeDot('e', new int[] {1,5}),
|
||
new BrailleGcodeDot('f', new int[]{1,2,4}),
|
||
new BrailleGcodeDot('g', new int[]{1,2,4,5}),
|
||
new BrailleGcodeDot('h', new int[]{1,2,5}),
|
||
new BrailleGcodeDot('i', new int[]{2,4}),
|
||
new BrailleGcodeDot('j', new int[]{2,4,5}),
|
||
new BrailleGcodeDot('k', new int[]{1,3}),
|
||
new BrailleGcodeDot('l', new int[]{1,2,3}),
|
||
new BrailleGcodeDot('m', new int[]{1,3,4}),
|
||
new BrailleGcodeDot('n', new int[]{1,3,4,5}),
|
||
new BrailleGcodeDot('o', new int[]{1,3,5}),
|
||
new BrailleGcodeDot('p', new int[]{1,2,3,4}),
|
||
new BrailleGcodeDot('q', new int[]{1,2,3,4,5}),
|
||
new BrailleGcodeDot('r', new int[]{1,2,3,5}),
|
||
new BrailleGcodeDot('s', new int[]{2,3,4}),
|
||
new BrailleGcodeDot('t', new int[]{2,3,4,5}),
|
||
new BrailleGcodeDot('u', new int[]{1,3,6}),
|
||
new BrailleGcodeDot('v', new int[]{1,2,3,6}),
|
||
new BrailleGcodeDot('w', new int[]{2,4,5,6}),
|
||
new BrailleGcodeDot('x', new int[]{1,3,4,6}),
|
||
new BrailleGcodeDot('y', new int[]{1,3,4,5,6}),
|
||
new BrailleGcodeDot('z', new int[]{1,3,5,6}),
|
||
|
||
new BrailleGcodeDot(' ', new int[]{}),
|
||
new BrailleGcodeDot('.', new int[]{2,5,6}),
|
||
new BrailleGcodeDot(',', new int[]{2}),
|
||
new BrailleGcodeDot('?', new int[]{2,6}),
|
||
new BrailleGcodeDot(';', new int[]{2,3}),
|
||
new BrailleGcodeDot(',', new int[]{2,4}),
|
||
new BrailleGcodeDot('!', new int[]{2,3,5}),
|
||
new BrailleGcodeDot('(', new int[]{2,3,6}),
|
||
new BrailleGcodeDot(')', new int[]{3,5,6}),
|
||
new BrailleGcodeDot('\'', new int[]{3}),
|
||
new BrailleGcodeDot('-', new int[]{3,6}),
|
||
new BrailleGcodeDot('/', new int[]{3,4}),
|
||
new BrailleGcodeDot('*', new int[]{3,5}),
|
||
new BrailleGcodeDot('+', new int[]{2,3,5}),
|
||
new BrailleGcodeDot('=', new int[]{2,3,5,6}),
|
||
new BrailleGcodeDot('0', new int[]{3, 4, 5, 6}),
|
||
new BrailleGcodeDot('1', new int[]{1, 6}),
|
||
new BrailleGcodeDot('2', new int[]{1, 2, 6}),
|
||
new BrailleGcodeDot('3', new int[]{1, 4, 6}),
|
||
new BrailleGcodeDot('4', new int[]{1, 4, 5, 6}),
|
||
new BrailleGcodeDot('5', new int[]{1, 5, 6}),
|
||
new BrailleGcodeDot('6', new int[]{1, 2, 4, 6}),
|
||
new BrailleGcodeDot('7', new int[]{1, 2, 4, 5, 6}),
|
||
new BrailleGcodeDot('8', new int[]{1, 2, 5, 6}),
|
||
new BrailleGcodeDot('9', new int[]{2, 4, 6}),
|
||
|
||
new BrailleGcodeDot('<27>', new int[]{1, 2, 3,5, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{1, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{1,2, 3, 4, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{2, 3, 4, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{1, 2, 3, 4, 5, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{1, 2, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{1, 2, 4, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{1, 4, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{1,2, 4, 5, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{2, 3, 4, 5, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{1, 5, 6}),
|
||
new BrailleGcodeDot('<27>', new int[]{1, 2, 5, 6}),
|
||
|
||
new BrailleGcodeDot('<27>', new int[]{4, 6}), // Majuscule NatBraille
|
||
new BrailleGcodeDot('`', new int[]{6}), // Chiffres NatBraille
|
||
new BrailleGcodeDot('\"', new int[]{2, 3, 5, 6}) // Chiffres NatBraille
|
||
|
||
};
|
||
|
||
private final int nrow = 2; // number of row in braille encoding
|
||
private final int nline = 3; // number of line in braille encoding
|
||
|
||
|
||
|
||
|
||
public Braille6GcodeEncoding() {
|
||
super();
|
||
// TODO Auto-generated constructor stub
|
||
}
|
||
|
||
/* (non-Javadoc)
|
||
* @see BrailleGodeEncoding#GetCharacterDots(char)
|
||
*/
|
||
@Override
|
||
public ArrayList<Point> GetCharacterDots(char a) {
|
||
//TODO make this fast
|
||
|
||
for (int i =0; i < dot.length;i++)
|
||
{
|
||
if (dot[i].getCar() == a)
|
||
{
|
||
ArrayList<Point> Braille = new ArrayList<Point>();
|
||
for (int d = 0; d < dot[i].getPos().length; d++)
|
||
{
|
||
int x = dot[i].getPos()[d] <= nline ? 0 : 1;
|
||
int y = dot[i].getPos()[d] <= nline ? dot[i].getPos()[d] - 1 : dot[i].getPos()[d] - 1 - nline;
|
||
|
||
Braille.add(new Point(x,y));
|
||
}
|
||
|
||
return Braille;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
|
||
/* (non-Javadoc)
|
||
* @see BrailleGodeEncoding#getNRow()
|
||
*/
|
||
@Override
|
||
public int getNRow() {
|
||
return nrow;
|
||
}
|
||
|
||
/* (non-Javadoc)
|
||
* @see BrailleGodeEncoding#getNline()
|
||
*/
|
||
@Override
|
||
public int getNline() {
|
||
return nline;
|
||
}
|
||
|
||
}
|