/** * Construct laps from splits object */ protected function constructLapsFromSplits() { if ($this->handmadeLapsDiffer() && !Request::param('calculate-for-splits')) { $this->Laps->readFrom($this->Context->activity()->splits()); return; } if ($this->handmadeLapsTimeDiffers()) { $this->constructLapsFromSplitsDistances(); } else { $this->constructLapsFromSplitsTimes(); } $num = $this->Laps->num(); foreach ($this->Context->activity()->splits()->asArray() as $i => $split) { if ($i < $num) { $this->Laps->at($i)->setMode($split->isActive() ? Lap::MODE_ACTIVE : Lap::MODE_RESTING); } } }
/** * Construct laps from splits object */ protected function constructLapsFromSplits() { if ($this->handmadeLapsDiffer() && !Request::param('calculate-for-splits')) { $this->Laps->readFrom($this->Context->activity()->splits()); return; } $Distances = array(); $sum = 0; foreach ($this->Context->activity()->splits()->asArray() as $split) { $Distances[] = $split->distance() + $sum; $sum += $split->distance(); } $this->Laps->calculateFrom($Distances, $this->Context->trackdata(), $this->Context->route()); $num = $this->Laps->num(); foreach ($this->Context->activity()->splits()->asArray() as $i => $split) { if ($i < $num) { $this->Laps->at($i)->setMode($split->isActive() ? Lap::MODE_ACTIVE : Lap::MODE_RESTING); } } }