Bitbybit Docs
    Preparing search index...

    Class ManifoldTransforms

    Mover, girar, escalar, reflejar y deformar sólidos Manifold. El núcleo combina las transformaciones de forma perezosa, así que encadenarlas es barato; los ángulos están en grados, y las rotaciones giran alrededor del origen, X primero, después Y, después Z. Cada método devuelve un sólido nuevo.

    Index

    Constructors

    matrix

    • Aplica una matriz 4x4 a un sólido.

      La matriz está ordenada por columnas, 16 números con la traslación en los índices 12 a 14; el núcleo la lee como una transformación afín 3x4 e ignora la última fila.

      Parameters

      Returns Promise<ManifoldPointer>

      El sólido transformado

      const moved = await bitbybit.manifold.manifold.transforms.transform({ manifold: cube, transform: matrix });
      
    • Aplica una lista de matrices 4x4 a un sólido una tras otra, de la primera a la última, y devuelve el resultado final.

      Una lista vacía lanza un error.

      Parameters

      Returns Promise<ManifoldPointer>

      El sólido tras todas las matrices

      const placed = await bitbybit.manifold.manifold.transforms.transforms({ manifold: cube, transforms: [turn, move] });
      

    multiple

    • Hace una copia movida de un sólido por cada vector, para distribuir repeticiones.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Una copia desplazada por vector, en el mismo orden

      const row = await bitbybit.manifold.manifold.transforms.translateByVectors({ manifold: cube, vectors: [[0, 0, 0], [10, 0, 0], [20, 0, 0]] });
      

    transforms

    • Mueve un sólido según distancias separadas a lo largo de X, Y y Z, en unidades del modelo.

      Parameters

      Returns Promise<ManifoldPointer>

      El sólido desplazado

      const moved = await bitbybit.manifold.manifold.transforms.translateXYZ({ manifold: cube, x: 10, y: 0, z: 5 });
      
    • Rota un sólido alrededor del origen según ángulos de Euler en grados: primero alrededor de X, luego Y, luego Z.

      Los múltiplos de 90 grados son exactos, sin error de redondeo.

      Parameters

      Returns Promise<ManifoldPointer>

      El sólido rotado

      const turned = await bitbybit.manifold.manifold.transforms.rotate({ manifold: cube, vector: [0, 0, 45] });
      
    • Rota un sólido alrededor del origen según ángulos separados en grados alrededor de X, luego Y, luego Z.

      Los múltiplos de 90 grados son exactos, sin error de redondeo.

      Parameters

      Returns Promise<ManifoldPointer>

      El sólido rotado

      const turned = await bitbybit.manifold.manifold.transforms.rotateXYZ({ manifold: cube, x: 0, y: 0, z: 45 });
      
    • Mueve cada vértice de un sólido con una función propia que cambia la posición del vértice en el sitio, para curvaturas, estrechamientos y otras deformaciones libres.

      La conectividad de la malla sigue igual y nada comprueba que el resultado siga teniendo sentido, así que una función que pliega la superficie sobre sí misma da un sólido roto.

      Parameters

      Returns Promise<ManifoldPointer>

      El sólido deformado

      const bent = await bitbybit.manifold.manifold.transforms.warp({
      manifold: cube,
      warpFunc: (vert) => { vert[0] += vert[2] * 0.2; },
      });