00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00054 #ifndef __vtkFloatArray_h
00055 #define __vtkFloatArray_h
00056
00057 #include "vtkDataArray.h"
00058
00059 class VTK_EXPORT vtkFloatArray : public vtkDataArray
00060 {
00061 public:
00062 static vtkFloatArray *New();
00063 vtkTypeMacro(vtkFloatArray,vtkDataArray);
00064 void PrintSelf(ostream& os, vtkIndent indent);
00065
00067 int Allocate(const int sz, const int ext=1000);
00068
00070 void Initialize();
00071
00073 vtkDataArray *MakeObject();
00074
00076 int GetDataType()
00077 {return VTK_FLOAT;}
00078
00080 void SetNumberOfTuples(const int number);
00081
00083 float *GetTuple(const int i);
00084
00086 void GetTuple(const int i, float * tuple);
00087 void GetTuple(const int i, double * tuple);
00088
00090 void SetTuple(const int i, const float * tuple);
00091 void SetTuple(const int i, const double * tuple);
00092
00095 void InsertTuple(const int i, const float * tuple);
00096 void InsertTuple(const int i, const double * tuple);
00097
00100 int InsertNextTuple(const float * tuple);
00101 int InsertNextTuple(const double * tuple);
00102
00104 void Squeeze() {this->Resize (this->MaxId+1);};
00105
00109 float GetComponent(const int i, const int j);
00110
00115 void SetComponent(const int i, const int j, const float c);
00116
00120 void InsertComponent(const int i, const int j, const float c);
00121
00123 float GetValue(const int id)
00124 {return this->Array[id];}
00125
00128 void SetValue(const int id, const float value)
00129 {this->Array[id] = value;}
00130
00134 void SetNumberOfValues(const int number);
00135
00137 void InsertValue(const int id, const float f);
00138
00141 int InsertNextValue(const float f);
00142
00146 float *WritePointer(const int id, const int number);
00147
00150 void *GetVoidPointer(const int id)
00151 {return (void *)this->GetPointer(id);}
00152 float *GetPointer(const int id)
00153 {return this->Array + id;}
00154
00156 void DeepCopy(vtkDataArray *fa);
00157
00164 void SetArray(float* array, int size, int save);
00165 void SetVoidArray(void *array,int size, int save)
00166 {this->SetArray((float*)array, size, save);}
00167
00168 #ifndef VTK_REMOVE_LEGACY_CODE
00169
00170 void DeepCopy(vtkDataArray &fa)
00171 {VTK_LEGACY_METHOD(DeepCopy,"3.2"); this->DeepCopy(&fa);}
00172 #endif
00173
00174
00175 protected:
00176 vtkFloatArray(int numComp=1);
00177 ~vtkFloatArray();
00178 vtkFloatArray(const vtkFloatArray&) {};
00179 void operator=(const vtkFloatArray&) {};
00180
00181 float *Array;
00182 float *Resize(const int sz);
00183
00184 int SaveUserArray;
00185 };
00186
00187 inline void vtkFloatArray::SetNumberOfValues(const int number)
00188 {
00189 this->Allocate(number);
00190 this->MaxId = number - 1;
00191 }
00192
00193
00194 inline float *vtkFloatArray::WritePointer(const int id, const int number)
00195 {
00196 int newSize=id+number;
00197 if ( newSize > this->Size )
00198 {
00199 this->Resize(newSize);
00200 }
00201 if ( (--newSize) > this->MaxId )
00202 {
00203 this->MaxId = newSize;
00204 }
00205 return this->Array + id;
00206 }
00207
00208 inline void vtkFloatArray::InsertValue(const int id, const float f)
00209 {
00210 if ( id >= this->Size )
00211 {
00212 this->Resize(id+1);
00213 }
00214 this->Array[id] = f;
00215 if ( id > this->MaxId )
00216 {
00217 this->MaxId = id;
00218 }
00219 }
00220
00221 inline int vtkFloatArray::InsertNextValue(const float f)
00222 {
00223 this->InsertValue (++this->MaxId,f);
00224 return this->MaxId;
00225 }
00226
00227 #endif