| 148 | // we can not always rely on the ActiveScalar information. |
| 149 | |
| 150 | static void vtkImageMapToColorsExecute(vtkImageMapToColors* self, vtkImageData* inData, |
| 151 | vtkDataArray* inArray, vtkCharArray* maskArray, vtkImageData* outData, vtkDataArray* outArray, |
| 152 | int outExt[6], int id, unsigned char* nanColor) |
| 153 | { |
| 154 | int idxY, idxZ; |
| 155 | int extX, extY, extZ; |
| 156 | vtkIdType inIncX, inIncY, inIncZ, inMaskIncX, inMaskIncY, inMaskIncZ; |
| 157 | vtkIdType outIncX, outIncY, outIncZ; |
| 158 | unsigned long count = 0; |
| 159 | unsigned long target; |
| 160 | int dataType = inArray->GetDataType(); |
| 161 | int scalarSize = inArray->GetDataTypeSize(); |
| 162 | |
| 163 | int coordinate[3] = { outExt[0], outExt[2], outExt[4] }; |
| 164 | void* inPtr = inData->GetArrayPointer(inArray, coordinate); |
| 165 | char* inMask = |
| 166 | maskArray ? static_cast<char*>(inData->GetArrayPointer(maskArray, coordinate)) : nullptr; |
| 167 | |
| 168 | int numberOfComponents, numberOfOutputComponents, outputFormat; |
| 169 | int rowLength; |
| 170 | vtkScalarsToColors* lookupTable = self->GetLookupTable(); |
| 171 | unsigned char* outPtr = |
| 172 | static_cast<unsigned char*>(outData->GetArrayPointer(outArray, coordinate)); |
| 173 | unsigned char* outPtr1; |
| 174 | void* inPtr1; |
| 175 | |
| 176 | // find the region to loop over |
| 177 | extX = outExt[1] - outExt[0] + 1; |
| 178 | extY = outExt[3] - outExt[2] + 1; |
| 179 | extZ = outExt[5] - outExt[4] + 1; |
| 180 | |
| 181 | target = static_cast<unsigned long>(extZ * extY / 50.0); |
| 182 | target++; |
| 183 | |
| 184 | // Get increments to march through data |
| 185 | inData->GetContinuousIncrements(inArray, outExt, inIncX, inIncY, inIncZ); |
| 186 | inMaskIncX = inMaskIncY = inMaskIncZ = 0; |
| 187 | if (maskArray) |
| 188 | { |
| 189 | inData->GetContinuousIncrements(maskArray, outExt, inMaskIncX, inMaskIncY, inMaskIncZ); |
| 190 | } |
| 191 | // because we are using void * and char * we must take care |
| 192 | // of the scalar size in the increments |
| 193 | inIncY *= scalarSize; |
| 194 | inIncZ *= scalarSize; |
| 195 | outData->GetContinuousIncrements(outArray, outExt, outIncX, outIncY, outIncZ); |
| 196 | numberOfComponents = inData->GetNumberOfScalarComponents(); |
| 197 | numberOfOutputComponents = outData->GetNumberOfScalarComponents(); |
| 198 | outputFormat = self->GetOutputFormat(); |
| 199 | rowLength = extX * scalarSize * numberOfComponents; |
| 200 | |
| 201 | // Loop through output pixels |
| 202 | outPtr1 = outPtr; |
| 203 | inPtr1 = static_cast<void*>(static_cast<char*>(inPtr) + self->GetActiveComponent() * scalarSize); |
| 204 | for (idxZ = 0; idxZ < extZ; idxZ++) |
| 205 | { |
| 206 | for (idxY = 0; !self->AbortExecute && idxY < extY; idxY++) |
| 207 | { |
no test coverage detected