FONT_STYLE_BRIDGE.Add(Font.Style.italic, System.Windows.FontStyles.Italic);\r
FONT_STYLE_BRIDGE.Add(Font.Style.oblique, System.Windows.FontStyles.Italic);\r
LETTERS_H_ALIGN_BRIDGE = new System.Collections.Generic.Dictionary<Letters.HorizontalAlign, TextAlignment>();\r
- LETTERS_H_ALIGN_BRIDGE.Add(Letters.HorizontalAlign.TEXT_ALIGN_LEFT, TextAlignment.Left);\r
- LETTERS_H_ALIGN_BRIDGE.Add(Letters.HorizontalAlign.TEXT_ALIGN_CENTER, TextAlignment.Center);\r
- LETTERS_H_ALIGN_BRIDGE.Add(Letters.HorizontalAlign.TEXT_ALIGN_RIGHT, TextAlignment.Right);\r
- LETTERS_H_ALIGN_BRIDGE.Add(Letters.HorizontalAlign.NOT_SPECIFIED, TextAlignment.Left);\r
+ LETTERS_H_ALIGN_BRIDGE.Add(Letters.HorizontalAlign.left, TextAlignment.Left);\r
+ LETTERS_H_ALIGN_BRIDGE.Add(Letters.HorizontalAlign.center, TextAlignment.Center);\r
+ LETTERS_H_ALIGN_BRIDGE.Add(Letters.HorizontalAlign.right, TextAlignment.Right);\r
+ LETTERS_H_ALIGN_BRIDGE.Add(Letters.HorizontalAlign.left, TextAlignment.Left);\r
}\r
#endregion\r
public Letters clone()\r
double left = 0;\r
switch (d.align)\r
{\r
- case Letters.HorizontalAlign.TEXT_ALIGN_LEFT: break;\r
- case Letters.HorizontalAlign.TEXT_ALIGN_CENTER: left = tmp.Width / 2; break;\r
- case Letters.HorizontalAlign.TEXT_ALIGN_RIGHT: left = tmp.Width; break;\r
+ case Letters.HorizontalAlign.left: break;\r
+ case Letters.HorizontalAlign.center: left = tmp.Width / 2; break;\r
+ case Letters.HorizontalAlign.right: left = tmp.Width; break;\r
}\r
System.Windows.Controls.Canvas.SetLeft(tmp, d.datum.x - left);\r
System.Windows.Controls.Canvas.SetTop(tmp, d.datum.y - d.font.size);\r
protected double width_, height_;\r
public Point datum;\r
\r
- public enum HorizontalAlign { NOT_SPECIFIED=-1, TEXT_ALIGN_LEFT=0, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT };\r
+ public enum HorizontalAlign { not_specified=-1, left=0, center, right };\r
+ public const HorizontalAlign NOT_SPECIFIED=HorizontalAlign.not_specified, TEXT_ALIGN_LEFT=HorizontalAlign.left, TEXT_ALIGN_CENTER = HorizontalAlign.center, TEXT_ALIGN_RIGHT=HorizontalAlign.right;\r
public HorizontalAlign align;\r
\r
public Letters()\r
{\r
str_ = "";\r
font = Font.default_font;\r
- align = HorizontalAlign.TEXT_ALIGN_LEFT;\r
+ align = HorizontalAlign.left;\r
}\r
public Letters(String init_str)\r
{\r
str_ = init_str;\r
font_ = Font.default_font;\r
- align = HorizontalAlign.TEXT_ALIGN_LEFT;\r
+ align = HorizontalAlign.center;\r
}\r
public Letters(String init_str, Font init_font)\r
{\r
str_ = init_str;\r
font_ = init_font;\r
- align = HorizontalAlign.TEXT_ALIGN_LEFT;\r
+ align = HorizontalAlign.right;\r
}\r
~Letters()\r
{\r
public Figure centering(Point p)\r
{\r
datum = p;\r
- align = HorizontalAlign.TEXT_ALIGN_CENTER;\r
+ align = HorizontalAlign.center;\r
return this;\r
}\r
public Figure shift(Point p)\r
namespace Psychlops\r
{\r
\r
+\r
+ public abstract class Matrix\r
+ {\r
+ public abstract double this[int row, int col]\r
+ {\r
+ get;\r
+ set;\r
+ }\r
+\r
+ public static Matrix operator +(Matrix m, double d)\r
+ {\r
+ return new MatrixExpression;\r
+ }\r
+ }\r
+\r
+\r
+ namespace Internal\r
+ {\r
+\r
+ public class MatrixImplementation : Matrix\r
+ {\r
+ internal double[] elements;\r
+ readonly int nrow, ncol;\r
+\r
+ public MatrixImplementation(int dnrow, int dncol)\r
+ {\r
+ nrow = dnrow;\r
+ ncol = dncol;\r
+ elements = new double[nrow * ncol];\r
+ }\r
+\r
+ public override double this[int row, int col]\r
+ {\r
+ get\r
+ {\r
+ return elements[(row - 1) * ncol + (col - 1)];\r
+ }\r
+ set\r
+ {\r
+ elements[(row - 1) * ncol + (col - 1)] = value;\r
+ }\r
+ }\r
+ }\r
+\r
+ public class MatrixExpression : Matrix\r
+ {\r
+ MatrixImplementation imp;\r
+ readonly int nrow, ncol;\r
+ readonly int drow, dcol;\r
+ \r
+ public MatrixExpression(MatrixImplementation target, int ddrow, int ddcol, int dnrow, int dncol)\r
+ {\r
+ nrow = dnrow;\r
+ ncol = dncol;\r
+ drow = ddrow;\r
+ dcol = ddcol;\r
+ imp = target;\r
+ }\r
+\r
+ public override double this[int row, int col]\r
+ {\r
+ get\r
+ {\r
+ return imp.elements[(row - drow) * ncol + (col - dcol)];\r
+ }\r
+ set\r
+ {\r
+ imp.elements[(row - drow) * ncol + (col - dcol)] = value;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
}
\ No newline at end of file