00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00053 #ifndef __vtkExodusModel_h
00054 #define __vtkExodusModel_h
00055
00056 #include "vtkObject.h"
00057
00058 #include "vtkModelMetadata.h"
00059
00060
00061 class vtkUnstructuredGrid;
00062
00063 class VTK_HYBRID_EXPORT vtkExodusModel : public vtkObject
00064 {
00065 public:
00066 vtkTypeRevisionMacro(vtkExodusModel, vtkObject);
00067 virtual void PrintSelf(ostream &os, vtkIndent indent);
00068
00069 static vtkExodusModel *New();
00070
00080 int SetGlobalInformation(int fid, int compute_word_size);
00081
00094 int AddUGridElementVariable(char *ugridVarName, char *origName, int numComponents);
00095 int RemoveUGridElementVariable(char *ugridVarName);
00096
00097 int AddUGridNodeVariable(char *ugridVarName, char *origName, int numComponents);
00098 int RemoveUGridNodeVariable(char *ugridVarName);
00099
00100 void SetElementVariableInfo(int numOrigNames, char **origNames,
00101 int numNames, char **names, int *numComp, int *map);
00102 void SetNodeVariableInfo(int numOrigNames, char **origNames,
00103 int numNames, char **names, int *numComp, int *map);
00104
00118 int SetLocalInformation(vtkUnstructuredGrid *ugrid,
00119 int fid, int timeStep, int newGeometry, int compute_word_size);
00120
00124 static int HasMetadata(vtkUnstructuredGrid *grid);
00125
00128 vtkModelMetadata *GetModelMetadata();
00129 void SetModelMetadata(vtkModelMetadata *emData);
00130
00140 int UnpackExodusModel(vtkUnstructuredGrid *grid, int deleteIt);
00141
00146 int MergeExodusModel(vtkExodusModel *em);
00147
00155 vtkExodusModel *ExtractExodusModel(vtkIntArray *globalCellIdList,
00156 vtkUnstructuredGrid *grid, const char *globalCellIdArrayName,
00157 const char *globalNodeIdArrayName);
00158
00164 void PackExodusModel(vtkUnstructuredGrid *grid);
00165
00168 void Reset();
00169
00170 protected:
00171
00172 vtkExodusModel();
00173 ~vtkExodusModel();
00174
00175 private:
00176
00177 vtkModelMetadata *CheckSetModelMetadata();
00178
00179 static void CopyDoubleToFloat(float *f, double *d, int len);
00180
00181 int SetLocalBlockInformation(
00182 int fid, int use_floats, int *blockIds , int *cellIds, int ncells);
00183 int SetLocalNodeSetInformation(
00184 int fid, int use_floats, int *pointIds, int npoints);
00185 int SetLocalSideSetInformation(
00186 int fid, int use_floats, int *cellIds, int ncells);
00187
00188 void RemoveBeginningAndTrailingSpaces(char **names, int len);
00189
00190 vtkModelMetadata *ModelMetadata;
00191
00192 int GeometryCount;
00193
00194 vtkExodusModel(const vtkExodusModel&);
00195 void operator=(const vtkExodusModel&);
00196 };
00197 #endif