rotation d'objet
This commit is contained in:
parent
1dcb9602ae
commit
69b06b5b14
3 changed files with 108 additions and 6 deletions
39
README.md
39
README.md
|
|
@ -234,6 +234,45 @@ add_math_surface(uni, 0, 0, 0, int_to_f(120), int_to_f(120), 30, 30, COLOR6, 0,
|
|||
|
||||
---
|
||||
|
||||
## Manipulation des Mesh
|
||||
|
||||
Une fois générés, les objets peuvent être positionnés, transformés ou recolorés à l'aide des fonctions suivantes (définies dans `engine.c` / `geometry.c`) :
|
||||
|
||||
* **`void set_object_pos(Object3D *obj, fixed x, fixed y, fixed z);`**
|
||||
|
||||
```
|
||||
void set_object_pos (Object3D *obj, fixed x, fixed y, fixed z);
|
||||
```
|
||||
|
||||
Définit la position locale absolue de l'objet (`base_pos`) par rapport au centre de son espace d'orbite.
|
||||
|
||||
* **`void move_object(Object3D *obj, fixed dx, fixed dy, fixed dz);`**
|
||||
|
||||
```
|
||||
void move_object (Object3D *obj, fixed dx, fixed dy, fixed dz);
|
||||
```
|
||||
|
||||
Applique une translation relative à l'objet en ajoutant le décalage spécifié à sa position courante.
|
||||
|
||||
* **`void set_object_color(Object3D *obj, uint8_t col);`**
|
||||
|
||||
```
|
||||
void set_object_color (Object3D *obj, uint8_t col);
|
||||
```
|
||||
|
||||
Modifie l'index de couleur de base (0-15) utilisé pour le rendu de l'ensemble des faces de l'objet.
|
||||
|
||||
* **`void bake_object_rotation(Universe *uni, Object3D *obj, int ax, int ay, int az);`**
|
||||
|
||||
```
|
||||
void bake_object_rotation(Universe *uni, Object3D *obj, int ax, int ay, int az);
|
||||
```
|
||||
|
||||
Applique une rotation *permanente* (Baking) aux sommets et aux normales de l'objet directement dans le pool de l'univers.
|
||||
Particulièrement utile pour orienter une primitive lors de l'initialisation (ex: coucher un cylindre sur le flanc) sans induire le moindre coût de calcul matriciel supplémentaire pendant la boucle de rendu en temps réel.
|
||||
|
||||
---
|
||||
|
||||
## Orbite de l'observateur (`main.c`)
|
||||
|
||||
Les objets ont des positions de base fixes dans l'espace scène, définies par rapport au centre `(0, 0, 300)` :
|
||||
|
|
|
|||
Loading…
Reference in a new issue