| 439 | } |
| 440 | |
| 441 | void print_help() |
| 442 | { |
| 443 | const std::string tab = "\t"; |
| 444 | const std::string space = " "; |
| 445 | std::cout << "usage openpgl_debug -type <types> [<options>]" << std::endl; |
| 446 | std::cout << std::endl; |
| 447 | std::cout << "types:" << std::endl; |
| 448 | std::cout << space << "validateSamples " << tab << "Checks if the samples stored in a SampleStorage object are valid" << std::endl; |
| 449 | std::cout << space << " " << tab << "(i.e., all values are in valid ranges)." << std::endl; |
| 450 | std::cout << space << " " << tab << "example:" << std::endl; |
| 451 | std::cout << space << " " << tab << "\"openpgl_debug -type validateSamples -samples ss0.st\"" << std::endl; |
| 452 | std::cout << std::endl; |
| 453 | std::cout << space << "compareSamples " << tab << "Checks if the samples stored in two different SampleStorage objects" << std::endl; |
| 454 | std::cout << space << " " << tab << "are the same." << std::endl; |
| 455 | std::cout << space << " " << tab << "example:" << std::endl; |
| 456 | std::cout << space << " " << tab << "\"openpgl_debug -type compareSamples -samples ss0.st -samplesComp ss1.st\"" << std::endl; |
| 457 | std::cout << std::endl; |
| 458 | std::cout << space << "validateField " << tab << "Checks if a Field object is valid (e.g., if the spatial and directional structures are valid)." << std::endl; |
| 459 | std::cout << space << " " << tab << "example:" << std::endl; |
| 460 | std::cout << space << " " << tab << "\"openpgl_debug -type validateField -field field0.gf -device CPU_4\"" << std::endl; |
| 461 | std::cout << std::endl; |
| 462 | std::cout << space << "compareFields " << tab << "Checks if the guiding structures stored in two different Field objects" << std::endl; |
| 463 | std::cout << space << " " << tab << "are the same." << std::endl; |
| 464 | std::cout << space << " " << tab << "example:" << std::endl; |
| 465 | std::cout << space << " " << tab << "\"openpgl_debug -type compareFields -field field0.gf -fieldComp field1.gf -device CPU_4\"" << std::endl; |
| 466 | std::cout << std::endl; |
| 467 | std::cout << space << "fitField " << tab << "Fits a guiding structure (Field) from scratch and updates it using a set of samples" << std::endl; |
| 468 | std::cout << space << " " << tab << "loaded from one or multiple SampleStorage object." << std::endl; |
| 469 | std::cout << space << " " << tab << "example:" << std::endl; |
| 470 | std::cout << space << " " << tab << "\"openpgl_debug -type fitField -samples ss0.st ss1.st .. ssN.st -device CPU_4\"" << std::endl; |
| 471 | std::cout << std::endl; |
| 472 | std::cout << space << "updateField " << tab << "Loads a pre-trained guiding structure (Field) and updates it using a set of samples" << std::endl; |
| 473 | std::cout << space << " " << tab << "loaded from a SampleStorage object." << std::endl; |
| 474 | std::cout << space << " " << tab << "example:" << std::endl; |
| 475 | std::cout << space << " " << tab << "\"openpgl_debug -type updateField -field field.gf -samples ss0.st -device CPU_4\"" << std::endl; |
| 476 | std::cout << std::endl; |
| 477 | std::cout << space << "updateCompareFields " << tab << "Loads a pre-trained guiding structure (Field) and updates it using a set of samples loaded from a" << std::endl; |
| 478 | std::cout << space << " " << tab << "SampleStorage object and compares the resulting guiding structure to another pre-trained Field." << std::endl; |
| 479 | std::cout << space << " " << tab << "example:" << std::endl; |
| 480 | std::cout << space << " " << tab << "\"openpgl_debug -type updateCompareFields -field field0.gf -samples ss0.st -fieldComp field1.gf -device CPU_4\"" |
| 481 | << std::endl; |
| 482 | std::cout << std::endl; |
| 483 | std::cout << space << "exportSamplesToOBJ " << tab << "Loads samples from a SampleStorage object and stores them as \".obj\" file." << std::endl; |
| 484 | std::cout << space << " " << tab << "example:" << std::endl; |
| 485 | std::cout << space << " " << tab << "\"openpgl_debug -type exportSamplesToOBJ -samples ss0.st -out ss0.obj\"" << std::endl; |
| 486 | std::cout << std::endl; |
| 487 | } |
| 488 | |
| 489 | void fit_field(DebugParams &debugParams) |
| 490 | { |