MCPcopy Create free account
hub / github.com/RenderKit/embree / remove_mblur

Method remove_mblur

tutorials/common/scenegraph/scenegraph.cpp:1791–1844  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1789 }
1790
1791 Ref<SceneGraph::Node> SceneGraph::remove_mblur(Ref<SceneGraph::Node> node, bool mblur)
1792 {
1793 if (Ref<SceneGraph::TransformNode> xfmNode = node.dynamicCast<SceneGraph::TransformNode>()) {
1794 if (mblur) {
1795 if (xfmNode->spaces.size() > 1)
1796 return nullptr;
1797 } else {
1798 if (xfmNode->spaces.size() > 1)
1799 return node;
1800 }
1801 xfmNode->child = remove_mblur(xfmNode->child, mblur);
1802 }
1803 else if (Ref<SceneGraph::MultiTransformNode> xfmNode = node.dynamicCast<SceneGraph::MultiTransformNode>()) {
1804 if (mblur) {
1805 if (xfmNode->spaces.size() == 0 || xfmNode->spaces[0].size() > 1)
1806 return nullptr;
1807 } else {
1808 if (xfmNode->spaces.size() > 0 && xfmNode->spaces[0].size() > 1)
1809 return node;
1810 }
1811 xfmNode->child = remove_mblur(xfmNode->child, mblur);
1812 }
1813 else if (Ref<SceneGraph::GroupNode> groupNode = node.dynamicCast<SceneGraph::GroupNode>())
1814 {
1815 for (size_t i=0; i<groupNode->children.size(); i++)
1816 groupNode->children[i] = remove_mblur(groupNode->children[i], mblur);
1817 }
1818 else if (Ref<SceneGraph::TriangleMeshNode> mesh = node.dynamicCast<SceneGraph::TriangleMeshNode>())
1819 {
1820 if ((mesh->numTimeSteps() > 1) == mblur)
1821 return nullptr;
1822 }
1823 else if (Ref<SceneGraph::QuadMeshNode> mesh = node.dynamicCast<SceneGraph::QuadMeshNode>())
1824 {
1825 if ((mesh->numTimeSteps() > 1) == mblur)
1826 return nullptr;
1827 }
1828 else if (Ref<SceneGraph::SubdivMeshNode> mesh = node.dynamicCast<SceneGraph::SubdivMeshNode>())
1829 {
1830 if ((mesh->numTimeSteps() > 1) == mblur)
1831 return nullptr;
1832 }
1833 else if (Ref<SceneGraph::HairSetNode> mesh = node.dynamicCast<SceneGraph::HairSetNode>())
1834 {
1835 if ((mesh->numTimeSteps() > 1) == mblur)
1836 return nullptr;
1837 }
1838 else if (Ref<SceneGraph::PointSetNode> mesh = node.dynamicCast<SceneGraph::PointSetNode>())
1839 {
1840 if ((mesh->numTimeSteps() > 1) == mblur)
1841 return nullptr;
1842 }
1843 return node;
1844 }
1845
1846 void SceneGraph::convert_mblur_to_nonmblur(Ref<Node> node)
1847 {

Callers 1

mainMethod · 0.45

Calls 2

sizeMethod · 0.45
numTimeStepsMethod · 0.45

Tested by

no test coverage detected