Bitbybit Docs
    Preparing search index...

    Class ManifoldEvaluate

    Medir sólidos Manifold e ler a sua contabilidade: área da superfície e volume, contagens de vértices, triângulos e arestas, a caixa delimitadora, a tolerância, o género, a folga até outro sólido, e o id e o estado que o kernel acompanha para cada sólido. Nada aqui altera o sólido.

    Index

    Constructors

    basic

    • Mede a área de superfície total de um sólido, em unidades do modelo quadradas.

      Parameters

      Returns Promise<number>

      A área da superfície

      const area = await bitbybit.manifold.manifold.evaluate.surfaceArea({ manifold: cube });
      
    • Mede o volume de um sólido, em unidades do modelo cúbicas.

      Parameters

      Returns Promise<number>

      O volume

      const volume = await bitbybit.manifold.manifold.evaluate.volume({ manifold: cube });
      
    • Indica se um sólido não tem triângulos de todo, como aconteceria com o resultado de uma interseção de formas que não se sobrepõem.

      Parameters

      Returns Promise<boolean>

      True quando o sólido está vazio

      const empty = await bitbybit.manifold.manifold.evaluate.isEmpty({ manifold: shape });
      
    • Conta os vértices da malha de um sólido, os cantos que os seus triângulos partilham.

      Parameters

      Returns Promise<number>

      O número de vértices

      const vertices = await bitbybit.manifold.manifold.evaluate.numVert({ manifold: shape });
      
    • Conta os triângulos da malha de um sólido, que são toda a sua superfície.

      Parameters

      Returns Promise<number>

      O número de triângulos

      const triangles = await bitbybit.manifold.manifold.evaluate.numTri({ manifold: shape });
      
    • Conta as arestas da malha de um sólido, cada uma partilhada por dois triângulos.

      Parameters

      Returns Promise<number>

      O número de arestas

      const edges = await bitbybit.manifold.manifold.evaluate.numEdge({ manifold: shape });
      
    • Conta os canais de propriedades que cada vértice de um sólido transporta; só a posição ocupa três.

      Parameters

      Returns Promise<number>

      O número de propriedades por vértice

      const channels = await bitbybit.manifold.manifold.evaluate.numProp({ manifold: shape });
      
    • Conta os vértices de propriedades de um sólido, que é pelo menos numVert: um vértice cujos triângulos vizinhos transportam propriedades diferentes, como uma aresta viva com duas normais, é guardado mais do que uma vez.

      Parameters

      Returns Promise<number>

      O número de vértices de propriedades

      const propVertices = await bitbybit.manifold.manifold.evaluate.numPropVert({ manifold: shape });
      
    • Encontra a caixa alinhada com os eixos à volta de todos os vértices de um sólido.

      Parameters

      Returns Promise<Vector3[]>

      O canto mínimo e o canto máximo

      const [min, max] = await bitbybit.manifold.manifold.evaluate.boundingBox({ manifold: shape });
      
    • Lê a tolerância de um sólido, o erro de arredondamento que se acumulou ao longo das transformações e operações que o criaram.

      Triângulos mais finos do que isto são tratados como degenerados e removidos.

      Parameters

      Returns Promise<number>

      A tolerância em unidades do modelo

      const tolerance = await bitbybit.manifold.manifold.evaluate.tolerance({ manifold: shape });
      
    • Conta os furos que atravessam um sólido, tal como um anel tem um e uma esfera nenhum.

      Só faz sentido para um único pedaço ligado, por isso execute primeiro operations.decompose num sólido feito de vários.

      Parameters

      Returns Promise<number>

      O número de furos que atravessam o sólido

      const holes = await bitbybit.manifold.manifold.evaluate.genus({ manifold: shape });
      
    • Mede a menor distância entre dois sólidos, procurando não mais longe do que searchLength.

      O resultado está entre 0 e o comprimento de procura.

      Parameters

      Returns Promise<number>

      A menor folga entre eles

      const gap = await bitbybit.manifold.manifold.evaluate.minGap({ manifold1: cube, manifold2: sphere, searchLength: 100 });
      
    • Lê o id de um sólido que é um original, tal como operations.asOriginal ou um sólido acabado de construir o cria; um sólido produzido a partir de outros por uma operação reporta -1.

      Parameters

      Returns Promise<number>

      O id original, ou -1

      const id = await bitbybit.manifold.manifold.evaluate.originalID({ manifold: shape });
      
    • Indica porque um sólido saiu vazio: NoError, ou uma razão como NotManifold ou InvalidConstruction quando a malha a partir da qual foi construído não era uma superfície fechada.

      O estado é transportado pelas operações posteriores, para que uma entrada estragada não se perca; um sólido vazio pode ainda assim reportar NoError, como acontece ao intersetar formas que não se sobrepõem.

      Parameters

      Returns Promise<string>

      O nome do estado

      const status = await bitbybit.manifold.manifold.evaluate.status({ manifold: shape });
      

    spatial

    • Lança um segmento de raio de um ponto a outro e lista cada lugar onde ele cruza a superfície de um sólido, o mais próximo primeiro; uma lista vazia quando falha.

      Um impacto carrega o ponto, a normal nesse lugar, o id da face original e a sua distância ao longo do segmento como fração do comprimento do segmento.

      Parameters

      Returns Promise<RayHit[]>

      Os impactos ordenados por distância

      const hits = await bitbybit.manifold.manifold.evaluate.rayCast({ manifold: shape, origin: [0, 10, 0], endpoint: [0, -10, 0] });