summaryrefslogtreecommitdiff
path: root/core/math
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2014-02-19 11:57:14 -0300
committerJuan Linietsky <reduzio@gmail.com>2014-02-19 11:57:14 -0300
commitd7d65fa2f2b51d03f7bdfcbceedca99188ce979c (patch)
treefecdf1bfa39ba5a4895b4dbf340a3b68098c109a /core/math
parent8c1731b67995add31361ae526b0e6af76346181e (diff)
-improved physics ccd
-html5 exporter works again -disable repeat on image loader by default -can change shape offset en tileset, texture offset was broken
Diffstat (limited to 'core/math')
-rw-r--r--core/math/math_2d.cpp10
-rw-r--r--core/math/math_2d.h2
2 files changed, 12 insertions, 0 deletions
diff --git a/core/math/math_2d.cpp b/core/math/math_2d.cpp
index dbeaea6e75..acaaa327f3 100644
--- a/core/math/math_2d.cpp
+++ b/core/math/math_2d.cpp
@@ -255,6 +255,16 @@ Vector2 Vector2::cubic_interpolate(const Vector2& p_b,const Vector2& p_pre_a, co
}
+Vector2 Vector2::slide(const Vector2& p_vec) const {
+
+ return p_vec - *this * this->dot(p_vec);
+}
+Vector2 Vector2::reflect(const Vector2& p_vec) const {
+
+ return p_vec - *this * this->dot(p_vec) * 2.0;
+
+}
+
bool Rect2::intersects_segment(const Point2& p_from, const Point2& p_to, Point2* r_pos,Point2* r_normal) const {
diff --git a/core/math/math_2d.h b/core/math/math_2d.h
index 212d848bcb..1f45036409 100644
--- a/core/math/math_2d.h
+++ b/core/math/math_2d.h
@@ -105,6 +105,8 @@ struct Vector2 {
Vector2 cubic_interpolate(const Vector2& p_b,const Vector2& p_pre_a, const Vector2& p_post_b,float p_t) const;
Vector2 cubic_interpolate_soft(const Vector2& p_b,const Vector2& p_pre_a, const Vector2& p_post_b,float p_t) const;
+ Vector2 slide(const Vector2& p_vec) const;
+ Vector2 reflect(const Vector2& p_vec) const;
Vector2 operator+(const Vector2& p_v) const;
void operator+=(const Vector2& p_v);