public static void LayouterTopology(int LayerDistance, int RowDistance, FlowLayouter.FlowDirection Direction, int SpringRate, int Repulsion, int RepulsionRange, int Friction, int Mass, Boolean Fit, int FitX0, int FitY0, int FitX1, int FitY1, Dataweb.NShape.WinFormsUI.Display Display, int Timeout, LayouterType Type, Dataweb.NShape.Project Project) { switch (Type) { case LayouterType.Expansion: break; case LayouterType.Flow: FlowLayouter flowLayouter = new FlowLayouter(Project); flowLayouter.Direction = Direction; flowLayouter.LayerDistance = LayerDistance; flowLayouter.RowDistance = RowDistance; flowLayouter.AllShapes = Display.Diagram.Shapes; flowLayouter.Shapes = Display.Diagram.Shapes; flowLayouter.Prepare(); flowLayouter.Execute(Timeout); if (Fit) { flowLayouter.Fit(FitX0, FitY0, FitX1, FitY1); } break; case LayouterType.Grid: break; case LayouterType.Repulsion: RepulsionLayouter repulsionLayouter = new RepulsionLayouter(Project); repulsionLayouter.SpringRate = SpringRate; //8 repulsionLayouter.Repulsion = Repulsion; //3 repulsionLayouter.RepulsionRange = RepulsionRange; //600 repulsionLayouter.Friction = Friction; //0 repulsionLayouter.Mass = Mass; //50 repulsionLayouter.AllShapes = Display.Diagram.Shapes; repulsionLayouter.Shapes = Display.Diagram.Shapes; repulsionLayouter.Prepare(); repulsionLayouter.Execute(Timeout); if (Fit) { repulsionLayouter.Fit(FitX0, FitY0, FitX1, FitY1); } break; default: break; } }
private void PrepareLayouter() { switch ((string)currentPanel.Tag) { case "Expansion": // Distribution if (layouter == null || !(layouter is ExpansionLayouter)) { layouter = new ExpansionLayouter(Project); } ExpansionLayouter dl = (ExpansionLayouter)layouter; dl.HorizontalCompression = horizontalCompressionTrackBar.Value; dl.VerticalCompression = verticalCompressionTrackBar.Value; break; case "Alignment": if (layouter == null || !(layouter is GridLayouter)) { layouter = new GridLayouter(Project); } GridLayouter gl = (GridLayouter)layouter; gl.CoarsenessX = columnDistanceTrackBar.Value; gl.CoarsenessY = rowDistanceTrackBar.Value; /* gl.ColumnDistance = columnDistanceTrackBar.Value; * gl.RowDistance = rowDistanceTrackBar.Value; */ break; case "Clusters": if (layouter == null || !(layouter is RepulsionLayouter)) { layouter = new RepulsionLayouter(Project); } RepulsionLayouter rl = (RepulsionLayouter)layouter; // The default distance between connected elements should be 100 display units. // The default distance between unconnected elements should be 300 display units. rl.Friction = 0; // 300; rl.Repulsion = repulsionStrengthTrackBar.Value; rl.RepulsionRange = repulsionRangeTrackBar.Value; rl.SpringRate = attractionStrengthTrackBar.Value; // Two unconnected elements at the same position should move to their default distance // within two steps rl.Mass = 50; break; case "Flow": if (layouter == null || !(layouter is FlowLayouter)) { layouter = new FlowLayouter(Project); } FlowLayouter fl = (FlowLayouter)layouter; if (bottomUpRadioButton.Checked) { fl.Direction = FlowLayouter.FlowDirection.BottomUp; } else if (leftToRightRadioButton.Checked) { fl.Direction = FlowLayouter.FlowDirection.LeftToRight; } else if (topDownRadioButton.Checked) { fl.Direction = FlowLayouter.FlowDirection.TopDown; } else if (rightToLeftRadioButton.Checked) { fl.Direction = FlowLayouter.FlowDirection.RightToLeft; } fl.LayerDistance = flowLayerDistanceTrackBar.Value; fl.RowDistance = flowRowDistanceTrackBar.Value; break; default: Debug.Assert(false); break; } }
private void PrepareLayouter() { switch ((string) currentPanel.Tag) { case "Expansion": // Distribution if (layouter == null || !(layouter is ExpansionLayouter)) layouter = new ExpansionLayouter(Project); ExpansionLayouter dl = (ExpansionLayouter) layouter; dl.HorizontalCompression = horizontalCompressionTrackBar.Value; dl.VerticalCompression = verticalCompressionTrackBar.Value; break; case "Alignment": if (layouter == null || !(layouter is GridLayouter)) layouter = new GridLayouter(Project); GridLayouter gl = (GridLayouter) layouter; gl.CoarsenessX = columnDistanceTrackBar.Value; gl.CoarsenessY = rowDistanceTrackBar.Value; /* gl.ColumnDistance = columnDistanceTrackBar.Value; gl.RowDistance = rowDistanceTrackBar.Value; */ break; case "Clusters": if (layouter == null || !(layouter is RepulsionLayouter)) layouter = new RepulsionLayouter(Project); RepulsionLayouter rl = (RepulsionLayouter) layouter; // The default distance between connected elements should be 100 display units. // The default distance between unconnected elements should be 300 display units. rl.Friction = 0; // 300; rl.Repulsion = repulsionStrengthTrackBar.Value; rl.RepulsionRange = repulsionRangeTrackBar.Value; rl.SpringRate = attractionStrengthTrackBar.Value; // Two unconnected elements at the same position should move to their default distance // within two steps rl.Mass = 50; break; case "Flow": if (layouter == null || !(layouter is FlowLayouter)) layouter = new FlowLayouter(Project); FlowLayouter fl = (FlowLayouter) layouter; if (bottomUpRadioButton.Checked) fl.Direction = FlowLayouter.FlowDirection.BottomUp; else if (leftToRightRadioButton.Checked) fl.Direction = FlowLayouter.FlowDirection.LeftToRight; else if (topDownRadioButton.Checked) fl.Direction = FlowLayouter.FlowDirection.TopDown; else if (rightToLeftRadioButton.Checked) fl.Direction = FlowLayouter.FlowDirection.RightToLeft; fl.LayerDistance = flowLayerDistanceTrackBar.Value; fl.RowDistance = flowRowDistanceTrackBar.Value; break; default: Debug.Assert(false); break; } }