Changeset 2781 for GTP/trunk


Ignore:
Timestamp:
06/19/08 22:57:08 (16 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/App/Demos/Vis/CHC_revisited
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/CHC_revisited/BinaryLoader.cpp

    r2776 r2781  
    1515 
    1616 
     17BinaryLoader::~BinaryLoader() 
     18{ 
     19        /** delete all maps. 
     20        */ 
     21        std::map<int, Texture *>::iterator it, it_end = mTextureTable.end(); 
     22 
     23        for (it = mTextureTable.begin(); it != it_end; ++ it) 
     24        { 
     25                Texture *tex = (*it).second; 
     26                delete tex; 
     27        } 
     28 
     29        std::map<int, Material *>::iterator nit, nit_end = mMaterialTable.end(); 
     30 
     31        for (nit = mMaterialTable.begin(); nit != nit_end; ++ nit) 
     32        { 
     33                Material *mat = (*nit).second; 
     34                delete mat; 
     35        } 
     36 
     37         
     38        std::map<int, Geometry *>::iterator git, git_end = mGeometryTable.end(); 
     39 
     40        for (git = mGeometryTable.begin(); git != git_end; ++git) 
     41        { 
     42                Geometry *geom = (*git).second; 
     43                delete geom; 
     44        } 
     45} 
     46 
    1747//SceneEntity *BinaryLoader::LoadSceneEntity(igzstream &str) 
    1848SceneEntity *BinaryLoader::LoadSceneEntity(ifstream &str) 
     
    119149                str.read(reinterpret_cast<char *>(&mat->mDiffuseColor), sizeof(Vector3)); 
    120150                str.read(reinterpret_cast<char *>(&mat->mSpecularColor), sizeof(Vector3)); 
    121                  
    122                 /*RgbColor dum; 
    123                 str.read(reinterpret_cast<char *>(&dum), sizeof(RgbColor)); 
    124                 str.read(reinterpret_cast<char *>(&dum), sizeof(RgbColor)); 
    125                 str.read(reinterpret_cast<char *>(&dum), sizeof(RgbColor)); 
    126                 */ 
    127151        } 
    128152 
     
    169193                texcoords = NULL; 
    170194 
    171         for (int i = 0; i < vertexCount; i += 3) 
    172         { 
    173                 Triangle3 tri(vertices[i], vertices[i + 1], vertices[i + 2]); 
    174                 Vector3 n = tri.GetNormal(); 
    175  
    176                 normals[i + 0] = n; 
    177                 normals[i + 1] = n; 
    178                 normals[i + 2] = n; 
    179         } 
    180  
    181         return new Geometry(vertices, normals, texcoords, vertexCount); 
     195        return new Geometry(vertices, normals, texcoords, vertexCount, false); 
    182196} 
    183197 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/BinaryLoader.h

    r2776 r2781  
    2525public: 
    2626 
     27        ~BinaryLoader(); 
     28 
    2729        bool Load(const std::string &filename, SceneEntityContainer &geometry); 
    2830 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/Camera.cpp

    r2780 r2781  
    3535        mRight = -Normalize(CrossProd(mDirection, mUp)); 
    3636 
    37  
    38         float k = tan(mFovy/2); 
     37        /*float k = tan(mFovy/2); 
    3938        mUp *= k; 
    40         mRight *= k*mWidth/mHeight; 
     39        mRight *= k*mWidth/mHeight;*/ 
    4140} 
    4241 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/Geometry.cpp

    r2776 r2781  
    1111                                   Vector3 *normals, 
    1212                                   float *texcoords, 
    13                                    int numVertices): 
     13                                   int numVertices, 
     14                                   bool delData): 
    1415mVertices(vertices),  
    1516mNormals(normals),  
     
    1920{ 
    2021        Prepare(); 
     22 
     23        if (delData) 
     24        { 
     25                delete [] mVertices; mVertices = NULL; 
     26                delete [] mNormals;  mNormals = NULL; 
     27                if (!mTexCoords) delete [] mTexCoords; mTexCoords = NULL; 
     28        } 
    2129} 
    2230 
     31Geometry::~Geometry() 
     32{ 
     33        if (!mVertices) delete [] mVertices;     
     34        if (!mNormals) delete [] mNormals; 
     35        if (!mTexCoords) delete [] mTexCoords; 
    2336 
     37        // delete vbo 
     38        glDeleteBuffersARB(1, &mVboId); 
     39} 
     40 
     41         
    2442void Geometry::Prepare() 
    2543{ 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/Geometry.h

    r2776 r2781  
    1919        /** Constructor taking an array of triangles. 
    2020        */ 
    21         Geometry(Vector3 *vertices, Vector3 *normals, float *texcoords, int numVertices); 
     21        Geometry(Vector3 *vertices, Vector3 *normals, float *texcoords, int numVertices, bool delData); 
     22        ~Geometry(); 
    2223        /** Render the geometry 
    2324        */ 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/OcclusionQuery.cpp

    r2776 r2781  
    6464 
    6565QueryHandler::QueryHandler(): mCurrentQueryIdx(0)  
    66 {} 
     66{ 
     67        Allocate(1000); 
     68} 
    6769 
    6870 
     
    102104 
    103105 
     106void QueryHandler::Allocate(int n) 
     107{ 
     108        unsigned int *ids = new unsigned int[n];  
     109        glGenQueriesARB(n, ids); 
     110 
     111        for (int i = 0; i < n; ++ i)  
     112        { 
     113                OcclusionQuery *q = new OcclusionQuery(ids[i]); 
     114                mOcclusionQueries.push_back(q); 
     115        } 
     116 
     117        mCurrentQueryIdx = n; 
     118        delete [] ids; 
     119} 
     120 
    104121 
    105122} // namespace 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/OcclusionQuery.h

    r2776 r2781  
    1616class OcclusionQuery 
    1717{ 
     18        friend class QueryHandler; 
     19 
    1820public: 
    1921        /** constructor requesting an opengl occlusion query. 
     
    4648        */ 
    4749        inline int GetSize() const { return (int)mNodes.size();} 
     50         
    4851 
    4952protected: 
    5053 
    51          
     54        OcclusionQuery(unsigned int id): mQueryId(id) { } 
     55 
    5256        /////// 
    5357        //-- members 
     
    7781 
    7882protected: 
     83         
     84        /** allocates n queries in advance 
     85        */ 
     86        void Allocate(int n); 
     87 
     88 
     89        //////////////// 
    7990 
    8091        int mCurrentQueryIdx; 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/chcdemo.cpp

    r2780 r2781  
    117117int main(int argc, char* argv[]) 
    118118{ 
     119        int returnCode = 0; 
     120 
     121#ifdef _CRT_SET 
     122 
     123        //Now just call this function at the start of your program and if you're 
     124        //compiling in debug mode (F5), any leaks will be displayed in the Output 
     125        //window when the program shuts down. If you're not in debug mode this will 
     126        //be ignored. Use it as you will! 
     127        //note: from GDNet Direct [3.8.04 - 3.14.04] void detectMemoryLeaks() { 
     128 
     129        _CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF|_CRTDBG_ALLOC_MEM_DF); 
     130        _CrtSetReportMode(_CRT_ASSERT,_CRTDBG_MODE_FILE); 
     131        _CrtSetReportFile(_CRT_ASSERT,_CRTDBG_FILE_STDERR);  
     132#endif 
     133 
     134 
    119135        camera = new Camera(winWidth, winHeight); 
    120136        camera->SetNear(nearDist); 
Note: See TracChangeset for help on using the changeset viewer.