#include "attributes-id.hh"
#include "alt-stdint.hh"
#include <bitset>
#include <string>
Go to the source code of this file.
Defines | |
Définition des types de base du noyau (orbites, involutions et | |
masques)
| |
#define | NB_MARKS (32) |
#define | NB_DIRECT_INFO (4) |
Opérations sur les orbites. | |
Les différents identifiants des attributs sont définis dans le fichier attributes-id.hh
Une orbite est définie par un ensemble d'involutions. Une orbite peut donc être manipulée comme un ensemble. | |
#define | NEG_ORBIT(O1) (static_cast<TOrbit> (0xF ^ (static_cast<unsigned int>(O1)))) |
#define | ADD_ORBIT(O1, O2) |
#define | AND_ORBIT(O1, O2) |
#define | SUB_ORBIT(O1, O2) |
#define | IS_ORBIT_INCLUDED(O1, O2) |
Typedefs | |
typedef int8_t | TOrbit |
typedef int | TAttributeId |
Enumerations | |
enum | { ORBIT_NONE = -1, ORBIT_SELF, ORBIT_0, ORBIT_1, ORBIT_01, ORBIT_2, ORBIT_02, ORBIT_12, ORBIT_012, ORBIT_3, ORBIT_03, ORBIT_13, ORBIT_013, ORBIT_23, ORBIT_023, ORBIT_123, ORBIT_0123, ORBIT_BORDER_0, ORBIT_BORDER_1, ORBIT_BORDER_2, ORBIT_BORDER_3 } |
Variables | |
const TOrbit | ORBIT_VERTEX = ORBIT_123 |
const TOrbit | ORBIT_EDGE = ORBIT_023 |
const TOrbit | ORBIT_FACE = ORBIT_013 |
const TOrbit | ORBIT_VOLUME = ORBIT_012 |
const TOrbit | ORBIT_CC = ORBIT_0123 |
const TOrbit | ORBIT_INF [4] |
const TOrbit | ORBIT_CELL [5] |
const TOrbit | ORBIT_BORDER [4] |
const TOrbit | ORBIT_I_IM1 [4] |
const TOrbit | ORBIT_I_IP1 [4] |
const TOrbit | ORBIT_INVO [4] |
const TOrbit | ORBIT_SEWS [4] |
const TOrbit | ORBIT_DIM [4] |
enum | { OP_NONE = -1, OP_ALPHA0, OP_ALPHA1, OP_ALPHA2, OP_ALPHA3, OP_ALPHAI, OP_ALPHAJ, OP_ALPHAK, OP_JUMP, OP_TURN_AROUND, OP_END, OP_UNKNOWN } |
typedef int8_t | TOperationState |
Type d'affichage éclaté. | |
enum | { FIRST_BURST_METHOD = 0, BURST_METHOD_SCALE = FIRST_BURST_METHOD, BURST_METHOD_SHIFT, LAST_BURST_METHOD } |
typedef int8_t | TBurstMethod |
Les masques | |
Les masques sont des tableaux de bits interprétés comme en valeur booléenne. L'indice du tableau correspond à l'indice de l'involution associée au booléen. | |
typedef std::bitset< 16 > | TMask16 |
const TMask16 | MASK_FALSE ((unsigned int) 0x0000) |
const TMask16 | MASK_TRUE ((unsigned int) 0xFFFF) |
const TMask16 | MASK0 ((unsigned int) 0xAAAA) |
const TMask16 | MASK1 ((unsigned int) 0xCCCC) |
const TMask16 | MASK2 ((unsigned int) 0xF0F0) |
const TMask16 | MASK3 ((unsigned int) 0xFF00) |
const TMask16 | MASK0M2 (MASK0 &~MASK2) |
const TMask16 | MASK0M3 (MASK0 &~MASK3) |
const TMask16 | MASK1M3 (MASK1 &~MASK3) |
const TMask16 | MASK2M0 (MASK2 &~MASK0) |
const TMask16 | MASK3M0 (MASK3 &~MASK0) |
const TMask16 | MASK3M1 (MASK3 &~MASK1) |
#define ADD_ORBIT | ( | O1, | |||
O2 | ) |
Value:
(static_cast<TOrbit>( \ static_cast<unsigned int>(O1) | \ static_cast<unsigned int>(O2)))
O1 | Une orbite. | |
O2 | Une orbite. |
Definition at line 126 of file kernel-types.hh.
#define AND_ORBIT | ( | O1, | |||
O2 | ) |
Value:
(static_cast<TOrbit>( \ static_cast<unsigned int>(O1) & \ static_cast<unsigned int>(O2)))
O1 | Une orbite. | |
O2 | Une orbite. |
Definition at line 139 of file kernel-types.hh.
#define IS_ORBIT_INCLUDED | ( | O1, | |||
O2 | ) |
Value:
(static_cast<TOrbit>( \ static_cast<unsigned int>(O1) & \ static_cast<unsigned int>(O2)) == O1)
O1 | Une orbite. | |
O2 | Une orbite. |
Definition at line 164 of file kernel-types.hh.
#define NB_DIRECT_INFO (4) |
Nombre de champs direct-info associés aux brins.
Definition at line 53 of file kernel-types.hh.
#define NB_MARKS (32) |
Nombre de marques associées aux brins.
Definition at line 48 of file kernel-types.hh.
#define NEG_ORBIT | ( | O1 | ) | (static_cast<TOrbit> (0xF ^ (static_cast<unsigned int>(O1)))) |
Complémentaire d'une orbite.
O1 | Une orbite. |
Definition at line 115 of file kernel-types.hh.
#define SUB_ORBIT | ( | O1, | |||
O2 | ) |
Value:
(static_cast<TOrbit>( \ static_cast<unsigned int>(O1) & \ static_cast<unsigned int>(NEG_ORBIT(O2))))
O1 | Une orbite. | |
O2 | Une orbite. |
Definition at line 152 of file kernel-types.hh.
typedef int TAttributeId |
Definition at line 94 of file kernel-types.hh.
typedef int8_t TBurstMethod |
Ce type permet de spécifier quel type d'affichage éclatée on utilise.
Definition at line 341 of file kernel-types.hh.
typedef std::bitset<16> TMask16 |
Définition du type TMask16 pour les 16 orbites possibles.
Definition at line 296 of file kernel-types.hh.
typedef int8_t TOperationState |
Ce type permet, lors d'un parcours, de connaître quel est le type de la dernière opération
Definition at line 247 of file kernel-types.hh.
anonymous enum |
Definition at line 63 of file kernel-types.hh.
anonymous enum |
Definition at line 249 of file kernel-types.hh.
anonymous enum |
Definition at line 343 of file kernel-types.hh.
const TMask16 MASK0 | ( | (unsigned int) | 0xAAAA | ) |
Masque de toutes les orbites contenant l'involution alpha0 dans leur ensemble définition.
const TMask16 MASK0M2 | ( | MASK0 &~ | MASK2 | ) |
Masques de toutes les orbites contenant alphai et pas alphaj :.
const TMask16 MASK0M3 | ( | MASK0 &~ | MASK3 | ) |
const TMask16 MASK1 | ( | (unsigned int) | 0xCCCC | ) |
Masque de toutes les orbites contenant l'involution alpha1 dans leur ensemble définition.
const TMask16 MASK1M3 | ( | MASK1 &~ | MASK3 | ) |
const TMask16 MASK2 | ( | (unsigned int) | 0xF0F0 | ) |
Masque de toutes les orbites contenant l'involution alpha2 dans leur ensemble définition.
const TMask16 MASK2M0 | ( | MASK2 &~ | MASK0 | ) |
const TMask16 MASK3 | ( | (unsigned int) | 0xFF00 | ) |
Masque de toutes les orbites contenant l'involution alpha3 dans leur ensemble définition.
const TMask16 MASK3M0 | ( | MASK3 &~ | MASK0 | ) |
const TMask16 MASK3M1 | ( | MASK3 &~ | MASK1 | ) |
const TMask16 MASK_FALSE | ( | (unsigned int) | 0x0000 | ) |
Attention, les bits de poids fort sont à gauche.
Un masque est un tableau de 16 booléens utilisé principalement pour la mise à jour des plongements. En effet, lors d'une couture ou d'une décousure de dimension i, toutes les orbites ne contenant pas l'involution alphai peuvent nécessiter une modification de leurs plongements. Masque 'faux'.
const TMask16 MASK_TRUE | ( | (unsigned int) | 0xFFFF | ) |
Mask 'vrai'.
const TOrbit ORBIT_BORDER[4] |
Initial value:
Orbite bord de dimension l'indice du tableau.
Definition at line 200 of file kernel-types.hh.
Definition at line 178 of file kernel-types.hh.
const TOrbit ORBIT_CELL[5] |
Initial value:
Orbite cellule de dimension l'indice du tableau.
Definition at line 194 of file kernel-types.hh.
const TOrbit ORBIT_EDGE = ORBIT_023 |
Definition at line 175 of file kernel-types.hh.
const TOrbit ORBIT_FACE = ORBIT_013 |
Definition at line 176 of file kernel-types.hh.
const TOrbit ORBIT_I_IM1[4] |
const TOrbit ORBIT_I_IP1[4] |
Initial value:
{ ORBIT_SELF, ORBIT_0, ORBIT_01, ORBIT_012 }
Definition at line 188 of file kernel-types.hh.
const TOrbit ORBIT_INVO[4] |
const TOrbit ORBIT_SEWS[4] |
const TOrbit ORBIT_VERTEX = ORBIT_123 |
Definition at line 174 of file kernel-types.hh.
const TOrbit ORBIT_VOLUME = ORBIT_012 |
Definition at line 177 of file kernel-types.hh.