Skip to content

Commit

Permalink
Vec2: make constants inlineable
Browse files Browse the repository at this point in the history
  • Loading branch information
smilediver committed Aug 28, 2024
1 parent 353e279 commit b670396
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 14 deletions.
30 changes: 16 additions & 14 deletions core/math/Vec2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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
16 changes: 16 additions & 0 deletions core/math/Vec2.inl
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit b670396

Please sign in to comment.