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

PredatorCZ / HavokLib / 89

06 Nov 2025 01:09PM UTC coverage: 63.837% (-3.2%) from 67.014%
89

push

github

PredatorCZ
s

3354 of 5254 relevant lines covered (63.84%)

129082.83 hits per line

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

97.37
/source/packfile/hka_animated_reference_frame_default.cpp
1
/*  Havok Format Library
2
    Copyright(C) 2016-2022 Lukas Cone
3

4
    This program is free software : you can redistribute it and / or modify
5
    it under the terms of the GNU General Public License as published by
6
    the Free Software Foundation, either version 3 of the License, or
7
    (at your option) any later version.
8

9
    This program is distributed in the hope that it will be useful,
10
    but WITHOUT ANY WARRANTY; without even the implied warranty of
11
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
12
    GNU General Public License for more details.
13

14
    You should have received a copy of the GNU General Public License
15
    along with this program.If not, see <https://www.gnu.org/licenses/>.
16
*/
17

18
#include "hka_animated_reference_frame.hpp"
19
#include "internal/hka_defaultanimrefframe.hpp"
20
#include <span>
21

22
#include "hka_animated_reference_frame_default.inl"
23

24
struct hkaDefaultAnimatedReferenceFrameMidInterface
25
    : hkaAnimatedReferenceFrameMidInterface,
26
      hkaDefaultAnimatedReferenceFrameInternalInterface {
27

28
  clgen::hkaDefaultAnimatedReferenceFrame::Interface interface;
29

30
  hkaDefaultAnimatedReferenceFrameMidInterface(clgen::LayoutLookup rules,
72✔
31
                                               char *data)
32
      : interface {
144✔
33
    data, rules
34
  } {
72✔
35
  }
72✔
36

37
  clgen::hkaAnimatedReferenceFrame::Interface Base() const override {
72✔
38
    return interface.BasehkaAnimatedReferenceFrame();
72✔
39
  }
40

41
  void SetDataPointer(void *ptr) override {
72✔
42
    interface.data = static_cast<char *>(ptr);
72✔
43
  }
72✔
44

45
  const void *GetPointer() const override { return interface.data; }
72✔
46

47
  void Process() override {
72✔
48
    const size_t numFrames = GetNumFrames();
72✔
49
    frameRate = numFrames > 0 ? (numFrames - 1) / GetDuration() : 30;
72✔
50
  }
72✔
51

52
  const Vector4A16 GetUp() const override { return interface.Up(); }
108✔
53
  const Vector4A16 GetForward() const override { return interface.Forward(); }
108✔
54
  float GetDuration() const override { return interface.Duration(); }
144✔
55
  size_t GetNumFrames() const override {
144✔
56
    return interface.NumReferenceFrameSamples();
144✔
57
  }
58

59
  const Vector4A16 &GetRefFrame(size_t id) const override {
1,512✔
60
    auto item = interface.ReferenceFrameSamples();
1,512✔
61
    return item[id];
1,512✔
62
  }
63

64
  void SwapEndian() override {
36✔
65
    clgen::EndianSwap(interface);
36✔
66
    Vector4A16 tmp = GetUp();
36✔
67
    FByteswapper(tmp);
36✔
68
    interface.Up(tmp);
36✔
69
    tmp = GetForward();
36✔
70
    FByteswapper(tmp);
36✔
71
    interface.Forward(tmp);
36✔
72

73
    for (std::span<Vector4A16> refs(interface.ReferenceFrameSamples(),
36✔
74
                                    interface.NumReferenceFrameSamples());
36✔
75
         auto &i : refs) {
828✔
76
      FByteswapper(i);
756✔
77
    }
78
  }
36✔
79
};
80

81
struct hkaDefaultAnimatedReferenceFrame;
82
CREATE_HK_CLASS(hkaDefaultAnimatedReferenceFrame);
2✔
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

© 2025 Coveralls, Inc