WebCAD-Lib-TS API 文档 - v1.0.0
    Preparing search index...

    Class BucketEntityRenderer

    支持桶渲染的实体渲染器 扩展了 EntityRenderer,增加了基于索引分桶的局部渲染功能

    Hierarchy (View Summary)

    Index

    Constructors

    • 构造函数

      Parameters

      • cadGraphics: CadGraphics

        CAD图形对象(传统模式使用)

      • highLightGraphics: CadGraphics

        高亮图形对象

      • previewGraphics: CadGraphics

        预览图形对象

      • blockRefsContainer: Container

        块引用容器

      • OptionalmodelContainer: Container

        模型容器(用于桶渲染)

      • OptionalbucketConfig: GraphicsBucketManagerConfig

        桶配置

      Returns BucketEntityRenderer

    Properties

    cadGraphics: CadGraphics
    highLightGraphics: CadGraphics
    previewGraphics: CadGraphics
    brefsContainer: Container

    Methods

    • 设置是否使用桶渲染模式

      Parameters

      • enabled: boolean

        是否启用

      Returns void

    • 获取是否使用桶渲染模式

      Returns boolean

    • 重新生成(局部更新) 只重新渲染标记为脏的桶

      Parameters

      Returns number

      重新渲染的桶数量,如果使用传统模式返回-1

    • 全量重新生成 标记所有桶为脏并重新渲染

      Parameters

      Returns void

    • 高效处理实体添加,只在对应桶上增量绘制

      Parameters

      • entity: EntityBase

        新添加的实体

      • index: number

        实体在数组中的索引

      • totalCount: number

        添加后的实体总数

      Returns void

    • 数据层直接批量添加实体时调用,确保桶结构与脏标记同步

      Parameters

      • startIndex: number

        新增实体的起始索引

      • addedCount: number

        新增实体数量

      • totalCount: number

        添加后的实体总数

      Returns void

    • 处理实体修改

      Parameters

      • index: number

        修改的实体索引

      Returns void

    • 处理实体删除(标记删除)

      Parameters

      • index: number

        删除的实体索引

      Returns void

    • 处理多个实体修改

      Parameters

      • indices: number[]

        修改的实体索引数组

      Returns void

    • 获取桶管理器统计信息

      Returns {
          bucketCount: number;
          dirtyBucketCount: number;
          totalCapacity: number;
          averageFragmentation: number;
      }

    • 清理桶管理器

      Returns void

    • 更新所有桶的像素点绘制 当缩放级别变化时调用,确保所有桶的像素点保持正确的屏幕大小

      Returns void

    • 检查是否有任何桶需要更新像素点

      Parameters

      • currentZoom: number

        当前缩放级别

      Returns boolean

      是否需要更新

    • 销毁渲染器

      Returns void

    • Parameters

      • position: { x: number; y: number }
      • useRenderOriginOffset: boolean = false

      Returns void

    • Parameters

      • rotation: number

      Returns void

    • Parameters

      • scaleX: number
      • scaleY: number

      Returns void

    • Parameters

      • pivot: { x: number; y: number }

      Returns void

    • 绘制预览实体数组

      Parameters

      • entityArray: EntityBase[]

        实体数组

      • useHighlight: boolean = false

        是否强制渲染(忽略图层检查)

      • skipAutoDetectRelativeCoords: boolean = false

        是否跳过自动检测相对坐标(用于需要精确控制渲染原点偏移的场景)

      Returns void

    • Parameters

      • entity: EntityBase
      • drawMode: number
      • parentLayerId: string

      Returns number

    • Parameters

      • entity: EntityBase
      • drawMode: number
      • graphics: CadGraphics
      • parentLayerId: string = null

      Returns void

    • Parameters

      • insertEntity: InsertEnt
      • graphics: CadGraphics
      • drawMode: number
      • currentAlpha: number
      • newAlpha: number = undefined
      • isDirectDraw: boolean = false

      Returns void

    • 处理嵌套实体的属性文本替换

      重要说明: 属性文本的替换现在已经在 InsertEnt.updateNestEnts() 中完成。 这个方法保留是为了向后兼容,直接返回嵌套实体数组。

      Parameters

      • nestEntities: EntityBase[]

        嵌套实体数组(已应用块参照变换和属性替换)

      • insertEnt: InsertEnt

        块插入实体(不再使用,保留参数以兼容)

      • blockDef: { items: EntityBase[] }

        块定义(不再使用,保留参数以兼容)

      Returns EntityBase[]

      嵌套实体数组(直接返回,不再克隆)

    • 检查两个位置是否匹配

      Parameters

      • pos1: { x: number; y: number }

        位置1

      • pos2: { x: number; y: number }

        位置2

      • tolerance: number = 0.01

        容差

      Returns boolean

      是否匹配

    • Parameters

      • arcEntity: ArcEnt
      • graphics: CadGraphics
      • color: number
      • alpha: number

      Returns void

    • Parameters

      • angle: number

      Returns number

    • Parameters

      • circleEntity: CircleEnt
      • graphics: CadGraphics
      • color: number
      • alpha: number

      Returns void

    • Parameters

      • ellipseEntity: EllipseEnt
      • graphics: CadGraphics
      • color: number
      • alpha: number

      Returns void

    • Parameters

      • rayEntity: RayEnt
      • graphics: CadGraphics
      • color: number
      • alpha: number

      Returns void

    • Parameters

      • xlineEntity: XLineEnt
      • graphics: CadGraphics
      • color: number
      • alpha: number

      Returns void

    • Parameters

      • lineEntity: LineEnt
      • graphics: CadGraphics
      • color: number
      • alpha: number

      Returns void

    • 绘制矢量文本 关键修复:支持多颜色文本(复杂格式化的MTEXT)

      Parameters

      • textEntity: TextEnt | MTextEnt

        文本实体

      • graphics: CadGraphics

        图形对象

      • color: number

        默认颜色

      • alpha: number

        默认透明度

      Returns void

    • 绘制多边形组

      Parameters

      • graphics: CadGraphics

        图形对象

      • polygons: any[]

        多边形数组(支持两种格式: 扁平格式 [{points}] 或嵌套格式 [{polygons: [{points}], rgbColor, alpha}])

      • color: number

        颜色

      • alpha: number

        透明度

        重要说明:

        • 不再依赖 isHole / polygonIsHole,也不再在前端自行计算面积、点在多边形等关系。
        • 对于 TrueType/OpenType 字体,WASM 端保证同一 glyph 内:外轮廓与内部孔洞的环绕方向相反。
        • 这里在同一次 beginFill / endFill 中依次输出所有闭合子路径,交给 PixiJS/earcut 按缠绕方向和包含关系自动识别孔洞。

      Returns void

    • 绘制文本线条(用于型文件/SHX字体)

      Parameters

      • graphics: CadGraphics

        图形对象

      • lines: {
            vertices: { x: number; y: number }[];
            color: number;
            position: { x: number; y: number };
        }[]

        线条数组,格式:Array<{vertices: Array<{x, y}>, color: number, position: {x, y}}>

      • defaultColor: number

        默认颜色

      • defaultAlpha: number

        默认透明度

      Returns void