00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00039 #ifndef __vtkExodusIIReader_h
00040 #define __vtkExodusIIReader_h
00041
00042 #include "vtkMultiBlockDataSetAlgorithm.h"
00043
00044 class vtkDataArray;
00045 class vtkDataSet;
00046 class vtkExodusIICache;
00047 class vtkExodusIIReaderPrivate;
00048 class vtkExodusModel;
00049 class vtkFloatArray;
00050 class vtkGraph;
00051 class vtkIntArray;
00052 class vtkPoints;
00053 class vtkUnstructuredGrid;
00054
00055 class VTK_HYBRID_EXPORT vtkExodusIIReader : public vtkMultiBlockDataSetAlgorithm
00056 {
00057 public:
00058 static vtkExodusIIReader *New();
00059 vtkTypeRevisionMacro(vtkExodusIIReader,vtkMultiBlockDataSetAlgorithm);
00060 void PrintSelf(ostream& os, vtkIndent indent);
00061
00063 int CanReadFile(const char* fname);
00064
00065
00066
00069 virtual unsigned long GetMTime();
00070
00074 virtual unsigned long GetMetadataMTime();
00075
00077
00078 virtual void SetFileName( const char* fname );
00079 vtkGetStringMacro(FileName);
00081
00083
00084 virtual void SetXMLFileName( const char* fname );
00085 vtkGetStringMacro(XMLFileName);
00087
00089
00090 vtkSetMacro(TimeStep, int);
00091 vtkGetMacro(TimeStep, int);
00093
00095
00097 void SetModeShape(int val)
00098 {
00099 this->SetTimeStep(val-1);
00100 }
00102
00104
00105 vtkGetVector2Macro(TimeStepRange,int);
00106 vtkSetVector2Macro(TimeStepRange,int);
00108
00110
00119 virtual void SetGenerateObjectIdCellArray( int g );
00120 int GetGenerateObjectIdCellArray();
00121 vtkBooleanMacro(GenerateObjectIdCellArray, int);
00122 static const char *GetObjectIdArrayName() { return "ObjectId"; }
00124
00125 virtual void SetGenerateGlobalElementIdArray( int g );
00126 int GetGenerateGlobalElementIdArray();
00127 vtkBooleanMacro(GenerateGlobalElementIdArray, int);
00128
00129 virtual void SetGenerateGlobalNodeIdArray( int g );
00130 int GetGenerateGlobalNodeIdArray();
00131 vtkBooleanMacro(GenerateGlobalNodeIdArray, int);
00132
00133 virtual void SetGenerateImplicitElementIdArray( int g );
00134 int GetGenerateImplicitElementIdArray();
00135 vtkBooleanMacro(GenerateImplicitElementIdArray, int);
00136
00137 virtual void SetGenerateImplicitNodeIdArray( int g );
00138 int GetGenerateImplicitNodeIdArray();
00139 vtkBooleanMacro(GenerateImplicitNodeIdArray, int);
00140
00141 virtual void SetGenerateFileIdArray( int f );
00142 int GetGenerateFileIdArray();
00143 vtkBooleanMacro(GenerateFileIdArray, int);
00144 virtual void SetFileId( int f );
00145 int GetFileId();
00146
00148
00153 enum {
00154 SEARCH_TYPE_ELEMENT=0,
00155 SEARCH_TYPE_NODE,
00156 SEARCH_TYPE_ELEMENT_THEN_NODE,
00157 SEARCH_TYPE_NODE_THEN_ELEMENT,
00158 ID_NOT_FOUND=-234121312
00159 };
00160
00161 enum ObjectType {
00162
00163 EDGE_BLOCK = 6,
00164 FACE_BLOCK = 8,
00165 ELEM_BLOCK = 1,
00166 NODE_SET = 2,
00167 EDGE_SET = 7,
00168 FACE_SET = 9,
00169 SIDE_SET = 3,
00170 ELEM_SET = 10,
00171 NODE_MAP = 5,
00172 EDGE_MAP = 11,
00173 FACE_MAP = 12,
00174 ELEM_MAP = 4,
00175 GLOBAL = 13,
00176 NODAL = 14,
00177
00178 ASSEMBLY = 60,
00179 PART = 61,
00180 MATERIAL = 62,
00181 HIERARCHY = 63,
00182
00183 QA_RECORDS = 103,
00184 INFO_RECORDS = 104,
00185 GLOBAL_TEMPORAL = 102,
00186 NODAL_TEMPORAL = 101,
00187 ELEM_BLOCK_TEMPORAL = 100,
00188 GLOBAL_CONN = 99,
00189 ELEM_BLOCK_ELEM_CONN = 98,
00190 ELEM_BLOCK_FACE_CONN = 97,
00191 ELEM_BLOCK_EDGE_CONN = 96,
00192 FACE_BLOCK_CONN = 95,
00193 EDGE_BLOCK_CONN = 94,
00194 ELEM_SET_CONN = 93,
00195 SIDE_SET_CONN = 92,
00196 FACE_SET_CONN = 91,
00197 EDGE_SET_CONN = 90,
00198 NODE_SET_CONN = 89,
00199 NODAL_COORDS = 88,
00200 OBJECT_ID = 87,
00201 IMPLICIT_ELEMENT_ID = 108,
00202 IMPLICIT_NODE_ID = 107,
00203 GLOBAL_ELEMENT_ID = 86,
00204 GLOBAL_NODE_ID = 85,
00205 ELEMENT_ID = 84,
00206 NODE_ID = 83,
00207 NODAL_SQUEEZEMAP = 82,
00208 ELEM_BLOCK_ATTRIB = 81,
00209 FACE_BLOCK_ATTRIB = 80,
00210 EDGE_BLOCK_ATTRIB = 79,
00211 FACE_ID = 105,
00212 EDGE_ID = 106
00213 };
00215 enum DecorationType {
00216 NONE = 0,
00217 GLYPHS,
00218 CORNER_AVERAGED
00219 };
00221
00222 static const char* GetGlobalElementIdArrayName() { return "GlobalElementId"; }
00223 static const char* GetPedigreeElementIdArrayName() { return "PedigreeElementId"; }
00224 static int GetGlobalElementID( vtkDataSet *data, int localID );
00225 static int GetGlobalElementID ( vtkDataSet *data, int localID,
00226 int searchType );
00227 static const char* GetImplicitElementIdArrayName() { return "ImplicitElementId"; }
00228
00229 static const char* GetGlobalFaceIdArrayName() { return "GlobalFaceId"; }
00230 static const char* GetPedigreeFaceIdArrayName() { return "PedigreeFaceId"; }
00231 static int GetGlobalFaceID( vtkDataSet *data, int localID );
00232 static int GetGlobalFaceID ( vtkDataSet *data, int localID,
00233 int searchType );
00234 static const char* GetImplicitFaceIdArrayName() { return "ImplicitFaceId"; }
00235
00236 static const char* GetGlobalEdgeIdArrayName() { return "GlobalEdgeId"; }
00237 static const char* GetPedigreeEdgeIdArrayName() { return "PedigreeEdgeId"; }
00238 static int GetGlobalEdgeID( vtkDataSet *data, int localID );
00239 static int GetGlobalEdgeID ( vtkDataSet *data, int localID,
00240 int searchType );
00241 static const char* GetImplicitEdgeIdArrayName() { return "ImplicitEdgeId"; }
00242
00244
00248 static const char* GetGlobalNodeIdArrayName() { return "GlobalNodeId"; }
00249 static const char* GetPedigreeNodeIdArrayName() { return "PedigreeNodeId"; }
00250 static int GetGlobalNodeID( vtkDataSet *data, int localID );
00251 static int GetGlobalNodeID( vtkDataSet *data, int localID,
00252 int searchType );
00253 static const char* GetImplicitNodeIdArrayName() { return "ImplicitNodeId"; }
00255
00257
00261 virtual void SetApplyDisplacements( int d );
00262 int GetApplyDisplacements();
00263 vtkBooleanMacro(ApplyDisplacements, int);
00264 virtual void SetDisplacementMagnitude( float s );
00265 float GetDisplacementMagnitude();
00267
00269
00272 virtual void SetHasModeShapes( int ms );
00273 int GetHasModeShapes();
00274 vtkBooleanMacro(HasModeShapes,int);
00276
00278
00284 virtual void SetModeShapeTime( double phase );
00285 double GetModeShapeTime();
00287
00289
00294 virtual void SetAnimateModeShapes(int flag);
00295 int GetAnimateModeShapes();
00296 vtkBooleanMacro(AnimateModeShapes, int);
00298
00300
00301 virtual void SetEdgeFieldDecorations( int d );
00302 int GetEdgeFieldDecorations();
00303 void EdgeFieldDecorationsNone() { this->SetEdgeFieldDecorations( NONE ); }
00304 void EdgeFieldDecorationsGlyphs() { this->SetEdgeFieldDecorations( GLYPHS ); }
00305 void EdgeFieldDecorationsCornerAveraged() { this->SetEdgeFieldDecorations( CORNER_AVERAGED ); }
00307
00309
00310 virtual void SetFaceFieldDecorations( int d );
00311 int GetFaceFieldDecorations();
00312 void FaceFieldDecorationsNone() { this->SetFaceFieldDecorations( NONE ); }
00313 void FaceFieldDecorationsGlyphs() { this->SetFaceFieldDecorations( GLYPHS ); }
00314 void FaceFieldDecorationsCornerAveraged() { this->SetFaceFieldDecorations( CORNER_AVERAGED ); }
00316
00318
00319 const char* GetTitle();
00320 int GetDimensionality();
00321 int GetNumberOfTimeSteps();
00323
00324 int GetNumberOfNodesInFile();
00325 int GetNumberOfEdgesInFile();
00326 int GetNumberOfFacesInFile();
00327 int GetNumberOfElementsInFile();
00328
00329 int GetObjectTypeFromName( const char* name );
00330 const char* GetObjectTypeName( int );
00331
00332 int GetNumberOfNodes();
00333 int GetNumberOfObjects( int objectType );
00334 int GetNumberOfEntriesInObject( int objectType, int objectIndex );
00335 int GetObjectId( int objectType, int objectIndex );
00336 const char* GetObjectName( int objectType, int objectIndex );
00337 int GetObjectIndex( int objectType, const char* objectName );
00338 int GetObjectIndex( int objectType, int id );
00339 int GetObjectStatus( int objectType, int objectIndex );
00340 int GetObjectStatus( int objectType, const char* objectName )
00341 { return this->GetObjectStatus( objectType, this->GetObjectIndex( objectType, objectName ) ); }
00342 void SetObjectStatus( int objectType, int objectIndex, int status );
00343 void SetObjectStatus( int objectType, const char* objectName, int status );
00344
00346
00351 int GetNumberOfObjectArrays( int objectType );
00352 const char* GetObjectArrayName( int objectType, int arrayIndex );
00353 int GetObjectArrayIndex( int objectType, const char* arrayName );
00354 int GetNumberOfObjectArrayComponents( int objectType, int arrayIndex );
00355 int GetObjectArrayStatus( int objectType, int arrayIndex );
00356 int GetObjectArrayStatus( int objectType, const char* arrayName )
00357 { return this->GetObjectArrayStatus( objectType, this->GetObjectArrayIndex( objectType, arrayName ) ); }
00358 void SetObjectArrayStatus( int objectType, int arrayIndex, int status );
00359 void SetObjectArrayStatus( int objectType, const char* arrayName, int status );
00361
00363
00368 int GetNumberOfObjectAttributes( int objectType, int objectIndex );
00369 const char* GetObjectAttributeName( int objectType, int objectIndex, int attribIndex );
00370 int GetObjectAttributeIndex( int objectType, int objectIndex, const char* attribName );
00371 int GetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex );
00372 int GetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName )
00373 { return this->GetObjectAttributeStatus( objectType, objectIndex,
00374 this->GetObjectAttributeIndex( objectType, objectIndex, attribName ) ); }
00375 void SetObjectAttributeStatus( int objectType, int objectIndex, int attribIndex, int status );
00376 void SetObjectAttributeStatus( int objectType, int objectIndex, const char* attribName, int status )
00377 { this->SetObjectAttributeStatus( objectType, objectIndex,
00378 this->GetObjectAttributeIndex( objectType, objectIndex, attribName ), status ); }
00380
00381 virtual vtkIdType GetTotalNumberOfNodes();
00382 virtual vtkIdType GetTotalNumberOfEdges();
00383 virtual vtkIdType GetTotalNumberOfFaces();
00384 virtual vtkIdType GetTotalNumberOfElements();
00385
00387
00391 int GetNumberOfPartArrays();
00392 const char* GetPartArrayName(int arrayIdx);
00393 int GetPartArrayID( const char *name );
00394 const char* GetPartBlockInfo(int arrayIdx);
00395 void SetPartArrayStatus(int index, int flag);
00396 void SetPartArrayStatus(const char*, int flag);
00397 int GetPartArrayStatus(int index);
00398 int GetPartArrayStatus(const char*);
00400
00401
00403
00407 int GetNumberOfMaterialArrays();
00408 const char* GetMaterialArrayName(int arrayIdx);
00409 int GetMaterialArrayID( const char *name );
00410 void SetMaterialArrayStatus(int index, int flag);
00411 void SetMaterialArrayStatus(const char*, int flag);
00412 int GetMaterialArrayStatus(int index);
00413 int GetMaterialArrayStatus(const char*);
00415
00417
00421 int GetNumberOfAssemblyArrays();
00422 const char* GetAssemblyArrayName(int arrayIdx);
00423 int GetAssemblyArrayID( const char *name );
00424 void SetAssemblyArrayStatus(int index, int flag);
00425 void SetAssemblyArrayStatus(const char*, int flag);
00426 int GetAssemblyArrayStatus(int index);
00427 int GetAssemblyArrayStatus(const char*);
00429
00431
00438 int GetNumberOfHierarchyArrays();
00439 const char* GetHierarchyArrayName(int arrayIdx);
00440 void SetHierarchyArrayStatus(int index, int flag);
00441 void SetHierarchyArrayStatus(const char*, int flag);
00442 int GetHierarchyArrayStatus(int index);
00443 int GetHierarchyArrayStatus(const char*);
00445
00446 vtkGetMacro(DisplayType,int);
00447 virtual void SetDisplayType(int type);
00448
00454 vtkBooleanMacro(ExodusModelMetadata, int);
00455 vtkSetMacro(ExodusModelMetadata, int);
00456 vtkGetMacro(ExodusModelMetadata, int);
00457
00459
00460 vtkGetObjectMacro(ExodusModel,vtkExodusModel);
00462
00470 vtkSetMacro(PackExodusModelOntoOutput, int);
00471 vtkGetMacro(PackExodusModelOntoOutput, int);
00472 vtkBooleanMacro(PackExodusModelOntoOutput, int);
00473
00475 int IsValidVariable( const char *type, const char *name );
00476
00478 int GetVariableID ( const char *type, const char *name );
00479
00480 void SetAllArrayStatus( int otype, int status );
00481
00482
00483
00484
00485
00486
00487 int GetTimeSeriesData( int ID, const char *vName, const char *vType,
00488 vtkFloatArray *result );
00489
00490
00491
00492 int GetNumberOfEdgeBlockArrays()
00493 { return this->GetNumberOfObjects(EDGE_BLOCK); }
00494 const char* GetEdgeBlockArrayName(int index)
00495 { return this->GetObjectName(EDGE_BLOCK, index); }
00496 int GetEdgeBlockArrayStatus(const char* name)
00497 { return this->GetObjectStatus(EDGE_BLOCK, name); }
00498 void SetEdgeBlockArrayStatus(const char* name, int flag)
00499 { this->SetObjectStatus(EDGE_BLOCK, name, flag); }
00500
00501 int GetNumberOfFaceBlockArrays()
00502 { return this->GetNumberOfObjects(FACE_BLOCK); }
00503 const char* GetFaceBlockArrayName(int index)
00504 { return this->GetObjectName(FACE_BLOCK, index); }
00505 int GetFaceBlockArrayStatus(const char* name)
00506 { return this->GetObjectStatus(FACE_BLOCK, name); }
00507 void SetFaceBlockArrayStatus(const char* name, int flag)
00508 { this->SetObjectStatus(FACE_BLOCK, name, flag); }
00509
00510 int GetNumberOfElementBlockArrays()
00511 { return this->GetNumberOfObjects(ELEM_BLOCK); }
00512 const char* GetElementBlockArrayName(int index)
00513 { return this->GetObjectName(ELEM_BLOCK, index); }
00514 int GetElementBlockArrayStatus(const char* name)
00515 { return this->GetObjectStatus(ELEM_BLOCK, name); }
00516 void SetElementBlockArrayStatus(const char* name, int flag)
00517 { this->SetObjectStatus(ELEM_BLOCK, name, flag); }
00518
00519 int GetNumberOfGlobalResultArrays()
00520 { return this->GetNumberOfObjectArrays(GLOBAL); }
00521 const char* GetGlobalResultArrayName(int index)
00522 { return this->GetObjectArrayName(GLOBAL, index); }
00523 int GetGlobalResultArrayStatus(const char* name)
00524 { return this->GetObjectArrayStatus(GLOBAL, name); }
00525 void SetGlobalResultArrayStatus(const char* name, int flag)
00526 { this->SetObjectArrayStatus(GLOBAL, name, flag); }
00527
00528 int GetNumberOfPointResultArrays()
00529 { return this->GetNumberOfObjectArrays(NODAL); }
00530 const char* GetPointResultArrayName(int index)
00531 { return this->GetObjectArrayName(NODAL, index); }
00532 int GetPointResultArrayStatus(const char* name)
00533 { return this->GetObjectArrayStatus(NODAL, name); }
00534 void SetPointResultArrayStatus(const char* name, int flag)
00535 { this->SetObjectArrayStatus(NODAL, name, flag); }
00536
00537 int GetNumberOfEdgeResultArrays()
00538 { return this->GetNumberOfObjectArrays(EDGE_BLOCK); }
00539 const char* GetEdgeResultArrayName(int index)
00540 { return this->GetObjectArrayName(EDGE_BLOCK, index); }
00541 int GetEdgeResultArrayStatus(const char* name)
00542 { return this->GetObjectArrayStatus(EDGE_BLOCK, name); }
00543 void SetEdgeResultArrayStatus(const char* name, int flag)
00544 { this->SetObjectArrayStatus(EDGE_BLOCK, name, flag); }
00545
00546 int GetNumberOfFaceResultArrays()
00547 { return this->GetNumberOfObjectArrays(FACE_BLOCK); }
00548 const char* GetFaceResultArrayName(int index)
00549 { return this->GetObjectArrayName(FACE_BLOCK, index); }
00550 int GetFaceResultArrayStatus(const char* name)
00551 { return this->GetObjectArrayStatus(FACE_BLOCK, name); }
00552 void SetFaceResultArrayStatus(const char* name, int flag)
00553 { this->SetObjectArrayStatus(FACE_BLOCK, name, flag); }
00554
00555 int GetNumberOfElementResultArrays()
00556 { return this->GetNumberOfObjectArrays(ELEM_BLOCK); }
00557 const char* GetElementResultArrayName(int index)
00558 { return this->GetObjectArrayName(ELEM_BLOCK, index); }
00559 int GetElementResultArrayStatus(const char* name)
00560 { return this->GetObjectArrayStatus(ELEM_BLOCK, name); }
00561 void SetElementResultArrayStatus(const char* name, int flag)
00562 { this->SetObjectArrayStatus(ELEM_BLOCK, name, flag); }
00563
00564
00565 int GetNumberOfNodeMapArrays()
00566 { return this->GetNumberOfObjects(NODE_MAP); }
00567 const char* GetNodeMapArrayName(int index)
00568 { return this->GetObjectName(NODE_MAP, index); }
00569 int GetNodeMapArrayStatus(const char* name)
00570 { return this->GetObjectStatus(NODE_MAP, name); }
00571 void SetNodeMapArrayStatus(const char* name, int flag)
00572 { this->SetObjectStatus(NODE_MAP, name, flag); }
00573
00574 int GetNumberOfEdgeMapArrays()
00575 { return this->GetNumberOfObjects(EDGE_MAP); }
00576 const char* GetEdgeMapArrayName(int index)
00577 { return this->GetObjectName(EDGE_MAP, index); }
00578 int GetEdgeMapArrayStatus(const char* name)
00579 { return this->GetObjectStatus(EDGE_MAP, name); }
00580 void SetEdgeMapArrayStatus(const char* name, int flag)
00581 { this->SetObjectStatus(EDGE_MAP, name, flag); }
00582
00583 int GetNumberOfFaceMapArrays()
00584 { return this->GetNumberOfObjects(FACE_MAP); }
00585 const char* GetFaceMapArrayName(int index)
00586 { return this->GetObjectName(FACE_MAP, index); }
00587 int GetFaceMapArrayStatus(const char* name)
00588 { return this->GetObjectStatus(FACE_MAP, name); }
00589 void SetFaceMapArrayStatus(const char* name, int flag)
00590 { this->SetObjectStatus(FACE_MAP, name, flag); }
00591
00592 int GetNumberOfElementMapArrays()
00593 { return this->GetNumberOfObjects(ELEM_MAP); }
00594 const char* GetElementMapArrayName(int index)
00595 { return this->GetObjectName(ELEM_MAP, index); }
00596 int GetElementMapArrayStatus(const char* name)
00597 { return this->GetObjectStatus(ELEM_MAP, name); }
00598 void SetElementMapArrayStatus(const char* name, int flag)
00599 { this->SetObjectStatus(ELEM_MAP, name, flag); }
00600
00601 int GetNumberOfNodeSetArrays()
00602 { return this->GetNumberOfObjects(NODE_SET); }
00603 const char* GetNodeSetArrayName(int index)
00604 { return this->GetObjectName(NODE_SET, index); }
00605 int GetNodeSetArrayStatus(const char* name)
00606 { return this->GetObjectStatus(NODE_SET, name); }
00607 void SetNodeSetArrayStatus(const char* name, int flag)
00608 { this->SetObjectStatus(NODE_SET, name, flag); }
00609
00610 int GetNumberOfSideSetArrays()
00611 { return this->GetNumberOfObjects(SIDE_SET); }
00612 const char* GetSideSetArrayName(int index)
00613 { return this->GetObjectName(SIDE_SET, index); }
00614 int GetSideSetArrayStatus(const char* name)
00615 { return this->GetObjectStatus(SIDE_SET, name); }
00616 void SetSideSetArrayStatus(const char* name, int flag)
00617 { this->SetObjectStatus(SIDE_SET, name, flag); }
00618
00619 int GetNumberOfEdgeSetArrays()
00620 { return this->GetNumberOfObjects(EDGE_SET); }
00621 const char* GetEdgeSetArrayName(int index)
00622 { return this->GetObjectName(EDGE_SET, index); }
00623 int GetEdgeSetArrayStatus(const char* name)
00624 { return this->GetObjectStatus(EDGE_SET, name); }
00625 void SetEdgeSetArrayStatus(const char* name, int flag)
00626 { this->SetObjectStatus(EDGE_SET, name, flag); }
00627
00628 int GetNumberOfFaceSetArrays()
00629 { return this->GetNumberOfObjects(FACE_SET); }
00630 const char* GetFaceSetArrayName(int index)
00631 { return this->GetObjectName(FACE_SET, index); }
00632 int GetFaceSetArrayStatus(const char* name)
00633 { return this->GetObjectStatus(FACE_SET, name); }
00634 void SetFaceSetArrayStatus(const char* name, int flag)
00635 { this->SetObjectStatus(FACE_SET, name, flag); }
00636
00637 int GetNumberOfElementSetArrays()
00638 { return this->GetNumberOfObjects(ELEM_SET); }
00639 const char* GetElementSetArrayName(int index)
00640 { return this->GetObjectName(ELEM_SET, index); }
00641 int GetElementSetArrayStatus(const char* name)
00642 { return this->GetObjectStatus(ELEM_SET, name); }
00643 void SetElementSetArrayStatus(const char* name, int flag)
00644 { this->SetObjectStatus(ELEM_SET, name, flag); }
00645
00646
00647 int GetNumberOfNodeSetResultArrays()
00648 { return this->GetNumberOfObjectArrays(NODE_SET); }
00649 const char* GetNodeSetResultArrayName(int index)
00650 { return this->GetObjectArrayName(NODE_SET, index); }
00651 int GetNodeSetResultArrayStatus(const char* name)
00652 { return this->GetObjectArrayStatus(NODE_SET, name); }
00653 void SetNodeSetResultArrayStatus(const char* name, int flag)
00654 { this->SetObjectArrayStatus(NODE_SET, name, flag); }
00655
00656 int GetNumberOfSideSetResultArrays()
00657 { return this->GetNumberOfObjectArrays(SIDE_SET); }
00658 const char* GetSideSetResultArrayName(int index)
00659 { return this->GetObjectArrayName(SIDE_SET, index); }
00660 int GetSideSetResultArrayStatus(const char* name)
00661 { return this->GetObjectArrayStatus(SIDE_SET, name); }
00662 void SetSideSetResultArrayStatus(const char* name, int flag)
00663 { this->SetObjectArrayStatus(SIDE_SET, name, flag); }
00664
00665 int GetNumberOfEdgeSetResultArrays()
00666 { return this->GetNumberOfObjectArrays(EDGE_SET); }
00667 const char* GetEdgeSetResultArrayName(int index)
00668 { return this->GetObjectArrayName(EDGE_SET, index); }
00669 int GetEdgeSetResultArrayStatus(const char* name)
00670 { return this->GetObjectArrayStatus(EDGE_SET, name); }
00671 void SetEdgeSetResultArrayStatus(const char* name, int flag)
00672 { this->SetObjectArrayStatus(EDGE_SET, name, flag); }
00673
00674 int GetNumberOfFaceSetResultArrays()
00675 { return this->GetNumberOfObjectArrays(FACE_SET); }
00676 const char* GetFaceSetResultArrayName(int index)
00677 { return this->GetObjectArrayName(FACE_SET, index); }
00678 int GetFaceSetResultArrayStatus(const char* name)
00679 { return this->GetObjectArrayStatus(FACE_SET, name); }
00680 void SetFaceSetResultArrayStatus(const char* name, int flag)
00681 { this->SetObjectArrayStatus(FACE_SET, name, flag); }
00682
00683 int GetNumberOfElementSetResultArrays()
00684 { return this->GetNumberOfObjectArrays(ELEM_SET); }
00685 const char* GetElementSetResultArrayName(int index)
00686 { return this->GetObjectArrayName(ELEM_SET, index); }
00687 int GetElementSetResultArrayStatus(const char* name)
00688 { return this->GetObjectArrayStatus(ELEM_SET, name); }
00689 void SetElementSetResultArrayStatus(const char* name, int flag)
00690 { this->SetObjectArrayStatus(ELEM_SET, name, flag); }
00691
00704
00705
00708 void SetFastPathObjectType(const char *type);
00709
00710
00711
00712
00713 void SetFastPathIdType(const char *type);
00714 void SetFastPathObjectId(vtkIdType id);
00716
00717
00722 void Reset();
00723
00729 void ResetSettings();
00730
00732 void ResetCache();
00733
00736 virtual void UpdateTimeInformation();
00737
00738 virtual void Dump();
00739
00742 vtkGraph* GetSIL();
00743
00745
00746 vtkGetMacro(SILUpdateStamp, int);
00748
00750
00752 vtkGetMacro(ProducedFastPathOutput, bool);
00754
00755 protected:
00756 vtkExodusIIReader();
00757 ~vtkExodusIIReader();
00758
00761 virtual void NewExodusModel();
00762
00763
00764 static int GetIDHelper ( const char *arrayName, vtkDataSet *data, int localID, int searchType );
00765 static int GetGlobalID( const char *arrayName, vtkDataSet *data, int localID, int searchType );
00766
00767 virtual void SetMetadata( vtkExodusIIReaderPrivate* );
00768 vtkGetObjectMacro(Metadata,vtkExodusIIReaderPrivate);
00769
00775 bool FindXMLFile();
00776
00777
00778
00779 void GetAllTimes(vtkInformationVector*);
00780
00782 void AdvertiseTimeSteps( vtkInformation* outputInfo );
00783
00784 virtual void SetExodusModel( vtkExodusModel* em );
00785
00786 int ProcessRequest( vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00787 int RequestInformation( vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00788 int RequestData( vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00789
00790
00791
00792 char* FileName;
00793 char* XMLFileName;
00794 int TimeStep;
00795 int TimeStepRange[2];
00796 vtkTimeStamp FileNameMTime;
00797 vtkTimeStamp XMLFileNameMTime;
00798
00799
00800
00801
00802
00803
00804 int DisplayType;
00805
00806
00807 vtkExodusIIReaderPrivate* Metadata;
00808
00809 vtkExodusModel *ExodusModel;
00810 int PackExodusModelOntoOutput;
00811 int ExodusModelMetadata;
00812
00813 int SILUpdateStamp;
00814 bool ProducedFastPathOutput;
00815 private:
00816 vtkExodusIIReader(const vtkExodusIIReader&);
00817 void operator=(const vtkExodusIIReader&);
00818
00819 void AddDisplacements(vtkUnstructuredGrid* output);
00820 };
00821
00822 #endif