Changeset 3284 for GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Pvs.h
- Timestamp:
- 01/18/09 02:25:26 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Pvs.h
r3283 r3284 11 11 class Bvh; 12 12 13 struct PvsEntry 14 { 15 PvsEntry(SceneEntity *ent, float t): 16 mEntity(ent) 17 //, mTimeStamp(t) 18 {} 19 20 friend bool operator<(const PvsEntry &a, const PvsEntry &b); 21 22 23 /////////////// 24 25 SceneEntity *mEntity; 26 //float mTimeStamp; 27 }; 28 29 30 31 32 typedef std::vector<PvsEntry> PvsEntryContainer; 33 13 34 14 35 /** Class representing the Potentially Visible Set (PVS) from a view cell. … … 16 37 class Pvs 17 38 { 18 19 39 public: 20 40 … … 22 42 23 43 bool Empty() const; 24 25 void AddEntry(Bvh *bvh, BvhNode *node); 44 /** Convencience method adding all scene entities associated with a bvh node. 45 */ 46 void AddEntry(Bvh *bvh, BvhNode *node, float timeStamp = -1); 26 47 27 48 int GetSize() const; 28 49 29 inline SceneEntity *GetEntry(int i) const; 50 inline SceneEntity *GetEntity(int i) const; 51 52 inline PvsEntry GetEntry(int i) const; 30 53 31 inline void AddEntry(SceneEntity *ent, float timeStamp = 0.0f); 54 inline void AddEntry(const PvsEntry &entry); 55 /* Sort entries by timestamp 56 */ 57 void Sort(); 32 58 33 59 … … 35 61 36 62 /// vector of PVS entries 37 SceneEntityContainer mEntries; 38 std::vector<float> mTimeStamps; 39 40 static bool sStoreTimeStamps; 63 PvsEntryContainer mEntries; 41 64 }; 42 65 43 66 44 inline SceneEntity *Pvs::GetEntry(int i) const 67 inline SceneEntity *Pvs::GetEntity(int i) const 68 { 69 return mEntries[i].mEntity; 70 } 71 72 73 inline PvsEntry Pvs::GetEntry(int i) const 45 74 { 46 75 return mEntries[i]; … … 48 77 49 78 50 inline void Pvs::AddEntry( SceneEntity *ent, float timeStamp)79 inline void Pvs::AddEntry(const PvsEntry &entry) 51 80 { 52 mEntries.push_back(ent); 53 54 if (sStoreTimeStamps) 55 { 56 mTimeStamps.push_back(timeStamp); 57 } 81 mEntries.push_back(entry); 58 82 } 59 83 … … 65 89 66 90 67 inline void Pvs::AddEntry(Bvh *bvh, BvhNode *node )91 inline void Pvs::AddEntry(Bvh *bvh, BvhNode *node, float timeStamp) 68 92 { 69 93 int geometrySize; … … 73 97 for (int i = 0; i < geometrySize; ++ i) 74 98 { 75 AddEntry( entities[i]);99 AddEntry(PvsEntry(entities[i], timeStamp)); 76 100 } 77 101 } 102 78 103 79 104
Note: See TracChangeset
for help on using the changeset viewer.