//Check if section has drivers on a position based on passed position private bool SectionEmpty(SectionPosition position, SectionData section) { switch (position) { //Check if driver on left section case SectionPosition.Left: if (section.Left != null) { return(true); } break; //Check if driver on right section case SectionPosition.Right: if (section.Right != null) { return(true); } break; //Check if driver on any of the two sections case SectionPosition.Both: if (section.Left != null || section.Right != null) { return(true); } break; } return(false); }
public static string GetSectionPath(SectionPosition position, double x, double y, double w, double h, double r) { switch (position) { case SectionPosition.Left: return(GetRoundedRectPath(x, y, w + 1, h, r, 0, 0, r)); case SectionPosition.Middle: return(GetRoundedRectPath(x - 1, y, w + 1, h, 0, 0, 0, 0)); case SectionPosition.Right: return(GetRoundedRectPath(x - 1, y, w + 1, h, 0, r, r, 0)); case SectionPosition.OneSectionOnly: return(GetSimpleRoundedRectPath(x, y, w, h, r)); default: throw new ArgumentOutOfRangeException(nameof(position), position, null); } }
public Section(SectionPosition startingCurrentSectionPosition) { sectionPositions = new List<SectionPosition>(); children = new List<Section>(); sectionPositions.Add(startingCurrentSectionPosition); }
public static IList <ISectionFace> CreateFaces(this IPanelSection section, SectionPosition position, IRemovalParameters removalParameters) { var list = new List <ISectionFace>(); _removalParameters = removalParameters; switch (position) { case SectionPosition.Center: list.AddFaceUpDown(section, position); break; case SectionPosition.SideTop: list.AddFaceUpDown(section, position); list.AddFaceTop(section, position); break; case SectionPosition.SideRigth: list.AddFaceUpDown(section, position); list.AddFaceRight(section, position); break; case SectionPosition.SideBottom: list.AddFaceUpDown(section, position); list.AddFaceBottom(section, position); break; case SectionPosition.SideLeft: list.AddFaceUpDown(section, position); list.AddFaceLeft(section, position); break; case SectionPosition.CornerTopRight: list.AddFaceUpDown(section, position); list.AddFaceTop(section, position); list.AddFaceRight(section, position); break; case SectionPosition.CornerTopLeft: list.AddFaceUpDown(section, position); list.AddFaceTop(section, position); list.AddFaceLeft(section, position); break; case SectionPosition.CornerBottomLeft: list.AddFaceUpDown(section, position); list.AddFaceBottom(section, position); list.AddFaceLeft(section, position); break; case SectionPosition.CornerBottomRight: list.AddFaceUpDown(section, position); list.AddFaceRight(section, position); list.AddFaceBottom(section, position); break; default: throw new ArgumentException(); } _removalParameters = null; return(list); }
private static void AddFaceLeft(this IList <ISectionFace> list, IPanelSection section, SectionPosition position) { list.Add(CreateFace(section.GetCenterXFaceLeft(), section.CenterY, section.CenterZ, section.SizeY, section.SizeZ, Orientation.XNeg)); }
private static void AddFaceBottom(this IList <ISectionFace> list, IPanelSection section, SectionPosition position) { list.Add(CreateFace(section.CenterX, section.GetCenterYFaceBottom(), section.CenterZ, section.SizeX, section.SizeZ, Orientation.YNeg)); }
private static void AddFaceUpDown(this IList <ISectionFace> list, IPanelSection section, SectionPosition position) { list.Add(CreateFace(section.CenterX, section.CenterY, section.GetCenterZFaceUp(), section.SizeX, section.SizeY, Orientation.ZPos)); list.Add(CreateFace(section.CenterX, section.CenterY, section.GetCenterZFaceDown(), section.SizeX, section.SizeY, Orientation.ZNeg)); }