• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MeltyPlayer / MeltyTool / 20982513833

14 Jan 2026 04:35AM UTC coverage: 41.138% (-0.8%) from 41.907%
20982513833

push

github

MeltyPlayer
Fixed broken shader source tests.

6752 of 18485 branches covered (36.53%)

Branch coverage included in aggregate %.

28650 of 67572 relevant lines covered (42.4%)

64006.02 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/FinModelUtility/Fin/Fin/src/animation/types/vector2/SeparateVector2Keyframes.cs
1
using System;
2
using System.Collections.Generic;
3
using System.Numerics;
4

5
using fin.animation.interpolation;
6
using fin.animation.keyframes;
7

8
namespace fin.animation.types.vector2;
9

10
public sealed class SeparateVector2Keyframes<TKeyframe>(
×
11
    ISharedInterpolationConfig sharedConfig,
×
12
    IKeyframeInterpolator<TKeyframe, float> interpolator,
×
13
    IndividualInterpolationConfig<float>? individualConfigX,
×
14
    IndividualInterpolationConfig<float>? individualConfigY)
×
15
    : ISeparateVector2Keyframes<TKeyframe>
16
    where TKeyframe : IKeyframe<float> {
17
  public SeparateVector2Keyframes(
18
      ISharedInterpolationConfig sharedConfig,
19
      IKeyframeInterpolator<TKeyframe, float> interpolator,
20
      IndividualInterpolationConfig<float>? individualConfig = null)
21
      : this(sharedConfig,
×
22
             interpolator,
×
23
             individualConfig,
×
24
             individualConfig) { }
×
25

26
  public int AnimationLength => sharedConfig.AnimationLength;
×
27
  public bool Looping => sharedConfig.Looping;
×
28

29
  public IReadOnlyList<IInterpolatableKeyframes<TKeyframe, float>> Axes { get; }
×
30
    = [
×
31
        new InterpolatedKeyframes<TKeyframe, float>(
×
32
            sharedConfig,
×
33
            interpolator,
×
34
            individualConfigX),
×
35
        new InterpolatedKeyframes<TKeyframe, float>(
×
36
            sharedConfig,
×
37
            interpolator,
×
38
            individualConfigY),
×
39
    ];
×
40

41
  public bool TryGetAtFrame(float frame, out Vector2 value) {
×
42
    value = default;
×
43

44
    if (!this.Axes[0].TryGetAtFrameOrDefault(frame, individualConfigX, out var x)) {
×
45
      return false;
×
46
    }
47

48
    if (!this.Axes[1].TryGetAtFrameOrDefault(frame, individualConfigY, out var y)) {
×
49
      return false;
×
50
    }
51

52
    value = new Vector2(x, y);
×
53
    return true;
×
54
  }
×
55

56
  public void GetAllFrames(Span<Vector2> dst) {
×
57
    Span<float> x = stackalloc float[dst.Length];
×
58
    Span<float> y = stackalloc float[dst.Length];
×
59

60
    this.Axes[0].GetAllFrames(x);
×
61
    this.Axes[1].GetAllFrames(y);
×
62

63
    for (var i = 0; i < dst.Length; ++i) {
×
64
      dst[i] = new Vector2(x[i], y[i]);
×
65
    }
×
66
  }
×
67

68
  // TODO: Implement this
69
  public bool TryGetSimpleKeyframes(
70
      out IReadOnlyList<(float frame, Vector2 value)> keyframes,
71
      out IReadOnlyList<(Vector2 tangentIn, Vector2 tangentOut)>? tangentKeyframes) {
×
72
    keyframes = null;
×
73
    tangentKeyframes = null;
×
74
    return false;
×
75
  }
×
76
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc