Skip to content

Commit 44a826d

Browse files
committed
Merge pull request #1 from alan-wu/master
Update
2 parents b40ce82 + 19ed784 commit 44a826d

File tree

8 files changed

+1665
-32
lines changed

8 files changed

+1665
-32
lines changed

CMakeLists.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ CMAKE_MINIMUM_REQUIRED( VERSION 2.6 )
4141

4242
# Set this nampspace to keep these options seperate from other project options
4343
SET( FIELDML_NAMESPACE_NAME FIELDML )
44+
PROJECT(fieldml)
4445

4546
MACRO( OPTION_WITH_DEFAULT OPTION_NAME OPTION_STRING OPTION_DEFAULT )
4647
IF( NOT DEFINED ${OPTION_NAME} )
@@ -102,9 +103,17 @@ ADD_SUBDIRECTORY( core )
102103
SET( LIBRARY_TARGET_NAME fieldml_io_api )
103104
SET( FIELDML_IO_API_LIBRARY_TARGET_NAME ${LIBRARY_TARGET_NAME} )
104105
ADD_SUBDIRECTORY( io )
105-
106+
GET_DIRECTORY_PROPERTY(HDF5_INCLUDE_DIRS DIRECTORY io DEFINITION HDF5_INCLUDE_DIRS)
107+
GET_DIRECTORY_PROPERTY(HDF5_MINE_LIBRARIES DIRECTORY io DEFINITION HDF5_MINE_LIBRARIES)
108+
GET_DIRECTORY_PROPERTY(MPI_LIBRARIES DIRECTORY io DEFINITION MPI_MINE_LIBRARIES)
109+
GET_DIRECTORY_PROPERTY(MPI_INCLUDE_DIRS DIRECTORY io DEFINITION MPI_INCLUDE_DIRS)
110+
GET_DIRECTORY_PROPERTY(HDF5_USE_MPI DIRECTORY io DEFINITION HDF5_USE_MPI)
106111
ADD_SUBDIRECTORY( test )
107112

113+
foreach(arg ${MPI_LIBRARIES})
114+
set(MPI_MINE_LIBRARIES "${MPI_MINE_LIBRARIES} ${arg}")
115+
endforeach(arg ${MPI_LIBRARIES})
116+
108117
IF( ${FIELDML_NAMESPACE_NAME}_INSTALL_CONFIG )
109118
SET( LIBRARY_CONFIG_FILE ${CMAKE_CURRENT_BINARY_DIR}/fieldml-config.cmake )
110119
SET( CONFIG_FILE_CONTENTS
@@ -113,8 +122,8 @@ IF( ${FIELDML_NAMESPACE_NAME}_INSTALL_CONFIG )
113122
"\nGET_FILENAME_COMPONENT( SELF_DIR \"\${CMAKE_CURRENT_LIST_FILE}\" PATH )"
114123
"\nINCLUDE( \${SELF_DIR}/fieldml-targets.cmake )"
115124
"\nGET_FILENAME_COMPONENT( ${FIELDML_NAMESPACE_NAME}_INCLUDE_DIRS \"\${SELF_DIR}/../../include\" ABSOLUTE )"
116-
"\nSET( ${FIELDML_NAMESPACE_NAME}_INCLUDE_DIRS \"\${${FIELDML_NAMESPACE_NAME}_INCLUDE_DIRS}\" \"${LIBXML2_INCLUDE_DIR}\" \"${HDF5_INCLUDE_DIR}\" )"
117-
"\nSET( ${FIELDML_NAMESPACE_NAME}_LIBRARIES ${FIELDML_API_LIBRARY_TARGET_NAME} ${FIELDML_IO_API_LIBRARY_TARGET_NAME} )"
125+
"\nSET( ${FIELDML_NAMESPACE_NAME}_INCLUDE_DIRS \"\${${FIELDML_NAMESPACE_NAME}_INCLUDE_DIRS}\" \"${LIBXML2_INCLUDE_DIR}\" \"${HDF5_INCLUDE_DIRS}\" \"${MPI_INCLUDE_DIRS}\" )"
126+
"\nSET( ${FIELDML_NAMESPACE_NAME}_LIBRARIES ${FIELDML_API_LIBRARY_TARGET_NAME} ${FIELDML_IO_API_LIBRARY_TARGET_NAME} ${HDF5_MINE_LIBRARIES} ${MPI_MINE_LIBRARIES})"
118127
"\nSET( ${FIELDML_NAMESPACE_NAME}_DEFINITIONS )"
119128
"\nSET( ${FIELDML_NAMESPACE_NAME}_FOUND TRUE )"
120129
"\nENDIF( NOT DEFINED _${FIELDML_NAMESPACE_NAME}_CONFIG_CMAKE )"

core/src/FieldmlDOM.cpp

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ class DataResourceParser :
533533
int err = textStringParser.parseNode( stringDescription, state );
534534
if( err != 0 )
535535
{
536-
xmlFree(const_cast<char *>(name));
536+
xmlFree(const_cast<char *>(name));
537537
return err;
538538
}
539539
}
@@ -549,10 +549,10 @@ class DataResourceParser :
549549
int err = processChildren( node, ARRAY_DATA_SOURCE_TAG, state, arrayDataSourceParser );
550550
if( err != 0 )
551551
{
552-
xmlFree(const_cast<char *>(name));
552+
xmlFree(const_cast<char *>(name));
553553
return err;
554554
}
555-
xmlFree(const_cast<char *>(name));
555+
xmlFree(const_cast<char *>(name));
556556
return 0;
557557
}
558558
};
@@ -1362,7 +1362,6 @@ class ParameterEvaluatorParser :
13621362
}
13631363
};
13641364

1365-
13661365
static int parseObjectNode( xmlNodePtr objectNode, ParseState &state )
13671366
{
13681367
if( FmlUtil::contains( state.parseStack, objectNode ) )
@@ -1372,7 +1371,7 @@ static int parseObjectNode( xmlNodePtr objectNode, ParseState &state )
13721371
xmlFree(const_cast<char *>(name));
13731372
return 1;
13741373
}
1375-
1374+
13761375
state.parseStack.push_back( objectNode );
13771376

13781377
int err = 0;
@@ -1424,16 +1423,44 @@ static int parseObjectNode( xmlNodePtr objectNode, ParseState &state )
14241423
{
14251424
err = ParameterEvaluatorParser().parseNode( objectNode, state );
14261425
}
1427-
1426+
14281427
state.parseStack.pop_back();
1429-
1428+
14301429
vector<xmlNodePtr>::iterator loc = find( state.unparsedNodes.begin(), state.unparsedNodes.end(), objectNode );
14311430

14321431
state.unparsedNodes.erase( loc );
14331432

14341433
return err;
14351434
}
14361435

1436+
// Work around of the current bug that data resource need to be defined beofre parameter evaluator uses it
1437+
static int parseDataNode( xmlNodePtr objectNode, ParseState &state )
1438+
{
1439+
if( FmlUtil::contains( state.parseStack, objectNode ) )
1440+
{
1441+
const char *name = getStringAttribute( objectNode, NAME_ATTRIB );
1442+
state.errorHandler->logError( "Recursive object definition", name );
1443+
xmlFree(const_cast<char *>(name));
1444+
return 1;
1445+
}
1446+
1447+
int err = 0;
1448+
if( checkName( objectNode, DATA_RESOURCE_TAG ) )
1449+
{
1450+
state.parseStack.push_back( objectNode );
1451+
1452+
err = DataResourceParser().parseNode( objectNode, state );
1453+
1454+
state.parseStack.pop_back();
1455+
1456+
vector<xmlNodePtr>::iterator loc = find( state.unparsedNodes.begin(), state.unparsedNodes.end(), objectNode );
1457+
1458+
state.unparsedNodes.erase( loc );
1459+
1460+
}
1461+
1462+
return err;
1463+
}
14371464

14381465
static int parseDoc( xmlDocPtr doc, ParseState &state )
14391466
{
@@ -1461,6 +1488,15 @@ static int parseDoc( xmlDocPtr doc, ParseState &state )
14611488
cur = xmlNextElementSibling( cur );
14621489
}
14631490

1491+
// To be improved: Required the following "for" loop to loop through all the top level elements and
1492+
// parse the data resources before anything using them.
1493+
for( vector<xmlNodePtr>::iterator j = state.unparsedNodes.begin(); j != state.unparsedNodes.end();)
1494+
{
1495+
xmlNodePtr temp_node = *j;
1496+
j++;
1497+
parseDataNode( temp_node, state );
1498+
}
1499+
14641500
while( state.unparsedNodes.size() != 0 )
14651501
{
14661502
parseObjectNode( state.unparsedNodes.back(), state );

core/src/fieldml_api.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ typedef int32_t FmlEnsembleValue; ///< An integer-valued ensemble
101101
#define FML_INVALID_HANDLE -1 ///< The valid used to indicate a missing object or failed object instantiation.
102102

103103
#define FML_MAJOR_VERSION 0
104-
#define FML_MINOR_VERSION 4
104+
#define FML_MINOR_VERSION 5
105105
#define FML_DOT_VERSION 0
106106

107107
#define FML_ERR_NO_ERROR 0 ///< The API call was successful.
@@ -339,7 +339,7 @@ FmlErrorNumber Fieldml_FreeString( char * string );
339339
* containing the string. This must be freed either by the caller (via the C standard library's free() call),
340340
* or by passing the value to Fieldml_FreeString()
341341
*
342-
* \see Fieldml_FreeString
342+
* \see Fieldml_FreeString
343343
*/
344344
char * Fieldml_GetRegionName( FmlSessionHandle handle );
345345

@@ -472,7 +472,7 @@ FmlObjectHandle Fieldml_GetObjectByDeclaredName( FmlSessionHandle handle, const
472472
/**
473473
* \return 1 if the given object is local, 0 if not, or -1 on error. isDeclaredOnly is true, only objects that have been declared locally will return true.
474474
*
475-
* \note Imported objects are not considered local by this function.
475+
* \note Imported objects are not considered local by this function.
476476
*/
477477
FmlBoolean Fieldml_IsObjectLocal( FmlSessionHandle handle, FmlObjectHandle objectHandle, FmlBoolean isDeclaredOnly );
478478

io/CMakeLists.txt

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,23 +38,21 @@
3838
PROJECT( io )
3939

4040
OPTION_WITH_DEFAULT( FIELDML_USE_HDF5 "Do you want to use netgen?" FALSE )
41-
41+
SET( HDF5_USE_MPI FALSE )
42+
SET( HDF5_INCLUDE_DIRS "" )
43+
SET( HDF5_MINE_LIBRARIES "" )
44+
SET( MPI_INCLUDE_DIRS "" )
45+
SET( MPI_MINE_LIBRARIES "" )
46+
4247
IF( FIELDML_USE_HDF5 )
43-
FIND_PATH(HDF5_INCLUDE_DIR hdf5.h
44-
NO_DEFAULT_PATH
45-
)
46-
FIND_LIBRARY(HDF5_LIBRARY NAMES hdf5
47-
NO_DEFAULT_PATH
48-
)
49-
MARK_AS_ADVANCED(HDF5_INCLUDE_DIR)
50-
MARK_AS_ADVANCED(HDF5_LIBRARY)
48+
FIND_PACKAGE( HDF5 REQUIRED C )
49+
SET( HDF5_USE_MPI ${HDF5_ENABLE_PARALLEL} )
50+
IF ( HDF5_USE_MPI )
51+
FIND_PACKAGE( MPI REQUIRED )
52+
ENDIF (HDF5_USE_MPI)
5153
ADD_DEFINITIONS( -DFIELDML_HDF5_ARRAY )
52-
SET( HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR} )
53-
SET( HDF5_LIBRARIES ${HDF5_LIBRARY} )
54-
SET( CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${IELDML_HDF5_ARRAY_DEFINE} )
55-
SET( CMAKE ${CMAKE_C_FLAGS} ${IELDML_HDF5_ARRAY_DEFINE} )
56-
SET( DEPENDENT_LIBS ${DEPENDENT_LIBS} ${HDF5_LIBRARIES} )
57-
SET( INCLUDE_DIRS ${INCLUDE_DIRS} ${HDF5_INCLUDE_DIRS} )
54+
SET( CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${FIELDML_HDF5_ARRAY_DEFINE} )
55+
SET( CMAKE ${CMAKE_C_FLAGS} ${FIELDML_HDF5_ARRAY_DEFINE} )
5856
ENDIF( FIELDML_USE_HDF5 )
5957

6058
IF( ${FIELDML_NAMESPACE_NAME}_BUILD_STATIC_LIB )
@@ -68,6 +66,30 @@ ELSE( ${FIELDML_NAMESPACE_NAME}_BUILD_STATIC_LIB )
6866
ENDIF( WIN32 )
6967
ENDIF( ${FIELDML_NAMESPACE_NAME}_BUILD_STATIC_LIB )
7068

69+
IF( FIELDML_USE_HDF5 )
70+
IF( HDF5_FOUND )
71+
SET( HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR} )
72+
SET( HDF5_MINE_LIBRARIES ${HDF5_LIBRARIES} )
73+
SET( DEPENDENT_LIBS ${DEPENDENT_LIBS} ${HDF5_MINE_LIBRARIES} )
74+
SET( INCLUDE_DIRS ${INCLUDE_DIRS} ${HDF5_INCLUDE_DIRS} )
75+
IF( HDF5_USE_MPI )
76+
IF( MPI_FOUND )
77+
SET( MPI_INCLUDE_DIRS ${MPI_INCLUDE_PATH} )
78+
SET( MPI_MINE_LIBRARIES ${MPI_LIBRARIES} )
79+
SET( DEPENDENT_LIBS ${DEPENDENT_LIBS} ${MPI_MINE_LIBRARIES} )
80+
SET( INCLUDE_DIRS ${INCLUDE_DIRS} ${MPI_INCLUDE_DIRS} )
81+
ELSE( MPI_FOUND )
82+
MESSAGE( FATAL_ERROR "MPI was requested but not found." )
83+
ENDIF( MPI_FOUND )
84+
ADD_DEFINITIONS( -DFIELDML_PHDF5_ARRAY )
85+
SET( CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${FIELDML_PHDF5_ARRAY_DEFINE} )
86+
SET( CMAKE ${CMAKE_C_FLAGS} ${FIELDML_PHDF5_ARRAY_DEFINE} )
87+
ENDIF( HDF5_USE_MPI )
88+
ELSE( HDF5_FOUND )
89+
MESSAGE( FATAL_ERROR "HDF5 was requested but not found." )
90+
ENDIF( HDF5_FOUND )
91+
ENDIF( FIELDML_USE_HDF5 )
92+
7193
SET( CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX} )
7294
FIND_PACKAGE( LibXml2 REQUIRED )
7395

@@ -112,11 +134,11 @@ ENDIF( "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" )
112134
IF( WIN32 )
113135
ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
114136
ENDIF( WIN32 )
115-
INCLUDE_DIRECTORIES( ${FIELDML_API_PUBLIC_HDRS} ${HDF5_INCLUDE_DIR} )
137+
INCLUDE_DIRECTORIES( ${FIELDML_API_PUBLIC_HDRS} ${HDF5_INCLUDE_DIRS} ${MPI_INCLUDE_DIRS} )
116138

117139
# Create library
118140
ADD_LIBRARY( ${LIBRARY_TARGET_NAME} ${LIBRARY_BUILD_TYPE} ${FIELDML_IO_API_SRCS} ${FIELDML_IO_API_PUBLIC_HDRS} ${FIELDML_IO_API_PRIVATE_HDRS} ${LIBRARY_WIN32_XTRAS} )
119-
TARGET_LINK_LIBRARIES( ${LIBRARY_TARGET_NAME} ${HDF5_LIBRARY} )
141+
TARGET_LINK_LIBRARIES( ${LIBRARY_TARGET_NAME} ${HDF5_MINE_LIBRARIES} ${MPI_MINE_LIBRARIES} )
120142

121143
# Install targets
122144
IF( WIN32 AND NOT ${UPPERCASE_LIBRARY_TARGET_NAME}_BUILD_STATIC_LIB )

io/src/Hdf5ArrayDataReader.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Hdf5ArrayDataReader *Hdf5ArrayDataReader::create( FieldmlIoContext *context, con
8080
hid_t accessProperties = H5Pcreate( H5P_FILE_ACCESS );
8181
if( H5Pset_fapl_mpio( accessProperties, MPI_COMM_WORLD, MPI_INFO_NULL ) >= 0 )
8282
{
83-
Hdf5ArrayDataReader *hdf5reader = new Hdf5ArrayDataReader( _session, root, source, accessProperties );
83+
Hdf5ArrayDataReader *hdf5reader = new Hdf5ArrayDataReader( context, root, source, accessProperties );
8484
if( !hdf5reader->ok )
8585
{
8686
delete hdf5reader;

test/CMakeLists.txt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ FIND_PACKAGE( ZLIB QUIET )
4141
SET( TEST_EXE_SRCS src/fieldml_test.cpp )
4242
SET( TEST_EXE_TARGET_NAME fieldml_test )
4343

44+
IF ( HDF5_USE_MPI )
45+
SET( TEST_PHDF5_EXE_SRCS src/fieldml_phdf5_test.cpp )
46+
SET( TEST_PHDF5_EXE_TARGET_NAME fieldml_phdf5_test )
47+
ENDIF (HDF5_USE_MPI)
48+
4449
SET( SIMPLE_TEST_SRCS src/SimpleTest.cpp )
4550
SET( SIMPLE_TEST_HDRS src )
4651

@@ -53,6 +58,7 @@ SET( TEST_CREATE_EXE_TARGET_NAME fieldml_test_create )
5358
SET( FIELDML_API_PUBLIC_HDRS ../core/src )
5459
SET( FIELDML_IO_API_PUBLIC_HDRS ../io/src )
5560
SET( INPUT_RESOURCES input/I16BE.h5 )
61+
SET( OUTPUT_RESOURCES output/visualisation.cmiss )
5662

5763
IF( ${UPPERCASE_LIBRARY_TARGET_NAME}_BUILD_TEST )
5864
OPTION_WITH_DEFAULT( BUILD_TEST_WITH_SZLIB "Build test application with SZLIB" FALSE )
@@ -67,9 +73,12 @@ IF( ${UPPERCASE_LIBRARY_TARGET_NAME}_BUILD_TEST )
6773
SET( SZIP_LIBRARY ${SZIP_LIBRARY} )
6874
ENDIF( BUILD_TEST_WITH_SZLIB )
6975

70-
INCLUDE_DIRECTORIES( ${FIELDML_API_PUBLIC_HDRS} ${FIELDML_IO_API_PUBLIC_HDRS} ${SIMPLE_TEST_HDRS})
76+
INCLUDE_DIRECTORIES( ${FIELDML_API_PUBLIC_HDRS} ${FIELDML_IO_API_PUBLIC_HDRS} ${SIMPLE_TEST_HDRS} ${MPI_INCLUDE_DIRS} )
7177

7278
ADD_EXECUTABLE( ${TEST_EXE_TARGET_NAME} ${TEST_EXE_SRCS} )
79+
IF ( HDF5_USE_MPI )
80+
ADD_EXECUTABLE( ${TEST_PHDF5_EXE_TARGET_NAME} ${TEST_PHDF5_EXE_SRCS} )
81+
ENDIF ( HDF5_USE_MPI )
7382
IF( WIN32 )
7483
ADD_EXECUTABLE( ${TEST_ARRAY_READING_EXE_TARGET_NAME} ${SIMPLE_TEST_SRCS} ${TEST_ARRAY_READING_EXE_SRCS} )
7584
ADD_EXECUTABLE( ${TEST_CREATE_EXE_TARGET_NAME} ${SIMPLE_TEST_SRCS} ${TEST_CREATE_EXE_SRCS} )
@@ -78,19 +87,28 @@ IF( ${UPPERCASE_LIBRARY_TARGET_NAME}_BUILD_TEST )
7887
ADD_EXECUTABLE( ${TEST_CREATE_EXE_TARGET_NAME} ${TEST_CREATE_EXE_SRCS} ${SIMPLE_TEST_SRCS} )
7988
ENDIF( WIN32 )
8089
TARGET_LINK_LIBRARIES( ${TEST_EXE_TARGET_NAME} ${FIELDML_API_LIBRARY_TARGET_NAME} ${FIELDML_IO_API_LIBRARY_TARGET_NAME} ${LIBXML2_LIBRARIES} ${ZLIB_LIBRARIES} ${HDF5_LIBRARY} ${SZIP_LIBRARY} )
90+
IF ( HDF5_USE_MPI )
91+
TARGET_LINK_LIBRARIES( ${TEST_PHDF5_EXE_TARGET_NAME} ${FIELDML_API_LIBRARY_TARGET_NAME} ${FIELDML_IO_API_LIBRARY_TARGET_NAME} ${LIBXML2_LIBRARIES} ${ZLIB_LIBRARIES} ${HDF5_LIBRARY} ${SZIP_LIBRARY} )
92+
ENDIF ( HDF5_USE_MPI )
8193
TARGET_LINK_LIBRARIES( ${TEST_ARRAY_READING_EXE_TARGET_NAME} ${FIELDML_API_LIBRARY_TARGET_NAME} ${FIELDML_IO_API_LIBRARY_TARGET_NAME} ${LIBXML2_LIBRARIES} ${ZLIB_LIBRARIES} ${HDF5_LIBRARY} ${SZIP_LIBRARY} )
8294
TARGET_LINK_LIBRARIES( ${TEST_CREATE_EXE_TARGET_NAME} ${FIELDML_API_LIBRARY_TARGET_NAME} ${FIELDML_IO_API_LIBRARY_TARGET_NAME} ${LIBXML2_LIBRARIES} ${ZLIB_LIBRARIES} ${HDF5_LIBRARY} ${SZIP_LIBRARY} )
8395

8496
INSTALL( TARGETS ${TEST_EXE_TARGET_NAME} EXPORT fieldml-targets
8597
${LIBRARY_INSTALL_TYPE}
8698
DESTINATION test )
99+
IF ( HDF5_USE_MPI )
100+
INSTALL( TARGETS ${TEST_PHDF5_EXE_TARGET_NAME} EXPORT fieldml-targets
101+
${LIBRARY_INSTALL_TYPE}
102+
DESTINATION test )
103+
ENDIF ( HDF5_USE_MPI )
87104
INSTALL( TARGETS ${TEST_ARRAY_READING_EXE_TARGET_NAME} EXPORT fieldml-targets ${LIBRARY_INSTALL_TYPE}
88105
DESTINATION test )
89106
INSTALL( TARGETS ${TEST_CREATE_EXE_TARGET_NAME} EXPORT fieldml-targets ${LIBRARY_INSTALL_TYPE}
90107
DESTINATION test )
91108

92109

93110
INSTALL( FILES ${INPUT_RESOURCES} DESTINATION test/input )
111+
INSTALL( FILES ${OUTPUT_RESOURCES} DESTINATION test/output )
94112

95113

96114
ENDIF( ${UPPERCASE_LIBRARY_TARGET_NAME}_BUILD_TEST )

test/output/visualisation.cmiss

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
gfx create region activation;
2+
gfx read region ../phdf5_test.xml region activation;
3+
gfx define face egroup activation;
4+
5+
# Create some graphics
6+
7+
8+
gfx modify g_element activation lines coordinate cube.geometric.parameters select_on invisible material default selected_material default_selected;
9+
gfx modify g_element activation surfaces coordinate cube.geometric.parameters select_on invisible material default data cube.activationTime.source spectrum default selected_material default_selected render_shaded;
10+
11+
gfx timekeeper default maximum 40 speed 5
12+
gfx define field activation/time time_value
13+
gfx define field activation/propagation add fields time cube.activationTime.source scale_factors 1 -1;
14+
gfx modify g_element /activation/ iso_surfaces coordinate cube.geometric.parameters tessellation default LOCAL iso_scalar propagation iso_values 0 use_elements select_on material default data cube.activationTime.source spectrum default selected_material default_selected render_shaded;
15+
gfx modify spectrum default clear overwrite_colour;
16+
gfx modify spectrum default linear reverse range -4.44089e-16 40 extend_above extend_below rainbow colour_range 0 1 component 1;
17+
18+
19+
gfx create window 1;
20+
gfx modify window 1 view parallel eye_point 107.251 60.8674 123.396 interest_point 20 20 20 up_vector -0.729654 -0.137133 0.669925 view_angle 40 near_clipping_plane 1.41328 far_clipping_plane 505.059 relative_viewport ndc_placement -1 1 2 2 viewport_coordinates 0 0 1 1;
21+
gfx timekeeper default play;

0 commit comments

Comments
 (0)