Blender V2.61 - r43446
|
00001 /* 00002 * ***** BEGIN GPL LICENSE BLOCK ***** 00003 * 00004 * This program is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU General Public License 00006 * as published by the Free Software Foundation; either version 2 00007 * of the License, or (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software Foundation, 00016 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00017 * 00018 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. 00019 * All rights reserved. 00020 * 00021 * The Original Code is: all of this file. 00022 * 00023 * Contributor(s): none yet. 00024 * 00025 * ***** END GPL LICENSE BLOCK ***** 00026 */ 00027 00034 #ifndef CTR_LIST_H 00035 #define CTR_LIST_H 00036 00037 class CTR_Link { 00038 public: 00039 CTR_Link( 00040 ) ; 00041 00042 CTR_Link( 00043 CTR_Link *next, 00044 CTR_Link *prev 00045 ) ; 00046 00047 CTR_Link * 00048 getNext( 00049 ) const ; 00050 00051 CTR_Link * 00052 getPrev( 00053 ) const ; 00054 00055 bool 00056 isHead( 00057 ) const ; 00058 00059 bool 00060 isTail( 00061 ) const ; 00062 00063 void 00064 insertBefore( 00065 CTR_Link *link 00066 ) ; 00067 00068 void 00069 insertAfter( 00070 CTR_Link *link 00071 ) ; 00072 00073 void 00074 remove( 00075 ) ; 00076 00077 private: 00078 CTR_Link *m_next; 00079 CTR_Link *m_prev; 00080 }; 00081 00082 class CTR_List { 00083 public: 00084 00085 CTR_List( 00086 ) ; 00087 00088 CTR_Link * 00089 getHead( 00090 ) const ; 00091 00092 CTR_Link * 00093 getTail( 00094 ) const ; 00095 00096 void 00097 addHead( 00098 CTR_Link *link 00099 ) ; 00100 00101 void 00102 addTail( 00103 CTR_Link *link 00104 ) ; 00105 00106 private: 00107 CTR_Link m_head; 00108 CTR_Link m_tail; 00109 }; 00110 00111 #endif 00112