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()23 vtkTypedDataArray<Scalar>::vtkTypedDataArray()
24 {
25 }
26 
27 //------------------------------------------------------------------------------
28 template <typename Scalar>
~vtkTypedDataArray()29 vtkTypedDataArray<Scalar>::~vtkTypedDataArray()
30 {
31 }
32 
33 //------------------------------------------------------------------------------
34 template <typename Scalar> inline
GetDataType()35 int vtkTypedDataArray<Scalar>::GetDataType()
36 {
37   return vtkTypeTraits<Scalar>::VTK_TYPE_ID;
38 }
39 
40 //------------------------------------------------------------------------------
41 template <typename Scalar> inline
GetDataTypeSize()42 int vtkTypedDataArray<Scalar>::GetDataTypeSize()
43 {
44   return static_cast<int>(sizeof(Scalar));
45 }
46 
47 //------------------------------------------------------------------------------
48 template <typename Scalar> inline
SetNumberOfValues(vtkIdType number)49 void 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)60 vtkTypedDataArray<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