public bool UnPack(byte[] pack) { if (pack == null || pack.Length < 48) { return(false); } int ptr = 8; CliendID = BytePacketReader.ReadLong(pack, ref ptr); PictureBoxID = BytePacketReader.ReadLong(pack, ref ptr); Line = new BrushLineObject(); byte cR = BytePacketReader.ReadByte(pack, ref ptr); byte cG = BytePacketReader.ReadByte(pack, ref ptr); byte cB = BytePacketReader.ReadByte(pack, ref ptr); byte cA = BytePacketReader.ReadByte(pack, ref ptr); Line.BrushColor = Color.FromArgb(cA, cR, cG, cB); Line.BrushSize = BytePacketReader.ReadInt(pack, ref ptr); Line.LineStartX = BytePacketReader.ReadInt(pack, ref ptr); Line.LineStartY = BytePacketReader.ReadInt(pack, ref ptr); Line.LineEndX = BytePacketReader.ReadInt(pack, ref ptr); Line.LineEndY = BytePacketReader.ReadInt(pack, ref ptr); return(true); }
public DrawObject GetDrawObject(int pX, int pY) { BrushLineObject line = new BrushLineObject(); line.Picture = _picture; line.BrushColor = _color; line.BrushSize = _brushSize; if (_startX == null) { _startX = pX; } if (_startY == null) { _startY = pY; } int endX = pX; int endY = pY; line.LineStartX = _startX ?? endX; line.LineStartY = _startY ?? endY; line.LineEndX = endX; line.LineEndY = endY; _startX = endX; _startY = endY; return(line); }
private void NCDrawByBrush(IConnector connection, ArgBrushObject arg) { BrushLineObject line = arg.Line; if (arg.PictureBoxID == 0) { line.Picture = _canvas.BackPicture; } _canvas.AddDrawObject(arg.PictureBoxID, line); AddCommandToSendClients(arg); }
public ArgBrushObject(long clientID, long pictureBoxID, BrushLineObject line) { if (line == null) { throw new ArgumentNullException("line is null"); } CliendID = clientID; PictureBoxID = pictureBoxID; Line = line; }
private void NCDrawByBrush(IConnector connection, ArgBrushObject arg) { if (arg == null) { return; } BrushLineObject line = arg.Line; if (arg.PictureBoxID == 0) { line.Picture = _canvas.BackPicture; } _canvas.AddDrawObject(arg.PictureBoxID, line); }
private void SendDrawObject(DrawObject drObj) { if (drObj == null || drObj.Picture == null) { return; } long picBoxID = drObj.Picture.UniqueID; //canvas ICommandArg arg = null; if (drObj is BrushLineObject) { BrushLineObject line = drObj as BrushLineObject; arg = new ArgBrushObject(_netClient.ClientID, picBoxID, line); } else if (drObj is LineObject) { LineObject line = drObj as LineObject; arg = new ArgLineObject(_netClient.ClientID, picBoxID, line); } else if (drObj is RectObject) { RectObject rect = drObj as RectObject; arg = new ArgRectObject(_netClient.ClientID, picBoxID, rect); } else if (drObj is EllipseObject) { EllipseObject ellipse = drObj as EllipseObject; arg = new ArgEllipseObject(_netClient.ClientID, picBoxID, ellipse); } else if (drObj is MoveObject) { MoveObject move = drObj as MoveObject; arg = new ArgMoveObject(_netClient.ClientID, picBoxID, move); } else if (drObj is SelectorObject) { SelectorObject selector = drObj as SelectorObject; arg = new ArgSelectorCopyObject(_netClient.ClientID, picBoxID, selector); } if (arg != null && _netClient.Connector != null) { _netClient.Connector.SendCommand(arg); } }
public static void Draw(DrawObject drawObj) { BrushLineObject line = drawObj as BrushLineObject; if (line == null || line.Picture == null || line.Picture.Image == null) { return; } if (line.Picture.Status != PictureBoxStatus.Canvas) { return; } using (Graphics gr = Graphics.FromImage(line.Picture.Image)) { using (Pen pen = new Pen(new SolidBrush(line.BrushColor), line.BrushSize)){ gr.DrawLine(pen, new Point(line.LineStartX, line.LineStartY), new Point(line.LineEndX, line.LineEndY)); } //чтобы не было разрывов между линиями using (Brush br = new SolidBrush(line.BrushColor)){ gr.FillEllipse(br, line.LineEndX - line.BrushSize / 2, line.LineEndY - line.BrushSize / 2, line.BrushSize, line.BrushSize); } } line.Picture.Invalidate(); }