//------------------------------------------------------------------------------
// Project Phoenix
//
// Copyright (c) 2017-2018 RWTH Aachen University, Germany,
// Virtual Reality & Immersive Visualization Group.
//------------------------------------------------------------------------------
//                                 License
//
// Licensed under the 3-Clause BSD License (the "License");
// you may not use this file except in compliance with the License.
// See the file LICENSE for the full text.
// You may obtain a copy of the License at
//
//     https://opensource.org/licenses/BSD-3-Clause
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//------------------------------------------------------------------------------

#include "rotation_behavior.hpp"

#include "glm/detail/type_vec3.hpp"
#include "glm/glm.hpp"

#include "phx/engine.hpp"
#include "phx/entity.hpp"
#include "phx/scene.hpp"
#include "phx/transform.hpp"

void RotationBehavior::OnUpdate() {
  auto transform = GetEntity()->GetFirstComponent<phx::Transform>();
  if (transform) {
    const glm::quat model_rot = glm::angleAxis(
        0.1f * glm::pi<float>() *
            static_cast<float>(time_info_->time_since_startup.count()),
        glm::vec3(0, 1, 0));
    transform->SetLocalRotation(model_rot);
  }
}