s3oparser.h

来自「这是整套横扫千军3D版游戏的源码」· C头文件 代码 · 共 56 行

H
56
字号
#ifndef S3OPARSER_H
#define S3OPARSER_H
// s3oParser.h: interface for the Cs3oParser class.
//
//////////////////////////////////////////////////////////////////////

#include "3DModelParser.h"
#include <map>

struct SS3O;

struct SS3OVertex {
	float3 pos;
	float3 normal;
	float textureX;
	float textureY;
};

struct SS3O {
	std::string name;
	std::vector<SS3O*> childs;
	std::vector<SS3OVertex> vertices;
	std::vector<unsigned int> vertexDrawOrder;
	float3 offset;
	int primitiveType;
	unsigned int displist;
	bool isEmpty;
	float maxx,maxy,maxz;
	float minx,miny,minz;

	void DrawStatic();
	~SS3O();
};

class CS3OParser
{
public:
	CS3OParser();
	virtual ~CS3OParser();

	S3DOModel* LoadS3O(string name,float scale=1,int side=1);
	LocalS3DOModel *CreateLocalModel(S3DOModel *model, vector<struct PieceInfo> *pieces);

private:
	SS3O* LoadPiece(unsigned char* buf, int offset,S3DOModel* model);
	void DeleteSS3O(SS3O* o);
	void FindMinMax(SS3O *object);
	void DrawSub(SS3O* o);
	void CreateLists(SS3O *o);
	void CreateLocalModel(SS3O *model, LocalS3DOModel *lmodel, vector<struct PieceInfo> *pieces, int *piecenum);

	map<string,S3DOModel*> units;
};

#endif /* S3OPARSER_H */

⌨️ 快捷键说明

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