mirror of https://github.com/x64dbg/btparser
58 lines
1.3 KiB
Plaintext
58 lines
1.3 KiB
Plaintext
//--------------------------------------
|
|
//--- 010 Editor v3.0.5 Binary Template
|
|
//
|
|
// File: STLTemplate.bt
|
|
// Author: ZiZi
|
|
// E-mail: zefars@rambler.ru
|
|
// Revision: 1.2
|
|
// Purpose: Defines a template for
|
|
// parsing STL 3D-data files.
|
|
//-----------------------------------
|
|
|
|
typedef struct {
|
|
CHAR Caption[80];
|
|
DWORD trCount;
|
|
} STLFILEHEADER <read=STLFILEHEADERRead>;
|
|
|
|
string STLFILEHEADERRead(STLFILEHEADER &x)
|
|
{
|
|
return x.Caption;
|
|
};
|
|
|
|
typedef struct {
|
|
FLOAT x;
|
|
FLOAT y;
|
|
FLOAT z;
|
|
} tVector3f <read=tVector3fRead>;
|
|
string tVector3fRead( tVector3f &v ) {
|
|
string s;
|
|
SPrintf( s, "(%6.2f %6.2f %6.2f)", v.x, v.y, v.z );
|
|
return s;
|
|
};
|
|
|
|
typedef struct {
|
|
tVector3f Normal;
|
|
tVector3f Point0;
|
|
tVector3f Point1;
|
|
tVector3f Point2;
|
|
WORD Flags <format=hex>;
|
|
} STLTRIANGLE;
|
|
|
|
//---------------------------------------------
|
|
|
|
LittleEndian();
|
|
SetBackColor( cLtAqua );
|
|
|
|
local CHAR text_sign[5];
|
|
ReadBytes( text_sign, FTell(), 5);
|
|
if (text_sign=="solid")
|
|
{
|
|
Warning("Is ASCII STL");
|
|
return;
|
|
}
|
|
STLFILEHEADER stlh;
|
|
SetBackColor( cNone );
|
|
local int64 n=(FileSize()-84)/50;
|
|
if (stlh.trCount!=n) Warning("File corrupted: stlh.trCount must be equal %Ld", n);
|
|
STLTRIANGLE Data[n];
|