Skip to content
导览

标注管理 MarkManager

标注管理是用于控制云渲染标注元素的工具,通过获取该管理器,用户可以方便地进行标注元素的控制和管理。 该工具的主要功能包括:

  1. 根据层名获取标注层对象
  2. 清除所有图层及其标注
  3. 移除对应层
  4. 获取所有层
  5. 创建标注
  6. 更新图层标注样式
  7. 更新某一标注对象样式数据
  8. 根据url批量创建层以及层中的标注
  9. 根据标注json对象批量创建层以及层中的标注

我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。

MarkManager

用户可以调用云渲染实例 cloud 上的 getMarkManager() 方法来获取 MarkManager 标注元素管理器。

ts
const markManager = await cloud.getMarkManager()
const markManager = await cloud.getMarkManager()

用户调用 cloud.getMarkManager() 后,MarkManager 会被自动挂载到当前 cloud 实例上。

ts
await cloud.getMarkManager()
const markManager = cloud.getMarkManager
await cloud.getMarkManager()
const markManager = cloud.getMarkManager

根据层名获取标注层对象 | getMarkLayerByName

  • 说明:根据层名获取标注层对象

我们可以调用 MarkManager 上面的 getMarkLayerByName 方法来根据层名获取标注层对象。

  • 参数说明
NameTypeDescription
layerNamestring层名

调用示例:

ts
const markManager = await cloud.getMarkManager()
await markManager.getMarkLayerByName("tuceng")
const markManager = await cloud.getMarkManager()
await markManager.getMarkLayerByName("tuceng")

清除所有图层及其标注 | clearAllLayer

  • 说明:清除所有图层及其标注

我们可以调用 MarkManager 上面的 clearAllLayer 方法来清除所有图层及其标注。

调用示例:

ts
const markManager = await cloud.getMarkManager()
await markManager.clearAllLayer()
const markManager = await cloud.getMarkManager()
await markManager.clearAllLayer()

移除对应层 | removeMarkLayer

  • 说明:移除对应层

我们可以调用 MarkManager 上面的 removeMarkLayer 方法来移除对应层。

  • 参数说明
NameTypeDescription
layerListMarkLayer[]层列表

调用示例:

ts
const markManager = await cloud.getMarkManager()
var layerList = await markManager.getAllMarkLayer()
await markManager.removeMarkLayer(layerList)
const markManager = await cloud.getMarkManager()
var layerList = await markManager.getAllMarkLayer()
await markManager.removeMarkLayer(layerList)

获取所有层 | getAllMarkLayer

  • 说明:获取所有层

我们可以调用 MarkManager 上面的 getAllMarkLayer 方法来获取所有层。

调用示例:

ts
const markManager = await cloud.getMarkManager()
const layerList = await markManager.getAllMarkLayer()
const markManager = await cloud.getMarkManager()
const layerList = await markManager.getAllMarkLayer()

创建标注 | createMark

  • 说明:创建标注

我们可以调用 MarkManager 上面的 createMark 方法来创建标注。

  • 参数说明
NameTypeDescription
layerNamestring层名
markStylenull | MarkStyle标注样式
markDataMarkData标注数据

调用示例:

ts
const markStyle = {
 dimLineColor: 0xffff0000,
 fontLabelStyle: {
     face: '宋体',
     color: 0xffffff00,
     size: 30,
     fontLabelPos: 6,
     backgroundColor: 0xeeff0000,
     height: 35,
     textScale: 0.4,
     outLineColor: 0xff000000,
     outLineWide: 0,
     borderColor: 0xffff0000,
     fontDir:0,
     fontOff:0.01
 },
labelType: 'space',
accuracy: 3,
geometryStyle: {
    cylinderRadius: 0.01,
    rigthConeRadius: 0.02,
    rigthConeHeight: 0.10
}
}
const textStyle = {
type: "textMark",
style: markStyle,
skewLeadLength: 1,
flatLeadLength: 0.6,
slopeAngle: 60
}
const textData = {
type: "textMark",
normalDir: {x:1, z:1, y:1},
pos: {X:6.0, y:11.5, z:5.0},
content :"22"
}
const markManager = await cloud.getMarkManager()
await markManager.CreateMark("1",textStyle,textData)
const markStyle = {
 dimLineColor: 0xffff0000,
 fontLabelStyle: {
     face: '宋体',
     color: 0xffffff00,
     size: 30,
     fontLabelPos: 6,
     backgroundColor: 0xeeff0000,
     height: 35,
     textScale: 0.4,
     outLineColor: 0xff000000,
     outLineWide: 0,
     borderColor: 0xffff0000,
     fontDir:0,
     fontOff:0.01
 },
labelType: 'space',
accuracy: 3,
geometryStyle: {
    cylinderRadius: 0.01,
    rigthConeRadius: 0.02,
    rigthConeHeight: 0.10
}
}
const textStyle = {
type: "textMark",
style: markStyle,
skewLeadLength: 1,
flatLeadLength: 0.6,
slopeAngle: 60
}
const textData = {
type: "textMark",
normalDir: {x:1, z:1, y:1},
pos: {X:6.0, y:11.5, z:5.0},
content :"22"
}
const markManager = await cloud.getMarkManager()
await markManager.CreateMark("1",textStyle,textData)

更新图层标注样式 | updateLayerStyle

  • 说明:更新图层标注样式

我们可以调用 MarkManager 上面的 updateLayerStyle 方法来更新图层标注样式。

  • 参数说明
NameTypeDescription
layerNamestring层名
markStylenull | MarkStyle标注样式
markDataMarkData标注数据

调用示例:

ts
const markStyle: MarkUniversalStyle = {
 dimLineColor: 0xffff0000,
 fontLabelStyle: {
     face: '宋体',
    color: 0xffffff00,
     size: 30,
     fontLabelPos: 6,
     backgroundColor: 0xeeff0000,
     height: 35,
     textScale: 0.4,
     outLineColor: 0xff000000,
     outLineWide: 0,
     borderColor: 0xffff0000,
     fontDir:0,
     fontOff:0.01
 },
labelType: 'space',
accuracy: 3,
geometryStyle: {
cylinderRadius: 0.01,
rigthConeRadius: 0.02,
rigthConeHeight: 0.10
}
}
const textStyle: TextMarkStyle = {
type: "textMark",
style: markStyle,
skewLeadLength: 1,
flatLeadLength: 0.6,
slopeAngle: 60
}
const textData: TextMarkData = {
type: "textMark",
normalDir: {x:1, z:1, y:1},
pos: {X:6.0, y:11.5, z:5.0},
content :"22"
}
const layerNameList = ['1','qq']
const markManager = await cloud.getMarkManager()
await markManager.updateLayerStyle(layerNameList,textStyle,textData)
const markStyle: MarkUniversalStyle = {
 dimLineColor: 0xffff0000,
 fontLabelStyle: {
     face: '宋体',
    color: 0xffffff00,
     size: 30,
     fontLabelPos: 6,
     backgroundColor: 0xeeff0000,
     height: 35,
     textScale: 0.4,
     outLineColor: 0xff000000,
     outLineWide: 0,
     borderColor: 0xffff0000,
     fontDir:0,
     fontOff:0.01
 },
labelType: 'space',
accuracy: 3,
geometryStyle: {
cylinderRadius: 0.01,
rigthConeRadius: 0.02,
rigthConeHeight: 0.10
}
}
const textStyle: TextMarkStyle = {
type: "textMark",
style: markStyle,
skewLeadLength: 1,
flatLeadLength: 0.6,
slopeAngle: 60
}
const textData: TextMarkData = {
type: "textMark",
normalDir: {x:1, z:1, y:1},
pos: {X:6.0, y:11.5, z:5.0},
content :"22"
}
const layerNameList = ['1','qq']
const markManager = await cloud.getMarkManager()
await markManager.updateLayerStyle(layerNameList,textStyle,textData)

根据url批量创建层以及层中的标注 | addMarkByUrl

  • 说明:根据url批量创建层以及层中的标注

我们可以调用 MarkManager 上面的 addMarkByUrl 方法来根据url批量创建层以及层中的标注。

  • 参数说明
NameTypeDescription
urlstringurl地址

调用示例:

ts
{
"marks": [
  {
      "layerName": "焊点",
      "markList": [
          {
              "markstyle": {
                  "type": "textMark",
                  "style": {
                      "dimLineColor": "0xff87ceeb",
                      "fontLabelStyle": {
                          "face": "宋体",
                          "color": "0xff87ceeb",
                          "size": 30,
                          "fontLabelPos": 6,
                          "backgroundColor": "0x00ff0000",
                          "height": 35,
                          "textScale": 0.4,
                          "outLineColor": "0x00000000",
                          "outLineWide": 0,
                          "borderColor": "0x00000000",
                          "fontDir": 0,
                          "fontOff": 0.01
                      },
                      "labelType": "space",
                      "accuracy": 3,
                      "geometryStyle": {
                          "cylinderRadius": 0.001,
                          "rigthConeRadius": 0.002,
                          "rigthConeHeight": 0.008
                      }
                  },
                  "skewLeadLength": 1,
                  "flatLeadLength": 0.6,
                  "slopeAngle": 60
              },
              "markData": {
                  "type": "textMark",
                  "normalDir": {
                      "x": 0,
                      "y": 1,
                      "z": 0
                  },
                  "extensionDir": {
                      "x": 1,
                      "y": 1,
                      "z": 1
                  },
                  "pos": {
                      "x": 6.0,
                      "y": 11.5,
                      "z": 5.0
                  },
                  "content": "22"
              }
          }
      ],
  }
]
}

const markManager = await cloud.getMarkManager()
const import = await markManager.addMarkByUrl('http://127.0.0.1/a')
{
"marks": [
  {
      "layerName": "焊点",
      "markList": [
          {
              "markstyle": {
                  "type": "textMark",
                  "style": {
                      "dimLineColor": "0xff87ceeb",
                      "fontLabelStyle": {
                          "face": "宋体",
                          "color": "0xff87ceeb",
                          "size": 30,
                          "fontLabelPos": 6,
                          "backgroundColor": "0x00ff0000",
                          "height": 35,
                          "textScale": 0.4,
                          "outLineColor": "0x00000000",
                          "outLineWide": 0,
                          "borderColor": "0x00000000",
                          "fontDir": 0,
                          "fontOff": 0.01
                      },
                      "labelType": "space",
                      "accuracy": 3,
                      "geometryStyle": {
                          "cylinderRadius": 0.001,
                          "rigthConeRadius": 0.002,
                          "rigthConeHeight": 0.008
                      }
                  },
                  "skewLeadLength": 1,
                  "flatLeadLength": 0.6,
                  "slopeAngle": 60
              },
              "markData": {
                  "type": "textMark",
                  "normalDir": {
                      "x": 0,
                      "y": 1,
                      "z": 0
                  },
                  "extensionDir": {
                      "x": 1,
                      "y": 1,
                      "z": 1
                  },
                  "pos": {
                      "x": 6.0,
                      "y": 11.5,
                      "z": 5.0
                  },
                  "content": "22"
              }
          }
      ],
  }
]
}

const markManager = await cloud.getMarkManager()
const import = await markManager.addMarkByUrl('http://127.0.0.1/a')

根据标注json对象批量创建层以及层中的标注 | addMarkByJson

  • 说明:根据标注json对象批量创建层以及层中的标注

我们可以调用 MarkManager 上面的 addMarkByJson 方法来根据标注json对象批量创建层以及层中的标注。

  • 参数说明
NameTypeDescription
marksobject标注json对象

调用示例:

ts
"marks": [
  {
      "layerName": "焊点",
      "markList": [
          {
              "markstyle": {
                  "type": "textMark",
                  "style": {
                      "dimLineColor": "0xff87ceeb",
                      "fontLabelStyle": {
                          "face": "宋体",
                          "color": "0xff87ceeb",
                          "size": 30,
                          "fontLabelPos": 6,
                          "backgroundColor": "0x00ff0000",
                          "height": 35,
                          "textScale": 0.4,
                          "outLineColor": "0x00000000",
                          "outLineWide": 0,
                          "borderColor": "0x00000000",
                          "fontDir": 0,
                          "fontOff": 0.01
                      },
                      "labelType": "space",
                      "accuracy": 3,
                      "geometryStyle": {
                          "cylinderRadius": 0.001,
                          "rigthConeRadius": 0.002,
                          "rigthConeHeight": 0.008
                      }
                  },
                  "skewLeadLength": 1,
                  "flatLeadLength": 0.6,
                  "slopeAngle": 60
              },
              "markData": {
                  "type": "textMark",
                  "normalDir": {
                      "x": 0,
                      "y": 1,
                      "z": 0
                  },
                  "extensionDir": {
                      "x": 1,
                      "y": 1,
                      "z": 1
                  },
                  "pos": {
                      "x": 6.0,
                      "y": 11.5,
                      "z": 5.0
                  },
                  "content": "22"
              }
          }
      ],
  }
]

const markManager = await cloud.getMarkManager()
const import = await markManager.addMarkByJson(marks)
"marks": [
  {
      "layerName": "焊点",
      "markList": [
          {
              "markstyle": {
                  "type": "textMark",
                  "style": {
                      "dimLineColor": "0xff87ceeb",
                      "fontLabelStyle": {
                          "face": "宋体",
                          "color": "0xff87ceeb",
                          "size": 30,
                          "fontLabelPos": 6,
                          "backgroundColor": "0x00ff0000",
                          "height": 35,
                          "textScale": 0.4,
                          "outLineColor": "0x00000000",
                          "outLineWide": 0,
                          "borderColor": "0x00000000",
                          "fontDir": 0,
                          "fontOff": 0.01
                      },
                      "labelType": "space",
                      "accuracy": 3,
                      "geometryStyle": {
                          "cylinderRadius": 0.001,
                          "rigthConeRadius": 0.002,
                          "rigthConeHeight": 0.008
                      }
                  },
                  "skewLeadLength": 1,
                  "flatLeadLength": 0.6,
                  "slopeAngle": 60
              },
              "markData": {
                  "type": "textMark",
                  "normalDir": {
                      "x": 0,
                      "y": 1,
                      "z": 0
                  },
                  "extensionDir": {
                      "x": 1,
                      "y": 1,
                      "z": 1
                  },
                  "pos": {
                      "x": 6.0,
                      "y": 11.5,
                      "z": 5.0
                  },
                  "content": "22"
              }
          }
      ],
  }
]

const markManager = await cloud.getMarkManager()
const import = await markManager.addMarkByJson(marks)