Bitbybit Docs
    Preparing search index...

    Class MeshEvaluate

    读取 Manifold 网格数据:顶点的位置和额外属性、三角形的顶点、半边的切线、三角形运行段的变换,以及属性、顶点、三角形和运行段的数量。索引从 0 开始。

    Index

    Constructors

    basic

    • 按逆时针顺序读取网格一个三角形的三个顶点索引。

      Parameters

      Returns Promise<number[]>

      三个顶点索引

      const corners = await bitbybit.manifold.mesh.evaluate.verts({ mesh, triangleIndex: 0 });
      
    • 读取平滑网格一条半边的切线:曲面离开该边起点顶点的方向,以三个数值加一个权重表示。

      半边索引为三角形索引的三倍加 j,即三角形 t 从其第 j 个顶点开始的边;没有平滑切线的网格没有切线。

      Parameters

      Returns Promise<number[]>

      [x, y, z, weight] 表示的切线

      const tangent = await bitbybit.manifold.mesh.evaluate.tangent({ mesh: smoothedMesh, halfEdgeIndex: 0 });
      
    • 读取一个顶点除位置以外的属性,例如存储在额外通道中的法线或颜色。

      Parameters

      Returns Promise<number[]>

      额外的属性值,按通道顺序排列

      const props = await bitbybit.manifold.mesh.evaluate.extras({ mesh, vertexIndex: 0 });
      
    • 读取将原始网格带到一个三角形游程上的列主序 4x4 矩阵,即该实例的放置信息。

      Parameters

      Returns Promise<number[]>

      矩阵的 16 个数值

      const placement = await bitbybit.manifold.mesh.evaluate.transform({ mesh, triangleRunIndex: 0 });
      
    • 判断某个三角形段的朝向是否与其来源的原始网格相反,例如减法留下的内表面。仅供参考:网格输出的法线已按结果定向。

      Parameters

      Returns Promise<boolean>

      该段为背面时为真

      const flipped = await bitbybit.manifold.mesh.evaluate.backside({ mesh, triangleRunIndex: 0 });
      
    • 判断某个三角形段的前三个额外属性通道是否保存顶点法线,manifold.operations.calculateNormals 会把法线写在那里。

      Parameters

      Returns Promise<boolean>

      该段在其属性中携带法线时为真

      const lit = await bitbybit.manifold.mesh.evaluate.hasNormals({ mesh, triangleRunIndex: 0 });
      
    • 统计网格每个顶点携带的属性通道;仅位置就占三个。

      Parameters

      Returns Promise<number>

      每个顶点的属性数量

      const channels = await bitbybit.manifold.mesh.evaluate.numProp({ mesh });
      
    • 统计网格的属性顶点,在相邻三角形携带不同属性处它可能超过几何顶点数。

      Parameters

      Returns Promise<number>

      顶点数量

      const vertices = await bitbybit.manifold.mesh.evaluate.numVert({ mesh });
      
    • 统计网格的三角形,它们共同构成其整个表面。

      Parameters

      Returns Promise<number>

      三角形数量

      const triangles = await bitbybit.manifold.mesh.evaluate.numTri({ mesh });
      
    • 统计网格的三角形游程:每个游程是一段来自同一输入形状同一实例的连续三角形。

      Parameters

      Returns Promise<number>

      运行段数量

      const runs = await bitbybit.manifold.mesh.evaluate.numRun({ mesh });