begin cleanup from other project
This commit is contained in:
68
lib/imgui_extra_math.h
Executable file
68
lib/imgui_extra_math.h
Executable file
@ -0,0 +1,68 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// VERSION 0.9.1
|
||||
//
|
||||
// LICENSE
|
||||
// This software is dual-licensed to the public domain and under the following
|
||||
// license: you are granted a perpetual, irrevocable license to copy, modify,
|
||||
// publish, and distribute this file as you see fit.
|
||||
//
|
||||
// CREDITS
|
||||
// Written by Michal Cichon
|
||||
//------------------------------------------------------------------------------
|
||||
#ifndef __IMGUI_EXTRA_MATH_H__
|
||||
#define __IMGUI_EXTRA_MATH_H__
|
||||
#pragma once
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#ifndef IMGUI_DEFINE_MATH_OPERATORS
|
||||
#define IMGUI_DEFINE_MATH_OPERATORS
|
||||
#endif
|
||||
#include "imgui.h"
|
||||
#include "imgui_internal.h"
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
struct ImLine {
|
||||
ImVec2 A, B;
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#if IMGUI_VERSION_NUM < 19002
|
||||
inline bool operator==(const ImVec2 &lhs, const ImVec2 &rhs);
|
||||
inline bool operator!=(const ImVec2 &lhs, const ImVec2 &rhs);
|
||||
#endif
|
||||
inline ImVec2 operator*(const float lhs, const ImVec2 &rhs);
|
||||
#if IMGUI_VERSION_NUM < 18955
|
||||
inline ImVec2 operator-(const ImVec2 &lhs);
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
inline float ImLength(float v);
|
||||
inline float ImLength(const ImVec2 &v);
|
||||
inline float ImLengthSqr(float v);
|
||||
inline ImVec2 ImNormalized(const ImVec2 &v);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
inline bool ImRect_IsEmpty(const ImRect &rect);
|
||||
inline ImVec2 ImRect_ClosestPoint(const ImRect &rect, const ImVec2 &p,
|
||||
bool snap_to_edge);
|
||||
inline ImVec2 ImRect_ClosestPoint(const ImRect &rect, const ImVec2 &p,
|
||||
bool snap_to_edge, float radius);
|
||||
inline ImVec2 ImRect_ClosestPoint(const ImRect &rect, const ImRect &b);
|
||||
inline ImLine ImRect_ClosestLine(const ImRect &rect_a, const ImRect &rect_b);
|
||||
inline ImLine ImRect_ClosestLine(const ImRect &rect_a, const ImRect &rect_b,
|
||||
float radius_a, float radius_b);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
namespace ImEasing {
|
||||
|
||||
template <typename V, typename T> inline V EaseOutQuad(V b, V c, T t) {
|
||||
return b - c * (t * (t - 2));
|
||||
}
|
||||
|
||||
} // namespace ImEasing
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#include "imgui_extra_math.inl"
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#endif // __IMGUI_EXTRA_MATH_H__
|
Reference in New Issue
Block a user