| 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()); |