goban
Version:
[](https://opensource.org/licenses/Apache-2.0)
252 lines (251 loc) • 9.62 kB
TypeScript
import { JGOF, JGOFNumericPlayerColor } from "../engine/formats/JGOF";
import { AdHocFormat } from "../engine/formats/AdHocFormat";
import { GobanConfig } from "../GobanBase";
import { GobanEngine } from "../engine";
import { MoveTree } from "../engine/MoveTree";
import { GobanTheme } from "./themes";
import { MoveTreePenMarks } from "../engine/MoveTree";
import { MessageID } from "../engine/messages";
import { Goban, GobanMetrics, GobanSelectedThemes } from "./Goban";
import { ColoredCircle } from "./InteractiveBase";
export interface SVGRendererGobanConfig extends GobanConfig {
board_div?: HTMLElement;
title_div?: HTMLElement;
move_tree_container?: HTMLElement;
last_move_opacity?: number;
}
interface MoveTreeViewPortInterface {
offset_x: number;
offset_y: number;
minx: number;
miny: number;
maxx: number;
maxy: number;
}
interface GobanSVGInterface {
engine: GobanEngine;
move_tree_container?: HTMLElement;
clearAnalysisDrawing(): void;
drawPenMarks(pen_marks: MoveTreePenMarks): void;
enablePen(): void;
disablePen(): void;
setByoYomiLabel(label: string): void;
setLastMoveOpacity(opacity: number): void;
move_tree_bindEvents(svg: SVGElement): void;
move_tree_redraw(no_warp?: boolean): void;
setMoveTreeContainer(container: HTMLElement): void;
showMessage(message_id_or_error: MessageID, parameters?: {
[key: string]: any;
}, timeout?: number): void;
clearMessage(): void;
drawSquare(i: number, j: number): void;
destroy(): void;
}
export declare class SVGRenderer extends Goban implements GobanSVGInterface {
engine: GobanEngine;
private svg;
private svg_defs;
private __set_board_height;
private __set_board_width;
private ready_to_draw;
private message_div?;
private message_td?;
private message_text?;
private message_timeout?;
private handleShiftKey;
private lines_layer?;
private coordinate_labels_layer?;
private grid;
grid_layer?: SVGGraphicsElement;
private cells;
shadow_grid: Array<Array<SVGElement | undefined>>;
shadow_layer?: SVGGraphicsElement;
private pen_layer?;
private last_move_opacity;
move_tree_container?: HTMLElement;
private move_tree_inner_container?;
private move_tree_svg?;
private move_tree_svg_defs?;
private autoplaying_puzzle_move;
private byoyomi_label;
private current_pen_mark?;
private labeling_mode?;
private last_label_position;
private last_pen_position?;
metrics: GobanMetrics;
private drawing_enabled;
protected title_div?: HTMLElement;
event_layer?: HTMLDivElement;
private themes;
theme_black: GobanTheme;
private theme_black_stones;
theme_black_text_color: string;
private theme_blank_text_color;
private theme_board;
theme_faded_line_color: string;
theme_faded_star_color: string;
private theme_line_color;
private theme_star_color;
private theme_stone_radius;
theme_white: GobanTheme;
private theme_white_stones;
theme_white_text_color: string;
constructor(config: SVGRendererGobanConfig, preloaded_data?: AdHocFormat | JGOF);
setLastMoveOpacity(opacity: number): void;
enablePen(): void;
disablePen(): void;
cell(i: number, j: number): GCell;
clearCells(): void;
destroy(): void;
private detachPenLayer;
private attachPenLayer;
private bindPointerBindings;
clearAnalysisDrawing(): void;
private xy2pen;
private pen2xy;
private setPenStyle;
private onPenStart;
private onPenMove;
drawPenMarks(pen_marks: MoveTreePenMarks): void;
private onTap;
private onMouseMove;
private onMouseOut;
protected enableDrawing(): void;
protected disableDrawing(): void;
setByoYomiLabel(label: string): void;
drawSquare(i: number, j: number): void;
private cellDraw;
private __drawSquare;
private drawingHash;
private drawLines;
private drawCoordinateLabels;
protected computeThemeStoneRadius(): number;
redraw(force_clear?: boolean): void;
showMessage(message_id_or_error: MessageID, parameters?: {
[key: string]: any;
}, timeout?: number): void;
clearMessage(): void;
protected generateSvgDefs(radius: number): SVGDefsElement;
protected setTheme(themes: GobanSelectedThemes, dont_redraw: boolean): void;
private onLabelingStart;
private onLabelingMove;
protected setTitle(title: string): void;
protected watchSelectedThemes(cb: (themes: GobanSelectedThemes) => void): {
remove: () => any;
};
setMoveTreeContainer(container: HTMLElement): void;
move_tree_redraw(no_warp?: boolean): void;
move_tree_bindEvents(svg: SVGElement): void;
move_tree_drawStone(svg: SVGElement, node: MoveTree, active_path_number: number, viewport: MoveTreeViewPortInterface): void;
move_tree_drawRecursive(svg: SVGElement, node: MoveTree, active_path_number: number, viewport: MoveTreeViewPortInterface): void;
move_tree_hilightNode(svg: SVGElement, node: MoveTree, color: string, viewport: MoveTreeViewPortInterface): void;
move_tree_drawPath(svg: SVGElement, node: MoveTree, viewport: MoveTreeViewPortInterface): void;
move_tree_drawIsoBranchTo(svg: SVGElement, from_node: MoveTree, to_node: MoveTree, viewport: MoveTreeViewPortInterface): void;
move_tree_recursiveDrawPath(svg: SVGElement, node: MoveTree, viewport: MoveTreeViewPortInterface): void;
}
declare class GCell {
renderer: SVGRenderer;
i: number;
j: number;
_g?: SVGGraphicsElement;
_transform: string;
constructor(renderer: SVGRenderer, i: number, j: number);
get g(): SVGGraphicsElement;
set transform(transform: string);
get transform(): string;
private last_faded_lines?;
private last_faded_star_point?;
drawFadedIntersectionLines(draw_star_point: boolean, star_radius: number): void;
clearFadedLines(): void;
private last_heatmap_value?;
private last_heatmap_rect?;
heatmap(value: number): void;
clearHeatmap(): void;
private last_highlight_color?;
private last_highlight_rect?;
highlight(color: string): void;
clearHighlight(): void;
private last_circle?;
private last_circle_fill?;
private last_circle_radius?;
private last_circle_stroke?;
private last_circle_stroke_width?;
circle(circle: ColoredCircle): void;
clearCircle(): void;
private last_stone?;
private last_stone_color?;
private last_stone_transparent?;
private last_stone_stone?;
private last_stone_radius?;
private last_stone_alpha_value?;
private last_stone_shadow?;
stone(color: JGOFNumericPlayerColor, transparent: boolean, stone: string, radius: number, stone_alpha_value: number): void;
clearStone(): void;
private last_blue_move?;
private last_blue_move_color?;
private last_blue_move_border_width?;
blueMove(color: string, border_width: number): void;
clearBlueMove(): void;
private last_removal_cross?;
private last_removal_cross_fill?;
private last_removal_cross_radius?;
private last_removal_cross_opacity?;
removalCross(fill: string, radius: number, opacity: number): void;
clearRemovalCross(): void;
private last_score?;
private last_score_fill?;
private last_score_stroke?;
private last_score_opacity?;
score(fill: string, stroke: string, opacity: number): void;
clearScore(): void;
private last_letter?;
private last_letter_letter?;
private last_letter_color?;
private last_letter_font_size?;
private last_letter_opacity?;
private last_letter_room_for_subscript?;
letter(letter: string, color: string, font_size: number, opacity: number, room_for_subscript: boolean): void;
clearLetter(): void;
private last_subscript?;
private last_subscript_subscript?;
private last_subscript_color?;
private last_subscript_font_size?;
private last_subscript_opacity?;
private last_subscript_room_for_letter?;
private last_subscript_room_for_sub_triangle?;
subscript(subscript: string, color: string, font_size: number, opacity: number, room_for_letter: boolean, room_for_sub_triangle: boolean): void;
clearSubscript(): void;
private last_circle_symbol?;
private last_circle_symbol_color?;
private last_circle_symbol_opacity?;
circleSymbol(color: string, opacity: number): void;
clearCircleSymbol(): void;
private last_triangle_symbol?;
private last_triangle_symbol_color?;
private last_triangle_symbol_opacity?;
private last_triangle_symbol_as_subscript?;
triangleSymbol(color: string, opacity: number, as_subscript: boolean): void;
clearTriangleSymbol(): void;
private last_cross_symbol?;
private last_cross_symbol_color?;
private last_cross_symbol_opacity?;
crossSymbol(color: string, opacity: number): void;
clearCrossSymbol(): void;
private last_square_symbol?;
private last_square_symbol_color?;
private last_square_symbol_opacity?;
squareSymbol(color: string, opacity: number): void;
clearSquareSymbol(): void;
private last_last_move?;
private last_last_move_symbol?;
private last_last_move_color?;
private last_last_move_opacity?;
lastMove(symbol: "+" | "?" | "o", color: string, opacity: number): void;
clearLastMove(): void;
private last_score_estimate?;
private last_score_estimate_color?;
private last_score_estimate_estimate?;
scoreEstimate(color: string, estimate: number): void;
clearScoreEstimate(): void;
}
export {};