Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[♻️ Refactor] 객관적인 퍼포먼스 비교를 위해 메타볼 애니메이션 OOP로 재설계한다. #37

Merged
merged 15 commits into from Mar 28, 2023

Commits on Mar 22, 2023

  1. ✨ create Metaballs

    JengYoung committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    522fdc4 View commit details
    Browse the repository at this point in the history
  2. 🚨 fixed lint for better dx

    - 클래스 문법에 있어서 과하다 싶은 룰들을 제거했다.
    - 또한, no-shadow와 unused-vars는 타입스크립트 lint에서 걸러주는 방식으로 해결했다.
    JengYoung committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    062593f View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2023

  1. ✨ create canvas, facade

    - 일단 메타볼 애니메이션을 관장하는 데 있어, 해당 클래스가 아닌 다른 외부의 관련된 어떤 것을 바꿀 수도 있다.- 이를 퍼사드 패턴을 이용하여 좀 더 캔버스의 손상 없이 자유롭게 추가할 수 있도록 하였다.
    - 캔버스의 경우 Canvas 엘리먼트도 있겠지만, 해당 바깥 배경이 Gradient인 Canvas도 존재한다.
    - 이러한 케이스에 따라 좀 더 입맛에 맞게 핸들링할 수 있도록 options를 추가했다.
    JengYoung committed Mar 23, 2023
    Configuration menu
    Copy the full SHA
    918a5ad View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b24089b View commit details
    Browse the repository at this point in the history

Commits on Mar 24, 2023

  1. Configuration menu
    Copy the full SHA
    1b64f21 View commit details
    Browse the repository at this point in the history
  2. ✨ create Animation subject, observers

    - 옵저버 패턴을 적용하여 상태 변경에 대한 업데이트 로직에 대해 각 객체들을 느슨하게 결합하였습니다.
    JengYoung committed Mar 24, 2023
    Configuration menu
    Copy the full SHA
    1ba731a View commit details
    Browse the repository at this point in the history
  3. ♻️ refactor codes for initializing metaballs

    - 생성 과정에 있어서 누락된 property initializaion을 추가했다. (ex: Obserer - key)
    - 헷갈리지 않도록 현재 로직에서 불필요한 코드(ex: moveStrategy)들을 제거했다.
    JengYoung committed Mar 24, 2023
    Configuration menu
    Copy the full SHA
    c699507 View commit details
    Browse the repository at this point in the history
  4. ✨ animate MetaballCanvas by App facade

    - 초기화할 시점에서 canvas 역시 모델과 독립할 필요가 있다고 생각했다. 고로 분리했다.
    - 이후 App에서 초기에 initialize를 수행한다.
    JengYoung committed Mar 24, 2023
    Configuration menu
    Copy the full SHA
    c7eaa42 View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2023

  1. ✨ create metaball move strategy

    - 전략 패턴을 이용하여 move 전략을 유연하게 바꿀 수 있도록 하였다.
    JengYoung committed Mar 25, 2023
    Configuration menu
    Copy the full SHA
    b74cc4a View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2023

  1. ♻️ separate move logic

    JengYoung committed Mar 26, 2023
    Configuration menu
    Copy the full SHA
    f412823 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0204ad4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5d8d5cd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    22767a2 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2023

  1. ✨ optimize metaball fusion

    - 전체 픽셀이 아닌 두 원만 비교함으로써 최적화를 달성했다.
    - 스크립트에 대한 계산 비용을 약 50배 최적화시켰다.
    JengYoung committed Mar 28, 2023
    Configuration menu
    Copy the full SHA
    92b15f9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    74025a9 View commit details
    Browse the repository at this point in the history