[cig-commits] commit: adding hack to OpenGLDrawingObject to get it to be able to draw FieldVariables and not just FeVariables.

Mercurial hg at geodynamics.org
Mon Nov 24 11:29:03 PST 2008


changeset:   34:405912b8b8af
user:        RobertTurnbull
date:        Mon Oct 29 04:26:41 2007 +0000
files:       DrawingObjects/src/Isosurface.c DrawingObjects/src/OpenGLDrawingObject.c DrawingObjects/src/OpenGLDrawingObject.h DrawingObjects/src/ScalarFieldCrossSection.c DrawingObjects/src/VectorArrowCrossSection.c DrawingObjects/tests/TemperatureField-LinearWithSinusoidalPerturbation.xml DrawingObjects/tests/testDrawingObject.c DrawingObjects/tests/testDrawingObject.xml DrawingObjects/tests/testFeVariableSurface.xml DrawingObjects/tests/testIsosurface.xml DrawingObjects/tests/testSwarm.xml
description:
adding hack to OpenGLDrawingObject to get it to be able to draw FieldVariables and not just FeVariables.
	Somebody should have realised that by putting an FeVariable_Sync call into these Drawing Objects make lots of tests break.
Getting some of these glucifer tests to work with the new mesh stuff.

I'm going to get all these tests in glucifer to work again ASAP.
So once they are all up and running - please can people do a 'make check' in glucifer when you make changes.


diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/src/Isosurface.c
--- a/DrawingObjects/src/Isosurface.c	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/src/Isosurface.c	Mon Oct 29 04:26:41 2007 +0000
@@ -39,7 +39,7 @@
 *+		Patrick Sunter
 *+		Greg Watson
 *+
-** $Id: Isosurface.c 740 2007-10-11 08:05:31Z SteveQuenette $
+** $Id: Isosurface.c 746 2007-10-29 04:26:41Z RobertTurnbull $
 ** 
 **~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
@@ -253,7 +253,7 @@ void _lucIsosurface_Setup( void* drawing
 	Coord                    max;
 	Dimension_Index          dim             = context->dim;
 
-	FeVariable_SyncShadowValues( self->isosurfaceField );
+	lucOpenGLDrawingObject_SyncShadowValues( self, self->isosurfaceField );
 
 	/* Initialise Variables */
 	self->triangleCount = 0;
@@ -344,11 +344,9 @@ void _lucIsosurface_Draw( void* drawingO
 	XYZ                      fudgeFactor   = { 0.0, 0.0, 0.0 };
 	Index                    dof_I;
 
-	FeVariable_SyncShadowValues( self->isosurfaceField );
-	if( colourField )
-		FeVariable_SyncShadowValues( colourField );
-	if( self->maskField )
-		FeVariable_SyncShadowValues( self->maskField );
+	lucOpenGLDrawingObject_SyncShadowValues( self, self->isosurfaceField );
+	lucOpenGLDrawingObject_SyncShadowValues( self, colourField );
+	lucOpenGLDrawingObject_SyncShadowValues( self, self->maskField );
 
 	/* Calibrate Colour Map using Colour Variable */
 	if ( colourMap && colourField ) {
@@ -385,11 +383,9 @@ void _lucIsosurface_BuildDisplayList( vo
 	XYZ                      fudgeFactor   = { 0.0, 0.0, 0.0 };
 	Index                    dof_I;
 
-	FeVariable_SyncShadowValues( self->isosurfaceField );
-	if( colourField )
-		FeVariable_SyncShadowValues( colourField );
-	if( maskField )
-		FeVariable_SyncShadowValues( maskField );
+	lucOpenGLDrawingObject_SyncShadowValues( self, self->isosurfaceField );
+	lucOpenGLDrawingObject_SyncShadowValues( self, colourField );
+	lucOpenGLDrawingObject_SyncShadowValues( self, maskField );
 
 	/* Give option to draw surface as wireframe */
 	if (self->wireframe) 
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/src/OpenGLDrawingObject.c
--- a/DrawingObjects/src/OpenGLDrawingObject.c	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/src/OpenGLDrawingObject.c	Mon Oct 29 04:26:41 2007 +0000
@@ -39,7 +39,7 @@
 *+		Patrick Sunter
 *+		Greg Watson
 *+
-** $Id: OpenGLDrawingObject.c 740 2007-10-11 08:05:31Z SteveQuenette $
+** $Id: OpenGLDrawingObject.c 746 2007-10-29 04:26:41Z RobertTurnbull $
 ** 
 **~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
@@ -47,6 +47,7 @@
 #include <mpi.h>
 #include <StGermain/StGermain.h>
 #include <StgDomain/StgDomain.h>
+#include <StgFEM/StgFEM.h>
 
 #include <glucifer/Base/Base.h>
 #include <glucifer/RenderingEngines/RenderingEngines.h>
@@ -202,3 +203,9 @@ void lucOpenGLDrawingObject_BuildDisplay
 
 	self->_buildDisplayList( self, context );
 }
+
+/* HACK - a function to check whether a field is an FeVariable or not before it does an FeVariable_SyncShadowValues */
+void lucOpenGLDrawingObject_SyncShadowValues( void* drawingObject, void* field ) {
+	if ( field && Stg_Class_IsInstance( field, FeVariable_Type ) )
+		FeVariable_SyncShadowValues( field );
+}
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/src/OpenGLDrawingObject.h
--- a/DrawingObjects/src/OpenGLDrawingObject.h	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/src/OpenGLDrawingObject.h	Mon Oct 29 04:26:41 2007 +0000
@@ -39,7 +39,7 @@
 *+		Patrick Sunter
 *+		Greg Watson
 *+
-** $Id: OpenGLDrawingObject.h 628 2006-10-12 08:23:07Z SteveQuenette $
+** $Id: OpenGLDrawingObject.h 746 2007-10-29 04:26:41Z RobertTurnbull $
 ** 
 **~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
@@ -99,4 +99,7 @@
 
 	void lucOpenGLDrawingObject_BuildDisplayList( void* drawingObject, void* context ) ;
 
+	/* HACK - a function to check whether a field is an FeVariable or not before it does an FeVariable_SyncShadowValues */
+	void lucOpenGLDrawingObject_SyncShadowValues( void* drawingObject, void* field );
+
 #endif
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/src/ScalarFieldCrossSection.c
--- a/DrawingObjects/src/ScalarFieldCrossSection.c	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/src/ScalarFieldCrossSection.c	Mon Oct 29 04:26:41 2007 +0000
@@ -39,7 +39,7 @@
 *+		Patrick Sunter
 *+		Greg Watson
 *+
-** $Id: ScalarFieldCrossSection.c 743 2007-10-26 00:50:14Z LukeHodkinson $
+** $Id: ScalarFieldCrossSection.c 746 2007-10-29 04:26:41Z RobertTurnbull $
 ** 
 **~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
@@ -292,7 +292,7 @@ void lucScalarFieldCrossSection_DrawCros
 	Dimension_Index dim_I;
 
 	/* Ensure the field is synchronised. */
-	FeVariable_SyncShadowValues( self->fieldVariable );
+	lucOpenGLDrawingObject_SyncShadowValues( self, self->fieldVariable );
 	
 	glDisable(GL_LIGHTING);
 	
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/src/VectorArrowCrossSection.c
--- a/DrawingObjects/src/VectorArrowCrossSection.c	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/src/VectorArrowCrossSection.c	Mon Oct 29 04:26:41 2007 +0000
@@ -39,7 +39,7 @@
 *+		Patrick Sunter
 *+		Greg Watson
 *+
-** $Id: VectorArrowCrossSection.c 740 2007-10-11 08:05:31Z SteveQuenette $
+** $Id: VectorArrowCrossSection.c 746 2007-10-29 04:26:41Z RobertTurnbull $
 ** 
 **~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
@@ -277,7 +277,7 @@ void _lucVectorArrowCrossSection_DrawCro
 	Journal_DPrintf( self->debugStream, "In %s():\n", __func__ );
 	Stream_Indent( self->debugStream );
 
-	FeVariable_SyncShadowValues( vectorVariable );
+	lucOpenGLDrawingObject_SyncShadowValues( self, vectorVariable );
 
 	if ( True == self->dynamicRange ) {
 		scaleValue = 1 / FieldVariable_GetMaxGlobalFieldMagnitude( vectorVariable );
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/tests/TemperatureField-LinearWithSinusoidalPerturbation.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DrawingObjects/tests/TemperatureField-LinearWithSinusoidalPerturbation.xml	Mon Oct 29 04:26:41 2007 +0000
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
+
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+
+	<include>StgFEM/LinearMesh.xml</include>
+	<include>StgFEM/TemperatureField.xml</include>
+	<list name="plugins" mergeType='merge'>
+		<param>StgFEM_StandardConditionFunctions</param>
+	</list>
+	<struct name="temperatureICs">
+		<param name="type">CompositeVC</param>
+		<list name="vcList">
+			<struct>
+				<param name="type"> AllNodesVC </param>
+				<list name="variables">
+					<struct>
+						<param name="name">temperature</param>
+						<param name="type">func</param>
+						<param name="value"> LinearWithSinusoidalPerturbation </param>
+					</struct>
+				</list>
+			</struct>
+		</list>
+	</struct>
+	
+	<!-- Geometry & Mesh setup -->
+	<param name="dim"> 2 </param>
+	<param name="shadowDepth"> 1 </param>
+	<param name="minX"> 0.0f </param>
+	<param name="minY"> 0.0f </param>
+	<param name="minZ"> 0.0f </param>
+	<param name="maxX"> 1.0f </param>
+	<param name="maxY"> 1.0f </param>
+	<param name="maxZ"> 1.0f </param>
+	<param name="elementResI"> 10 </param>
+	<param name="elementResJ"> 10 </param>
+	<param name="elementResK"> 10 </param>
+
+</StGermainData>
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/tests/testDrawingObject.c
--- a/DrawingObjects/tests/testDrawingObject.c	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/tests/testDrawingObject.c	Mon Oct 29 04:26:41 2007 +0000
@@ -39,7 +39,7 @@
 *+		Patrick Sunter
 *+		Greg Watson
 *+
-** $Id: testDrawingObject.c 740 2007-10-11 08:05:31Z SteveQuenette $
+** $Id: testDrawingObject.c 746 2007-10-29 04:26:41Z RobertTurnbull $
 ** 
 **~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
@@ -81,7 +81,6 @@ int main( int argc, char* argv[] ) {
 	MPI_Comm_rank( CommWorld, &rank );
 	
 	StGermain_Init( &argc, &argv );
-	StgDomain_Init( &argc, &argv );
 	lucBase_Init();
 	/* Add lucWindow as default window for this test */
 	Stg_ComponentRegister_Add( Stg_ComponentRegister_Get_ComponentRegister(), lucDefaultWindow_Type, "0", _lucWindow_DefaultNew );
@@ -140,7 +139,6 @@ int main( int argc, char* argv[] ) {
 	lucRenderingEngines_Finalise();
 	lucWindowing_Finalise();
 	lucBase_Finalise();
-	StgDomain_Finalise();
 	StGermain_Finalise();
 		
 	/* Close off MPI */
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/tests/testDrawingObject.xml
--- a/DrawingObjects/tests/testDrawingObject.xml	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/tests/testDrawingObject.xml	Mon Oct 29 04:26:41 2007 +0000
@@ -2,6 +2,10 @@
 <!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
 
 <StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+
+	<list name="import">
+		<param>StgDomain</param>
+	</list>
  	
 	<struct name="components" mergeType="merge">
 		<struct name="renderingEngine">
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/tests/testFeVariableSurface.xml
--- a/DrawingObjects/tests/testFeVariableSurface.xml	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/tests/testFeVariableSurface.xml	Mon Oct 29 04:26:41 2007 +0000
@@ -6,51 +6,15 @@
 	<include>testDrawingObject.xml</include>
 
 	<!-- Add in FeVariable -->
-	<list name="import">
+	<list name="import" mergeType='merge'>
 		<param>StgFEM</param>
 	</list>
-	<include>StgFEM/LinearMesh.xml</include>
-	<include>StgFEM/TemperatureField.xml</include>
-	<list name="plugins">
-		<param>lucPlugin</param>
-		<param>StgFEM_StandardConditionFunctions</param>
-	</list>
-	<struct name="temperatureICs">
-		<param name="type">CompositeVC</param>
-		<list name="vcList">
-			<struct>
-				<param name="type"> AllNodesVC </param>
-				<list name="variables">
-					<struct>
-						<param name="name">temperature</param>
-						<param name="type">func</param>
-						<param name="value"> LinearWithSinusoidalPerturbation </param>
-					</struct>
-				</list>
-			</struct>
-		</list>
-	</struct>
-	
-	<!-- Geometry & Mesh setup -->
-	<param name="dim"> 2 </param>
-	<param name="shadowDepth"> 1 </param>
-	<param name="minX"> 0.0f </param>
-	<param name="minY"> 0.0f </param>
-	<param name="minZ"> 0.0f </param>
-	<param name="maxX"> 1.0f </param>
-	<param name="maxY"> 1.0f </param>
-	<param name="maxZ"> 1.0f </param>
-	<param name="elementResI"> 10 </param>
-	<param name="elementResJ"> 10 </param>
-	<param name="elementResK"> 10 </param>
-<!--
--->
-
+	<include>TemperatureField-LinearWithSinusoidalPerturbation.xml</include>
 
 	<struct name="components" mergeType="merge">
 		<struct name="camera" mergeType="replace">
 			<param name="Type">lucCamera</param>
-			<param name="CentreFieldVariable">DummyFieldVariable</param>
+			<param name="CentreFieldVariable">TemperatureField</param>
 			<param name="coordZ">2.5</param>
 		</struct>
 		<struct name="colourMap">
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/tests/testIsosurface.xml
--- a/DrawingObjects/tests/testIsosurface.xml	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/tests/testIsosurface.xml	Mon Oct 29 04:26:41 2007 +0000
@@ -5,6 +5,10 @@
 
 	<include>testDrawingObject.xml</include>
 
+	<!-- Add in FeVariable -->
+	<list name="import" mergeType='merge'>
+		<param>StgFEM</param>
+	</list>
 	<list name="plugins">
 		<param>DummyFieldVariable</param>
 	</list>
diff -r 1389e6890c24 -r 405912b8b8af DrawingObjects/tests/testSwarm.xml
--- a/DrawingObjects/tests/testSwarm.xml	Fri Oct 26 17:44:50 2007 +0000
+++ b/DrawingObjects/tests/testSwarm.xml	Mon Oct 29 04:26:41 2007 +0000
@@ -4,61 +4,42 @@
 <!-- DTD to validate against -->
 <StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
 	<!-- Purpose : Allows to create a Swarm to test it -->
+  <struct name="components" mergeType="merge">
+
+  </struct>
+
 	<struct name="components" mergeType="merge">
+		<struct name="linearMesh">
+			<param name="Type">Mesh</param>
+			<param name="elementType">linear</param>
+		</struct>
+
+		<struct name="linearMeshGenerator">
+			<param name="Type">CartesianGenerator</param>
+			<param name="mesh">linearMesh</param>
+			<param name="dims">dim</param>
+			<param name="shadowDepth">shadowDepth</param>
+			<list name="size">
+				<param>elementResI</param>
+				<param>elementResJ</param>
+				<param>elementResK</param>
+			</list>
+			<list name="minCoord">
+				<param>minX</param>
+				<param>minY</param>
+				<param>minZ</param>
+			</list>
+			<list name="maxCoord">
+				<param>maxX</param>
+				<param>maxY</param>
+				<param>maxZ</param>
+			</list>
+		</struct>
 		<!--Swarm description-->
 		<!--Bug in the ordering, decom-linear has to be first...-->
-		<struct name="decomp-linear">
-			<param name="Type">HexaMD</param>
-      			<param name="ElementLayout">elementLayout</param>
-      			<param name="NodeLayout">cornerNodeLayout</param>
-    		</struct>
-		<struct name="geometry">
-			<param name="Type">BlockGeometry</param>
-			<param name="sizeI"> elementResI </param>
-			<param name="sizeJ"> elementResJ </param>
-			<param name="sizeK"> elementResK </param>
-			<param name="sizeShift">+1</param>
-		</struct>
-		<struct name="elementTopology">
-			<param name="Type">IJK26Topology</param>
-			<param name="sizeI"> elementResI </param>
-			<param name="sizeJ"> elementResJ </param>
-			<param name="sizeK"> elementResK </param>
-		</struct>
-		<struct name="elementLayout">
-			<param name="Type">ParallelPipedHexaEL</param>
-			<param name="Topology">elementTopology</param>
-			<param name="Geometry">geometry</param>
-		</struct>
-		
-		<struct name="cornerNodeTopology">
-      			<param name="Type">IJK6Topology</param>
-			<param name="sizeI">elementResI</param>
-			<param name="sizeJ">elementResJ</param>
-			<param name="sizeK">elementResK</param>
-			<param name="sizeShift">1</param>
-		</struct>
-		<struct name="cornerNodeLayout">
-			<param name="Type">CornerNL</param>
-			<param name="ElementLayout">elementLayout</param>
-			<param name="Topology">cornerNodeTopology</param>
-    		</struct>
-		<struct name="meshLayout-linear">
-			<param name="Type">MeshLayout</param>
-			<param name="ElementLayout">elementLayout</param>
-			<param name="NodeLayout">cornerNodeLayout</param>
-			<param name="MeshDecomp">decomp-linear</param>
-    		</struct>
-		<struct name="mesh-linear">
-			<param name="Type">Mesh</param>
-			<param name="MeshLayout">meshLayout-linear</param>
-			<param name="ElementSize">8</param>
-			<param name="NodeSize">0</param>
-		</struct>
-	 
 		<struct name="elementCellLayout">
 			<param name="Type">ElementCellLayout</param>
-			<param name="Mesh">mesh-linear</param>
+			<param name="Mesh">linearMesh</param>
 		</struct>
 		<struct name="particleLayout">
 			<param name="Type">SpaceFillerParticleLayout</param>



More information about the CIG-COMMITS mailing list