| 2582 | // LogAffineTransform |
| 2583 | |
| 2584 | inline void loadLogParam(const YAML::Node & node, |
| 2585 | double(¶m)[3], |
| 2586 | const std::string & paramName) |
| 2587 | { |
| 2588 | if (node.size() == 0) |
| 2589 | { |
| 2590 | // If a single value is provided. |
| 2591 | double val = 0.0; |
| 2592 | load(node, val); |
| 2593 | param[0] = val; |
| 2594 | param[1] = val; |
| 2595 | param[2] = val; |
| 2596 | } |
| 2597 | else |
| 2598 | { |
| 2599 | std::vector<double> val; |
| 2600 | load(node, val); |
| 2601 | if (val.size() != 3) |
| 2602 | { |
| 2603 | std::ostringstream os; |
| 2604 | os << "LogAffine/CameraTransform parse error, " << paramName; |
| 2605 | os << " value field must have 3 components. Found '" << val.size() << "'."; |
| 2606 | throw Exception(os.str().c_str()); |
| 2607 | } |
| 2608 | param[0] = val[0]; |
| 2609 | param[1] = val[1]; |
| 2610 | param[2] = val[2]; |
| 2611 | } |
| 2612 | } |
| 2613 | |
| 2614 | inline void load(const YAML::Node& node, LogAffineTransformRcPtr& t) |
| 2615 | { |