JS логика рисования коммутации представлена скриптом commutation.js.
Для отрисовки на canvas'e используется библиотека Raphael.js (https://github.com/DmitryBaranovskiy/raphael/)
Внутри логика отрисовки разделена по функционалу на отдельные объекты:
ACableDrawer | Отрисовка кабелей и волокон кабеля |
---|---|
AInformation | Вывод дополнительной информации о волокнах |
ACableColorPalette | Работа с цветовой схемой кабеля |
ALinkManager | Хранение и управление соединениями между волокнами |
ALinkDrawer | Отрисовка соединений волокон |
Link | Функция-конструктор для соединения. Отвечает за отрисовку соединения |
Входные данные
Code Block | ||||
---|---|---|---|---|
| ||||
var cable = {
id : 'string',
image : {
modules : int,
fibers : int,
color : 'string'
},
meta : {
name : 'string', // Localized name for cable
position : 'enum', // 'bottom', 'top', 'left', 'right'
fibers : { id : fiberObject }
}
} |
Code Block | ||||
---|---|---|---|---|
| ||||
var fiberObject = {
id : int,
connected: {
name : 'string',
length: 'string'
}; |
Константы и опции
scale По умолчанию равна 2.
Code Block | ||
---|---|---|
| ||
SCHEME_OPTIONS = {
SCALE : scale,
CABLE_WIDTH : 25 * scale,
CABLE_HEIGHT_MARGIN : 5 * scale,
MODULE_WIDTH : 5 * scale,
FIBER_WIDTH : 5 * scale,
FIBER_HEIGHT : 25 * scale,
FIBER_MARGIN : 5 * scale,
ROUTER_WIDTH : 25 * scale,
ROUTER_HEIGHT_MARGIN: 5 * scale,
CANVAS_BASE_SIZE : 65,
CABLE_COLOR : 'black',
ROUTER_COLOR : 'green',
FONT : 'Roboto',
FONT_SIZE : 13,
FONT_COLOR : 'black'
}; |