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

dox/Common/vtkPoints.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkPoints.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 =========================================================================*/
00025 #ifndef __vtkPoints_h
00026 #define __vtkPoints_h
00027 
00028 #include "vtkObject.h"
00029 
00030 #include "vtkDataArray.h" // Needed for inline methods
00031 
00032 class vtkIdList;
00033 class vtkPoints;
00034 
00035 class VTK_COMMON_EXPORT vtkPoints : public vtkObject
00036 {
00037 public:
00038 //BTX
00039   static vtkPoints *New(int dataType);
00040 //ETX
00041   static vtkPoints *New();
00042 
00043   vtkTypeRevisionMacro(vtkPoints,vtkObject);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045 
00047   virtual int Allocate(const vtkIdType sz, const vtkIdType ext=1000);
00048   
00050   virtual void Initialize();
00051 
00053 
00059   virtual void SetData(vtkDataArray *);
00060   vtkDataArray *GetData() {return this->Data;};
00062 
00065   virtual int GetDataType();
00066 
00068 
00069   virtual void SetDataType(int dataType);
00070   void SetDataTypeToBit() {this->SetDataType(VTK_BIT);};
00071   void SetDataTypeToChar() {this->SetDataType(VTK_CHAR);};
00072   void SetDataTypeToUnsignedChar() {this->SetDataType(VTK_UNSIGNED_CHAR);};
00073   void SetDataTypeToShort() {this->SetDataType(VTK_SHORT);};
00074   void SetDataTypeToUnsignedShort() {this->SetDataType(VTK_UNSIGNED_SHORT);};
00075   void SetDataTypeToInt() {this->SetDataType(VTK_INT);};
00076   void SetDataTypeToUnsignedInt() {this->SetDataType(VTK_UNSIGNED_INT);};
00077   void SetDataTypeToLong() {this->SetDataType(VTK_LONG);};
00078   void SetDataTypeToUnsignedLong() {this->SetDataType(VTK_UNSIGNED_LONG);};
00079   void SetDataTypeToFloat() {this->SetDataType(VTK_FLOAT);};
00080   void SetDataTypeToDouble() {this->SetDataType(VTK_DOUBLE);};
00082 
00085   void *GetVoidPointer(const int id) {return this->Data->GetVoidPointer(id);};
00086 
00088   virtual void Squeeze() {this->Data->Squeeze();};
00089 
00091   virtual void Reset() {this->Data->Reset();};
00092 
00094 
00097   virtual void DeepCopy(vtkPoints *ad);
00098   virtual void ShallowCopy(vtkPoints *ad);
00100 
00107   unsigned long GetActualMemorySize();
00108 
00110   vtkIdType GetNumberOfPoints() { return this->Data->GetNumberOfTuples();};
00111 
00113   double *GetPoint(vtkIdType id) { return this->Data->GetTuple(id);};
00114 
00116   void GetPoint(vtkIdType id, double x[3]) { this->Data->GetTuple(id,x);};
00117 
00119 
00122   void SetPoint(vtkIdType id, const float x[3]) { this->Data->SetTuple(id,x);};
00123   void SetPoint(vtkIdType id, const double x[3]) { this->Data->SetTuple(id,x);};
00124   void SetPoint(vtkIdType id, double x, double y, double z);
00126 
00128 
00130   void InsertPoint(vtkIdType id, const float x[3])
00131     { this->Data->InsertTuple(id,x);};
00132   void InsertPoint(vtkIdType id, const double x[3])
00133     {this->Data->InsertTuple(id,x);};
00134   void InsertPoint(vtkIdType id, double x, double y, double z);
00136   
00138 
00139   vtkIdType InsertNextPoint(const float x[3]) { 
00140     return this->Data->InsertNextTuple(x);};
00141   vtkIdType InsertNextPoint(const double x[3]) { 
00142     return this->Data->InsertNextTuple(x);};
00143   vtkIdType InsertNextPoint(double x, double y, double z);
00145 
00149   void SetNumberOfPoints(vtkIdType number);
00150 
00152   void GetPoints(vtkIdList *ptId, vtkPoints *fp);
00153 
00155   virtual void ComputeBounds();
00156 
00158   double *GetBounds();
00159 
00161   void GetBounds(double bounds[6]);
00162 
00163 protected:
00164   vtkPoints(int dataType=VTK_FLOAT);
00165   ~vtkPoints();
00166 
00167   double Bounds[6];
00168   vtkTimeStamp ComputeTime; // Time at which bounds computed
00169   vtkDataArray *Data;  // Array which represents data
00170 
00171 private:
00172   vtkPoints(const vtkPoints&);  // Not implemented.
00173   void operator=(const vtkPoints&);  // Not implemented.
00174 };
00175 
00176 inline void vtkPoints::SetNumberOfPoints(vtkIdType number)
00177 {
00178   this->Data->SetNumberOfComponents(3);
00179   this->Data->SetNumberOfTuples(number);
00180 }
00181 
00182 inline void vtkPoints::SetPoint(vtkIdType id, double x, double y, double z)
00183 {
00184   double p[3];
00185   p[0] = x;
00186   p[1] = y;
00187   p[2] = z;
00188   this->Data->SetTuple(id,p);
00189 }
00190 
00191 inline void vtkPoints::InsertPoint(vtkIdType id, double x, double y, double z)
00192 {
00193   double p[3];
00194 
00195   p[0] = x;
00196   p[1] = y;
00197   p[2] = z;
00198   this->Data->InsertTuple(id,p);
00199 }
00200 
00201 inline vtkIdType vtkPoints::InsertNextPoint(double x, double y, double z)
00202 {
00203   double p[3];
00204 
00205   p[0] = x;
00206   p[1] = y;
00207   p[2] = z;
00208   return this->Data->InsertNextTuple(p);
00209 }
00210 
00211 #endif
00212 

Generated by  doxygen 1.7.1