fungsi glMap1d

Fungsi glMap1d dan glMap1f menentukan evaluator satu dimensi.

Sintaks

void WINAPI glMap1d(
         GLenum   target,
         GLdouble u1,
         GLdouble u2,
         GLint    stride,
         GLint    order,
   const GLdouble *points
);

Parameter

target

Jenis nilai yang dihasilkan oleh evaluator. Konstanta simbolis. Parameter target adalah konstanta simbolis yang menunjukkan jenis titik kontrol apa yang disediakan dalam titik, dan output apa yang dihasilkan saat peta dievaluasi. Ini dapat mengasumsikan salah satu dari sembilan nilai yang telah ditentukan sebelumnya.

Nilai Makna
GL_MAP1_VERTEX_3
Setiap titik kontrol adalah tiga nilai floating-point yang mewakili x, y, dan z. Perintah glVertex3 internal dihasilkan saat peta dievaluasi.
GL_MAP1_VERTEX_4
Setiap titik kontrol adalah empat nilai floating-point yang mewakili x, y, z, dan w. Perintah glVertex4 internal dihasilkan saat peta dievaluasi.
GL_MAP1_INDEX
Setiap titik kontrol adalah nilai floating-point tunggal yang mewakili indeks warna. Perintah glIndex internal dihasilkan saat peta dievaluasi. Namun, indeks saat ini tidak diperbarui dengan nilai perintah glIndex ini.
GL_MAP1_COLOR_4
Setiap titik kontrol adalah empat nilai floating-point yang mewakili merah, hijau, biru, dan alfa. Perintah glColor4 internal dihasilkan saat peta dievaluasi. Namun, warna saat ini tidak diperbarui dengan nilai perintah glColor4 ini.
GL_MAP1_NORMAL
Setiap titik kontrol adalah tiga nilai floating-point yang mewakili komponen x, y, dan z dari vektor normal. Perintah glNormal internal dihasilkan saat peta dievaluasi. Namun, normal saat ini tidak diperbarui dengan nilai perintah glNormal ini.
GL_MAP1_TEXTURE_COORD_1
Setiap titik kontrol adalah nilai floating-point tunggal yang mewakili koordinat tekstur s . Perintah glTexCoord1 internal dihasilkan saat peta dievaluasi. Namun, koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini.
GL_MAP1_TEXTURE_COORD_2
Setiap titik kontrol adalah dua nilai floating-point yang mewakili koordinat tekstur s dan t . Perintah glTexCoord2 internal dihasilkan saat peta dievaluasi. Namun, koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini.
GL_MAP1_TEXTURE_COORD_3
Setiap titik kontrol adalah tiga nilai floating-point yang mewakili koordinat tekstur s, t, dan r . Perintah glTexCoord3 internal dihasilkan saat peta dievaluasi. Namun, koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini.
GL_MAP1_TEXTURE_COORD_4
Setiap titik kontrol adalah empat nilai floating-point yang mewakili koordinat tekstur s, t, r, dan q . Perintah glTexCoord4 internal dihasilkan saat peta dievaluasi. Namun, koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini.

u1

Pemetaan linier u, seperti yang disajikan ke glEvalCoord1, ke u^, variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.

u2

Pemetaan linier u, seperti yang disajikan ke glEvalCoord1, ke u^, variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.

Langkahnya

Jumlah float atau ganda antara awal satu titik kontrol dan awal titik kontrol berikutnya dalam struktur data yang dirujuk dalam titik. Ini memungkinkan titik kontrol disematkan dalam struktur data arbitrer. Satu-satunya batasan adalah bahwa nilai untuk titik kontrol tertentu harus menempati lokasi memori yang berdampingan.

urutan

Jumlah titik kontrol. Harus positif.

points

Penunjuk ke array titik kontrol.

Nilai kembali

Fungsi ini tidak mengembalikan nilai.

Kode kesalahan

Kode kesalahan berikut dapat diambil oleh fungsi glGetError .

Nama Makna
GL_INVALID_ENUM
target bukan nilai yang diterima.
GL_INVALID_VALUE
u1 sama dengan u2.
GL_INVALID_VALUE
stride kurang dari jumlah nilai dalam titik kontrol.
GL_INVALID_VALUE
pesanan kurang dari satu atau GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION
Fungsi ini dipanggil antara panggilan ke glBegin dan panggilan yang sesuai ke glEnd.

Keterangan

Evaluator menyediakan cara untuk menggunakan pemetaan polinomial atau polinomial rasional untuk menghasilkan simpul, normal, koordinat tekstur, dan warna. Nilai yang dihasilkan oleh evaluator dikirim ke tahap pemrosesan OpenGL lebih lanjut seolah-olah telah disajikan menggunakan perintah glVertex, glNormal, glTexCoord, dan glColor , kecuali bahwa nilai yang dihasilkan tidak memperbarui koordinat normal, tekstur, atau warna saat ini.

Semua spline polinomial atau polinomial rasional dari tingkat apa pun (hingga derajat maksimum yang didukung oleh implementasi OpenGL) dapat dijelaskan menggunakan evaluator. Ini termasuk hampir semua spline yang digunakan dalam grafik komputer, termasuk B-splines, kurva Bezier, spline Hermite, dan sebagainya.

Evaluator mendefinisikan kurva berdasarkan polinomial Bernstein. Tentukan p () sebagai

Persamaan memperlihatkan definisi p ().

di mana Ri adalah titik kontrol dan () adalah polinomial Bernstein derajat n (urutan =n + 1):

Persamaan menunjukkan polinomial Bernstein derajat n.

Ingat bahwa

Persamaan menunjukkan kesetaraan dengan 1.

Fungsi glMap1 digunakan untuk menentukan dasar dan untuk menentukan jenis nilai apa yang dihasilkan. Setelah ditentukan, peta dapat diaktifkan dan dinonaktifkan dengan memanggil glEnable dan glDisable dengan nama peta, salah satu dari sembilan nilai yang telah ditentukan sebelumnya untuk target yang dijelaskan di atas. Fungsi glEvalCoord1 mengevaluasi peta satu dimensi yang diaktifkan. Ketika glEvalCoord1 menyajikan nilai u, fungsi Bernstein dievaluasi menggunakan u^, di mana

Persamaan memperlihatkan definisi Anda^.

Parameter langkah, urutan, dan titik menentukan alamat array untuk mengakses titik kontrol. Parameter poin adalah lokasi titik kontrol pertama, yang menempati satu, dua, tiga, atau empat lokasi memori yang berdekatan, tergantung pada peta mana yang sedang ditentukan. Parameter pesanan adalah jumlah titik kontrol dalam array. Parameter langkah memberi tahu berapa banyak lokasi float atau ganda untuk memajukan penunjuk memori internal untuk mencapai titik kontrol berikutnya.

Seperti halnya dengan semua perintah OpenGL yang menerima pointer ke data, seolah-olah konten titik disalin oleh glMap1 sebelum dikembalikan. Perubahan pada konten titik tidak berpengaruh setelah glMap1 dipanggil.

Fungsi berikut mengambil informasi yang terkait dengan glMap1:

glGet dengan argumen GL_MAX_EVAL_ORDER

glGetMap

glIsEnabled dengan argumen GL_MAP1_VERTEX_3

glIsEnabled dengan argumen GL_MAP1_VERTEX_4

glIsEnabled dengan argumen GL_MAP1_INDEX

glIsEnabled dengan argumen GL_MAP1_COLOR_4

glIsEnabled dengan argumen GL_MAP1_NORMAL

glIsEnabled dengan argumen GL_MAP1_TEXTURE_COORD_1

glIsEnabled dengan argumen GL_MAP1_TEXTURE_COORD_2

glIsEnabled dengan argumen GL_MAP1_TEXTURE_COORD_3

glIsEnabled dengan argumen GL_MAP1_TEXTURE_COORD_4

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows 2000 Server [hanya aplikasi desktop]
Header
Gl.h
Pustaka
Opengl32.lib
DLL
Opengl32.dll

Lihat juga

glBegin

glColor

glEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap2

glMapGrid

glNormal

glTexCoord

glVertex