[cig-commits] r4822 - in long/3D/Gale/trunk/src/StGermain: . Discretisation/Geometry/src

walter at geodynamics.org walter at geodynamics.org
Wed Oct 11 13:46:05 PDT 2006


Author: walter
Date: 2006-10-11 13:46:04 -0700 (Wed, 11 Oct 2006)
New Revision: 4822

Modified:
   long/3D/Gale/trunk/src/StGermain/
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.h
Log:
 r2879 at earth:  boo | 2006-10-11 13:42:29 -0700
  r2795 at earth (orig r3783):  RaquibulHassan | 2006-09-06 02:50:03 -0700
  Making use of the StGermain Memory pool.
  
  
 



Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
   - 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2878
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3782
   + 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2879
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3783

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c	2006-10-11 20:46:02 UTC (rev 4821)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c	2006-10-11 20:46:04 UTC (rev 4822)
@@ -325,11 +325,11 @@
 	}
 	
 	if( self->qp ){
-		Release_QuadEdgePool( self->qp );
+		Stg_Class_Delete( self->qp );
 	}
 
 	if( self->vp ){
-		Release_VoronoiVertexPool( self->vp );
+		Stg_Class_Delete( self->vp );
 	}
 
 	if( self->triangleIndices ){
@@ -438,20 +438,20 @@
     
 	assert( self );
 	
-	self->qp = QuadEdgePool_New( self->numSites * 3 );
+	self->qp = MemoryPool_New( QuadEdge, self->numSites * 3 );
 	
 	Delaunay_SortSites(self->sites, self->numSites);
 
     Delaunay_Recurse(self, 0, self->numSites, &self->leftMost, &self->rightMost);
 
-	self->numEdges = self->qp->numQuadEdges - self->qp->numQuadEdgesFree;
+	self->numEdges = self->qp->numElements - self->qp->numElementsFree;
 	self->numFaces = self->numEdges - self->numSites + 2;
 	self->numTriangles = 0;
 
 	attr = self->attributes;
 
 	if( attr->CreateVoronoiVertices ){
-		self->vp = VoronoiVertexPool_New( self->numSites * 2 );
+		self->vp = MemoryPool_New( VoronoiVertex, self->numSites * 2 );
 	}
 	
 	Delaunay_FindHull( self );
@@ -462,7 +462,7 @@
 	
 	if( attr->CreateVoronoiVertices ){
 		Delaunay_BuildVoronoiVertices( self );
-		self->numVoronoiVertices = self->vp->numVoronoiVertices - self->vp->numVoronoiVerticesFree;
+		self->numVoronoiVertices = self->vp->numElements - self->vp->numElementsFree;
 	}
 	
 	Delaunay_FindNeighbours( self );
@@ -668,8 +668,8 @@
 		delaunay->triangleNeighbours = Memory_Alloc_Array_Unnamed( unsigned int*, delaunay->numFaces );
 		delaunay->triangleNeighbours[0] = Memory_Alloc_Array_Unnamed( unsigned int, delaunay->numFaces * 3 );
 
-		edgeToTriangle = Memory_Alloc_Array_Unnamed( int*, delaunay->qp->numQuadEdges );
-		edgeToTriangle[0] = Memory_Alloc_Array_Unnamed( int, delaunay->qp->numQuadEdges * 2 );
+		edgeToTriangle = Memory_Alloc_Array_Unnamed( int*, delaunay->qp->numElements );
+		edgeToTriangle[0] = Memory_Alloc_Array_Unnamed( int, delaunay->qp->numElements * 2 );
 	}
 	
 	for( i=0; i<delaunay->numFaces; i++ ){
@@ -685,7 +685,7 @@
 	}
 	
 	if( delaunay->attributes->BuildTriangleNeighbours ){
-		for( i=0; i<delaunay->qp->numQuadEdges; i++ ){
+		for( i=0; i<delaunay->qp->numElements; i++ ){
 			edgeToTriangle[i] = edgeToTriangle[0]+i*2;
 			
 			edgeToTriangle[i][0] = delaunay->numFaces-1;
@@ -695,9 +695,9 @@
 		
 	triIndices = delaunay->triangleIndices;
 	
-	edges = delaunay->qp->quadEdges;
+	edges = (QuadEdge*)delaunay->qp->elements;
 	sites = delaunay->sites;
-	maxEdges = delaunay->qp->numQuadEdges;
+	maxEdges = delaunay->qp->numElements;
 		
 	for (i = 0; i < maxEdges; i++) {
 		edges[i].count = 0;
@@ -728,13 +728,13 @@
 								triIndices[triCount][2] = (((Site*)DEST(eOnext))->id);
 
 								if( delaunay->attributes->BuildTriangleNeighbours ){
-									index = (int)(((QuadEdge*)((void*)e)) - delaunay->qp->quadEdges);
+									index = (int)(((QuadEdge*)((void*)e)) - (QuadEdge*)delaunay->qp->elements);
 									edgeToTriangle[index][COUNT(e)] = triCount;
 								
-									index = (int)(((QuadEdge*)((void*)eOnext)) - delaunay->qp->quadEdges);
+									index = (int)(((QuadEdge*)((void*)eOnext)) - (QuadEdge*)delaunay->qp->elements);
 									edgeToTriangle[index][COUNT(eOnext)] = triCount;
 								
-									index = (int)(((QuadEdge*)((void*)eLnext)) - delaunay->qp->quadEdges);
+									index = (int)(((QuadEdge*)((void*)eLnext)) - (QuadEdge*)delaunay->qp->elements);
 									edgeToTriangle[index][COUNT(eLnext)] = triCount;
 								}
 								
@@ -747,13 +747,13 @@
 							triIndices[triCount][2] = (((Site*)DEST(eOnext))->id);
 							
 							if( delaunay->attributes->BuildTriangleNeighbours ){
-								index = (int)(((QuadEdge*)((void*)e)) - delaunay->qp->quadEdges);
+								index = (int)(((QuadEdge*)((void*)e)) - (QuadEdge*)delaunay->qp->elements);
 								edgeToTriangle[index][COUNT(e)] = triCount;
 								
-								index = (int)(((QuadEdge*)((void*)eOnext)) - delaunay->qp->quadEdges);
+								index = (int)(((QuadEdge*)((void*)eOnext)) - (QuadEdge*)delaunay->qp->elements);
 								edgeToTriangle[index][COUNT(eOnext)] = triCount;
 								
-								index = (int)(((QuadEdge*)((void*)eLnext)) - delaunay->qp->quadEdges);
+								index = (int)(((QuadEdge*)((void*)eLnext)) - (QuadEdge*)delaunay->qp->elements);
 								edgeToTriangle[index][COUNT(eLnext)] = triCount;
 							}
 
@@ -777,8 +777,8 @@
 		triangleNeighbourCount = Memory_Alloc_Array_Unnamed( int, delaunay->numFaces );
 		memset( triangleNeighbourCount, 0, sizeof( int ) * delaunay->numFaces );
 		
-		for( i=0; i<delaunay->qp->numQuadEdges; i++ ){
-			if( IS_FREE( (QuadEdgeRef)(&(delaunay->qp->quadEdges[i])) ) ) continue;
+		for( i=0; i<delaunay->qp->numElements; i++ ){
+			if( IS_FREE( (QuadEdgeRef)(&(delaunay->qp->elements[i*sizeof(QuadEdge)])) ) ) continue;
 
 		
 			if( edgeToTriangle[i][0] != (delaunay->numFaces-1) )
@@ -805,9 +805,9 @@
 
 	assert( delaunay );
 	
-	edges = delaunay->qp->quadEdges;
+	edges = (QuadEdge*)delaunay->qp->elements;
 	sites = delaunay->sites;
-	maxEdges = delaunay->qp->numQuadEdges;
+	maxEdges = delaunay->qp->numElements;
 		
 	for (i = 0; i < maxEdges; i++) {
 		edges[i].count = 0;
@@ -830,7 +830,7 @@
 						
 						/* voronoi */
 							
-						new_voronoi_site = VoronoiVertex_New( delaunay->vp );
+						new_voronoi_site = MemoryPool_NewObject( VoronoiVertex, delaunay->vp );
 					
 						/* Fiding the center of the circumcircle defined by org(e), dest(eonext) and dest(e)
 						 * and retrieving the result via new_voronoi_site */
@@ -876,8 +876,8 @@
 
 	attr = delaunay->attributes;
 	sites = delaunay->sites;
-	edges = delaunay->qp->quadEdges;
-	maxEdges = delaunay->qp->numQuadEdges;
+	edges = (QuadEdge*)delaunay->qp->elements;
+	maxEdges = delaunay->qp->numElements;
 	numSites = delaunay->numSites;
 	
 	for (i = 0; i < maxEdges; i++) {

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h	2006-10-11 20:46:02 UTC (rev 4821)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h	2006-10-11 20:46:04 UTC (rev 4822)
@@ -64,8 +64,8 @@
 	#define __Delaunay \
 		__Stg_Component \
 		Dictionary			*dictionary; \
-		QuadEdgePool		*qp; \
-		VoronoiVertexPool 	*vp; \
+		MemoryPool			*qp; \
+		MemoryPool			*vp; \
 		int					numSites; \
 		int					numInputSites; \
 		CoordF				*points; \

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c	2006-10-11 20:46:02 UTC (rev 4821)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c	2006-10-11 20:46:04 UTC (rev 4822)
@@ -432,7 +432,7 @@
 	}
 	
 	self->localTriangulation = Delaunay_New( "delaunay", self->dictionary, self->localPoints, self->numLocalSites, offset, self->attributes );
-	self->localTriangulation->qp = QuadEdgePool_New( self->localTriangulation->numSites * (3 + MERGE_FACTOR) );
+	self->localTriangulation->qp = MemoryPool_New( QuadEdge, self->localTriangulation->numSites * (3 + MERGE_FACTOR) );
 	Delaunay_SortSites(self->localTriangulation->sites, self->localTriangulation->numSites);
     Delaunay_Recurse(self->localTriangulation, 0, self->localTriangulation->numSites,
 			&self->localTriangulation->leftMost, &self->localTriangulation->rightMost);
@@ -453,14 +453,14 @@
 		
 		self->haloSites[0] = BTree_New( ParallelDelaunayBtreeCompareFunction, NULL, NULL, NULL, BTREE_NO_DUPLICATES );
 		
-		for( i=0; i<self->localTriangulation->qp->numQuadEdges; i++ ){
-			if( IS_FREE((QuadEdgeRef)&(self->localTriangulation->qp->quadEdges[i])) ) continue;
+		for( i=0; i<self->localTriangulation->qp->numElements; i++ ){
+			if( IS_FREE((QuadEdgeRef)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)])) ) continue;
 	
-			if( self->mapGlobalToLocal[((Site*)self->localTriangulation->qp->quadEdges[i].data[0])->id] == numSites )
-				BTree_InsertNode( self->haloSites[0], ((Site*)self->localTriangulation->qp->quadEdges[i].data[0]), sizeof( Site* ) );
+			if( self->mapGlobalToLocal[((Site*)((QuadEdge*)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)]))->data[0])->id] == numSites )
+				BTree_InsertNode( self->haloSites[0], ((Site*)((QuadEdge*)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)]))->data[0]), sizeof( Site* ) );
 			
-			if( self->mapGlobalToLocal[((Site*)self->localTriangulation->qp->quadEdges[i].data[2])->id] == numSites )
-				BTree_InsertNode( self->haloSites[0], ((Site*)self->localTriangulation->qp->quadEdges[i].data[2]), sizeof( Site* ) );
+			if( self->mapGlobalToLocal[((Site*)((QuadEdge*)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)]))->data[2])->id] == numSites )
+				BTree_InsertNode( self->haloSites[0], ((Site*)((QuadEdge*)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)]))->data[2]), sizeof( Site* ) );
 		}
 
 		self->localPoints = Memory_Realloc_Array
@@ -482,7 +482,7 @@
 		Stg_Class_Delete( self->localTriangulation );
 
 		self->localTriangulation = Delaunay_New( "delaunay", self->dictionary, self->localPoints, self->numLocalSites, offset, self->attributes );
-		self->localTriangulation->qp = QuadEdgePool_New( self->localTriangulation->numSites * 4 );
+		self->localTriangulation->qp = MemoryPool_New( QuadEdge, self->localTriangulation->numSites * 4 );
 		Delaunay_SortSites(self->localTriangulation->sites, self->localTriangulation->numSites);
     	Delaunay_Recurse(self->localTriangulation, 0, self->localTriangulation->numSites,
 				&self->localTriangulation->leftMost, &self->localTriangulation->rightMost);
@@ -502,14 +502,14 @@
 
 		self->haloSites[1] = BTree_New( ParallelDelaunayBtreeCompareFunction, NULL, NULL, NULL, BTREE_NO_DUPLICATES );
 		
-		for( i=0; i<self->localTriangulation->qp->numQuadEdges; i++ ){
-			if( IS_FREE((QuadEdgeRef)&(self->localTriangulation->qp->quadEdges[i])) ) continue;
+		for( i=0; i<self->localTriangulation->qp->numElements; i++ ){
+			if( IS_FREE((QuadEdgeRef)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)])) ) continue;
 	
-			if( self->mapGlobalToLocal[((Site*)self->localTriangulation->qp->quadEdges[i].data[0])->id] == numSites )
-				BTree_InsertNode( self->haloSites[1], ((Site*)self->localTriangulation->qp->quadEdges[i].data[0]), sizeof( Site* ) );
+			if( self->mapGlobalToLocal[((Site*)((QuadEdge*)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)]))->data[0])->id] == numSites )
+				BTree_InsertNode( self->haloSites[1], ((Site*)((QuadEdge*)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)]))->data[0]), sizeof( Site* ) );
 			
-			if( self->mapGlobalToLocal[((Site*)self->localTriangulation->qp->quadEdges[i].data[2])->id] == numSites )
-				BTree_InsertNode( self->haloSites[1], ((Site*)self->localTriangulation->qp->quadEdges[i].data[2]), sizeof( Site* ) );
+			if( self->mapGlobalToLocal[((Site*)((QuadEdge*)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)]))->data[2])->id] == numSites )
+				BTree_InsertNode( self->haloSites[1], ((Site*)((QuadEdge*)&(self->localTriangulation->qp->elements[i*sizeof(QuadEdge)]))->data[2]), sizeof( Site* ) );
 		}
 
 		self->localPoints = Memory_Realloc_Array
@@ -531,7 +531,7 @@
 		Stg_Class_Delete( self->localTriangulation );
 
 		self->localTriangulation = Delaunay_New( "delaunay", self->dictionary, self->localPoints, self->numLocalSites, offset, self->attributes );
-		self->localTriangulation->qp = QuadEdgePool_New( self->localTriangulation->numSites * 4 );
+		self->localTriangulation->qp = MemoryPool_New( QuadEdge, self->localTriangulation->numSites * 4 );
 		Delaunay_SortSites(self->localTriangulation->sites, self->localTriangulation->numSites);
     	Delaunay_Recurse(self->localTriangulation, 0, self->localTriangulation->numSites,
 				&self->localTriangulation->leftMost, &self->localTriangulation->rightMost);
@@ -602,10 +602,10 @@
 	
 	triIndices = delaunay->triangleIndices;
 	
-	edges = delaunay->qp->quadEdges;
+	edges = (QuadEdge*)delaunay->qp->elements;
 	sites = delaunay->sites;
 	rank = pd->rank;
-	maxEdges = delaunay->qp->numQuadEdges;
+	maxEdges = delaunay->qp->numElements;
 		
 	for (i = 0; i < maxEdges; i++) {
 		edges[i].count = 0;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.c	2006-10-11 20:46:02 UTC (rev 4821)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.c	2006-10-11 20:46:04 UTC (rev 4822)
@@ -53,118 +53,7 @@
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Constructors
 	*/
-
-QuadEdgePool *QuadEdgePool_New( int numSites )
-{
-	QuadEdgePool *qp = NULL;
-	int i = 0;
-
-	qp = Memory_Alloc_Unnamed( QuadEdgePool );
-	memset( qp, 0, sizeof( QuadEdgePool ) );
 	
-	assert( numSites > 0 );
-
-	/* Allocating memory for the quadEdge pool */
-	qp->quadEdges = (QuadEdge*)Memory_Alloc_Array_Unnamed( QuadEdge, numSites );
-	memset( qp->quadEdges, 0, sizeof( QuadEdge ) * numSites );
-	
-	qp->pool = Memory_Alloc_Array_Unnamed( QuadEdge*, numSites );
-	
-	qp->numQuadEdges = numSites;
-	qp->numQuadEdgesFree = numSites;
-	
-	for( i=0; i<numSites; i++ ){
-		qp->pool[i] = &(qp->quadEdges[i]);
-	}
-
-	return qp;
-}
-
-VoronoiVertexPool *VoronoiVertexPool_New( int numSites )
-{
-	VoronoiVertexPool *vp = NULL;
-	int i = 0;
-
-	vp = Memory_Alloc_Unnamed( VoronoiVertexPool );
-	memset( vp, 0, sizeof( VoronoiVertexPool ) );
-	
-	assert( numSites > 0 );
-
-	/* Allocating memory for the voronoiVertices pool */
-	vp->voronoiVertices = Memory_Alloc_Array_Unnamed( VoronoiVertex, numSites );
-	memset( vp->voronoiVertices, 0, sizeof( VoronoiVertex ) * numSites );
-	
-	vp->pool = Memory_Alloc_Array_Unnamed( VoronoiVertex*, numSites );
-	
-	vp->numVoronoiVertices = numSites;
-	vp->numVoronoiVerticesFree = numSites;
-	
-	for( i=0; i<numSites; i++ ){
-		vp->pool[i] = &(vp->voronoiVertices[i]);
-	}
-
-	return vp;
-}
-	
-QuadEdge *QuadEdge_New( QuadEdgePool *qp )
-{
-	QuadEdge *e = NULL;
-	int index = 0;
-	
-	index = qp->numQuadEdgesFree - 1;
-	
-	if( index < 0 ){
-		return NULL;
-	}
-	
-	e = qp->pool[--(qp->numQuadEdgesFree)];
-	SET_IN_USE( (QuadEdgeRef)e );
-
-	return e;
-}
-
-VoronoiVertex *VoronoiVertex_New( VoronoiVertexPool *vp )
-{
-	VoronoiVertex *v = NULL;
-
-	v = vp->pool[--(vp->numVoronoiVerticesFree)];
-
-	return v;
-}
-	
-void Release_QuadEdgePool( QuadEdgePool *qp )
-{
-	if( qp ){
-		Memory_Free( qp->quadEdges );
-		Memory_Free( qp->pool );
-		Memory_Free( qp );
-	}
-}
-
-void Release_VoronoiVertexPool( VoronoiVertexPool *vp )
-{
-	if( vp ){
-		Memory_Free( vp->voronoiVertices );
-		Memory_Free( vp->pool );
-		Memory_Free( vp );
-	}
-}
-
-void VoronoiVertex_Free( VoronoiVertexPool *vp, VoronoiVertex *v )
-{
-	memset( v, 0, sizeof( VoronoiVertex ) );
-
-	vp->pool[vp->numVoronoiVerticesFree++] = v;
-}
-
-void QuadEdge_Free( QuadEdgePool *qp, QuadEdge *e )
-{
-	memset( e, 0, sizeof( QuadEdge ) );
-
-	SET_FREE( (QuadEdgeRef)e );
-	qp->pool[qp->numQuadEdgesFree++] = e;
-}
-	
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Virtual functions
 	*/
@@ -174,12 +63,13 @@
 	** Private Member functions
 	*/
 
-QuadEdgeRef MakeQuadEdge( QuadEdgePool *qp )
+QuadEdgeRef MakeQuadEdge( MemoryPool *qp )
 {
 	QuadEdgeRef e = 0;
 
-	e = (QuadEdgeRef) QuadEdge_New( qp );
-
+	e = (QuadEdgeRef) MemoryPool_NewObject( QuadEdge, qp );
+	SET_IN_USE( (QuadEdgeRef)e );
+	
 	if( e == 0 ){
 		fprintf( stderr, "Out of memory..!\n Aborting..!\n" );
 		assert( 0 );
@@ -194,14 +84,14 @@
 	return e;
 }
 
-void DeleteQuadEdge( QuadEdgePool *qp, QuadEdgeRef e)
+void DeleteQuadEdge( MemoryPool *qp, QuadEdgeRef e)
 {
 	QuadEdgeRef f = SYM(e);
 	
 	if (ONEXT(e) != e) SpliceQuadEdges(e, OPREV(e));
 	if (ONEXT(f) != f) SpliceQuadEdges(f, OPREV(f));  
     
-	QuadEdge_Free( qp, (QuadEdge*) ((e) & WORD) );
+	MemoryPool_DeleteObject( qp, (QuadEdge*) ((e) & WORD) );
 }
 
 void SpliceQuadEdges(QuadEdgeRef a, QuadEdgeRef b)
@@ -220,7 +110,7 @@
 	ONEXT(beta) = ta;    
 }
 
-QuadEdgeRef ConnectQuadEdges(QuadEdgePool *qp, QuadEdgeRef a, QuadEdgeRef b)
+QuadEdgeRef ConnectQuadEdges(MemoryPool *qp, QuadEdgeRef a, QuadEdgeRef b)
 {
 	QuadEdgeRef e;
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.h	2006-10-11 20:46:02 UTC (rev 4821)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/QuadEdge.h	2006-10-11 20:46:04 UTC (rev 4822)
@@ -59,20 +59,6 @@
 
 	struct QuadEdge { __QuadEdge };
 
-	#define __QuadEdgePool \
-		struct	QuadEdge	*quadEdges; \
-		struct	QuadEdge	**pool; \
-		int					numQuadEdgesFree; \
-		int					numQuadEdges;
-	struct QuadEdgePool 	{ __QuadEdgePool };
-	
-	#define __VoronoiVertexPool \
-		VoronoiVertex		*voronoiVertices; \
-		VoronoiVertex		**pool; \
-		int					numVoronoiVerticesFree; \
-		int					numVoronoiVertices;
-	struct VoronoiVertexPool{ __VoronoiVertexPool };
-
 /* Defining WORD according to the architecture */
 #if defined(SYSTEM_SIZEOF_LONG) && SYSTEM_SIZEOF_LONG == 8
 	#define WORD 0xfffffffffffffffcu
@@ -82,6 +68,7 @@
 
 #define COUNT(e)  ((QuadEdge *)((e)&WORD))->count
 
+/* Defining macros for operating on bit flags */
 #define IS_IN_USE(e)	(((QuadEdge *)((e)&WORD))->attributes & IN_USE)
 #define IS_FREE(e)		(!(((QuadEdge *)((e)&WORD))->attributes & IN_USE))
 #define SET_IN_USE(e)	(((QuadEdge *)((e)&WORD))->attributes |= IN_USE)
@@ -192,18 +179,6 @@
 	** Constructors
 	*/
 	
-	QuadEdgePool *QuadEdgePool_New( int numSites );
-	VoronoiVertexPool *VoronoiVertexPool_New( int numSites );
-	
-	QuadEdge *QuadEdge_New( QuadEdgePool *qp );
-	VoronoiVertex *VoronoiVertex_New( VoronoiVertexPool *vp );
-	
-	void Release_QuadEdgePool( QuadEdgePool *qp );
-	void Release_VoronoiVertexPool( VoronoiVertexPool *vp );
-
-	void VoronoiVertex_Free( VoronoiVertexPool *vp, VoronoiVertex *v );
-	void QuadEdge_Free( QuadEdgePool *qp, QuadEdge *e );
-	
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Virtual functions
 	*/
@@ -213,9 +188,9 @@
 	** Private Member functions
 	*/
 	
-	QuadEdgeRef MakeQuadEdge( QuadEdgePool *qp );
-	void DeleteQuadEdge( QuadEdgePool *qp, QuadEdgeRef e);
+	QuadEdgeRef MakeQuadEdge( MemoryPool *qp );
+	void DeleteQuadEdge( MemoryPool *qp, QuadEdgeRef e);
 	void SpliceQuadEdges(QuadEdgeRef a, QuadEdgeRef b);
-	QuadEdgeRef ConnectQuadEdges(QuadEdgePool *qp, QuadEdgeRef a, QuadEdgeRef b);
+	QuadEdgeRef ConnectQuadEdges(MemoryPool *qp, QuadEdgeRef a, QuadEdgeRef b);
 	
 #endif /* __Discretisation_Geometry_QuadEdge_h__ */



More information about the cig-commits mailing list