public LevelLayer(Level level, LayerDrawType layerDrawType, string layerId) { parrentLevel = level; tiles = new Tile[parrentLevel.LevelWidth, parrentLevel.LevelHeight]; this.layerDrawType = layerDrawType; this.layerId = layerId; }
/// <summary> /// Constructor /// </summary> /// <param name="aILayer">raster layer</param> /// <param name="aLayersLegend">layersLegend</param> public RasterLayerSet(RasterLayer aILayer, LayersLegend aLayersLegend) { m_LayersLegend = aLayersLegend; m_LayerName = aILayer.LayerName; m_FileName = aILayer.FileName; m_WorldFileName = aILayer.WorldFileName; m_Handle = aILayer.Handle; m_LayerType = aILayer.LayerDrawType; m_Visible = aILayer.Visible; m_WFP = aILayer.WorldFileParaV; m_XUL = aILayer.WorldFileParaV.XUL; m_YUL = aILayer.WorldFileParaV.YUL; m_XScale = aILayer.WorldFileParaV.XScale; m_YScale = aILayer.WorldFileParaV.YScale; m_Extent = aILayer.Extent; m_Width = m_Extent.maxX - m_Extent.minX; m_Height = m_Extent.minY - m_Extent.maxY; m_XNum = aILayer.Image.Width; m_YNum = aILayer.Image.Height; m_IsMaskout = aILayer.IsMaskout; m_LegendSchemeE = new LegendSchemeE(); m_LegendSchemeE.LayerHandle = aILayer.Handle; m_LegendSchemeE.LegendScheme = aILayer.LegendScheme; m_LegendSchemeE.LayersTV = aLayersLegend; }
/// <summary> /// Constructor /// </summary> /// <param name="aLayer"></param> /// <param name="aLayersTV"></param> public VectorLayerSet(VectorLayer aLayer, LayersLegend aLayersTV) { m_LayerName = aLayer.LayerName; m_FileName = aLayer.FileName; m_Handle = aLayer.Handle; m_Extent = aLayer.Extent; m_Visible = aLayer.Visible; m_LayerDrawType = aLayer.LayerDrawType; m_LayerType = aLayer.LayerType; m_ShapeType = aLayer.ShapeType; m_AviodCollision = aLayer.AvoidCollision; m_TransparencyPerc = aLayer.TransparencyPerc; m_ShapeNum = aLayer.ShapeNum; m_LayersTV = aLayersTV; m_LegendSchemeE = new LegendSchemeE(); m_LegendSchemeE.LayerHandle = aLayer.Handle; m_LegendSchemeE.LegendScheme = (LegendScheme)aLayer.LegendScheme.Clone(); m_LegendSchemeE.LayersTV = aLayersTV; m_IsMaskout = aLayer.IsMaskout; }
/// <summary> /// Constructor /// </summary> /// <param name="aILayer"></param> /// <param name="aLayersLegend"></param> public ImageLayerSet(ImageLayer aILayer, LayersLegend aLayersLegend) { m_LayersLegend = aLayersLegend; m_LayerName = aILayer.LayerName; m_FileName = aILayer.FileName; m_WorldFileName = aILayer.WorldFileName; m_Handle = aILayer.Handle; m_LayerType = aILayer.LayerDrawType; m_Visible = aILayer.Visible; m_WFP = aILayer.WorldFileParaV; m_XUL = aILayer.WorldFileParaV.XUL; m_YUL = aILayer.WorldFileParaV.YUL; m_XScale = aILayer.WorldFileParaV.XScale; m_YScale = aILayer.WorldFileParaV.YScale; m_Extent = aILayer.Extent; m_Width = m_Extent.maxX - m_Extent.minX; m_Height = m_Extent.minY - m_Extent.maxY; m_XNum = aILayer.Image.Width; m_YNum = aILayer.Image.Height; m_IsMaskout = aILayer.IsMaskout; _TransparencyPerc = aILayer.TransparencyPerc; _SetTransparencyColor = aILayer.SetTransColor; _TransparencyColor = aILayer.TransparencyColor; }
/// <summary> /// If the layer id is not duplicated create a new layer on the specified draw layer. /// If the layer id is duplicated throw a new EXCEPTION! /// </summary> /// <param name="layerDrawType">The draw type for this new layer to have.</param> /// <param name="layerId">The layer id for this layer to have.</param> /// <param name="index">The index in the layer list. This controls draw order 0 is draw first, n is draw last.</param> private void AddNewDrawLayer(LayerDrawType layerDrawType, string layerId, int index) { if (GetLayerById(layerId) == null) { switch (layerDrawType) { case LayerDrawType.BACKGROUND: if (index > 0 && index < backgroundLayers.Count) { backgroundLayers.Insert(index, new LevelLayer(this, layerDrawType, layerId)); } else { backgroundLayers.Add(new LevelLayer(this, layerDrawType, layerId)); } break; case LayerDrawType.FOREGROUND: if (index > 0 && index < foregroundLayers.Count) { foregroundLayers.Insert(index, new LevelLayer(this, layerDrawType, layerId)); } else { foregroundLayers.Add(new LevelLayer(this, layerDrawType, layerId)); } break; } } throw new Exception("Duplicate layer exception!"); }
/// <summary> /// If the layer id is not duplicated create a new layer on the specified draw layer. /// If the layer id is duplicated throw a new EXCEPTION! /// </summary> /// <param name="layerDrawType">The draw type for this new layer to have.</param> /// <param name="layerId">The layer id for this layer to have.</param> private void AddNewDrawLayer(LayerDrawType layerDrawType, string layerId) { AddNewDrawLayer(layerDrawType, layerId, -1); }
/// <summary> ///Gets a list of tiles at the given cordinates across the layer type specified. /// </summary> /// <param name="x">The x tile cordinate to get tiles at.</param> /// <param name="y">The y tile cordinate to get tiles at.</param> /// <param name="layerDrawType">Limits the tile search to the given layer type.</param> /// <returns>The list of tiles at the given cordinates.</returns> public List<Tile> GetTilesAtLocation(int x, int y, LayerDrawType layerDrawType) { List<Tile> tilesAtLocation = new List<Tile>(); if (IsTileLocationInBounds(x, y)) { switch (layerDrawType) { case LayerDrawType.BACKGROUND: for (int b = 0; b < backgroundLayers.Count; b++) { if (backgroundLayers[b].GetTileAtLocation(x, y) != null) { tilesAtLocation.Add(backgroundLayers[b].GetTileAtLocation(x, y)); } } break; case LayerDrawType.FOREGROUND: for (int f = 0; f < foregroundLayers.Count; f++) { if (foregroundLayers[f].GetTileAtLocation(x, y) != null) { tilesAtLocation.Add(foregroundLayers[f].GetTileAtLocation(x, y)); } } break; } } return tilesAtLocation; }