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() )
|
if ( ! material.isNull() )
|
||||||
box->setMaterial(material);
|
box->setMaterial(material);
|
||||||
box->setTransform(m_transforms.top());
|
box->setTransform(m_transforms.top());
|
||||||
|
|
||||||
if (restore_transform)
|
if (restore_transform)
|
||||||
m_transforms.pop();
|
m_transforms.pop();
|
||||||
|
|
||||||
@ -321,7 +321,7 @@ refptr<Shape> Scene::processCyl(refptr<Node> node)
|
|||||||
if ( ! material.isNull() )
|
if ( ! material.isNull() )
|
||||||
cyl->setMaterial(material);
|
cyl->setMaterial(material);
|
||||||
cyl->setTransform(m_transforms.top());
|
cyl->setTransform(m_transforms.top());
|
||||||
|
|
||||||
if (restore_transform)
|
if (restore_transform)
|
||||||
m_transforms.pop();
|
m_transforms.pop();
|
||||||
|
|
||||||
@ -338,7 +338,8 @@ refptr<Light> Scene::processLight(refptr<Node> node)
|
|||||||
{
|
{
|
||||||
if ( typeid(**it) == typeid(PositionNode) )
|
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) )
|
else if ( typeid(**it) == typeid(DiffuseNode) )
|
||||||
{
|
{
|
||||||
@ -391,7 +392,7 @@ refptr<Shape> Scene::processPlane(refptr<Node> node)
|
|||||||
if ( ! material.isNull() )
|
if ( ! material.isNull() )
|
||||||
plane->setMaterial(material);
|
plane->setMaterial(material);
|
||||||
plane->setTransform(m_transforms.top());
|
plane->setTransform(m_transforms.top());
|
||||||
|
|
||||||
if (restore_transform)
|
if (restore_transform)
|
||||||
m_transforms.pop();
|
m_transforms.pop();
|
||||||
|
|
||||||
@ -423,7 +424,7 @@ refptr<Shape> Scene::processSphere(refptr<Node> node)
|
|||||||
if ( ! material.isNull() )
|
if ( ! material.isNull() )
|
||||||
sphere->setMaterial(material);
|
sphere->setMaterial(material);
|
||||||
sphere->setTransform(m_transforms.top());
|
sphere->setTransform(m_transforms.top());
|
||||||
|
|
||||||
if (restore_transform)
|
if (restore_transform)
|
||||||
m_transforms.pop();
|
m_transforms.pop();
|
||||||
|
|
||||||
@ -493,7 +494,7 @@ refptr<Shape> Scene::processBool(refptr<Node> node)
|
|||||||
if ( ! material.isNull() )
|
if ( ! material.isNull() )
|
||||||
shape->setMaterial(material);
|
shape->setMaterial(material);
|
||||||
shape->setTransform(m_transforms.top());
|
shape->setTransform(m_transforms.top());
|
||||||
|
|
||||||
if (restore_transform)
|
if (restore_transform)
|
||||||
m_transforms.pop();
|
m_transforms.pop();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user