summaryrefslogtreecommitdiffstats
path: root/game/shared/entity/transform.hh
blob: b1fdcf46e653a6e93e0f544aa04af99ff4d434b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef SHARED_ENTITY_TRANSFORM_HH
#define SHARED_ENTITY_TRANSFORM_HH 1
#pragma once

#include "shared/types.hh"

namespace world
{
class Dimension;
} // namespace world

namespace entity
{
struct Transform {
    chunk_pos chunk;
    glm::fvec3 local;
    glm::fvec3 angles;

public:
    // Updates entity::Transform values so that
    // the local translation field is always within
    // local coodrinates; [floating-point precision]
    static void fixed_update(world::Dimension* dimension);
};
} // namespace entity

namespace entity::client
{
// Client-side only - interpolated and previous transform
struct TransformIntr final : public Transform {};
struct TransformPrev final : public Transform {};
} // namespace entity::client

#endif // SHARED_ENTITY_TRANSFORM_HH