MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / FALCOR_SCRIPT_BINDING

Function FALCOR_SCRIPT_BINDING

Source/Falcor/Scene/TriangleMesh.cpp:325–363  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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}

Callers

nothing calls this directly

Calls 4

addEnumBinaryOperatorsFunction · 0.85
initFunction · 0.85
valueMethod · 0.45
resolvePathMethod · 0.45

Tested by

no test coverage detected