73 #ifndef vtkModelMetadata_h 
   74 #define vtkModelMetadata_h 
   76 #include "vtkIOExodusModule.h"  
   87 class vtkModelMetadataSTLCloak;
 
  103   virtual void PrintGlobalInformation();
 
  118   virtual void PrintLocalInformation();
 
  124   vtkSetStringMacro(Title);
 
  125   const char* 
GetTitle()
 const { 
return this->Title; }
 
  131   void SetInformationLines(
int numLines, 
char** lines);
 
  137   int GetInformationLines(
char*** lines) 
const;
 
  151   vtkSetMacro(TimeStepIndex, 
int);
 
  160   void SetTimeSteps(
int numberOfTimeSteps, 
float* timeStepValues);
 
  171   void SetCoordinateNames(
int dimension, 
char**);
 
  185   vtkSetMacro(NumberOfBlocks, 
int);
 
  193   void SetBlockIds(
int*);
 
  201   void SetBlockElementType(
char**);
 
  209   int SetBlockNumberOfElements(
int* nelts);
 
  217   void SetBlockNodesPerElement(
int*);
 
  225   void SetBlockElementIdList(
int*);
 
  244   int SetBlockNumberOfAttributesPerElement(
int* natts);
 
  247     return this->BlockNumberOfAttributesPerElement;
 
  256   void SetBlockAttributes(
float*);
 
  275   vtkSetMacro(NumberOfNodeSets, 
int);
 
  287   void SetNodeSetIds(
int*);
 
  294   void SetNodeSetSize(
int*);
 
  303   void SetNodeSetNodeIdList(
int*);
 
  313   void SetNodeSetNumberOfDistributionFactors(
int*);
 
  316     return this->NodeSetNumberOfDistributionFactors;
 
  324   void SetNodeSetDistributionFactors(
float*);
 
  331   vtkSetMacro(SumNodesPerNodeSet, 
int);
 
  357   vtkSetMacro(NumberOfSideSets, 
int);
 
  368   void SetSideSetIds(
int*);
 
  375   int SetSideSetSize(
int* sizes);
 
  384   int SetSideSetNumberOfDistributionFactors(
int* df);
 
  387     return this->SideSetNumberOfDistributionFactors;
 
  396   void SetSideSetElementList(
int*);
 
  406   void SetSideSetSideList(
int*);
 
  415   void SetSideSetNumDFPerSide(
int* numNodes);
 
  429   void SetSideSetDistributionFactors(
float*);
 
  436   vtkSetMacro(SumSidesPerSideSet, 
int);
 
  465   void SetBlockPropertyNames(
int numProp, 
char** names);
 
  473   void SetBlockPropertyValue(
int*);
 
  484   void SetNodeSetPropertyNames(
int numProp, 
char** names);
 
  492   void SetNodeSetPropertyValue(
int*);
 
  503   void SetSideSetPropertyNames(
int numProp, 
char** names);
 
  511   void SetSideSetPropertyValue(
int*);
 
  522   void SetGlobalVariableNames(
int numVarNames, 
char** n);
 
  529   void SetGlobalVariableValue(
float* f);
 
  544   void SetElementVariableInfo(
 
  545     int numOrigNames, 
char** origNames, 
int numNames, 
char** names, 
int* numComp, 
int* map);
 
  559   void SetNodeVariableInfo(
 
  560     int numOrigNames, 
char** origNames, 
int numNames, 
char** names, 
int* numComp, 
int* map);
 
  568   void SetElementVariableTruthTable(
int*);
 
  577   vtkSetMacro(AllVariablesDefinedInAllBlocks, 
vtkTypeBool);
 
  578   vtkBooleanMacro(AllVariablesDefinedInAllBlocks, 
vtkTypeBool);
 
  581     return this->AllVariablesDefinedInAllBlocks;
 
  609     return this->ElementVariableNumberOfComponents;
 
  613     return this->MapToOriginalElementVariableNames;
 
  638   void FreeAllGlobalData();
 
  639   void FreeAllLocalData();
 
  640   void FreeBlockDependentData();
 
  641   void FreeOriginalElementVariableNames();
 
  642   void FreeOriginalNodeVariableNames();
 
  643   void FreeUsedElementVariableNames();
 
  644   void FreeUsedNodeVariableNames();
 
  645   void FreeUsedElementVariables();
 
  646   void FreeUsedNodeVariables();
 
  659   void InitializeAllMetadata();
 
  660   void InitializeAllIvars();
 
  662   void FreeAllMetadata();
 
  665   int BuildBlockElementIdListIndex();
 
  666   int BuildBlockAttributesIndex();
 
  667   int BuildSideSetDistributionFactorIndex();
 
  669   static char* StrDupWithNew(
const char* s);
 
  671   static int FindNameOnList(
char* 
name, 
char** list, 
int listLen);
 
  673   void ShowFloats(
const char* what, 
int num, 
float* f);
 
  674   void ShowLines(
const char* what, 
int num, 
char** l);
 
  675   void ShowIntArray(
const char* what, 
int numx, 
int numy, 
int* 
id);
 
  676   void ShowInts(
const char* what, 
int num, 
int* 
id);
 
  677   void ShowListsOfInts(
const char* what, 
int* list, 
int nlists, 
int* idx, 
int len, 
int verbose);
 
  678   void ShowListsOfFloats(
const char* what, 
float* list, 
int nlists, 
int* idx, 
int len, 
int verbose);
 
  680   void SetOriginalElementVariableNames(
int nvars, 
char** names);
 
  681   void SetElementVariableNames(
int nvars, 
char** names);
 
  682   void SetElementVariableNumberOfComponents(
int* comp);
 
  683   void SetMapToOriginalElementVariableNames(
int* map);
 
  685   void SetOriginalNodeVariableNames(
int nvars, 
char** names);
 
  686   void SetNodeVariableNames(
int nvars, 
char** names);
 
  687   void SetNodeVariableNumberOfComponents(
int* comp);
 
  688   void SetMapToOriginalNodeVariableNames(
int* map);
 
  690   int CalculateMaximumLengths(
int& maxString, 
int& maxLine);
 
  699   int NumberOfInformationLines; 
 
  700   char** InformationLine;       
 
  703   char** CoordinateNames; 
 
  708   int NumberOfTimeSteps; 
 
  709   float* TimeStepValues; 
 
  716   char** BlockElementType;                
 
  717   int* BlockNumberOfElements;             
 
  718   int* BlockNodesPerElement;              
 
  719   int* BlockNumberOfAttributesPerElement; 
 
  720   int* BlockElementIdList;                
 
  721   float* BlockAttributes;                 
 
  725   int SumElementsPerBlock;
 
  726   int SizeBlockAttributeArray;
 
  728   int* BlockElementIdListIndex; 
 
  729   int* BlockAttributesIndex;    
 
  731   vtkModelMetadataSTLCloak* BlockIdIndex; 
 
  735   int NumberOfNodeSets; 
 
  741   int* NodeSetNumberOfDistributionFactors; 
 
  742   int* NodeSetNodeIdList;                  
 
  743   float* NodeSetDistributionFactors;       
 
  747   int SumNodesPerNodeSet;
 
  748   int SumDistFactPerNodeSet;
 
  750   int* NodeSetNodeIdListIndex;         
 
  751   int* NodeSetDistributionFactorIndex; 
 
  755   int NumberOfSideSets; 
 
  761   int* SideSetNumberOfDistributionFactors; 
 
  762   int* SideSetElementList;                 
 
  763   int* SideSetSideList;                    
 
  764   int* SideSetNumDFPerSide;                
 
  765   float* SideSetDistributionFactors;       
 
  769   int SumSidesPerSideSet;
 
  770   int SumDistFactPerSideSet;
 
  772   int* SideSetListIndex;               
 
  773   int* SideSetDistributionFactorIndex; 
 
  777   int NumberOfBlockProperties; 
 
  778   char** BlockPropertyNames;   
 
  779   int* BlockPropertyValue;     
 
  781   int NumberOfNodeSetProperties; 
 
  782   char** NodeSetPropertyNames;   
 
  783   int* NodeSetPropertyValue;     
 
  785   int NumberOfSideSetProperties; 
 
  786   char** SideSetPropertyNames;   
 
  787   int* SideSetPropertyValue;     
 
  797   int NumberOfGlobalVariables; 
 
  798   char** GlobalVariableNames;  
 
  799   float* GlobalVariableValue;  
 
  807   int OriginalNumberOfElementVariables;   
 
  808   char** OriginalElementVariableNames;    
 
  809   int NumberOfElementVariables;           
 
  810   int MaxNumberOfElementVariables;        
 
  811   char** ElementVariableNames;            
 
  812   int* ElementVariableNumberOfComponents; 
 
  813   int* MapToOriginalElementVariableNames; 
 
  815   int OriginalNumberOfNodeVariables;   
 
  816   char** OriginalNodeVariableNames;    
 
  817   int NumberOfNodeVariables;           
 
  818   int MaxNumberOfNodeVariables;        
 
  819   char** NodeVariableNames;            
 
  820   int* NodeVariableNumberOfComponents; 
 
  821   int* MapToOriginalNodeVariableNames; 
 
  823   int* ElementVariableTruthTable;