Ignore:
Timestamp:
03/26/07 08:46:55 (17 years ago)
Author:
gumbau
Message:
 
Location:
GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/gfx/tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/gfx/tools/Array.h

    r1526 r2291  
    3737                inline void array<T>::init(int l) 
    3838                { 
    39                         data = new T[l]; 
    40                         len = l; 
     39                        data    =       new T[l]; 
     40                        len             =       l; 
    4141                } 
    4242 
     
    4444                inline void array<T>::f_r_e_e() 
    4545                { 
    46                         if( data ) 
     46                        if(data) 
    4747                        { 
    48                                 delete[] data; 
     48                                delete  [] data; 
    4949                                data = NULL; 
    5050                        } 
     
    5555                { 
    5656#ifdef SAFETY 
    57                         assert( data ); 
    58                         assert( i>=0 && i<len ); 
     57                        assert(data); 
     58                        assert(i >= 0 && i < len); 
    5959#endif 
    6060                        return data[i]; 
     
    6565                { 
    6666#ifdef SAFETY 
    67                         assert( data ); 
    68                         assert( i>=0 && i<len ); 
     67                        assert(data); 
     68                        assert(i >= 0 && i < len); 
    6969#endif 
    7070                        return data[i]; 
     
    7474                inline void array<T>::resize(int l) 
    7575                { 
    76                         T *old = data; 
    77                         data = new T[l]; 
    78                         data = (T *)memcpy(data,old,MIN(len,l)*sizeof(T)); 
    79                         len = l; 
    80                         delete[] old; 
     76                        T *old  =       data; 
     77                        data            =       new T[l]; 
     78                        data            =       (T *)memcpy(data,old,MIN(len,l)*sizeof(T)); 
     79                        len                     =       l; 
     80 
     81                        delete  [] old; 
    8182                } 
    8283} 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/gfx/tools/Buffer.h

    r2090 r2291  
    77{ 
    88        template<class T> 
    9         class buffer : public array<T> { 
    10         protected: 
    11                 int fill; 
    12         public: 
    13                 buffer() { init(8); } 
    14                 buffer(int l) { init(l); } 
    15      
    16                 inline void init(int l) { array<T>::init(l); fill=0; } 
     9                class buffer : public array<T> { 
     10                        protected: 
     11                                int fill; 
     12                        public: 
     13                                buffer() { init(8); } 
     14                                buffer(int l) { init(l); } 
    1715 
    18                 inline int add(const T& t); 
    19                 inline void reset(); 
    20                 inline int find(const T&); 
    21                 inline T remove(int i); 
    22                 inline int addAll(const buffer<T>& buf); 
    23                 inline void removeDuplicates(); 
     16                                inline void init(int l) { array<T>::init(l); fill=0; } 
    2417 
    25                 inline int length() const { return fill; } 
    26                 inline int maxLength() const { return len; } 
    27                 inline void setFill(int l){fill =       l;} 
    28         }; 
     18                                inline int add(const T& t); 
     19                                inline void reset(); 
     20                                inline int find(const T&); 
     21                                inline T remove(int i); 
     22                                inline int addAll(const buffer<T>& buf); 
     23                                inline void removeDuplicates(); 
     24 
     25                                inline int length() const { return fill; } 
     26                                inline int maxLength() const { return len; } 
     27                                inline void setFill(int l){fill =       l;} 
     28                }; 
    2929 
    3030        template<class T> 
    31         inline int buffer<T>::add(const T& t) 
    32         { 
    33                 if( fill == len ) 
     31                inline int buffer<T>::add(const T& t) 
    3432                { 
    35                         resize( len*2 ); 
     33                        if(fill == len) 
     34                        { 
     35                                resize(len * 2); 
     36                        } 
     37 
     38                        data[fill] = t; 
     39 
     40                        return fill++; 
    3641                } 
    3742 
    38                 data[fill] = t; 
    39  
    40                 return fill++; 
    41         } 
     43        template<class T> 
     44                inline void buffer<T>::reset() 
     45                { 
     46                        fill = 0; 
     47                } 
    4248 
    4349        template<class T> 
    44         inline void buffer<T>::reset() 
    45         { 
    46                 fill = 0; 
    47         } 
     50                inline int buffer<T>::find(const T& t) 
     51                { 
     52                        for(int i=0;i<fill;i++) 
     53                                if( data[i] == t ) 
     54                                        return i; 
     55 
     56                        return -1; 
     57                } 
    4858 
    4959        template<class T> 
    50         inline int buffer<T>::find(const T& t) 
    51         { 
    52                 for(int i=0;i<fill;i++) 
    53                 if( data[i] == t ) 
    54                         return i; 
     60                inline T buffer<T>::remove(int i) 
     61                { 
     62#ifdef SAFETY 
     63                        assert( i>=0 ); 
     64                        assert( i<fill ); 
     65#endif 
    5566 
    56                 return -1; 
    57         } 
     67                        fill--; 
     68                        T temp = data[i]; 
     69                        data[i] = data[fill]; 
     70 
     71                        return temp; 
     72                } 
    5873 
    5974        template<class T> 
    60         inline T buffer<T>::remove(int i) 
    61         { 
    62         #ifdef SAFETY 
    63                 assert( i>=0 ); 
    64                 assert( i<fill ); 
    65         #endif 
     75                inline int buffer<T>::addAll(const buffer<T>& buf) 
     76                { 
     77                        for (int i=0; i<buf.fill; i++) 
     78                                add(buf(i)); 
    6679 
    67                 fill--; 
    68                 T temp = data[i]; 
    69                 data[i] = data[fill]; 
    70  
    71                 return temp; 
    72         } 
     80                        return fill; 
     81                } 
    7382 
    7483        template<class T> 
    75         inline int buffer<T>::addAll(const buffer<T>& buf) 
    76         { 
    77                 for(int i=0; i<buf.fill; i++) 
    78                 add(buf(i)); 
    79  
    80                 return fill; 
    81         } 
    82  
    83         template<class T> 
    84         inline void buffer<T>::removeDuplicates() 
    85         { 
    86                 for(int i=0; i<fill; i++) 
     84                inline void buffer<T>::removeDuplicates() 
    8785                { 
    88                 for(int j=i+1; j<fill; ) 
    89                 { 
    90                         if( data[j] == data[i] ) 
    91                         remove(j); 
    92                         else 
    93                         j++; 
     86                        for (int i=0; i<fill; i++) 
     87                        { 
     88                                for (int j=i+1; j<fill; ) 
     89                                { 
     90                                        if ( data[j] == data[i] ) 
     91                                                remove(j); 
     92                                        else 
     93                                                j++; 
     94                                } 
     95                        } 
    9496                } 
    95                 } 
    96         } 
    9797} 
    9898 
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/gfx/tools/Heap.h

    r1600 r2291  
    3333        { 
    3434                public: 
     35 
    3536                        float import; 
    3637                        Heapable *obj; 
Note: See TracChangeset for help on using the changeset viewer.