solstice-anim

Geometry animation library of the solstice app
git clone git://git.meso-star.com/solstice-anim.git
Log | Files | Refs | README | LICENSE

sanim_node_c.h (1428B)


      1 /* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com)
      2  * Copyright (C) 2016-2018 CNRS
      3 *
      4 * This program is free software: you can redistribute it and/or modify
      5 * it under the terms of the GNU General Public License as published by
      6 * the Free Software Foundation, either version 3 of the License, or
      7 * (at your option) any later version.
      8 *
      9 * This program is distributed in the hope that it will be useful,
     10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     12 * GNU General Public License for more details.
     13 *
     14 * You should have received a copy of the GNU General Public License
     15 * along with this program. If not, see <http://www.gnu.org/licenses/>. */
     16 
     17 #ifndef SANIM_NODE_C_H
     18 #define SANIM_NODE_C_H
     19 
     20 struct mem_allocator;
     21 
     22 #include "sanim.h"
     23 
     24 #include <rsys/dynamic_array.h>
     25 
     26 /* Define the darray_children data structure */
     27 #define DARRAY_NAME children
     28 #define DARRAY_DATA struct sanim_node*
     29 #include <rsys/dynamic_array.h>
     30 
     31 /* supplemental data for nodes that are pivots */
     32 struct pivot_data {
     33   double angleX, angleZ;
     34   struct sanim_pivot pivot;
     35   struct sanim_tracking tracking;
     36 };
     37 
     38 struct node_data {
     39   double translation[3];
     40   double rotations[3];
     41   struct sanim_node* father; /* can be NULL: root node */
     42   struct darray_children children;
     43   struct mem_allocator* allocator;
     44   struct pivot_data* pivot_data;
     45 };
     46 
     47 
     48 #endif /* SANIM_NODE_C_H */