PODDefines.h#

Parent directory (fileio)

Contains Enumerations and Defines necessary to read POD model files.

Includes#

  • cstdint

Namespaces#

Enums#

Variables#

Source Code#

#pragma once
#include <cstdint>

namespace pvr {
namespace pod {

enum PodTagConstants : uint32_t
{
    c_startTagMask = 0x00000000,
    c_endTagMask = 0x80000000,
    c_TagMash = 0x80000000,
    c_PODFormatVersionLength = 11
};
static const char* const c_PODFormatVersion = "AB.POD.2.0";

enum PODIdentifiers
{
    PODFormatVersion = 1000,
    Scene,
    ExportOptions,
    FileHistory,
    EndiannessMismatch = -402456576,

    // Scene
    e_sceneClearColor = 2000,
    e_sceneAmbientColor,
    e_sceneNumCameras,
    e_sceneNumLights,
    e_sceneNumMeshes,
    e_sceneNumNodes,
    e_sceneNumMeshNodes,
    e_sceneNumTextures,
    e_sceneNumMaterials,
    e_sceneNumFrames,
    e_sceneCamera, // Will come multiple times
    e_sceneLight, // Will come multiple times
    e_sceneMesh, // Will come multiple times
    e_sceneNode, // Will come multiple times
    e_sceneTexture, // Will come multiple times
    e_sceneMaterial, // Will come multiple times
    e_sceneFlags,
    e_sceneFPS,
    e_sceneUserData,
    e_sceneUnits,

    // Materials
    e_materialName = 3000,
    e_materialDiffuseTextureIndex,
    e_materialOpacity,
    e_materialAmbientColor,
    e_materialDiffuseColor,
    e_materialSpecularColor,
    e_materialShininess,
    e_materialEffectFile,
    e_materialEffectName,
    e_materialAmbientTextureIndex,
    e_materialSpecularColorTextureIndex,
    e_materialSpecularLevelTextureIndex,
    e_materialBumpMapTextureIndex,
    e_materialEmissiveTextureIndex,
    e_materialGlossinessTextureIndex,
    e_materialOpacityTextureIndex,
    e_materialReflectionTextureIndex,
    e_materialRefractionTextureIndex,
    e_materialBlendingRGBSrc,
    e_materialBlendingAlphaSrc,
    e_materialBlendingRGBDst,
    e_materialBlendingAlphaDst,
    e_materialBlendingRGBOperation,
    e_materialBlendingAlphaOperation,
    e_materialBlendingRGBAColor,
    e_materialBlendingFactorArray,
    e_materialFlags,
    e_materialUserData,
    e_materialMetallicity,
    e_materialRoughness,
    e_materialIOR,
    e_materialFresnel,
    e_materialReflectivity,
    e_materialSSScattering,
    e_materialSSScateringDepth,
    e_materialSSScateringColor,
    e_materialEmission,
    e_materialEmissionLuminance,
    e_materialEmissionKelvin,
    e_materialAnisotropy,
    e_materialIdxTexMetallicity,
    e_materialIdxTexRoughness,

    // Textures
    e_textureFilename = 4000,

    // Nodes
    e_nodeIndex = 5000,
    e_nodeName,
    e_nodeMaterialIndex,
    e_nodeParentIndex,
    e_nodePosition, // Deprecated
    e_nodeRotation, // Deprecated
    e_nodeScale, // Deprecated
    e_nodeAnimationPosition,
    e_nodeAnimationRotation,
    e_nodeAnimationScale,
    e_nodeMatrix, // Deprecated
    e_nodeAnimationMatrix,
    e_nodeAnimationFlags,
    e_nodeAnimationPositionIndex,
    e_nodeAnimationRotationIndex,
    e_nodeAnimationScaleIndex,
    e_nodeAnimationMatrixIndex,
    e_nodeUserData,

    // Mesh
    e_meshNumVertices = 6000,
    e_meshNumFaces,
    e_meshNumUVWChannels,
    e_meshVertexIndexList,
    e_meshStripLength,
    e_meshNumStrips,
    e_meshVertexList,
    e_meshNormalList,
    e_meshTangentList,
    e_meshBinormalList,
    e_meshUVWList, // Will come multiple times
    e_meshVertexColorList,
    e_meshBoneIndexList,
    e_meshBoneWeightList,
    e_meshInterleavedDataList,
    e_meshBoneBatchIndexList,
    e_meshNumBoneIndicesPerBatch,
    e_meshBoneOffsetPerBatch,
    e_meshMaxNumBonesPerBatch,
    e_meshNumBoneBatches,
    e_meshUnpackMatrix,

    // Light
    e_lightTargetObjectIndex = 7000,
    e_lightColor,
    e_lightType,
    e_lightConstantAttenuation,
    e_lightLinearAttenuation,
    e_lightQuadraticAttenuation,
    e_lightFalloffAngle,
    e_lightFalloffExponent,

    // Camera
    e_cameraTargetObjectIndex = 8000,
    e_cameraFOV,
    e_cameraFarPlane,
    e_cameraNearPlane,
    e_cameraFOVAnimation,

    // Mesh data block
    e_blockDataType = 9000,
    e_blockNumComponents,
    e_blockStride,
    e_blockData
};
} // namespace pod
} // namespace pvr