|
@@ -1,361 +1,277 @@
|
|
|
-//package cn.sagacloud.android.cadengine
|
|
|
-//
|
|
|
-//import cn.sagacloud.android.cadengine.items.*
|
|
|
-//import cn.sagacloud.android.cadengine.types.*
|
|
|
-//
|
|
|
-///**
|
|
|
-// * 楼层场景
|
|
|
-// *
|
|
|
-// * @author 付国宝
|
|
|
-// */
|
|
|
-//class FloorScene {
|
|
|
-// /** item 数据 */
|
|
|
-// //data: FloorData | null = null;
|
|
|
-//
|
|
|
-// /** 是否显示空间 */
|
|
|
-// private var _isShowSpace: Boolean = true;
|
|
|
-// fun getIsShowSpace() : Boolean {
|
|
|
-// return this._isShowSpace
|
|
|
-// } // Function getIsShowSpace()
|
|
|
-// fun setIsShowSpace(v: Boolean ) {
|
|
|
-// if(this._isShowSpace == v){
|
|
|
-// return
|
|
|
-// }
|
|
|
-// this._isShowSpace = v
|
|
|
-//// this.spaceList.map((t: SpaceItem) => {
|
|
|
-//// t.visible = this._isShowSpace;
|
|
|
-//// return t;
|
|
|
-//// })
|
|
|
-// } // Function setIsShowSpace()
|
|
|
-//
|
|
|
-// /** 是否显示柱子 */
|
|
|
-// private var _isShowColumn: Boolean = true;
|
|
|
-// fun getIsShowColumn() : Boolean {
|
|
|
-// return this._isShowColumn
|
|
|
-// } // Function getIsShowColumn()
|
|
|
-// fun setIsShowColumn(v: Boolean ) {
|
|
|
-// if(this._isShowColumn == v){
|
|
|
-// return
|
|
|
-// }
|
|
|
-// this._isShowColumn = v
|
|
|
-//// this.columnList.map((t: ColumnItem) => {
|
|
|
-//// t.visible = this._isShowColumn;
|
|
|
-//// return t;
|
|
|
-//// })
|
|
|
-// } // Function setIsShowColumn()
|
|
|
-//
|
|
|
-// /** 是否显示墙体 */
|
|
|
-// private var _isShowWall: Boolean = true;
|
|
|
-// fun getIsShowWall() : Boolean {
|
|
|
-// return this._isShowWall
|
|
|
-// } // Function getIsShowWall()
|
|
|
-// fun setIsShowWall(v: Boolean ) {
|
|
|
-// if(this._isShowWall == v){
|
|
|
-// return
|
|
|
-// }
|
|
|
-// this._isShowWall = v
|
|
|
-//// this.wallList.map((t: WallItem) => {
|
|
|
-//// t.visible = this._isShowWall;
|
|
|
-//// return t;
|
|
|
-//// })
|
|
|
-// } // Function setIsShowWall()
|
|
|
-//
|
|
|
-// /** 是否显示虚拟墙 */
|
|
|
-// private var _isShowVirtualWall: Boolean = true;
|
|
|
-// fun getIsShowVirtualWall() : Boolean {
|
|
|
-// return this._isShowVirtualWall
|
|
|
-// } // Function getIsShowVirtualWall()
|
|
|
-// fun setIsShowVirtualWall(v: Boolean ) {
|
|
|
-// if(this._isShowVirtualWall == v){
|
|
|
-// return
|
|
|
-// }
|
|
|
-// this._isShowVirtualWall = v
|
|
|
-//// this.virtualWallList.map((t: VirtualWallItem) => {
|
|
|
-//// t.visible = this._isShowVirtualWall;
|
|
|
-//// return t;
|
|
|
-//// })
|
|
|
-// } // Function setIsShowVirtualWall()
|
|
|
-//
|
|
|
-// /** 是否显示门 */
|
|
|
-// private var _isShowDoor: Boolean = true;
|
|
|
-// fun getIsShowDoor() : Boolean {
|
|
|
-// return this._isShowDoor
|
|
|
-// } // Function getIsShowDoor()
|
|
|
-// fun setIsShowDoor(v: Boolean ) {
|
|
|
-// if(this._isShowDoor == v){
|
|
|
-// return
|
|
|
-// }
|
|
|
-// this._isShowDoor = v
|
|
|
-//// this.doorList.map((t: DoorItem) => {
|
|
|
-//// t.visible = this._isShowDoor;
|
|
|
-//// return t;
|
|
|
-//// })
|
|
|
-// } // Function setIsShowDoor()
|
|
|
-//
|
|
|
-// /** 是否显示窗户 */
|
|
|
-// private var _isShowWindow: Boolean = true;
|
|
|
-// fun getIsShowWindow() : Boolean {
|
|
|
-// return this._isShowWindow
|
|
|
-// } // Function getIsShowWindow()
|
|
|
-// fun setIsShowWindow(v: Boolean ) {
|
|
|
-// if(this._isShowWindow == v){
|
|
|
-// return
|
|
|
-// }
|
|
|
-// this._isShowWindow = v
|
|
|
-//// this.windowList.map((t: WindowItem) => {
|
|
|
-//// t.visible = this._isShowWindow
|
|
|
-//// return t
|
|
|
-//// })
|
|
|
-// } // Function setIsShowWindow()
|
|
|
-//
|
|
|
-// /** 墙 list */
|
|
|
-// var wallList: ArrayList<WallItem>? = null
|
|
|
-// /** 柱子 list */
|
|
|
-// var columnList: ArrayList<ColumnItem>? = null
|
|
|
-// /** 门 list */
|
|
|
-// var doorList: ArrayList<DoorItem>? = null
|
|
|
-// /** 窗 list */
|
|
|
-// var casementList: ArrayList<WindowItem>? = null
|
|
|
-// /** 虚拟墙 list */
|
|
|
-// var virtualWallList: ArrayList<VirtualWallItem>? = null
|
|
|
-// /** 空间 list */
|
|
|
-// var spaceList: ArrayList<SpaceItem>? = null
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @param data 绘制空间地图得所有参数
|
|
|
-// */
|
|
|
-// constructor(){
|
|
|
-// super()
|
|
|
-// } // Constructor()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 获取底图压缩文件
|
|
|
-// *
|
|
|
-// * @param url 请求数据文件路径
|
|
|
-// */
|
|
|
-// fun loadUrl(url: String){
|
|
|
-// var that = this
|
|
|
-//// return Promise((relove, reject) => {
|
|
|
-//// Axios({
|
|
|
-//// method: "get",
|
|
|
-//// url: url,
|
|
|
-//// data: {},
|
|
|
-//// responseType: "blob"
|
|
|
-//// })
|
|
|
-//// .then((res: any) => {
|
|
|
-//// let blob = res.data
|
|
|
-//// this.unzip(blob)
|
|
|
-//// .then((jsonData: any) => {
|
|
|
-//// that.addBaseMapItem(jsonData)
|
|
|
-//// relove()
|
|
|
-//// })
|
|
|
-//// .catch((error: any) => {
|
|
|
-////// console.log(error)
|
|
|
-//// })
|
|
|
-//// })
|
|
|
-//// .catch((res: any) => {
|
|
|
-////// console.log(res)
|
|
|
-//// });
|
|
|
-//// })
|
|
|
-// } // Function loadUrl()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 解压数据
|
|
|
-// *
|
|
|
-// * @param blob 文件
|
|
|
-// */
|
|
|
-// private fun unzip(blob: Any) : Any {
|
|
|
-// var reader = FileReader()
|
|
|
-// reader.readAsBinaryString(blob)
|
|
|
-// var that = this
|
|
|
-// return Promise(resolve => {
|
|
|
-// reader.onload = (readerEvt: any) => {
|
|
|
-// var binaryString = readerEvt.target.result
|
|
|
-// //解压数据
|
|
|
-// var base64Data = btoa(binaryString)
|
|
|
-// var unGzipData = that.unzipBase64(base64Data)
|
|
|
-// that.data = unGzipData.EntityList[0].Elements
|
|
|
-// resolve(unGzipData)
|
|
|
-// }
|
|
|
+package cn.sagacloud.android.cadengine
|
|
|
+
|
|
|
+import android.util.Log
|
|
|
+import cn.sagacloud.android.cadengine.types.*
|
|
|
+import com.alibaba.fastjson.PropertyNamingStrategy
|
|
|
+import com.sybotan.android.graphy.SGraphyScene
|
|
|
+import com.sybotan.base.extensions.toJson
|
|
|
+import com.sybotan.base.utils.SHttpUtil
|
|
|
+import com.sybotan.base.utils.SJsonUtil
|
|
|
+import android.text.TextUtils
|
|
|
+import android.util.SizeF
|
|
|
+import cn.sagacloud.android.cadengine.items.*
|
|
|
+import com.sybotan.android.graphy.items.SGraphyClockItem
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * 楼层场景
|
|
|
+ *
|
|
|
+ * @author 庞利祥(sybotan@126.com)
|
|
|
+ */
|
|
|
+class FloorScene : SGraphyScene() {
|
|
|
+ /** item 数据 */
|
|
|
+ var data: FloorData? = null
|
|
|
+ set(value) {
|
|
|
+ addBaseMapItem(value!!)
|
|
|
+ field = value
|
|
|
+ } // Set data
|
|
|
+
|
|
|
+ /** 初始化 */
|
|
|
+ init {
|
|
|
+ //addItem(SGraphyClockItem(SizeF(500f, 500f), null))
|
|
|
+ } // Init()
|
|
|
+
|
|
|
+ /** 是否显示墙体 */
|
|
|
+ var isShowColumn: Boolean = true
|
|
|
+ set(value) {
|
|
|
+ field = value
|
|
|
+ for (column in columnList) {
|
|
|
+ column.isVisible = value
|
|
|
+ }
|
|
|
+ } // Set isShowColumn
|
|
|
+
|
|
|
+ /** 是否显示墙体 */
|
|
|
+ var isShowWall: Boolean = true
|
|
|
+ set(value) {
|
|
|
+ field = value
|
|
|
+ for (wall in wallList) {
|
|
|
+ wall.isVisible = value
|
|
|
+ }
|
|
|
+ } // Set isShowWall
|
|
|
+ /** 是否显示虚拟墙 */
|
|
|
+ var isShowVirtualWall: Boolean = true
|
|
|
+ set(value) {
|
|
|
+ field = value
|
|
|
+ for (wall in virtualWallList) {
|
|
|
+ wall.isVisible = value
|
|
|
+ }
|
|
|
+ } // Set isShowWall
|
|
|
+
|
|
|
+ /** 是否显示空间 */
|
|
|
+ var isShowSpace: Boolean = true
|
|
|
+ set(value) {
|
|
|
+ field = value
|
|
|
+ for (space in spaceList) {
|
|
|
+ space.isVisible = value
|
|
|
+ }
|
|
|
+ } // Set isShowSpace
|
|
|
+
|
|
|
+ /** 是否显示门 */
|
|
|
+ var isShowDoor: Boolean = true
|
|
|
+ set(value) {
|
|
|
+ field = value
|
|
|
+ for (door in doorList) {
|
|
|
+ door.isVisible = value
|
|
|
+ }
|
|
|
+ } // Set isShowDoor
|
|
|
+
|
|
|
+ /** 是否显示窗户 */
|
|
|
+ var isShowWindow: Boolean = true
|
|
|
+ set(value) {
|
|
|
+ field = value
|
|
|
+ for (window in windowList) {
|
|
|
+ window.isVisible = value
|
|
|
+ }
|
|
|
+ } // Set isShowWindow
|
|
|
+
|
|
|
+ /** 墙 list */
|
|
|
+ val wallList = ArrayList<WallItem>()
|
|
|
+ /** 虚拟墙 list */
|
|
|
+ val virtualWallList = ArrayList<VirtualWallItem>()
|
|
|
+ /** 柱子 list */
|
|
|
+ var columnList = ArrayList<ColumnItem>()
|
|
|
+ /** 空间 list */
|
|
|
+ var spaceList = ArrayList<SpaceItem>()
|
|
|
+ /** 门 list */
|
|
|
+ var doorList = ArrayList<DoorItem>()
|
|
|
+ /** 空间 list */
|
|
|
+ var windowList = ArrayList<WindowItem>()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取底图压缩文件
|
|
|
+ *
|
|
|
+ * @param url 请求数据文件路径
|
|
|
+ * @param isGzip 是否为压缩格式
|
|
|
+ */
|
|
|
+ fun loadUrl(url: String, isGzip: Boolean = true){
|
|
|
+ Log.e("PLX","url = $url")
|
|
|
+ try {
|
|
|
+ val json = if (isGzip) {
|
|
|
+ SHttpUtil.getZipRequest(url)
|
|
|
+ } else {
|
|
|
+ SHttpUtil.getRequest(url)
|
|
|
+ }
|
|
|
+ SJsonUtil.propertyNamingStrategy = PropertyNamingStrategy.PascalCase
|
|
|
+ val d = SJsonUtil.fromJson<FloorData>(json)
|
|
|
+ Log.e("PLX", "json = ${d?.toJson()}")
|
|
|
+ data = SJsonUtil.fromJson(json, FloorData::class.java)
|
|
|
+ } catch (e: Exception) {
|
|
|
+ e.printStackTrace()
|
|
|
+ }
|
|
|
+ } // Function loadUrl()
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 增添所有底图 item;
|
|
|
+ *
|
|
|
+ * @param data itemList对象
|
|
|
+ */
|
|
|
+ private fun addBaseMapItem(data: FloorData){
|
|
|
+ if (data.entityList.size < 1) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ val elements = data.entityList[0].elements ?: return
|
|
|
+
|
|
|
+ // 添加墙
|
|
|
+ if (elements.walls != null) {
|
|
|
+ for (wall in elements.walls!!) {
|
|
|
+ addWall(wall);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加虚拟墙
|
|
|
+ if (elements.virtualWalls != null) {
|
|
|
+ for (wall in elements.virtualWalls!!) {
|
|
|
+ addVirtualWall(wall);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加柱子
|
|
|
+ if (elements.columns != null) {
|
|
|
+ for (column in elements.columns!!) {
|
|
|
+ addColumn(column);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加空间
|
|
|
+ if (elements.spaces != null) {
|
|
|
+ for (space in elements.spaces!!) {
|
|
|
+ addSpace(space);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加窗户
|
|
|
+ if (elements.windows != null) {
|
|
|
+ for (window in elements.windows!!) {
|
|
|
+ addWindow(window);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// data.Windows.map((t: Casement) => {
|
|
|
+// this.addCasement(t)
|
|
|
// })
|
|
|
-// } // Function unzip()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 获取楼层未压缩数据
|
|
|
-// *
|
|
|
-// * @param url 请求路径
|
|
|
-// */
|
|
|
-// fun getFloorData(url: String, data: HashMap<String, String>){
|
|
|
-// var that = this
|
|
|
-//// return Promise((resolve, reject) => {
|
|
|
-//// Axios({
|
|
|
-//// method: "post",
|
|
|
-//// url: url,
|
|
|
-//// data: data
|
|
|
-//// })
|
|
|
-//// .then((res: Any) => {
|
|
|
-//// var floordata = res.data.EntityList[0].Elements;
|
|
|
-//// that.addBaseMapItem(floordata);
|
|
|
-//// resolve(res.data);
|
|
|
-//// })
|
|
|
-//// .catch((res: Any) => {
|
|
|
-////// console.log(res);
|
|
|
-//// });
|
|
|
-//// })
|
|
|
-// } // Function getFloorData()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 增添所有底图 item;
|
|
|
-// *
|
|
|
-// * @param data itemList对象
|
|
|
-// */
|
|
|
-// private fun addBaseMapItem(data: FloorData){
|
|
|
-//// data.Walls.map((t: Wall) => {
|
|
|
-//// this.addWall(t)
|
|
|
-//// })
|
|
|
-//// data.Columns.map((t: Column) => {
|
|
|
-//// this.addColumn(t)
|
|
|
-//// })
|
|
|
-//// data.Windows.map((t: Casement) => {
|
|
|
-//// this.addCasement(t)
|
|
|
-//// })
|
|
|
-//// data.VirtualWalls.map((t: VirtualWall) => {
|
|
|
-//// this.addVirtualWall(t)
|
|
|
-//// })
|
|
|
-//// data.Doors.map((t: Door) => {
|
|
|
-//// this.addDoor(t)
|
|
|
-//// })
|
|
|
-//// data.Spaces.map((t: Space) => {
|
|
|
-//// this.addSpace(t)
|
|
|
-//// })
|
|
|
-// } // Function addBaseMapItem()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 添加空间到 scene 中
|
|
|
-// *
|
|
|
-// * @param space 空间list
|
|
|
-// */
|
|
|
-// fun addSpace(space: Space){
|
|
|
-// var item = SpaceItem(null, space)
|
|
|
-// item.zOrder = 2.0
|
|
|
-// item.visible = this.getIsShowSpace()
|
|
|
-// this.spaceList!!.add(item)
|
|
|
-// this.addItem(item)
|
|
|
-// } // Function addSpace()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 添加柱子到 scene 中
|
|
|
-// *
|
|
|
-// * @param column 柱子list
|
|
|
-// */
|
|
|
-// fun addColumn(column: Column){
|
|
|
-// var item = ColumnItem(null, column)
|
|
|
-// item.visible = this.getIsShowColumn()
|
|
|
-// this.columnList!!.add(item)
|
|
|
-// this.addItem(item)
|
|
|
-// } // Function addColumn()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 添加墙到 scene 中
|
|
|
-// *
|
|
|
-// * @param wall 墙list
|
|
|
-// */
|
|
|
-// fun addWall(wall: Wall){
|
|
|
-// var item = WallItem(null, wall)
|
|
|
-// item.visible = this.getIsShowWall()
|
|
|
-// this.wallList!!.add(item)
|
|
|
-// this.addItem(item)
|
|
|
-// } // Function addWall()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 添加所有虚拟墙到 scene 中
|
|
|
-// *
|
|
|
-// * @param virtualWall 虚拟墙list
|
|
|
-// */
|
|
|
-// fun addVirtualWall(virtualWall: VirtualWall){
|
|
|
-// var item = VirtualWallItem(null, virtualWall)
|
|
|
-// item.visible = this.getIsShowVirtualWall()
|
|
|
-// this.virtualWallList.add(item)
|
|
|
-// this.addItem(item)
|
|
|
-// } // Function addVirtualWall()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 添加门到 scene 中
|
|
|
-// *
|
|
|
-// * @param doors 门list
|
|
|
-// */
|
|
|
-// fun addDoor(door: Door){
|
|
|
-// var item = DoorItem(null, door)
|
|
|
-// item.zOrder = 1.0
|
|
|
-// item.visible = this.getIsShowDoor()
|
|
|
-// this.doorList.add(item)
|
|
|
-// this.addItem(item)
|
|
|
-// } // Function addDoor()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 添加窗户到 scene 中
|
|
|
-// *
|
|
|
-// * @param windows 窗户list
|
|
|
-// */
|
|
|
-// fun addCasement(casement: Window){
|
|
|
-// var item = WindowItem(null, casement)
|
|
|
-// item.zOrder = 1
|
|
|
-// item.visible = this.getIsShowWindow()
|
|
|
-// this.casementList!!.add(item)
|
|
|
-// this.addItem(item)
|
|
|
-// } // Function addCasement()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 扩大数组中相应字段一定倍数
|
|
|
-// *
|
|
|
-// * @param arr itemList
|
|
|
-// * @param k 倍数
|
|
|
-// * @param name 字段key值
|
|
|
-// */
|
|
|
-// fun changeMap(arr: Any, k: Any, name: Any){
|
|
|
-//// var data = arr.map((items: any) => {
|
|
|
-//// if (items[name] && items[name].length) {
|
|
|
-//// items[name].map((children: any) => {
|
|
|
-//// if (Array.isArray(children)) {
|
|
|
-//// return children.map(res => {
|
|
|
-//// res.Y = res.Y * k
|
|
|
-//// return res
|
|
|
-//// })
|
|
|
-//// } else {
|
|
|
-//// children.Y = children.Y * k;
|
|
|
-//// return children;
|
|
|
-//// }
|
|
|
-//// })
|
|
|
-//// }
|
|
|
-//// })
|
|
|
-//// return data
|
|
|
-// } // Function changeMap()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 解压文件
|
|
|
-// *
|
|
|
-// * @param b64Data base64数据
|
|
|
-// */
|
|
|
-// private fun unzipBase64(b64Data: Any){
|
|
|
-// var strData = atob(b64Data)
|
|
|
-//// var charData = strData.split("").map(function(x) {
|
|
|
-//// return x.charCodeAt(0)
|
|
|
-//// })
|
|
|
-// var binData = Uint8Array(charData)
|
|
|
-//// var data = pako.inflate(binData, { to: "string" })
|
|
|
-//// return eval("(" + data + ")")
|
|
|
-// } // Function unzipBase64()
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 压缩文件
|
|
|
-// *
|
|
|
-// * @param str 被压缩的数据
|
|
|
-// */
|
|
|
-// private fun zip(str: Any){
|
|
|
-// //escape(str) --->压缩前编码,防止中午乱码
|
|
|
-// var toMap = HashMap<String, String>()
|
|
|
-// toMap.put("to","string")
|
|
|
-// var binaryString = pako.gzip(escape(str), toMap);
|
|
|
-// return binaryString;
|
|
|
-// } // Function zip()
|
|
|
-//} // Class FloorScene
|
|
|
+// data.VirtualWalls.map((t: VirtualWall) => {
|
|
|
+// this.addVirtualWall(t)
|
|
|
+// })
|
|
|
+// data.Doors.map((t: Door) => {
|
|
|
+// this.addDoor(t)
|
|
|
+// })
|
|
|
+// data.Spaces.map((t: Space) => {
|
|
|
+// this.addSpace(t)
|
|
|
+// })
|
|
|
+ } // Function addBaseMapItem()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加柱子到 scene 中
|
|
|
+ *
|
|
|
+ * @param column 柱子
|
|
|
+ */
|
|
|
+ fun addColumn(column: Column){
|
|
|
+ val item = ColumnItem(column)
|
|
|
+ item.isVisible = isShowColumn
|
|
|
+ columnList.add(item)
|
|
|
+ addItem(item)
|
|
|
+ } // Function addColumn()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加墙到 scene 中
|
|
|
+ *
|
|
|
+ * @param wall 墙
|
|
|
+ */
|
|
|
+ fun addWall(wall: Wall){
|
|
|
+ val item = WallItem(wall)
|
|
|
+ item.isVisible = isShowWall
|
|
|
+ wallList.add(item)
|
|
|
+ addItem(item)
|
|
|
+ } // Function addWall()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加所有虚拟墙到 scene 中
|
|
|
+ *
|
|
|
+ * @param wall 墙
|
|
|
+ */
|
|
|
+ fun addVirtualWall(wall: VirtualWall){
|
|
|
+ val item = VirtualWallItem(wall)
|
|
|
+ item.isVisible = isShowVirtualWall
|
|
|
+ virtualWallList.add(item)
|
|
|
+ addItem(item)
|
|
|
+ } // Function addVirtualWall()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加空间到 scene 中
|
|
|
+ *
|
|
|
+ * @param space 空间
|
|
|
+ */
|
|
|
+ fun addSpace(space: Space){
|
|
|
+ val item = SpaceItem(space)
|
|
|
+ item.isVisible = isShowSpace
|
|
|
+ spaceList.add(item)
|
|
|
+ addItem(item)
|
|
|
+ } // Function addSpace()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加门到 scene 中
|
|
|
+ *
|
|
|
+ * @param door 门
|
|
|
+ */
|
|
|
+ fun addDoor(door: Door){
|
|
|
+ val item = DoorItem(door)
|
|
|
+ item.isVisible = isShowSpace
|
|
|
+ doorList.add(item)
|
|
|
+ addItem(item)
|
|
|
+ } // Function addWindow()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加窗户到 scene 中
|
|
|
+ *
|
|
|
+ * @param window 窗户
|
|
|
+ */
|
|
|
+ fun addWindow(window: Window){
|
|
|
+ val item = WindowItem(window)
|
|
|
+ item.isVisible = isShowSpace
|
|
|
+ windowList.add(item)
|
|
|
+ addItem(item)
|
|
|
+ } // Function addWindow()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 截断输出日志
|
|
|
+ * 解决Log打印不全的问题
|
|
|
+ */
|
|
|
+ fun println1(msg: String) {
|
|
|
+ var msg = msg
|
|
|
+ if (TextUtils.isEmpty(msg))
|
|
|
+ return
|
|
|
+ val segmentSize = 3 * 1024
|
|
|
+ val length = msg.length.toLong()
|
|
|
+ if (length <= segmentSize) {// 长度小于等于限制直接打印
|
|
|
+ Log.e("PLX", msg)
|
|
|
+ } else {
|
|
|
+ while (msg.length > segmentSize) {// 循环分段打印日志
|
|
|
+ val logContent = msg.substring(0, segmentSize)
|
|
|
+ msg = msg.replace(logContent, "")
|
|
|
+ Log.e("PLX", logContent)
|
|
|
+ }
|
|
|
+ Log.e("PLX", msg)// 打印剩余日志
|
|
|
+ }
|
|
|
+ }
|
|
|
+} // Class FloorScene
|