#pragma region CPL License /* Nuclex Native Framework Copyright (C) 2002-2013 Nuclex Development Labs This library is free software; you can redistribute it and/or modify it under the terms of the IBM Common Public License as published by the IBM Corporation; either version 1.0 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the IBM Common Public License for more details. You should have received a copy of the IBM Common Public License along with this library */ #pragma endregion // CPL License #ifndef NUCLEX_SCENE_MESHES_VERTEXELEMENTIDS_H #define NUCLEX_SCENE_MESHES_VERTEXELEMENTIDS_H #include "Nuclex/Scene/Config.h" #include namespace Nuclex { namespace Scene { namespace Meshes { // ------------------------------------------------------------------------------------------- // namespace VertexElementId { // until C++ enum class support is rolled out /// IDs for standard vertex elements enum Enum { /// First 2D texture coordinate set TextureCoordinatesA = 'TEXA' /// Second 2D texture coordinate set TextureCoordinatesB = 'TEXB'; }; } // namespace VertexElementId /// Position of the vertex in 3D space const std::uint32_t typedef Position3<'POS0'> PositionA; /// Position offsets for the first morph key typedef Position3<'MOR0'> MorphA; /// Position offsets for the second morph key typedef Position3<'MOR1'> MorphB; /// Position offsets for the third morph key typedef Position3<'MOR2'> MorphC; // TODO: Needs bone indices, too /// First set of bone weights for up to 4 influencing bones typedef Position4<'BOW0'> BoneWeightsA; /// Second set of bone weights for 4 additional influencing bones typedef Position4<'BOW1'> BoneWeightsB; /// First vertex normal in 3D space typedef Vector3<'NOR0'> NormalA; /// Second vertex normal in 3D space typedef Vector3<'NOR1'> NormalB; /// First vertex scale typedef Vector3<'SCA0'> ScaleA; // ------------------------------------------------------------------------------------------- // }}} // namespace Nuclex::Scene::Meshes #endif // NUCLEX_SCENE_MESHES_VERTEXELEMENTIDS_H