2017-04-17 06:17:10 -06:00

60 lines
1.7 KiB
C++
Executable File

//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#ifndef DTSMAXAPPMESH_H_
#define DTSMAXAPPMESH_H_
#include "appMesh.h"
#include "appNode.h"
class INode;
namespace DTS
{
class MaxAppMesh : public AppMesh
{
typedef AppMesh Parent;
protected:
// Don't hold onto anything mesh-like in max, keep the node instead
INode * mMaxNode;
// Hold this in addition just for convenience of a few methods that
// use app node methods
AppNode * mAppNode;
void getSkinData();
public:
MaxAppMesh(INode * maxNode, AppNode * appNode);
const char * getName() { return mAppNode->getName(); }
bool getFloat(const char * propName, F32 & defaultVal) { return mAppNode->getFloat(propName,defaultVal); }
bool getInt(const char * propName, S32 & defaultVal) { return mAppNode->getInt(propName,defaultVal); }
bool getBool(const char * propName, bool & defaultVal) { return mAppNode->getBool(propName,defaultVal); }
Matrix<4,4,F32> getMeshTransform(const AppTime & time);
F32 getVisValue(const AppTime & time);
bool getMaterial(S32 matIdx, Material &);
S32 getNumBones();
AppNode * getBone(S32 idx);
F32 getWeight(S32 boneIdx, S32 vertIdx);
bool animatesMatFrame(const AppSequenceData & seqData);
bool animatesFrame(const AppSequenceData & seqData);
AppMeshLock lockMesh(const AppTime & time, const Matrix<4,4,F32> & objectOffset);
void unlockMesh();
};
};
#endif // DTSMAXAPPMESH_H_