/**
  * {@inheritdoc}
  */
 public static function fromArray(array $values)
 {
     $message = new self();
     $values = array_merge(['next_camera' => null, 'interpolation' => [], 'target_type' => [], 'ease_in_speed' => [], 'east_out_speed' => [], 'duration_seconds' => [], 'wait_seconds' => [], 'transition_seconds' => [], 'angle_degree' => [], 'angle_offset_degree' => [], 'pitch_degree' => [], 'pitch_offset_degree' => [], 'roll_degree' => [], 'distance_meters' => [], 'height_percent' => [], 'vert_ctr_ratio' => []], $values);
     $message->setNextCamera($values['next_camera']);
     foreach ($values['interpolation'] as $item) {
         $message->addInterpolation($item);
     }
     foreach ($values['target_type'] as $item) {
         $message->addTargetType($item);
     }
     foreach ($values['ease_in_speed'] as $item) {
         $message->addEaseInSpeed($item);
     }
     foreach ($values['east_out_speed'] as $item) {
         $message->addEastOutSpeed($item);
     }
     foreach ($values['duration_seconds'] as $item) {
         $message->addDurationSeconds($item);
     }
     foreach ($values['wait_seconds'] as $item) {
         $message->addWaitSeconds($item);
     }
     foreach ($values['transition_seconds'] as $item) {
         $message->addTransitionSeconds($item);
     }
     foreach ($values['angle_degree'] as $item) {
         $message->addAngleDegree($item);
     }
     foreach ($values['angle_offset_degree'] as $item) {
         $message->addAngleOffsetDegree($item);
     }
     foreach ($values['pitch_degree'] as $item) {
         $message->addPitchDegree($item);
     }
     foreach ($values['pitch_offset_degree'] as $item) {
         $message->addPitchOffsetDegree($item);
     }
     foreach ($values['roll_degree'] as $item) {
         $message->addRollDegree($item);
     }
     foreach ($values['distance_meters'] as $item) {
         $message->addDistanceMeters($item);
     }
     foreach ($values['height_percent'] as $item) {
         $message->addHeightPercent($item);
     }
     foreach ($values['vert_ctr_ratio'] as $item) {
         $message->addVertCtrRatio($item);
     }
     return $message;
 }