📄 igeometry.h
字号:
#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 + -