• <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 閱讀(175) 評論(0)  編輯 收藏 引用 所屬分類: 隨筆而已

            公告

            Using C++

            導航

            統計

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久av免费天堂小草播放| 久久久这里有精品| 久久这里只有精品18| 久久天天躁狠狠躁夜夜不卡| 久久天天躁夜夜躁狠狠| 欧美久久综合性欧美| 中文字幕乱码人妻无码久久| 久久综合给合久久狠狠狠97色| 亚洲国产精品一区二区久久| 久久婷婷五月综合97色直播| 99久久精品免费看国产免费| 欧美大战日韩91综合一区婷婷久久青草 | 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久电影网一区| 国产精品久久久久蜜芽| 国产精品9999久久久久| 久久最新免费视频| 99国产欧美精品久久久蜜芽| 国产免费久久精品99re丫y| 国产999精品久久久久久| 精品久久久久久无码专区| 久久久99精品一区二区| 99久久婷婷免费国产综合精品| 亚洲伊人久久综合中文成人网| 狠狠色丁香婷婷综合久久来| 影音先锋女人AV鲁色资源网久久| 久久久久久极精品久久久| 久久本道伊人久久| 狠狠狠色丁香婷婷综合久久俺| 久久无码人妻一区二区三区| 日韩久久久久久中文人妻| 久久热这里只有精品在线观看| 久久婷婷五月综合成人D啪| 久久精品这里热有精品| 久久久久亚洲av无码专区 | 亚洲色欲久久久综合网东京热| 久久影院午夜理论片无码| 亚洲婷婷国产精品电影人久久| 欧美日韩中文字幕久久久不卡| 久久久艹| 精品久久久一二三区|