2025-02-17 23:17:30 -06:00

68 lines
2.6 KiB
C
Executable File

//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#ifndef _DYN_MAX_UTIL_H
#define _DYN_MAX_UTIL_H
#pragma pack(push,8)
#include <max.h>
#include <iparamb2.h>
#include <ISkin.h>
#include <decomp.h>
#pragma pack(pop)
#include "math/mMath.h"
#include "ts/tsTransform.h"
#define DEFAULT_TIME 0
extern Point3F & Point3ToPoint3F(Point3 & p3, Point3F & p3f);
extern MatrixF & convertToMatrixF(Matrix3 & mat3,MatrixF & matf);
extern void zapScale(Matrix3 & mat);
extern TriObject * getTriObject( INode *pNode, S32 time, S32 multiResVerts, bool & deleteIt);
extern void getLocalNodeTransform(INode *pNode, INode *parent, AffineParts & child0, AffineParts & parent0, S32 time, Quat16 & rot, Point3F & trans, Quat16 & srot, Point3F & scale);
extern void getBlendNodeTransform(INode *pNode, INode *parent, AffineParts & child0, AffineParts & parent0, S32 time, S32 referenceTime, Quat16 & rot, Point3F & trans, Quat16 & srot, Point3F & scale);
extern Matrix3 & getLocalNodeMatrix(INode *pNode, INode *parent, S32 time, Matrix3 & matrix, AffineParts & child0, AffineParts & parent0);
extern void computeObjectOffset(INode * pNode, Matrix3 & mat);
extern F32 findVolume(INode * pNode, S32 & polyCount);
extern void getDeltaTransform(INode * pNode, S32 time1, S32 time2, Quat16 & rot, Point3F & trans, Quat16 & srot, Point3F & scale);
extern bool isVis(INode * pNode, S32 time);
extern F32 getVisValue(INode * pNode, S32 time);
extern bool animatesVis(INode * pNode, const Interval & range, bool & error);
extern bool animatesFrame(INode * pNode, const Interval & range, bool & error);
extern bool animatesMatFrame(INode * pNode, const Interval & range, bool & error);
extern void embedSubtree(Interface *);
extern void renumberNodes(Interface *, S32 newSize);
extern void registerDetails(Interface * ip);
extern char * chopTrailingNumber(const char *, S32 & size);
extern bool hasMesh(INode *pNode);
extern void findSkinData(INode * pNode, ISkin **skin, ISkinContextData ** skinData);
extern bool hasSkin(INode * pNode);
extern bool pointInPoly(const Point3F & point, const Point3F & normal, const Point3F * verts, U32 n);
#endif // _DYN_MAX_UTIL_H