18 #include "precompiled.h"
20 #include <boost/bind.hpp>
36 m_NewVertices(v), m_GpuSkinning(gpuSkinning)
74 float fvPosOut[],
const int iFace,
const int iVert)
87 float fvNormOut[],
const int iFace,
const int iVert)
100 float fvTexcOut[],
const int iFace,
const int iVert)
107 fvTexcOut[0] = v.
m_UVs[0];
108 fvTexcOut[1] = 1.0-v.
m_UVs[1];
113 const float UNUSED(fvBiTangent)[],
const float UNUSED(fMagS),
const float UNUSED(fMagT),
114 const tbool bIsOrientationPreserving,
const int iFace,
const int iVert)
126 m_NewVertices.push_back(p.
X);
127 m_NewVertices.push_back(p.
Y);
128 m_NewVertices.push_back(p.
Z);
130 m_NewVertices.push_back(n.
X);
131 m_NewVertices.push_back(n.
Y);
132 m_NewVertices.push_back(n.
Z);
134 m_NewVertices.push_back(fvTangent[0]);
135 m_NewVertices.push_back(fvTangent[1]);
136 m_NewVertices.push_back(fvTangent[2]);
137 m_NewVertices.push_back(bIsOrientationPreserving > 0.5 ? 1.0f : (-1.0f));
141 for (
size_t j = 0; j < 4; ++j)
143 m_NewVertices.push_back(vertices[i].m_Blend.m_Bone[j]);
144 m_NewVertices.push_back(255.f * vertices[i].m_Blend.m_Weight[j]);
148 for (
size_t UVset = 0; UVset < numUVsPerVertex; ++UVset)
150 m_NewVertices.push_back(vertices[i].m_UVs[UVset * 2]);
151 m_NewVertices.push_back(1.0 - vertices[i].m_UVs[UVset * 2 + 1]);
static void setTSpace(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fvBiTangent[], const float fMagS, const float fMagT, const tbool bIsOrientationPreserving, const int iFace, const int iVert)
#define UNUSED(param)
mark a function parameter as unused and avoid the corresponding compiler warning. ...
SMikkTSpaceInterface * m_pInterface
static int getNumFaces(const SMikkTSpaceContext *pContext)
int(* m_getNumVerticesOfFace)(const SMikkTSpaceContext *pContext, const int iFace)
void(* m_setTSpace)(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fvBiTangent[], const float fMagS, const float fMagT, const tbool bIsOrientationPreserving, const int iFace, const int iVert)
std::vector< float > & m_NewVertices
void(* m_getNormal)(const SMikkTSpaceContext *pContext, float fvNormOut[], const int iFace, const int iVert)
SMikkTSpaceContext m_Context
static void getTexCoord(const SMikkTSpaceContext *pContext, float fvTexcOut[], const int iFace, const int iVert)
int(* m_getNumFaces)(const SMikkTSpaceContext *pContext)
static void getNormal(const SMikkTSpaceContext *pContext, float fvNormOut[], const int iFace, const int iVert)
tbool genTangSpaceDefault(const SMikkTSpaceContext *pContext)
void(* m_setTSpaceBasic)(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fSign, const int iFace, const int iVert)
static void getPosition(const SMikkTSpaceContext *pContext, float fvPosOut[], const int iFace, const int iVert)
void(* m_getPosition)(const SMikkTSpaceContext *pContext, float fvPosOut[], const int iFace, const int iVert)
MikkTSpace(const CModelDefPtr &m, std::vector< float > &v, bool gpuSkinning)
void(* m_getTexCoord)(const SMikkTSpaceContext *pContext, float fvTexcOut[], const int iFace, const int iVert)
int tbool
Copyright (C) 2011 by Morten S.
static int getNumVerticesOfFace(const SMikkTSpaceContext *pContext, const int iFace)
SMikkTSpaceInterface m_Interface
boost::shared_ptr< CModelDef > CModelDefPtr
std::vector< float > m_UVs