| 527 | } |
| 528 | |
| 529 | avector<Vec3fa> XMLLoader::loadVec3faArray(const Ref<XML>& xml) |
| 530 | { |
| 531 | if (!xml) return avector<Vec3fa>(); |
| 532 | |
| 533 | if (xml->parm("ofs") != "") { |
| 534 | std::vector<Vec3f> temp = loadBinary<std::vector<Vec3f>>(xml); |
| 535 | avector<Vec3fa> data; data.resize(temp.size()); |
| 536 | for (size_t i=0; i<temp.size(); i++) data[i] = Vec3fa(temp[i]); |
| 537 | return data; |
| 538 | } |
| 539 | else |
| 540 | { |
| 541 | avector<Vec3fa> data; |
| 542 | if (xml->body.size() % 3 != 0) THROW_RUNTIME_ERROR(xml->loc.str()+": wrong vector<float3> body"); |
| 543 | data.resize(xml->body.size()/3); |
| 544 | for (size_t i=0; i<data.size(); i++) |
| 545 | data[i] = Vec3fa(xml->body[3*i+0].Float(),xml->body[3*i+1].Float(),xml->body[3*i+2].Float()); |
| 546 | return data; |
| 547 | } |
| 548 | } |
| 549 | |
| 550 | avector<Vec3ff> XMLLoader::loadVec3ffArray(const Ref<XML>& xml) |
| 551 | { |