hbdevelop1

Member
  • Content count

    7
  • Joined

  • Last visited

Community Reputation

113 Neutral

About hbdevelop1

  • Rank
    Newbie
  1. glPopMatrix does not get what was pushed

    I am Sorry. It was my mistake : I had one glPushMatrix in excess elsewhere in the code. So at the end of each frame, I had a matrix forgotten in the stack. and at the 32nd frame, the matrix poped no longer corresponded to the one immediately pushed.     I guess openGL should signal the overflow in the matrix stack by a crash or a warning, rather than poping an incorrect matrix.       Thank you for your answer and your time  
  2. Hello,   I have noticed that I don't get the same matrix I pushed !! Does anybody have an idea ? Thank you   Here is the code I am using:   #include <assert.h>   int DrawGLScene(GLvoid) {       rtri+=.2f;       GLdouble mat5[16],mat6[16];         glMatrixMode(GL_MODELVIEW);       glLoadIdentity();         glRotatef(rtri,0.0f,1.0f,0.0f);         glGetDoublev(GL_MODELVIEW_MATRIX, (GLdouble *)&mat5);         glPushMatrix();       glPopMatrix();         glGetDoublev(GL_MODELVIEW_MATRIX, (GLdouble *)&mat6);       assert(matequal(mat5,mat6));                                                               <----- execution breaks here }   bool matequal(GLdouble *N,GLdouble *M) {       if(             M[0]==N[0] && M[1]==N[1] && M[2]==N[2] && M[3]==N[3] &&              M[4]==N[4] && M[5]==N[5] && M[6]==N[6] && M[7]==N[7] &&              M[8]==N[8] && M[9]==N[9] && M[10]==N[10] && M[11]==N[11] &&              M[12]==N[12] && M[13]==N[13] && M[14]==N[14] && M[15]==N[15]  )             return true;         return false; }  
  3. Hello, I have noticed that the basic 3D rotation matrices in  http://en.wikipedia.org/wiki/Rotation_matrix rotate vectors clockwise and not counter-clockwise, when the axis about which they occur points toward me ! For example: the following operation yields the vector (0,1,0) [1      0      0     ]   [0] [0  cos(90)  sin(90) ] X [0] [0  -sin(90) cos(90) ]   [1] Am I missing something ? Thank you for your help
  4. Quaternions concatenation is the sum of angles ?

    I found out my error when I was trying to write my respond explaining that I am doing nothing wrong ! My product operator expects a quaternion class constructor with the W component as a first parameter. While the available constructor expects an angle as the first parameter. HQuaternion HQuaternion::operator*(HQuaternion & q) { return HQuaternion( w*q.w - v.Dot(q.v),HVector3(q.v*w + v*q.w + v.Cross(q.v) ) ); } HQuaternion::HQuaternion(double angle, HVector3 & _v):v(_v) { double angleover2 = angle/2; double c = cos(angleover2); double s = sin(angleover2); v.Normalize(); w=c; v *= s; } Thank you for your responses and for the link
  5. Hello, With the two quaterions q1=q2=(cos theta/2, sin theta/2, 0, 0) Does the product q1q2 yield a third quaternion q3 equals (cos theta, sin theta, 0, 0) ? This is the result I am expecting to have from my quaternion class, but I don't have it. My expectation is based on the fact that the concatenation of q1 and q2 will yield a quaternion representing both rotations. That means, for me, the sum of the angles each quaternion represents if the rotations are around the same vector. So, does the product q1q2 yield a third quaternion q3 equal (cos theta, sin theta, 0, 0) ? Or is there anything wrong with my assumption ? Thank you in advance
  6. Quaternions concatenation is the sum of angles ?

    Oh! Yes, you are right. I was thinking of my code while writing the email. Because my code looks like : HQuaternion q1(PI_over_8,HVector3(1,0,0)); HQuaternion q2(PI_over_8,HVector3(1,0,0)); HQuaternion r1=q1*q2; HQuaternion q3(PI_over_4,HVector3(1,0,0)); assert(r1 == q3); Please respond my second email "Quaternions concatenation is the sum of angles ? (2)" Thank you
  7. Hello, With the two quaterions q1=q2=(pi/8, 1, 0, 0) Does the product q1q2 yield a third quaternion q3 equal (pi/4, 1, 0, 0) ? This is the result I am expecting to have from my quaternion class, but I don't have it. My expectation is based on the fact that the concatenation of q1 and q2 will yield a quaternion representing both rotations. That means, for me, the sum of the angles each quaternion represents if the rotations are around the same vector. So, does the product q1q2 yield a third quaternion q3 equal (pi/4, 1, 0, 0) ? Or is there anything wrong with my assumption ? Thank you in advance