fixed NumberNode and VectorNode "direct" bugs

git-svn-id: svn://anubis/fart/branches/scene-file-scripting@341 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
Josh Holtrop 2010-10-06 19:27:54 +00:00
parent 4d488b9e55
commit 1dc370c99f

View File

@ -62,24 +62,28 @@ class NumberNode : public Node
{
public:
NumberNode(double number)
: m_number(number), m_direct(true)
{
m_number = number;
}
NumberNode(NodeRef expr)
: m_direct(false)
{
m_expr = expr;
}
virtual double getNumber()
{
return m_number;
return m_direct ? m_number : m_expr->getNumber();
}
virtual refptr<Node> evaluate()
{
return new NumberNode(m_number);
return m_direct
? new NumberNode(m_number)
: new NumberNode(m_expr->evaluate());
}
protected:
double m_number;
bool m_direct;
NodeRef m_expr;
};
@ -100,7 +104,7 @@ class VectorNode : public Node
? new Vector(m_a->getNumber(),
m_b->getNumber(),
m_c->getNumber())
: m_a->getVector();
: m_vector->getVector();
}
virtual NodeRef evaluate()
{
@ -108,7 +112,7 @@ class VectorNode : public Node
? new VectorNode(m_a->evaluate(),
m_b->evaluate(),
m_c->evaluate())
: m_a->evaluate();
: m_vector->evaluate();
}
protected:
NodeRef m_a, m_b, m_c, m_vector;