341 |
|
|
342 |
|
nTokens = tokenizer.countTokens(); |
343 |
|
|
344 |
< |
if (nTokens < 2) { |
344 |
> |
if (nTokens < 2) { |
345 |
|
sprintf(painCave.errMsg, |
346 |
|
"DumpReader Error: Not enough Tokens.\n%s\n", line.c_str()); |
347 |
|
painCave.isFatal = 1; |
358 |
|
std::string type = tokenizer.nextToken(); |
359 |
|
int size = type.size(); |
360 |
|
|
361 |
+ |
size_t found; |
362 |
+ |
|
363 |
+ |
if (needPos_) { |
364 |
+ |
found = type.find("p"); |
365 |
+ |
if (found == std::string::npos) { |
366 |
+ |
sprintf(painCave.errMsg, |
367 |
+ |
"DumpReader Error: StuntDouble %d has no Position\n" |
368 |
+ |
"\tField (\"p\") specified.\n%s\n", index, |
369 |
+ |
line.c_str()); |
370 |
+ |
painCave.isFatal = 1; |
371 |
+ |
simError(); |
372 |
+ |
} |
373 |
+ |
} |
374 |
+ |
|
375 |
+ |
if (integrableObject->isDirectional()) { |
376 |
+ |
if (needQuaternion_) { |
377 |
+ |
found = type.find("q"); |
378 |
+ |
if (found == std::string::npos) { |
379 |
+ |
sprintf(painCave.errMsg, |
380 |
+ |
"DumpReader Error: Directional StuntDouble %d has no\n" |
381 |
+ |
"\tQuaternion Field (\"q\") specified.\n%s\n", index, |
382 |
+ |
line.c_str()); |
383 |
+ |
painCave.isFatal = 1; |
384 |
+ |
simError(); |
385 |
+ |
} |
386 |
+ |
} |
387 |
+ |
} |
388 |
+ |
|
389 |
|
for(int i = 0; i < size; ++i) { |
390 |
|
switch(type[i]) { |
391 |
|
|
466 |
|
integrableObject->setTrq(torque); |
467 |
|
break; |
468 |
|
} |
469 |
+ |
case 'u' : { |
470 |
+ |
|
471 |
+ |
RealType particlePot; |
472 |
+ |
particlePot = tokenizer.nextTokenAsDouble(); |
473 |
+ |
integrableObject->setParticlePot(particlePot); |
474 |
+ |
break; |
475 |
+ |
} |
476 |
|
default: { |
477 |
|
sprintf(painCave.errMsg, |
478 |
|
"DumpReader Error: %s is an unrecognized type\n", type.c_str()); |