⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 md2.h

📁 c++程序
💻 H
字号:
// MD2.h: Schnittstelle f黵 die Klasse CMD2.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MD2_H__0799D8C3_A435_11D1_8F4C_207373C1B105__INCLUDED_)
#define AFX_MD2_H__0799D8C3_A435_11D1_8F4C_207373C1B105__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000



#include <stdio.h>
#include <iostream.h>
#include <windows.h>
#include <commctrl.h>
#include <windowsx.h>
#include <math.h>

#define MAX_TRIANGLES 2 * 4096	// Increased limit cause some models won't load with just 4096
#define MAX_VERTS 2 * 2048		// Was also too low
#define MAX_FRAMES 512
#define MAX_MD2SKINS 32
#define MAX_SKINNAME 64

typedef struct
{
	int a, b, c;
	int a_s, a_t,
		b_s, b_t,
		c_s, c_t;
} make_index_list;

typedef struct
{
	float x, y, z;
} make_vertex_list;

typedef struct
{
	make_vertex_list *vertex;
} make_frame_list;

typedef unsigned char byte;

typedef struct
{
	float v[3];
}vec3_t;

typedef struct
{
	short s;
	short t;
} dstvert_t;

typedef struct 
{
	short index_xyz[3];
	short index_st[3];
} dtriangle_t;


typedef struct
{
	byte v[3];
	byte lightnormalindex;
} dtrivertx_t;

typedef struct
{
	float scale[3];
	float translate[3];
	char name[16];
	dtrivertx_t verts[1];

} daliasframe_t;

typedef struct
{
	int ident;
	int version;

	int skinwidth;
	int skinheight;
	int framesize;

	int num_skins;
	int num_xyz;
	int num_st;
	int num_tris;
	int num_glcmds;
	int num_frames;

	int ofs_skins;
	int ofs_st;
	int ofs_tris;
	int ofs_frames;
	int ofs_glcmds; 
	int ofs_end;

} dmdl_t;

typedef struct
{
        vec3_t          v;
        int		lightnormalindex;
} trivert_t;

typedef struct
{
        vec3_t          mins, maxs;
        char            name[16];
        trivert_t       v[MAX_VERTS];
} frame_t;

class CMD2 
{

friend void redraw (int);

public:
	CMD2();
	~CMD2();

	int Read (char filename[]);
	void Destroy (void);

	inline long getnumberFrames (void) {return (long)m_iFrames;};
	inline long getnumberVertices (void) {return (long)m_iVertices;};
	inline long getnumberTriangles (void){return (long)m_iTriangles;};

	void SafeRead (FILE *f, void *buffer, int count) {fread (buffer, 1, count, f);}

//private:

	make_index_list *m_index_list;
	make_frame_list *m_frame_list;
	long m_iFrames, m_iVertices, m_iTriangles;
};


#endif // !defined(AFX_MD2_H__0799D8C3_A435_11D1_8F4C_207373C1B105__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -