public void Place(Sheet sheet, Graphic graphic, E3Text text, Group group, Point placePosition)
 {
     E3Font smallFont = new E3Font(height: smallFontHeight, alignment: Alignment.Left);
     E3Font bigFont = new E3Font(height: bigFontHeight, alignment: Alignment.Left);
     List<int> groupIds;
     if (orientation == Orientation.Horizontal)
         groupIds = PlaceHorizontally(sheet, graphic, text, placePosition, smallFont, bigFont);
     else
         groupIds = PlaceVertically(sheet, graphic, text, placePosition, smallFont, bigFont);
     group.CreateGroup(groupIds);
 }
 public void Place(Point placePosition, Sheet sheet, Graphic graphic, Group group, E3Text text)
 {
     PlacedPosition = placePosition;
     double width = 0.2;
     List<int> ids = new List<int>(5);
     double halfBaseLength = triangleBaseLength / 2;
     Point leftBottom = new Point(sheet.MoveLeft(placePosition.X, halfBaseLength), placePosition.Y);
     Point rightBottom = new Point(sheet.MoveRight(placePosition.X, halfBaseLength), placePosition.Y);
     Point top = new Point(placePosition.X, sheet.MoveUp(placePosition.Y, triangleHeight));
     int sheetId = sheet.Id;
     ids.Add(graphic.CreateLine(sheetId, leftBottom.X, leftBottom.Y, rightBottom.X, rightBottom.Y, width));
     ids.Add(graphic.CreateLine(sheetId, leftBottom.X, leftBottom.Y, top.X, top.Y, width));
     ids.Add(graphic.CreateLine(sheetId, rightBottom.X, rightBottom.Y, top.X, top.Y, width));
     ids.Add(text.CreateText(sheetId, description, top.X, sheet.MoveUp(top.Y, descriptionVerticalMargin), font));
     ids.AddRange(CableLayoutById.Values.First().Place(sheet, graphic, placePosition));
     group.CreateGroup(ids);
 }