动画信息类。

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public class Animation

备注

模型动画效果是目前三维技术的一个热点技术。三维游戏中虚拟人物的奔跑,坦克炮塔的旋转,都是模型动画的实际应用。模型动画技术的重要意义在于使得三维场景中的模型对象运动起来,人们可以通过动画获取对象的动态视觉效果。模型动画技术应用在GIS产品中,使得地理信息系统的视觉体验更加趋向于真实。通过对模型动画的观察,使用者能够获取模型各个部位的动作信息,而不再只是静态的图像。

SuperMap GIS 对模型动画技术的实现,主要体现在对第三方模型动画的支持上。通过将第三方的动画模型文件导入,用户可以控制动画的播放,从而实现在三维场景中展现出动态的对象。

下图中活动的坦克和直升飞机便是模型动画的实际应用效果。

示意图:

实际效果:

示例

以下代码示范如何在场景中显示模型动画,并对其进行设置。

假设已经有一个 KML 文件(FireTruck.kml),并且由建模师制作好了一个模型 firetruck.SGM,同时获取了场景控件sceneControl

CopyC#
public void AnimationModel(SceneControl sceneControl)
{
      // 从场景控件获取三维场景
      Scene scene = sceneControl.Scene;

      // 向三维场景中添加kml文件,返回kml图层layer
      String kmlPath = @"..\..\Models\FireTruck.kml";
      Layer3D kmlLayer = scene.Layers.Add(kmlPath, Layer3DType.KML, true);

      // 新建GeoModel对象,并获得动画模型的路径
      GeoModel geoModel = new GeoModel();
      String modelPath = @"..\..\Models\FireTruck\firetruck.SGM";
      Point3D point = new Point3D(116, 39, 5);
      Boolean isSuccess = geoModel.FromFile(modelPath, point);

      if (isSuccess)
      {

            // 将模型添加进layer的features
            kmlLayer.Features.Add(geoModel);
            Feature3D feature = kmlLayer.Features.FindFeature(1, Feature3DSearchOption.AllFeatures);
            GeoModel animationModel = (GeoModel)feature.Geometry;

            // 获取Animation 对象
            Animation animation = animationModel.Animation;

            // 设置模型动画是否可用及动画模式
            animation.Enabled = true;
            animation.PlayMode = PlayMode.Once;

            // 设置动画是否自动更新,及其更新时间
            animation.IsAutoUpdated = true;
            animation.Update(50);

            //设置动画的开始时间和结束时间,查看效果
            animation.StartTime = 5000;
            animation.EndTime = 10000;
       }
}

继承层次

System..::.Object
  SuperMap.Data..::.Animation

请参见