74 #ifndef __vtkModelMetadata_h
75 #define __vtkModelMetadata_h
85 class vtkModelMetadataSTLCloak;
98 virtual void PrintGlobalInformation();
110 virtual void PrintLocalInformation();
114 vtkSetStringMacro(Title);
119 void SetInformationLines(
int numLines,
char **lines);
122 void AddInformationLine(
char *
info);
126 int GetInformationLines(
char ***lines)
const;
131 return this->NumberOfInformationLines;}
137 void SetQARecords(
int numberOfRecords,
char *QARecords[][4]);
146 void GetQARecord(
int which,
char **
name,
char **
version,
157 vtkSetMacro(TimeStepIndex,
int);
165 void SetTimeSteps(
int numberOfTimeSteps,
float *timeStepValues);
174 void SetCoordinateNames(
int dimension,
char **);
185 vtkSetMacro(NumberOfBlocks,
int);
192 void SetBlockIds(
int *);
200 void SetBlockElementType(
char **);
208 int SetBlockNumberOfElements(
int *nelts);
216 void SetBlockNodesPerElement(
int *);
224 void SetBlockElementIdList(
int *);
239 int SetBlockNumberOfAttributesPerElement(
int *natts);
247 void SetBlockAttributes(
float *);
254 return this->SizeBlockAttributeArray;}
264 vtkSetMacro(NumberOfNodeSets,
int);
272 void SetNodeSetIds(
int *);
280 int SetNodeSetSize(
int *);
289 void SetNodeSetNodeIdList(
int *);
298 int SetNodeSetNumberOfDistributionFactors(
int *);
300 {
return this->NodeSetNumberOfDistributionFactors;}
307 void SetNodeSetDistributionFactors(
float *);
309 return this->NodeSetDistributionFactors;}
322 return this->NodeSetNodeIdListIndex;}
329 return this->NodeSetDistributionFactorIndex;}
335 vtkSetMacro(NumberOfSideSets,
int);
342 void SetSideSetIds(
int *);
350 int SetSideSetSize(
int *sizes);
359 int SetSideSetNumberOfDistributionFactors(
int *df);
361 return this->SideSetNumberOfDistributionFactors;}
369 void SetSideSetElementList(
int *);
379 void SetSideSetSideList(
int *);
388 void SetSideSetNumDFPerSide(
int *numNodes);
401 void SetSideSetDistributionFactors(
float *);
403 return this->SideSetDistributionFactors;}
420 return this->SideSetDistributionFactorIndex;}
426 return this->NumberOfBlockProperties;}
431 void SetBlockPropertyNames(
int numProp,
char **names);
438 void SetBlockPropertyValue(
int *);
445 return this->NumberOfNodeSetProperties;}
450 void SetNodeSetPropertyNames(
int numProp,
char **names);
457 void SetNodeSetPropertyValue(
int *);
464 return this->NumberOfSideSetProperties;}
469 void SetSideSetPropertyNames(
int numProp,
char **names);
476 void SetSideSetPropertyValue(
int *);
483 return this->NumberOfGlobalVariables;}
488 void SetGlobalVariableNames(
int numVarNames,
char **n);
495 void SetGlobalVariableValue(
float *f);
509 void SetElementVariableInfo(
int numOrigNames,
char **origNames,
510 int numNames,
char **names,
int *numComp,
524 void SetNodeVariableInfo(
int numOrigNames,
char **origNames,
525 int numNames,
char **names,
int *numComp,
534 void SetElementVariableTruthTable(
int *);
536 return this->ElementVariableTruthTable;}
542 vtkSetMacro(AllVariablesDefinedInAllBlocks,
int);
543 vtkBooleanMacro(AllVariablesDefinedInAllBlocks,
int);
545 return this->AllVariablesDefinedInAllBlocks;}
554 int ElementVariableIsDefinedInBlock(
char *varname,
int blockId);
570 return this->OriginalNumberOfElementVariables;}
572 return this->OriginalElementVariableNames;}
574 return this->NumberOfElementVariables;}
576 return this->ElementVariableNames;}
578 return this->ElementVariableNumberOfComponents;}
580 return this->MapToOriginalElementVariableNames;}
584 return this->OriginalNumberOfNodeVariables;}
586 return this->OriginalNodeVariableNames;}
588 return this->NumberOfNodeVariables;}
590 return this->NodeVariableNames;}
592 return this->NodeVariableNumberOfComponents;}
594 return this->MapToOriginalNodeVariableNames;}
600 char *FindOriginalElementVariableName(
const char *
name,
int component);
606 char *FindOriginalNodeVariableName(
const char *
name,
int component);
637 int AddUGridElementVariable(
char *ugridVarName,
char *origName,
int numComponents);
638 int RemoveUGridElementVariable(
char *ugridVarName);
641 int AddUGridNodeVariable(
char *ugridVarName,
char *origName,
int numComponents);
642 int RemoveUGridNodeVariable(
char *ugridVarName);
683 void FreeAllGlobalData();
684 void FreeAllLocalData();
685 void FreeBlockDependentData();
686 void FreeOriginalElementVariableNames();
687 void FreeOriginalNodeVariableNames();
688 void FreeUsedElementVariableNames();
689 void FreeUsedNodeVariableNames();
690 void FreeUsedElementVariables();
691 void FreeUsedNodeVariables();
699 int GetBlockLocalIndex(
int id);
706 void InitializeAllMetadata();
707 void InitializeAllIvars();
709 void FreeAllMetadata();
712 void FreeQARecords();
714 int BuildBlockElementIdListIndex();
715 int BuildBlockAttributesIndex();
716 int BuildNodeSetNodeIdListIndex();
717 int BuildNodeSetDistributionFactorIndex();
718 int BuildSideSetListIndex();
719 int BuildSideSetDistributionFactorIndex();
721 int InitializeFromSizeArray(
vtkIntArray *ia,
int &maxStr,
int &maxLine);
722 vtkIntArray *PackSizeArray(
int maxStr,
int maxLine);
731 static char *StrDupWithNew(
const char *s);
733 static char *WriteLines(
char *p,
int maxLines,
int maxLen,
char **lines);
734 static char *ReadLines(
char ***to,
int maxLines,
735 int maxLen,
char *from);
736 static char **CopyLines(
char **lines,
int num);
737 static int *CopyInts(
int *vals,
int num);
739 static int FindNameOnList(
char *
name,
char **list,
int listLen);
741 int MergeIdLists(
int numSubLists,
742 int *id1,
int *id1Idx,
int id1Len,
743 float *dist1,
int *dist1Idx,
int dist1Len,
744 int *id2,
int *id2Idx,
int id2Len,
745 float *dist2,
int *dist2Idx,
int dist2Len,
746 int **idNew,
int **idNewIdx,
int *idNewLen,
747 float **distNew,
int **distNewIdx,
int *distNewLen);
749 int AppendFloatLists(
int numSubLists,
750 float *id1,
int *id1Idx,
int id1Len,
751 float *id2,
int *id2Idx,
int id2Len,
752 float **idNew,
int **idNewIdx,
int *idNewLen);
754 int AppendIntegerLists(
int numSubLists,
755 int *id1,
int *id1Idx,
int id1Len,
756 int *id2,
int *id2Idx,
int id2Len,
757 int **idNew,
int **idNewIdx,
int *idNewLen);
759 void ExtractCellsFromBlockData(vtkModelMetadataSTLCloak *idset,
761 void ExtractNodesFromNodeSetData(vtkModelMetadataSTLCloak *idset,
763 void ExtractSidesFromSideSetData(vtkModelMetadataSTLCloak *idset,
766 void ShowFloats(
const char *what,
int num,
float *f);
767 void ShowLines(
const char *what,
int num,
char **l);
768 void ShowIntArray(
const char *what,
int numx,
int numy,
int *
id);
769 void ShowInts(
const char *what,
int num,
int *
id);
770 void ShowListsOfInts(
const char *what,
int *list,
771 int nlists,
int *idx,
int len,
int verbose);
772 void ShowListsOfFloats(
const char *what,
float *list,
773 int nlists,
int *idx,
int len,
int verbose);
775 void SetOriginalElementVariableNames(
int nvars,
char **names);
776 void SetElementVariableNames(
int nvars,
char **names);
777 void SetElementVariableNumberOfComponents(
int *comp);
778 void SetMapToOriginalElementVariableNames(
int *map);
780 void SetOriginalNodeVariableNames(
int nvars,
char **names);
781 void SetNodeVariableNames(
int nvars,
char **names);
782 void SetNodeVariableNumberOfComponents(
int *comp);
783 void SetMapToOriginalNodeVariableNames(
int *map);
785 int CalculateMaximumLengths(
int &maxString,
int &maxLine);
794 int NumberOfQARecords;
796 char *(*QARecord)[4];
799 int NumberOfInformationLines;
800 char **InformationLine;
803 char **CoordinateNames;
808 int NumberOfTimeSteps;
809 float *TimeStepValues;
816 char **BlockElementType;
817 int *BlockNumberOfElements;
818 int *BlockNodesPerElement;
819 int *BlockNumberOfAttributesPerElement;
820 int *BlockElementIdList;
821 float *BlockAttributes;
825 int SumElementsPerBlock;
826 int SizeBlockAttributeArray;
828 int *BlockElementIdListIndex;
829 int *BlockAttributesIndex;
831 vtkModelMetadataSTLCloak *BlockIdIndex;
835 int NumberOfNodeSets;
839 int *NodeSetNumberOfDistributionFactors;
840 int *NodeSetNodeIdList;
841 float *NodeSetDistributionFactors;
845 int SumNodesPerNodeSet;
846 int SumDistFactPerNodeSet;
848 int *NodeSetNodeIdListIndex;
849 int *NodeSetDistributionFactorIndex;
853 int NumberOfSideSets;
857 int *SideSetNumberOfDistributionFactors;
858 int *SideSetElementList;
859 int *SideSetSideList;
860 int *SideSetNumDFPerSide;
861 float *SideSetDistributionFactors;
865 int SumSidesPerSideSet;
866 int SumDistFactPerSideSet;
868 int *SideSetListIndex;
869 int *SideSetDistributionFactorIndex;
873 int NumberOfBlockProperties;
874 char **BlockPropertyNames;
875 int *BlockPropertyValue;
877 int NumberOfNodeSetProperties;
878 char **NodeSetPropertyNames;
879 int *NodeSetPropertyValue;
881 int NumberOfSideSetProperties;
882 char **SideSetPropertyNames;
883 int *SideSetPropertyValue;
893 int NumberOfGlobalVariables;
894 char **GlobalVariableNames;
895 float *GlobalVariableValue;
903 int OriginalNumberOfElementVariables;
904 char **OriginalElementVariableNames;
905 int NumberOfElementVariables;
906 int MaxNumberOfElementVariables;
907 char **ElementVariableNames;
908 int *ElementVariableNumberOfComponents;
909 int *MapToOriginalElementVariableNames;
911 int OriginalNumberOfNodeVariables;
912 char **OriginalNodeVariableNames;
913 int NumberOfNodeVariables;
914 int MaxNumberOfNodeVariables;
915 char **NodeVariableNames;
916 int *NodeVariableNumberOfComponents;
917 int *MapToOriginalNodeVariableNames;
919 int *ElementVariableTruthTable;
920 int AllVariablesDefinedInAllBlocks;
abstract base class for most VTK objects
abstract class to specify dataset behavior
dynamic, self-adjusting array of float
dynamic, self-adjusting array of vtkIdType
dynamic, self-adjusting array of char
dynamic, self-adjusting array of int
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation