Files
DoomRTX/neo/engine/framework/DeclModelDefInterface.h
Justin Marshall 76f642286e Added modelviewer.
Added neural network code(turned off by default).
Lots of editor and rendering fixes.
2026-05-17 22:09:25 -07:00

72 lines
2.3 KiB
C++

#pragma once
class idMD5Anim;
typedef struct {
jointHandle_t num;
jointHandle_t parentNum;
int channel;
} jointInfo_t;
class idMD5AnimInterface {
public:
virtual const char* Name() const = 0;
};
class idAnimInterface {
public:
virtual int NumAnims() const = 0;
virtual const idMD5Anim* MD5Anim(int index) const = 0;
virtual const char* Name() const = 0;
};
/*
===============
idDeclModelDefInterface
Engine/editor-facing interface for modelDef decls.
This lets Radiant / editor code depend on the modelDef API without needing the
full concrete idDeclModelDef type in scope.
===============
*/
class idDeclModelDefInterface : public idDecl {
public:
virtual ~idDeclModelDefInterface() {}
// idDecl interface
virtual size_t Size(void) const = 0;
virtual const char* DefaultDefinition(void) const = 0;
virtual bool Parse(const char* text, const int textLength) = 0;
virtual void FreeData(void) = 0;
// modelDef interface
virtual void Touch(void) const = 0;
virtual const idDeclSkin* GetDefaultSkin(void) const = 0;
virtual const idJointQuat* GetDefaultPose(void) const = 0;
virtual void SetupJoints(int* numJoints, idJointMat** jointList, idBounds& frameBounds, bool removeOriginOffset) const = 0;
virtual idRenderModel* ModelHandle(void) const = 0;
virtual void GetJointList(const char* jointnames, idList<jointHandle_t>& jointList) const = 0;
virtual const jointInfo_t* FindJoint(const char* name) const = 0;
virtual int NumAnims(void) const = 0;
virtual const idAnimInterface* GetAnim(int index) const = 0;
virtual int GetSpecificAnim(const char* name) const = 0;
virtual int GetAnim(const char* name) const = 0;
virtual bool HasAnim(const char* name) const = 0;
virtual const idDeclSkin* GetSkin(void) const = 0;
virtual const char* GetModelName(void) const = 0;
virtual const idList<jointInfo_t>& Joints(void) const = 0;
virtual const int* JointParents(void) const = 0;
virtual int NumJoints(void) const = 0;
virtual const jointInfo_t* GetJoint(int jointHandle) const = 0;
virtual const char* GetJointName(int jointHandle) const = 0;
virtual int NumJointsOnChannel(int channel) const = 0;
virtual const int* GetChannelJoints(int channel) const = 0;
virtual const idVec3& GetVisualOffset(void) const = 0;
};