Fungsi gluBeginTrim
Fungsi gluBeginTrim dan gluEndTrim memisahkan definisi perulangan pemangkasan B-Spline Rasional Non-Seragam (NURBS).
Sintaks
void WINAPI gluBeginTrim(
GLUnurbs *nobj
);
Parameter
-
nobj
-
Objek NURBS (dibuat dengan gluNewNurbsRenderer).
Menampilkan nilai
Fungsi ini tidak mengembalikan nilai.
Keterangan
Gunakan gluBeginTrim untuk menandai awal perulangan pemangkasan, dan gluEndTrim untuk menandai akhir perulangan pemangkasan. Perulangan pemangkasan adalah sekumpulan segmen kurva berorientasi (membentuk kurva tertutup) yang menentukan batas permukaan NURBS. Anda menyertakan perulangan pemangkasan ini dalam definisi permukaan NURBS, antara panggilan ke gluBeginSurface dan gluEndSurface.
Definisi untuk permukaan NURBS dapat berisi banyak perulangan pemangkasan. Misalnya, jika Anda menulis definisi untuk permukaan NURBS yang menyerupai persegi panjang dengan lubang yang ditinju keluar, definisi akan berisi dua perulangan pemangkasan. Satu perulangan akan menentukan tepi luar persegi panjang; yang lain akan mendefinisikan lubang punched-out. Definisi dari masing-masing loop pemangkasan ini akan dikurung oleh pasangan gluBeginTrim / gluEndTrim .
Definisi loop pemangkasan tertutup tunggal dapat terdiri dari beberapa segmen kurva, masing-masing digambarkan sebagai serangkaian segmen garis yang membentuk kurva linier (lihat gluPwlCurve), sebagai kurva NURBS tunggal (lihat gluNurbsCurve), atau sebagai kombinasi keduanya dalam urutan apa pun. Satu-satunya panggilan pustaka yang dapat muncul dalam definisi trimming-loop (antara panggilan ke gluBeginTrim dan gluEndTrim) adalah gluPwlCurve dan gluNurbsCurve.
Area yang ditampilkan dari permukaan NURBS adalah wilayah di domain di sebelah kiri kurva pemangkasan saat parameter kurva meningkat. Dengan demikian, wilayah yang dipertahankan dari permukaan NURBS berada di dalam perulangan pemangkasan berlawanan arah jaring dan di luar perulangan pemangkasan searah jaring. Untuk persegi panjang yang disebutkan sebelumnya, perulangan pemangkasan untuk tepi luar persegi panjang berjalan berlawanan arah jarum jam, sementara perulangan pemangkasan untuk lubang yang ditinju berjalan searah jarum jam.
Jika Anda menggunakan lebih dari satu kurva untuk menentukan perulangan pemangkasan tunggal, segmen kurva harus membentuk perulangan tertutup (yaitu, titik akhir setiap kurva harus menjadi titik awal kurva berikutnya, dan titik akhir kurva akhir harus menjadi titik awal kurva pertama). Jika titik akhir kurva cukup berdekatan tetapi tidak persis bersamaan, mereka akan dipaksa untuk mencocokkan. Jika titik akhir tidak cukup dekat, hasil kesalahan (lihat gluNurbsCallback).
Jika definisi trimming-loop berisi beberapa kurva, arah kurva harus konsisten (yaitu, bagian dalam harus berada di sebelah kiri semua kurva). Anda dapat menggunakan perulangan pemangkasan berlapis selama orientasi kurva bergantian dengan benar. Kurva pemangkasan tidak dapat berpotongan sendiri, juga tidak dapat berpotongan satu sama lain (atau hasil kesalahan).
Jika tidak ada informasi pemangkasan yang diberikan untuk permukaan NURBS, seluruh permukaan digambar.
Contoh
Fragmen kode ini mendefinisikan perulangan pemangkasan yang terdiri dari satu kurva linier sepotong dan dua kurva NURBS:
gluBeginTrim(nobj);
gluPwlCurve(. . ., GLU_MAP1_TRIM_2);
gluNurbsCurve(. . ., GLU_MAP1_TRIM_2);
gluNurbsCurve(. . ., GLU_MAP1_TRIM_3);
gluEndTrim(nobj);
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Header |
|
Pustaka |
|
DLL |
|