メインページ | ネームスペース一覧 | クラス階層 | 構成 | Directories | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ | 関連ページ

D3DocNode.h

00001 #ifndef D3DOCNODE_H
00002 #define D3DOCNODE_H
00003 
00004 #include <FileIO/FIDocScene.h>
00005 #include <WinBasis/WBUtility.h>
00006 #include <WinDx/D3D/WXD3D.h>
00007 #include <dxfile.h>
00008 
00009 namespace Spr {;
00010 /** DirectXファイルの Document Object.*/
00011 class SPR_DLL D3DocNode:public FIDocNodeBase, public UTTreeNode<D3DocNode>{
00012 protected:
00013     UTString typeName;
00014     mutable UTString name;
00015 public:
00016     typedef UTTreeNode<D3DocNode> Tree;
00017 
00018     std::vector<char> data;
00019     
00020     /// DirectXFileData
00021     WXINTF(DirectXFileData) xfileLoad;
00022     WXINTF(DirectXFileData) xfileSave;
00023     WXINTF(DirectXFileDataReference) xfileRef;
00024     WXINTF(DirectXFileBinary) xfileBin;
00025 
00026     //  ツリーの操作
00027     virtual FIDocNodeBase* GetParent();
00028     virtual int NChildren() const;
00029     virtual FIDocNodeBase* Child(int i);
00030     virtual void AddChild(FIDocNodeBase*);
00031     virtual void SetParent(FIDocNodeBase*);
00032     virtual void ClearChildren();
00033     virtual FIDocNodeBase* FindChild(UTString type);
00034     
00035     virtual void SetType(UTString t);
00036     //@name 属性の操作
00037     //@{    
00038     virtual void AddDataImp(const void* data, size_t sz, FIString key, FIString type);
00039     virtual void AddNode(FIDocNodeBase* node, FIString key);
00040     virtual FIDocNodeBase* SetNewNode(FIString id, FIString type);
00041     virtual FIIterator FirstAttr() const ;
00042     virtual FIIterator LastAttr() const ;
00043     virtual FIIterator FindAttr(FIString key, size_t pos=0) const;
00044     virtual bool IsLast(const FIIterator& it) const ;
00045     //@}
00046     
00047     
00048     /// ロード用のコンストラクタ
00049     D3DocNode(IDirectXFileData* x, IDirectXFileDataReference* xRef):xfileLoad(x), xfileRef(xRef){
00050         if (xfileRef) typeName = "REF";
00051     }
00052     D3DocNode(IDirectXFileBinary* x):xfileBin(x), typeName("Binary"){}
00053     /// セーブ用のコンストラクタ
00054     D3DocNode(FIString t):typeName(t){}
00055     /// 
00056     /// このノードのIDの取得
00057     virtual const GUID* GetId();
00058     /// このノードの名前の取得
00059     virtual UTString GetName() const;
00060 
00061     /// このノードの型のIDの取得
00062     virtual const GUID* GetTypeId();
00063     /// このノードの型名の取得
00064     UTString GetType() const{ return typeName; }
00065     /// 型の情報の取得
00066     virtual FITypeDesc* GetTypeDesc();
00067     /// このノードの名前の設定
00068     void SetName(UTString n);
00069 };
00070 
00071 /// D3D用のセーバー
00072 class SPR_DLL D3SaveScene:public FISaveScene{
00073 public:
00074     virtual UTRef<FIDocNodeBase> CreateDocNodeImp(UTString type){
00075         return new D3DocNode(type);
00076     }
00077 };
00078 void RegisterD3DLoader(FILoadScene* l);
00079 void RegisterD3DSaver(FISaveScene* l);
00080 
00081 
00082 }
00083 
00084 #endif

Springheadに対してSun Apr 16 01:57:50 2006に生成されました。  doxygen 1.4.1