diff --git a/main/Scene-load.cc b/main/Scene-load.cc index c93204f..4803b19 100644 --- a/main/Scene-load.cc +++ b/main/Scene-load.cc @@ -257,6 +257,26 @@ void Scene::processOptions(refptr node) void Scene::processTransformBlock(refptr node) { + if ( typeid(*node) == typeid(TranslateBlockNode) ) + { + m_transforms.push(m_transforms.top()); + m_transforms.top().translate(node->getVector()); + } + else if ( typeid(*node) == typeid(RotateBlockNode) ) + { + m_transforms.push(m_transforms.top()); + m_transforms.top().rotate(node->getNumber(), + node->getVector()); + } + else if ( typeid(*node) == typeid(ScaleBlockNode) ) + { + m_transforms.push(m_transforms.top()); + m_transforms.top().scale(node->getVector()); + } + + processChildren(node); + + m_transforms.pop(); } refptr Scene::processMaterial(refptr node)