PixelLightAPI  .
Classes | Static Public Attributes
PLMesh::MeshFile Class Reference

PL mesh file format (binary, Little-Endian) More...

#include <MeshFile.h>

List of all members.

Classes

struct  AnchorPoint
 Anchor point. More...
struct  AnchorPoints
 Anchor points list. More...
struct  Animation
 Animation. More...
struct  AnimationEvent
 Animation event. More...
struct  AnimationFrame
 Animation frame. More...
struct  Animations
 Animations list. More...
struct  BoundingBox
 Bounding box. More...
struct  Chunk
 Chunk header. More...
struct  Geometry
 Geometry object. More...
struct  IndexBuffer
 Index buffer. More...
struct  Joint
 Joint. More...
struct  JointState
 Joint state. More...
struct  LODLevel
 LOD level. More...
struct  Materials
 Material list. More...
struct  Mesh
 Mesh. More...
struct  MeshFileHeader
 Main file header. More...
struct  MorphTarget
 Morph target. More...
struct  MorphTargetAnimation
 Morph target animation. More...
struct  Skeleton
 Skeleton. More...
struct  VertexAttribute
 Vertex attribute of a vertex buffer. More...
struct  VertexBuffer
 Vertex buffer. More...
struct  VertexWeights
 Vertex weights. More...
struct  Weight
 Weight. More...

Static Public Attributes

static const PLCore::uint32 MAGIC = 0x57754631
static const PLCore::uint32 VERSION = 2
static const PLCore::uint32 CHUNK_MESHFILE = 0x00000001
static const PLCore::uint32 CHUNK_MATERIALS = 0x00000010
static const PLCore::uint32 CHUNK_MESH = 0x00000011
static const PLCore::uint32 CHUNK_LODLEVEL = 0x00000012
static const PLCore::uint32 CHUNK_INDEXBUFFER = 0x00000013
static const PLCore::uint32 CHUNK_GEOMETRY = 0x00000014
static const PLCore::uint32 CHUNK_MORPHTARGET = 0x00000015
static const PLCore::uint32 CHUNK_VERTEXBUFFER = 0x00000016
static const PLCore::uint32 CHUNK_VERTEXATTRIBUTE = 0x00000017
static const PLCore::uint32 CHUNK_WEIGHT = 0x00000018
static const PLCore::uint32 CHUNK_VERTEXWEIGHTS = 0x00000019
static const PLCore::uint32 CHUNK_SKELETON = 0x00000020
static const PLCore::uint32 CHUNK_SKELETONANIMATION = 0x00000021
static const PLCore::uint32 CHUNK_ANCHORPOINTS = 0x00000022
static const PLCore::uint32 CHUNK_ANIMATIONS = 0x00000023
static const PLCore::uint32 CHUNK_MORPHTARGETANIMATION = 0x00000024
static const PLCore::uint32 CHUNK_MESHBOUNDINGBOX = 0x00000025

Detailed Description

PL mesh file format (binary, Little-Endian)

  PixelLight mesh format description:

	MESHFILE
	|
	+--PLCore::uint32 nMagic
	|
	+--PLCore::uint32 nVersion
	|
	+--MATERIALS
	|  |
	|  +--PLCore::uint32 nMaterials
	|  |
	|  +--char szName[256][nMaterials]
	|
	+--MESH
	|  |
	|  +--PLCore::uint32 nLODLevels
	|  |
	|  +--PLCore::uint32 nMorphTargets
	|  |
	|  +--PLCore::uint32 nWeights
	|  |
	|  +--PLCore::uint32 nVertexWeights
	|  |
	|  +--LODLEVEL (*)
	|  |  |
	|  |  +--float fDistance
	|  |  |
	|  |  +--PLCore::uint32 nGeometries
	|  |  |
	|  |  +--PLCore::uint32 nOctreeSubdivide
	|  |  |
	|  |  +--PLCore::uint32 nOctreeMinGeometries
	|  |  |
	|  |  +--INDEXBUFFER
	|  |  |  |
	|  |  |  +--PLCore::uint32 nElementType
	|  |  |  |
	|  |  |  +--PLCore::uint32 nElements
	|  |  |  |
	|  |  |  +--PLCore::uint32 nSize;
	|  |  |  |
	|  |  |  +--... 'nElements' indices of type 'nElementType'
	|  |  |
	|  |  +--GEOMETRY (*)
	|  |  |  |
	|  |  |  +--char szName[64]
	|  |  |  |
	|  |  |  +--PLCore::uint32 nFlags
	|  |  |  |
	|  |  |  +--bool bActive
	|  |  |  |
	|  |  |  +--int nPrimitiveType
	|  |  |  |
	|  |  |  +--int nMaterial
	|  |  |  |
	|  |  |  +--int nStartIndex
	|  |  |  |
	|  |  |  +--int nIndexSize
	|  |  |
	|  |  +--... 'nGeometries' geometries
	|  |
	|  +--... 'nLODLevels' LOD levels
	|  |
	|  +--MORPHTARGET (*)
	|  |  |
	|  |  +--char szName
	|  |  |
	|  |  +--bool bRelative
	|  |  |
	|  |  +--PLCore::uint32 nVertexIDs
	|  |  |
	|  |  +--PLCore::uint32 nVertexBuffers
	|  |  |
	|  |  +--'nVertexIDs' vertex ID's
	|  |  |
	|  |  +--VERTEXBUFFER (*)
	|  |  |  |
	|  |  |  +--PLCore::uint32 nVertexAttributes
	|  |  |  |
	|  |  |  +--PLCore::uint32 nVertices
	|  |  |  |
	|  |  |  +--PLCore::uint32 nSize;
	|  |  |  |
	|  |  |  +--VERTEXATTRIBUTE (*)
	|  |  |  |  |
	|  |  |  |  +--int nSemantic;
	|  |  |  |  |
	|  |  |  |  +--int nChannel;
	|  |  |  |  |
	|  |  |  |  +--int nType;
	|  |  |  |
	|  |  |  +--... 'nVertexAttributes' vertex attributes
	|  |  |  |
	|  |  |  +--... 'nVertices' vertices, a vertex consists of 'nVertexAttributes' attributes
	|  |  |
	|  |  +--... 'nVertexBuffers' vertex buffers
	|  |
	|  +--... 'nMorphTargets' morph targets
	|  |
	|  +--WEIGHT (*)
	|  |  |
	|  |  +--int nJoint
	|  |  |
	|  |  +--float fBias
	|  |
	|  +--... 'nWeights' weights
	|  |
	|  +--VERTEXWEIGHTS (*)
	|  |  |
	|  |  +--PLCore::uint32 nWeights
	|  |  |
	|  |  +-- 'nWeights' weight indices for the vertex
	|  |
	|   +--... one vertex weight for each LOD level vertex
	|
	+--MORPHTARGETANIMATION (*)
	|  |
	|  +--char szName
	|  |
	|  +--PLCore::uint32 nMorphTargets
	|  |
	|  +--PLCore::uint32 nFrames
	|  |
	|  +--MORPHTARGETANIMATIONTARGET (*)
	|  |  |
	|  |  +-- char szName[64]
	|  |
	|  +--... 'nMorphTargets' animation morph targets
	|  |
	|  +--FRAMEKEYS (*)
	|  |  |
	|  |  +-- FRAMEKEY (*)
	|  |  |   |
	|  |  |   +-- float fKey
	|  |  |
	|  |  +--... for each animation morph target
	|  |
	|  +-... 'nFrames' frame keys
	|
	+--SKELETON
	|  |
	|  +--char szName
	|  |
	|  +--PLCore::uint32 nJoints
	|  |
	|  +--PLCore::uint32 nFrames
	|  |
	|  +--JOINT (*)
	|  |  |
	|  |  +-- char szName[64]
	|  |  |
	|  |  +-- int nParent
	|  |  |
	|  |  +-- PLCore::uint8 nAnimatedComponents
	|  |
	|  +--... 'nJoints' joints
	|  |
	|  +--BASEFRAME
	|  |  |
	|  |  +--JOINTSTATE (*)
	|  |  |  |
	|  |  |  +-- float fTranslation[3]
	|  |  |  |
	|  |  |  +-- float fRotation[4]
	|  |  |  |
	|  |  |  +-- float fTranslationJointSpace[3]
	|  |  |  |
	|  |  |  +-- float fRotationJointSpace[4]
	|  |  |
	|  |  +--... 'nJoints' joint states
	|  |
	|  +--FRAMEKEYS (*)
	|  |  |
	|  |  +-- FRAMEKEY (*)
	|  |  |   |
	|  |  |   +-- float fKey
	|  |  |
	|  |  +--... for each animated component
	|  |
	|  +-... 'nFrames' frame keys
	|
	+--ANCHORPOINTS
	|  |
	|  +--PLCore::uint32 nAnchorPoints
	|  |
	|  +--ANCHORPOINT (*)
	|  |  |
	|  |  +-- char szName[64]
	|  |  |
	|  |  +-- bool bType
	|  |  |
	|  |  +-- int nID
	|  |
	|  +--... 'nAnchorPoints' anchor points
	|
	+--ANIMATIONS
	|  |
	|  +--PLCore::uint32 nAnimations
	|  |
	|  +--ANIMATION (*)
	|  |  |
	|  |  +--char szName[64]
	|  |  |
	|  |  +--int nType
	|  |  |
	|  |  +--int nStart
	|  |  |
	|  |  +--int nEnd
	|  |  |
	|  |  +--float fSpeed
	|  |  |
	|  |  +--PLCore::uint32 nFlags
	|  |  |
	|  |  +--int nEvents
	|  |  |
	|  |  +--ANIMATION_FRAMES
	|  |  |  |
	|  |  |  +--ANIMATION_FRAME (*)
	|  |  |  |  |
	|  |  |  |  +--float fSpeed
	|  |  |  |
	|  |  |  +--... |nEnd-nStart| animation frames
	|  |  |
	|  |  +--ANIMATION_EVENTS
	|  |     |
	|  |     +--ANIMATION_EVENT (*)
	|  |     |  |
	|  |     |  +--int nID
	|  |     |  |
	|  |     |  +--int nFrame
	|  |     |
	|  |     +--... 'nEvents' animation events
	|  |
	|  +--MESHBOUNDINGBOX (*)
	|  |  |
	|  |  +--float fMin[3]
	|  |  |
	|  |  +--float fMax[3]
	|  |
	|  +--...
	|
   

Member Data Documentation

const PLCore::uint32 PLMesh::MeshFile::MAGIC = 0x57754631 [static]
const PLCore::uint32 PLMesh::MeshFile::VERSION = 2 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_MESHFILE = 0x00000001 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_MATERIALS = 0x00000010 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_MESH = 0x00000011 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_LODLEVEL = 0x00000012 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_INDEXBUFFER = 0x00000013 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_GEOMETRY = 0x00000014 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_MORPHTARGET = 0x00000015 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_VERTEXBUFFER = 0x00000016 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_VERTEXATTRIBUTE = 0x00000017 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_WEIGHT = 0x00000018 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_VERTEXWEIGHTS = 0x00000019 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_SKELETON = 0x00000020 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_SKELETONANIMATION = 0x00000021 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_ANCHORPOINTS = 0x00000022 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_ANIMATIONS = 0x00000023 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_MORPHTARGETANIMATION = 0x00000024 [static]
const PLCore::uint32 PLMesh::MeshFile::CHUNK_MESHBOUNDINGBOX = 0x00000025 [static]

The documentation for this class was generated from the following file:


PixelLight PixelLight 0.9.10-R1
Copyright (C) 2002-2011 by The PixelLight Team
Last modified Fri Dec 23 2011 15:51:21
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported