コード例 #1
0
ファイル: Viewer.cpp プロジェクト: Atridas/biogame
void CViewer::SetNextMode()
{
  m_iMode++;
  m_iMode %= 3;

  InitMode();
}
コード例 #2
0
ファイル: Viewer.cpp プロジェクト: Atridas/biogame
void CViewer::SetMode(EModes _eMode)
{
  int l_iPreviousMode = m_iMode;
  m_iMode = _eMode;

  if(l_iPreviousMode != m_iMode)
    InitMode();
}
コード例 #3
0
ファイル: GameApp.cpp プロジェクト: alxd/overview
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);
}
コード例 #4
0
ファイル: Viewer.cpp プロジェクト: Atridas/biogame
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();
}
コード例 #5
0
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();	
}
コード例 #6
0
ファイル: Viewer.cpp プロジェクト: Atridas/biogame
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;
}
コード例 #7
0
ファイル: Viewer.cpp プロジェクト: Atridas/biogame
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();
}
コード例 #8
0
ファイル: main_hardware.c プロジェクト: SebRobot/Projet_2A
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);
        
    }
}