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

📄 3dmodel.h

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

#if !defined(AFX_3DMODEL_H__INCLUDED_)
#define AFX_3DMODEL_H__INCLUDED_

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

#include <vector>
using namespace std;

#include "VECTOR.h"
#include "MATRIX.h"
#include "3dCamera.h"
#include "3dsFileLoader.h"

class C3DObject;

class C3DModel : public C3dsFileLoader
{
public:
	enum	{NoObjects = -1};
	C3DModel() : C3dsFileLoader(), mObjectsCount(NoObjects), mStillOpen(false) {}
	bool	NewObject();
	bool	EndObject();
	bool	IsObjectWriting() const {return mStillOpen;}
	bool	AddVertex(float x, float y, float z);
	bool	AddFace(int A, int B, int C);
	bool	AddTexturePoint(float u, float v);
	bool	AddCamera(C3DCamera Camera);
	bool	SetMatrix(MATRIX Mtx);
	bool	SetTranslation(float x, float y, float z);
	int		GetObjNumber() const {return (mObjectsCount + 1);}
	C3DObject *GetObject(int ObjectNumber) const {return mObjects[ObjectNumber];}
private:
	int		mObjectsCount;	// Objects counter
	bool	mStillOpen;		// If true an object creating session was opened but still not closed
	vector	<C3DObject*> mObjects;
	vector	<C3DCamera> mCameras;
protected:
	void		User3dVert(float x, float y, float z);
	void		User3dFace(unsigned short A, unsigned short B, unsigned short C, unsigned short Flags);
	void		UserCamera(float px, float py, float pz,
								   float tx, float ty, float tz,
								   float Bank, float Lens);
	void		UserMapVertex(float U, float V);
	void		UserTransformMatrix(const Transform3dsMatrix &Transform, const Translate3dsMatrix &Translate);
	void		UserChunkObj();
	void		UserEndOfFile();
};

#endif // !defined(AFX_3DMODEL_H__INCLUDED_)

⌨️ 快捷键说明

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