| 512 | } |
| 513 | |
| 514 | void SceneGraph::TriangleMeshNode::verify() const |
| 515 | { |
| 516 | const size_t N = numVertices(); |
| 517 | if (normals.size() && normals.size() != positions.size()) |
| 518 | THROW_RUNTIME_ERROR("incompatible number of time steps"); |
| 519 | for (const auto& p : positions) |
| 520 | if (p.size() != N) |
| 521 | THROW_RUNTIME_ERROR("incompatible vertex array sizes"); |
| 522 | for (const auto& n : normals) |
| 523 | if (n.size() && n.size() != N) |
| 524 | THROW_RUNTIME_ERROR("incompatible vertex array sizes"); |
| 525 | if (texcoords.size() && texcoords.size() != N) THROW_RUNTIME_ERROR("incompatible vertex array sizes"); |
| 526 | for (auto& tri : triangles) { |
| 527 | if (size_t(tri.v0) >= N || size_t(tri.v1) >= N || size_t(tri.v2) >= N) |
| 528 | THROW_RUNTIME_ERROR("invalid triangle"); |
| 529 | } |
| 530 | } |
| 531 | |
| 532 | void SceneGraph::QuadMeshNode::verify() const |
| 533 | { |
no test coverage detected