/*========================================================================= Program: Visualization Toolkit Module: vtkTypedDataArray.txx Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #ifndef vtkTypedDataArray_txx #define vtkTypedDataArray_txx #include "vtkTypedDataArray.h" //------------------------------------------------------------------------------ template vtkTypedDataArray::vtkTypedDataArray() { } //------------------------------------------------------------------------------ template vtkTypedDataArray::~vtkTypedDataArray() { } //------------------------------------------------------------------------------ template bool vtkTypedDataArray::AllocateTuples(vtkIdType) { vtkErrorMacro(<<"This method is not preferred for vtkTypedDataArray " "implementations. Either add an appropriate implementation, or " "use Allocate instead."); return false; } //------------------------------------------------------------------------------ template bool vtkTypedDataArray::ReallocateTuples(vtkIdType) { vtkErrorMacro(<<"This method is not preferred for vtkTypedDataArray " "implementations. Either add an appropriate implementation, or " "use Resize instead."); return false; } //------------------------------------------------------------------------------ template inline int vtkTypedDataArray::GetDataType() { return vtkTypeTraits::VTK_TYPE_ID; } //------------------------------------------------------------------------------ template inline int vtkTypedDataArray::GetDataTypeSize() { return static_cast(sizeof(Scalar)); } //------------------------------------------------------------------------------ template inline void vtkTypedDataArray::SetNumberOfValues(vtkIdType number) { if (this->Allocate(number)) { this->MaxId = number - 1; } this->Modified(); } //------------------------------------------------------------------------------ template inline typename vtkTypedDataArray::ValueType vtkTypedDataArray::GetTypedComponent(vtkIdType tupleIdx, int comp) const { return this->GetValue(tupleIdx * this->NumberOfComponents + comp); } //------------------------------------------------------------------------------ template inline void vtkTypedDataArray::SetTypedComponent(vtkIdType tupleIdx, int comp, ValueType v) { this->SetValue(tupleIdx * this->NumberOfComponents + comp, v); } //------------------------------------------------------------------------------ template inline vtkTypedDataArray * vtkTypedDataArray::FastDownCast(vtkAbstractArray *source) { if (source) { switch (source->GetArrayType()) { case vtkAbstractArray::TypedDataArray: case vtkAbstractArray::MappedDataArray: if (vtkDataTypesCompare(source->GetDataType(), vtkTypeTraits::VTK_TYPE_ID)) { return static_cast*>(source); } break; } } return nullptr; } #endif //vtkTypedDataArray_txx