VTK
vtkStringArray.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkStringArray.h
5  Language: C++
6 
7  Copyright 2004 Sandia Corporation.
8  Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9  license for use of this work by or on behalf of the
10  U.S. Government. Redistribution and use in source and binary forms, with
11  or without modification, are permitted provided that this Notice and any
12  statement of authorship are reproduced on all copies.
13 
14 =========================================================================*/
15 
35 #ifndef __vtkStringArray_h
36 #define __vtkStringArray_h
37 
38 #include "vtkAbstractArray.h"
39 #include "vtkStdString.h" // needed for vtkStdString definition
40 
41 class vtkStringArrayLookup;
42 
44 {
45 public:
46  static vtkStringArray* New();
48  void PrintSelf(ostream& os, vtkIndent indent);
49 
50  //
51  //
52  // Functions required by vtkAbstractArray
53  //
54  //
55 
57 
59  { return VTK_STRING; }
61 
62  int IsNumeric() { return 0; }
63 
65  void Initialize();
66 
70  int GetDataTypeSize();
71 
74  void Squeeze() { this->ResizeAndExtend (this->MaxId+1); }
75 
77  int Resize(vtkIdType numTuples);
78 
84  virtual void SetTuple(vtkIdType i, vtkIdType j, vtkAbstractArray* source);
85 
89  virtual void InsertTuple(vtkIdType i, vtkIdType j, vtkAbstractArray* source);
90 
95 
97 
101  virtual void InterpolateTuple(vtkIdType i, vtkIdList *ptIndices,
102  vtkAbstractArray* source, double* weights);
104 
106 
111  virtual void InterpolateTuple(vtkIdType i,
112  vtkIdType id1, vtkAbstractArray* source1,
113  vtkIdType id2, vtkAbstractArray* source2, double t);
115 
120  virtual void GetTuples(vtkIdList *ptIds, vtkAbstractArray *output);
121 
126  virtual void GetTuples(vtkIdType p1, vtkIdType p2, vtkAbstractArray *output);
127 
130  int Allocate( vtkIdType sz, vtkIdType ext=1000 );
131 
133  vtkStdString &GetValue(vtkIdType id);
134 
135 //BTX
137 
140  { this->Array[id] = value; this->DataChanged(); }
141 //ETX
142  void SetValue(vtkIdType id, const char *value);
144 
146 
148  virtual void SetNumberOfTuples(vtkIdType number)
149  { this->SetNumberOfValues(this->NumberOfComponents* number); }
151 
155  void SetNumberOfValues(vtkIdType number);
156 
157  vtkIdType GetNumberOfValues() { return this->MaxId + 1; }
158 
159  int GetNumberOfElementComponents() { return 0; }
160  int GetElementComponentSize() { return static_cast<int>(sizeof(vtkStdString::value_type)); }
161 
162 //BTX
164 
165  void InsertValue(vtkIdType id, vtkStdString f);
166 //ETX
167  void InsertValue(vtkIdType id, const char *val);
169 
172  void SetVariantValue(vtkIdType idx, vtkVariant value);
173 
174 //BTX
176 
178  vtkIdType InsertNextValue(vtkStdString f);
179 //ETX
180  vtkIdType InsertNextValue(const char *f);
182 
183 //BTX
185 
188  vtkStdString* WritePointer(vtkIdType id, vtkIdType number);
189 //ETX
191 
192 //BTX
194 
196  vtkStdString* GetPointer(vtkIdType id) { return this->Array + id; }
197  void* GetVoidPointer(vtkIdType id) { return this->GetPointer(id); }
198 //ETX
200 
203  void DeepCopy( vtkAbstractArray* aa );
204 
205 
206 //BTX
208 
217  void SetArray(vtkStdString* array, vtkIdType size, int save);
218  virtual void SetVoidArray(void* array, vtkIdType size, int save)
219  { this->SetArray(static_cast<vtkStdString*>(array), size, save); }
220 //ETX
222 
230  unsigned long GetActualMemorySize();
231 
233  virtual vtkArrayIterator* NewIterator();
234 
239  virtual vtkIdType GetDataSize();
240 
242 
243  virtual vtkIdType LookupValue(vtkVariant value);
244  virtual void LookupValue(vtkVariant value, vtkIdList* ids);
245 //BTX
247  void LookupValue(vtkStdString value, vtkIdList* ids);
248 //ETX
249  vtkIdType LookupValue(const char* value);
250  void LookupValue(const char* value, vtkIdList* ids);
252 
259  virtual void DataChanged();
260 
264  virtual void DataElementChanged(vtkIdType id);
265 
269  virtual void ClearLookup();
270 
271 protected:
272  vtkStringArray(vtkIdType numComp=1);
273  ~vtkStringArray();
274 
275  vtkStdString* Array; // pointer to data
276  vtkStdString* ResizeAndExtend(vtkIdType sz); // function to resize data
277 
279 
280 private:
281  vtkStringArray(const vtkStringArray&); // Not implemented.
282  void operator=(const vtkStringArray&); // Not implemented.
283 
284  //BTX
285  vtkStringArrayLookup* Lookup;
286  void UpdateLookup();
287  //ETX
288 };
289 
290 
291 
292 #endif
void PrintSelf(ostream &os, vtkIndent indent)
vtkIdType GetNumberOfValues()
Wrapper around vtkstd::string to keep symbols short.
Definition: vtkStdString.h:45
virtual void DataChanged()=0
vtkStdString * GetPointer(vtkIdType id)
virtual void DeepCopy(vtkAbstractArray *da)
Abstract superclass for all arrays.
virtual vtkIdType LookupValue(vtkVariant value)=0
virtual int GetDataTypeSize()=0
vtkStdString * Array
virtual void SetTuple(vtkIdType i, vtkIdType j, vtkAbstractArray *source)=0
a vtkAbstractArray subclass for strings
virtual void SetVoidArray(void *array, vtkIdType size, int save)
int vtkIdType
Definition: vtkType.h:255
virtual void Initialize()=0
A atomic type representing the union of many types.
Definition: vtkVariant.h:72
void SetValue(vtkIdType id, vtkStdString value)
#define VTK_STRING
Definition: vtkType.h:41
virtual vtkIdType GetDataSize()
virtual int Allocate(vtkIdType sz, vtkIdType ext=1000)=0
virtual void ClearLookup()=0
a simple class to control print indentation
Definition: vtkIndent.h:37
list of point or cell ids
Definition: vtkIdList.h:34
virtual void InsertTuple(vtkIdType i, vtkIdType j, vtkAbstractArray *source)=0
virtual int Resize(vtkIdType numTuples)=0
virtual vtkArrayIterator * NewIterator()=0
virtual void GetTuples(vtkIdList *ptIds, vtkAbstractArray *output)
#define VTK_COMMON_EXPORT
Abstract superclass to iterate over elements in an vtkAbstractArray.
virtual void InterpolateTuple(vtkIdType i, vtkIdList *ptIndices, vtkAbstractArray *source, double *weights)=0
virtual void SetNumberOfTuples(vtkIdType number)
virtual vtkIdType InsertNextTuple(vtkIdType j, vtkAbstractArray *source)=0
void save(Archiver &ar, const vtkVariant &variant, const unsigned int vtkNotUsed(version))
StdString::value_type value_type
Definition: vtkStdString.h:50
void * GetVoidPointer(vtkIdType id)
virtual unsigned long GetActualMemorySize()=0
virtual void SetVariantValue(vtkIdType idx, vtkVariant value)=0
static vtkObject * New()
int GetElementComponentSize()
int GetNumberOfElementComponents()