CRINSA-team2025 V1
Documentation du Club Robot INSA Rennes 2025
Chargement...
Recherche...
Aucune correspondance
Cube.h
1//
2// Created by awing on 25/05/25.
3//
4
5#include "Teleplot_client.h"
6
7#ifndef TEAM2025_CUBE_H
8#define TEAM2025_CUBE_H
9
10
11class Cube {
12public:
30 Cube(char* nom_forme, float pos_x, float pos_y, float pos_z,
31 float width, float height, float depth,
32 float quat_x, float quat_y, float quat_z, float quat_w,
33 char* color, float transparency);
34
42 void setPosition(float pos_x, float pos_y, float pos_z);
43
49 void setXPosition(float pos_x);
50
56 void setYPosition(float pos_y);
57
63 void setZPosition(float pos_z);
64
72 void setSize(float width, float height, float depth);
73
79 void setWidth(float width);
80
86 void setHeight(float height);
87
93 void setDepth(float depth);
94
103 void setRotation(float quat_x, float quat_y, float quat_z, float quat_w);
104
110 void setQuatX(float quat_x);
111
117 void setQuatY(float quat_y);
118
124 void setQuatZ(float quat_z);
125
131 void setQuatW(float quat_w);
132
138 void setColor(char* color);
139
145 void setTransparency(float transparency);
146
155 void sendCubeToTeleplot(Teleplot &teleplot);
156
157private:
158 static constexpr size_t NAME_LENGTH = INTERNAL_BUFFER_SIZE;
159 static const char NUMBER_PRECISION = 20;
160 const short MASK_NAME = 0b0000000000000001;
161 const short MASK_POS_X = 0b0000000000000010;
162 const short MASK_POS_Y = 0b0000000000000100;
163 const short MASK_POS_Z = 0b0000000000001000;
164 const short MASK_WIDTH = 0b0000000000010000;
165 const short MASK_HEIGHT = 0b0000000000100000;
166 const short MASK_DEPTH = 0b0000000001000000;
167 const short MASK_QUAT_X = 0b0000000010000000;
168 const short MASK_QUAT_Y = 0b0000000100000000;
169 const short MASK_QUAT_Z = 0b0000001000000000;
170 const short MASK_QUAT_W = 0b0000010000000000;
171 const short MASK_COLOR = 0b0000100000000000;
172 const short MASK_TRANSPARENCY = 0b0001000000000000;
173
174 char nom_forme[NAME_LENGTH];
175 // position
176 float pos_x;
177 float pos_y;
178 float pos_z;
179
180 char r_pos_x[NUMBER_PRECISION];
181 char r_pos_y[NUMBER_PRECISION];
182 char r_pos_z[NUMBER_PRECISION];
183 // taille
184 float width;
185 float height;
186 float depth;
187 char r_width[NUMBER_PRECISION];
188 char r_height[NUMBER_PRECISION];
189 char r_depth[NUMBER_PRECISION];
190 // rotation (quaternion)
191 float quat_x;
192 float quat_y;
193 float quat_z;
194 float quat_w;
195 char r_quat_x[NUMBER_PRECISION];
196 char r_quat_y[NUMBER_PRECISION];
197 char r_quat_z[NUMBER_PRECISION];
198 char r_quat_w[NUMBER_PRECISION];
199 //color
200 char color[NUMBER_PRECISION];
201 // transparency
202 float transparency;
203 char r_transparency[NUMBER_PRECISION];
204 short modified_mask = 0; // Mask to track which parameters have been modified
205
211 const char * generateTeleplotMessage(unsigned long temps);
212};
213
214
215#endif //TEAM2025_CUBE_H
void setQuatZ(float quat_z)
modifie le quaternion de rotation z du cube
Definition Cube.cpp:172
void setHeight(float height)
modifie la hauteur du cube
Definition Cube.cpp:124
void setColor(char *color)
modifie la couleur du cube
Definition Cube.cpp:186
void setPosition(float pos_x, float pos_y, float pos_z)
modifie la position du cube
Definition Cube.cpp:64
Cube(char *nom_forme, float pos_x, float pos_y, float pos_z, float width, float height, float depth, float quat_x, float quat_y, float quat_z, float quat_w, char *color, float transparency)
Definition Cube.cpp:7
void setQuatX(float quat_x)
modifie le quaternion de rotation x du cube
Definition Cube.cpp:158
void setYPosition(float pos_y)
modifie la position y du cube
Definition Cube.cpp:87
void setZPosition(float pos_z)
modifie la position z du cube
Definition Cube.cpp:94
void setDepth(float depth)
modifie la profondeur du cube
Definition Cube.cpp:131
void setSize(float width, float height, float depth)
modifie la taille du cube
Definition Cube.cpp:101
void setRotation(float quat_x, float quat_y, float quat_z, float quat_w)
modifie le quaternion de rotation du cube
Definition Cube.cpp:138
void setQuatW(float quat_w)
modifie le quaternion de rotation w du cube
Definition Cube.cpp:179
void setQuatY(float quat_y)
modifie le quaternion de rotation y du cube
Definition Cube.cpp:165
void setWidth(float width)
modifie la largeur du cube
Definition Cube.cpp:117
void setTransparency(float transparency)
modifie la transparence du cube
Definition Cube.cpp:190
void setXPosition(float pos_x)
modifie la position x du cube
Definition Cube.cpp:80
void sendCubeToTeleplot(Teleplot &teleplot)
envoie l'état actuel du cube à téléplot
Definition Cube.cpp:198
Definition Teleplot_client.h:18