-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
ApplyEffect implementation #1688
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
base: master
Are you sure you want to change the base?
Conversation
fe0e630
to
5b96a18
Compare
03fd671
to
61d409b
Compare
8449c6d
to
51416c3
Compare
d79f834
to
26bac42
Compare
30c0ef0
to
35d4f37
Compare
35d4f37
to
63bc382
Compare
Hey @heinezen , what's the state of this PR? Is it ready-ish or faraway? Maybe you can add some details in here |
b1ac0c6
to
a4b8864
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 95 out of 96 changed files in this pull request and generated no comments.
Files not reviewed (1)
- libopenage/curve/CMakeLists.txt: Language not supported
Comments suppressed due to low confidence (1)
libopenage/curve/continuous.h:77
- The 'compress' parameter in set_insert is declared but not used; if compression is intended for insertions, consider incorporating this flag into the implementation or removing it to avoid confusion.
void Continuous<T>::set_insert(const time::time_t &t, const T &value, bool /* compress */) {
6023b34
to
2f0e318
Compare
635b0f5
to
fd5ea13
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR integrates compression functionality into the curve classes while refactoring template declarations to use the new KeyframeValueLike concept. It also updates tests and documentation to reflect these new capabilities and updates header copyrights.
- Introduces a compress parameter to keyframe insertion functions and adds a compress() method to remove redundant keyframes.
- Refactors templates to use the KeyframeValueLike concept and updates related documentation and tests accordingly.
Reviewed Changes
Copilot reviewed 152 out of 152 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
libopenage/event/demo/gamestate.h | Updates copyright year and adds operator== for PongEvent. |
libopenage/curve/* | Updates templates to use KeyframeValueLike and adds compression. |
libopenage/curve/tests/curve_types.cpp | Adds tests verifying the compression functionality. |
doc/code/*.md | Updates documentation to include compression and minor fixes. |
CMakeLists.txt | Adds concept.cpp to the build. |
376bf2f
to
e0335a0
Compare
741010c
to
1716ed7
Compare
1716ed7
to
953d10c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Implements value constraints and curve compression across the curve API, and updates related containers and documentation.
- Introduces
KeyframeValueLike
concept to constrain curve template parameters. - Adds lossless compression methods (
compress
) toBaseCurve
,Discrete
, andInterpolated
curves. - Updates all curve and container headers to use the new concept, and refreshes documentation and license headers.
Reviewed Changes
Copilot reviewed 177 out of 177 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
libopenage/curve/concept.h | Added KeyframeValueLike concept |
libopenage/curve/concept.cpp | Added empty translation unit for concept |
libopenage/curve/keyframe.h | Constrained Keyframe template and added include |
libopenage/curve/interpolated.h | Added compress and interpolate methods |
libopenage/curve/discrete.h | Added compress override |
libopenage/curve/discrete_mod.h | Updated set_last /set_insert signatures for compress |
libopenage/curve/continuous.h | Updated set_last /set_insert signatures for compress |
libopenage/curve/base_curve.h | Added pure virtual compress and updated sync APIs |
libopenage/curve/container/queue_filter_iterator.h | Constrained template parameters |
libopenage/curve/container/iterator.h | Constrained template parameters |
libopenage/curve/container/queue.h | Constrained template and improved clear logic |
libopenage/curve/container/map_filter_iterator.h | Constrained template parameters |
libopenage/curve/container/map.h | Constrained template parameters |
libopenage/curve/CMakeLists.txt | Added concept.cpp to build sources |
doc/code/renderer/demos.md | Incremented demo number |
doc/code/game_simulation/systems.md | Removed deprecated systems doc |
doc/code/game_simulation/game_entity.md | Added "System Types" table |
doc/code/game_simulation/activity.md | Reorganized workflow and node-types sections |
doc/code/curves.md | Documented the new compression feature |
Comments suppressed due to low confidence (3)
libopenage/curve/interpolated.h:39
- New 'compress' method was added but lacks unit tests; consider adding tests to cover compression behavior for both full and incremental compression.
void compress(const time::time_t &start = time::TIME_MIN) override;
libopenage/curve/interpolated.h:62
- [nitpick] Variable name 'e' is ambiguous; consider renaming to 'prev_index' or similar to clarify its role as the index of the last keyframe.
const auto e = this->container.last(time, this->last_element);
libopenage/curve/concept.cpp:1
- [nitpick] The concept.cpp file is empty apart from the namespace; consider removing it to avoid unnecessary compilation units for a header-only concept.
// Copyright 2024-2024 the openage authors. See copying.md for legal info.
Implements a system to use the
ApplyEffect
ability of the nyan API.Resolves #671
Depends on SFTtech/nyan#124
Depends on #1778
Other Features