Unravel Engine C++ Reference
Loading...
Searching...
No Matches
model_system.cpp File Reference
#include "model_system.h"
#include <engine/ecs/components/transform_component.h>
#include <engine/rendering/ecs/components/model_component.h>
#include <engine/ecs/ecs.h>
#include <engine/events.h>
#include <engine/profiler/profiler.h>
#include <hpp/small_vector.hpp>
#include <logging/logging.h>
#include <poolstl/poolstl.hpp>

Go to the source code of this file.

Namespaces

namespace  unravel
 

Macros

#define POOLSTL_STD_SUPPLEMENT   1
 

Typedefs

template<typename T >
using unravel::ik_vector = hpp::small_vector<T>
 

Functions

auto unravel::bones_collect (entt::handle end_effector, size_t num_bones_in_chain) -> ik_vector< transform_component * >
 
auto unravel::get_end_position (transform_component *comp) -> math::vec3
 
auto unravel::ccdik_advanced (ik_vector< transform_component * > &chain, math::vec3 target, float threshold=0.001f, int maxIterations=10, float damping_error_threshold=0.5f, float weight_exponent=1.0f) -> bool
 
auto unravel::fabrik (ik_vector< transform_component * > &chain, const math::vec3 &target, float threshold=0.001f, int max_iterations=10) -> bool
 
glm::vec3 unravel::transform_point (const glm::mat4 &mat, const glm::vec3 &point)
 
glm::vec3 unravel::transform_vector (const glm::mat4 &mat, const glm::vec3 &vec)
 
bool unravel::solve_two_bone_ik_impl (transform_component *start_joint, transform_component *mid_joint, transform_component *end_joint, const glm::vec3 &target, const glm::vec3 &mid_axis, const glm::vec3 &pole_vector, float twist_angle, float weight, float soften)
 Two-bone IK solver.
 
auto unravel::solve_two_bone_ik_weighted (transform_component *start_joint, transform_component *mid_joint, transform_component *end_joint, const math::vec3 &target, float weight=1.0f, float soften=1.0f, const math::vec3 &pole=math::vec3(0, 0, 1), float twist_angle=0.f) -> bool
 
auto unravel::ik_set_position_ccd (entt::handle end_effector, const math::vec3 &target, size_t num_bones_in_chain, float threshold, int max_iterations) -> bool
 
auto unravel::ik_set_position_fabrik (entt::handle end_effector, const math::vec3 &target, size_t num_bones_in_chain, float threshold, int max_iterations) -> bool
 
auto unravel::ik_set_position_two_bone (entt::handle end_effector, const math::vec3 &target, const math::vec3 &forward, float weight, float soften, int max_iterations) -> bool
 
auto unravel::ik_look_at_position (entt::handle end_effector, const math::vec3 &target, float weight) -> bool
 

Macro Definition Documentation

◆ POOLSTL_STD_SUPPLEMENT

#define POOLSTL_STD_SUPPLEMENT   1

Definition at line 12 of file model_system.cpp.