Ignore:
Timestamp:
07/05/06 20:18:06 (18 years ago)
Author:
gumbau
Message:
 
Location:
GTP/trunk/Lib/Geom/shared/GTGeometry
Files:
4 added
8 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Geom/shared/GTGeometry/GTGeometry.vcproj

    r1071 r1083  
    130130                        </File> 
    131131                        <File 
     132                                RelativePath=".\src\GeoMeshLoader.cpp"> 
     133                        </File> 
     134                        <File 
     135                                RelativePath=".\src\GeoMeshSaver.cpp"> 
     136                        </File> 
     137                        <File 
    132138                                RelativePath=".\src\GeoMeshSimplifier.cpp"> 
    133139                        </File> 
     
    370376                        <File 
    371377                                RelativePath=".\include\GeoMesh.h"> 
     378                        </File> 
     379                        <File 
     380                                RelativePath=".\include\GeoMeshLoader.h"> 
     381                        </File> 
     382                        <File 
     383                                RelativePath=".\include\GeoMeshSaver.h"> 
    372384                        </File> 
    373385                        <File 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/include/GeoLodStripsLibrary.h

    r1078 r1083  
    133133 
    134134                        //      Loads Mesh. 
    135                         void    LoadStripMesh(const LodStripsLibraryData &, Mesh *geomesh); 
     135                        void    LoadStripMesh(const LodStripsLibraryData *, Mesh *geomesh); 
    136136 
    137137                        Geometry::CREATEINDEXDATAFUNC create_index_data_func; 
     
    139139                        //      Strips vector. 
    140140                        SmallIntVector  *mStrips; 
     141                        int *indices_x_submesh; 
     142                        int *offsets_x_submesh; 
    141143 
    142144                        void UpdateDataRetrievalInterface(void);                         
     
    149151                         *      including the multiresolution object. 
    150152                        */ 
    151                         LodStripsLibrary(const LodStripsLibraryData &, Mesh *geomesh, CREATEINDEXDATAFUNC idfun=NULL); 
     153                        LodStripsLibrary(const LodStripsLibraryData *, Mesh *geomesh, CREATEINDEXDATAFUNC idfun=NULL); 
    152154 
    153155                        /// Destructor. 
     
    173175                        uint32  MinVertices(); 
    174176 
    175                         int *indices_x_submesh; 
     177                        uint32 GetValidIndexCount(int submeshid) const { return indices_x_submesh[submeshid]; } 
     178                        uint32 GetValidOffset(int submeshid) const { return offsets_x_submesh[submeshid]; } 
    176179        }; 
    177180} 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/include/GeoLodTreeLibrary.h

    r1078 r1083  
    2222/*              LodTreeLibrary( const LodTreeLibrary &); 
    2323                LodTreeLibrary(LodTreeLibrary*);*/ 
    24                 LodTreeLibrary( const LodStripsLibraryData &, 
    25                                                 const TreeSimplificationSequence &, 
     24                LodTreeLibrary( const LodStripsLibraryData *, 
     25                                                const TreeSimplificationSequence *, 
    2626                                                Geometry::Mesh *treeGeoMesh, 
    2727                                                uint32 leafSubMeshID 
     
    5757/*              const VertexData* Get_Trunk_VertexData(void) const;*/ 
    5858                const IndexData* CurrentLOD_Trunk_Indices(void) const; 
     59                uint32 GetValidTrunkIndexCount(int isubmesh) const { return trunk->GetValidIndexCount(isubmesh); } 
     60                uint32 GetValidTrunkOffset(int isubmesh) const { return trunk->GetValidOffset(isubmesh); } 
    5961 
    6062//              uint32 Get_Foliage_VertexCount(void) const; 
     
    6466                const VertexData* Get_Foliage_VertexData(void) const; 
    6567 
    66 //              Geometry::IndexData *trunk_all_indices; 
    67 //              unsigned int *indices_offsets; 
    68  
    69 //              const Geometry::SmallIntVector & GetStrip(uint32 istrip) const { return trunk->mStrips[istrip]; } 
    70                 Geometry::LodStripsLibrary *trunk; 
    71  
    7268        private: 
    7369                Foliage *foliage; 
    74  
     70                Geometry::LodStripsLibrary *trunk; 
    7571        }; 
    7672} 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/GeoLodStripsLibrary.cpp

    r1078 r1083  
    1717//      Constructors. 
    1818//----------------------------------------------------------------------------- 
    19 LodStripsLibrary::LodStripsLibrary(const LodStripsLibraryData &lodstripsdata, Mesh *geomesh, CREATEINDEXDATAFUNC idfun) 
     19LodStripsLibrary::LodStripsLibrary(const LodStripsLibraryData *lodstripsdata, Mesh *geomesh, CREATEINDEXDATAFUNC idfun) 
    2020:create_index_data_func(idfun?idfun:DefaultIndexDataCreator) 
    2121{ 
     
    3333        dataRetrievalInterface=NULL; 
    3434        indices_x_submesh = NULL; 
     35        offsets_x_submesh = NULL; 
    3536         
    3637        //      Loads the Level Of Detail file. 
     
    5859        if (indices_x_submesh) 
    5960                delete[] indices_x_submesh; 
     61        if (offsets_x_submesh) 
     62                delete[] offsets_x_submesh; 
    6063} 
    6164 
     
    430433//      LoadStripMesh 
    431434//----------------------------------------------------------------------------- 
    432 void LodStripsLibrary::LoadStripMesh(const LodStripsLibraryData &lodstripsdata, Mesh *geomesh) 
     435void LodStripsLibrary::LoadStripMesh(const LodStripsLibraryData *lodstripsdata, Mesh *geomesh) 
    433436{ 
    434437        FILE                                                                                                                    *fp; 
     
    451454        //      For each one of the submeshes. 
    452455        indices_x_submesh = new int[geomesh->mSubMeshCount]; 
     456        offsets_x_submesh = new int[geomesh->mSubMeshCount]; 
    453457        for (unsigned int submesh       =       0; submesh < geomesh->mSubMeshCount; submesh++) 
    454458        { 
     
    492496                        i       = 0; 
    493497                        indices_x_submesh[submesh] = 0; 
     498                        if (submesh==0) 
     499                                offsets_x_submesh[submesh] = 0; 
     500                        else 
     501                                offsets_x_submesh[submesh] = indices_x_submesh[submesh-1]; 
     502 
    494503                        //      For each index of the strip. 
    495504                        for (index = indexBegin; index < indexEnd; index++) 
     
    498507                                indices_x_submesh[submesh]++; 
    499508                                i++; 
    500                         } 
     509                        }                        
    501510                } 
    502511        } 
     
    559568                fclose(fp);*/ 
    560569 
    561         mFileVertices = lodstripsdata.mFileVertices; 
    562         mFileChangesLOD = lodstripsdata.mFileChangesLOD; 
    563         mData = lodstripsdata.mData; 
    564         p_changes = lodstripsdata.p_changes; 
     570        mFileVertices = lodstripsdata->mFileVertices; 
     571        mFileChangesLOD = lodstripsdata->mFileChangesLOD; 
     572        mData = lodstripsdata->mData; 
     573        p_changes = lodstripsdata->p_changes; 
    565574                 
    566575                 
     
    602611                { 
    603612                        indices_x_submesh[target_submesh] = counter; 
     613                        if (target_submesh==0) 
     614                                offsets_x_submesh[target_submesh] = 0; 
     615                        else 
     616                                offsets_x_submesh[target_submesh] = indices_x_submesh[target_submesh-1] + offsets_x_submesh[target_submesh-1]; 
     617 
    604618                        counter = 0; 
    605619                        strip_count = 0; 
     
    617631        { 
    618632                indices_x_submesh[target_submesh] = counter; 
     633                if (target_submesh==0) 
     634                        offsets_x_submesh[target_submesh] = 0; 
     635                else 
     636                        offsets_x_submesh[target_submesh] = indices_x_submesh[target_submesh-1] + offsets_x_submesh[target_submesh-1]; 
     637 
    619638                counter = 0; 
    620639                strip_count = 0; 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/GeoLodTreeLibrary.cpp

    r1078 r1083  
    55using namespace Geometry; 
    66 
    7 Geometry::LodTreeLibrary::LodTreeLibrary(const LodStripsLibraryData &lodstripsdata, 
    8                                                                                  const TreeSimplificationSequence &simpseq, 
     7Geometry::LodTreeLibrary::LodTreeLibrary(const LodStripsLibraryData *lodstripsdata, 
     8                                                                                 const TreeSimplificationSequence *simpseq, 
    99                                                                                 Geometry::Mesh *treeGeoMesh, 
    1010                                                                                 uint32 leafSubMeshID/* 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/leaves/foliage.cpp

    r1078 r1083  
    1010// Parameters --> None 
    1111//-------------------------------------------------------------------------------------------------------------------------------- 
    12 Foliage::Foliage(const Geometry::SubMesh *leavesSubMesh, const Geometry::TreeSimplificationSequence & simpSeq, Geometry::CREATEVERTEXDATAFUNC vdfun, Geometry::CREATEINDEXDATAFUNC idfun):  
     12Foliage::Foliage(const Geometry::SubMesh *leavesSubMesh, const Geometry::TreeSimplificationSequence * simpSeq, Geometry::CREATEVERTEXDATAFUNC vdfun, Geometry::CREATEINDEXDATAFUNC idfun):  
    1313Acth(NULL), 
    1414create_vertex_data_func(vdfun==NULL?Geometry::DefaultVertexDataCreator:vdfun), 
     
    304304 
    305305/// returns the number of total leafs 
    306 bool Foliage::ReadSimpSeq(const Geometry::TreeSimplificationSequence & simpSeq) 
     306bool Foliage::ReadSimpSeq(const Geometry::TreeSimplificationSequence * simpSeq) 
    307307{ 
    308308        int tn, tv1,tv2, e=0; 
    309309 
    310310        tn = leafCount; 
    311         for (std::vector<Geometry::TreeSimplificationSequence::Step>::const_iterator it = simpSeq.mSteps.begin(); it != simpSeq.mSteps.end(); it++) 
     311        for (std::vector<Geometry::TreeSimplificationSequence::Step>::const_iterator it = simpSeq->mSteps.begin(); it != simpSeq->mSteps.end(); it++) 
    312312        { 
    313313                Leaves[tn].vertsLeaf[0] = it->mNewQuad[0]; 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/leaves/foliage.h

    r1078 r1083  
    2727                int active_leaf_count; 
    2828 
    29                 Foliage (const Geometry::SubMesh *, const Geometry::TreeSimplificationSequence &, Geometry::CREATEVERTEXDATAFUNC vdfun=NULL, Geometry::CREATEINDEXDATAFUNC idfun=NULL); 
     29                Foliage (const Geometry::SubMesh *, const Geometry::TreeSimplificationSequence *, Geometry::CREATEVERTEXDATAFUNC vdfun=NULL, Geometry::CREATEINDEXDATAFUNC idfun=NULL); 
    3030                Foliage (const Foliage *); 
    3131                virtual ~Foliage (void); // Destructor 
     
    5757                void ReadLeafs(const Geometry::SubMesh *); 
    5858                void ReadVertices(const Geometry::SubMesh *); 
    59                 bool ReadSimpSeq(const Geometry::TreeSimplificationSequence &); /// returns true when successful 
     59                bool ReadSimpSeq(const Geometry::TreeSimplificationSequence *); /// returns true when successful 
    6060                void FillRoot(void); 
    6161 
Note: See TracChangeset for help on using the changeset viewer.