Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

wustl_mm::SkeletonMaker::GridQueue2 Class Reference

#include <grid_queue2.h>

Collaboration diagram for wustl_mm::SkeletonMaker::GridQueue2:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 GridQueue2 ()
 ~GridQueue2 ()
gridQueueElegetNext ()
void reset ()
int getNumElements ()
void prepend (int xx, int yy, int zz)
gridQueueEleremove ()
gridQueueEleswap ()

Private Attributes

gridQueueElehead
gridQueueElepre
gridQueueEleprepre
gridQueueElecur
int numEles

Constructor & Destructor Documentation

GridQueue2::GridQueue2  ) 
 

Definition at line 9 of file grid_queue2.cpp.

References cur, head, numEles, pre, and prepre.

00010                 {
00011                         head = NULL ;
00012                         cur = NULL ;
00013                         pre = NULL ;
00014                         prepre = NULL ;
00015                         numEles = 0 ;
00016                 }

GridQueue2::~GridQueue2  ) 
 

Definition at line 18 of file grid_queue2.cpp.

References getNext(), remove(), and reset().

00019                 {
00020                         gridQueueEle* ele;
00021                         reset();
00022                         ele=getNext();
00023                         while ( (ele=remove()) != NULL ){};
00024                 }


Member Function Documentation

gridQueueEle * GridQueue2::getNext  ) 
 

Definition at line 25 of file grid_queue2.cpp.

References cur, wustl_mm::SkeletonMaker::gridQueueEle::next, pre, and prepre.

Referenced by wustl_mm::SkeletonMaker::Volume::curveSkeleton(), wustl_mm::SkeletonMaker::Volume::curveSkeleton2D(), wustl_mm::SkeletonMaker::Volume::erodeHelix(), wustl_mm::SkeletonMaker::Volume::erodeSheet(), wustl_mm::SkeletonMaker::Volume::skeleton(), wustl_mm::SkeletonMaker::Volume::surfaceSkeletonPres(), and ~GridQueue2().

00026                 {
00027                         if ( cur == NULL )
00028                         {
00029                                 prepre = NULL ;
00030                                 pre = NULL ;
00031                                 cur = head ;
00032                         }
00033                         else
00034                         {
00035                                 prepre = pre ;
00036                                 pre = cur ;
00037                                 cur = cur->next ;
00038                         }
00039 
00040                         return cur ;
00041                 }

int GridQueue2::getNumElements  ) 
 

Definition at line 50 of file grid_queue2.cpp.

Referenced by wustl_mm::SkeletonMaker::Volume::curveSkeleton(), wustl_mm::SkeletonMaker::Volume::curveSkeleton2D(), wustl_mm::SkeletonMaker::Volume::erodeHelix(), wustl_mm::SkeletonMaker::Volume::erodeSheet(), wustl_mm::SkeletonMaker::Volume::skeleton(), and wustl_mm::SkeletonMaker::Volume::surfaceSkeletonPres().

00051                 {
00052                         return numEles ;
00053                 }

void GridQueue2::prepend int  xx,
int  yy,
int  zz
 

Definition at line 55 of file grid_queue2.cpp.

References head, wustl_mm::SkeletonMaker::gridQueueEle::next, numEles, reset(), wustl_mm::SkeletonMaker::gridQueueEle::score, wustl_mm::SkeletonMaker::gridQueueEle::x, wustl_mm::SkeletonMaker::gridQueueEle::y, and wustl_mm::SkeletonMaker::gridQueueEle::z.

Referenced by wustl_mm::SkeletonMaker::Volume::curveSkeleton(), wustl_mm::SkeletonMaker::Volume::curveSkeleton2D(), wustl_mm::SkeletonMaker::Volume::erodeHelix(), wustl_mm::SkeletonMaker::Volume::erodeSheet(), wustl_mm::SkeletonMaker::Volume::skeleton(), and wustl_mm::SkeletonMaker::Volume::surfaceSkeletonPres().

00056                 {
00057                         gridQueueEle* ele = new gridQueueEle ;
00058                         ele->x = xx ;
00059                         ele->y = yy ;
00060                         ele->z = zz ;
00061                         ele->score = 0 ;
00062                         ele->next = head;
00063                         head = ele ;
00064                         numEles ++ ;
00065 
00066                         reset() ;
00067                 }

gridQueueEle * GridQueue2::remove  ) 
 

Definition at line 70 of file grid_queue2.cpp.

References cur, head, wustl_mm::SkeletonMaker::gridQueueEle::next, numEles, and pre.

Referenced by wustl_mm::SkeletonMaker::Volume::curveSkeleton(), wustl_mm::SkeletonMaker::Volume::curveSkeleton2D(), wustl_mm::SkeletonMaker::Volume::erodeHelix(), wustl_mm::SkeletonMaker::Volume::erodeSheet(), wustl_mm::SkeletonMaker::Volume::skeleton(), wustl_mm::SkeletonMaker::Volume::surfaceSkeletonPres(), and ~GridQueue2().

00071                 {
00072                         gridQueueEle* temp = cur ;
00073                         if ( cur != NULL )
00074                         {
00075                                 cur = cur->next ;
00076                                 delete temp ;
00077 
00078                                 if ( pre != NULL )
00079                                 {
00080                                         pre->next = cur ;
00081                                 }
00082                                 else
00083                                 {
00084                                         head = cur ;
00085                                 }
00086                                 numEles -- ;
00087                         }
00088 
00089 
00090                         return cur ;
00091                 }

void GridQueue2::reset  ) 
 

Definition at line 43 of file grid_queue2.cpp.

References cur, pre, and prepre.

Referenced by wustl_mm::SkeletonMaker::Volume::curveSkeleton(), wustl_mm::SkeletonMaker::Volume::curveSkeleton2D(), wustl_mm::SkeletonMaker::Volume::erodeHelix(), wustl_mm::SkeletonMaker::Volume::erodeSheet(), prepend(), wustl_mm::SkeletonMaker::Volume::skeleton(), wustl_mm::SkeletonMaker::Volume::surfaceSkeletonPres(), and ~GridQueue2().

00044                 {
00045                         prepre = NULL ;
00046                         pre = NULL ;
00047                         cur = NULL ;
00048                 }

gridQueueEle * GridQueue2::swap  ) 
 

Definition at line 94 of file grid_queue2.cpp.

References cur, head, wustl_mm::SkeletonMaker::gridQueueEle::next, pre, and prepre.

00095                 {
00096                         if ( prepre != NULL )
00097                         {
00098                                 pre->next = cur->next ;
00099                                 cur->next = prepre->next ;
00100                                 prepre->next = cur ;
00101 
00102                         }
00103                         else
00104                         {
00105                                 pre->next = cur->next ;
00106                                 cur->next = pre ;
00107                                 head = cur ;
00108                         }
00109 
00110                         gridQueueEle* temp = pre ;
00111                         pre = cur ;
00112                         cur = temp ;
00113 
00114                         return cur ;
00115                 }


Member Data Documentation

gridQueueEle* wustl_mm::SkeletonMaker::GridQueue2::cur [private]
 

Definition at line 28 of file grid_queue2.h.

Referenced by getNext(), GridQueue2(), remove(), reset(), and swap().

gridQueueEle* wustl_mm::SkeletonMaker::GridQueue2::head [private]
 

Definition at line 25 of file grid_queue2.h.

Referenced by GridQueue2(), prepend(), remove(), and swap().

int wustl_mm::SkeletonMaker::GridQueue2::numEles [private]
 

Definition at line 29 of file grid_queue2.h.

Referenced by GridQueue2(), prepend(), and remove().

gridQueueEle* wustl_mm::SkeletonMaker::GridQueue2::pre [private]
 

Definition at line 26 of file grid_queue2.h.

Referenced by getNext(), GridQueue2(), remove(), reset(), and swap().

gridQueueEle* wustl_mm::SkeletonMaker::GridQueue2::prepre [private]
 

Definition at line 27 of file grid_queue2.h.

Referenced by getNext(), GridQueue2(), reset(), and swap().


The documentation for this class was generated from the following files:
Generated on Tue Jun 11 13:43:16 2013 for EMAN2 by  doxygen 1.3.9.1