Scene-load setting light position based on the current transform
git-svn-id: svn://anubis/fart/trunk@188 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
parent
24ef1eca3c
commit
608939bff4
@ -284,7 +284,7 @@ refptr<Shape> Scene::processBox(refptr<Node> node)
|
||||
if ( ! material.isNull() )
|
||||
box->setMaterial(material);
|
||||
box->setTransform(m_transforms.top());
|
||||
|
||||
|
||||
if (restore_transform)
|
||||
m_transforms.pop();
|
||||
|
||||
@ -321,7 +321,7 @@ refptr<Shape> Scene::processCyl(refptr<Node> node)
|
||||
if ( ! material.isNull() )
|
||||
cyl->setMaterial(material);
|
||||
cyl->setTransform(m_transforms.top());
|
||||
|
||||
|
||||
if (restore_transform)
|
||||
m_transforms.pop();
|
||||
|
||||
@ -338,7 +338,8 @@ refptr<Light> Scene::processLight(refptr<Node> node)
|
||||
{
|
||||
if ( typeid(**it) == typeid(PositionNode) )
|
||||
{
|
||||
light->setPosition((*it)->getVector());
|
||||
refptr<Vector> v = (*it)->getVector();
|
||||
light->setPosition(m_transforms.top().transform_point(*v));
|
||||
}
|
||||
else if ( typeid(**it) == typeid(DiffuseNode) )
|
||||
{
|
||||
@ -391,7 +392,7 @@ refptr<Shape> Scene::processPlane(refptr<Node> node)
|
||||
if ( ! material.isNull() )
|
||||
plane->setMaterial(material);
|
||||
plane->setTransform(m_transforms.top());
|
||||
|
||||
|
||||
if (restore_transform)
|
||||
m_transforms.pop();
|
||||
|
||||
@ -423,7 +424,7 @@ refptr<Shape> Scene::processSphere(refptr<Node> node)
|
||||
if ( ! material.isNull() )
|
||||
sphere->setMaterial(material);
|
||||
sphere->setTransform(m_transforms.top());
|
||||
|
||||
|
||||
if (restore_transform)
|
||||
m_transforms.pop();
|
||||
|
||||
@ -493,7 +494,7 @@ refptr<Shape> Scene::processBool(refptr<Node> node)
|
||||
if ( ! material.isNull() )
|
||||
shape->setMaterial(material);
|
||||
shape->setTransform(m_transforms.top());
|
||||
|
||||
|
||||
if (restore_transform)
|
||||
m_transforms.pop();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user