void OsuManiaRenderer::RenderHitTimings(Window& _win)
{
	const int KEYS = play->beatmap->getMods().getCS();

	Analyzer* analyzer = AnalysisStruct::beatmapAnalysis.getAnalyzer("Tap Deviation (ms)");
	if (analyzer == nullptr) return;

	for (osu::TIMING timing : *(analyzer->getData()))
	{
		if (BTWN(getStartTime(), timing.time + timing.data, getEndTime())) // hits
		{
			int hitXpos = timing.key * (this->width / KEYS) + (this->absXpos - this->width / 2);
			int width = ((this->width) / KEYS) - (2 * KEYS);

			int hitPos = (*viewTime) - timing.time - timing.data;
			int hitYpos = hitPos*zoom + height;

			_win.driver->draw2DRectangle(SColor(255, 255, 0, 255), rect<s32>(absXpos + hitXpos, absYpos + hitYpos, absXpos + hitXpos + width, absYpos + hitYpos + 2));
		}
		else if (BTWN(getStartTime(), timing.time, getEndTime())) // misses
		{
			if (timing.data == INT_MAX)
			{
				int hitXpos = timing.key * (this->width / KEYS) + (this->absXpos - this->width / 2);
				int width = ((this->width) / KEYS) - (2 * KEYS);

				int hitPos = (*viewTime) - timing.time;
				int hitYpos = hitPos*zoom + height;

				_win.driver->draw2DRectangle(SColor(255, 200, 0, 0), rect<s32>(absXpos + hitXpos, absYpos + hitYpos, absXpos + hitXpos + width, absYpos + hitYpos + 3));
			}	
		}
	}
}
Ejemplo n.º 2
0
uint32
UserRight::getRightTimeLength() const {
   if ( getEndTime() == 0 ) {
      return MAX_UINT32;
   } else {
      if ( getEndTime() >= getStartTime() ) {
         return getEndTime() - getStartTime();
      } else {
         return 0;
      }
   }
}
Ejemplo n.º 3
0
H5::DataSet CompartmentReportHDF5::_createDataset( const uint32_t gid,
                                                   const size_t compCount )
{
    LBASSERT( compCount > 0 );
    LBASSERT( !_reportName.empty( ));

    std::ostringstream neuronName;
    neuronName << "a" << gid;

    H5::Group neuronGroup = _file.createGroup( neuronName.str().c_str( ));
    H5::Group reportGroup = neuronGroup.createGroup( _reportName );

    const int dims = 2;
    const size_t numSteps = (getEndTime() - getStartTime()) / getTimestep();
    const hsize_t mappingDim[dims] = { 1, compCount };
    const hsize_t dataDim[dims] = { numSteps, compCount };
    LBASSERT( numSteps > 0 );

    H5::DataSpace mappingDataspace( dims, mappingDim );
    H5::DataSpace dataDataspace( dims, dataDim );

    H5::DataSet mappingDataset = reportGroup.createDataSet(
             mappingDatasetName, H5::PredType::NATIVE_FLOAT, mappingDataspace );
    H5::DataSet dataDataset = reportGroup.createDataSet( dataDatasetName,
                                    H5::PredType::NATIVE_FLOAT, dataDataspace );

    _datas[gid] = dataDataset;

    _createMappingAttributes( mappingDataset );
    _createDataAttributes( dataDataset );

    return mappingDataset;
}
Ejemplo n.º 4
0
	/// \brief get interpolated value at time t and derivative
	///
	void getValueAndDerivative(T_time t, T_value & value, T_value & derivative) const {
		assert(t >= getStartTime());
		assert(t < getEndTime());

		// find i
		int i=2;
		while (this->_times[i] <= t) i++;

		// compute points and tangents
		const T_time G = (1+sqrt(5))/2;
		T_value P1 = this->_values[i-1];
		T_value P4 = this->_values[i];
		T_value R1 = G / (this->_times[i]-this->_times[i-2])*(this->_values[i]-this->_values[i-2]);
		T_value R4 = G / (this->_times[i+1]-this->_times[i-1])*(this->_values[i+1]-this->_values[i-1]);

		// compute hermite interpolation
		T_time tu = (t-this->_times[i-1]) / (this->_times[i]-this->_times[i-1]);
		T_time tu2 = tu*tu;
		T_time tu3 = tu2*tu;
		value = (2*tu3 - 3*tu2 + 1) * P1
				+ (-2*tu3 + 3*tu2) * P4
				+ (tu3 - 2*tu2 + tu) * R1
				+ (tu3 - tu2) * R4;

		derivative = (6*tu2 - 6*tu) * P1
				+ (-6*tu2 + 6*tu) * P4
				+ (3*tu2 - 4*tu) * R1
				+ (3*tu2 - 2*tu) * R4;
	}
Ejemplo n.º 5
0
	/// \brief get interpolated value at time t and derivative
	///
	void getValueAndDerivative(T_time t, T_value & value, T_value & derivative) const {
		assert(t >= getStartTime());
		assert(t < getEndTime());
		int size = this->_times.size();
		int iLater = 0;
		while (iLater < size and this->_times[iLater] <= t) iLater++;
		if (iLater == 0) {
			value = this->_values.front();
			T_time dt = (this->_times[1] - this->_times[0]);
			T_value dP = this->_values[1] - this->_values[0];
			derivative = dP / dt;
		}
		else if (iLater == size) {
			value = this->_values.back();
			T_time dt = this->_times[size-1] - this->_times[size-2];
			T_value dP = this->_values[size-1] - this->_values[size-2];
			derivative = dP / dt;
		} else {
			T_time dt = (this->_times[iLater] - this->_times[iLater-1]);
			T_time tu = (t - this->_times[iLater-1]) / dt;
			value = (1-tu)*this->_values[iLater-1] + tu*this->_values[iLater];
			T_value dP = this->_values[iLater] - this->_values[iLater-1];
			derivative = dP / dt;
		}
	}
Ejemplo n.º 6
0
void QAniCameraInstance::generateInterpolatedFrame(QAniKeyframe * frame) {
	float itp = (frame->getTime() - getStartTime()) / getDuration();
	CameraOptions co1 = ((QAniCameraKeyframe*)m_start)->getOptions();
	CameraOptions co2 = ((QAniCameraKeyframe*)m_end)->getOptions();
	CameraOptions & co = ((QAniCameraKeyframe*)frame)->getOptions();

	co.l = co1.l + m_lookTrans * itp;

	if (m_trackballRadians != 0.0) co.c = Matrix4x4::fromRotation(m_trackballAxis, m_trackballRadians * itp) * co1.c;
	else co.c = co1.c;

	if (m_tiltRadians != 0.0) {
		co.u = Matrix4x4::fromRotation(m_tiltAxis, m_tiltRadians * itp) * co1.u;
		co.o = Matrix4x4::fromRotation(m_tiltAxis, m_tiltRadians * itp) * co1.o;
	}
	else {
		co.u = co1.u;
		co.o = co1.o;
	}

	co.dist = co1.dist + m_zoom * itp;

	co.nearclip = co1.nearclip;
	co.farclip = co1.farclip;
	co.fov = co1.fov;
	co.maxDist = co1.maxDist;
}
Ejemplo n.º 7
0
// root search
void SimplePVSearch::search(Board board) {
	prepareToSearch();
	setStartTime(getTickCount());
	setTimeToStop();
	searchScore = idSearch(board);
	time = getTickCount()-getStartTime();
}
Ejemplo n.º 8
0
void QAniSliceInstance::generateInterpolatedFrame(QAniKeyframe * frame) {
	float itp = (frame->getTime() - getStartTime()) / getDuration();
	Slicer s1 = ((QAniSliceKeyframe*)m_start)->getSlicer();
	Slicer s2 = ((QAniSliceKeyframe*)m_end)->getSlicer();
	Slicer& s = ((QAniSliceKeyframe*)frame)->getSlicer();
	if (m_vecRadians) {
		s.setVec(Matrix4x4::fromRotation(m_vecAxis, m_vecRadians * itp) * s1.getVec());
	}
	s.setDist(s1.getDist() + m_distChange * itp);
	switch (m_maskingChange) {
	case 2:
		s.setMaskingColor(QColor(255*0.75,255*0.75,255*0.75,255*0.25));
		s.setMasking(true);
		break;
	case 1:
		s.setMaskingColor(QColor(255*0.75,255*0.75,255*0.75,255*0.25*itp));
		s.setMasking(true);
		break;
	case 0:
		s.setMaskingColor(QColor(255*0.75,255*0.75,255*0.75,255*0.25));
		s.setMasking(false);
		break;
	case -1:
		s.setMaskingColor(QColor(255*0.75,255*0.75,255*0.75,255*0.25*(1-itp)));
		s.setMasking(true);
		break;
	}
}
void OsuManiaRenderer::RenderVisible(Window& _win)
{
	Beatmap* beatmap = play->beatmap;
	std::vector<Hitobject*>& hitobjects = beatmap->getHitobjects();

	/// \TODO: Faster object search
	for (int i = 0; i < hitobjects.size(); i++)
	{
		bool HoldStart = BTWN(hitobjects[i]->getTime(), getStartTime(), hitobjects[i]->getEndTime());
		bool HoldEnd = BTWN(hitobjects[i]->getTime(), getEndTime(), hitobjects[i]->getEndTime());
		bool circle = BTWN(getStartTime(), hitobjects[i]->getTime(), getEndTime());
		
		if (HoldStart || HoldEnd || circle)
			hitNotes[i]->Update(_win);
	}
}
Ejemplo n.º 10
0
Frames CompartmentReportCommon::loadFrames(double start, double end) const
{
    const auto startTime = getStartTime();
    if (start >= getEndTime() || end < startTime || end <= start)
        return Frames();

    const double timestep = getTimestep();
    const size_t startFrame = _getFrameNumber(start);
    end = std::nextafter(end, -INFINITY);
    const size_t count = _getFrameNumber(end) - startFrame + 1;

    Frames frames;

    frames.timeStamps.reset(new std::vector<double>);
    for (size_t i = 0; i < count; ++i)
        frames.timeStamps->push_back(startTime + (i + startFrame) * timestep);

    const auto frameSize = getFrameSize();
    frames.data.reset(new floats(frameSize * count));
    if (frameSize == 0)
        return frames;

    if (!_loadFrames(startFrame, count, frames.data->data()))
        return Frames();

    return frames;
}
Ejemplo n.º 11
0
		bool FareTicket::isAvailable(const graph::ServicePointer* newService, const graph::ServicePointer* lastService)
		{
			if((newService == NULL) || (_fare == NULL) || (!_available))
				return false;

			// test continuity
			if(_fare->isRequiredContinuity()
					&& lastService != NULL
					&& lastService != getLastService())
			{
				return false;
			}

			// test the number of permitted connections
			if(_fare->getPermittedConnectionsNumber()
					&& _fare->getPermittedConnectionsNumber() <= getNumberOfConnections())
			{
				return false;
			}

			// test validity period of the ticket
			boost::posix_time::time_duration period = newService->getArrivalDateTime() - getStartTime();
			if(_fare->getValidityPeriod() < period.minutes())
				return false;

			return true;
		}
Ejemplo n.º 12
0
//------------------------------------------------------------------------------
void WESplClient::printStats()
{
	if(fOwner.getDebugLvl())
	{
		cout <<"\tPMid      \t"<<getPmId()<<endl;
		cout <<"\tTx Rows   \t"<<getRowTx()<<endl;
		//if(fOwner.getDebugLvl())
		cout <<"\tTx Bytes  \t"<<getBytesTx()<<endl;
		//if(fOwner.getDebugLvl())
		cout <<"\tRcv Bytes \t"<<getBytesRcv()<<endl;
		cout <<"\tInserted/Read Rows   "<<fRowsUploadInfo.fRowsInserted<<"/"
										<<fRowsUploadInfo.fRowsRead<< endl;
		if(fColOorVec.size()>0)
			cout <<"\tCol Id\tColName\t\t\tout-of-range count" <<endl;
		WEColOorVec::iterator aIt = fColOorVec.begin();
		while(aIt != fColOorVec.end())
		{
			cout <<"\t"<<(*aIt).fColNum <<"\t"<<(*aIt).fColName <<"\t\t" << (*aIt).fNoOfOORs <<endl;
			aIt++;
		}
		if(!fBadDataFile.empty())cout<<"\tBad Data Filename    "<<fBadDataFile<<endl;
		if(!fErrInfoFile.empty())cout<<"\tError Filename       "<<fErrInfoFile<<endl;
		cout <<"\t("<<getLastInTime()-getStartTime()<<"sec)"<<endl;
		cout <<"\t"<<endl;
	}
}
Ejemplo n.º 13
0
string Event::getEventDetails ()
{
	stringstream output;
	if (getEventType()!="d")
		output << getStartTime().formatCompleteTime(getEndTime()) << " - ";
	 
	output << formatDisplay(getName()) ;
	if (getLocation()!="")
		output << " at "<< formatDisplay(getLocation());
	if (getEventType()=="d")
		output << " (by " << getStartTime().formatCompleteTime(getEndTime()) << ")";
	output<<" " << getEventStatus();
	output << endl;

	return output.str();

}
Ejemplo n.º 14
0
    void TimeMap::initFirstTimestepsYears()  {

        m_first_timestep_years.clear();

        const boost::posix_time::ptime& ptime_prev = getStartTime(0);
        boost::gregorian::date prev_date = ptime_prev.date();

        for (size_t rstep = 0; rstep < m_timeList.size(); ++rstep) {
            const boost::posix_time::ptime& ptime_cur = getStartTime(rstep);
            boost::gregorian::date cur_date = ptime_cur.date();

            if (cur_date.year() != prev_date.year()) {
                m_first_timestep_years.push_back(rstep);
                prev_date = cur_date;
            }
        }
    }
Ejemplo n.º 15
0
void MxmlMeasure::addDummyRest(void) {
   HumNum measuredur = getTimeSigDur();
   HumNum starttime = getStartTime();
   MxmlEvent* event = new MxmlEvent(this);
   m_events.push_back(event);
   MxmlMeasure* measure = this;
   event->makeDummyRest(measure, starttime, measuredur);
}
Ejemplo n.º 16
0
Datum StandardDynamicStimulus::getCurrentAnnounceDrawData() {
    Datum announceData(M_DICTIONARY, 5);
    announceData.addElement(STIM_NAME, tag);
    announceData.addElement(STIM_ACTION, STIM_ACTION_DRAW);
    announceData.addElement(STIM_TYPE, "standard_dynamic_stimulus");  
    announceData.addElement("start_time", getStartTime());  
    return announceData;
}
Ejemplo n.º 17
0
bool
UserRight::checkAccessAt( uint32 t ) const {
   if ( getStartTime() <= t && (getEndTime() >= t || getEndTime() == 0) ) {
      return true;
   } else {
      return false;
   }
}
Ejemplo n.º 18
0
// @ctor SelectAddEvenNotesCommand
// @author Tom Breton (Tehom)
SelectAddEvenNotesCommand::
SelectAddEvenNotesCommand(BeatEventVector beatEventVector, Segment *segment) :
    BasicCommand(getGlobalName(),
                 *segment,
                 getStartTime(beatEventVector),
                 getEndTime(beatEventVector), true),
    m_beatEventVector(beatEventVector)
{
}
Ejemplo n.º 19
0
void
MakeNotesViableCommand::modifySegment()
{
    Segment &segment(getSegment());
    SegmentNotationHelper helper(segment);

    if (m_selection) {
        EventSelection::RangeTimeList ranges(m_selection->getRangeTimes());
        for (EventSelection::RangeTimeList::iterator i = ranges.begin();
                i != ranges.end(); ++i) {
            helper.makeNotesViable(i->first, i->second, true);
            segment.normalizeRests(i->first, i->second);
        }
    } else {
        helper.makeNotesViable(getStartTime(), getEndTime(), true);
        segment.normalizeRests(getStartTime(), getEndTime());
    }
}
Ejemplo n.º 20
0
    void TimeMap::initFirstTimestepsMonths() {
        m_first_timestep_months.clear();

        const boost::posix_time::ptime& ptime_prev = getStartTime(0);
        boost::gregorian::date prev_date = ptime_prev.date();

        for (size_t rstep = 0; rstep < m_timeList.size(); ++rstep) {
            const boost::posix_time::ptime& ptime_cur = getStartTime(rstep);
            boost::gregorian::date cur_date = ptime_cur.date();

            if (cur_date.month() != prev_date.month()) {
                m_first_timestep_months.push_back(rstep);
                prev_date = cur_date;
            } else if (cur_date.year() != prev_date.year()) { //Same month but different year
                m_first_timestep_months.push_back(rstep);
                prev_date = cur_date;
            }
        }
    }
Ejemplo n.º 21
0
		void					MorpherCtrl::getAnimDataTimeRange(REAL& start, REAL& end) const
		{
			start = INFINITY;
			end = -INFINITY;
			for(size_t i = 0; i < _channels.size(); ++i)
			{
				start = min(getStartTime(_channels[i].eval_weight, start), start);
				end = max(getEndTime(_channels[i].eval_weight, end), end);
			}
		}
Ejemplo n.º 22
0
	/// \brief get interpolated value at time t
	///
	T_value getValue(T_time t) const {
		assert(t >= getStartTime());
		assert(t < getEndTime());
		int iLater = 0;
		while (iLater < this->_times.size() and this->_times[iLater] <= t) iLater++;
		if (iLater == 0) return this->_values.front();
		if (iLater == this->_times.size()) return this->_values.back();
		T_time dt = (this->_times[iLater] - this->_times[iLater-1]);
		T_time tu = (t - this->_times[iLater-1]) / dt;
		return (1-tu)*this->_values[iLater-1] + tu*this->_values[iLater];
	}
Ejemplo n.º 23
0
void
AddIndicationCommand::modifySegment()
{
    SegmentNotationHelper helper(getSegment());
    Segment::iterator i, j;
    int actualSubordering = Indication::EventSubOrdering;

    helper.segment().getTimeSlice(getStartTime(), i, j);
    for (Segment::iterator k = i; k != j; ++k) {
        if ((*k)->has(BaseProperties::IS_GRACE_NOTE)) {
            // If a grace note is inserted before an indication, the
            // subordering is minor than Indication::EventSubOrdering,
            // therefore we have to decrement the subordering to insert
            // the new indication before the grace note.
            if ((*k)->getSubOrdering() <= actualSubordering) {
                actualSubordering = (*k)->getSubOrdering() - 1;
            }
        }
    }

    Indication indication(m_indicationType, m_indicationDuration);
    Event *e;

    e = new Event(Indication::EventType, m_indicationStart, m_indicationDuration,
                  actualSubordering);
    e->set<String>(Indication::IndicationTypePropertyName, m_indicationType);
    e->set<Int>("indicationduration", m_indicationDuration);
    helper.segment().insert(e);
    m_lastInsertedEvent = e;

    if (indication.isOttavaType()) {
        for (Segment::iterator i = getSegment().findTime(getStartTime());
             i != getSegment().findTime(getStartTime() + m_indicationDuration);
             ++i) {
            if ((*i)->isa(Note::EventType)) {
                (*i)->setMaybe<Int>(NotationProperties::OTTAVA_SHIFT,
                                    indication.getOttavaShift());
            }
        }
    }
}
Ejemplo n.º 24
0
void MxmlMeasure::calculateDuration(void) {
	HumNum maxdur   = 0;
	HumNum sum      = 0;
	for (int i=0; i<(int)m_events.size(); i++) {
		m_events[i]->setStartTime(sum + getStartTime());
		sum += m_events[i]->getDuration();
		if (maxdur < sum) {
			maxdur = sum;
		}
	}
	setDuration(maxdur);
}
Ejemplo n.º 25
0
size_t CompartmentReportCommon::_getFrameNumber(double timestamp) const
{
    const auto startTime = getStartTime();
    const auto endTime = getEndTime();
    assert(endTime > startTime);
    const auto step = getTimestep();

    timestamp =
        std::max(std::min(timestamp, std::nextafter(endTime, -INFINITY)),
                 startTime) -
        startTime;

    return size_t(timestamp / step);
}
Ejemplo n.º 26
0
	const float* MovedSound::readSample()
	{
		bool playhead_was_negative = playhead < getStartTime();

		cursor_position_in_buffer ++;
		updatePlayhead();

		if (playhead >= getStartTime() && playhead_was_negative)
		{
			fillBuffer();
		}

		int channels = (sound != NULL ? sound->getChannels() : MAX_CHANNELS);

		if (buffer_actual_size > 0)
		{

			if (cursor_position_in_buffer >= buffer_allocated_size)
			{
				fillBuffer();
			}

			for (int i = 0; i < channels; i++)
			{
				read_buffer[i] = buffer[i][cursor_position_in_buffer];
			}
		}
		else
		{
			for (int i = 0; i < channels; i++)
			{
				read_buffer[i] = 0.f;
			}
		}

		return read_buffer;
	}
Ejemplo n.º 27
0
void
EventUnquantizeCommand::modifySegment()
{
    Segment &segment = getSegment();

    if (m_selection) {

        m_quantizer->unquantize(m_selection);

    } else {
        m_quantizer->unquantize(&segment,
                                segment.findTime(getStartTime()),
                                segment.findTime(getEndTime()));
    }
}
Ejemplo n.º 28
0
void CConfigInfo::processorCfgValue()
{
	getHistoryDataDirectory();
	getSaveDataDirectoryBAR();
	getSaveDataDirectoryTIK();
	getDbType();
	getStartTime();
	getLoadMaxFilesSize();
	getAutoRunType();
	getAutoRunTime();

	//logInfo();


}
Ejemplo n.º 29
0
uint32
UserRight::printValue( char* target, 
                       UserConstants::UserRightField field ) const
{
   switch ( field ) {
      case UserConstants::USER_RIGHT_ID :
      case UserConstants::USER_RIGHT_USERUIN :
         mc2log << error << "UserRight::printValue asked to print "
                << "ID or userUIN, not supported." << endl;
         MC2_ASSERT( false );
         break;
      case UserConstants::USER_RIGHT_ADD_TIME :
         sprintf( target, "%u", getAddTime() );
         break;
      case UserConstants::USER_RIGHT_TYPE :
         // Needs to be signed for MySQL to keep all bits.
         sprintf( target, "%lld",
                  static_cast<int64> ( getUserRightType().getAsInt() ) );
         break;
      case UserConstants::USER_RIGHT_REGION_ID :
         sprintf( target, "%u", getRegionID() );
         break;
      case UserConstants::USER_RIGHT_START_TIME :
         sprintf( target, "%u", getStartTime() );
         break;
      case UserConstants::USER_RIGHT_END_TIME :
         sprintf( target, "%u", getEndTime() );
         break;
      case UserConstants::USER_RIGHT_DELETED :
         sprintf( target, "%hu", isDeleted() );
         break;
      case UserConstants::USER_RIGHT_ORIGIN :
         strcat( target, "'" );
         sqlString( target + 1, getOrigin() );
         strcat( target, "'" );
         break;

      default:
         mc2log << error << "UserRight::printValue unknown " 
                << "fieldType: " << (int)field << endl;
         break;
   }

   return strlen( target );
}
Ejemplo n.º 30
0
//-----------------------------------------------------------------------------
//
// VFadeEvent::onTrigger( pTime, pDelta );
//
// Start the fade sequence if a valid fade control can be found.
//
//-----------------------------------------------------------------------------
void VFadeEvent::onTrigger( const S32 &pTime, const S32 &pDelta )
{
    Parent::onTrigger( pTime, pDelta );

    // Fetch GUI Control.
    VFadeControl *fadeControl;
    if ( !Sim::findObject( "VFadeControlGUI", fadeControl ) )
    {
        // Invalid.
        return;
    }

    // Start Fade.
    fadeControl->start( getFadeType(), mDuration );

    // Set Elapsed Time.
    fadeControl->mElapsedTime = mAbs( pTime - getStartTime() );
}