Common/vtkPoints.h Source File

Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# Common/vtkPoints.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkPoints.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    00014
    00015 =========================================================================*/
    00044 #ifndef __vtkPoints_h
    00045 #define __vtkPoints_h
    00046
    00047 #include "vtkObject.h"
    00048
    00049 #include "vtkDataArray.h" // Needed for inline methods
    00050
    00051 class vtkIdList;
    00052 class vtkPoints;
    00053
    00054 class VTK_COMMON_EXPORT vtkPoints : public vtkObject
    00055 {
    00056 public:
    00057 //BTX
    00058   static vtkPoints *New(int dataType);
    00059 //ETX
    00060   static vtkPoints *New();
    00061
    00062   vtkTypeRevisionMacro(vtkPoints,vtkObject);
    00063   void PrintSelf(ostream& os, vtkIndent indent);
    00064
    00066   virtual int Allocate(const vtkIdType sz, const vtkIdType ext=1000);
    00067
    00069   virtual void Initialize();
    00070
    00071 #ifndef VTK_REMOVE_LEGACY_CODE
    00072
    00073   vtkPoints* MakeObject();
    00074 #endif
    00075
    00077
    00083   virtual void SetData(vtkDataArray *);
    00084   vtkDataArray *GetData() {return this->Data;};
    00086
    00089   virtual int GetDataType();
    00090
    00092
    00093   virtual void SetDataType(int dataType);
    00094   void SetDataTypeToBit() {this->SetDataType(VTK_BIT);};
    00095   void SetDataTypeToChar() {this->SetDataType(VTK_CHAR);};
    00096   void SetDataTypeToUnsignedChar() {this->SetDataType(VTK_UNSIGNED_CHAR);};
    00097   void SetDataTypeToShort() {this->SetDataType(VTK_SHORT);};
    00098   void SetDataTypeToUnsignedShort() {this->SetDataType(VTK_UNSIGNED_SHORT);};
    00099   void SetDataTypeToInt() {this->SetDataType(VTK_INT);};
    00100   void SetDataTypeToUnsignedInt() {this->SetDataType(VTK_UNSIGNED_INT);};
    00101   void SetDataTypeToLong() {this->SetDataType(VTK_LONG);};
    00102   void SetDataTypeToUnsignedLong() {this->SetDataType(VTK_UNSIGNED_LONG);};
    00103   void SetDataTypeToFloat() {this->SetDataType(VTK_FLOAT);};
    00104   void SetDataTypeToDouble() {this->SetDataType(VTK_DOUBLE);};
    00106
    00109   void *GetVoidPointer(const int id) {return this->Data->GetVoidPointer(id);};
    00110
    00112   virtual void Squeeze() {this->Data->Squeeze();};
    00113
    00115   virtual void Reset() {this->Data->Reset();};
    00116
    00118
    00121   virtual void DeepCopy(vtkPoints *ad);
    00122   virtual void ShallowCopy(vtkPoints *ad);
    00124
    00131   unsigned long GetActualMemorySize();
    00132
    00134   vtkIdType GetNumberOfPoints() { return this->Data->GetNumberOfTuples();};
    00135
    00137   float *GetPoint(vtkIdType id) { return this->Data->GetTuple(id);};
    00138
    00140
    00141   void GetPoint(vtkIdType id, float x[3]) { this->Data->GetTuple(id,x);};
    00142   void GetPoint(vtkIdType id, double x[3]) { this->Data->GetTuple(id,x);};
    00144
    00146
    00149   void SetPoint(vtkIdType id, const float x[3]) { this->Data->SetTuple(id,x);};
    00150   void SetPoint(vtkIdType id, const double x[3]) { this->Data->SetTuple(id,x);};
    00151   void SetPoint(vtkIdType id, double x, double y, double z);
    00153
    00155
    00157   void InsertPoint(vtkIdType id, const float x[3])
    00158     { this->Data->InsertTuple(id,x);};
    00159   void InsertPoint(vtkIdType id, const double x[3])
    00160     {this->Data->InsertTuple(id,x);};
    00161   void InsertPoint(vtkIdType id, double x, double y, double z);
    00163
    00165
    00166   vtkIdType InsertNextPoint(const float x[3]) {
    00167     return this->Data->InsertNextTuple(x);};
    00168   vtkIdType InsertNextPoint(const double x[3]) {
    00169     return this->Data->InsertNextTuple(x);};
    00170   vtkIdType InsertNextPoint(double x, double y, double z);
    00172
    00176   void SetNumberOfPoints(vtkIdType number);
    00177
    00179   void GetPoints(vtkIdList *ptId, vtkPoints *fp);
    00180
    00182   virtual void ComputeBounds();
    00183
    00185   float *GetBounds();
    00186
    00188   void GetBounds(float bounds[6]);
    00189
    00190 protected:
    00191   vtkPoints(int dataType=VTK_FLOAT);
    00192   ~vtkPoints();
    00193
    00194   float Bounds[6];
    00195   vtkTimeStamp ComputeTime; // Time at which bounds computed
    00196   vtkDataArray *Data;  // Array which represents data
    00197
    00198 private:
    00199   vtkPoints(const vtkPoints&);  // Not implemented.
    00200   void operator=(const vtkPoints&);  // Not implemented.
    00201 };
    00202
    00203 inline void vtkPoints::SetNumberOfPoints(vtkIdType number)
    00204 {
    00205   this->Data->SetNumberOfComponents(3);
    00206   this->Data->SetNumberOfTuples(number);
    00207 }
    00208
    00209 inline void vtkPoints::SetPoint(vtkIdType id, double x, double y, double z)
    00210 {
    00211   double p[3];
    00212   p[0] = x;
    00213   p[1] = y;
    00214   p[2] = z;
    00215   this->Data->SetTuple(id,p);
    00216 }
    00217
    00218 inline void vtkPoints::InsertPoint(vtkIdType id, double x, double y, double z)
    00219 {
    00220   double p[3];
    00221
    00222   p[0] = x;
    00223   p[1] = y;
    00224   p[2] = z;
    00225   this->Data->InsertTuple(id,p);
    00226 }
    00227
    00228 inline vtkIdType vtkPoints::InsertNextPoint(double x, double y, double z)
    00229 {
    00230   double p[3];
    00231
    00232   p[0] = x;
    00233   p[1] = y;
    00234   p[2] = z;
    00235   return this->Data->InsertNextTuple(p);
    00236 }
    00237
    00238 #endif
    00239