Institut de Robòtica i Informàtica Industrial
KRD Group

The CuikSuite Project

vector.h

Go to the documentation of this file.
00001 #ifndef VECTORH
00002 #define VECTORH 
00003 
00004 #include "boolean.h"
00005 #include <stdio.h>
00006 
00052 boolean CmpID(void *a,void *b);
00053 
00063 void CopyID(void *a,void *b);
00073 void DeleteID(void *a);
00074 
00075 
00087 boolean CmpDouble(void *a,void *b);
00097 void CopyDouble(void *a,void *b);
00106 void DeleteDouble(void *a);
00107 
00119 boolean CmpVoidPtr(void *a,void *b);
00129 void CopyVoidPtr(void *a,void *b);
00138 void DeleteVoidPtr(void *a);
00139 
00148 typedef struct
00149 {  
00150   void **elements;              
00151   unsigned int ele_size;        
00152   unsigned int num_ele;         
00153   unsigned int max_ele;         
00154   void (* Copy)(void *,void*);  
00155   void (* Delete)(void *);      
00156 } Tvector;
00157 
00175 void InitVector(unsigned int ele_size,
00176                 void (* Copy)(void *,void*),
00177                 void (* Delete)(void *),
00178                 unsigned int max_ele,Tvector *vector);
00179 
00190 void ResetVector(Tvector *vector);
00191 
00200 void CopyVector(Tvector *v_dst,Tvector *v_src);
00201 
00211 unsigned int VectorFirstFreePos(Tvector *vector);
00212 
00225 unsigned int VectorSize(Tvector *vector);
00226 
00237 unsigned int VectorMaxSize(Tvector *vector);
00238 
00248 boolean VectorEmpty(Tvector *vector);
00249 
00264 boolean ElementInVector(void *e,boolean (* cmp)(void *,void*),Tvector *vector);
00280 unsigned int FindPos(void *e,boolean (* cmp)(void *,void*),Tvector *vector);
00281 
00292 unsigned int NewVectorElement(void *e,Tvector *vector);
00293 
00304 unsigned int NewFreeVectorElement(void *e,Tvector *vector);
00316 void SetVectorElement(unsigned int i,void *e,Tvector *vector);
00317 
00329 void *GetVectorElement(unsigned int i,Tvector *vector);
00330 
00340 void *GetLastElement(Tvector *vector);
00341 
00354 void RemoveVectorElement(unsigned int i,Tvector *vector);
00355 
00371 void SwapVectorElements(unsigned int i,unsigned int j,Tvector *vector);
00372 
00373 
00389 void ExtractVectorElement(unsigned int i,void *e,Tvector *vector);
00390 
00405 void MoveVectorElement(unsigned int i,unsigned int ni,Tvector *vector);
00406 
00414 void DeleteVector(void *vector);
00415 
00416 #endif