This document is archived and information here might be outdated. Recommended version. |
Creates a camera animation from path. The path is supplied by specifying a specific line feature from a ILayer.
///<summary>Creates a camera animation from path. The path is supplied by specifying a specific line feature from a ILayer.</summary> /// ///<param name="globe">An IGlobe interface</param> ///<param name="layer">An ILayer interface that is a Polyline</param> ///<param name="featureID">A System.Int32 that is the FeatureID record number for which the fly by is to follow to create the animation. Example: 123</param> /// ///<remarks></remarks> public void CreateAnimationFromPath(ESRI.ArcGIS.GlobeCore.IGlobe globe, ESRI.ArcGIS.Carto.ILayer layer, int featureID) { ESRI.ArcGIS.GlobeCore.IGlobeDisplay globeDisplay=globe.GlobeDisplay; ESRI.ArcGIS.Analyst3D.IScene scene=globeDisplay.Scene; // Get a handle to the animation extension ESRI.ArcGIS.Analyst3D.IBasicScene2 basicScene2=(ESRI.ArcGIS.Analyst3D.IBasicScene2)scene; // Explicit Cast ESRI.ArcGIS.Animation.IAnimationExtension animationExtension=basicScene2.AnimationExtension; ESRI.ArcGIS.Carto.IFeatureLayer featureLayer=(ESRI.ArcGIS.Carto.IFeatureLayer)layer; // Explicit Cast ESRI.ArcGIS.Geodatabase.IFeatureClass featureClass=featureLayer.FeatureClass; ESRI.ArcGIS.Geodatabase.IFeature feature=featureClass.GetFeature(featureID); // Get the geometry of the line feature ESRI.ArcGIS.Geometry.IGeometry geometry=feature.Shape; // Create AGAnimationUtils and AGImportPathOptions objects ESRI.ArcGIS.Animation.IAGAnimationUtils agAnimationUtils=new ESRI.ArcGIS.Animation.AGAnimationUtilsClass(); ESRI.ArcGIS.Animation.IAGImportPathOptions agImportPathOptions=new ESRI.ArcGIS.Animation.AGImportPathOptionsClass(); // Set properties for AGImportPathOptions agImportPathOptions.BasicMap=(ESRI.ArcGIS.Carto.IBasicMap)globe; // Explicit Cast agImportPathOptions.AnimationTracks=(ESRI.ArcGIS.Animation.IAGAnimationTracks)globe; // Explicit Cast agImportPathOptions.AnimationType=new ESRI.ArcGIS.GlobeCore.AnimationTypeGlobeCameraClass(); agImportPathOptions.AnimatedObject=globe.GlobeDisplay.ActiveViewer.Camera; agImportPathOptions.PathGeometry=geometry; agImportPathOptions.ConversionType=ESRI.ArcGIS.Animation.esriFlyFromPathType.esriFlyFromPathObsAndTarget; agImportPathOptions.LookaheadFactor=0.05; agImportPathOptions.RollFactor=0; agImportPathOptions.AnimationEnvironment=animationExtension.AnimationEnvironment; ESRI.ArcGIS.Animation.IAGAnimationContainer AGAnimationContainer=animationExtension.AnimationTracks.AnimationObjectContainer; // Call "CreateFlybyFromPath" agAnimationUtils.CreateFlybyFromPath(AGAnimationContainer, agImportPathOptions); }
'''<summary>Creates a camera animation from path. The path is supplied by specifying a specific line feature from a ILayer.</summary> ''' '''<param name="globe">An IGlobe interface</param> '''<param name="layer">An ILayer interface that is a Polyline</param> '''<param name="featureID">A System.Int32 that is the FeatureID record number for which the fly by is to follow to create the animation. Example: 123</param> ''' '''<remarks></remarks> Public Sub CreateAnimationFromPath(ByVal globe As ESRI.ArcGIS.GlobeCore.IGlobe, ByVal layer As ESRI.ArcGIS.Carto.ILayer, ByVal featureID As System.Int32) Dim globeDisplay As ESRI.ArcGIS.GlobeCore.IGlobeDisplay=globe.GlobeDisplay Dim scene As ESRI.ArcGIS.Analyst3D.IScene=globeDisplay.Scene ' Get a handle to the animation extension Dim basicScene2 As ESRI.ArcGIS.Analyst3D.IBasicScene2=CType(scene, ESRI.ArcGIS.Analyst3D.IBasicScene2) ' Explicit Cast Dim animationExtension As ESRI.ArcGIS.Animation.IAnimationExtension=basicScene2.AnimationExtension Dim featureLayer As ESRI.ArcGIS.Carto.IFeatureLayer=CType(layer, ESRI.ArcGIS.Carto.IFeatureLayer) ' Explicit Cast Dim featureClass As ESRI.ArcGIS.Geodatabase.IFeatureClass=featureLayer.FeatureClass Dim feature As ESRI.ArcGIS.Geodatabase.IFeature=featureClass.GetFeature(featureID) ' Get the geometry of the line feature Dim geometry As ESRI.ArcGIS.Geometry.IGeometry=feature.Shape ' Create AGAnimationUtils and AGImportPathOptions objects Dim AGAnimationUtils As ESRI.ArcGIS.Animation.IAGAnimationUtils=New ESRI.ArcGIS.Animation.AGAnimationUtilsClass Dim AGImportPathOptions As ESRI.ArcGIS.Animation.IAGImportPathOptions=New ESRI.ArcGIS.Animation.AGImportPathOptionsClass ' Set properties for AGImportPathOptions AGImportPathOptions.BasicMap=CType(globe, ESRI.ArcGIS.Carto.IBasicMap) ' Explicit Cast AGImportPathOptions.AnimationTracks=CType(globe, ESRI.ArcGIS.Animation.IAGAnimationTracks) ' Explicit Cast AGImportPathOptions.AnimationType=New ESRI.ArcGIS.GlobeCore.AnimationTypeGlobeCameraClass AGImportPathOptions.AnimatedObject=globe.GlobeDisplay.ActiveViewer.Camera AGImportPathOptions.PathGeometry=geometry AGImportPathOptions.ConversionType=ESRI.ArcGIS.Animation.esriFlyFromPathType.esriFlyFromPathObsAndTarget AGImportPathOptions.LookaheadFactor=0.05 AGImportPathOptions.RollFactor=0 AGImportPathOptions.AnimationEnvironment=animationExtension.AnimationEnvironment Dim AGAnimationContainer As ESRI.ArcGIS.Animation.IAGAnimationContainer=animationExtension.AnimationTracks.AnimationObjectContainer ' Call "CreateFlybyFromPath" AGAnimationUtils.CreateFlybyFromPath(AGAnimationContainer, AGImportPathOptions) End Sub