bool Layer::Translate( double* dPos ) { double offset[3]; for ( int i = 0; i < 3; i++ ) offset[i] = dPos[i] - m_dTranslate[i]; DoTranslate( offset ); for ( int i = 0; i < 3; i++ ) m_dTranslate[i] = dPos[i]; ResetScale(); this->SendBroadcast( "LayerTransformed", this, this ); return true; }
bool cGlobals::Translate(string text, string &translation) { string transStart = "{tr("; string transEnd = ")}"; size_t foundStart = text.find(transStart); size_t foundEnd = text.find(transEnd); bool translated = false; while (foundStart != string::npos && foundEnd != string::npos) { string token = text.substr(foundStart + 1, foundEnd - foundStart); string transToken = DoTranslate(token); if (transToken.size() > 0) translated = true; else return false; text.replace(foundStart, foundEnd - foundStart + 2, transToken); foundStart = text.find(transStart); foundEnd = text.find(transEnd); } if (translated) translation = text; return translated; }
/******************************************************************************* * Function Name : RenderScene * Returns : true if no error occured * Description : Main rendering loop function of the program. The shell will * call this function every frame. *******************************************************************************/ bool CTransforms::RenderScene() { m_ui32AbsTime = PVRShellGetTime(); // Clear the screen with clear color. vgClear(0, 0, PVRShellGet(prefWidth), PVRShellGet(prefHeight)); // Set fill paint vgSetPaint(m_vgPaint, VG_FILL_PATH); unsigned int ui32TimeSinceStart = PVRShellGetTime() - m_ui32StartTime; // toggle segment type every 3 seconds int ui32ActiveTransform = (ui32TimeSinceStart % (3000 * 7)) / 3000; switch(ui32ActiveTransform) { case 0: DoTranslate(); break; case 1: DoScaleCentered(); break; case 2: DoScaleOrigin(); break; case 3: DoRotateCentered(); break; case 4: DoRotateOrigin(); break; case 5: DoShearCentered(); break; case 6: DoShearOrigin(); break; } // Draw user interface static char* apszTransforms[] = { "Translation", "Scaling (centered on object)", "Scaling (from origin)", "Rotate (centered on object)", "Rotate (around origin)", "Shear (centered on object)", "Shear (from origin)", }; m_PrintVG.DisplayDefaultTitle("Transforms", apszTransforms[ui32ActiveTransform], ePVRTPrint3DLogoIMG); return true; }