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

Function getControllersExcludingStep

ThirdParty/xdmf3/vtkxdmf3/XdmfTemplate.cpp:182–358  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

180}
181
182std::vector<shared_ptr<XdmfHeavyDataController> >
183getControllersExcludingStep(unsigned int stepId,
184 std::vector<unsigned int> stepDims,
185 std::vector<shared_ptr<XdmfHeavyDataController> > datasetControllers)
186{
187 std::vector<shared_ptr<XdmfHeavyDataController> > returnVector;
188 if (datasetControllers.size() > 0)
189 {
190 unsigned int sizePerStep = 1;
191 for (unsigned int i = 0; i < stepDims.size(); ++i)
192 {
193 sizePerStep *= stepDims[i];
194 }
195 unsigned int offset = sizePerStep * stepId;
196 unsigned int sizeRemaining = sizePerStep;
197//printf("base offset = %u\nstarting size remaining = %u\ncutting from %u controllers\n", offset, sizeRemaining, datasetControllers.size());
198 // grabbing the subset is a little different for each type
199 // Right now we assume controllers are of the same type
200 for (unsigned int controllerIndex = 0; controllerIndex < datasetControllers.size(); ++controllerIndex)
201 {
202//printf("offset = %u out of controller size %u\n", offset, datasetControllers[controllerIndex]->getSize());
203 if (offset >= datasetControllers[controllerIndex]->getSize())
204 {
205 // The removed step isn't in the controller provided
206 // Simply add it back into the return set
207 returnVector.push_back(datasetControllers[controllerIndex]);
208 // then subtract the size from the offset
209 offset -= datasetControllers[controllerIndex]->getSize();
210 }
211 else
212 {
213 // The removed step is inside the controller provided
214 if (offset > 0)
215 {
216//printf("removed step is inside this controller\n");
217 // If offset is greater than zero the controller has a section chopped off the front
218 std::vector<unsigned int> newDim;
219 newDim.push_back(offset);
220 // Dataspace is the same
221 // stride is the same
222 // start is the same
223 // TODO dims is reduced to just cover the offset size
224 if (datasetControllers[controllerIndex]->getName().compare("Binary") == 0) {
225 shared_ptr<XdmfBinaryController> createdController =
226 XdmfBinaryController::New(datasetControllers[controllerIndex]->getFilePath(),
227 datasetControllers[controllerIndex]->getType(),
228 shared_dynamic_cast<XdmfBinaryController>(
229 datasetControllers[controllerIndex])->getEndian(),
230 shared_dynamic_cast<XdmfBinaryController>(
231 datasetControllers[controllerIndex])->getSeek(),
232 datasetControllers[controllerIndex]->getStart(),
233 datasetControllers[controllerIndex]->getStride(),
234 newDim,
235 datasetControllers[controllerIndex]->getDataspaceDimensions());
236 returnVector.push_back(createdController);
237 }
238 else if (datasetControllers[controllerIndex]->getName().compare("HDF") == 0) {
239 // TODO

Callers 1

removeStepMethod · 0.85

Calls 14

getEndianMethod · 0.80
getDataSetPathMethod · 0.80
getSizeMethod · 0.65
NewFunction · 0.50
sizeMethod · 0.45
push_backMethod · 0.45
compareMethod · 0.45
getNameMethod · 0.45
getFilePathMethod · 0.45
getTypeMethod · 0.45
getSeekMethod · 0.45

Tested by

no test coverage detected