• <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++

            原來(lái)的我還是很認(rèn)真的啊。。。

                開(kāi)始分析M2文件,發(fā)現(xiàn)和BC前的版本差異不多,雖然現(xiàn)在已是WLK了。想著以前寫過(guò)一些,于是打開(kāi)看看是否有啥好用的,么想,打開(kāi)嚇一跳,原來(lái)的我還是很認(rèn)真的啊,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 

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

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

            公告

            Using C++

            導(dǎo)航

            統(tǒng)計(jì)

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久se精品一区二区影院 | 久久午夜无码鲁丝片| 国产精品欧美久久久久无广告| 99久久婷婷国产一区二区 | 色8久久人人97超碰香蕉987| 午夜精品久久久久久| 亚洲欧美另类日本久久国产真实乱对白 | 久久精品国产精品亚洲精品| 99久久精品无码一区二区毛片| 2021久久国自产拍精品| 久久996热精品xxxx| 久久国产免费| 色8久久人人97超碰香蕉987| 无码专区久久综合久中文字幕| 久久精品成人国产午夜| 久久综合给久久狠狠97色| 人妻精品久久无码专区精东影业| 中文字幕日本人妻久久久免费| 久久精品中文闷骚内射| 亚洲国产精品综合久久一线| 亚洲七七久久精品中文国产 | 亚洲国产精品久久久久婷婷软件| 国产高潮国产高潮久久久91| 久久婷婷色综合一区二区| 99久久精品国内| 久久激情亚洲精品无码?V| 亚洲国产成人久久精品99| 午夜天堂av天堂久久久| 国产亚洲欧美成人久久片| 久久e热在这里只有国产中文精品99| 伊人久久亚洲综合影院| 色综合久久中文字幕无码| 91久久精品国产免费直播| 武侠古典久久婷婷狼人伊人| 精品久久久中文字幕人妻| 久久天天日天天操综合伊人av| 久久精品日日躁夜夜躁欧美| 久久亚洲精品视频| 久久精品国产99久久久| 久久久WWW成人| 久久99国产乱子伦精品免费|