fixed VectorNode storing expression nodes as children instead of class members; fixed JitterNode not implementing getInteger()

git-svn-id: svn://anubis/fart/branches/scene-file-scripting@321 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
Josh Holtrop 2010-09-29 20:09:36 +00:00
parent 83fd083af8
commit bd60471dfa

View File

@ -84,35 +84,24 @@ class VectorNode : public Node
{ {
public: public:
VectorNode(refptr<Node> a, refptr<Node> b, refptr<Node> c) VectorNode(refptr<Node> a, refptr<Node> b, refptr<Node> c)
: m_a(a), m_b(b), m_c(c), m_direct(true)
{ {
addChild(a);
addChild(b);
addChild(c);
} }
VectorNode(refptr<Node> node) VectorNode(refptr<Node> node)
: m_a(node), m_direct(false)
{ {
addChild(node);
} }
refptr<Vector> getVector() refptr<Vector> getVector()
{ {
if (m_children.size() == 1) return m_direct
{ ? new Vector(m_a->getNumber(),
return m_children[0]->getVector(); m_b->getNumber(),
} m_c->getNumber())
else if (m_children.size() == 3) : m_a->getVector();
{
return new Vector(
m_children[0]->getNumber(),
m_children[1]->getNumber(),
m_children[2]->getNumber());
}
else
{
std::cerr << "Warning: VectorNode::getVector() returning NULL!"
<< std::endl;
return NULL;
}
} }
protected:
refptr<Node> m_a, m_b, m_c;
bool m_direct;
}; };
class AmbientNode : public VectorNode class AmbientNode : public VectorNode
@ -199,6 +188,7 @@ class JitterNode : public NumberNode
{ {
public: public:
JitterNode(refptr<Node> e) : NumberNode(e) {} JitterNode(refptr<Node> e) : NumberNode(e) {}
int getInteger() { return getNumber(); }
}; };
class LightNode : public Node class LightNode : public Node