From 0ea6e96e0acc37408151ba0671aa2d7c629db620 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 1 Mar 2009 22:31:42 +0000 Subject: [PATCH] filled out Scene::processTransformBlock() git-svn-id: svn://anubis/fart/trunk@170 7f9b0f55-74a9-4bce-be96-3c2cd072584d --- main/Scene-load.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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)