public SetIterator(GridSet<T> _set) { set = _set; posIterator = new Vector2i.Iterator(set.grid.SizeXY()); cellIterator = new CellIterator(); reset = true; }
public void CoordToEnvelope_InvalidZ_throws() { GridSet g = new GridSet( "test", "epsg:test", new Envelope(0, 0, 100, 100), new List<double>() { 10, 5, 2.5 }, 10, 10 ); g.CoordToEnvelope(new Coord(3, 0, 0)); }
void ComputeDisabledValue(bool linear, GridSet gridSet, ref int count, ref double start, ref double step, ref double stop) { // validators prevent divide by zero errors and negative log errors from occurring below switch (gridSet) { case GridSet.AllButCount: if (linear) { count = 1 + (int)(0.5 + (stop - start) / step); } else { count = 1 + (int)((Math.Log(stop) - Math.Log(start)) / Math.Log(step)); } break; case GridSet.AllButStart: if (linear) { start = stop - (count - 1.0) * step; } else { start = Math.Exp(Math.Log(stop) - (count - 1.0) * Math.Log(step)); } break; case GridSet.AllButStep: if (linear) { step = (stop - start) / (count - 1.0); } else { step = Math.Exp((Math.Log(stop) - Math.Log(start)) / (count - 1.0)); } break; case GridSet.AllButStop: if (linear) { stop = start + (count - 1.0) * step; } else { stop = Math.Exp(Math.Log(start) + (count - 1.0) * Math.Log(step)); } break; } }
public void CoordToEnvelope_SimpleGridsetTopOrgin_ReturnsEnvelope() { GridSet g = new GridSet( "test", "epsg:test", new Envelope(0, 0, 100, 100), new List<double>() { 10, 5, 2.5 }, 10, 10 ); Envelope expected = new Envelope(0, 0, 100, 100); Assert.IsTrue(expected.Equals(g.CoordToEnvelope(new Coord(0, 0, 0, true)))); expected = new Envelope(0, 0, 50, 50); Assert.IsTrue(expected.Equals(g.CoordToEnvelope(new Coord(1, 0, 1, true)))); expected = new Envelope(75, 75, 100, 100); Assert.IsTrue(expected.Equals(g.CoordToEnvelope(new Coord(2, 3, 0, true)))); }
private void CommonInit() { Groups = new Group.GroupSet(this); IsPaused = new Stat <bool, Map>(this, false); pathingGraph = new Graph(this); pathing = new Pathfinding.PathFinder <Vector2i>(pathingGraph, null); unitsByPos = new GridSet <Unit>(Tiles.Dimensions); //When the tile grid changes size, reset "unitsByPos". Tiles.OnTileGridReset += (grid, oldSize, newSize) => { unitsByPos = new GridSet <Unit>(newSize); foreach (Unit u in units) { unitsByPos.AddValue(u, u.Pos); } }; }
public void ReadData(MyData.Reader reader) { Clear(); reader.Structure(Tiles, "tiles"); unitsByPos = new GridSet <Unit>(Tiles.Dimensions); nextID = reader.UInt64("nextID"); reader.Structure(Groups, "groups"); reader.Collection("units", (MyData.Reader rd, ref Unit outUnit, string name) => outUnit = Unit.Read(rd, this, name), (size) => units); foreach (Unit u in units) { AddUnit(u); } foreach (Group g in Groups) { g.FinishDeserialization(); } }
public void LoadSettings() { sessionsSettings.initialDigitizeState = Settings.Default.SESSIONS_INITIALDIGITZESTATE; coordSettings.frame = Settings.Default.COORD_FRAME; coordSettings.xThetaScale = Settings.Default.COORD_XTHETASCALE; coordSettings.yRScale = Settings.Default.COORD_YRSCALE; coordSettings.thetaUnits = Settings.Default.COORD_THETAUNITS; exportSettings.pointsSelection = Settings.Default.EXPORT_POINTSSELECTION; exportSettings.layout = Settings.Default.EXPORT_LAYOUT; exportSettings.delimiters = Settings.Default.EXPORT_DELIMITERS; exportSettings.header = Settings.Default.EXPORT_HEADER; viewFileToolbar = Settings.Default.VIEW_FILETOOLBAR; viewSelectToolbar = Settings.Default.VIEW_SELECTTOOLBAR; viewImageScaleToolbar = Settings.Default.VIEW_IMAGESCALETOOLBAR; viewDigitizeCurvePointsToolbar = Settings.Default.VIEW_DIGITIZECURVEPOINTSTOOLBAR; viewDigitizeMeasurePointsToolbar = Settings.Default.VIEW_DIGITIZEMEASUREPOINTSTOOLBAR; viewZoomToolbar = Settings.Default.VIEW_ZOOMTOOLBAR; viewStatusBar = Settings.Default.VIEW_STATUSBAR; viewPoints = Settings.Default.VIEW_POINTS; viewBackground = Settings.Default.VIEW_BACKGROUND; viewCurveGeometry = Settings.Default.VIEW_CURVEGEOMETRY; viewMeasureGeometry = Settings.Default.VIEW_MEASUREGEOMETRY; powerMostSigMax = Settings.Default.MATH_POWERMOSTSIGMAX; powerMostSigMin = Settings.Default.MATH_POWERMOSTSIGMIN; doubleMin = Settings.Default.MATH_DOUBLEMIN; maxCommands = Settings.Default.MATH_MAXCOMMANDS; windowCurveSize.Width = Settings.Default.WINDOW_CURVE_WIDTH; windowCurveSize.Height = Settings.Default.WINDOW_CURVE_HEIGHT; windowCurvePosition.X = Settings.Default.WINDOW_CURVE_X; windowCurvePosition.Y = Settings.Default.WINDOW_CURVE_Y; windowMainSize.Width = Settings.Default.WINDOW_MAIN_WIDTH; windowMainSize.Height = Settings.Default.WINDOW_MAIN_HEIGHT; windowMainPosition.X = Settings.Default.WINDOW_MAIN_X; windowMainPosition.Y = Settings.Default.WINDOW_MAIN_Y; windowMainFontOverride = Settings.Default.WINDOW_MAIN_FONT_OVERRIDE; windowMainFontName = Settings.Default.WINDOW_MAIN_FONT_NAME; windowMainFontSize = Settings.Default.WINDOW_MAIN_FONT_SIZE; windowMeasureSize.Width = Settings.Default.WINDOW_MEASURE_WIDTH; windowMeasureSize.Height = Settings.Default.WINDOW_MEASURE_HEIGHT; windowMeasurePosition.X = Settings.Default.WINDOW_MEASURE_X; windowMeasurePosition.Y = Settings.Default.WINDOW_MEASURE_Y; segmentPointMinSeparation = Settings.Default.SEGMENT_POINTMINSEPARATION; segmentSettings.minPoints = Settings.Default.SEGMENT_MINPOINTS; segmentSettings.pointSeparation = Settings.Default.SEGMENT_POINTDEFAULTSEPARATION; segmentSettings.fillCorners = Settings.Default.SEGMENT_FILLCORNERS; segmentSettings.lineSize = Settings.Default.SEGMENT_LINESIZE; segmentSettings.lineColor = Settings.Default.SEGMENT_LINECOLOR; gridRemovalSettings.gridMesh.gridSetX = Settings.Default.GRID_REMOVAL_GRIDSETX; gridRemovalSettings.gridMesh.gridSetY = Settings.Default.GRID_REMOVAL_GRIDSETY; gridRemovalSettings.thinThickness = Settings.Default.GRID_REMOVAL_THINTHICKNESS; gridRemovalSettings.gridDistance = Settings.Default.GRID_REMOVAL_GRIDDISTANCE; gridRemovalSettings.color = Settings.Default.GRID_REMOVAL_COLOR; gridRemovalSettings.gapSeparation = Settings.Default.GRID_REMOVAL_GAPSEPARATION; gridRemovalSettings.foregroundThresholdLow = Settings.Default.GRID_REMOVAL_FOREGROUNDTHRESHOLDLOW; gridRemovalSettings.foregroundThresholdHigh = Settings.Default.GRID_REMOVAL_FOREGROUNDTHRESHOLDHIGH; gridDisplayGridSetX = Settings.Default.GRID_DISPLAY_GRIDSETX; gridDisplayGridSetY = Settings.Default.GRID_DISPLAY_GRIDSETY; pointMatchHighlightDiameter = Settings.Default.POINTMATCH_HIGHLIGHTDIAMETER; pointMatchHighlightLineSize = Settings.Default.POINTMATCH_HIGHLIGHTLINESIZE; pointMatchSettings.pointSeparation = Settings.Default.POINTMATCH_SEPARATIONDEFAULT; pointMatchSettings.pointSize = Settings.Default.POINTMATCH_SIZEDEFAULT; pointMatchSettings.acceptedColor = Settings.Default.POINTMATCH_ACCEPTEDCOLOR; pointMatchSettings.rejectedColor = Settings.Default.POINTMATCH_REJECTEDCOLOR; discretizeSettings.discretizeMethod = Settings.Default.DISCRETIZE_METHODDEFAULT; discretizeSettings.intensityThresholdLow = Settings.Default.DISCRETIZE_INTENSITY_THRESHOLDLOW; discretizeSettings.intensityThresholdHigh = Settings.Default.DISCRETIZE_INTENSITY_THRESHOLDHIGH; discretizeSettings.foregroundThresholdLow = Settings.Default.DISCRETIZE_FOREGROUND_THRESHOLDLOW; discretizeSettings.foregroundThresholdHigh = Settings.Default.DISCRETIZE_FOREGROUND_THRESHOLDHIGH; discretizeSettings.hueThresholdLow = Settings.Default.DISCRETIZE_HUE_THRESHOLDLOW; discretizeSettings.hueThresholdHigh = Settings.Default.DISCRETIZE_HUE_THRESHOLDHIGH; discretizeSettings.saturationThresholdLow = Settings.Default.DISCRETIZE_SATURATION_THRESHOLDLOW; discretizeSettings.saturationThresholdHigh = Settings.Default.DISCRETIZE_SATURATION_THRESHOLDHIGH; discretizeSettings.valueThresholdLow = Settings.Default.DISCRETIZE_VALUE_THRESHOLDLOW; discretizeSettings.valueThresholdHigh = Settings.Default.DISCRETIZE_VALUE_THRESHOLDHIGH; axesStyle.pointShape = Settings.Default.POINTSET_AXES_POINTSHAPE; axesStyle.pointSize = Settings.Default.POINTSET_AXES_POINTSIZE; axesStyle.pointLineSize = Settings.Default.POINTSET_AXES_POINTLINESIZE; axesStyle.pointLineColor = Settings.Default.POINTSET_AXES_POINTLINECOLOR; axesStyle.pointInColor = Settings.Default.POINTSET_AXES_POINTINCOLOR; axesStyle.lineSize = Settings.Default.POINTSET_AXES_LINESIZE; axesStyle.lineColor = Settings.Default.POINTSET_AXES_LINECOLOR; axesStyle.lineConnectAs = Settings.Default.POINTSET_AXES_LINECONNECTAS; scaleStyle.pointShape = Settings.Default.POINTSET_SCALE_POINTSHAPE; scaleStyle.pointSize = Settings.Default.POINTSET_SCALE_POINTSIZE; scaleStyle.pointLineSize = Settings.Default.POINTSET_SCALE_POINTLINESIZE; scaleStyle.pointLineColor = Settings.Default.POINTSET_SCALE_POINTLINECOLOR; scaleStyle.pointInColor = Settings.Default.POINTSET_SCALE_POINTINCOLOR; scaleStyle.lineSize = Settings.Default.POINTSET_SCALE_LINESIZE; scaleStyle.lineColor = Settings.Default.POINTSET_SCALE_LINECOLOR; scaleStyle.lineConnectAs = Settings.Default.POINTSET_SCALE_LINECONNECTAS; try { foreach (PointSetStyle style in Settings.Default.POINTSET_CURVES) { curveStyles.Add(style); } foreach (PointSetStyle style in Settings.Default.POINTSET_MEASURES) { measureStyles.Add(style); } } catch (InvalidCastException e) { //There were no default pointsets loaded. } }
void ComputeDisabledValue(bool linear, GridSet gridSet, ref int count, ref double start, ref double step, ref double stop) { // validators prevent divide by zero errors and negative log errors from occurring below switch (gridSet) { case GridSet.AllButCount: if (linear) count = 1 + (int)(0.5 + (stop - start) / step); else count = 1 + (int)((Math.Log(stop) - Math.Log(start)) / Math.Log(step)); break; case GridSet.AllButStart: if (linear) start = stop - (count - 1.0) * step; else start = Math.Exp(Math.Log(stop) - (count - 1.0) * Math.Log(step)); break; case GridSet.AllButStep: if (linear) step = (stop - start) / (count - 1.0); else step = Math.Exp((Math.Log(stop) - Math.Log(start)) / (count - 1.0)); break; case GridSet.AllButStop: if (linear) stop = start + (count - 1.0) * step; else stop = Math.Exp(Math.Log(start) + (count - 1.0) * Math.Log(step)); break; } }
public void SetY_TopCoordTopGridSet_NoFlip() { Coord c = new Coord(1, 0, 0, true); GridSet g = new GridSet( "test", "epsg:test", new Envelope(0, 0, 100, 100), new List<double>() { 10, 5, 2.5 }, 10, 10, .00028, true ); Coord cResult = g.SetY(c); Assert.IsTrue(cResult.TopOrigin); Assert.AreEqual(cResult.Y, 0); }
public void SetY_TopCoordBottomGridSet_Flips() { Coord c = new Coord(1, 0, 0, true); GridSet g = new GridSet( "test", "epsg:test", new Envelope(0, 0, 100, 100), new List<double>() { 10, 5, 2.5 }, 10, 10, .00028, false ); Coord cResult = g.SetY(c); Assert.IsFalse(cResult.TopOrigin); Assert.AreEqual(cResult.Y, 1); }
public void GridWidth_SimpleGridset_ReturnsWidth() { GridSet g = new GridSet( "test", "epsg:test", new Envelope(0, 0, 100, 100), new List<double>() { 10, 5, 2.5 }, 10, 10 ); Assert.AreEqual(g.GridWidth(2), 4); }