SkyDome::SkyDome(rs::Priority p): PostEffect(T_Skydome, p) { setScale(1, 1); setDivide(2e1f); setRayleighCoeff({680*1e-3f, 550*1e-3f, 480*1e-3f}); setMieCoeff(0.9f, 0.1f); setLightPower(24.4f); setLightColor({1,1,1}); setLightDir({0,-1,0}); }
void checkDivide(float div){ setDivide(div); loop(); // int pulses = div*16+1; int pulses = divider.value+1; int i; for(i=0; !divideIsHigh() && i<100; ++i) pulseClock(); BOOST_CHECK_EQUAL(i, pulses); for(i=0; divideIsHigh() && i<100; ++i) pulseClock(); BOOST_CHECK_EQUAL(i, pulses); }
void checkDivideAndCount(float div, float cnt){ setDivide(div); setDelay(cnt); loop(); reset(); int count = counter.value; int pulses = divider.value; BOOST_CHECK(pulses > count/2); int cycles = pulses*2+count*2+1; int i; for(i=0; !combinedIsHigh(); ++i) toggleClock(); BOOST_CHECK_EQUAL(i, cycles); toggleClock(); for(i=0; !combinedIsHigh(); ++i) toggleClock(); BOOST_CHECK_EQUAL(i, pulses*2+1); toggleClock(); }
void checkSwing(float div, float del){ setDivide(div); setDelay(del); setDelayMode(); loop(); int cycles = divider.value*2+1; int time = delay.value/2+1; int ticks = delay.value-time; int i; for(i=0; clockIsHigh() == combinedIsHigh() && i<1000; ++i) toggleClock(); BOOST_CHECK_EQUAL(i, cycles); BOOST_CHECK(swinger.running == true); BOOST_CHECK(clockIsHigh()); callTimer(time); setClock(false); for(i=0; !combinedIsHigh() && i<1000; ++i) callTimer(); BOOST_CHECK_EQUAL(i, ticks); for(i=0; combinedIsHigh() && i<1000; ++i) callTimer(); BOOST_CHECK_EQUAL(i, time); }
DefaultFixture(){ loop(); setDivide(0.0); setDelay(0.0); loop(); }