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 groupID
String 视点组ID
options
Object 视点选项
Properties
Name Type Description name
String 视点名称
cameraInfo
Array.<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 groupName
String 视点组的名称
groupID
String <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 groupID
String 视点组ID
index
Number 指定视点组列表中的位置
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 groupID
String 视点组ID
Returns:
视点组名称,无效则返回:''
- Type
- String
Example
var groupName = viewPointsManager.getGroupName(currentGroupId);
-
getGroupOptions(groupID)
-
获取组的选项
Parameters:
Name Type Description groupID
String 组ID
options.name
String 视点组名称
options.list
Array.<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 groupID
String 视点组ID
index
Number 指定视点组列表中的位置
options.name
String 视点名称
options.cameraInfo
Array.<Number> 相机信息的数组,该数组的组成与FdCamera.getCurrentCameraInfo相同。
Returns:
options 视点选项,目前只有name,cameraInfo
- Type
- Object
Example
var viewPointOpt = viewPointsManager.getViewPoint(currentGroupId, 0);
-
getViewpointsLength(groupID)
-
获取视点组中视点的数量
Parameters:
Name Type Description groupID
String 视点组ID
Returns:
视点组中视点的数量
- Type
- Number
Example
var viewPointsLengthInGroup = viewPointsManager.getViewpointsLength(currentGroupId);
-
goTo(groupID, index)
-
跳入某个视点
Parameters:
Name Type Description groupID
String 视点组ID
index
Number 指定视点组列表中的位置
Returns:
成功返回true,否则返回false
- Type
- Boolean
Example
viewPointsManager.goTo(currentGroupId, 0);
-
insertViewpoint(groupID, options, index)
-
在视点组列表的某个位置插入一个视点
Parameters:
Name Type Description groupID
String 视点组ID
options
Object 视点组选项
Properties
Name Type Description name
String 视点名称
cameraInfo
Array.<Number> 相机信息的数组,该数组的组成与FdCamera.getCurrentCameraInfo相同。
index
Number 指定视点组列表中的位置
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 listener
FdTools.FdViewpointsManager~FdViewpointsManagerCallback 当有事件触发时被执行的函数。
scope
Object <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 groupID
String 视点组ID
Returns:
成功返回true,否则返回false
- Type
- Boolean
Example
viewPointsManager.removeGroup(currentGroupId);
-
removeViewpoint(groupID, index)
-
删除视点
Parameters:
Name Type Description groupID
String 视点组ID
index
Number 指定视点组列表中的位置
Example
viewPointsManager.removeViewpoint(currentGroupId, 0);
-
setCurrentGroupID(组ID)
-
设置当前组ID
Parameters:
Name Type Description 组ID
String Example
viewPointsManager.setGroupPlayingGroupID(currentGroupID);
-
setGroupName(groupID, groupName)
-
设置组的名字
Parameters:
Name Type Description groupID
String 组ID
groupName
String 组名称
Example
viewPointsManager.setGroupName(currentGroupId, 'NewGroupName');
-
setGroupPlayingIndex(index)
-
设置当前播放的视点索引,并同时跳入该视点位置
Parameters:
Name Type Description index
Number 视点索引
Example
viewPointsManager.setGroupPlayingIndex(0);
-
setViewpoint(groupID, index, options)
-
设置视点
Parameters:
Name Type Description groupID
String 视点组ID
index
Number 指定视点组列表中的位置
options
Object 视点选项,目前只有cameraInfo
Properties
Name Type Description name
String 视点名称
cameraInfo
Array.<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 groupID
String 视点组ID
Example
viewPointsManager.startOrResumeGroup(currentGroupId);
-
stopGroup()
-
停止正在播放的视点组,当前视点回到第一个视点。
Example
viewPointsManager.stopGroup();