new FdViewPointsManager(viewer)
Parameters:
| Name | Type | Description |
|---|---|---|
viewer |
Freedo.Viewer | 视景器 |
Example
var viewer = Freedo.FdApp.createDefaultViewer('freedoContainer');
var viewPointsManager = new Freedo.FdTools.FdViewPointsManager(viewer);
var currentGroupId = viewPointsManager.createGroup('Group_' + new Date().getTime());
var cameraInfo = Freedo.FdCamera.getCurrentCameraInfo(viewer.scene.camera);
viewPointsManager.appendViewpoint(currentGroupId, {
name: '视点_' + new Date().getTime(),
icon: imgData,
cameraInfo: cameraInfo
});
Members
-
playingLoop :Boolean
-
获取视点是否在播放
Type:
- Boolean
Example
var playingLoop = viewPointsManager.playingLoop;
-
playingLoop :Boolean
-
设置视点是否播放
Type:
- Boolean
Example
viewPointsManager.playingLoop = true;
-
viewPointsOptions :Object
-
Type:
- Object
Example
var viewPointsOptions = viewPointsManager.viewPointsOptions ; for(var key of viewPointsOptions){ var groupOption = key; var name = groupOption.name; var viewPointsList = groupOption.list; for(var i = 0 ;i <viewPointsList.length ;i++){ var viewPointOption = viewPointsList[i] ; var viewPointName = viewPointOption.name ; var cameraInfo = viewPointOption.cameraInfo ; } }
Methods
-
appendViewpoint(groupID, options)
-
在当前视点组列表的末尾增加一个视点
Parameters:
Name Type Description groupIDString 视点组ID
optionsObject 视点选项
Properties
Name Type Description nameString 视点名称
cameraInfoArray.<Number> 相机信息的数组,该数组的组成与FdCamera.getCurrentCameraInfo相同。
Returns:
添加成功返回true,否则返回false
- Type
- Boolean
Example
var currentGroupId; currentGroupId = viewPointsManager.createGroup('Group_' + new Date().getTime()); var cameraInfo = Freedo.FdCamera.getCurrentCameraInfo(scene.camera); viewPointsManager.appendViewpoint(currentGroupId, { name: '视点_' + new Date().getTime(), cameraInfo: cameraInfo }); -
createGroup(groupName [, groupID])
-
给定视点组的名称,创建视点组
Parameters:
Name Type Argument Description groupNameString 视点组的名称
groupIDString <optional>
视点组的Id,可省略,省略情况下用Guid作为组的Id
Returns:
返回视点组ID
- Type
- String
Example
var currentGroupId = viewPointsManager.createGroup('Group_' + new Date().getTime()); -
dispose()
-
重置视点组的所有资源,同时取消之前的飞行状态
Example
viewPointsManager.dispose();
-
flyTo(groupID, index)
-
飞入某个视点
Parameters:
Name Type Description groupIDString 视点组ID
indexNumber 指定视点组列表中的位置
Returns:
成功返回true,否则返回false
- Type
- Boolean
Example
viewPointsManager.flyTo(currentGroupId, 0);
-
getAllGroupIDs()
-
获取所有视点组的ID
Returns:
返回一个包含视点组ID的数组
- Type
- Array.<String>
Example
var groupIdsArray = viewPointsManager.getAllGroupIDs();
-
getCurrentGroupID()
-
获取当前组ID
Returns:
组ID
- Type
- String
Example
var currentGroupID = viewPointsManager.getCurrentGroupID();
-
getGroupName(groupID)
-
获取视点组的名字
Parameters:
Name Type Description groupIDString 视点组ID
Returns:
视点组名称,无效则返回:''
- Type
- String
Example
var groupName = viewPointsManager.getGroupName(currentGroupId);
-
getGroupOptions(groupID)
-
获取组的选项
Parameters:
Name Type Description groupIDString 组ID
options.nameString 视点组名称
options.listArray.<Object> 视点组里的视点列表,包含该组内所有的视点及其属性
Returns:
视点组参数
- Type
- Object
Example
var groupOptions = viewPointsManager.getGroupOptions(currentGroupId);
-
getGroupPlayingGroupID()
-
获取正在播放的视点组ID
Returns:
视点组ID
- Type
- String
Example
var playingGroupId = viewPointsManager.getGroupPlayingGroupID();
-
getGroupPlayingIndex()
-
获取正在播放的视点组的视点索引
Returns:
返回视点索引
- Type
- Number
Example
var playingIndex = viewPointsManager.getGroupPlayingIndex();
-
getGroupPlayingStatus()
-
获取视点组的播放状态
Returns:
播放状态可能是 Playing/Stopped/Paused
- Type
- String
Example
var playingStatus = viewPointsManager.getGroupPlayingStatus();
-
getViewPoint(groupID, index)
-
获取视点属性
Parameters:
Name Type Description groupIDString 视点组ID
indexNumber 指定视点组列表中的位置
options.nameString 视点名称
options.cameraInfoArray.<Number> 相机信息的数组,该数组的组成与FdCamera.getCurrentCameraInfo相同。
Returns:
options 视点选项,目前只有name,cameraInfo
- Type
- Object
Example
var viewPointOpt = viewPointsManager.getViewPoint(currentGroupId, 0);
-
getViewpointsLength(groupID)
-
获取视点组中视点的数量
Parameters:
Name Type Description groupIDString 视点组ID
Returns:
视点组中视点的数量
- Type
- Number
Example
var viewPointsLengthInGroup = viewPointsManager.getViewpointsLength(currentGroupId);
-
goTo(groupID, index)
-
跳入某个视点
Parameters:
Name Type Description groupIDString 视点组ID
indexNumber 指定视点组列表中的位置
Returns:
成功返回true,否则返回false
- Type
- Boolean
Example
viewPointsManager.goTo(currentGroupId, 0);
-
insertViewpoint(groupID, options, index)
-
在视点组列表的某个位置插入一个视点
Parameters:
Name Type Description groupIDString 视点组ID
optionsObject 视点组选项
Properties
Name Type Description nameString 视点名称
cameraInfoArray.<Number> 相机信息的数组,该数组的组成与FdCamera.getCurrentCameraInfo相同。
indexNumber 指定视点组列表中的位置
Returns:
添加成功返回true,否则返回false
- Type
- Boolean
Example
var currentGroupId; currentGroupId = viewPointsManager.createGroup('Group_' + new Date().getTime()); var cameraInfo = Freedo.FdCamera.getCurrentCameraInfo(scene.camera); viewPointsManager.insertViewpoint(currentGroupId, { name: '视点_' + new Date().getTime(), cameraInfo: cameraInfo } ,0 ); -
on(listener [, scope])
-
注册捕捉FdViewpointsManager类的回调函数。 事件类型有:PlayingGroupCurrentIndexChanged/PlayingGroupStatusChanged/PlayingGroupPropertyChanged,GroupsChanged,ViewPointChanged
Parameters:
Name Type Argument Description listenerFdTools.FdViewpointsManager~FdViewpointsManagerCallback 当有事件触发时被执行的函数。
scopeObject <optional>
listener函数执行时的绑定的对象。
Returns:
返回一个函数,调用该函数可以取消监听。
- Type
- Freedo.Event~RemoveCallback
Example
viewPointsManager.on( function(eventType, param){ if (eventType === 'CurrentIndexChanged') { //do something } else if (eventType === 'StatusChanged') { //do something } else if (eventType === 'PropertyChanged') { //do something } }) -
pauseGroup()
-
暂停正在播放的视点组,当前视点位置不变
Example
viewPointsManager.pauseGroup();
-
removeAllGroups()
-
删除所有视点组
Example
viewPointsManager.removeAllGroups();
-
removeGroup(groupID)
-
删除视点组
Parameters:
Name Type Description groupIDString 视点组ID
Returns:
成功返回true,否则返回false
- Type
- Boolean
Example
viewPointsManager.removeGroup(currentGroupId);
-
removeViewpoint(groupID, index)
-
删除视点
Parameters:
Name Type Description groupIDString 视点组ID
indexNumber 指定视点组列表中的位置
Example
viewPointsManager.removeViewpoint(currentGroupId, 0);
-
setCurrentGroupID(组ID)
-
设置当前组ID
Parameters:
Name Type Description 组IDString Example
viewPointsManager.setGroupPlayingGroupID(currentGroupID);
-
setGroupName(groupID, groupName)
-
设置组的名字
Parameters:
Name Type Description groupIDString 组ID
groupNameString 组名称
Example
viewPointsManager.setGroupName(currentGroupId, 'NewGroupName');
-
setGroupPlayingIndex(index)
-
设置当前播放的视点索引,并同时跳入该视点位置
Parameters:
Name Type Description indexNumber 视点索引
Example
viewPointsManager.setGroupPlayingIndex(0);
-
setViewpoint(groupID, index, options)
-
设置视点
Parameters:
Name Type Description groupIDString 视点组ID
indexNumber 指定视点组列表中的位置
optionsObject 视点选项,目前只有cameraInfo
Properties
Name Type Description nameString 视点名称
cameraInfoArray.<Number> 相机信息的数组,该数组的组成与FdCamera.getCurrentCameraInfo相同。
Returns:
设置成功返回true,否则返回false
- Type
- Boolean
Example
var cameraInfo = Freedo.FdCamera.getCurrentCameraInfo(scene.camera); viewPointsManager.setViewpoint(currentGroupId, 0, { name: '视点_' + new Date().getTime(), cameraInfo: cameraInfo } ); -
startOrResumeGroup(groupID)
-
播放或者恢复播放视点组
Parameters:
Name Type Description groupIDString 视点组ID
Example
viewPointsManager.startOrResumeGroup(currentGroupId);
-
stopGroup()
-
停止正在播放的视点组,当前视点回到第一个视点。
Example
viewPointsManager.stopGroup();