Initial commit
This commit is contained in:
126
Torque/SDK/tools/max2dtsExporter/SceneEnum.h
Normal file
126
Torque/SDK/tools/max2dtsExporter/SceneEnum.h
Normal file
@@ -0,0 +1,126 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef SCENEENUM_H_
|
||||
#define SCENEENUM_H_
|
||||
|
||||
#pragma pack(push,8)
|
||||
#include <max.h>
|
||||
#pragma pack(pop)
|
||||
|
||||
#include "max2dtsExporter/shapeMimic.h"
|
||||
#include "ts/tsShape.h"
|
||||
#include "platform/platform.h"
|
||||
#include "core/tvector.h"
|
||||
#include "core/filestream.h"
|
||||
|
||||
class SceneEnumProc : public ITreeEnumProc
|
||||
{
|
||||
static FileStream file;
|
||||
|
||||
Vector<INode*> meshNodes;
|
||||
Vector<INode*> skinNodes;
|
||||
Vector<INode*> subTrees;
|
||||
Vector<INode*> sequences;
|
||||
INode *boundsNode;
|
||||
INode *viconNode;
|
||||
|
||||
ShapeMimic shapeMimic;
|
||||
TSShape * pShape;
|
||||
|
||||
bool exportError;
|
||||
char * exportErrorStr;
|
||||
|
||||
S32 getSequence( INode *pNode );
|
||||
|
||||
static void clearExportConfig();
|
||||
|
||||
void getPolyCount(S32 & polyCount, F32 & minVolPerPoly, F32 & maxVolPerPoly);
|
||||
void getPolyCountSubtree(INode *, S32 &, F32 & minVolPerPoly, F32 & maxVolPerPoly);
|
||||
|
||||
public:
|
||||
SceneEnumProc();
|
||||
~SceneEnumProc();
|
||||
|
||||
static Vector<char *> alwaysExport;
|
||||
static Vector<char *> neverExport;
|
||||
static Vector<char *> neverAnimate;
|
||||
|
||||
static char exportType;
|
||||
|
||||
static const char * readConfigFile(const char * filename);
|
||||
static void writeConfigFile(const char * filename);
|
||||
static void setInitialDefaults();
|
||||
|
||||
static bool dumpShape(const char * filename);
|
||||
|
||||
void exportTextFile(Stream * file);
|
||||
|
||||
static bool isDummy(INode *pNode);
|
||||
static bool isBounds(INode *pNode);
|
||||
static bool isVICON(INode *pNode);
|
||||
static bool isCamera(INode *pNode);
|
||||
static bool isSubtree(INode *pNode);
|
||||
static bool isBillboard(INode * pNode);
|
||||
static bool isBillboardZAxis(INode * pNode);
|
||||
static bool isSortedObject(INode * pNode);
|
||||
static bool isDecal(INode * pNode);
|
||||
static void tweakName(const char ** nodeName); // can only take from front at this point...
|
||||
|
||||
static void printDump(U32 mask, const char *);
|
||||
void startDump(const TCHAR * filename, const TCHAR * maxFile);
|
||||
|
||||
void setExportError(const char * errStr) { dFree(exportErrorStr); exportErrorStr = dStrdup(errStr); exportError = true; }
|
||||
void clearExportError() { exportError = false; dFree(exportErrorStr); exportErrorStr = NULL; }
|
||||
bool isExportError() { return exportError; }
|
||||
const char * getExportError() { return exportErrorStr; }
|
||||
|
||||
TSShape * getShape() { return pShape; }
|
||||
|
||||
TSShape * regenShape(); // for testing purposes only...
|
||||
|
||||
bool isEmpty();
|
||||
S32 callback( INode *node );
|
||||
|
||||
void processScene();
|
||||
void enumScene(IScene *);
|
||||
};
|
||||
|
||||
// enum for printDump
|
||||
enum
|
||||
{
|
||||
PDPass1 = 1 << 0, // collect useful nodes
|
||||
PDPass2 = 1 << 1, // put together shape structure
|
||||
PDPass3 = 1 << 2, // cull un-needed nodes
|
||||
PDObjectOffsets = 1 << 3, // display object offset transform during 2nd pass
|
||||
PDNodeStates = 1 << 4, // display as added
|
||||
PDObjectStates = 1 << 5, // ""
|
||||
PDNodeStateDetails = 1 << 6, // details of above
|
||||
PDObjectStateDetails = 1 << 7, // ""
|
||||
PDSequences = 1 << 8,
|
||||
PDShapeHierarchy = 1 << 9,
|
||||
PDAlways = 0xFFFFFFFF
|
||||
};
|
||||
|
||||
// parameters of export...
|
||||
extern U32 dumpMask;
|
||||
extern U32 allowEmptySubtrees;
|
||||
extern U32 allowCrossedDetails;
|
||||
extern U32 allowUnusedMeshes;
|
||||
extern U32 transformCollapse;
|
||||
extern U32 viconNeeded;
|
||||
extern U32 enableSequences;
|
||||
extern U32 allowOldSequences;
|
||||
extern U32 enableTwoSidedMaterials;
|
||||
extern F32 animationDelta;
|
||||
extern F32 maxFrameRate;
|
||||
extern S32 weightsPerVertex;
|
||||
extern F32 weightThreshhold;
|
||||
extern char baseTexturePath[256];
|
||||
extern S32 t2AutoDetail;
|
||||
|
||||
extern void setBaseTexturePath(const char *);
|
||||
//--------------------------------------------------------------
|
||||
#endif
|
||||
Reference in New Issue
Block a user