void CViewer::SetNextMode() { m_iMode++; m_iMode %= 3; InitMode(); }
void CViewer::SetMode(EModes _eMode) { int l_iPreviousMode = m_iMode; m_iMode = _eMode; if(l_iPreviousMode != m_iMode) InitMode(); }
bool CGameApp::InitInstance() { // Register the window class and create the window WNDCLASS wc = {CS_OWNDC | CS_VREDRAW | CS_HREDRAW, (WNDPROC)WindowProc, 0, 0, m_hInstance, LoadIcon(m_hInstance, MAKEINTRESOURCE(IDR_APPLICATION)), LoadCursor((HINSTANCE)NULL, IDC_ARROW), (HBRUSH)GetStockObject(BLACK_BRUSH), MAKEINTRESOURCE(IDR_APPLICATION), m_szAppName}; if(!RegisterClass(&wc)) { MessageBox("Unable to register window class, aborting."); return false; } return InitMode(false, 640, 480); }
void CViewer::NextMaterialProperty() { switch(m_eCurrentMaterialProperty) { case (CViewer::SPECULAR): m_eCurrentMaterialProperty = CViewer::GLOSSINESS; break; case (CViewer::GLOSSINESS): m_eCurrentMaterialProperty = CViewer::GLOW; break; case (CViewer::GLOW): m_eCurrentMaterialProperty = CViewer::SPECULAR; break; default: break; } InitMode(); }
void DefineEEMacros (void) { unsigned int sequence = 0; unsigned int prevStart; PWM_Set (0, 0, 0, 0); Seq_Find(sequence); prevStart = ReadWord(STARTSEQADD); if (prevStart == PLAYMACROS) prevStart = 0; do { PlaySequence(sequence); if (PushButtons_Pressed(BUTTON1)) { // advance to next sequence PWM_Set (0, 0, 0, 0); PushButtons_Clear(BUTTON1); sequence++; if (sequence >= Seq_Count()) sequence = 0; Seq_Find(sequence); } if (PushButtons_Pressed(BUTTON2)) { // add sequence to EEPROM PWM_Set (0, 0, 0, 0); PushButtons_Clear(BUTTON2); if (Macros_Add(sequence)) { ConfirmCommand(); } else Error(); } } while (!PushButtons_Held(BUTTON2)); PushButtons_Clear(BUTTON2); if (Macros_Count() != 0) { WriteWord(STARTSEQADD, PLAYMACROS); // enable macro playback } else { // restore previous playback mode WriteWord(STARTSEQADD, prevStart); // enable normal playback } ConfirmCommand(); ConfirmCommand(); InitMode(); }
bool CViewer::ExecuteAction(float _fDeltaSeconds, float _fDelta, const char* _pcAction) { if(strcmp(_pcAction, "setNextMode") == 0) { SetNextMode(); return true; } if(strcmp(_pcAction, "showNormals") == 0) { //ToggleNormalRendering(); return true; } if(strcmp(_pcAction, "toggleMENU") == 0) { ToggleInfo(); return true; } if(strcmp(_pcAction, "SetLightsONOFF") == 0) { ToggleLights(); return true; } if(strcmp(_pcAction, "ReloadLights") == 0) { CORE->GetLightManager()->Reload(); m_pObjectModeLight = CORE->GetLightManager()->CreateDirectionalLight("ObjectModeLight", Vect3f(0.0f), Vect3f(1.0f,1.0f,1.0f), CColor(Vect3f(1.0f,1.0f,1.0f)), 50.0f, 80.0f, false); InitMode(); return true; } if(strcmp(_pcAction, "Yaw") == 0) { m_vMouseDelta.x = (int)_fDelta; return true; } if(strcmp(_pcAction, "Pitch") == 0) { m_vMouseDelta.y = (int)_fDelta; return true; } if(strcmp(_pcAction, "SetNextMaterial") == 0) { NextMaterialProperty(); return true; } if(strcmp(_pcAction, "Change Lightmap Mode") == 0) { /*switch(m_eLightmapMode) { case CMaterial::FLAT : m_eLightmapMode = CMaterial::RADIOSITY_NORMAL ; break; case CMaterial::RADIOSITY_NORMAL: m_eLightmapMode = CMaterial::SHOW_R ; break; case CMaterial::SHOW_R : m_eLightmapMode = CMaterial::SHOW_G ; break; case CMaterial::SHOW_G : m_eLightmapMode = CMaterial::SHOW_B ; break; case CMaterial::SHOW_B : m_eLightmapMode = CMaterial::FLAT ; break; };*/ /*switch(m_eLightmapMode) { case CMaterial::FLAT : m_eLightmapMode = CMaterial::RADIOSITY_NORMAL ; break; case CMaterial::RADIOSITY_NORMAL: m_eLightmapMode = CMaterial::FLAT ; break; }; vector<CRenderableObject*>::iterator l_it = m_vMeshes.begin(); vector<CRenderableObject*>::iterator l_end = m_vMeshes.end(); for(; l_it != l_end; ++l_it) { CInstanceMesh* l_pRenderMesh = (CInstanceMesh*)(*l_it); const vector<CMaterial*>& l_vMaterials = l_pRenderMesh->GetStaticMesh()->GetMaterials(); vector<CMaterial*>::const_iterator l_itMat = l_vMaterials.cbegin(); vector<CMaterial*>::const_iterator l_endMat = l_vMaterials.cend(); for(; l_itMat != l_endMat; ++l_itMat) { (*l_itMat)->ActivateRadiosityNormal(m_eLightmapMode); } }*/ return true; } switch(m_iMode) { case FREE_MODE: return ExecuteFreeModeAction(_fDeltaSeconds,_fDelta,_pcAction); break; case MESH_MODE: return ExecuteMeshModeAction(_fDeltaSeconds,_fDelta,_pcAction); break; case ANIMATED_MODE: return ExecuteAnimatedModeAction(_fDeltaSeconds,_fDelta,_pcAction); break; default: break; } return false; }
void CViewer::Init() { m_vMeshes = CORE->GetRenderableObjectsManager()->GetMeshes(); m_vAnimatedModels = CORE->GetRenderableObjectsManager()->GetAnimatedModels(); sort(m_vMeshes.begin(),m_vMeshes.end(),SortRenderableObjectByName); sort(m_vAnimatedModels.begin(),m_vAnimatedModels.end(),SortRenderableObjectByName); m_itCurrentMesh = m_vMeshes.begin(); m_itCurrentAnimated = m_vAnimatedModels.begin(); m_pCharacter = 0; m_fInitialCharacterYaw = 0.0f; if(m_vAnimatedModels.size() > 0) { m_pCharacter = (CRenderableAnimatedInstanceModel*)m_vAnimatedModels[0]; m_fInitialCharacterYaw = m_pCharacter->GetYaw(); //m_pCharacter->GetAnimatedInstanceModel()->ClearCycle(0); m_iCurrentAnimation = 0; m_pCharacter->GetAnimatedInstanceModel()->BlendCycle(0,0); } m_pTargetObject = new CObject3D(); m_pTargetObject->SetPosition(Vect3f(0.0f,0.0f,0.0f)); m_pObjectCamera = new CShoulderCamera( 0.1f, 100.0f, 55.0f * FLOAT_PI_VALUE/180.0f, ((float)RENDER_MANAGER->GetScreenWidth())/((float)RENDER_MANAGER->GetScreenHeight()), m_pTargetObject, 2.0f,0.6f,1.5f); m_pObjectModeLight = 0; //m_pSpotLight = 0; //m_pObjectModeLight->SetDynamicObjectsOnly(true); //m_pSpotLight = CORE->GetLightManager()->CreateSpotLight("FreeModeLight", // Vect3f(-2.15715f,0.0f,-7.32758f), // Vect3f(-5.4188f,0.0f,3.75613f), // CColor(Vect3f(1.0f,1.0f,1.0f)), // 20.0f, // 80.0f, // 10.0f, // 45.0f, // false ); //m_vOmniColor = Vect3f(1.0f,1.0f,1.0f); //m_pOmniLight = CORE->GetLightManager()->CreateOmniLight("OmniViewerLight",Vect3f(0.0f),CColor(m_vOmniColor),0.1f,17.0f); //CSceneEffectManager* l_pSceneEffectManager = CORE->GetSceneEffectManager(); //if(l_pSceneEffectManager) //{ // l_pSceneEffectManager->SetShadowMapLightCast(m_pSpotLight); //} //m_vAmbientLight = CORE->GetLightManager()->GetAmbientLight(); m_bEnableLights = true; //m_bGuiActive = false; m_bShowInfo = true; //m_eNormalRendering = NO_NORMALS; m_bShowBoxes = false; m_bShowSpheres = false; //materials //m_eLightmapMode = CMaterial::RADIOSITY_NORMAL; m_fGlowIntensity = 0.0f; m_fGlowIntensity = 0.0f; m_fGlossiness = 0.0f; m_iMode = FREE_MODE; m_eCurrentMaterialProperty = CViewer::SPECULAR; //SOUND_MANAGER->PlayMusic("bgm",true); m_vMouseDelta = 0; ResetActions(); InitMode(); }
void *threadProp(void *param){ int i=0; int cpt = 0; int dist_Sonar; static int u = 0; #ifdef THREAD_PROP eSta prevOrder; eTypeCmd prevTyp_Cmd = STATE; #endif InitMode(3); InitEncoder(); InitAcc(2); pthread_mutex_lock(&mtx_order); order = STP; prevOrder = order; pthread_mutex_unlock(&mtx_order); while(1){ // Update distSonar pthread_mutex_lock(&mtx_distSonar); dist_Sonar = distSonar; pthread_mutex_unlock(&mtx_distSonar); pthread_mutex_lock(&mtx_order); pthread_mutex_unlock(&mtx_typ_Cmd); //printf("order = %s\n" // "typ_Cmd = %s\n",dspl_eSta(order), dspl_eTypeCmd(typ_Cmd)); #ifdef THREAD_PROP if( (order != prevOrder) || (typ_Cmd != prevTyp_Cmd)){ printf("order = %s\n" "typ_Cmd = %s\n",dspl_eSta(order), dspl_eTypeCmd(typ_Cmd)); prevOrder = order; prevTyp_Cmd = typ_Cmd; } #endif //printf("distSonar = %d, \t DIST_MIN_SONAR = %d\n", distSonar, DIST_MIN_SONAR); // if there is an obstacl if(dist_Sonar < DIST_MIN_SONAR){ prevOrder = order; order = STP; cpt = 1; } else if(cpt == 1){ order = prevOrder; cpt = 0; } // Stop Rover if obstacl or press Stop button or command stop if(order == STP){ #ifdef THREAD_PROP if(u != 1){ printf("----Rover stop\n"); } u = 1; #endif stopRover(); } else if(order == MVT && typ_Cmd == TRAJ){ #ifdef THREAD_PROP if(u != 2){ printf("----Rover is moving to point\n"); } u = 2; #endif pthread_mutex_lock(&mtx_position); if(followTraj((sPt)position.pt) == 1) order = STP; pthread_mutex_unlock(&mtx_position); } else if(order == MVT && typ_Cmd == POS){ #ifdef THREAD_PROP if(u != 3){ printf("----Rover is moving to point and is turnning following angl\n"); } u = 3; #endif pthread_mutex_lock(&mtx_position); if(followTraj((sPt)position.pt) == 1) order = STP; rotOnPt(position.ang); pthread_mutex_unlock(&mtx_position); } else if(order == MVT && (typ_Cmd != TRAJ || typ_Cmd != POS)){ #ifdef THREAD_PROP if(u != 4){ printf("----Rover is following points\n"); } u = 4; #endif if(followTraj(tabTraj[i])==1){ if(i==(N-1))i=0; else i++; } } pthread_mutex_unlock(&mtx_order); pthread_mutex_unlock(&mtx_typ_Cmd); } }