MCPcopy Create free account
hub / github.com/Kitware/VTK / vtkImageMapToColorsExecute

Function vtkImageMapToColorsExecute

Imaging/Core/vtkImageMapToColors.cxx:150–268  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

148// we can not always rely on the ActiveScalar information.
149
150static 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 {

Callers 1

ThreadedRequestDataMethod · 0.85

Calls 8

GetArrayPointerMethod · 0.80
GetDataTypeMethod · 0.45
GetDataTypeSizeMethod · 0.45
GetLookupTableMethod · 0.45
UpdateProgressMethod · 0.45

Tested by

no test coverage detected