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

📄 igeometry.h

📁 墨香最新私服
💻 H
📖 第 1 页 / 共 2 页
字号:
#pragma once

#include "stdafx.h"
#include "IGeometry_GUID.h"
#include "IRenderer.h"
#include "IFileStorage.h"
#include "typedef.h"

interface I3DModel;


interface I3DStaticModel : public IUnknown
{	
	virtual BOOL			__stdcall	BeginCreateMesh(DWORD dwFlag) = 0;
	virtual BOOL			__stdcall	AddModel(I3DModel* pModel,DWORD dwRefIndex,MATRIX4* pTransformMatrix,DWORD dwFlag) = 0;
	virtual BOOL			__stdcall	EndCreateMesh() = 0;

	virtual BOOL			__stdcall	DeleteObject(DWORD dwIndex) = 0;

	virtual COLLISION_MESH_OBJECT_DESC*	__stdcall	GetCollisionMeshObjectDesc(DWORD dwObjIndex) = 0;
	
	virtual	void			__stdcall	GetWorldBoundingMesh(COLLISION_MESH_OBJECT_DESC* pColDesc) = 0;
	virtual DWORD			__stdcall	CreateIVertexList(IVERTEX** ppVertex) = 0;
	virtual DWORD			__stdcall	CreateIVertexListWithIndex(IVERTEX** ppVertex,DWORD dwObjIndex) = 0;
	virtual void			__stdcall	ReleaseIVertexList(IVERTEX*	pVertex) = 0;
	virtual DWORD			__stdcall	GetObjectIndex(char* szObjName) = 0;
	virtual void			__stdcall	Optimize() = 0;	
	virtual DWORD			__stdcall	GetObjectNum() = 0;
	virtual	DWORD			__stdcall	GetObjectIndex(DWORD dwSeqIndex) = 0;

	virtual BOOL			__stdcall	BeignShadeLightMapObject(DWORD dwColor) = 0;
	virtual BOOL			__stdcall	ShadeLightMapObject(DWORD dwObjIndex,VECTOR3* pv3,DWORD dwFacesNum,LIGHT_DESC* pDesc,SHADE_FUNC pFunc) = 0;
	virtual void			__stdcall	EndShadeLightMapObject() = 0;

	virtual BOOL			__stdcall	ReadFile(char* szFileName,LOAD_CALLBACK_DESC* pCallbackDesc,DWORD dwFlag) = 0;
	virtual	BOOL			__stdcall	WriteFile(char* szFileName) = 0;
	virtual	DWORD			__stdcall	GetMeshObjectWithScreenCoord(VECTOR3* pv3IntersectPoint,float* pfDist,DWORD* pdwFaceGroupIndex,POINT* ptCursor,DWORD dwViewportIndex,DWORD dwFlag) = 0;
	virtual	BOOL			__stdcall	IsCollisionMeshObject(VECTOR3* pv3IntersectPoint,float* pfDist,DWORD* pdwFaceGroupIndex,DWORD dwObjIndex,POINT* ptCursor,DWORD dwViewportIndex,DWORD dwFlag) = 0;
	virtual BOOL			__stdcall	SetLightTexel(POINT* ptCursor,DWORD dwObjIndex,VECTOR3* pv3IntersectPoint,DWORD dwColor,DWORD dwViewportIndex) = 0;
	virtual BOOL			__stdcall	GetLightTexel(DWORD* pdwColor,POINT* ptCursor,DWORD dwObjIndex,VECTOR3* pv3IntersectPoint,DWORD dwViewportIndex) = 0;
	virtual BOOL			__stdcall	RenderCollisionStaticModel(DWORD dwFlag) = 0;
	virtual BOOL			__stdcall	RunManageResource(DWORD dwViewportIndex) = 0;

	
	virtual	BOOL			__stdcall	CollisionTestAAELLIPSOID( VECTOR3* pOut, VECTOR3* pOutLastVelocity, BOOL* pbOutLanding, CollisionTestCallBackProcedure CallBack, AAELLIPSOID* pEllipsoid, VECTOR3* pTo, DWORD dwOutputIndex)=0;
	virtual	BOOL			__stdcall	CollisionTestLine( float* pOutT, VECTOR3* pFrom, VECTOR3* pTo, DWORD dwOutputIndex)=0;

	virtual void			__stdcall	EnableRecvShadow(BOOL bEnable) = 0;

//	virtual	void			__stdcall	SetSimultaneousAccessCount( DWORD dwCount)=0;		// 悼矫俊 龋免且 肮荐. 酒付 静饭靛父怒.?
};

interface I3DModel : public IUnknown
{
	virtual BOOL			__stdcall	GetCollisionMeshObjectDesc(COLLISION_MESH_OBJECT_DESC* pColMeshObjDesc,DWORD dwModelRefIndex,DWORD dwObjIndex) = 0;
	virtual BOOL			__stdcall	GetCollisionModelDesc(COLLISION_MODEL_DESC* pColMeshModelDesc,DWORD dwModelRefIndex) = 0;
	virtual void			__stdcall	UpdateColMeshDesc(DWORD dwRefIndex,MATRIX4* pParentMat,MATRIX4* pTransformMat,DWORD dwFrame,DWORD dwMotionIndex,DWORD dwFlag) = 0;

	virtual DWORD			__stdcall	Reference() = 0;
	virtual void			__stdcall	UnReference(DWORD dwRefIndex) = 0;
	virtual BOOL			__stdcall	Render(DWORD dwRefIndex,MATRIX4* pParentMat,MATRIX4* pTransformMat,DWORD dwFrame,DWORD dwMotionIndex,DWORD dwAlpha,DWORD dwMtlSetIndex,DWORD dwEffectIndex,DWORD dwFlag) = 0;
	virtual BOOL			__stdcall	RenderObject(DWORD dwObjIndex,DWORD dwAlpha,DWORD dwFlag) = 0;

	virtual BOOL			__stdcall 	CreateMotionList(DWORD dwNum,DWORD dwRefIndex) = 0;
	virtual BOOL			__stdcall	CreateMaterialList(DWORD dwNum,DWORD dwRefIndex) = 0;

	virtual BOOL			__stdcall	Initialize(I4DyuchiGXRenderer* pDev,DWORD dwFlag) = 0;
	virtual DWORD			__stdcall	AddMotion(char* szFileName,DWORD dwRefIndex,DWORD dwMotionIndex) = 0;
	virtual DWORD			__stdcall	AddMaterial(char* szFileName,DWORD dwRefIndex,DWORD dwMtlIndex) = 0;

	
	virtual void			__stdcall	DeleteMotion(DWORD dwRefIndex,DWORD dwMotionIndex) = 0;
	virtual void			__stdcall	DeleteAllMotionPerReference(DWORD dwRefIndex) = 0;
	virtual void			__stdcall 	DeleteAllMotion() = 0;		
	
	virtual void			__stdcall	DeleteMaterial(DWORD dwRefIndex,DWORD dwMtlIndex) = 0;
	virtual void			__stdcall	DeleteAllMaterialPerReference(DWORD dwRefIndex) = 0;
	virtual void			__stdcall	DeleteAllMaterial() = 0;

	virtual BOOL			__stdcall	UnloadMotionPerReference(DWORD dwRefIndex) = 0;
	virtual BOOL			__stdcall	UnloadMaterialPerReference(DWORD dwRefIndex) = 0;
	virtual void			__stdcall	DisableUnloadPreLoadedResource(DWORD dwRefIndex) = 0;
	virtual void			__stdcall	EnableUnloadPreLoadedResource(DWORD dwRefIndex) = 0;
 		
	virtual DWORD			__stdcall	CreateIVertexList(IVERTEX** ppVertex,DWORD dwRefIndex,MATRIX4* pParent,MATRIX4* pTransform,DWORD dwFrame,DWORD dwMotionIndex) = 0;
	virtual void			__stdcall	ReleaseIVertexList(IVERTEX*	pVertex) = 0;

	virtual DWORD			__stdcall	GetMotionNum(DWORD dwRefIndex) = 0;
	virtual BOOL			__stdcall	GetMotionDesc(MOTION_DESC* pMotionDesc,DWORD dwMotionIndex,DWORD dwRefIndex) = 0;
	virtual DWORD			__stdcall	GetMaterialNum(DWORD dwRefIndex) = 0;
	virtual DWORD			__stdcall	GetObjectIndex(char* szObjName) = 0;
	virtual	MATRIX4*		__stdcall	GetObjectResultMatrix(DWORD dwRefIndex,DWORD dwObjIndex) = 0;
	
	virtual void			__stdcall	Optimize() = 0;	
	virtual DWORD			__stdcall	GetCameraList(CAMERA_DESC* pDesc,DWORD dwNum) = 0;
	virtual DWORD			__stdcall	GetLightList(LIGHT_DESC* pDesc,DWORD dwNum) = 0;
	virtual DWORD			__stdcall	GetMeshObjectIndex(DWORD dwSeqIndex) = 0;
	virtual DWORD			__stdcall	GetMeshObjectNum() = 0;
	virtual DWORD			__stdcall	GetObjectNum() = 0;
		

	virtual DWORD			__stdcall	GetMeshObjectWithScreenCoord(VECTOR3* pv3IntersectPoint,float* pfDist,DWORD* pdwFaceGroupIndex,DWORD dwRefIndex,MATRIX4* pParent,MATRIX4* pTransform,DWORD dwFrame,DWORD dwMotionIndex,POINT* ptCursor,DWORD dwViewportIndex,DWORD dwFlag) = 0;
	virtual char*			__stdcall	GetObjectName(DWORD dwObjIndex) = 0;
	virtual BOOL			__stdcall	SetZOrder(int iOrder,DWORD dwRefIndex) =0;

	virtual BOOL			__stdcall	DuplicateAnimation(DWORD dwDestRefIndex,I3DModel* pDestModel,DWORD dwSrcRefIndex) = 0;
	virtual BOOL			__stdcall	DuplicateMaterial(DWORD dwDestRefIndex,I3DModel* pDestModel,DWORD dwSrcRefIndex) = 0;

	virtual DWORD			__stdcall	GetMaterialIndex(char* szMtlName) = 0;
	virtual char*			__stdcall	GetModelFileName() = 0;
	virtual	BOOL			__stdcall	Unload() = 0;

	virtual BOOL			__stdcall	InitializeIllusionEffect(DWORD dwRefIndex,DWORD dwMaxIllusionFrameNum,DWORD dwObjIndex,void* pMtlHandle,DWORD dwFlag) = 0;
	virtual BOOL			__stdcall	SetIllusionEffectMaterial(DWORD dwRefIndex,void* pMtlHandle) = 0;
	virtual void			__stdcall	SetBeginIllusionEffect(DWORD dwRefIndex,DWORD dwObjIndex) = 0;
	virtual void			__stdcall	SetEndIllusionEffect(DWORD dwRefIndex,DWORD dwObjIndex) = 0;
	virtual BOOL			__stdcall	GetWorldMatrix(MATRIX4* pMatWorld,DWORD dwRefIndex,DWORD dwObjIndex) = 0;
	virtual BOOL			__stdcall	SetAxisAlignOK(BOOL bSwitch,DWORD dwRefIndex) = 0;


};
interface IGeometryController
{
	virtual BOOL			__stdcall	ApplyResultMatrix(MATRIX4** ppResult,DWORD dwRefIndex,DWORD dwFlag)= 0;
	virtual BOOL			__stdcall	ApplyPhysique(BYTE* pVertex,DWORD dwVertexSize,DWORD dwRefIndex,DWORD dwFlag) = 0;
	virtual	BOOL			__stdcall	ApplyMorph(VECTOR3** ppv3Local,TVERTEX** pptv,DWORD dwRefIndex,DWORD dwFlag) = 0;
	virtual BOOL			__stdcall	ApplyView(MATRIX4* pView,DWORD dwRefIndex,DWORD dwFlag) = 0;
	virtual BOOL			__stdcall	ApplyMotionStatus(MOTION_STATUS* pMotionStatus,DWORD dwRefIndex,DWORD dwFlag) = 0;
	virtual BOOL			__stdcall	ApplyWorldMatrixForPhysique(MATRIX4* pResultWorldMatrix,DWORD dwRefIndex,DWORD dwFlag) = 0;
//	virtual BOOL			__stdcall	ApplyVertexNormal(BYTE* pVertex,DWORD dwVertexStartOffset,DWORD dwVertexSize,DWORD dwRefIndex,DWORD dwFlag) = 0;

};

interface IGeometryControllerStatic
{
	virtual BOOL				__stdcall	IsIncludeViewVolume() = 0;
	virtual BOOL				__stdcall	OnFault() = 0;
	virtual BOOL				__stdcall	OnOut() = 0;

	virtual void				__stdcall	GetTileBuffer(TILE_BUFFER_DESC** ppTileBufferDesc,DWORD* pdwTileBufferDescNum) = 0;
	virtual DWORD				__stdcall	GetTileBufferDescNum() = 0;
	virtual TILE_BUFFER_DESC*	__stdcall	GetTileBufferDesc(DWORD dwIndex) = 0;


};

interface IHeightField : public IUnknown
{
	virtual	COLLISION_MESH_OBJECT_DESC*		__stdcall		GetCollisionMeshObjectDesc(DWORD dwObjIndex) = 0;
	virtual void							__stdcall		GetWorldBoundingMesh(COLLISION_MESH_OBJECT_DESC* pColDesc) = 0;
	
	virtual BOOL		__stdcall	Create(HFIELD_CREATE_DESC* pDesc,DWORD dwFlag) = 0;
	virtual BOOL		__stdcall	LoadTilePalette(TEXTURE_TABLE* pTexTable,DWORD dwTileTextureNum) = 0;
	virtual	BOOL		__stdcall	ReplaceTile(char* szFileName,DWORD dwTexIndex) = 0;
//	virtual BOOL		__stdcall	RenderObject(DWORD dwObjIndex,DWORD dwAlpha,DWORD dwFlag) = 0;

	virtual BOOL		__stdcall	GetHFieldDesc(HFIELD_DESC* pDesc) = 0;
	virtual BOOL		__stdcall	SetYFacorPosList(float* pyfList,DWORD dwYFNumX,DWORD dwYFNumZ) = 0;
	virtual BOOL		__stdcall	SetYFactorFromModel(I3DModel* pModel,DWORD dwRefIndex,float fGridLength,float fMinY,float fMaxY) = 0;
		
	virtual DWORD		__stdcall	GetObjectNum() = 0;
	virtual DWORD		__stdcall	GetObjectIndex(DWORD dwSeqIndex) = 0;
	virtual BOOL		__stdcall	ReadFile(char* szFileName,DWORD dwIndexBufferNumLV0,LOAD_CALLBACK_DESC* pCallbackDesc,DWORD dwFlag) = 0;
	virtual BOOL		__stdcall	WriteFile(char* szFileName,DWORD dwFlag) = 0;
		
	virtual BOOL		__stdcall	BeignShadeLightMapObject(DWORD dwColor) = 0;
	virtual BOOL		__stdcall	ShadeLightMapObject(DWORD dwObjIndex,VECTOR3* pv3,DWORD dwFacesNum,LIGHT_DESC* pDesc,SHADE_FUNC pFunc) = 0;
	virtual void		__stdcall	EndShadeLightMapObject() = 0;
	
	virtual		DWORD		__stdcall	GetTileListWithScreenCoord(HFIELD_POS* pTileList,DWORD dwMaxTileNum,RECT* pRect,DWORD dwViewportIndex) = 0;

⌨️ 快捷键说明

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