Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
position.h
Go to the documentation of this file.
1
#pragma once
2
#include "
core/types.h
"
3
#include "
game/entity.h
"
4
#include "
math/vec3.h
"
5
//------------------------------------------------------------------------------
6
namespace
Game
7
{
8
9
//------------------------------------------------------------------------------
18
struct
Position
:
public
Math::vec3
19
{
20
using
Math::vec3::vec3
;
// default constructor
21
Position
(
Math::vec3
const
&
v
)
22
{
23
this->
load
(&v.
x
);
24
}
25
26
struct
Traits;
27
};
28
29
//------------------------------------------------------------------------------
32
struct
Position::Traits
33
{
34
Traits
() =
delete
;
35
using
type
=
Position
;
36
static
constexpr
auto
name
=
"Position"
;
37
static
constexpr
auto
fully_qualified_name
=
"Game.Position"
;
38
static
constexpr
size_t
num_fields
= 3;
39
static
constexpr
const
char
*
field_names
[
num_fields
] = {
40
"x"
,
41
"y"
,
42
"z"
43
};
44
static
constexpr
const
char
*
field_typenames
[
num_fields
] = {
45
"float"
,
46
"float"
,
47
"float"
48
};
49
static
constexpr
const
char
*
field_descriptions
[
num_fields
] = {
50
nullptr
,
51
nullptr
,
52
nullptr
53
};
54
using
field_types
= std::tuple<float, float, float>;
55
static
constexpr
size_t
field_byte_offsets
[
num_fields
] = {
56
offsetof(
Position
,
x
),
57
offsetof(
Position
,
y
),
58
offsetof(
Position
,
z
)
59
};
60
static
constexpr
bool
field_hide_in_inspector
[
num_fields
] = {
61
false
,
62
false
,
63
false
64
};
65
67
static
constexpr
uint32_t
fixed_column_index
= 1;
68
};
69
70
}
// namespace Game
entity.h
Game
Game::EditorState.
Definition
graphicsmanager.h:67
Game::Position::Traits
Definition
position.h:33
Game::Position::Traits::field_hide_in_inspector
static constexpr bool field_hide_in_inspector[num_fields]
Definition
position.h:60
Game::Position::Traits::field_types
std::tuple< float, float, float > field_types
Definition
position.h:54
Game::Position::Traits::field_typenames
static constexpr const char * field_typenames[num_fields]
Definition
position.h:44
Game::Position::Traits::name
static constexpr auto name
Definition
position.h:36
Game::Position::Traits::fully_qualified_name
static constexpr auto fully_qualified_name
Definition
position.h:37
Game::Position::Traits::field_descriptions
static constexpr const char * field_descriptions[num_fields]
Definition
position.h:49
Game::Position::Traits::fixed_column_index
static constexpr uint32_t fixed_column_index
This is the column that the entity position will reside in, in every table.
Definition
position.h:67
Game::Position::Traits::Traits
Traits()=delete
Game::Position::Traits::num_fields
static constexpr size_t num_fields
Definition
position.h:38
Game::Position::Traits::type
Position type
Definition
position.h:35
Game::Position::Traits::field_byte_offsets
static constexpr size_t field_byte_offsets[num_fields]
Definition
position.h:55
Game::Position::Traits::field_names
static constexpr const char * field_names[num_fields]
Definition
position.h:39
Game::Position::Position
Position(Math::vec3 const &v)
Definition
position.h:21
Math::vec3
A 3D vector.
Definition
vec3.h:37
Math::vec3::v
float v[3]
Definition
vec3.h:96
Math::vec3::vec3
vec3()=default
default constructor, NOTE: does NOT setup components!
Math::vec3::load
void load(const scalar *ptr)
load content from 16-byte-aligned memory
Definition
vec3.h:168
Math::vec3::x
float x
Definition
vec3.h:93
Math::vec3::z
float z
Definition
vec3.h:93
Math::vec3::y
float y
Definition
vec3.h:93
types.h
vec3.h
code
application
basegamefeature
components
position.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.