VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkInformationQuadratureSchemeDefinitionVectorKey.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00024 #ifndef __vtkInformationQuadratureSchemeDefinitionVectorKey_h 00025 #define __vtkInformationQuadratureSchemeDefinitionVectorKey_h 00026 00027 #include "vtkInformationKey.h" 00028 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type. 00029 00030 class vtkInformationQuadratureSchemeDefinitionVectorValue; 00031 class vtkXMLDataElement; 00032 class vtkQuadratureSchemeDefinition; 00033 00034 class VTK_COMMON_EXPORT vtkInformationQuadratureSchemeDefinitionVectorKey : public vtkInformationKey 00035 { 00036 public: 00037 vtkTypeRevisionMacro(vtkInformationQuadratureSchemeDefinitionVectorKey,vtkInformationKey); 00038 void PrintSelf(ostream& os, vtkIndent indent); 00040 00042 vtkInformationQuadratureSchemeDefinitionVectorKey( 00043 const char* name, 00044 const char* location); 00045 // 00046 ~vtkInformationQuadratureSchemeDefinitionVectorKey(); 00048 00050 00051 void Clear(vtkInformation* info); 00052 // Description: 00053 // Resize (extend) the vector to hold n objects. Any new elements 00054 // created will be null initialized. 00055 void Resize(vtkInformation* info, int n); 00056 // Description: 00057 // Get the vector's length. 00058 int Size(vtkInformation* info); 00059 int Length(vtkInformation* info){ return this->Size(info); } 00060 // Description: 00061 // Put the value on the back of the vector, with reference counting. 00062 void Append(vtkInformation* info, vtkQuadratureSchemeDefinition *value); 00063 // Description: 00064 // Set element i of the vector to value. Resizes the vector 00065 // if needed. 00066 void Set(vtkInformation* info, vtkQuadratureSchemeDefinition *value, int i); 00067 // Description: 00068 // Copy n values from the range in source defined by [from from+n-1] 00069 // into the range in this vector defined by [to to+n-1]. Resizes 00070 // the vector if needed. 00071 void SetRange(vtkInformation* info, 00072 vtkQuadratureSchemeDefinition **source, 00073 int from, 00074 int to, 00075 int n); 00077 00079 00082 void GetRange(vtkInformation *info, 00083 vtkQuadratureSchemeDefinition **dest, 00084 int from, 00085 int to, 00086 int n); 00088 00091 vtkQuadratureSchemeDefinition *Get(vtkInformation* info, int idx); 00092 00093 // _escription: 00094 // Get a pointer to the first vtkQuadratureSchemeDefinition in the vector. We are 00095 // uysing a vector of smart pointers so this is not easy to 00096 // implement. 00097 // vtkQuadratureSchemeDefinition **Get(vtkInformation* info); 00098 00100 00103 virtual void ShallowCopy(vtkInformation* from, vtkInformation* to); 00104 virtual void DeepCopy(vtkInformation* from, vtkInformation* to); 00106 00108 virtual void Print(ostream& os, vtkInformation* info); 00109 00110 // note: I had wanted to make the following interface in vtkInformationKey 00111 // with a defualt implementation that did nothing. but we decided that 00112 // vtkInformationKey class is too important a class to add such an interface 00113 // without a thorough design review. we don't have budget for such a review. 00114 00116 00119 int SaveState(vtkInformation *info, vtkXMLDataElement *element); 00120 // Description: 00121 // Load key/value pairs from an XML state representation created 00122 // with SaveState. Duplicate keys will generate a fatal error. 00123 int RestoreState(vtkInformation *info, vtkXMLDataElement *element); 00125 00126 private: 00128 00130 void CreateQuadratureSchemeDefinition(); 00131 // Description: 00132 // Get the vector associated with this key, if there is 00133 // none then associate a new vector with this key and return 00134 // that. 00135 vtkInformationQuadratureSchemeDefinitionVectorValue *GetQuadratureSchemeDefinitionVector(vtkInformation *info); 00137 00138 // 00139 vtkInformationQuadratureSchemeDefinitionVectorKey(const vtkInformationQuadratureSchemeDefinitionVectorKey&); // Not implemented. 00140 void operator=(const vtkInformationQuadratureSchemeDefinitionVectorKey&); // Not implemented. 00141 }; 00142 00143 #endif