Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 27, 2005, 3:14:19 AM (19 years ago)
Author:
bensch
Message:

orxonox/branches/physics: all options in

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orxonox/branches/physics/src/subprojects/particles/framework.cc

    r4325 r4327  
    364364  char* valueC = option->save();
    365365  float value = atof(valueC);
    366   delete valueC;
    367366
    368367  ParticleEmitter* tmpEmit = ParticleEngine::getInstance()->getEmitterByNumber(1);
     
    370369    {
    371370      if (!strcmp(name, "EmissionRate"))
    372       {
    373         tmpEmit->setEmissionRate(value);
    374         PRINT(3)("EmissionRate set to %f\n", value);
    375       }
     371        {
     372          tmpEmit->setEmissionRate(value);
     373          PRINT(3)("EmissionRate set to %f\n", value);
     374        }
    376375      else if (!strcmp(name, "Velocity"))
    377       {
    378         tmpEmit->setEmissionVelocity(value);
    379         PRINT(3)("Velocity set to %f\n", value);
    380       }
     376        {
     377          tmpEmit->setEmissionVelocity(value);
     378          PRINT(3)("Velocity set to %f\n", value);
     379        }
     380      else if(!strcmp(name, "SpreadAngle"))
     381        {
     382          tmpEmit->setSpread(value);
     383          PRINT(3)("SpreadAngle set to %f\n", value);
     384        }
     385      else if(!strcmp(name, "EmitterType"))
     386        {
     387          if (!strcmp(valueC, "EMITTER_DOT"))
     388            tmpEmit->setType(EMITTER_DOT);
     389          else if (!strcmp(valueC, "EMITTER_PLANE"))
     390            tmpEmit->setType(EMITTER_PLANE);
     391          else if (!strcmp(valueC, "EMITTER_CUBE"))
     392            tmpEmit->setType(EMITTER_CUBE);
     393          PRINT(3)("EmitterType set to %s\n", valueC);   
     394        }
     395      else if(!strcmp(name, "EmitterSize"))
     396        {
     397          tmpEmit->setSize(value);
     398          PRINT(3)("EmitterSize set to %f\n", value);
     399        }
    381400    }
    382  
    383 
     401
     402  ParticleSystem* tmpSys = ParticleEngine::getInstance()->getSystemByNumber(1);
     403  if (tmpSys)
     404    {
     405      if (!strcmp(name, "StartRadius"))
     406        {
     407          tmpSys->setRadius(value, tmpSys->getEndRadius());
     408          PRINT(3)("ParticleStartRadius set to %f\n", value);
     409        }
     410      else if (!strcmp(name, "EndRadius"))
     411        {
     412          tmpSys->setRadius( tmpSys->getStartRadius(), value);
     413          PRINT(3)("ParticleEndRadius set to %f\n", value);
     414        }
     415
     416      else if (!strcmp(name, "LifeSpan"))
     417        {
     418          tmpSys->setLifeSpan(value);
     419          PRINT(3)("ParticleLifeSpan set to %f\n", value);
     420        }
     421
     422      else if (!strcmp(name, "ConserveFactor"))
     423        {
     424          tmpSys->setConserve(value);
     425          PRINT(3)("ParticleConserveFactor set to %f\n", value);
     426        }
     427
     428      else if (!strcmp(name, "ParticleType"))
     429        {
     430          if (!strcmp(valueC, "PARTICLE_DOT"))
     431            tmpSys->setType(PARTICLE_DOT);
     432          else if (!strcmp(valueC, "PARTICLE_SPARK"))
     433            tmpSys->setType(PARTICLE_SPARK);
     434          else if (!strcmp(valueC, "PARTICLE_SPRITE"))
     435            tmpSys->setType(PARTICLE_SPRITE);
     436
     437          PRINT(3)("ParticleType set to %f\n", valueC);
     438        }
     439
     440      else if (!strcmp(name, "InheritSpeed"))
     441        {
     442          tmpSys->setInheritSpeed(value);
     443          PRINT(3)("ParticleInheritSpeed set to %f\n", value);
     444        }
     445
     446    }
     447
     448  delete valueC;
    384449}
    385450
     
    395460    Box* windowBox = new Box('v');
    396461    {
    397       Slider* EmissionRate = new Slider("EmissionRate", 0, 1000);
    398       EmissionRate->connectSignal("value_changed", (void*)EmissionRate, changeOption );
    399       windowBox->fill(EmissionRate);
    400 
    401       Slider* velocity = new Slider("Velocity", 0, 2);
    402       velocity->setExactness(3);
    403       velocity->connectSignal("value_changed", (void*)velocity, changeOption );
    404       windowBox->fill(velocity);
    405 
    406       Slider* SpreadAngle = new Slider("SpreadAngle", 0, 1000);
    407       SpreadAngle->connectSignal("value_changed", (void*)SpreadAngle, changeOption );
    408       windowBox->fill(SpreadAngle);
    409 
     462      Frame* emitterFrame = new Frame("emitter-settings");
     463      {
     464        Box* emitterBox = new Box('v');
     465        {
     466          emitterBox->fill(new Label("EmissionRate"));
     467          Slider* EmissionRate = new Slider("EmissionRate", 0, 1000);
     468          EmissionRate->connectSignal("value_changed", (void*)EmissionRate, changeOption );
     469          emitterBox->fill(EmissionRate);
     470         
     471          emitterBox->fill(new Label("Velocity"));
     472          Slider* velocity = new Slider("Velocity", 0, 2);
     473          velocity->setExactness(3);
     474          velocity->connectSignal("value_changed", (void*)velocity, changeOption );
     475          emitterBox->fill(velocity);
     476         
     477          emitterBox->fill(new Label("SpreadAngle"));
     478          Slider* SpreadAngle = new Slider("SpreadAngle", 0, M_PI);
     479          SpreadAngle->setExactness(3);
     480          SpreadAngle->connectSignal("value_changed", (void*)SpreadAngle, changeOption );
     481          emitterBox->fill(SpreadAngle);
     482
     483          emitterBox->fill(new Label("EmitterType"));
     484          Menu* EmitterType = new Menu("EmitterType");
     485          EmitterType->addItem("EMITTER_DOT");
     486          EmitterType->addItem("EMITTER_PLANE");
     487          EmitterType->addItem("EMITTER_CUBE");
     488          EmitterType->connectSignal("changed", (void*)EmitterType, changeOption );       
     489          emitterBox->fill(EmitterType);
     490
     491          emitterBox->fill(new Label("EmitterSize"));
     492          Slider* EmitterSize = new Slider("EmitterSize", 0, 100);
     493          EmitterSize->setExactness(1);
     494          EmitterSize->connectSignal("value_changed", (void*)EmitterSize, changeOption );
     495          emitterBox->fill(EmitterSize);
     496        }
     497        emitterFrame->fill(emitterBox);
     498      }
     499      windowBox->fill(emitterFrame);
    410500     
    411 
     501      Frame* systemFrame = new Frame("system-settings");
     502      {
     503        Box* systemBox = new Box('v');
     504        {
     505          systemBox->fill(new Label("StartRadius"));
     506          Slider* StartRadius = new Slider("StartRadius", 0, 10);
     507          StartRadius->setExactness(3);
     508          StartRadius->connectSignal("value_changed", (void*)StartRadius, changeOption );
     509          systemBox->fill(StartRadius);
     510
     511          systemBox->fill(new Label("EndRadius"));
     512          Slider* EndRadius = new Slider("EndRadius", 0, 10);
     513          EndRadius->setExactness(3);
     514          EndRadius->connectSignal("value_changed", (void*)EndRadius, changeOption );
     515          systemBox->fill(EndRadius);
     516
     517          systemBox->fill(new Label("LifeSpan"));
     518          Slider* LifeSpan = new Slider("LifeSpan", 0, 10);
     519          LifeSpan->setExactness(3);
     520          LifeSpan->connectSignal("value_changed", (void*)LifeSpan, changeOption );
     521          systemBox->fill(LifeSpan);
     522         
     523          systemBox->fill(new Label("ConserveFactor"));
     524          Slider* ConserveFactor = new Slider("ConserveFactor", 0, 1);
     525          ConserveFactor->setExactness(3);
     526          ConserveFactor->connectSignal("value_changed", (void*)ConserveFactor, changeOption );
     527          systemBox->fill(ConserveFactor);
     528
     529          systemBox->fill(new Label("ParticleType"));
     530          Menu* ParticleType = new Menu("ParticleType");
     531          ParticleType->addItem("PARTICLE_DOT");
     532          ParticleType->addItem("PARTICLE_SPARK");
     533          ParticleType->addItem("PARTICLE_SPRITE");
     534          ParticleType->connectSignal("changed", (void*)ParticleType, changeOption );     
     535          systemBox->fill(ParticleType);
     536         
     537          systemBox->fill(new Label("InheritSpeed"));
     538          Slider* InheritSpeed = new Slider("InheritSpeed", 0, 1);
     539          InheritSpeed->setExactness(3);
     540          InheritSpeed->connectSignal("value_changed", (void*)InheritSpeed, changeOption );
     541          systemBox->fill(InheritSpeed);
     542
     543
     544        }
     545        systemFrame->fill(systemBox);
     546      }
     547      windowBox->fill(systemFrame);
     548     
    412549      Button* quitButton = new Button("quit");
    413 
    414 
     550     
     551     
    415552      windowBox->fill(quitButton);
    416553    }
     
    418555  }
    419556  Window::mainWindow->showall();
     557  Window::mainWindow->setSize(300, 500);
    420558  mainloopGUI();
    421559}
Note: See TracChangeset for help on using the changeset viewer.