public Terrain(SerializationInfo info, StreamingContext context) : base(info, context) { this._configurationKeyword = info.GetString("configurationKeyword"); this._extent = info.GetValue("extent", typeof(Extent)) as Extent; this._spatialReference = info.GetValue("spatialReference", typeof(SpatialReference)) as SpatialReference; this._pyramidType = (esriTerrainPyramidType)Enum.Parse(typeof(esriTerrainPyramidType), info.GetString("pyramidType"), true); this._windowSizeMethod = (esriTerrainWindowSizeMethod)Enum.Parse(typeof(esriTerrainWindowSizeMethod), info.GetString("windowSizeMethod"), true); this._windowSizeZThreshold = info.GetDouble("windowSizeZThreshold"); this._windowSizeZThresholdStrategy = (esriTerrainZThresholdStrategy)Enum.Parse(typeof(esriTerrainZThresholdStrategy), info.GetString("windowSizeZThresholdStrategy"), true); this._tileSize = info.GetDouble("tileSize"); this._maxShapeSize = info.GetInt32("maxShapeSize"); this._maxOverviewSize = info.GetInt32("maxOverviewSize"); this._extentDomain = info.GetValue("extentDomain", typeof(Extent)) as Extent; this._extentAOI = info.GetValue("extentAOI", typeof(Extent)) as Extent; this._terrainDataSources = (List <TerrainDataSource>)info.GetValue("terrainDataSources", typeof(List <TerrainDataSource>)); this._terrainPyramids = (List <TerrainPyramid>)info.GetValue("terrainPyramids", typeof(List <TerrainPyramid>)); this._terrainID = info.GetInt32("terrainID"); this._version = info.GetInt32("version"); }
public Terrain(Terrain prototype) : base(prototype) { this._configurationKeyword = prototype.ConfigurationKeyword; if (prototype.Extent != null) { this._extent = prototype.Extent.Clone() as Extent; } if (prototype.SpatialReference != null) { this._spatialReference = prototype.SpatialReference.Clone() as SpatialReference; } this._pyramidType = prototype.PyramidType; this._windowSizeMethod = prototype.WindowSizeMethod; this._windowSizeZThreshold = prototype.WindowSizeZThreshold; this._windowSizeZThresholdStrategy = prototype.WindowSizeZThresholdStrategy; this._tileSize = prototype.TileSize; this._maxShapeSize = prototype.MaxShapeSize; this._maxOverviewSize = prototype.MaxOverviewSize; if (prototype.ExtentDomain != null) { this._extentDomain = prototype.ExtentDomain.Clone() as Extent; } if (prototype.ExtentAOI != null) { this._extentAOI = prototype.ExtentAOI.Clone() as Extent; } this._terrainDataSources = new List <TerrainDataSource>(); foreach (TerrainDataSource terrainDataSource in prototype.TerrainDataSources) { this._terrainDataSources.Add((TerrainDataSource)terrainDataSource.Clone()); } this._terrainPyramids = new List <TerrainPyramid>(); foreach (TerrainPyramid terrainPyramid in prototype.TerrainPyramids) { this._terrainPyramids.Add((TerrainPyramid)terrainPyramid.Clone()); } this._terrainID = prototype.TerrainID; this._version = prototype.Version; }
public void WriteXml(XmlWriter writer, esriTerrainPyramidType pyramidType) { switch (pyramidType) { case esriTerrainPyramidType.esriTerrainPyramidWindowSize: // <TerrainPyramidLevelWindowSize xsi:type="esri:TerrainPyramidLevelWindowSize"> // </TerrainPyramidLevelWindowSize> writer.WriteStartElement(Xml.TERRAINPYRAMIDLEVELWINDOWSIZE); writer.WriteAttributeString(Xml._XSI, Xml._TYPE, null, Xml._TERRAINPYRAMIDLEVELWINDOWSIZE); this.WriteInnerXml(writer); writer.WriteEndElement(); break; case esriTerrainPyramidType.esriTerrainPyramidZTolerance: // <TerrainPyramidLevelZTol xsi:type="esri:TerrainPyramidLevelZTol"> // </TerrainPyramidLevelZTol> writer.WriteStartElement(Xml.TERRAINPYRAMIDLEVELZTOL); writer.WriteAttributeString(Xml._XSI, Xml._TYPE, null, Xml._TERRAINPYRAMIDLEVELZTOL); this.WriteInnerXml(writer); writer.WriteEndElement(); break; } }
// // CONSTRUCTOR // public Terrain(IXPathNavigable path) : base(path) { // Get Navigator XPathNavigator navigator = path.CreateNavigator(); // <ConfigurationKeyword></ConfigurationKeyword> XPathNavigator navigatorConfigurationKeyword = navigator.SelectSingleNode("ConfigurationKeyword"); if (navigatorConfigurationKeyword != null) { this._configurationKeyword = navigatorConfigurationKeyword.Value; } // <Extent></Extent> XPathNavigator navigatorExtent = navigator.SelectSingleNode("Extent"); if (navigatorExtent != null && !string.IsNullOrEmpty(navigatorExtent.InnerXml)) { this._extent = new Extent(navigatorExtent); } // <SpatialReference></SpatialReference> XPathNavigator navigatorSpatialReference = navigator.SelectSingleNode("SpatialReference"); if (navigatorSpatialReference != null && !string.IsNullOrEmpty(navigatorSpatialReference.InnerXml)) { this._spatialReference = new SpatialReference(navigatorSpatialReference); } // <FeatureDatasetName></FeatureDatasetName> // Do not load. This can be inferred. // <PyramidType></PyramidType> XPathNavigator navigatorPyramidType = navigator.SelectSingleNode("PyramidType"); if (navigatorPyramidType != null) { this._pyramidType = (esriTerrainPyramidType)Enum.Parse(typeof(esriTerrainPyramidType), navigatorPyramidType.Value, true); } // <WindowSizeMethod></WindowSizeMethod> XPathNavigator navigatorWindowSizeMethod = navigator.SelectSingleNode("WindowSizeMethod"); if (navigatorWindowSizeMethod != null) { this._windowSizeMethod = (esriTerrainWindowSizeMethod)Enum.Parse(typeof(esriTerrainWindowSizeMethod), navigatorWindowSizeMethod.Value, true); } // <WindowSizeZThreshold></WindowSizeZThreshold> XPathNavigator navigatorWindowSizeZThreshold = navigator.SelectSingleNode("WindowSizeZThreshold"); if (navigatorWindowSizeZThreshold != null) { this._windowSizeZThreshold = navigatorWindowSizeZThreshold.ValueAsDouble; } // <WindowSizeZThresholdStrategy></WindowSizeZThresholdStrategy> XPathNavigator navigatorWindowSizeZThresholdStrategy = navigator.SelectSingleNode("WindowSizeZThresholdStrategy"); if (navigatorWindowSizeZThresholdStrategy != null) { this._windowSizeZThresholdStrategy = (esriTerrainZThresholdStrategy)Enum.Parse(typeof(esriTerrainZThresholdStrategy), navigatorWindowSizeZThresholdStrategy.Value, true); } // <TileSize></TileSize> XPathNavigator navigatorTileSize = navigator.SelectSingleNode("TileSize"); if (navigatorTileSize != null) { this._tileSize = navigatorTileSize.ValueAsDouble; } // <MaxShapeSize></MaxShapeSize> XPathNavigator navigatorMaxShapeSize = navigator.SelectSingleNode("MaxShapeSize"); if (navigatorMaxShapeSize != null) { this._maxShapeSize = navigatorMaxShapeSize.ValueAsInt; } // <MaxOverviewSize></MaxOverviewSize> XPathNavigator navigatorMaxOverviewSize = navigator.SelectSingleNode("MaxOverviewSize"); if (navigatorMaxOverviewSize != null) { this._maxOverviewSize = navigatorMaxOverviewSize.ValueAsInt; } // <ExtentDomain></ExtentDomain> XPathNavigator navigatorExtentDomain = navigator.SelectSingleNode("ExtentDomain"); if (navigatorExtentDomain != null && !string.IsNullOrEmpty(navigatorExtentDomain.InnerXml)) { this._extentDomain = new Extent(navigatorExtentDomain); } // <ExtentAOI></ExtentAOI> XPathNavigator navigatorExtentAOI = navigator.SelectSingleNode("ExtentAOI"); if (navigatorExtentAOI != null && !string.IsNullOrEmpty(navigatorExtentAOI.InnerXml)) { this._extentAOI = new Extent(navigatorExtentAOI); } // <TerrainDataSources> // <TerrainDataSource> // </TerrainDataSource> // </TerrainDataSources> this._terrainDataSources = new List<TerrainDataSource>(); XPathNodeIterator interatorTerrainDataSource = navigator.Select("TerrainDataSources/TerrainDataSource"); while (interatorTerrainDataSource.MoveNext()) { // Get <ConnectivityRule> XPathNavigator navigatorTerrainDataSource = interatorTerrainDataSource.Current; TerrainDataSource terrainDataSource = new TerrainDataSource(navigatorTerrainDataSource); this._terrainDataSources.Add(terrainDataSource); } // TerrainPyramids this._terrainPyramids = new List<TerrainPyramid>(); string pyramidPath = null; switch(this._pyramidType){ case esriTerrainPyramidType.esriTerrainPyramidWindowSize: // <TerrainPyramidLevelWindowSizes> // <TerrainPyramidLevelWindowSize> // </TerrainPyramidLevelWindowSize> // </TerrainPyramidLevelWindowSizes> pyramidPath = "TerrainPyramidLevelWindowSizes/TerrainPyramidLevelWindowSize"; break; case esriTerrainPyramidType.esriTerrainPyramidZTolerance: // <TerrainPyramidLevelZTols> // <TerrainPyramidLevelZTol> // </TerrainPyramidLevelZTol> // </TerrainPyramidLevelZTols> pyramidPath = "TerrainPyramidLevelZTols/TerrainPyramidLevelZTol"; break; } XPathNodeIterator interatorTerrainPyramid = navigator.Select(pyramidPath); while (interatorTerrainPyramid.MoveNext()) { // Get <ConnectivityRule> XPathNavigator navigatorTerrainPyramid = interatorTerrainPyramid.Current; TerrainPyramid terrainPyramid = new TerrainPyramid(navigatorTerrainPyramid); this._terrainPyramids.Add(terrainPyramid); } // <TerrainID></TerrainID> XPathNavigator navigatorTerrainID = navigator.SelectSingleNode("TerrainID"); if (navigatorTerrainID != null) { this._terrainID = navigatorTerrainID.ValueAsInt; } // <Version></Version> XPathNavigator navigatorVersion = navigator.SelectSingleNode("Version"); if (navigatorVersion != null) { this._version = navigatorVersion.ValueAsInt; } }
public Terrain(Terrain prototype) : base(prototype) { this._configurationKeyword = prototype.ConfigurationKeyword; if (prototype.Extent != null) { this._extent = prototype.Extent.Clone() as Extent; } if (prototype.SpatialReference != null) { this._spatialReference = prototype.SpatialReference.Clone() as SpatialReference; } this._pyramidType = prototype.PyramidType; this._windowSizeMethod = prototype.WindowSizeMethod; this._windowSizeZThreshold = prototype.WindowSizeZThreshold; this._windowSizeZThresholdStrategy = prototype.WindowSizeZThresholdStrategy; this._tileSize = prototype.TileSize; this._maxShapeSize = prototype.MaxShapeSize; this._maxOverviewSize = prototype.MaxOverviewSize; if (prototype.ExtentDomain != null) { this._extentDomain = prototype.ExtentDomain.Clone() as Extent; } if (prototype.ExtentAOI != null) { this._extentAOI = prototype.ExtentAOI.Clone() as Extent; } this._terrainDataSources = new List<TerrainDataSource>(); foreach (TerrainDataSource terrainDataSource in prototype.TerrainDataSources) { this._terrainDataSources.Add((TerrainDataSource)terrainDataSource.Clone()); } this._terrainPyramids = new List<TerrainPyramid>(); foreach (TerrainPyramid terrainPyramid in prototype.TerrainPyramids) { this._terrainPyramids.Add((TerrainPyramid)terrainPyramid.Clone()); } this._terrainID = prototype.TerrainID; this._version = prototype.Version; }
public Terrain(SerializationInfo info, StreamingContext context) : base(info, context) { this._configurationKeyword = info.GetString("configurationKeyword"); this._extent = info.GetValue("extent", typeof(Extent)) as Extent; this._spatialReference = info.GetValue("spatialReference", typeof(SpatialReference)) as SpatialReference; this._pyramidType = (esriTerrainPyramidType)Enum.Parse(typeof(esriTerrainPyramidType), info.GetString("pyramidType"), true); this._windowSizeMethod = (esriTerrainWindowSizeMethod)Enum.Parse(typeof(esriTerrainWindowSizeMethod), info.GetString("windowSizeMethod"), true); this._windowSizeZThreshold = info.GetDouble("windowSizeZThreshold"); this._windowSizeZThresholdStrategy = (esriTerrainZThresholdStrategy)Enum.Parse(typeof(esriTerrainZThresholdStrategy), info.GetString("windowSizeZThresholdStrategy"), true); this._tileSize = info.GetDouble("tileSize"); this._maxShapeSize = info.GetInt32("maxShapeSize"); this._maxOverviewSize = info.GetInt32("maxOverviewSize"); this._extentDomain = info.GetValue("extentDomain", typeof(Extent)) as Extent; this._extentAOI = info.GetValue("extentAOI", typeof(Extent)) as Extent; this._terrainDataSources = (List<TerrainDataSource>)info.GetValue("terrainDataSources", typeof(List<TerrainDataSource>)); this._terrainPyramids = (List<TerrainPyramid>)info.GetValue("terrainPyramids", typeof(List<TerrainPyramid>)); this._terrainID = info.GetInt32("terrainID"); this._version = info.GetInt32("version"); }
// // CONSTRUCTOR // public Terrain(IXPathNavigable path) : base(path) { // Get Navigator XPathNavigator navigator = path.CreateNavigator(); // <ConfigurationKeyword></ConfigurationKeyword> XPathNavigator navigatorConfigurationKeyword = navigator.SelectSingleNode("ConfigurationKeyword"); if (navigatorConfigurationKeyword != null) { this._configurationKeyword = navigatorConfigurationKeyword.Value; } // <Extent></Extent> XPathNavigator navigatorExtent = navigator.SelectSingleNode("Extent"); if (navigatorExtent != null && !string.IsNullOrEmpty(navigatorExtent.InnerXml)) { this._extent = new Extent(navigatorExtent); } // <SpatialReference></SpatialReference> XPathNavigator navigatorSpatialReference = navigator.SelectSingleNode("SpatialReference"); if (navigatorSpatialReference != null && !string.IsNullOrEmpty(navigatorSpatialReference.InnerXml)) { this._spatialReference = new SpatialReference(navigatorSpatialReference); } // <FeatureDatasetName></FeatureDatasetName> // Do not load. This can be inferred. // <PyramidType></PyramidType> XPathNavigator navigatorPyramidType = navigator.SelectSingleNode("PyramidType"); if (navigatorPyramidType != null) { this._pyramidType = (esriTerrainPyramidType)Enum.Parse(typeof(esriTerrainPyramidType), navigatorPyramidType.Value, true); } // <WindowSizeMethod></WindowSizeMethod> XPathNavigator navigatorWindowSizeMethod = navigator.SelectSingleNode("WindowSizeMethod"); if (navigatorWindowSizeMethod != null) { this._windowSizeMethod = (esriTerrainWindowSizeMethod)Enum.Parse(typeof(esriTerrainWindowSizeMethod), navigatorWindowSizeMethod.Value, true); } // <WindowSizeZThreshold></WindowSizeZThreshold> XPathNavigator navigatorWindowSizeZThreshold = navigator.SelectSingleNode("WindowSizeZThreshold"); if (navigatorWindowSizeZThreshold != null) { this._windowSizeZThreshold = navigatorWindowSizeZThreshold.ValueAsDouble; } // <WindowSizeZThresholdStrategy></WindowSizeZThresholdStrategy> XPathNavigator navigatorWindowSizeZThresholdStrategy = navigator.SelectSingleNode("WindowSizeZThresholdStrategy"); if (navigatorWindowSizeZThresholdStrategy != null) { this._windowSizeZThresholdStrategy = (esriTerrainZThresholdStrategy)Enum.Parse(typeof(esriTerrainZThresholdStrategy), navigatorWindowSizeZThresholdStrategy.Value, true); } // <TileSize></TileSize> XPathNavigator navigatorTileSize = navigator.SelectSingleNode("TileSize"); if (navigatorTileSize != null) { this._tileSize = navigatorTileSize.ValueAsDouble; } // <MaxShapeSize></MaxShapeSize> XPathNavigator navigatorMaxShapeSize = navigator.SelectSingleNode("MaxShapeSize"); if (navigatorMaxShapeSize != null) { this._maxShapeSize = navigatorMaxShapeSize.ValueAsInt; } // <MaxOverviewSize></MaxOverviewSize> XPathNavigator navigatorMaxOverviewSize = navigator.SelectSingleNode("MaxOverviewSize"); if (navigatorMaxOverviewSize != null) { this._maxOverviewSize = navigatorMaxOverviewSize.ValueAsInt; } // <ExtentDomain></ExtentDomain> XPathNavigator navigatorExtentDomain = navigator.SelectSingleNode("ExtentDomain"); if (navigatorExtentDomain != null && !string.IsNullOrEmpty(navigatorExtentDomain.InnerXml)) { this._extentDomain = new Extent(navigatorExtentDomain); } // <ExtentAOI></ExtentAOI> XPathNavigator navigatorExtentAOI = navigator.SelectSingleNode("ExtentAOI"); if (navigatorExtentAOI != null && !string.IsNullOrEmpty(navigatorExtentAOI.InnerXml)) { this._extentAOI = new Extent(navigatorExtentAOI); } // <TerrainDataSources> // <TerrainDataSource> // </TerrainDataSource> // </TerrainDataSources> this._terrainDataSources = new List <TerrainDataSource>(); XPathNodeIterator interatorTerrainDataSource = navigator.Select("TerrainDataSources/TerrainDataSource"); while (interatorTerrainDataSource.MoveNext()) { // Get <ConnectivityRule> XPathNavigator navigatorTerrainDataSource = interatorTerrainDataSource.Current; TerrainDataSource terrainDataSource = new TerrainDataSource(navigatorTerrainDataSource); this._terrainDataSources.Add(terrainDataSource); } // TerrainPyramids this._terrainPyramids = new List <TerrainPyramid>(); string pyramidPath = null; switch (this._pyramidType) { case esriTerrainPyramidType.esriTerrainPyramidWindowSize: // <TerrainPyramidLevelWindowSizes> // <TerrainPyramidLevelWindowSize> // </TerrainPyramidLevelWindowSize> // </TerrainPyramidLevelWindowSizes> pyramidPath = "TerrainPyramidLevelWindowSizes/TerrainPyramidLevelWindowSize"; break; case esriTerrainPyramidType.esriTerrainPyramidZTolerance: // <TerrainPyramidLevelZTols> // <TerrainPyramidLevelZTol> // </TerrainPyramidLevelZTol> // </TerrainPyramidLevelZTols> pyramidPath = "TerrainPyramidLevelZTols/TerrainPyramidLevelZTol"; break; } XPathNodeIterator interatorTerrainPyramid = navigator.Select(pyramidPath); while (interatorTerrainPyramid.MoveNext()) { // Get <ConnectivityRule> XPathNavigator navigatorTerrainPyramid = interatorTerrainPyramid.Current; TerrainPyramid terrainPyramid = new TerrainPyramid(navigatorTerrainPyramid); this._terrainPyramids.Add(terrainPyramid); } // <TerrainID></TerrainID> XPathNavigator navigatorTerrainID = navigator.SelectSingleNode("TerrainID"); if (navigatorTerrainID != null) { this._terrainID = navigatorTerrainID.ValueAsInt; } // <Version></Version> XPathNavigator navigatorVersion = navigator.SelectSingleNode("Version"); if (navigatorVersion != null) { this._version = navigatorVersion.ValueAsInt; } }