| 845 | } |
| 846 | |
| 847 | void vtkFixedPointVolumeRayCastMapper::StoreRenderTime(vtkRenderer* ren, vtkVolume* vol, float time) |
| 848 | { |
| 849 | int i; |
| 850 | for (i = 0; i < this->RenderTableEntries; i++) |
| 851 | { |
| 852 | if (this->RenderVolumeTable[i] == vol && this->RenderRendererTable[i] == ren) |
| 853 | { |
| 854 | this->RenderTimeTable[i] = time; |
| 855 | return; |
| 856 | } |
| 857 | } |
| 858 | |
| 859 | // Need to increase size |
| 860 | if (this->RenderTableEntries >= this->RenderTableSize) |
| 861 | { |
| 862 | if (this->RenderTableSize == 0) |
| 863 | { |
| 864 | this->RenderTableSize = 10; |
| 865 | } |
| 866 | else |
| 867 | { |
| 868 | this->RenderTableSize *= 2; |
| 869 | } |
| 870 | |
| 871 | float* oldTimePtr = this->RenderTimeTable; |
| 872 | vtkVolume** oldVolumePtr = this->RenderVolumeTable; |
| 873 | vtkRenderer** oldRendererPtr = this->RenderRendererTable; |
| 874 | |
| 875 | this->RenderTimeTable = new float[this->RenderTableSize]; |
| 876 | this->RenderVolumeTable = new vtkVolume*[this->RenderTableSize]; |
| 877 | this->RenderRendererTable = new vtkRenderer*[this->RenderTableSize]; |
| 878 | |
| 879 | for (i = 0; i < this->RenderTableEntries; i++) |
| 880 | { |
| 881 | this->RenderTimeTable[i] = oldTimePtr[i]; |
| 882 | this->RenderVolumeTable[i] = oldVolumePtr[i]; |
| 883 | this->RenderRendererTable[i] = oldRendererPtr[i]; |
| 884 | } |
| 885 | |
| 886 | delete[] oldTimePtr; |
| 887 | delete[] oldVolumePtr; |
| 888 | delete[] oldRendererPtr; |
| 889 | } |
| 890 | |
| 891 | this->RenderTimeTable[this->RenderTableEntries] = time; |
| 892 | this->RenderVolumeTable[this->RenderTableEntries] = vol; |
| 893 | this->RenderRendererTable[this->RenderTableEntries] = ren; |
| 894 | |
| 895 | this->RenderTableEntries++; |
| 896 | } |
| 897 | |
| 898 | void vtkFixedPointVolumeRayCastMapper::SetNumberOfThreads(int num) |
| 899 | { |