#ifndef DNA_H #define DNA_H #include #include #include #define MAX_DEPTH 8 #define MAX_POSIBLE_DEPTH 11 static_assert(MAX_DEPTH <= MAX_POSIBLE_DEPTH); struct uint128 { uint32_t a; uint32_t b; uint32_t c; uint32_t d; }; struct Moon { float x; float y; float size; }; struct Branch { uint8_t colorR; uint8_t colorG; uint8_t colorB; int8_t colorR_change; int8_t colorG_change; int8_t colorB_change; uint8_t colorVar; uint8_t size; uint8_t sizeParent; uint8_t sizeLevel; uint8_t sizeChange; uint8_t sizeVar; uint8_t length; uint8_t lengthVar; uint8_t branchCount; uint8_t branchAngleVar; }; struct Dna { uint8_t moonX; uint8_t moonY; uint8_t moonSize; uint8_t colorSet; uint128 mountenSeed; uint128 starSeed; uint128 branchSeed; Branch branches[MAX_DEPTH]; }; void newDna(Dna &dna); #endif /* DNA_H */