# SceneProjectorEx

#### new Cesium.SceneProjectorEx(options)
MapGIS/Analysis/SceneProjectorEx.js 602

场景投放(新)

Name | Type | Description
--- | --- | ---
`options` | Object |
Name | Type | Default | Description
--- | --- | --- | ---
`scene` | Scene |  | 场景对象
`pass` | Pass | `Cesium.Pass.ANALYSIS` | optional 渲染通道 自定义渲染通道只可设置 `Pass.AFTER_GLOBE`，`Pass.AFTER_TILE`，`Pass.AFTER_TILE_CLASSIFICATION`，`Pass.ANALYSIS` 四个通道
`source` | Color | String | HTMLVideoElement | `new Color(0, 0, 0, 1)` | optional 投影资源 图片支持".png/.jpg/.jpeg" 视频支持".mp4/.m3u8"
`viewPosition` | Cartesian3 | `Cartesian3.fromDegrees(0, 0, 100)` | optional 观察点
`targetPosition` | Cartesian3 |  | 目标点
`heading` | Number | `0` | optional 投影相机的偏向角度 弧度制
`pitch` | Number | `-Math.PI/2` | optional 投影相机的俯仰角度 弧度制
`roll` | Number | `0` | optional 投影相机的翻滚角度 弧度制
`nearClipPlane` | Number | `1` | optional 近裁面距离
`farClipPlane` | Number | `1000` | optional 远裁面距离
`horizontAngle` | Number | `= Math.PI/` | optional 水平角 弧度制
`verticalAngle` | Number | `Math.PI/6` | optional 垂直角 弧度制
`show` | Boolean | `true` | optional 是否显示场景投放
`showLine` | Boolean | `true` | optional 视锥体是否显示
`biasRatio` | Number | `5` | optional 投影层深度偏移倍率
`caculateProjectedData` | Number | `false` | optional 是否计算投影帧数据
`onCanplay` | function |  | 场景投放可以投放的回调事件

##### Example:

    // 1. 添加新版场景投放
    var scenePro = new Cesium.SceneProjectorEx({
        scene: viewer.scene,
        source: '../videos/DJI_0008.mp4',
        pass: Cesium.Pass.AFTER_TILE
    });
    // 直接添加到primitives中
    scene.primitives.add(scenePro);

    // 2. 移除场景投放
    scene.primitives.remove(scenePro);

### Members

#### biasRatio : Number
MapGIS/Analysis/SceneProjectorEx.js 1047

投影层深度偏移倍率，用于调节z-fighting
在固定偏移值的基础上乘以此倍数得到最终的偏移值

Default Value: `5`

#### caculateProjectedData : Boolean
MapGIS/Analysis/SceneProjectorEx.js 1063

是否计算投影帧数据
开启计算投影帧数据后从`SceneProjectorEx#projectedFrameData`中获取数据
计算过程中会消耗一定的性能，仅在需要获取数据时才开启

Default Value: `false`

#### farClipPlane : Number
MapGIS/Analysis/SceneProjectorEx.js 983

视频投放远裁剪平面 最小值被限制为(nearClipPlane + 1)。

Default Value: `1000`

#### heading : Number
MapGIS/Analysis/SceneProjectorEx.js 850

方位角 弧度制

Default Value: `0`

#### horizontAngle : Number
MapGIS/Analysis/SceneProjectorEx.js 907

水平广角 弧度表示

Default Value: `Math.PI/6`

#### nearClipPlane : Number
MapGIS/Analysis/SceneProjectorEx.js 962

视频投放近裁剪平面 最小被限制为0.01,最大值被限制为(farClipPlane - 1)。

Default Value: `1`

#### onCanplay : function
MapGIS/Analysis/SceneProjectorEx.js 1014

场景投放开始投放的回调事件

#### pitch : Number
MapGIS/Analysis/SceneProjectorEx.js 869

俯仰角 弧度制

Default Value: `-Math.PI/2`

#### readonly projectedFrameData : Object
MapGIS/Analysis/SceneProjectorEx.js 1079

获取投影帧数据

#### readonly projectionCamera : Camera
MapGIS/Analysis/SceneProjectorEx.js 824

投影相机

#### roll : Number
MapGIS/Analysis/SceneProjectorEx.js 888

翻滚角 弧度制

Default Value: `0`

#### show : Boolean
MapGIS/Analysis/SceneProjectorEx.js 1030

是否显示视频投放

Default Value: `true`

#### showLine : Boolean
MapGIS/Analysis/SceneProjectorEx.js 836

是否显示椎体线

Default Value: `true`

#### source : Color|String|HTMLVideoElement
MapGIS/Analysis/SceneProjectorEx.js 803

投影资源 图片支持".png/.jpg/.jpeg" 视频支持".mp4/.m3u8"

##### Example:

    // 释放旧的HTMLVideoElement资源要注意使用以下的方式@see https://blog.csdn.net/qq_31851435/article/details/132801525
    if(externalVideo){ // 旧的HTMLVideoElement
         externalVideo.pause();
         externalVideo.removeAttribute('src');
         externalVideo.load();
    }
    var outVideo = document.createElement('video');
    outVideo.crossOrigin = 'anonymous';
    outVideo.loop = true;
    scenePro.source = outVideo;

#### targetPosition : Cartesian3
MapGIS/Analysis/SceneProjectorEx.js 758

投影相机观察的目标点

#### verticalAngle : Number
MapGIS/Analysis/SceneProjectorEx.js 934

竖直广角 弧度表示

Default Value: `Math.PI/6`

#### readonly videoHTML : HTMLVideoElement
MapGIS/Analysis/SceneProjectorEx.js 1004

获取播放投影源的HTMLVideo标签
仅当投影源是视频时有效

#### viewPosition : Cartesian3
MapGIS/Analysis/SceneProjectorEx.js 739

投影相机观察点