IGame.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  *<
00003     FILE: IGame.h
00004 
00005     DESCRIPTION: Scene and Node interfaces for IGame
00006 
00007     CREATED BY: Neil Hazzard, Discreet
00008 
00009     HISTORY: created 02/02/02
00010 
00011     IGame Version: 1.122
00012 
00013  *> Copyright (c) 2002, All Rights Reserved.
00014  **********************************************************************/
00018 #pragma once
00019 
00020 #include "..\maxheap.h"
00021 #include "IGameControl.h"
00022 #include "IGameMaterial.h"
00023 #include "IGameObject.h"
00024 #include "IGameStd.h"
00025 
00026 
00028 
00036 class IGameNode: public MaxHeapOperators
00037 {
00038 public:
00040     virtual ~IGameNode() {;}
00041 
00043 
00046     virtual  IGameControl * GetIGameControl()  =0;
00047     
00049 
00053     virtual IGameObject * GetIGameObject()=0;
00054 
00056 
00061     virtual void ReleaseIGameObject()=0;
00062     
00064 
00067     virtual  MCHAR * GetName()  = 0;
00068     
00070 
00073     virtual int GetNodeID() =0;
00074 
00076 
00079     virtual INode * GetMaxNode()=0;
00080     
00082 
00086     virtual GMatrix GetWorldTM(TimeValue t=TIME_NegInfinity)=0;
00087 
00089 
00093     virtual GMatrix GetLocalTM(TimeValue t=TIME_NegInfinity)=0;
00094 
00096 
00100     virtual GMatrix GetObjectTM(TimeValue t=TIME_NegInfinity)=0;
00101 
00103 
00106     virtual IGameNode * GetNodeParent()  =0;
00107 
00109 
00112     virtual int GetChildCount()=0;
00113 
00115 
00119     virtual  IGameNode * GetNodeChild(int index) =0;
00120 
00122 
00125     virtual int GetMaterialIndex()  =0;
00126     
00128 
00131     virtual  IGameMaterial * GetNodeMaterial()  =0;
00132     
00134 
00137     virtual IPoint3 & GetWireframeColor() = 0;
00138     
00140 
00144     virtual bool IsTarget()=0;
00145 
00147 
00151     virtual bool IsGroupOwner()=0;
00152 
00154 
00158     virtual bool IsNodeHidden()=0;
00159 
00160 
00161 };
00162 
00163 
00164 
00166 
00171 class IGameScene: public MaxHeapOperators
00172 {
00173     public:
00175         virtual ~IGameScene() {;}
00176 
00178 
00183         virtual void SetPropertyFile(const MCHAR * fileName) = 0;
00184 
00186 
00191         virtual bool InitialiseIGame(bool selected = false)=0;
00192 
00194 
00200         virtual bool InitialiseIGame(INode * root, bool Hierarchy = true)=0;
00201 
00203 
00210         virtual bool InitialiseIGame(Tab<INode *> nodes, bool Hierarchy = true) = 0;
00211 
00213 
00216         virtual  MCHAR * GetSceneFileName()  =0;
00217 
00219 
00222         virtual void SetStaticFrame(int frameNum)=0;
00223 
00225 
00228         virtual TimeValue GetSceneStartTime() =0;
00229 
00231 
00234         virtual TimeValue GetSceneEndTime() =0;
00235 
00237 
00240         virtual int GetSceneTicks()=0;
00241 
00242         // Get the number of Top level Parent Node
00247         virtual int GetTopLevelNodeCount()=0;
00248 
00250 
00253         virtual int GetTotalNodeCount()=0;
00254 
00256 
00262         virtual IGameNode * GetTopLevelNode(int index)  =0;
00263 
00265 
00268         virtual int GetRootMaterialCount() = 0;
00269 
00271 
00277         virtual  IGameMaterial * GetRootMaterial(int index)  =0;
00278 
00280 
00285         virtual IGameNode * GetIGameNode(INode * node) =0;
00286 
00288 
00292         virtual IGameNode * GetIGameNode(ULONG NodeID)  =0;
00293 
00295 
00299         virtual Tab<IGameNode*> GetIGameNodeByType(IGameObject::ObjectTypes Type) = 0;
00300 
00302 
00307         virtual IGameMaterial * GetIGameMaterial(Mtl * mat) = 0;
00308         
00310 
00315         virtual IGameTextureMap * GetIGameTextureMap (Texmap * texMap) = 0;
00316 
00318 
00321         virtual void ReleaseIGame()=0;
00322                         
00323 };
00324 
00329 IGAMEEXPORT IGameScene *GetIGameInterface();
00330 
00335 IGAMEEXPORT float GetIGameVersion();
00336 
00342 IGAMEEXPORT float GetSupported3DSVersion();
00343 
00344 
00345 
00346