• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

dox/Common/vtkInformationQuadratureSchemeDefinitionVectorKey.h

Go to the documentation of this file.
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

Generated by  doxygen 1.7.1