- Timestamp:
- 03/31/06 17:29:32 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/BBC/BBCBillboard.h
r700 r721 6 6 namespace BBC { 7 7 8 class _BBCExport Billboard { 8 // Forward declarations 9 class Billboard; 10 11 namespace boost 12 { 13 void intrusive_ptr_add_ref(Billboard * p); 14 void intrusive_ptr_release(Billboard * p); 15 }; 16 17 18 class _BBCExport Billboard 19 { 20 private: 21 long references; 22 friend void boost::intrusive_ptr_add_ref(Billboard * p); 23 friend void boost::intrusive_ptr_release(Billboard * p); 24 9 25 public: 10 26 Billboard(); 11 27 12 ~Billboard();28 virtual ~Billboard(); 13 29 14 30 … … 25 41 protected: 26 42 27 BillboardClusterData *mBillboardClusterData;43 BillboardClusterDataPtr mBillboardClusterData; 28 44 29 45 public: 30 46 31 void setBillboardClusterData(BillboardClusterData *value);47 void setBillboardClusterData(BillboardClusterDataPtr value); 32 48 33 BillboardClusterData *getBillboardClusterData();49 BillboardClusterDataPtr getBillboardClusterData(); 34 50 35 51 }; 36 52 53 // class specific addref/release implementation 54 // the two function overloads must be in the boost namespace on most compilers: 55 namespace boost 56 { 57 inline void intrusive_ptr_add_ref(Billboard * p) 58 { 59 // increment reference count of object *p 60 ++(p->references); 61 } 62 63 64 65 inline void intrusive_ptr_release(Billboard * p) 66 { 67 // decrement reference count, and delete object when reference count reaches 0 68 if (--(p->references) == 0) 69 delete p; 70 } 71 } // namespace boost 72 73 typedef ::boost::intrusive_ptr<Billboard> BillboardPtr; 74 37 75 } 38 76 #endif
Note: See TracChangeset
for help on using the changeset viewer.