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

walter at geodynamics.org walter at geodynamics.org
Thu Aug 17 17:17:26 PDT 2006


Author: walter
Date: 2006-08-17 17:17:26 -0700 (Thu, 17 Aug 2006)
New Revision: 4331

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/Init.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h
Log:
 r2709 at earth:  boo | 2006-08-17 17:14:22 -0700
  r2663 at earth (orig r3744):  RaquibulHassan | 2006-08-03 02:07:15 -0700
  Implemented the 'construct' virtual function for the Delaunay class.
  
  
 



Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
   - 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2708
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3743
   + 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2709
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3744

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c	2006-08-18 00:17:23 UTC (rev 4330)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c	2006-08-18 00:17:26 UTC (rev 4331)
@@ -208,40 +208,18 @@
 	DelaunayAttributes			*attr )
 {
 	Delaunay *self = NULL;
-	int i = 0;
 	
 	assert( _sizeOfSelf >= sizeof(Delaunay) );
 	self = (Delaunay*)_Stg_Component_New( _sizeOfSelf, type, _delete, _print, _copy, _defaultConstructor,
 			_construct, _build, _initialise, _execute, _destroy, name, NON_GLOBAL );
-	
+
+	self->points = sites;
 	self->attributes = attr;
 	self->dictionary = dictionary;
-	
-	if( self->attributes->BuildBoundingTriangle ){
-		self->numSites = numSites + 3;
-	}
-	else{
-		self->numSites = numSites;
-	}
-	
+
 	self->numInputSites = numSites;
 	self->idOffset = idOffset;
 	
-	if( sites != NULL ){
-		self->sites = Memory_Alloc_Array_Unnamed( Site, self->numSites );
-		memset( self->boundingTriangle, 0, sizeof( self->boundingTriangle ) );
-
-		for( i=0; i<self->numSites; i++ ){
-			if( i < self->numInputSites ){
-				self->sites[i].coord = &(sites[i]);
-			}
-			else{
-				self->sites[i].coord = &(self->boundingTriangle[i%3]);
-			}
-			self->sites[i].id = i + idOffset;
-		}
-	}
-
 	if( initFlag ){
 		_Delaunay_Init( self );
 	}
@@ -283,9 +261,35 @@
 	float maxX, minX, maxY, minY;
 	float centreX, centreY;
 	float radius;
+	int i = 0;
+	CoordF *sites = NULL;
 	
 	assert( self );
 	
+	sites = self->points;
+	
+	if( self->attributes->BuildBoundingTriangle ){
+		self->numSites = self->numInputSites + 3;
+	}
+	else{
+		self->numSites = self->numInputSites;
+	}
+
+	if( sites != NULL ){
+		self->sites = Memory_Alloc_Array_Unnamed( Site, self->numSites );
+		memset( self->boundingTriangle, 0, sizeof( self->boundingTriangle ) );
+
+		for( i=0; i<self->numSites; i++ ){
+			if( i < self->numInputSites ){
+				self->sites[i].coord = &(sites[i]);
+			}
+			else{
+				self->sites[i].coord = &(self->boundingTriangle[i%3]);
+			}
+			self->sites[i].id = i + self->idOffset;
+		}
+	}
+	
 	centreX = 0; centreY = 0; 
 	
 	Delaunay_FindMinMax( self->sites, self->numSites, &minX, &minY, &maxX, &maxY );
@@ -387,7 +391,43 @@
 
 void _Delaunay_Construct( void* delaunay, Stg_ComponentFactory* cf )
 {
+	Delaunay *self = NULL;
+	Stg_ObjectList* pointerRegister;
+	int idOffset = 0;
+	CoordF *points = NULL;
+	DelaunayAttributes *attr = NULL;
+	int numSites = 0;
+
+	self = (Delaunay*) delaunay;
 	
+	pointerRegister = Stg_ObjectList_Get( cf->registerRegister, "Pointer_Register" );
+	
+	assert( pointerRegister );
+
+	points = Stg_ObjectList_Get( pointerRegister, "dataPoints" );
+	attr = Stg_ObjectList_Get( pointerRegister, "delaunayAttributes" );
+
+	numSites = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "numSites", 0 );
+
+	assert( points );
+	assert( attr );
+	assert( numSites );
+	
+	self->dictionary = cf->rootDict;
+	self->points = points;
+	self->attributes = attr;
+
+	if( self->attributes->BuildBoundingTriangle ){
+		self->numSites = numSites + 3;
+	}
+	else{
+		self->numSites = numSites;
+	}
+	
+	self->numInputSites = numSites;
+	self->idOffset = idOffset;
+
+	_Delaunay_Init( self );
 }
 
 void _Delaunay_Build( void* delaunay, void* data )

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h	2006-08-18 00:17:23 UTC (rev 4330)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h	2006-08-18 00:17:26 UTC (rev 4331)
@@ -68,6 +68,7 @@
 		VoronoiVertexPool 	*vp; \
 		int					numSites; \
 		int					numInputSites; \
+		CoordF				*points; \
 		Site				*sites; \
 		int					idOffset; \
 		CoordF				boundingTriangle[3]; \

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Init.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Init.c	2006-08-18 00:17:23 UTC (rev 4330)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Init.c	2006-08-18 00:17:26 UTC (rev 4331)
@@ -45,6 +45,8 @@
 #include "RefinedRegionsGeometry.h"
 #include "ShellGeometry.h"
 #include "IrregGeometry.h"
+#include "Delaunay.h"
+#include "ParallelDelaunay.h"
 
 #include <stdio.h>
 
@@ -59,7 +61,11 @@
 	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), RefinedRegionsGeometry_Type, "0", RefinedRegionsGeometry_DefaultNew );
 	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), ShellGeometry_Type, "0", (void*)ShellGeometry_DefaultNew );
 	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), IrregGeometry_Type, "0", (void*)IrregGeometry_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), Delaunay_Type, "0", (void*)Delaunay_DefaultNew );
+	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), ParallelDelaunay_Type, "0", (void*)ParallelDelaunay_DefaultNew );
 
+	RegisterParent( Delaunay_Type,               Stg_Component_Type );
+	RegisterParent( ParallelDelaunay_Type,       Delaunay_Type );
 	RegisterParent( Geometry_Type,               Stg_Component_Type );
 	RegisterParent( BlockGeometry_Type,          Geometry_Type );
 	RegisterParent( RefinedRegionsGeometry_Type, Geometry_Type );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h	2006-08-18 00:17:23 UTC (rev 4330)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h	2006-08-18 00:17:26 UTC (rev 4331)
@@ -48,7 +48,6 @@
 	/** ParallelDelaunay class contents (see Delaunay) */
 	#define __ParallelDelaunay \
 		__Delaunay \
-		CoordF		*points; \
 		CoordF		*localPoints; \
 		int			*initialOrder; \
 		int			leftProc; \



More information about the cig-commits mailing list