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

📄 3dsfileloader.h

📁 本文件中收录了多种3D文件格式
💻 H
字号:
// 3dsFileLoader.h: interface for the C3dsFileLoader class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_3DSFILELOADER_H__INCLUDED_)
#define AFX_3DSFILELOADER_H__INCLUDED_

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

#include <fstream>
using namespace std;

#include "3dsFileFormat.h"

class C3dsFileLoader : public C3dsFileFormat
{
public:
// Constructor
	C3dsFileLoader() : C3dsFileFormat(), PC(0), mFileSize(0) {}
// Methods
	void		ProcessFile(string FileName);
private:
	void		movePC(long forward);
	bool		ParseChunks();
	bool		ReadBlock(char *dest, long size);
	float		ReadRealNumber();
	bool		SkipChunk(chunk3ds &chunk);
	void		FileSize();
	bool		isOk();
	void		ReadASCIIZ(char *dest);
	void		ReadRGBF();
	void		ReadRGBB();
	void		ReadObjBlock();
	void		ReadVertList();
	void		ReadFaceList();
	void		ReadFaceMat();
	void		ReadMapList();
	void		ReadSmoothList();
	void		ReadTrMatrix();
	void		ReadLight();
	void		ReadSpotLight();
	void		ReadCamera();
	void		ReadMatName();
	void		ReadMapFile();
	void		ReadFrames();
	void		ReadTrackObjName();
	void		ReadTrackPos();
	void		ReadTrackRot();
	void		ReadTrackScale();
	void		ReadObjNumber();
	void		ReadObjChunk();
	void		ReadOneUnit();
	void		ReadViewPortData();
	void		ReadViewUser();
	void		ReadViewTop();
	void		ReadViewBottom();
	void		ReadViewLeft();
	void		ReadViewRight();
	void		ReadViewFront();
	void		ReadViewBack();
	void		ReadViewCamera();
	void		ReadViewPortLayout();
	void		ReadViewPortSize();
	void		EndReading();
	
	ifstream	mInputFile;
protected:
	long		PC;		// File Pointer
	long		mFileSize;
// Inheritable functions for polymorphism
	virtual void		User3dVert(float x, float y, float z);
	virtual void		User3dFace(unsigned short A, unsigned short B, unsigned short C, unsigned short Flags);
	virtual void		UserCamera(float px, float py, float pz,
								   float tx, float ty, float tz,
								   float Bank, float Lens);
	virtual void		UserFaceMaterial(string Name, int Number);
	virtual	void		UserMapVertex(float U, float V);
	virtual void		UserTransformMatrix(const Transform3dsMatrix &Transform, const Translate3dsMatrix &Translate);
	virtual void		UserLight(float x, float y, float z);
	virtual void		UserSpotLight(float x, float y, float z, float HotSpot, float FallOff);
	virtual void		UserMatName(const string Name);
	virtual void		UserMapFile(const string FileName);
	virtual void		UserFrames(long Start, long End);
	virtual void		UserTrackObjectName(const string Name, int Key1, int Key2, int Key3);
	virtual void		UserTrackPos(int Frame, long Flags, float x, float y, float z);
	virtual void		UserTrackRot(int Frame, long Flags, float DegX, float DegY, float DegZ);
	virtual void		UserTrackScale(int Frame, long Flags, float ScaleX, float ScaleY, float ScaleZ);
	virtual void		UserObjNumber(int ObjNumber);
	virtual void		UserObjName(string Name);
	virtual void		UserChunkObj();
	virtual void		UserOneUnit(float Unit);
	virtual void		UserViewPortLayout(ViewPortLayout &Layout);
	virtual void		UserViewPortSize(int PosX, int PosY, int Width, int Height);
	virtual void		UserViewPortData(ViewPortData &Data);
	virtual	void		UserViewUser(float x, float y, float z, float Width, float XYangle, float YZangle, float BackAngle);
	virtual void		UserViewCamera(string CameraName);
	virtual void		UserEndOfFile();
};

#endif // !defined(AFX_3DSFILELOADER_H__INCLUDED_)

⌨️ 快捷键说明

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