task main() { accelerate(50); wait10Msec(100); turn (-1, 150, 1000); deccelerate(50); }
void Transition3Dto2D::render(QCAR::Matrix44F projectionMatrix, QCAR::Matrix34F targetPose, GLuint texture1) { float t = stepTransition(); QCAR::Matrix44F modelViewProjectionTracked; QCAR::Matrix44F modelViewProjectionCurrent; QCAR::Matrix44F modelViewMatrix = QCAR::Tool::convertPose2GLMatrix( targetPose); QCAR::Matrix44F finalPositionMatrix = getFinalPositionMatrix(); SampleUtils::scalePoseMatrix(430.f * scaleFactor, 430.f * scaleFactor, 1.0f, &modelViewMatrix.data[0]); SampleUtils::multiplyMatrix(&projectionMatrix.data[0], &modelViewMatrix.data[0], &modelViewProjectionTracked.data[0]); float elapsedTransformationCurrent = 0.8f + 0.2f * t; elapsedTransformationCurrent = deccelerate(elapsedTransformationCurrent); linearInterpolate(&modelViewProjectionTracked, &finalPositionMatrix, &modelViewProjectionCurrent, elapsedTransformationCurrent); glUseProgram(shaderProgramID); glVertexAttribPointer(vertexHandle, 3, GL_FLOAT, GL_FALSE, 0, (const GLvoid*) &planeVertices[0]); glVertexAttribPointer(normalHandle, 3, GL_FLOAT, GL_FALSE, 0, (const GLvoid*) &planeNormals[0]); glVertexAttribPointer(textureCoordHandle, 2, GL_FLOAT, GL_FALSE, 0, (const GLvoid*) &planeTexcoords[0]); glEnableVertexAttribArray(vertexHandle); glEnableVertexAttribArray(normalHandle); glEnableVertexAttribArray(textureCoordHandle); glEnable (GL_BLEND); // Drawing Textured Plane glActiveTexture (GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, texture1); glUniformMatrix4fv(mvpMatrixHandle, 1, GL_FALSE, (GLfloat*) &modelViewProjectionCurrent.data[0]); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, (const GLvoid*) &planeIndices[0]); glDisableVertexAttribArray(vertexHandle); glDisableVertexAttribArray(normalHandle); glDisableVertexAttribArray(textureCoordHandle); glDisable(GL_BLEND); SampleUtils::checkGlError("Transition3Dto2D::render"); }