コード例 #1
0
void MagicLightCircle::updateOSC()
{
  while(receiver.hasWaitingMessages())
  {
    ofxOscMessage m;
    receiver.getNextMessage(&m);
    string address = m.getAddress();
    if(mapToOfParameterFloatValue[address] != NULL)
    {
      mapToOfParameterFloatValue[address]->set(m.getArgAsFloat(0) * multipliers[address]);
    }
    if(address == "/savePreset")
    {
      ((ofApp*)ofGetAppPtr())->saveGUIPreset();
    }
    if(address == "/changePreset")
    {
      ((ofApp*)ofGetAppPtr())->presetId = m.getArgAsInt32(0);
    }
    if(address == "/loadPreset")
    {
      ((ofApp*)ofGetAppPtr())->presetId = m.getArgAsInt32(0);
      ((ofApp*)ofGetAppPtr())->loadGUIPreset(m.getArgAsInt32(0));
    }
    if(address == "/turnOnRandomLight")
    {
      turnOnRandomLight();
    }
    if(address == "/turnOnLight")
    {
      turnOnLight(m.getArgAsInt32(0));
    }
    if(address.find("newPoint") <= 10)
    {
      int pointPos = ofToInt(address.substr(10,1));
      ofVec3f point;
      point.x = (m.getArgAsFloat(0) * radius * 2);
      point.y = (m.getArgAsFloat(1) * radius * 2);
      point.z = m.getArgAsFloat(2);
//      cout << point.z << endl;
      Blob tempBlob;
      tempBlob.point = point;
      tempBlob.life = MAX_DURATION_FRAMES_BLOB_WITH_NO_INTERACTION;
      if(pointPos+1>blobs.size())
        blobs.push_back(tempBlob);
      else
        blobs[pointPos] = tempBlob;
      timerNoPoints = 0;
    }
    if(address == "ControlLight" && useOSC)
    {
      for(int a = 0; a < totMagicPoints; a++)
      {
        magicPoints[a]->intensity = float(m.getArgAsInt32(a))/255.0;
      }
    }
  }
}
コード例 #2
0
ファイル: EpLight.cpp プロジェクト: gasbank/poolg
void EpLight::fadeInLight()
{
	turnOnLight();

	m_fFadeTimer += 0.01f;
	m_fFadeTimerSign = 1.0f;

	m_bInFading = true;
}
コード例 #3
0
ファイル: EpLight.cpp プロジェクト: gasbank/poolg
void EpLight::fadeInLightForcedDelayed( float delay )
{
	turnOnLight();

	m_fFadeTimer = 0.01f;
	m_fFadeTimerSign = 1.0f;

	m_fDelay = delay;
}
コード例 #4
0
void MagicLightCircle::turnOnRandomLight()
{
  int count = 0;
  int selectedMagicPoint = -666;;
  do
  {
    selectedMagicPoint = ofRandom(0, totMagicPoints);
    count++;
  }while(magicPoints[selectedMagicPoint]->getIntensity() > .1&&count < 100);
  if(selectedMagicPoint != -666)
    turnOnLight(selectedMagicPoint);
}
コード例 #5
0
void callSpecialFunc(int key, int x, int y) {
    int sens; /* sens positif ou negatif */

    if(glutGetModifiers() == GLUT_ACTIVE_SHIFT) {
        sens = -1;
    } else {
        sens = 1;
    }

    // Global modifications
    switch(key) {
        case GLUT_KEY_LEFT:
            rotateHead(OBS_ROTATING_HEAD);
            break;
        case GLUT_KEY_RIGHT:
            rotateHead(-OBS_ROTATING_HEAD);
            break;
        case GLUT_KEY_UP:
            nodHead(-OBS_NODING_HEAD);
            break;
        case GLUT_KEY_DOWN:
            nodHead(OBS_NODING_HEAD);
            break;
        case GLUT_KEY_F7:
            if(scene->tabsource[0].allume == 0) {
                scene->tabsource[0].allume = 1;
            } else {
                scene->tabsource[0].allume = 0;
            }
            break;
        case GLUT_KEY_F8: /* switch lighting */
            g_switchLight ^= 1;
            break;
        case GLUT_KEY_F9: /* turn on or off infinite light */
            if(g_dayTime == DAY) {
                g_dayTime = NIGHT;
                charger_skybox(NIGHT);
                scene->tabsource[0].allume = 0;
                turnOnLight(g_scenes3DS[ANIMATED_KART_ID].lights[0]);
                turnOnLight(g_scenes3DS[ANIMATED_KART_ID].lights[1]);
            }
            else if(g_dayTime == NIGHT) {
                g_dayTime = DAY;
                charger_skybox(DAY);
                scene->tabsource[0].allume = 1;
                turnOffLight(g_scenes3DS[ANIMATED_KART_ID].lights[0]);
                turnOffLight(g_scenes3DS[ANIMATED_KART_ID].lights[1]);
            }
            redefineLights();
            break;
        case GLUT_KEY_F10:
            switchLight(g_scenes3DS[ANIMATED_KART_ID].lights[0]);
            switchLight(g_scenes3DS[ANIMATED_KART_ID].lights[1]);
            redefineLights();
            break;
        case GLUT_KEY_F11: /* turn on or off kart's lights */
            switchLight(g_scenes3DS[KART_ID].lights[0]);
            switchLight(g_scenes3DS[KART_ID].lights[1]);
            redefineLights();
            break;
        case GLUT_KEY_F12: /* rotate selon direction axe z */
            rotateZ(sens * OBS_ROTATING_Z);
            break;
    }

    // Is an object currently selected ?
    if(g_currentObj < 0) { return ; }

    // Local modification ==> On an object
    switch (key) {
        case GLUT_KEY_F1: /* avance selon direction axe x */
            translate(&(scene->tabobj[g_currentObj]), TRANSLATING * sens, 0.0, 0.0);
            break;
        case GLUT_KEY_F2: /* avance selon direction axe y */
            if(g_currentObj < 0) { return ; }
            translate(&(scene->tabobj[g_currentObj]), 0.0, TRANSLATING * sens, 0.0);
            break;
        case GLUT_KEY_F3: /* avance selon direction axe z */
            if(g_currentObj < 0) { return ; }
            translate(&(scene->tabobj[g_currentObj]), 0.0, 0.0, TRANSLATING * sens);
            break;
        case GLUT_KEY_F4: /* rotate selon direction axe x */
            if(g_currentObj < 0) { return ; }
            rotate(&(scene->tabobj[g_currentObj]), ROTATING * sens, 0.0, 0.0);
            break;
        case GLUT_KEY_F5: /* rotate selon direction axe y */
            if(g_currentObj < 0) { return ; }
            rotate(&(scene->tabobj[g_currentObj]), 0.0, ROTATING * sens, 0.0);
            break;
        case GLUT_KEY_F6: /* rotate selon direction axe z */
            if(g_currentObj < 0) { return ; }
            rotate(&(scene->tabobj[g_currentObj]), 0.0, 0.0, ROTATING * sens);
            break;
    }

    glutPostRedisplay();
}