diff --git a/core/math/Vec2.cpp b/core/math/Vec2.cpp index 6cea80fc06a4..e5a545dc9501 100644 --- a/core/math/Vec2.cpp +++ b/core/math/Vec2.cpp @@ -25,6 +25,22 @@ NS_AX_MATH_BEGIN +#if defined(AX_DLLEXPORT) || defined(AX_DLLIMPORT) + const Vec2 Vec2::ZERO(0.0f, 0.0f); + const Vec2 Vec2::ONE(1.0f, 1.0f); + const Vec2 Vec2::UNIT_X(1.0f, 0.0f); + const Vec2 Vec2::UNIT_Y(0.0f, 1.0f); + const Vec2 Vec2::ANCHOR_MIDDLE(0.5f, 0.5f); + const Vec2 Vec2::ANCHOR_BOTTOM_LEFT(0.0f, 0.0f); + const Vec2 Vec2::ANCHOR_TOP_LEFT(0.0f, 1.0f); + const Vec2 Vec2::ANCHOR_BOTTOM_RIGHT(1.0f, 0.0f); + const Vec2 Vec2::ANCHOR_TOP_RIGHT(1.0f, 1.0f); + const Vec2 Vec2::ANCHOR_MIDDLE_RIGHT(1.0f, 0.5f); + const Vec2 Vec2::ANCHOR_MIDDLE_LEFT(0.0f, 0.5f); + const Vec2 Vec2::ANCHOR_MIDDLE_TOP(0.5f, 1.0f); + const Vec2 Vec2::ANCHOR_MIDDLE_BOTTOM(0.5f, 0.0f); +#endif + // returns true if segment A-B intersects with segment C-D. S->E is the overlap part bool isOneDimensionSegmentOverlap(float A, float B, float C, float D, float* S, float* E) { @@ -322,18 +338,4 @@ Vec2 Vec2::getIntersectPoint(const Vec2& A, const Vec2& B, const Vec2& C, const return Vec2::ZERO; } -const Vec2 Vec2::ZERO(0.0f, 0.0f); -const Vec2 Vec2::ONE(1.0f, 1.0f); -const Vec2 Vec2::UNIT_X(1.0f, 0.0f); -const Vec2 Vec2::UNIT_Y(0.0f, 1.0f); -const Vec2 Vec2::ANCHOR_MIDDLE(0.5f, 0.5f); -const Vec2 Vec2::ANCHOR_BOTTOM_LEFT(0.0f, 0.0f); -const Vec2 Vec2::ANCHOR_TOP_LEFT(0.0f, 1.0f); -const Vec2 Vec2::ANCHOR_BOTTOM_RIGHT(1.0f, 0.0f); -const Vec2 Vec2::ANCHOR_TOP_RIGHT(1.0f, 1.0f); -const Vec2 Vec2::ANCHOR_MIDDLE_RIGHT(1.0f, 0.5f); -const Vec2 Vec2::ANCHOR_MIDDLE_LEFT(0.0f, 0.5f); -const Vec2 Vec2::ANCHOR_MIDDLE_TOP(0.5f, 1.0f); -const Vec2 Vec2::ANCHOR_MIDDLE_BOTTOM(0.5f, 0.0f); - NS_AX_MATH_END diff --git a/core/math/Vec2.inl b/core/math/Vec2.inl index 1f5902f356a1..f4155b611dae 100644 --- a/core/math/Vec2.inl +++ b/core/math/Vec2.inl @@ -246,4 +246,20 @@ inline Vec2 operator/(const Vec2& left, const Vec2& right) return Vec2(left.x / right.x, left.y / right.y); } +#if !(defined(AX_DLLEXPORT) || defined(AX_DLLIMPORT)) + inline constexpr Vec2 Vec2::ZERO(0.0f, 0.0f); + inline constexpr Vec2 Vec2::ONE(1.0f, 1.0f); + inline constexpr Vec2 Vec2::UNIT_X(1.0f, 0.0f); + inline constexpr Vec2 Vec2::UNIT_Y(0.0f, 1.0f); + inline constexpr Vec2 Vec2::ANCHOR_MIDDLE(0.5f, 0.5f); + inline constexpr Vec2 Vec2::ANCHOR_BOTTOM_LEFT(0.0f, 0.0f); + inline constexpr Vec2 Vec2::ANCHOR_TOP_LEFT(0.0f, 1.0f); + inline constexpr Vec2 Vec2::ANCHOR_BOTTOM_RIGHT(1.0f, 0.0f); + inline constexpr Vec2 Vec2::ANCHOR_TOP_RIGHT(1.0f, 1.0f); + inline constexpr Vec2 Vec2::ANCHOR_MIDDLE_RIGHT(1.0f, 0.5f); + inline constexpr Vec2 Vec2::ANCHOR_MIDDLE_LEFT(0.0f, 0.5f); + inline constexpr Vec2 Vec2::ANCHOR_MIDDLE_TOP(0.5f, 1.0f); + inline constexpr Vec2 Vec2::ANCHOR_MIDDLE_BOTTOM(0.5f, 0.0f); +#endif + NS_AX_MATH_END