#ifndef VECTOR3_H
#define VECTOR3_H
#include "core/error/error_macros.h"
#include "core/math/math_funcs.h"
#include "core/string/ustring.h"
struct Basis;
struct Vector2;
struct Vector3i;
struct [[nodiscard]] Vector3 { … };
Vector3 Vector3::cross(const Vector3 &p_with) const { … }
real_t Vector3::dot(const Vector3 &p_with) const { … }
Vector3 Vector3::abs() const { … }
Vector3 Vector3::sign() const { … }
Vector3 Vector3::floor() const { … }
Vector3 Vector3::ceil() const { … }
Vector3 Vector3::round() const { … }
Vector3 Vector3::lerp(const Vector3 &p_to, real_t p_weight) const { … }
Vector3 Vector3::slerp(const Vector3 &p_to, real_t p_weight) const { … }
Vector3 Vector3::cubic_interpolate(const Vector3 &p_b, const Vector3 &p_pre_a, const Vector3 &p_post_b, real_t p_weight) const { … }
Vector3 Vector3::cubic_interpolate_in_time(const Vector3 &p_b, const Vector3 &p_pre_a, const Vector3 &p_post_b, real_t p_weight, real_t p_b_t, real_t p_pre_a_t, real_t p_post_b_t) const { … }
Vector3 Vector3::bezier_interpolate(const Vector3 &p_control_1, const Vector3 &p_control_2, const Vector3 &p_end, real_t p_t) const { … }
Vector3 Vector3::bezier_derivative(const Vector3 &p_control_1, const Vector3 &p_control_2, const Vector3 &p_end, real_t p_t) const { … }
real_t Vector3::distance_to(const Vector3 &p_to) const { … }
real_t Vector3::distance_squared_to(const Vector3 &p_to) const { … }
Vector3 Vector3::posmod(real_t p_mod) const { … }
Vector3 Vector3::posmodv(const Vector3 &p_modv) const { … }
Vector3 Vector3::project(const Vector3 &p_to) const { … }
real_t Vector3::angle_to(const Vector3 &p_to) const { … }
real_t Vector3::signed_angle_to(const Vector3 &p_to, const Vector3 &p_axis) const { … }
Vector3 Vector3::direction_to(const Vector3 &p_to) const { … }
Vector3 &Vector3::operator+=(const Vector3 &p_v) { … }
Vector3 Vector3::operator+(const Vector3 &p_v) const { … }
Vector3 &Vector3::operator-=(const Vector3 &p_v) { … }
Vector3 Vector3::operator-(const Vector3 &p_v) const { … }
Vector3 &Vector3::operator*=(const Vector3 &p_v) { … }
Vector3 Vector3::operator*(const Vector3 &p_v) const { … }
Vector3 &Vector3::operator/=(const Vector3 &p_v) { … }
Vector3 Vector3::operator/(const Vector3 &p_v) const { … }
Vector3 &Vector3::operator*=(real_t p_scalar) { … }
_FORCE_INLINE_ Vector3 operator*(float p_scalar, const Vector3 &p_vec) { … }
_FORCE_INLINE_ Vector3 operator*(double p_scalar, const Vector3 &p_vec) { … }
_FORCE_INLINE_ Vector3 operator*(int32_t p_scalar, const Vector3 &p_vec) { … }
_FORCE_INLINE_ Vector3 operator*(int64_t p_scalar, const Vector3 &p_vec) { … }
Vector3 Vector3::operator*(real_t p_scalar) const { … }
Vector3 &Vector3::operator/=(real_t p_scalar) { … }
Vector3 Vector3::operator/(real_t p_scalar) const { … }
Vector3 Vector3::operator-() const { … }
bool Vector3::operator==(const Vector3 &p_v) const { … }
bool Vector3::operator!=(const Vector3 &p_v) const { … }
bool Vector3::operator<(const Vector3 &p_v) const { … }
bool Vector3::operator>(const Vector3 &p_v) const { … }
bool Vector3::operator<=(const Vector3 &p_v) const { … }
bool Vector3::operator>=(const Vector3 &p_v) const { … }
_FORCE_INLINE_ Vector3 vec3_cross(const Vector3 &p_a, const Vector3 &p_b) { … }
_FORCE_INLINE_ real_t vec3_dot(const Vector3 &p_a, const Vector3 &p_b) { … }
real_t Vector3::length() const { … }
real_t Vector3::length_squared() const { … }
void Vector3::normalize() { … }
Vector3 Vector3::normalized() const { … }
bool Vector3::is_normalized() const { … }
Vector3 Vector3::inverse() const { … }
void Vector3::zero() { … }
Vector3 Vector3::slide(const Vector3 &p_normal) const { … }
Vector3 Vector3::bounce(const Vector3 &p_normal) const { … }
Vector3 Vector3::reflect(const Vector3 &p_normal) const { … }
#endif