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 
00050 #ifndef __vtkTensors_h
00051 #define __vtkTensors_h
00052 
00053 #include "vtkAttributeData.h"
00054 #include "vtkTensor.h"
00055 
00056 class vtkIdList;
00057 class vtkTensors;
00058 
00059 class VTK_EXPORT vtkTensors : public vtkAttributeData
00060 {
00061 public:
00062   static vtkTensors *New(int dataType);
00063   static vtkTensors *New();
00064 
00065   vtkTypeMacro(vtkTensors,vtkAttributeData);
00066   void PrintSelf(ostream& os, vtkIndent indent);
00067 
00069   vtkAttributeData *MakeObject() 
00070     {return vtkTensors::New(this->GetDataType());};
00071 
00073   int GetNumberOfTensors() {return this->Data->GetNumberOfTuples();};
00074 
00076   vtkTensor *GetTensor(int id);
00077 
00081   void SetNumberOfTensors(int number);
00082 
00084   void GetTensor(int id, vtkTensor *t);
00085 
00089   void SetTensor(int id, vtkTensor *t);
00090 
00093   void InsertTensor(int id, vtkTensor *t);
00094   void InsertTensor(int id, float t11, float t12, float t13, 
00095                     float t21, float t22, float t23, 
00096                     float t31, float t32, float t33);
00097 
00100   int InsertNextTensor(vtkTensor *t);
00101   int InsertNextTensor(float t11, float t12, float t13, 
00102                        float t21, float t22, float t23, 
00103                        float t31, float t32, float t33);
00104 
00106   void GetTensors(vtkIdList *ptId, vtkTensors *fv);
00107 
00108 #ifndef VTK_REMOVE_LEGACY_CODE
00109 
00110   void GetTensors(vtkIdList& ptId, vtkTensors& fv)
00111     {VTK_LEGACY_METHOD(GetTensors,"3.2"); this->GetTensors(&ptId, &fv);}
00112   void GetTensor(int id, vtkTensor& t) 
00113     {VTK_LEGACY_METHOD(GetTensor,"3.2"); this->GetTensor(id, &t);}
00114 #endif
00115   
00116 protected:
00117   vtkTensors();
00118   ~vtkTensors();
00119   vtkTensors(const vtkTensors&) {};
00120   void operator=(const vtkTensors&) {};
00121 
00122   vtkTensor *T;
00123 
00124 };
00125 
00126 
00127 inline vtkTensor *vtkTensors::GetTensor(int id)
00128 {
00129   this->T->T = this->Data->GetTuple(id);
00130   return this->T;
00131 }
00132 
00133 inline void vtkTensors::SetNumberOfTensors(int number)
00134 {
00135   this->Data->SetNumberOfComponents(9);
00136   this->Data->SetNumberOfTuples(number);
00137 }
00138 
00139 
00140 
00141 #include "vtkIdList.h"
00142 
00143 #endif
00144