Assimp  v4.1. (December 2018)
SIBImporter.cpp File Reference

Implementation of the SIB importer class. More...

Classes

struct  SIB
 
struct  SIBChunk
 
struct  SIBEdge
 
struct  SIBMesh
 
struct  SIBObject
 
struct  TempMesh
 

Macros

#define TAG(A, B, C, D)   ((A << 24) | (B << 16) | (C << 8) | D)
 

Typedefs

typedef std::pair< uint32_t, uint32_tSIBPair
 

Enumerations

enum  { POS, NRM, UV, N }
 

Functions

static void CalculateNormals (SIBMesh *mesh)
 
static aiVector3D CalculateVertexNormal (SIBMesh *mesh, uint32_t faceIdx, uint32_t pos, const std::vector< aiVector3D > &faceNormals)
 
static void CheckVersion (StreamReaderLE *stream)
 
static void ConnectFaces (SIBMesh *mesh)
 
static SIBEdgeGetEdge (SIBMesh *mesh, uint32_t posA, uint32_t posB)
 
static void ReadAxis (aiMatrix4x4 &axis, StreamReaderLE *stream)
 
static SIBChunk ReadChunk (StreamReaderLE *stream)
 
static aiColor3D ReadColor (StreamReaderLE *stream)
 
static void ReadCreases (SIBMesh *mesh, StreamReaderLE *stream)
 
static void ReadEdges (SIBMesh *mesh, StreamReaderLE *stream)
 
static void ReadFaces (SIBMesh *mesh, StreamReaderLE *stream)
 
static void ReadInstance (SIB *sib, StreamReaderLE *stream)
 
static void ReadLight (SIB *sib, StreamReaderLE *stream)
 
static void ReadLightInfo (aiLight *light, StreamReaderLE *stream)
 
static void ReadMaterial (SIB *sib, StreamReaderLE *stream)
 
static void ReadMtls (SIBMesh *mesh, StreamReaderLE *stream)
 
static void ReadScale (aiMatrix4x4 &axis, StreamReaderLE *stream)
 
static void ReadScene (SIB *sib, StreamReaderLE *stream)
 
static void ReadShape (SIB *sib, StreamReaderLE *stream)
 
static aiString ReadString (StreamReaderLE *stream, uint32_t numWChars)
 
static void ReadUVs (SIBMesh *mesh, StreamReaderLE *stream)
 
static void ReadVerts (SIBMesh *mesh, StreamReaderLE *stream, uint32_t count)
 
static void UnknownChunk (StreamReaderLE *, const SIBChunk &chunk)
 

Variables

static const aiImporterDesc desc
 
struct SIBChunk PACK_STRUCT
 

Detailed Description

Implementation of the SIB importer class.

The Nevercenter Silo SIB format is undocumented. All details here have been reverse engineered from studying the binary files output by Silo.

Nevertheless, this implementation is reasonably complete.

Macro Definition Documentation

◆ TAG

#define TAG (   A,
  B,
  C,
 
)    ((A << 24) | (B << 16) | (C << 8) | D)

Typedef Documentation

◆ SIBPair

typedef std::pair<uint32_t, uint32_t> SIBPair

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
POS 
NRM 
UV 

Function Documentation

◆ CalculateNormals()

static void CalculateNormals ( SIBMesh mesh)
static

◆ CalculateVertexNormal()

static aiVector3D CalculateVertexNormal ( SIBMesh mesh,
uint32_t  faceIdx,
uint32_t  pos,
const std::vector< aiVector3D > &  faceNormals 
)
static

◆ CheckVersion()

static void CheckVersion ( StreamReaderLE stream)
static

◆ ConnectFaces()

static void ConnectFaces ( SIBMesh mesh)
static

◆ GetEdge()

static SIBEdge& GetEdge ( SIBMesh mesh,
uint32_t  posA,
uint32_t  posB 
)
static

◆ ReadAxis()

static void ReadAxis ( aiMatrix4x4 axis,
StreamReaderLE stream 
)
static

◆ ReadChunk()

static SIBChunk ReadChunk ( StreamReaderLE stream)
static

◆ ReadColor()

static aiColor3D ReadColor ( StreamReaderLE stream)
static

◆ ReadCreases()

static void ReadCreases ( SIBMesh mesh,
StreamReaderLE stream 
)
static

◆ ReadEdges()

static void ReadEdges ( SIBMesh mesh,
StreamReaderLE stream 
)
static

◆ ReadFaces()

static void ReadFaces ( SIBMesh mesh,
StreamReaderLE stream 
)
static

◆ ReadInstance()

static void ReadInstance ( SIB sib,
StreamReaderLE stream 
)
static

◆ ReadLight()

static void ReadLight ( SIB sib,
StreamReaderLE stream 
)
static

◆ ReadLightInfo()

static void ReadLightInfo ( aiLight light,
StreamReaderLE stream 
)
static

◆ ReadMaterial()

static void ReadMaterial ( SIB sib,
StreamReaderLE stream 
)
static

◆ ReadMtls()

static void ReadMtls ( SIBMesh mesh,
StreamReaderLE stream 
)
static

◆ ReadScale()

static void ReadScale ( aiMatrix4x4 axis,
StreamReaderLE stream 
)
static

◆ ReadScene()

static void ReadScene ( SIB sib,
StreamReaderLE stream 
)
static

◆ ReadShape()

static void ReadShape ( SIB sib,
StreamReaderLE stream 
)
static

◆ ReadString()

static aiString ReadString ( StreamReaderLE stream,
uint32_t  numWChars 
)
static

◆ ReadUVs()

static void ReadUVs ( SIBMesh mesh,
StreamReaderLE stream 
)
static

◆ ReadVerts()

static void ReadVerts ( SIBMesh mesh,
StreamReaderLE stream,
uint32_t  count 
)
static

◆ UnknownChunk()

static void UnknownChunk ( StreamReaderLE ,
const SIBChunk chunk 
)
static

Variable Documentation

◆ desc

const aiImporterDesc desc
static
Initial value:
= {
"Silo SIB Importer",
"Richard Mitton (http://www.codersnotes.com/about)",
"",
"Does not apply subdivision.",
0, 0,
0, 0,
"sib"
}

◆ PACK_STRUCT

struct TGA_HEADER PACK_STRUCT
aiImporterFlags_SupportBinaryFlavour
@ aiImporterFlags_SupportBinaryFlavour
Indicates that there is a binary encoding of the file format; and that it is supported.
Definition: importerdesc.h:61