Lumenarium/src/app/engine/foldhaus_assembly.h

94 lines
1.4 KiB
C
Raw Normal View History

2020-01-02 02:41:43 +00:00
//
// File: foldhaus_assembly.h
// Author: Peter Slattery
// Creation Date: 2020-01-01
//
#ifndef FOLDHAUS_ASSEMBLY_H
2019-11-23 00:07:25 +00:00
union pixel
{
struct
{
u8 R;
u8 G;
u8 B;
};
u8 Channels[3];
};
struct led_buffer
{
u32 LedCount;
pixel* Colors;
v4* Positions;
};
struct led_system
{
gs_allocator PlatformMemory;
u32 BuffersCountMax;
u32 BuffersCount;
led_buffer* Buffers;
u32 LedsCountTotal;
};
struct v2_tag
{
u64 NameHash;
u64 ValueHash;
};
struct v2_strip
{
s32 ControlBoxID; // TODO(Peter): I don't think we need this anymore
// TODO(Peter): Add in info for Serial, ArtNet, etc.
s32 StartUniverse;
s32 StartChannel;
// TODO(Peter): When we create more ways to calculate points, this needs to become
// a type enum and a union
v3 StartPosition;
v3 EndPosition;
u32 LedCount;
u32* LedLUT;
u32 TagsCount;
v2_tag* Tags;
};
struct led_strip_list
{
u32 Count;
u32 CountMax;
u32* StripIndices;
};
2019-11-23 00:07:25 +00:00
struct assembly
{
gs_memory_arena Arena;
2019-11-23 00:07:25 +00:00
gs_string Name;
gs_string FilePath;
2019-11-23 00:07:25 +00:00
r32 Scale;
v3 Center;
s32 LedCountTotal;
u32 LedBufferIndex;
u32 StripCount;
v2_strip* Strips;
2019-11-23 00:07:25 +00:00
};
2020-01-02 02:41:43 +00:00
struct assembly_array
{
u32 CountMax;
u32 Count;
assembly* Values;
};
2020-01-02 02:41:43 +00:00
#define FOLDHAUS_ASSEMBLY_H
#endif // FOLDHAUS_ASSEMBLY_H