summaryrefslogtreecommitdiff
path: root/3rdparty/imgui-node-editor/imgui_bezier_math.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/imgui-node-editor/imgui_bezier_math.h')
-rw-r--r--3rdparty/imgui-node-editor/imgui_bezier_math.h144
1 files changed, 0 insertions, 144 deletions
diff --git a/3rdparty/imgui-node-editor/imgui_bezier_math.h b/3rdparty/imgui-node-editor/imgui_bezier_math.h
deleted file mode 100644
index 85ead39..0000000
--- a/3rdparty/imgui-node-editor/imgui_bezier_math.h
+++ /dev/null
@@ -1,144 +0,0 @@
-//------------------------------------------------------------------------------
-// VERSION 0.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_BEZIER_MATH_H__
-# define __IMGUI_BEZIER_MATH_H__
-# pragma once
-
-
-//------------------------------------------------------------------------------
-# include "imgui_extra_math.h"
-
-
-//------------------------------------------------------------------------------
-template <typename T>
-struct ImCubicBezierPointsT
-{
- T P0;
- T P1;
- T P2;
- T P3;
-};
-using ImCubicBezierPoints = ImCubicBezierPointsT<ImVec2>;
-
-
-//------------------------------------------------------------------------------
-// Low-level Bezier curve sampling.
-template <typename T> inline T ImLinearBezier(const T& p0, const T& p1, float t);
-template <typename T> inline T ImLinearBezierDt(const T& p0, const T& p1, float t);
-template <typename T> inline T ImQuadraticBezier(const T& p0, const T& p1, const T& p2, float t);
-template <typename T> inline T ImQuadraticBezierDt(const T& p0, const T& p1, const T& p2, float t);
-template <typename T> inline T ImCubicBezier(const T& p0, const T& p1, const T& p2, const T& p3, float t);
-template <typename T> inline T ImCubicBezierDt(const T& p0, const T& p1, const T& p2, const T& p3, float t);
-
-
-// High-level Bezier sampling, automatically collapse to lower level Bezier curves if control points overlap.
-template <typename T> inline T ImCubicBezierSample(const T& p0, const T& p1, const T& p2, const T& p3, float t);
-template <typename T> inline T ImCubicBezierSample(const ImCubicBezierPointsT<T>& curve, float t);
-template <typename T> inline T ImCubicBezierTangent(const T& p0, const T& p1, const T& p2, const T& p3, float t);
-template <typename T> inline T ImCubicBezierTangent(const ImCubicBezierPointsT<T>& curve, float t);
-
-
-// Calculate approximate length of Cubic Bezier curve.
-template <typename T> inline float ImCubicBezierLength(const T& p0, const T& p1, const T& p2, const T& p3);
-template <typename T> inline float ImCubicBezierLength(const ImCubicBezierPointsT<T>& curve);
-
-
-// Splits Cubic Bezier curve into two curves.
-template <typename T>
-struct ImCubicBezierSplitResultT
-{
- ImCubicBezierPointsT<T> Left;
- ImCubicBezierPointsT<T> Right;
-};
-using ImCubicBezierSplitResult = ImCubicBezierSplitResultT<ImVec2>;
-
-template <typename T> inline ImCubicBezierSplitResultT<T> ImCubicBezierSplit(const T& p0, const T& p1, const T& p2, const T& p3, float t);
-template <typename T> inline ImCubicBezierSplitResultT<T> ImCubicBezierSplit(const ImCubicBezierPointsT<T>& curve, float t);
-
-
-// Returns bounding rectangle of Cubic Bezier curve.
-inline ImRect ImCubicBezierBoundingRect(const ImVec2& p0, const ImVec2& p1, const ImVec2& p2, const ImVec2& p3);
-inline ImRect ImCubicBezierBoundingRect(const ImCubicBezierPoints& curve);
-
-
-// Project point on Cubic Bezier curve.
-struct ImProjectResult
-{
- ImVec2 Point; // Point on curve
- float Time; // [0 - 1]
- float Distance; // Distance to curve
-};
-
-inline ImProjectResult ImProjectOnCubicBezier(const ImVec2& p, const ImVec2& p0, const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const int subdivisions = 100);
-inline ImProjectResult ImProjectOnCubicBezier(const ImVec2& p, const ImCubicBezierPoints& curve, const int subdivisions = 100);
-
-
-// Calculate intersection between line and a Cubic Bezier curve.
-struct ImCubicBezierIntersectResult
-{
- int Count;
- ImVec2 Points[3];
-};
-
-inline ImCubicBezierIntersectResult ImCubicBezierLineIntersect(const ImVec2& p0, const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& a0, const ImVec2& a1);
-inline ImCubicBezierIntersectResult ImCubicBezierLineIntersect(const ImCubicBezierPoints& curve, const ImLine& line);
-
-
-// Adaptive Cubic Bezier subdivision.
-enum ImCubicBezierSubdivideFlags
-{
- ImCubicBezierSubdivide_None = 0,
- ImCubicBezierSubdivide_SkipFirst = 1
-};
-
-struct ImCubicBezierSubdivideSample
-{
- ImVec2 Point;
- ImVec2 Tangent;
-};
-
-using ImCubicBezierSubdivideCallback = void (*)(const ImCubicBezierSubdivideSample& p, void* user_pointer);
-
-inline void ImCubicBezierSubdivide(ImCubicBezierSubdivideCallback callback, void* user_pointer, const ImVec2& p0, const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, float tess_tol = -1.0f, ImCubicBezierSubdivideFlags flags = ImCubicBezierSubdivide_None);
-inline void ImCubicBezierSubdivide(ImCubicBezierSubdivideCallback callback, void* user_pointer, const ImCubicBezierPoints& curve, float tess_tol = -1.0f, ImCubicBezierSubdivideFlags flags = ImCubicBezierSubdivide_None);
-
-
-// F has signature void(const ImCubicBezierSubdivideSample& p)
-template <typename F> inline void ImCubicBezierSubdivide(F& callback, const ImVec2& p0, const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, float tess_tol = -1.0f, ImCubicBezierSubdivideFlags flags = ImCubicBezierSubdivide_None);
-template <typename F> inline void ImCubicBezierSubdivide(F& callback, const ImCubicBezierPoints& curve, float tess_tol = -1.0f, ImCubicBezierSubdivideFlags flags = ImCubicBezierSubdivide_None);
-
-// Fixed step Cubic Bezier subdivision.
-struct ImCubicBezierFixedStepSample
-{
- float T;
- float Length;
- ImVec2 Point;
- bool BreakSearch;
-};
-
-using ImCubicBezierFixedStepCallback = void (*)(ImCubicBezierFixedStepSample& sample, void* user_pointer);
-
-inline void ImCubicBezierFixedStep(ImCubicBezierFixedStepCallback callback, void* user_pointer, const ImVec2& p0, const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, float step, bool overshoot = false, float max_value_error = 1e-3f, float max_t_error = 1e-5f);
-inline void ImCubicBezierFixedStep(ImCubicBezierFixedStepCallback callback, void* user_pointer, const ImCubicBezierPoints& curve, float step, bool overshoot = false, float max_value_error = 1e-3f, float max_t_error = 1e-5f);
-
-
-// F has signature void(const ImCubicBezierFixedStepSample& p)
-template <typename F> inline void ImCubicBezierFixedStep(F& callback, const ImVec2& p0, const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, float step, bool overshoot = false, float max_value_error = 1e-3f, float max_t_error = 1e-5f);
-template <typename F> inline void ImCubicBezierFixedStep(F& callback, const ImCubicBezierPoints& curve, float step, bool overshoot = false, float max_value_error = 1e-3f, float max_t_error = 1e-5f);
-
-
-//------------------------------------------------------------------------------
-# include "imgui_bezier_math.inl"
-
-
-//------------------------------------------------------------------------------
-# endif // __IMGUI_BEZIER_MATH_H__