dox/Common/vtkIntArray.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00033
#ifndef __vtkIntArray_h
00034
#define __vtkIntArray_h
00035
00036
#include "vtkDataArray.h"
00037
00038 class VTK_COMMON_EXPORT vtkIntArray :
public vtkDataArray
00039 {
00040
public:
00041
static vtkIntArray *
New();
00042
00043 vtkTypeRevisionMacro(vtkIntArray,
vtkDataArray);
00044
void PrintSelf(ostream& os,
vtkIndent indent);
00045
00048
int Allocate(
const vtkIdType sz,
const vtkIdType ext=1000);
00049
00051
void Initialize();
00052
00054
00055 int GetDataType()
00056 {
return VTK_INT;}
00058
00060 int GetDataTypeSize() {
return sizeof(
int); }
00061
00063
00064 void Squeeze()
00065 {this->ResizeAndExtend (this->MaxId+1);}
00067
00069
virtual void Resize(
vtkIdType numTuples);
00070
00072
void SetNumberOfTuples(
const vtkIdType number);
00073
00076
float *
GetTuple(
const vtkIdType i);
00077
00079
00080
void GetTuple(
const vtkIdType i,
float * tuple);
00081
void GetTuple(
const vtkIdType i,
double * tuple);
00083
00085
00086
void SetTuple(
const vtkIdType i,
const float * tuple);
00087
void SetTuple(
const vtkIdType i,
const double * tuple);
00089
00091
00093
void InsertTuple(
const vtkIdType i,
const float * tuple);
00094
void InsertTuple(
const vtkIdType i,
const double * tuple);
00096
00098
00100
vtkIdType InsertNextTuple(
const float * tuple);
00101
vtkIdType InsertNextTuple(
const double * tuple);
00103
00105
00106 int GetValue(
const vtkIdType id)
00107 {
return this->Array[
id];}
00109
00111
00113 void SetValue(
const vtkIdType id,
const int value)
00114 {this->Array[
id] = value;}
00116
00120
void SetNumberOfValues(
const vtkIdType number);
00121
00123
void InsertValue(
const vtkIdType id,
const int i);
00124
00127
vtkIdType InsertNextValue(
const int i);
00128
00132
float GetComponent(
const vtkIdType i,
const int j);
00133
00138
void SetComponent(
const vtkIdType i,
const int j,
float c);
00139
00143
virtual void InsertComponent(
const vtkIdType i,
const int j,
float c);
00144
00146
00148 int *GetPointer(
const vtkIdType id)
00149 {
return this->Array +
id;}
00150 void *
GetVoidPointer(
const vtkIdType id)
00151 {
return (
void *)this->GetPointer(
id);}
00153
00157
int *WritePointer(
const vtkIdType id,
const vtkIdType number);
00158
00160
void DeepCopy(
vtkDataArray *ia);
00161
00163
00169
void SetArray(
int* array,
vtkIdType size,
int save);
00170 void SetVoidArray(
void *array,
vtkIdType size,
int save)
00171 {this->SetArray((
int*)array, size, save);};
00173
00174
protected:
00175 vtkIntArray(
vtkIdType numComp=1);
00176 ~vtkIntArray();
00177
00178 int *Array;
00179
int *ResizeAndExtend(
const vtkIdType sz);
00180
00181 int TupleSize;
00182 float *Tuple;
00183
00184 int SaveUserArray;
00185
private:
00186 vtkIntArray(
const vtkIntArray&);
00187
void operator=(
const vtkIntArray&);
00188 };
00189
00190
00191 inline void vtkIntArray::SetNumberOfValues(
const vtkIdType number)
00192 {
00193 this->
Allocate(number);
00194 this->MaxId = number - 1;
00195 }
00196
00197 inline int *
vtkIntArray::WritePointer(
const vtkIdType id,
00198
const vtkIdType number)
00199 {
00200
vtkIdType newSize=
id+number;
00201
if ( newSize > this->Size )
00202 {
00203 this->
ResizeAndExtend(newSize);
00204 }
00205
if ( (--newSize) > this->MaxId )
00206 {
00207 this->MaxId = newSize;
00208 }
00209
return this->
Array +
id;
00210 }
00211
00212 inline void vtkIntArray::InsertValue(
const vtkIdType id,
const int i)
00213 {
00214
if (
id >= this->Size )
00215 {
00216 this->
ResizeAndExtend(
id+1);
00217 }
00218 this->
Array[
id] = i;
00219
if (
id > this->MaxId )
00220 {
00221 this->MaxId =
id;
00222 }
00223 }
00224
00225 inline vtkIdType vtkIntArray::InsertNextValue(
const int i)
00226 {
00227 this->
InsertValue (++this->MaxId,i);
00228
return this->MaxId;
00229 }
00230
00231
00232
#endif