| 323 | {} |
| 324 | |
| 325 | FALCOR_SCRIPT_BINDING(TriangleMesh) |
| 326 | { |
| 327 | using namespace pybind11::literals; |
| 328 | |
| 329 | pybind11::enum_<TriangleMesh::ImportFlags> flags(m, "TriangleMeshImportFlags"); |
| 330 | flags.value("Default", TriangleMesh::ImportFlags::Default); |
| 331 | flags.value("GenSmoothNormals", TriangleMesh::ImportFlags::GenSmoothNormals); |
| 332 | flags.value("JoinIdenticalVertices", TriangleMesh::ImportFlags::JoinIdenticalVertices); |
| 333 | ScriptBindings::addEnumBinaryOperators(flags); |
| 334 | |
| 335 | pybind11::class_<TriangleMesh, ref<TriangleMesh>> triangleMesh(m, "TriangleMesh"); |
| 336 | |
| 337 | pybind11::class_<TriangleMesh::Vertex> vertex(triangleMesh, "Vertex"); |
| 338 | vertex.def_readwrite("position", &TriangleMesh::Vertex::position); |
| 339 | vertex.def_readwrite("normal", &TriangleMesh::Vertex::normal); |
| 340 | vertex.def_readwrite("texCoord", &TriangleMesh::Vertex::texCoord); |
| 341 | |
| 342 | triangleMesh.def_property("name", &TriangleMesh::getName, &TriangleMesh::setName); |
| 343 | triangleMesh.def_property("frontFaceCW", &TriangleMesh::getFrontFaceCW, &TriangleMesh::setFrontFaceCW); |
| 344 | triangleMesh.def_property_readonly("vertices", &TriangleMesh::getVertices); |
| 345 | triangleMesh.def_property_readonly("indices", &TriangleMesh::getIndices); |
| 346 | triangleMesh.def(pybind11::init(pybind11::overload_cast<>(&TriangleMesh::create))); |
| 347 | triangleMesh.def("addVertex", &TriangleMesh::addVertex, "position"_a, "normal"_a, "texCoord"_a); |
| 348 | triangleMesh.def("addTriangle", &TriangleMesh::addTriangle, "i0"_a, "i1"_a, "i2"_a); |
| 349 | triangleMesh.def_static("createQuad", &TriangleMesh::createQuad, "size"_a = float2(1.f)); |
| 350 | triangleMesh.def_static("createDisk", &TriangleMesh::createDisk, "radius"_a = 1.f, "segments"_a = 32); |
| 351 | triangleMesh.def_static("createCube", &TriangleMesh::createCube, "size"_a = float3(1.f)); |
| 352 | triangleMesh.def_static("createSphere", &TriangleMesh::createSphere, "radius"_a = 1.f, "segmentsU"_a = 32, "segmentsV"_a = 32); |
| 353 | triangleMesh.def_static("createFromFile", |
| 354 | [](const std::filesystem::path& path, bool smoothNormals) |
| 355 | { return TriangleMesh::createFromFile(getActiveAssetResolver().resolvePath(path), smoothNormals); }, |
| 356 | "path"_a, "smoothNormals"_a = false |
| 357 | ); // PYTHONDEPRECATED |
| 358 | triangleMesh.def_static("createFromFile", |
| 359 | [](const std::filesystem::path& path, TriangleMesh::ImportFlags importFlags) |
| 360 | { return TriangleMesh::createFromFile(getActiveAssetResolver().resolvePath(path), importFlags); }, |
| 361 | "path"_a, "importFlags"_a |
| 362 | ); // PYTHONDEPRECATED |
| 363 | } |
| 364 | } |
nothing calls this directly
no test coverage detected