• 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

95.83
/source/packfile/hka_animation_wavelet.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_animation.hpp"
19
#include "hka_decompressor.hpp"
20
#include "hka_wavelet_decompressor.hpp"
21
#include "internal/hka_waveletanimation.hpp"
22

23
#include "hka_animation_wavelet.inl"
24

25
struct hkaWaveletCompressedAnimationMidInterface
26
    : hkaWaveletCompressedAnimationInternalInterface,
27
      hkaAnimationMidInterface<hkaAnimationLerpSampler> {
28
  clgen::hkaWaveletCompressedAnimation::Interface interface;
29
  hkaWaveletDecompressor decomp;
30

31
  hkaWaveletCompressedAnimationMidInterface(clgen::LayoutLookup rules,
128✔
32
                                            char *data)
33
      : interface{data, rules} {}
128✔
34

35
  void SetDataPointer(void *ptr) override {
128✔
36
    interface.data = static_cast<char *>(ptr);
128✔
37
  }
128✔
38

39
  const void *GetPointer() const override { return interface.data; }
256✔
40

41
  clgen::hkaAnimation::Interface Anim() const override {
12,864✔
42
    return interface.BasehkaAnimation();
12,864✔
43
  }
44

45
  void SwapEndian() override {
64✔
46
    hkaAnimationMidInterface<hkaAnimationLerpSampler>::SwapEndian();
64✔
47
    clgen::EndianSwap(interface);
64✔
48
    auto fmt = interface.QFormat();
64✔
49
    FByteswapper(fmt);
64✔
50
    interface.QFormat(fmt);
64✔
51
  }
64✔
52

53
  void Process() override {
128✔
54
    decomp.Assign(this);
128✔
55
    numFrames = GetNumOfPoses();
128✔
56
    frameRate = static_cast<uint32>(numFrames / Duration());
128✔
57
  }
128✔
58

59
  size_t GetNumOfPoses() const override { return interface.NumberOfPoses(); }
320✔
60
  size_t GetBlockSize() const override { return interface.BlockSize(); }
192✔
61
  size_t GetQuantizedDataOffset() const override {
192✔
62
    return interface.QuantizedDataIdx();
192✔
63
  }
64
  size_t GetStaticMaskOffset() const override {
192✔
65
    return interface.StaticMaskIdx();
192✔
66
  }
67
  size_t GetStaticDataOffset() const override {
192✔
68
    return interface.StaticDOFsIdx();
192✔
69
  }
70
  const char *GetData() const override { return interface.DataBuffer(); }
192✔
71
  size_t GetNumDynamicTracks() const override {
192✔
72
    return interface.QFormat().numD;
192✔
73
  }
74
  size_t GetOffsetsOffset() const override {
192✔
75
    return interface.QFormat().offsetIdx;
192✔
76
  }
77
  size_t GetBitWidthOffset() const override {
192✔
78
    return interface.QFormat().bitWidthIdx;
192✔
79
  }
80
  size_t GetScalesOffset() const override {
192✔
81
    return interface.QFormat().scaleIdx;
192✔
82
  }
83
  size_t GetNumPreserved() const override {
192✔
84
    return interface.QFormat().preserved;
192✔
85
  }
86

87
  void GetFrame(size_t trackID, int32 frame, hkQTransform &out) const override {
1,190,400✔
88
    decomp.GetFrame(trackID, frame, out);
1,190,400✔
89
  };
1,190,400✔
90
};
91

92
struct hkaWaveletCompressedAnimation;
93
CREATE_HK_CLASS(hkaWaveletCompressedAnimation);
2✔
94
struct hkaWaveletSkeletalAnimation;
×
95
CREATE_HK_CLASS_ALIAS(hkaWaveletSkeletalAnimation,
2✔
96
                      hkaWaveletCompressedAnimation);
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