fungsi glMap2d

Fungsi glMap2d dan glMap2f menentukan evaluator dua dimensi.

Sintaks

void WINAPI glMap2d(
         GLenum   target,
         GLdouble u1,
         GLdouble u2,
         GLint    ustride,
         GLint    uorder,
         GLdouble v1,
         GLdouble v2,
         GLint    vstride,
         GLint    vorder,
   const GLdouble *points
);

Parameter

target

Jenis nilai yang dihasilkan oleh evaluator. Konstanta simbolis berikut diterima.

Nilai Makna
GL_MAP2_VERTEX_3
Setiap titik kontrol adalah tiga nilai floating-point yang mewakili x, y, dan z. Perintah glVertex3 internal dihasilkan saat peta dievaluasi.
GL_MAP2_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_MAP2_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_MAP2_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_MAP2_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_MAP2_TEXTURE_COORD_1
Setiap titik kontrol adalah nilai floating-point tunggal yang mewakili koordinat tekstur s . Perintah glTexCoord1 internal dihasilkan saat peta dievaluasi. Koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini.
GL_MAP2_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. Koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini.
GL_MAP2_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. Koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini.
GL_MAP2_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. Koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini.

u1

Pemetaan linier u, seperti yang disajikan ke glEvalCoord2, untuk u^, salah satu dari dua variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.

u2

Pemetaan linier u, seperti yang disajikan ke glEvalCoord2, untuk u^, salah satu dari dua variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.

ustride

Jumlah float atau ganda antara awal titik kontrol Rij dan awal titik kontrol R(i\ +1\ )\ j, di mana i dan j adalah indeks titik kontrol u dan v , masing-masing. 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.

uorder

Dimensi array titik kontrol di sumbu u. Harus positif.

v1

Pemetaan linier v, seperti yang disajikan ke glEvalCoord2, ke v^, salah satu dari dua variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.

v2

Pemetaan linier v, seperti yang disajikan ke glEvalCoord2, ke v^, salah satu dari dua variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.

vstrida

Jumlah float atau ganda antara awal titik kontrol Rij dan awal titik kontrol Ri(j\ +1\ ), di mana i dan j masing-masing adalah indeks titik kontrol u dan v . 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.

vorder

Dimensi array titik kontrol di sumbu v. Harus positif.

points

Penunjuk ke array titik kontrol.

Menampilkan nilai

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, atau v1 sama dengan v2.
GL_INVALID_VALUE
Baik ustride atau vstride kurang dari jumlah nilai dalam titik kontrol.
GL_INVALID_VALUE
Uorder atau vorder 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 polinomial atau rasional dari tingkat apa pun (hingga tingkat maksimum yang didukung oleh implementasi OpenGL) dapat dijelaskan menggunakan evaluator. Ini termasuk hampir semua permukaan yang digunakan dalam grafik komputer, termasuk permukaan B-spline, permukaan NURBS, permukaan Bezier, dan sebagainya.

Evaluator mendefinisikan permukaan berdasarkan polinomial Bernstein bivariat. Tentukan p (u^,v^) sebagai

Persamaan memperlihatkan definisi p ().

di mana Rij adalah titik kontrol, () adalah polinomial ith Bernstein

n (uorder = n + 1)

Persamaan menunjukkan polinomial Bernstein derajat n.

dan () adalah polinomial jth Bernstein dari derajat m (vorder = m + 1)

Persamaan menunjukkan polinomial Bernstein derajat m.

Ingat bahwa

Persamaan menunjukkan kesetaraan dengan 1.

Fungsi glMap2 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. Ketika glEvalCoord2 menyajikan nilai u dan v, polinomial Bernstein bivariat dievaluasi menggunakan u^ dan v^, di mana

Persamaan memperlihatkan definisi Anda^.

dan

Persamaan memperlihatkan definisi v^.

Parameter target adalah konstanta simbolis yang menunjukkan jenis titik kontrol apa yang disediakan dalam titik, dan output apa yang dihasilkan saat peta dievaluasi.

Parameter ustride, uorder, vstride, vorder, dan points menentukan alamat array untuk mengakses titik kontrol. Parameter titik adalah lokasi titik kontrol pertama, yang menempati satu, dua, tiga, atau empat lokasi memori yang berdekatan, tergantung pada peta mana yang sedang ditentukan. Ada titik kontrol uorder x vorder dalam array. Parameter ustride memberi tahu berapa banyak lokasi float atau ganda yang dilewati untuk memajukan penunjuk memori internal dari titik kontrol Rij ke titik kontrol R(\ i+1\ )j. Parameter vstride memberi tahu berapa banyak lokasi float atau ganda yang dilewati untuk memajukan penunjuk memori internal dari titik kontrol Rij ke titik kontrol Ri(j\ +1\ ).

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

Fungsi berikut mengambil informasi yang terkait dengan glMap2:

glGet dengan argumen GL_MAX_EVAL_ORDER

glGetMap

glIsEnabled dengan argumen GL_MAP2_VERTEX_3

glIsEnabled dengan argumen GL_MAP2_VERTEX_4

glIsEnabled dengan argumen GL_MAP2_INDEX

glIsEnabled dengan argumen GL_MAP2_COLOR_4

glIsEnabled dengan argumen GL_MAP2_NORMAL

glIsEnabled dengan argumen GL_MAP2_TEXTURE_COORD_1

glIsEnabled dengan argumen GL_MAP2_TEXTURE_COORD_2

glIsEnabled dengan argumen GL_MAP2_TEXTURE_COORD_3

glIsEnabled dengan argumen GL_MAP2_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

glMap1

glMapGrid

glNormal

glTexCoord

glVertex