• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Codejie's C++ Space

            Using C++

            原來的我還是很認真的啊。。。

                開始分析M2文件,發現和BC前的版本差異不多,雖然現在已是WLK了。想著以前寫過一些,于是打開看看是否有啥好用的,么想,打開嚇一跳,原來的我還是很認真的啊,M2Object,M2FileObject,XFileObject,甚至還封裝了FileBuffer,Toolkit....源碼這里

              1 #ifndef __M2OBJECT_H__
              2 #define __M2OBJECT_H__
              3 
              4 //base on http://wowdev.org/wiki/index.php/M2 and http://squishythoughts.com/archives/category/projects/3d/
              5 
              6 #include <fstream>
              7 #include <iostream>
              8 #include <string>
              9 #include <vector>
             10 
             11 #include "FileBuffer.h"
             12 
             13 namespace M2
             14 {
             15 
             16 enum StructType {ST_BASE = 0, ST_HEADER, ST_NAME, ST_VERTEX, ST_VIEW, ST_BONE, ST_TEXTUREUNIT, ST_TEXTURE, ST_TEXTURENAME };
             17 
             18 class CBase
             19 {
             20 public:
             21     CBase(StructType type = ST_BASE)
             22         : m_eType(type)
             23     {
             24     }
             25     virtual ~CBase() {}
             26 
             27     virtual int Read(CFileBuffer& fb) = 0;
             28     virtual size_t BlockSize() const { return 0; }
             29     virtual void Show(std::ostream& os) const;
             30 public:
             31     StructType m_eType;
             32 };
             33 
             34 extern int operator >> (CFileBuffer& fb, CBase& base);
             35 extern std::ostream& operator << (std::ostream& os, const CBase& base);
             36 
             37 class CHeader : public CBase
             38 {
             39 public:
             40     struct DataBlock_t
             41     {
             42         unsigned int m_uiCount;
             43         unsigned int m_uiOffset;
             44 
             45         int Read(CFileBuffer& fb);
             46         virtual size_t BlockSize() const { return 324; }
             47         void Show(std::ostream& os) const;
             48     };
             49 public:
             50     CHeader()
             51         : CBase(ST_HEADER)
             52     {
             53     }
             54 
             55     virtual int Read(CFileBuffer& fb);
             56     virtual void Show(std::ostream& os) const;
             57 public:
             58     .
             59 };
             60 
             61 class CName : public CBase
             62 {
             63 public:
             64     CName()
             65         : CBase(ST_NAME)
             66     {
             67     }
             68     virtual int Read(CFileBuffer& fb);
             69     virtual void Show(std::ostream& os) const;
             70 public:
             71     std::string m_strName;
             72 };
             73 
             74 class CVertex : public CBase
             75 {
             76 public:
             77     struct Vector3Data_t
             78     {
             79         float m_fX;
             80         float m_fY;
             81         float m_fZ;
             82 
             83         int Read(CFileBuffer& fb);
             84         void Show(std::ostream& os) const;
             85     };
             86     struct Vector2Data_t
             87     {
             88         float m_fX;
             89         float m_fY;
             90 
             91         int Read(CFileBuffer& fb);
             92         void Show(std::ostream& os) const;
             93     };
             94 public:
             95     CVertex()
             96         : CBase(ST_VERTEX)
             97     {
             98     }
             99 
            100     virtual int Read(CFileBuffer& fb);
            101     virtual size_t BlockSize() const { return 48; }
            102     virtual void Show(std::ostream& os) const;
            103 public:
            104     
            105 };
            106 typedef std::vector<CVertex> TVertexVector;
            107 
            108 class CView : public CBase
            109 {
            110   
            111 };
            112 typedef std::vector<CView> TViewVector;
            113 
            114 class CBone : public CBase
            115 {
            116    
            117 };
            118 typedef std::vector<CBone> TBoneVector;
            119 
            120 class CTextureUnit : public CBase
            121 {
            122   
            123 };
            124 typedef std::vector<CTextureUnit> TTextureUnitVector;
            125 
            126 typedef CTextureUnit TTextureTableItem;
            127 typedef std::vector<TTextureTableItem> TTextureTableItemVector;
            128 
            129 class CTexture : public CBase
            130 {
            131   
            132 };
            133 typedef std::vector<CTexture> TTextureVector;
            134 
            135 
            136 }
            137 
            138 
            139 #endif
            140 

                上次在展現模型的地方被卡住了,不知道這次會如何。。。畢竟DirectX還么真正寫過什么程序呢。

            posted on 2009-03-30 16:15 codejie 閱讀(172) 評論(0)  編輯 收藏 引用 所屬分類: 隨筆而已

            公告

            Using C++

            導航

            統計

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            国内精品久久久久久久影视麻豆| 狠狠精品干练久久久无码中文字幕 | 久久精品视频免费| 狠狠色婷婷久久一区二区三区 | 午夜精品久久久久9999高清| 久久免费香蕉视频| 无码国内精品久久人妻| 天天久久狠狠色综合| 亚洲欧美国产精品专区久久| 色妞色综合久久夜夜| 久久激情五月丁香伊人| 久久精品国产日本波多野结衣| 久久精品国产久精国产思思| 精品熟女少妇aⅴ免费久久| 国产A级毛片久久久精品毛片| 中文字幕久久欲求不满| 久久无码高潮喷水| 久久精品无码av| 99久久人妻无码精品系列蜜桃| 久久久久亚洲精品无码网址 | 久久人人爽人人爽人人AV东京热| 国产2021久久精品| 看久久久久久a级毛片| 亚洲精品美女久久久久99小说| 亚洲伊人久久大香线蕉苏妲己| 中文字幕乱码久久午夜| 欧洲性大片xxxxx久久久| 夜夜亚洲天天久久| 91精品国产乱码久久久久久 | 精品国产乱码久久久久久1区2区| 一本久久综合亚洲鲁鲁五月天| 久久香蕉综合色一综合色88| 久久精品国产亚洲精品2020| 97久久婷婷五月综合色d啪蜜芽| 狠狠人妻久久久久久综合蜜桃| 久久精品www| 欧美一区二区精品久久| 99久久99久久| 久久综合狠狠综合久久激情 | 香蕉久久一区二区不卡无毒影院| 9久久9久久精品|