Skip to content

File physics.hpp

File List > atlas > physics > physics_3d > physics.hpp

Go to the documentation of this file

#pragma once

#include <physics/physics_3d/physics_engine.hpp>
#include <physics/jolt-cpp/jolt_components.hpp>
#include <core/scene/scene_object.hpp>

namespace atlas::physics {
    enum physics_backend : uint8_t { JoltBackend };

    ref<physics_engine> initialize_engine(
      const ref<scene_object>& p_physics_object,
      flecs::world& p_registery);

    void add_force(const glm::vec3& force, const physics_body& body);

    // void add_force_world_point(glm::vec3 force,
    //   glm::vec3 position,
    //   physics_body body);

    void add_velocity(const glm::vec3& velocity, const physics_body& body);

    void add_angular_velocity(const glm::vec3& angular_velocity,
                              const physics_body& body);

    void set_velocity(const glm::vec3& velocity, const physics_body& body);

    void set_angular_velocity(const glm::vec3& angular_velocity,
                              const physics_body& body);

};