579 lines
20 KiB
JavaScript
579 lines
20 KiB
JavaScript
|
/**
|
|||
|
* @name: click
|
|||
|
* @author: Administrator
|
|||
|
* @date: 2023-05-28 11:05
|
|||
|
* @description:click
|
|||
|
* @update: 2023-05-28 11:05
|
|||
|
*/
|
|||
|
let leftClickHandler = null
|
|||
|
let rightClickHandler = null
|
|||
|
let MoveHandler = null
|
|||
|
let leftClickCallbackMap = new Map()
|
|||
|
let rightClickCallbackMap = new Map()
|
|||
|
let MoveCallbackMap = new Map()
|
|||
|
let selectedFeature;
|
|||
|
|
|||
|
|
|||
|
function cartesian3Towgs84(cartesian, viewer) {
|
|||
|
var ellipsoid = viewer.scene.globe.ellipsoid
|
|||
|
var cartesian3 = new Cesium.Cartesian3(
|
|||
|
cartesian.x,
|
|||
|
cartesian.y,
|
|||
|
cartesian.z
|
|||
|
)
|
|||
|
var cartographic = ellipsoid.cartesianToCartographic(cartesian3)
|
|||
|
var lat = Cesium.Math.toDegrees(cartographic.latitude)
|
|||
|
var lng = Cesium.Math.toDegrees(cartographic.longitude)
|
|||
|
var alt = cartographic.height < 0 ? 0 : cartographic.height
|
|||
|
return {
|
|||
|
lng: lng,
|
|||
|
lat: lat,
|
|||
|
alt: alt,
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function getcartesian(sdk, movement) {
|
|||
|
if (movement.endPosition) {
|
|||
|
movement.endPosition.y -= 2
|
|||
|
}
|
|||
|
let position = movement.position || movement.endPosition
|
|||
|
// 获取世界坐标系地表坐标,考虑地形,不包括模型,倾斜摄影模型表面;
|
|||
|
let cartesian = sdk.viewer.scene.pickPosition(position)
|
|||
|
if (!cartesian) {
|
|||
|
const ray = sdk.viewer.camera.getPickRay(position); //相交的射线
|
|||
|
cartesian = sdk.viewer.scene.globe.pick(ray, sdk.viewer.scene);
|
|||
|
}
|
|||
|
return cartesian
|
|||
|
}
|
|||
|
|
|||
|
function openLeftClick(sdk, cb) {
|
|||
|
if (!sdk || !sdk.viewer) {
|
|||
|
return
|
|||
|
}
|
|||
|
let click = true
|
|||
|
leftClickHandler = new Cesium.ScreenSpaceEventHandler(sdk.viewer.canvas)
|
|||
|
leftClickHandler.setInputAction((movement) => {
|
|||
|
let cartesian = sdk.viewer.scene.pickPosition(movement.position)
|
|||
|
if (!cartesian) {
|
|||
|
const ray = sdk.viewer.camera.getPickRay(movement.position); //相交的射线
|
|||
|
cartesian = sdk.viewer.scene.globe.pick(ray, sdk.viewer.scene);
|
|||
|
}
|
|||
|
if (!cartesian) {
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
let pos84 = cartesian3Towgs84(cartesian, sdk.viewer)
|
|||
|
|
|||
|
cb && cb(pos84)
|
|||
|
|
|||
|
if (click) {
|
|||
|
click = false
|
|||
|
setTimeout(() => {
|
|||
|
click = true
|
|||
|
}, 600);
|
|||
|
if (!YJ.Measure.GetMeasureStatus() && cartesian) {
|
|||
|
let flag = false
|
|||
|
for (let i = leftClickCallbackMap.size - 1; i >= 0; i--) {
|
|||
|
let key = Array.from(leftClickCallbackMap.keys())[i]
|
|||
|
let obj = leftClickCallbackMap.get(key)
|
|||
|
if (obj) {
|
|||
|
|
|||
|
if (obj.that) {
|
|||
|
// 是否为多边形
|
|||
|
if (obj.that.type === 'PolygonObject') {
|
|||
|
// 是否可点击y
|
|||
|
if (obj.that.picking) {
|
|||
|
if (obj.that.options.positions && obj.that.options.positions.length >= 3) {
|
|||
|
let pt = turf.point([pos84.lng, pos84.lat]);
|
|||
|
let polyPos = []
|
|||
|
for (let i = 0; i < obj.that.options.positions.length; i++) {
|
|||
|
polyPos.push([
|
|||
|
obj.that.options.positions[i].lng,
|
|||
|
obj.that.options.positions[i].lat
|
|||
|
])
|
|||
|
}
|
|||
|
polyPos.push([
|
|||
|
obj.that.options.positions[0].lng,
|
|||
|
obj.that.options.positions[0].lat
|
|||
|
])
|
|||
|
let poly = turf.polygon([polyPos]);
|
|||
|
let contain = turf.booleanPointInPolygon(pt, poly);
|
|||
|
if (contain) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
obj.that.options.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
flag = true
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
// 聚集地
|
|||
|
else if (obj.that.type === 'AssembleObject') {
|
|||
|
if (obj.that.picking) {
|
|||
|
if (obj.that.options.positions && obj.that.options.positions.length >= 3) {
|
|||
|
let positions = obj.that.computeAssemble(obj.that.options.positions, true)
|
|||
|
let pt = turf.point([pos84.lng, pos84.lat]);
|
|||
|
let polyPos = []
|
|||
|
for (let i = 0; i < positions.length; i += 2) {
|
|||
|
polyPos.push([
|
|||
|
positions[i],
|
|||
|
positions[i + 1]
|
|||
|
])
|
|||
|
}
|
|||
|
let poly = turf.polygon([polyPos]);
|
|||
|
let contain = turf.booleanPointInPolygon(pt, poly);
|
|||
|
if (contain) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
obj.that.options.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
flag = true
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
// 单箭头
|
|||
|
else if (obj.that.type === 'AttackArrowObject') {
|
|||
|
if (obj.that.picking) {
|
|||
|
if (obj.that.options.positions && obj.that.options.positions.length >= 3) {
|
|||
|
let pt = turf.point([pos84.lng, pos84.lat]);
|
|||
|
let positions = obj.that.computeAttackArrow(obj.that.options.positions)
|
|||
|
let polyPos = []
|
|||
|
for (let m = 0; m < positions.length; m++) {
|
|||
|
let pos84 = cartesian3Towgs84(positions[m], sdk.viewer)
|
|||
|
polyPos.push([pos84.lng, pos84.lat])
|
|||
|
}
|
|||
|
let poly = turf.polygon([polyPos]);
|
|||
|
let contain = turf.booleanPointInPolygon(pt, poly);
|
|||
|
if (contain) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
obj.that.options.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
flag = true
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
// 双箭头
|
|||
|
else if (obj.that.type === 'PincerArrowObject') {
|
|||
|
if (obj.that.picking) {
|
|||
|
if (obj.that.options.positions && obj.that.options.positions.length >= 5) {
|
|||
|
let pt = turf.point([pos84.lng, pos84.lat]);
|
|||
|
let positions = obj.that.computePincerArrow(obj.that.options.positions)
|
|||
|
let polyPos = []
|
|||
|
for (let m = 0; m < positions.length; m++) {
|
|||
|
let pos84 = cartesian3Towgs84(positions[m], sdk.viewer)
|
|||
|
polyPos.push([pos84.lng, pos84.lat])
|
|||
|
}
|
|||
|
let pos84_0 = cartesian3Towgs84(positions[0], sdk.viewer)
|
|||
|
polyPos.push([pos84_0.lng, pos84_0.lat])
|
|||
|
let poly = turf.polygon([polyPos]);
|
|||
|
let contain = turf.booleanPointInPolygon(pt, poly);
|
|||
|
if (contain) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
obj.that.options.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
flag = true
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
// 圆
|
|||
|
else if (obj.that.type === 'CircleObject') {
|
|||
|
if (obj.that.picking) {
|
|||
|
let pt = turf.point([pos84.lng, pos84.lat]);
|
|||
|
if (obj.that.options.center && obj.that.options.radius) {
|
|||
|
let center = [obj.that.options.center.lng, obj.that.options.center.lat];
|
|||
|
let radius = obj.that.options.radius / 1000;
|
|||
|
let options = { steps: 360, units: 'kilometers' };
|
|||
|
let circle = turf.circle(center, radius, options);
|
|||
|
let contain = turf.booleanPointInPolygon(pt, circle);
|
|||
|
if (contain) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
obj.that.options.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
flag = true
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
// 扇形
|
|||
|
else if (obj.that.type === 'SectorObject') {
|
|||
|
if (obj.that.picking) {
|
|||
|
let pt = turf.point([pos84.lng, pos84.lat]);
|
|||
|
if (obj.that.options.center && obj.that.options.radius && obj.that.options.startAngle && obj.that.options.endAngle) {
|
|||
|
let positions = obj.that.calSector(obj.that.options.center, obj.that.options.radius, obj.that.options.startAngle, obj.that.options.endAngle, undefined, true)
|
|||
|
let polyPos = []
|
|||
|
for (let m = 0; m < positions.length; m++) {
|
|||
|
polyPos.push([positions[m].lng, positions[m].lat])
|
|||
|
}
|
|||
|
let poly = turf.polygon([polyPos]);
|
|||
|
let contain = turf.booleanPointInPolygon(pt, poly);
|
|||
|
if (contain) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
obj.that.options.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
flag = true
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (!flag) {
|
|||
|
const pick = sdk.viewer.scene.pick(movement.position)
|
|||
|
if (pick) {
|
|||
|
if (pick.id) {
|
|||
|
let entityId
|
|||
|
// 矢量
|
|||
|
if (pick.id.type && pick.id.type === 'vector' && pick.id.parentId) {
|
|||
|
let obj = leftClickCallbackMap.get(pick.id.parentId)
|
|||
|
if (obj.that.picking && obj.that.geojson) {
|
|||
|
for (let i = 0; i < obj.that.geojson.features.length; i++) {
|
|||
|
if (obj.that.geojson.features[i].id === pick.id._id) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
obj.that.geojson.features[i].id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else if (typeof pick.id.id == 'string') {
|
|||
|
let array = pick.id.id.split('-')
|
|||
|
array.splice(array.length - 1, 1)
|
|||
|
entityId = array.join('-')
|
|||
|
}
|
|||
|
|
|||
|
if (pick.id.properties && pick.id.properties.id && leftClickCallbackMap.has(pick.id.properties.id._value)) {
|
|||
|
let obj = leftClickCallbackMap.get(pick.id.properties.id._value)
|
|||
|
if (obj.that.picking) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
pick.id.properties.id._value,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
else if (leftClickCallbackMap.has(pick.id.id)) {
|
|||
|
let obj = leftClickCallbackMap.get(pick.id.id)
|
|||
|
if (obj.that.picking) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
pick.id.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
else if (entityId && leftClickCallbackMap.has(entityId)) {
|
|||
|
let obj = leftClickCallbackMap.get(entityId)
|
|||
|
if (obj.that.picking) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
entityId,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
else if (pick.primitive) {
|
|||
|
if (typeof pick.id == 'string' && leftClickCallbackMap.has(pick.id)) {
|
|||
|
let obj = leftClickCallbackMap.get(pick.id)
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
pick.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else {
|
|||
|
if (pick.primitive && pick.primitive.id) {
|
|||
|
if (leftClickCallbackMap.has(pick.primitive.id)) {
|
|||
|
let obj = leftClickCallbackMap.get(pick.primitive.id)
|
|||
|
if (obj.that.picking) {
|
|||
|
if (obj.that.type === 'bim') {
|
|||
|
if (YJ.Global.getBimPickStatus(sdk)) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
pick.primitive,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
else {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
pick.primitive.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (pick.content && (!pick.primitive || !pick.primitive.id)) {
|
|||
|
if (leftClickCallbackMap.has(pick.content.tileset.id)) {
|
|||
|
let obj = leftClickCallbackMap.get(pick.content.tileset.id)
|
|||
|
if (obj.that.picking) {
|
|||
|
if (obj.that.type === 'bim') {
|
|||
|
if (YJ.Global.getBimPickStatus(sdk)) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
pick.content.tileset,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
else {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
pick.content.tileset.id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// if (click) {
|
|||
|
// click = false
|
|||
|
// setTimeout(() => {
|
|||
|
// click = true
|
|||
|
// }, 300);
|
|||
|
// if (!YJ.Measure.GetMeasureStatus()) {
|
|||
|
|
|||
|
// }
|
|||
|
// }
|
|||
|
}, Cesium.ScreenSpaceEventType.LEFT_CLICK)
|
|||
|
|
|||
|
// leftClickHandler.setInputAction(function (movement) {
|
|||
|
// const feature = sdk.viewer.scene.pick(movement.endPosition);
|
|||
|
// // unselectFeature(selectedFeature);
|
|||
|
// if (selectedFeature) {
|
|||
|
// selectedFeature.color = Cesium.Color.WHITE;
|
|||
|
// }
|
|||
|
// selectedFeature = feature
|
|||
|
// if (feature) {
|
|||
|
// feature.color = Cesium.Color.YELLOW;
|
|||
|
// }
|
|||
|
// }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|||
|
// }
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
function closeLeftClick(sdk) {
|
|||
|
leftClickHandler.destroy() //关闭事件句柄
|
|||
|
leftClickHandler = null
|
|||
|
// }
|
|||
|
}
|
|||
|
|
|||
|
function openRightClick(sdk) {
|
|||
|
if (!sdk || !sdk.viewer) {
|
|||
|
return
|
|||
|
}
|
|||
|
rightClickHandler = new Cesium.ScreenSpaceEventHandler(sdk.viewer.canvas)
|
|||
|
rightClickHandler.setInputAction((movement) => {
|
|||
|
if (!YJ.Measure.GetMeasureStatus()) {
|
|||
|
const pick = sdk.viewer.scene.pick(movement.position)
|
|||
|
if (pick && pick.id) {
|
|||
|
let id
|
|||
|
if (pick.id.type && pick.id.type === 'vector' && pick.id.parentId) {
|
|||
|
let obj = rightClickCallbackMap.get(pick.id.parentId)
|
|||
|
if (obj.that.picking && obj.that.geojson) {
|
|||
|
for (let i = 0; i < obj.that.geojson.features.length; i++) {
|
|||
|
if (obj.that.geojson.features[i].id === pick.id._id) {
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
obj.that.geojson.features[i].id,
|
|||
|
cartesian3Towgs84(getcartesian(sdk, movement), sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else {
|
|||
|
if (typeof pick.id === 'string') {
|
|||
|
id = pick.id
|
|||
|
}
|
|||
|
else {
|
|||
|
id = pick.id.id
|
|||
|
}
|
|||
|
if (rightClickCallbackMap.has(id)) {
|
|||
|
let obj = rightClickCallbackMap.get(id)
|
|||
|
if (obj.that.picking) {
|
|||
|
let cartesian = getcartesian(sdk, movement)
|
|||
|
if (!cartesian) {
|
|||
|
return
|
|||
|
}
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
id,
|
|||
|
cartesian3Towgs84(cartesian, sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (pick && pick.content) {
|
|||
|
if (rightClickCallbackMap.has(pick.content.tileset.id)) {
|
|||
|
let obj = rightClickCallbackMap.get(pick.content.tileset.id)
|
|||
|
if (obj.that.picking) {
|
|||
|
if (obj.that.type === 'bim') {
|
|||
|
if (YJ.Global.getBimPickStatus(sdk)) {
|
|||
|
let cartesian = getcartesian(sdk, movement)
|
|||
|
if (!cartesian) {
|
|||
|
return
|
|||
|
}
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
pick.getProperty('id'),
|
|||
|
cartesian3Towgs84(cartesian, sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
else {
|
|||
|
let cartesian = getcartesian(sdk, movement)
|
|||
|
if (!cartesian) {
|
|||
|
return
|
|||
|
}
|
|||
|
obj.callback(
|
|||
|
movement,
|
|||
|
pick.content.tileset.id,
|
|||
|
cartesian3Towgs84(cartesian, sdk.viewer), obj.that)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
|
|||
|
}
|
|||
|
|
|||
|
function closeRightClick() {
|
|||
|
if (rightClickHandler) {
|
|||
|
rightClickHandler.destroy() //关闭事件句柄
|
|||
|
rightClickHandler = null
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function openMove(sdk) {
|
|||
|
MoveHandler = new Cesium.ScreenSpaceEventHandler(sdk.viewer.canvas)
|
|||
|
MoveHandler.setInputAction(function (movement) {
|
|||
|
const pick = sdk.viewer.scene.pick(movement.endPosition);
|
|||
|
// unselectFeature(selectedFeature);
|
|||
|
// if (selectedFeature) {
|
|||
|
// let color = '#fff'
|
|||
|
// let state = selectedFeature.getProperty('state')
|
|||
|
// switch (state) {
|
|||
|
// case '0':
|
|||
|
// color = '#fff'
|
|||
|
// break;
|
|||
|
// case '1':
|
|||
|
// color = '#f00'
|
|||
|
// break;
|
|||
|
// case '2':
|
|||
|
// color = '#0f0'
|
|||
|
// break;
|
|||
|
// case '3':
|
|||
|
// color = '#00f'
|
|||
|
// break;
|
|||
|
// default:
|
|||
|
// }
|
|||
|
// selectedFeature.color = Cesium.Color.fromCssColorString(color).withAlpha(selectedFeature.tileset.transparency)
|
|||
|
// }
|
|||
|
// if (pick && pick.id) { }
|
|||
|
// if (pick && pick.content) {
|
|||
|
// if (MoveCallbackMap.has(pick.content.tileset.id)) {
|
|||
|
// let obj = MoveCallbackMap.get(pick.content.tileset.id)
|
|||
|
// if (obj.that.picking) {
|
|||
|
// if (obj.that.type === 'bim') {
|
|||
|
// if (YJ.Global.getBimPickStatus(sdk)) {
|
|||
|
// selectedFeature = pick
|
|||
|
// pick.color = Cesium.Color.YELLOW;
|
|||
|
// }
|
|||
|
// else {
|
|||
|
// selectedFeature = null
|
|||
|
// }
|
|||
|
// }
|
|||
|
// else {
|
|||
|
// selectedFeature = pick
|
|||
|
// pick.color = Cesium.Color.YELLOW;
|
|||
|
// }
|
|||
|
// }
|
|||
|
// else {
|
|||
|
// selectedFeature = null
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|||
|
}
|
|||
|
|
|||
|
function closeMove() {
|
|||
|
if (MoveHandler) {
|
|||
|
MoveHandler.destroy() //关闭事件句柄
|
|||
|
MoveHandler = null
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*注册左键回调*/
|
|||
|
function regLeftClickCallback(id, callback, that) {
|
|||
|
|
|||
|
leftClickCallbackMap.set(id, { callback, that })
|
|||
|
}/*取消左键回调*/
|
|||
|
function unRegLeftClickCallback(id,) {
|
|||
|
leftClickCallbackMap.delete(id,)
|
|||
|
}
|
|||
|
|
|||
|
/*注册右键回调*/
|
|||
|
function regRightClickCallback(id, callback, that) {
|
|||
|
rightClickCallbackMap.set(id, { callback, that })
|
|||
|
}/*取消右键回调*/
|
|||
|
function unRegRightClickCallback(id,) {
|
|||
|
rightClickCallbackMap.delete(id,)
|
|||
|
}
|
|||
|
|
|||
|
/*注册左键回调*/
|
|||
|
function regMoveCallback(id, callback, that) {
|
|||
|
MoveCallbackMap.set(id, { callback, that })
|
|||
|
}/*取消左键回调*/
|
|||
|
function unregMoveCallback(id,) {
|
|||
|
MoveCallbackMap.delete(id,)
|
|||
|
}
|
|||
|
|
|||
|
function getLeftClickState() {
|
|||
|
if (leftClickHandler) {
|
|||
|
return true
|
|||
|
}
|
|||
|
else {
|
|||
|
false
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function getRightClickState() {
|
|||
|
if (rightClickHandler) {
|
|||
|
return true
|
|||
|
}
|
|||
|
else {
|
|||
|
false
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function getMoveState() {
|
|||
|
if (MoveHandler) {
|
|||
|
return true
|
|||
|
}
|
|||
|
else {
|
|||
|
false
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
export { openLeftClick, closeLeftClick, regLeftClickCallback, unRegLeftClickCallback, openRightClick, closeRightClick, regRightClickCallback, unRegRightClickCallback, openMove, closeMove, regMoveCallback, unregMoveCallback, getLeftClickState, getRightClickState, getMoveState }
|