root/trunk/glQuaternions.h

Revision 3, 3.0 kB (checked in by sagrer, 10 months ago)

Добавил информационную шапку в файлы исходников.

Line 
1 ///////////////////////////////////////////////////////////
2 //                      MobSurgeon                       //
3 //          Ðåäàêòîð mob-îâ äëÿ Ïðîêëÿòûõ Çåìåëü         //
4 //           Copyright (C) 2005-2007 Gipat Group         //
5 //              Ðàñïðîñòðàíÿåòñÿ íà óñëîâèÿõ             //
6 //    Gipat Group's opened EI-editor-utility license     //
7 //                      âåðñèè 1.0                       //
8 //                                                       //
9 //                  www.gipatgroup.org                   //
10 ///////////////////////////////////////////////////////////
11
12 //Ê ðàáîòå íàä äàííûì ôàéëîì ïðèëîæèëè ðóêè, íîãè.... êîðî÷å àôôòàðû:
13 // 1) Sagrer (sagrer@yandex.ru)
14
15 ////////////////////////////////////////////////////////////////////////
16
17 /////////////////////////////////////////////////
18 //        Íó òèïî òóò êëàññ äëÿ ðàáîòû         //
19 //          ñ êâàòåðíèîíàìè â OpenGL           //
20 //                  ver 0.1                    //
21 //                                             //
22 //             crafted by Sagrer               //
23 /////////////////////////////////////////////////
24
25 //---------------------------------------------------------------------------
26
27 #ifndef glQuaternionsH
28 #define glQuaternionsH
29
30 #include <Classes.hpp>
31
32 #include <GL/gl.h>
33 #include <GL/glu.h>
34
35 #include "math.h"
36 //#include "math.hpp"
37 #include "mathlib.h"
38
39 //Íó, òèïî, îáúÿâëåíèÿ...
40
41 //Âåêòîð 2
42 //class TVec2
43
44
45 //Êâàòåðíèîí
46 class TQuaternion
47 {
48   public:
49     //Ïåðåìåííûå...
50     float QuatW;
51     float QuatX;
52     float QuatY;
53     float QuatZ;
54
55     //Ôóíêöèè...
56     //Êîíñòðóêòîðû-äåñòðóêòîðû...
57     virtual ~TQuaternion();     //äåñòðóêòîð
58     TQuaternion();     //Äåôîëòíûé êîíñòðóêòîð
59     TQuaternion(float &w, float &x, float &y, float &z);  //Êîíñòðóêòîð íà ïðîèçâîëüíûé êâàòåðíèîí
60     TQuaternion(float w, float x, float y, float z);  //Êîíñòðóêòîð íà ïðîèçâîëüíûé êâàòåðíèîí
61     //Âñÿêèå "ìåëêèå" îïåðàöèè ñ ñàìèìè êâàòåðíèîíàìè...
62     void ident();  //Ïîñòàâèòü êâàòåðíèîíó ïóñòîå çíà÷åíèå.
63     void scale(float s);  //Òèïî ìàñøòàáèðîâàòü. Â ïðèíöèïå - óìíîæåíèå íà ñêàëÿð.
64     float norm();  //Íîðìà.
65     float magnitude();  //Ìîäóëü.
66     void StabilizeLength();  //Òèïî ñòàáèëèçèðîâàòü äëèíó êâàòåðíèîíà - ýòî âûïîëíÿåòñÿ áûñòðåå íîðìàëèçàöèè.
67     void normalize();   //Íîðìàëèçîâàòü. Ìåäëåííåå ñòàáèëèçàöèè, íî â ðåçóëüòàòå åäèíè÷íûé êâàòåðíèîí.
68     //Îïåðàöèè ñ ìàòðèöàìè...
69     void GetGLMatrix(GLfloat *matrix);  //Ïîëó÷èòü OpenGL-øíóþ ìàòðèöó ïîâîðîòà èç êâàòåðíèîíà.
70     void Mult(float W, float X, float Y, float Z);   //Òèïî óìíîæèòü íà äðóãîé êâàòåðíèîí...
71     void SetAxisAngle(float VecX, float VecY, float VecZ, float angle);  //Òèïî âûñòàâèòü êâàòåðíèîíó óãîë èç Axis-Angle ïðåäñòàâëåíèÿ.
72     void RotateByAxisAngle(float VecX, float VecY, float VecZ, float angle);  //Ñäåëàòü óêàçàííûé ïîâîðîò âîêðóã óêàçàííîé îñè (â äîáàâêó ê èìåþùåéñÿ îðèåíòàöèè).
73
74 };
75
76 //---------------------------------------------------------------------------
77 #endif
Note: See TracBrowser for help on using the browser.