-
Notifications
You must be signed in to change notification settings - Fork 9
/
MaterialStates.hh
87 lines (78 loc) · 1.69 KB
/
MaterialStates.hh
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* Copyright (c) 2024, the adamantine authors.
*
* This file is subject to the Modified BSD License and may not be distributed
* without copyright and license information. Please refer to the file LICENSE
* for the text and further information on this license.
*/
#ifndef MATERIAL_STATES_HH
#define MATERIAL_STATES_HH
namespace adamantine
{
/**
* This struct describes a material that can be found in three states: solid,
* liquid, and powder as it is the case in PBF.
*/
struct SolidLiquidPowder
{
/**
* Enum on the possible material states.
*/
enum class State
{
solid,
liquid,
powder,
SIZE
};
/**
* Maximum different number of states a given material can be.
*/
static unsigned int constexpr n_material_states =
static_cast<unsigned int>(State::SIZE);
};
/**
* This struct describes a material that can be found in two states: solid and
* liquid as it is the case in DED.
*/
struct SolidLiquid
{
/**
* Enum on the possible material states.
*/
enum class State
{
solid,
liquid,
powder,
SIZE
};
/**
* Maximum different number of states a given material can be.
*/
static unsigned int constexpr n_material_states =
static_cast<unsigned int>(State::SIZE);
};
/**
* This struct describes a material that can be found in one state: solid as it
* is the case in FDM.
*/
struct Solid
{
/**
* Enum on the possible material states.
*/
enum class State
{
solid,
liquid,
powder,
SIZE
};
/**
* Maximum different number of states a given material can be.
*/
static unsigned int constexpr n_material_states =
static_cast<unsigned int>(State::SIZE);
};
} // namespace adamantine
#endif