// package canvas -- объект холста package canvas import ( svg "github.com/ajstarks/svgo" "gitp78su.ipnodns.ru/svi/goarch/lev0/alias" "gitp78su.ipnodns.ru/svi/goarch/lev1/coord" "gitp78su.ipnodns.ru/svi/goarch/lev1/size" "gitp78su.ipnodns.ru/svi/kern/v3" ) // Canvas -- объект холста type Canvas struct { size *size.Size pos *coord.Coord diaMode string } var( hassert = kern.GetFnHassert() ) // NewCanvas -- возвращает новый холст func NewCanvas(diaMode string, size *size.Size, pos *coord.Coord) *Canvas { hassert(diaMode!="","NewCanvas(): diaMode is empty") hassert(size!=nil,"NewCanvas(): size is nil") hassert(pos!=nil,"NewCanvas(): pos is nil") sf := &Canvas{ size: size, pos: pos, diaMode: diaMode, } return sf } // Draw -- рисует холст func (sf *Canvas) Draw(canvas *svg.SVG) { x := int(sf.pos.X_) y := int(sf.pos.Y_) w := int(sf.size.W_) h := int(sf.size.H_) canvas.Rect(0, 0, w, h, "fill:white;stroke:red;stroke-width:1") canvas.Text(x, y+2, "АРХИТЕКТУРНОЕ РЕШЕНИЕ", "font-size: 20px; font-family: sans-serif; fill: black") canvas.Text(x+15, y+20, sf.diaMode, "font-size: 14px; font-family: sans-serif; fill: black") } // Size -- возвращает размер холста func (sf *Canvas) Size() (alias.SizeX, alias.SizeY) { w := sf.size.W_ h := sf.size.H_ return w, h }