-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathPhotonFileTemplate.bt
90 lines (81 loc) · 3.22 KB
/
PhotonFileTemplate.bt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//------------------------------------------------
//--- 010 Editor v8.0.1 Binary Template
//
// File: Photon
// Authors: Reox86
// Version: 0.1
// Purpose:
// Category:
// File Mask:
// ID Bytes:
// History:
//------------------------------------------------
typedef struct {
BitfieldDisablePadding();
uint blue : 5 <fgcolor=cBlue, bgcolor=cBlack>;
uint repeat : 1 <fgcolor=cWhite, bgcolor=cBlack>;
uint green : 5 <fgcolor=cGreen, bgcolor=cBlack>;
uint red : 5 <fgcolor=cRed, bgcolor=cBlack>;
if(repeat == 1){
ushort numberOfPixels <fgcolor=cWhite, bgcolor=cBlack>;
}
} colorPixelFormat;
typedef struct {
float layerHeight <fgcolor=cBlack, bgcolor=cWhite>;
float exposureTime <fgcolor=cBlack, bgcolor=cWhite>;
int offTime <fgcolor=cBlack, bgcolor=cWhite>;
//-----Enough to fetch layer data non-sequentially
int dataStartPos <fgcolor=cBlack, bgcolor=cWhite>;
int rawDataSize <fgcolor=cBlack, bgcolor=cWhite>;
//------
int padding[4] <fgcolor=cBlack, bgcolor=cBlack>;//00s might be somethign else in a more complex print.
} layerDef;
typedef struct(int size) {
BYTE layerDataBlock[size/2] <fgcolor=cBlack, bgcolor=0x00FF00>;
} layerRawData;
typedef struct(int size) {
colorPixelFormat layerDataBlock[size];
} rgbPreviewImage;
typedef struct {
int width <fgcolor=cRed, bgcolor=cWhite>;
int height <fgcolor=cGreen, bgcolor=cWhite>;
int dataStartPos <fgcolor=cBlack, bgcolor=cWhite>;
int dataSize <fgcolor=cBlack, bgcolor=cWhite>;
int padding[4] <fgcolor=cBlack, bgcolor=cBlack>;
colorPixelFormat layerDataBlock[dataSize/4];
//rgbPreviewImage c(dataSize);
} previewImage;
struct FILE{
struct HEADER{
BYTE unknown0[8] <fgcolor=cBlack, bgcolor=cRed>; //File type ID???
//Build volume definition
float sizeX <fgcolor=cBlack, bgcolor=cWhite>;
float sizeY <fgcolor=cBlack, bgcolor=cWhite>;
float sizeZ <fgcolor=cBlack, bgcolor=cWhite>;
int padding0[3] <fgcolor=cBlack, bgcolor=cBlack>;//00s padding?
float layerThickness <fgcolor=cBlack, bgcolor=cWhite>;
float normalExposure <fgcolor=cBlack, bgcolor=cWhite>;
float bottomExposure <fgcolor=cBlack, bgcolor=cWhite>;
float offTime <fgcolor=cBlack, bgcolor=cWhite>;
int nBottomLayers <fgcolor=cYellow, bgcolor=cWhite>; //Haven't found where these layers show up
int resolutionX <fgcolor=cBlack, bgcolor=cWhite>;
int resolutionY <fgcolor=cBlack, bgcolor=cWhite>;
int preview1Offset <format=hex, fgcolor=cBlack, bgcolor=cWhite>;
int layerDefsStart <fgcolor=cGreen, bgcolor=cWhite>;
int nLayers <fgcolor=cBlack, bgcolor=cWhite>;
int preview2Offset <format=hex, fgcolor=cBlack, bgcolor=cWhite>;
int unknown6 <fgcolor=cGreen, bgcolor=cWhite>; //padding???
int unknown7 <fgcolor=cBlue, bgcolor=cWhite>; //padding???
int padding1[6] <fgcolor=cBlack, bgcolor=cBlack>;//00s padding?
} header;
//---Always repeats 2 times?---Need to battle test it
previewImage previewImage;
//---
previewImage thumbnailImage;
//---
layerDef lDefs[header.nLayers];
local int i;
for( i = 0; i < header.nLayers; i++ ){
layerRawData lD(lDefs[i].rawDataSize);
}
} file;