[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