1 /*========================================================================= 2 3 Program: Visualization Toolkit 4 Module: vtkTypedDataArray.txx 5 6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 7 All rights reserved. 8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 9 10 This software is distributed WITHOUT ANY WARRANTY; without even 11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 12 PURPOSE. See the above copyright notice for more information. 13 14 =========================================================================*/ 15 16 #ifndef vtkTypedDataArray_txx 17 #define vtkTypedDataArray_txx 18 19 #include "vtkTypedDataArray.h" 20 21 //------------------------------------------------------------------------------ 22 template <typename Scalar> vtkTypedDataArray()23vtkTypedDataArray<Scalar>::vtkTypedDataArray() 24 { 25 } 26 27 //------------------------------------------------------------------------------ 28 template <typename Scalar> ~vtkTypedDataArray()29vtkTypedDataArray<Scalar>::~vtkTypedDataArray() 30 { 31 } 32 33 //------------------------------------------------------------------------------ 34 template <typename Scalar> inline GetDataType()35int vtkTypedDataArray<Scalar>::GetDataType() 36 { 37 return vtkTypeTraits<Scalar>::VTK_TYPE_ID; 38 } 39 40 //------------------------------------------------------------------------------ 41 template <typename Scalar> inline GetDataTypeSize()42int vtkTypedDataArray<Scalar>::GetDataTypeSize() 43 { 44 return static_cast<int>(sizeof(Scalar)); 45 } 46 47 //------------------------------------------------------------------------------ 48 template <typename Scalar> inline SetNumberOfValues(vtkIdType number)49void vtkTypedDataArray<Scalar>::SetNumberOfValues(vtkIdType number) 50 { 51 if (this->Allocate(number)) 52 { 53 this->MaxId = number - 1; 54 } 55 this->Modified(); 56 } 57 58 //------------------------------------------------------------------------------ 59 template <typename Scalar> inline vtkTypedDataArray<Scalar> * FastDownCast(vtkAbstractArray * source)60vtkTypedDataArray<Scalar>::FastDownCast(vtkAbstractArray *source) 61 { 62 switch (source->GetArrayType()) 63 { 64 case vtkAbstractArray::DataArrayTemplate: 65 case vtkAbstractArray::TypedDataArray: 66 case vtkAbstractArray::MappedDataArray: 67 if (source->GetDataType() == vtkTypeTraits<Scalar>::VTK_TYPE_ID) 68 { 69 return static_cast<vtkTypedDataArray<Scalar>*>(source); 70 } 71 default: 72 return NULL; 73 } 74 } 75 76 #endif //vtkTypedDataArray_txx 77