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

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久国产精品一区| 精品无码久久久久久久久久| 亚洲精品午夜国产va久久| 久久成人小视频| 中文字幕日本人妻久久久免费 | 久久伊人亚洲AV无码网站| 亚洲天堂久久久| 国产成人精品久久免费动漫| 久久国产香蕉一区精品| 久久久久久久波多野结衣高潮| 国内精品人妻无码久久久影院| 久久av免费天堂小草播放| 久久天天躁狠狠躁夜夜网站 | 亚洲国产精品无码久久九九| 东京热TOKYO综合久久精品| 色99久久久久高潮综合影院| 亚洲国产精品久久久久| 亚洲色欲久久久综合网东京热| 久久久久人妻一区精品| 国产精品99久久精品| 99精品久久久久久久婷婷| 伊人久久无码精品中文字幕| 久久久久国产精品| 久久精品水蜜桃av综合天堂| 久久久久亚洲AV成人网人人网站| 久久国产精品免费一区| 久久婷婷综合中文字幕| 久久狠狠高潮亚洲精品| 色欲综合久久躁天天躁蜜桃| 色婷婷久久综合中文久久一本| 国产香蕉97碰碰久久人人| 久久91精品久久91综合| 精品亚洲综合久久中文字幕| 久久成人国产精品| 日本久久久久亚洲中字幕| 国产aⅴ激情无码久久| 思思久久精品在热线热| 亚洲女久久久噜噜噜熟女| 国内精品久久久久影院薰衣草| 久久狠狠爱亚洲综合影院| 久久综合狠狠综合久久|