-
Notifications
You must be signed in to change notification settings - Fork 0
/
body.h
132 lines (109 loc) · 2.32 KB
/
body.h
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#ifndef BODY_H
#define BODY_H
#include "caams.hpp"
class Body
{
public:
caams::matrix r;
caams::matrix p;
caams::matrix r_dot;
caams::matrix p_dot;
double mass;
caams::matrix J_p;
caams::matrix rk_r;
caams::matrix rk_p;
caams::matrix rk_r_dot;
caams::matrix rk_p_dot;
caams::matrix k_r_dot;
caams::matrix k_p_dot;
caams::matrix k_r_ddot;
caams::matrix k_p_ddot;
int eqn_index;
int p_index;
Body(
caams::matrix r,
caams::matrix p,
caams::matrix r_dot,
caams::matrix p_dot,
double mass,
caams::matrix J_p);
~Body(void){}
caams::matrix N();
caams::matrix J_star();
caams::matrix b_star();
virtual void Draw(void)=0;
};
class DatumBody : public Body
{
public:
DatumBody(void);
~DatumBody(void){}
virtual void Draw(void);
};
class CylinderXaxis : public Body
{
double radius;
double length;
public:
CylinderXaxis(
caams::matrix r,
caams::matrix p,
caams::matrix r_dot,
caams::matrix p_dot,
double mass,
double radius,
double length);
~CylinderXaxis(void){}
virtual void Draw(void);
};
class CylinderYaxis : public Body
{
double radius;
double length;
public:
CylinderYaxis(
caams::matrix r,
caams::matrix p,
caams::matrix r_dot,
caams::matrix p_dot,
double mass,
double radius,
double length);
~CylinderYaxis(void){}
virtual void Draw(void);
};
class CylinderZaxis : public Body
{
double radius;
double length;
public:
CylinderZaxis(
caams::matrix r,
caams::matrix p,
caams::matrix r_dot,
caams::matrix p_dot,
double mass,
double radius,
double length);
~CylinderZaxis(void){}
virtual void Draw(void);
};
class Cuboid : public Body
{
double dx;
double dy;
double dz;
public:
Cuboid(
caams::matrix r,
caams::matrix p,
caams::matrix r_dot,
caams::matrix p_dot,
double mass,
double dx,
double dy,
double dz);
~Cuboid(void){}
virtual void Draw(void);
};
#endif