Bitbybit Docs
    Preparing search index...

    Class OCCTTransforms

    Menggeser, memutar, menskalakan dan mencerminkan bentuk OpenCascade, dan membangun matriks 4x4 yang menggambarkan perpindahan tersebut. Setiap metode mengembalikan bentuk baru dan membiarkan masukan apa adanya. Sudut dalam derajat, jarak dalam satuan model, dan sumbu rotasi melalui titik asal kecuali sebuah metode menerima pusat. Matriks adalah 16 angka dalam urutan column-major (translasi berada pada indeks 12 sampai 14); daftar matriks diterapkan dari pertama sampai terakhir sebagai satu perpindahan gabungan, yang merupakan cara transformByMatrix dan builder ...ToMatrix saling melengkapi.

    Index

    Constructors

    by matrix

    • Menerapkan matriks 4x4, atau daftar matriks yang diterapkan dari pertama sampai terakhir, ke sebuah bentuk.

      Matriksnya column-major, sehingga translasi berada di indeks 12 sampai 14. Matriks yang meregangkan atau menggeser diperbolehkan; bangun matriks dengan metode-metode ...ToMatrix dan gabungkan dengan multiplyTransforms. Matriks yang tidak dapat diterapkan kernel memicu error.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang ditransformasi

      const move = await bitbybit.occt.transforms.translationToMatrix({ translation: [10, 0, 0] });
      const turn = await bitbybit.occt.transforms.rotationAxisAngleToMatrix({ axis: [0, 1, 0], angle: 90, center: [0, 0, 0] });
      const placed = await bitbybit.occt.transforms.transformByMatrix({ shape: box, transformation: [turn, move] });
    • Menerapkan matriks 4x4 yang sama, atau daftar matriks yang diterapkan dari pertama sampai terakhir, ke beberapa bentuk, seperti transformByMatrix untuk satu bentuk.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang ditransformasi, dalam urutan yang sama

      const moved = await bitbybit.occt.transforms.transformShapesByMatrix({ shapes: [box, sphere], transformation: matrix });
      
    • Membaca penempatan yang dibawa sebuah bentuk, transformasi yang disimpan padanya dan bukan yang dibakar ke dalam geometrinya, sebagai matriks beserta translasi, kuaternion rotasi dan skala seragamnya.

      Bentuk yang ditempatkan dengan align atau melalui assembly membawa penempatan semacam itu; sebagian besar metode lain di sini membakar perpindahan ke dalam geometri, dan bentuk semacam itu melaporkan identitas.

      Parameters

      Returns Promise<ShapeTransformInfo>

      Matriks, translasi, kuaternion sebagai [x, y, z, w] dan skala

      const placement = await bitbybit.occt.transforms.getShapeTransform({ shape: movedBox });
      console.log(placement.translation, placement.scale);

    matrix builders

    • Membangun matriks identitas, transformasi yang tidak mengubah apa pun, sebagai titik awal untuk menyusun yang lain.

      Returns Promise<TransformMatrix>

      Matriks identitas, column-major

      const identity = await bitbybit.occt.transforms.identityTransform();
      
    • Membangun satu matriks dari translasi, tiga sudut rotasi dalam derajat mengelilingi X, Y dan Z, dan skala seragam.

      Skala diterapkan pertama, lalu rotasi-rotasi (Z pertama, lalu Y, lalu X), lalu translasi, yaitu urutan yang dipakai penempatan assembly. Bagian apa pun yang dikosongkan dianggap tanpa perubahan.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks gabungan, column-major

      const placement = await bitbybit.occt.transforms.composeTransform({ translation: [10, 0, 0], rotation: [0, 90, 0], scale: 1 });
      
    • Melipat daftar matriks menjadi satu, diterapkan dari pertama sampai terakhir, sehingga rantai perpindahan menjadi satu matriks.

      Matriks tunggal dikembalikan tanpa perubahan dan daftar kosong menghasilkan identitas.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks gabungan, column-major

      const combined = await bitbybit.occt.transforms.multiplyTransforms({ transformation: [turn, move] });
      
    • Membalik sebuah matriks, memberikan transformasi yang membatalkannya: menerapkan matriks lalu inversnya mengembalikan bentuk ke tempat semula.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks invers, column-major

      const back = await bitbybit.occt.transforms.invertTransform({ transformation: placement });
      
    • Membangun matriks perpindahan sejauh sebuah vektor, dalam satuan model.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks translasi, column-major

      const move = await bitbybit.occt.transforms.translationToMatrix({ translation: [10, 0, 0] });
      
    • Membangun matriks rotasi sebesar sudut dalam derajat mengelilingi sebuah sumbu, melalui titik asal atau melalui titik pusat opsional.

      Rotasi mengikuti aturan tangan kanan mengelilingi axis.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks rotasi, column-major

      const turn = await bitbybit.occt.transforms.rotationAxisAngleToMatrix({ axis: [0, 1, 0], angle: 90, center: [5, 0, 5] });
      
    • Membangun matriks skala seragam dengan sebuah faktor terhadap titik asal atau titik pusat opsional.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks skala, column-major

      const grow = await bitbybit.occt.transforms.scaleUniformToMatrix({ factor: 2, center: [0, 0, 0] });
      
    • Membangun matriks pencerminan melalui sebuah titik, transformasi yang diterapkan mirrorAboutPoint.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks cermin, column-major

      const invert = await bitbybit.occt.transforms.mirrorPointToMatrix({ point: [0, 0, 0] });
      
    • Membangun matriks pencerminan terhadap sebuah garis, transformasi yang diterapkan mirror: sumbu yang melewati origin sepanjang direction.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks cermin, column-major

      const flip = await bitbybit.occt.transforms.mirrorAxisToMatrix({ origin: [0, 0, 0], direction: [0, 1, 0] });
      
    • Membangun matriks pencerminan terhadap sebuah bidang, transformasi yang diterapkan mirrorAlongNormal: bidang yang melewati origin dengan normal yang diberikan.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks cermin, column-major

      const reflect = await bitbybit.occt.transforms.mirrorPlaneToMatrix({ origin: [0, 0, 0], normal: [1, 0, 0] });
      
    • Membangun matriks rotasi dari kuaternion yang diberikan sebagai [x, y, z, w].

      Kuaternion dinormalisasi terlebih dahulu, sehingga panjangnya tidak berpengaruh.

      Parameters

      Returns Promise<TransformMatrix>

      Matriks rotasi, column-major

      const turn = await bitbybit.occt.transforms.quaternionToMatrix({ quaternion: [0, 0.7071, 0, 0.7071] });
      

    on shapes

    • Menerapkan transform ke beberapa bentuk, masing-masing dengan translasi, sumbu rotasi, sudut dan faktor skalanya sendiri.

      Semua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang ditransformasi, dalam urutan yang sama

      const moved = await bitbybit.occt.transforms.transformShapes({
      shapes: [box, sphere],
      translations: [[10, 0, 0], [-10, 0, 0]],
      rotationAxes: [[0, 1, 0], [0, 1, 0]],
      rotationAngles: [45, 0],
      scaleFactors: [1, 2],
      });
    • Menerapkan rotate ke beberapa bentuk, masing-masing mengelilingi sumbunya sendiri yang melewati titik asal dan dengan sudutnya sendiri dalam derajat.

      Semua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang diputar, dalam urutan yang sama

      const turned = await bitbybit.occt.transforms.rotateShapes({ shapes: [box, sphere], axes: [[0, 1, 0], [1, 0, 0]], angles: [90, 45] });
      
    • Menerapkan rotateAroundCenter ke beberapa bentuk, masing-masing dengan sudut dalam derajat, pusat dan sumbunya sendiri.

      Semua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang diputar, dalam urutan yang sama

      const turned = await bitbybit.occt.transforms.rotateAroundCenterShapes({
      shapes: [box, sphere],
      angles: [90, 45],
      centers: [[5, 0, 5], [0, 0, 0]],
      axes: [[0, 1, 0], [0, 1, 0]],
      });
    • Menerapkan align ke beberapa bentuk, masing-masing dengan kerangka asal dan tujuannya sendiri.

      Semua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang disejajarkan, dalam urutan yang sama

      const placed = await bitbybit.occt.transforms.alignShapes({
      shapes: [cylinder, cylinder2],
      fromOrigins: [[0, 0, 0], [0, 0, 0]],
      fromDirections: [[0, 1, 0], [0, 1, 0]],
      toOrigins: [[10, 0, 0], [20, 0, 0]],
      toDirections: [[1, 0, 0], [0, 0, 1]],
      });
    • Menerapkan alignAndTranslate ke beberapa bentuk, masing-masing dengan arah dan pusatnya sendiri.

      Semua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang ditempatkan, dalam urutan yang sama

      const placed = await bitbybit.occt.transforms.alignAndTranslateShapes({
      shapes: [profile, profile2],
      directions: [[1, 0, 0], [0, 0, 1]],
      centers: [[10, 0, 0], [0, 0, 10]],
      });
    • Menerapkan translate ke beberapa bentuk, masing-masing sejauh vektornya sendiri.

      Kedua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang digeser, dalam urutan yang sama

      const moved = await bitbybit.occt.transforms.translateShapes({ shapes: [box, sphere], translations: [[10, 0, 0], [-10, 0, 0]] });
      
    • Menerapkan scale ke beberapa bentuk, masing-masing secara seragam terhadap titik asal dengan faktornya sendiri.

      Kedua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang diskalakan, dalam urutan yang sama

      const scaled = await bitbybit.occt.transforms.scaleShapes({ shapes: [box, sphere], factors: [2, 0.5] });
      
    • Menerapkan scale3d ke beberapa bentuk, masing-masing dengan tiga faktor dan pusatnya sendiri.

      Semua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang diskalakan, dalam urutan yang sama

      const scaled = await bitbybit.occt.transforms.scale3dShapes({
      shapes: [box, sphere],
      scales: [[1, 2, 1], [2, 2, 2]],
      centers: [[0, 0, 0], [10, 0, 0]],
      });
    • Menerapkan mirror ke beberapa bentuk, masing-masing terhadap sumbunya sendiri.

      Semua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang dicerminkan, dalam urutan yang sama

      const flipped = await bitbybit.occt.transforms.mirrorShapes({
      shapes: [box, sphere],
      origins: [[0, 0, 0], [0, 0, 0]],
      directions: [[0, 1, 0], [1, 0, 0]],
      });
    • Menerapkan mirrorAlongNormal ke beberapa bentuk, masing-masing terhadap bidangnya sendiri.

      Semua daftar harus sama panjang, atau error dipicu.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk yang dicerminkan, dalam urutan yang sama

      const others = await bitbybit.occt.transforms.mirrorAlongNormalShapes({
      shapes: [leftArm, leftLeg],
      origins: [[0, 0, 0], [0, 0, 0]],
      normals: [[1, 0, 0], [1, 0, 0]],
      });

    on single shape

    • Menskalakan, merotasi dan memindahkan sebuah bentuk sekaligus: pertama skala terhadap titik asal, lalu rotasi mengelilingi sumbu yang melewati titik asal, lalu translasi.

      Karena skala dan rotasi terjadi terhadap titik asal, bentuk yang tidak berada di sana juga berayun mengelilinginya; pindahkan dulu, atau gunakan rotateAroundCenter dan scale3d untuk pusat pilihan.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang ditransformasi

      const moved = await bitbybit.occt.transforms.transform({
      shape: box,
      translation: [10, 0, 0],
      rotationAxis: [0, 1, 0],
      rotationAngle: 45,
      scaleFactor: 2,
      });
    • Merotasi sebuah bentuk mengelilingi sumbu yang melewati titik asal, sebesar sudut dalam derajat.

      Rotasi mengikuti aturan tangan kanan: dengan ibu jari sepanjang axis, jari-jari menunjukkan arah positif. Bentuk yang jauh dari titik asal berayun mengelilinginya; rotateAroundCenter merotasi mengelilingi titik pilihan.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang diputar

      const turned = await bitbybit.occt.transforms.rotate({ shape: box, axis: [0, 1, 0], angle: 90 });
      
    • Merotasi sebuah bentuk mengelilingi sumbu yang melewati titik pilihan, sebesar sudut dalam derajat.

      Bentuk dipindahkan sehingga titik itu berada di titik asal, dirotasi di sana dengan aturan tangan kanan mengelilingi axis, dan dipindahkan kembali.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang diputar

      const turned = await bitbybit.occt.transforms.rotateAroundCenter({ shape: box, angle: 90, center: [5, 0, 5], axis: [0, 1, 0] });
      
    • Memindahkan sebuah bentuk sehingga satu titik dan arah padanya mendarat pada titik dan arah lain: kerangka fromOrigin dengan fromDirection dibawa ke toOrigin dengan toDirection.

      Inilah cara mendirikan bentuk di atas permukaan atau mengarahkannya sepanjang garis: bentuk dipindahkan sekaligus diputar, tidak pernah diskalakan.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang disejajarkan

      const standing = await bitbybit.occt.transforms.align({
      shape: cylinder,
      fromOrigin: [0, 0, 0],
      fromDirection: [0, 1, 0],
      toOrigin: [10, 5, 0],
      toDirection: [1, 0, 0],
      });
    • Memindahkan sebuah bentuk sehingga satu kerangka penuh padanya mendarat pada kerangka lain: sebuah titik, normalnya dan satu sumbu dalam bidang normal itu dibawa ke targetnya.

      Jika align menetapkan satu arah dan membiarkan putaran di sekelilingnya bebas, ini juga menetapkan putaran itu, yang berpengaruh untuk bentuk yang tidak bulat terhadap sumbunya.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang disejajarkan

      const placed = await bitbybit.occt.transforms.alignNormAndAxis({
      shape: bracket,
      fromOrigin: [0, 0, 0],
      fromNorm: [0, 1, 0],
      fromAx: [1, 0, 0],
      toOrigin: [10, 0, 0],
      toNorm: [0, 0, 1],
      toAx: [0, 1, 0],
      });
    • Memutar sebuah bentuk sehingga sumbu Y-nya mengarah sepanjang direction, lalu memindahkannya ke center.

      Bentuk-bentuk datar dan primitif dalam paket ini dibangun di tanah dengan Y ke atas, jadi inilah satu panggilan yang menempatkan semuanya: arahnya menjadi atas yang baru, dan pusatnya tempat bentuk berada.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang ditempatkan

      const placed = await bitbybit.occt.transforms.alignAndTranslate({ shape: profile, direction: [1, 0, 0], center: [10, 0, 0] });
      
    • Menskalakan sebuah bentuk secara seragam terhadap titik asal dengan sebuah faktor.

      Bentuk yang jauh dari titik asal juga bergerak menjauh darinya atau mendekatinya; scaleFromCenter menskalakan terhadap titik pilihan dan scale3d menskalakan setiap sumbu dengan faktornya sendiri.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang diskalakan

      const bigger = await bitbybit.occt.transforms.scale({ shape: box, factor: 2 });
      
    • Menskalakan sebuah bentuk dengan faktor terpisah sepanjang X, Y dan Z, terhadap titik pusat pilihan.

      Faktor yang tidak sama meregangkan bentuk, yang mengubah lingkaran menjadi elips dan dapat membuat operasi selanjutnya, seperti fillet, lebih lambat atau gagal; jaga faktor tetap sama jika bentuk hanya perlu membesar.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang diskalakan

      const stretched = await bitbybit.occt.transforms.scale3d({ shape: box, scale: [1, 2, 1], center: [0, 0, 0] });
      
    • Mencerminkan sebuah bentuk terhadap garis: sumbu yang melewati origin sepanjang direction.

      Setiap titik mendarat sejauh di belakang garis seperti jaraknya di depan, yang dalam 3D sama dengan setengah putaran mengelilingi sumbu itu.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang dicerminkan

      const flipped = await bitbybit.occt.transforms.mirror({ shape: box, origin: [0, 0, 0], direction: [0, 1, 0] });
      
    • Mencerminkan sebuah bentuk terhadap bidang yang diberikan oleh sebuah titik padanya dan normalnya.

      Inilah bayangan cermin yang biasa, jenis yang diperlukan bagian simetris; hasilnya terbalik dalam arti bentuk tangan kiri menjadi tangan kanan.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang dicerminkan

      const other = await bitbybit.occt.transforms.mirrorAlongNormal({ shape: leftHalf, origin: [0, 0, 0], normal: [1, 0, 0] });
      
    • Menskalakan sebuah bentuk secara seragam terhadap titik pilihan dengan sebuah faktor.

      Titik itu tetap di tempatnya dan segala sesuatu yang lain bergerak menjauh darinya atau mendekatinya.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang diskalakan

      const bigger = await bitbybit.occt.transforms.scaleFromCenter({ shape: box, factor: 2, center: [5, 0, 5] });
      
    • Mencerminkan sebuah bentuk melalui sebuah titik: setiap titik bentuk mendarat sejauh di seberang titik itu seperti jaraknya sebelumnya, di sisi yang berlawanan.

      Hasilnya terbalik, seperti cermin datar mengubah tangan kiri menjadi tangan kanan.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang dicerminkan

      const inverted = await bitbybit.occt.transforms.mirrorAboutPoint({ shape: box, point: [0, 0, 0] });
      
    • Merotasi sebuah bentuk terhadap titik asal dengan kuaternion yang diberikan sebagai [x, y, z, w].

      Kuaternion dinormalisasi terlebih dahulu, sehingga panjangnya tidak berpengaruh. Kuaternion adalah yang diberikan pustaka animasi dan fisika, jadi ini menghemat konversi ke sumbu dan sudut.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang diputar

      const turned = await bitbybit.occt.transforms.rotateByQuaternion({ shape: box, quaternion: [0, 0.7071, 0, 0.7071] });