histoBook* histoBook::set( string opt, vector<string> params ){ //cout << "Setting : " << opt << endl; //for ( int i = 0; i < params.size(); i++ ){ // cout << params[ i ] << " "; //} //cout << endl; // force the param name to lowercase transform(opt.begin(), opt.end(), opt.begin(), ::tolower); TH1* h = get( styling ); if ( h ){ if ( "title" == opt ){ h->SetTitle( cParam(params, 0) ); } else if ( "x" == opt ){ h->GetXaxis()->SetTitle( cParam(params, 0) ); } else if ( "y" == opt ){ h->GetYaxis()->SetTitle( cParam(params, 0) ); } else if ( "legend" == opt ){ legend->AddEntry( h, cParam(params, 0), cParam(params, 1, "lpf") ); legend->Draw(); } else if ( "draw" == opt ){ drawOption = cParam(params, 0); } else if ( "linecolor" == opt ){ int c = color( cParam( params, 0) ); if ( c < 0 ) c = (int) dParam( params, 0); h->SetLineColor( c ); } else if ( "fillcolor" == opt ){ int c = color( cParam( params, 0) ); if ( c < 0 ) c = (int) dParam( params, 0); h->SetFillColor( c ); } else if ( "linewidth" == opt ){ h->SetLineWidth( dParam( params, 0) ); } else if ( "domain" == opt ){ double min = dParam( params, 0); double max = dParam( params, 1); h->GetXaxis()->SetRangeUser( min, max ); } else if ( "dynamicdomain" == opt ){ double thresh = dParam( params, 0); int min = (int)dParam( params, 1); int max = (int)dParam( params, 2); int axis = (int)dParam( params, 3); // 1 = x, 2 = y if ( 1 != axis && 2 != axis ) axis = 1; if ( thresh >= 0) { if ( -1 >= min ) min = h->FindFirstBinAbove( thresh, axis ); if ( -1 >= max ) max = h->FindLastBinAbove( thresh, axis ); } if ( 1 == axis ) h->GetXaxis()->SetRange( min, max ); else if ( 2 == axis ) h->GetYaxis()->SetRange( min, max ); } else if ( "range" == opt ){ double min = dParam( params, 0); double max = dParam( params, 1); h->GetYaxis()->SetRangeUser( min, max ); } else if ( "markercolor" == opt ) { int c = color( cParam( params, 0) ); if ( c < 0 ) c = (int) dParam( params, 0); h->SetMarkerColor( c ); } else if ( "markerstyle" == opt ) { h->SetMarkerStyle( (int)dParam( params, 0) ); } else if ( "legend" == opt ){ // p1 - alignmentX // p2 - alignmentY // p3 - width // p4 - height // make sure option is valid double p1 = dParam( params, 0); double p2 = dParam( params, 1); if ( !(legendAlignment::center == p1 || legendAlignment::left == p1 || legendAlignment::right == p1) ) p1 = legendAlignment::best; if ( !(legendAlignment::center == p2 || legendAlignment::top == p2 || legendAlignment::bottom == p2) ) p2 = legendAlignment::best; placeLegend( p1, p2, dParam( params, 3), dParam( params, 3) ); } else if ( "numberofticks" == opt ){ // p1 - # of primary divisions // p2 - # of secondary divisions // p3 - axis : 0 or 1 = x, 2 = y double p1 = dParam( params, 0); double p2 = dParam( params, 1); double p3 = dParam( params, 2); if ( p2 == -1 ) p2 = 0; if ( 2 == (int)p3 ) h->GetYaxis()->SetNdivisions( (int) p1, (int) p2, 0, true ); else h->GetXaxis()->SetNdivisions( (int) p1, (int) p2, 0, true ); } else if ( "logy" == opt ){ gPad->SetLogy( (int)dParam( params, 0 ) ); } else if ( "logx" == opt ){ gPad->SetLogx( (int)dParam( params, 0 ) ); } else if ( "logz" == opt ){ gPad->SetLogz( (int)dParam( params, 0 ) ); } } return this; }
void Actor::HandleCommand( const ParsedCommand &command ) { HandleParams; const CString& sName = sParam(0); // Commands that go in the tweening queue: if ( sName=="sleep" ) Sleep( fParam(1) ); else if( sName=="linear" ) BeginTweening( fParam(1), TWEEN_LINEAR ); else if( sName=="accelerate" ) BeginTweening( fParam(1), TWEEN_ACCELERATE ); else if( sName=="decelerate" ) BeginTweening( fParam(1), TWEEN_DECELERATE ); else if( sName=="bouncebegin" ) BeginTweening( fParam(1), TWEEN_BOUNCE_BEGIN ); else if( sName=="bounceend" ) BeginTweening( fParam(1), TWEEN_BOUNCE_END ); else if( sName=="spring" ) BeginTweening( fParam(1), TWEEN_SPRING ); else if( sName=="stoptweening" ) { StopTweening(); BeginTweening( 0.0001f, TWEEN_LINEAR ); } // Why BeginT again? -Chris else if( sName=="finishtweening" ) FinishTweening(); else if( sName=="hurrytweening" ) HurryTweening( fParam(1) ); else if( sName=="x" ) SetX( fParam(1) ); else if( sName=="y" ) SetY( fParam(1) ); else if( sName=="z" ) SetZ( fParam(1) ); else if( sName=="addx" ) SetX( GetDestX()+fParam(1) ); else if( sName=="addy" ) SetY( GetDestY()+fParam(1) ); else if( sName=="addz" ) SetZ( GetDestZ()+fParam(1) ); else if( sName=="zoom" ) SetZoom( fParam(1) ); else if( sName=="zoomx" ) SetZoomX( fParam(1) ); else if( sName=="zoomy" ) SetZoomY( fParam(1) ); else if( sName=="zoomz" ) SetZoomZ( fParam(1) ); else if( sName=="zoomtowidth" ) ZoomToWidth( fParam(1) ); else if( sName=="zoomtoheight" ) ZoomToHeight( fParam(1) ); else if( sName=="stretchto" ) StretchTo( RectF( fParam(1), fParam(2), fParam(3), fParam(4) ) ); else if( sName=="cropleft" ) SetCropLeft( fParam(1) ); else if( sName=="croptop" ) SetCropTop( fParam(1) ); else if( sName=="cropright" ) SetCropRight( fParam(1) ); else if( sName=="cropbottom" ) SetCropBottom( fParam(1) ); else if( sName=="fadeleft" ) SetFadeLeft( fParam(1) ); else if( sName=="fadetop" ) SetFadeTop( fParam(1) ); else if( sName=="faderight" ) SetFadeRight( fParam(1) ); else if( sName=="fadebottom" ) SetFadeBottom( fParam(1) ); else if( sName=="fadecolor" ) SetFadeDiffuseColor( cParam(1) ); else if( sName=="diffuse" ) SetDiffuse( cParam(1) ); else if( sName=="diffuseleftedge" ) SetDiffuseLeftEdge( cParam(1) ); else if( sName=="diffuserightedge" ) SetDiffuseRightEdge( cParam(1) ); else if( sName=="diffusetopedge" ) SetDiffuseTopEdge( cParam(1) ); else if( sName=="diffusebottomedge" ) SetDiffuseBottomEdge( cParam(1) ); /* Add left/right/top/bottom for alpha if needed. */ else if( sName=="diffusealpha" ) SetDiffuseAlpha( fParam(1) ); else if( sName=="diffusecolor" ) SetDiffuseColor( cParam(1) ); else if( sName=="glow" ) SetGlow( cParam(1) ); else if( sName=="glowmode" ) { if(!sParam(1).CompareNoCase("whiten")) SetGlowMode( GLOW_WHITEN ); else if(!sParam(1).CompareNoCase("brighten")) SetGlowMode( GLOW_BRIGHTEN ); else ASSERT(0); } else if( sName=="rotationx" ) SetRotationX( fParam(1) ); else if( sName=="rotationy" ) SetRotationY( fParam(1) ); else if( sName=="rotationz" ) SetRotationZ( fParam(1) ); else if( sName=="heading" ) AddRotationH( fParam(1) ); else if( sName=="pitch" ) AddRotationP( fParam(1) ); else if( sName=="roll" ) AddRotationR( fParam(1) ); else if( sName=="shadowlength" ) SetShadowLength( fParam(1) ); else if( sName=="horizalign" ) SetHorizAlign( sParam(1) ); else if( sName=="vertalign" ) SetVertAlign( sParam(1) ); else if( sName=="diffuseblink" ) SetEffectDiffuseBlink(); else if( sName=="diffuseshift" ) SetEffectDiffuseShift(); else if( sName=="glowblink" ) SetEffectGlowBlink(); else if( sName=="glowshift" ) SetEffectGlowShift(); else if( sName=="rainbow" ) SetEffectRainbow(); else if( sName=="wag" ) SetEffectWag(); else if( sName=="bounce" ) SetEffectBounce(); else if( sName=="bob" ) SetEffectBob(); else if( sName=="pulse" ) SetEffectPulse(); else if( sName=="spin" ) SetEffectSpin(); else if( sName=="vibrate" ) SetEffectVibrate(); else if( sName=="stopeffect" ) SetEffectNone(); else if( sName=="effectcolor1" ) SetEffectColor1( cParam(1) ); else if( sName=="effectcolor2" ) SetEffectColor2( cParam(1) ); else if( sName=="effectperiod" ) SetEffectPeriod( fParam(1) ); else if( sName=="effectoffset" ) SetEffectOffset( fParam(1) ); else if( sName=="effectdelay" ) SetEffectDelay( fParam(1) ); else if( sName=="effectclock" ) SetEffectClock( sParam(1) ); else if( sName=="effectmagnitude" ) SetEffectMagnitude( RageVector3(fParam(1),fParam(2),fParam(3)) ); else if( sName=="scaletocover" ) { RectI R(iParam(1), iParam(2), iParam(3), iParam(4)); ScaleToCover(R); } else if( sName=="scaletofit" ) { RectI R(iParam(1), iParam(2), iParam(3), iParam(4)); ScaleToFitInside(R); } // Commands that take effect immediately (ignoring the tweening queue): else if( sName=="animate" ) EnableAnimation( bParam(1) ); else if( sName=="setstate" ) SetState( iParam(1) ); else if( sName=="texturewrapping" ) SetTextureWrapping( bParam(1) ); else if( sName=="additiveblend" ) SetBlendMode( bParam(1) ? BLEND_ADD : BLEND_NORMAL ); else if( sName=="blend" ) SetBlendMode( sParam(1) ); else if( sName=="zbuffer" ) SetUseZBuffer( bParam(1) ); else if( sName=="ztest" ) SetZTestMode( bParam(1)?ZTEST_WRITE_ON_PASS:ZTEST_OFF ); else if( sName=="ztestmode" ) SetZTestMode( sParam(1) ); else if( sName=="zwrite" ) SetZWrite( bParam(1) ); else if( sName=="clearzbuffer" ) SetClearZBuffer( bParam(1) ); else if( sName=="backfacecull" ) SetCullMode( bParam(1) ? CULL_BACK : CULL_NONE ); else if( sName=="cullmode" ) SetCullMode( sParam(1) ); else if( sName=="hidden" ) SetHidden( bParam(1) ); else if( sName=="hibernate" ) SetHibernate( fParam(1) ); else if( sName=="draworder" ) SetDrawOrder( iParam(1) ); else if( sName=="playcommand" ) PlayCommand( sParam(1) ); else if( sName=="queuecommand" ) { ParsedCommand newcommand = command; newcommand.vTokens.erase( newcommand.vTokens.begin() ); QueueCommand( newcommand ); return; // don't do parameter number checking } /* These are commands intended for a Sprite commands, but they will get * sent to all sub-actors (which aren't necessarily Sprites) on * GainFocus and LoseFocus. So, don't run CheckHandledParams * on these commands. */ else if( sName=="customtexturerect" || sName=="texcoordvelocity" || sName=="scaletoclipped" || sName=="stretchtexcoords" || sName=="position" || sName=="loop" || sName=="play" || sName=="pause" || sName=="rate" ) return; else { CString sError = ssprintf( "Actor::HandleCommand: Unrecognized command name '%s'.", sName.c_str() ); LOG->Warn( sError ); Dialog::OK( sError ); } CheckHandledParams; }