------------------------------------------------------------------------------
| 649 | |
| 650 | //------------------------------------------------------------------------------ |
| 651 | vtkVariant vtkTable::GetValue(vtkIdType row, vtkIdType col) |
| 652 | { |
| 653 | vtkAbstractArray* arr = this->GetColumn(col); |
| 654 | if (!arr) |
| 655 | { |
| 656 | return vtkVariant(); |
| 657 | } |
| 658 | |
| 659 | int comps = arr->GetNumberOfComponents(); |
| 660 | if (row >= arr->GetNumberOfTuples()) |
| 661 | { |
| 662 | return vtkVariant(); |
| 663 | } |
| 664 | |
| 665 | if (comps == 1) |
| 666 | { |
| 667 | return arr->GetVariantValue(row); |
| 668 | } |
| 669 | |
| 670 | if (vtkArrayDownCast<vtkDataArray>(arr)) |
| 671 | { |
| 672 | // Create a variant holding an array of the appropriate type |
| 673 | // with one tuple. |
| 674 | vtkDataArray* da = vtkDataArray::CreateDataArray(arr->GetDataType()); |
| 675 | da->SetNumberOfComponents(comps); |
| 676 | da->InsertNextTuple(row, arr); |
| 677 | vtkVariant v(da); |
| 678 | da->Delete(); |
| 679 | return v; |
| 680 | } |
| 681 | else if (vtkArrayDownCast<vtkStringArray>(arr)) |
| 682 | { |
| 683 | vtkStringArray* data = vtkArrayDownCast<vtkStringArray>(arr); |
| 684 | // Create a variant holding a vtkStringArray with one tuple. |
| 685 | vtkNew<vtkStringArray> sa; |
| 686 | sa->SetNumberOfComponents(comps); |
| 687 | sa->InsertNextTuple(row, data); |
| 688 | vtkVariant v(sa); |
| 689 | return v; |
| 690 | } |
| 691 | else if (vtkArrayDownCast<vtkVariantArray>(arr)) |
| 692 | { |
| 693 | vtkVariantArray* data = vtkArrayDownCast<vtkVariantArray>(arr); |
| 694 | // Create a variant holding a vtkVariantArray with one tuple. |
| 695 | vtkNew<vtkVariantArray> va; |
| 696 | va->SetNumberOfComponents(comps); |
| 697 | va->InsertNextTuple(row, data); |
| 698 | vtkVariant v(va); |
| 699 | return v; |
| 700 | } |
| 701 | return vtkVariant(); |
| 702 | } |
| 703 | |
| 704 | //------------------------------------------------------------------------------ |
| 705 | vtkVariant vtkTable::GetValueByName(vtkIdType row, const char* col) |
no test coverage detected