URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8174
[ Назад ]

Исходное сообщение
"Как задать матрицу в OpenGL вручную?"

Отправлено Happy Student , 26-Мрт-09 11:28 
Собственно, сабж.

GLfloat * matrix;

matrix[2]=matrix.normalize( s );
matrix[1]=matrix.normalize(matrix.cross(matrix.vec3( t-r , p-t , r-p ) , matrix[2] ) );
matrix[0]=matrix.cross(matrix[2],matrix[1]);

При компиляции возникают ошибки:

src/mainwindowimpl.cpp: In member function ‘virtual void MyGLWidget::paintGL()’:
src/mainwindowimpl.cpp:126: ошибка: запрос элемента ‘normalize’ в ‘matrix’, имеющего не классовый тип ‘GLfloat*’
src/mainwindowimpl.cpp:127: ошибка: запрос элемента ‘normalize’ в ‘matrix’, имеющего не классовый тип ‘GLfloat*’
src/mainwindowimpl.cpp:127: ошибка: запрос элемента ‘cross’ в ‘matrix’, имеющего не классовый тип ‘GLfloat*’
src/mainwindowimpl.cpp:127: ошибка: запрос элемента ‘vec3’ в ‘matrix’, имеющего не классовый тип ‘GLfloat*’
src/mainwindowimpl.cpp:128: ошибка: запрос элемента ‘cross’ в ‘matrix’, имеющего не классовый тип ‘GLfloat*’

Подскажите пожалуйста, кто знает в чем дело.


Содержание

Сообщения в этом обсуждении
"Как задать матрицу в OpenGL вручную?"
Отправлено phpcoder , 26-Мрт-09 11:31 
>Собственно, сабж.

Вот так попробуй:

> GLfloat * matrix;
>
> matrix[2]=matrix.normalize( s );

matrix[2]=matrix->normalize( s );

> matrix[1]=matrix.normalize(matrix.cross(matrix.vec3( t-r , p-t , r-p ) , matrix[2] ) );

matrix[1]=matrix->normalize(matrix->cross(matrix->vec3( t-r , p-t , r-p ) , matrix[2] ) );

> matrix[0]=matrix.cross(matrix[2],matrix[1]);

matrix[0]=matrix->cross(matrix[2],matrix[1]);


"Как задать матрицу в OpenGL вручную?"
Отправлено Happy Student , 26-Мрт-09 11:35 
Спасибо за ответ, но ошибки выдает те же.



"Как задать матрицу в OpenGL вручную?"
Отправлено const86 , 26-Мрт-09 12:00 
С какого потолка сняли normalize, cross и др.?
Из мана по GLSL? Ну так и пишите на GLSL, а не на C++!

"Как задать матрицу в OpenGL вручную?"
Отправлено Happy Student , 26-Мрт-09 13:14 
>С какого потолка сняли normalize, cross и др.?
>Из мана по GLSL? Ну так и пишите на GLSL, а не
>на C++!

У меня создан новый класс с такими функциями.


"Как задать матрицу в OpenGL вручную?"
Отправлено NuINu , 26-Мрт-09 13:37 
>>С какого потолка сняли normalize, cross и др.?
>>Из мана по GLSL? Ну так и пишите на GLSL, а не
>>на C++!
>
>У меня создан новый класс с такими функциями.

Ну и причем здесь ОпенГЛ?
вы создаете собственный класс, ну так вам лучше знать как обращаться с методами вашего класса.
другое дело что потом данные вашего класса нужно будет передать опенгл.ну так это ерунда а не вопрос. передайте указатель ОпенГл функции указатель на внутренний или временный массив где храняться данные вашей матрицы.

ЗЫ: могу показать как это в перле делается :)