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:
parent
4d488b9e55
commit
1dc370c99f
@ -62,24 +62,28 @@ class NumberNode : public Node
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NumberNode(double number)
|
NumberNode(double number)
|
||||||
|
: m_number(number), m_direct(true)
|
||||||
{
|
{
|
||||||
m_number = number;
|
|
||||||
}
|
}
|
||||||
NumberNode(NodeRef expr)
|
NumberNode(NodeRef expr)
|
||||||
|
: m_direct(false)
|
||||||
{
|
{
|
||||||
m_expr = expr;
|
m_expr = expr;
|
||||||
}
|
}
|
||||||
virtual double getNumber()
|
virtual double getNumber()
|
||||||
{
|
{
|
||||||
return m_number;
|
return m_direct ? m_number : m_expr->getNumber();
|
||||||
}
|
}
|
||||||
virtual refptr<Node> evaluate()
|
virtual refptr<Node> evaluate()
|
||||||
{
|
{
|
||||||
return new NumberNode(m_number);
|
return m_direct
|
||||||
|
? new NumberNode(m_number)
|
||||||
|
: new NumberNode(m_expr->evaluate());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
double m_number;
|
double m_number;
|
||||||
|
bool m_direct;
|
||||||
NodeRef m_expr;
|
NodeRef m_expr;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -100,7 +104,7 @@ class VectorNode : public Node
|
|||||||
? new Vector(m_a->getNumber(),
|
? new Vector(m_a->getNumber(),
|
||||||
m_b->getNumber(),
|
m_b->getNumber(),
|
||||||
m_c->getNumber())
|
m_c->getNumber())
|
||||||
: m_a->getVector();
|
: m_vector->getVector();
|
||||||
}
|
}
|
||||||
virtual NodeRef evaluate()
|
virtual NodeRef evaluate()
|
||||||
{
|
{
|
||||||
@ -108,7 +112,7 @@ class VectorNode : public Node
|
|||||||
? new VectorNode(m_a->evaluate(),
|
? new VectorNode(m_a->evaluate(),
|
||||||
m_b->evaluate(),
|
m_b->evaluate(),
|
||||||
m_c->evaluate())
|
m_c->evaluate())
|
||||||
: m_a->evaluate();
|
: m_vector->evaluate();
|
||||||
}
|
}
|
||||||
protected:
|
protected:
|
||||||
NodeRef m_a, m_b, m_c, m_vector;
|
NodeRef m_a, m_b, m_c, m_vector;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user