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:
parent
83fd083af8
commit
bd60471dfa
@ -84,35 +84,24 @@ class VectorNode : public Node
|
||||
{
|
||||
public:
|
||||
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)
|
||||
: m_a(node), m_direct(false)
|
||||
{
|
||||
addChild(node);
|
||||
}
|
||||
refptr<Vector> getVector()
|
||||
{
|
||||
if (m_children.size() == 1)
|
||||
{
|
||||
return m_children[0]->getVector();
|
||||
}
|
||||
else if (m_children.size() == 3)
|
||||
{
|
||||
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;
|
||||
}
|
||||
return m_direct
|
||||
? new Vector(m_a->getNumber(),
|
||||
m_b->getNumber(),
|
||||
m_c->getNumber())
|
||||
: m_a->getVector();
|
||||
}
|
||||
protected:
|
||||
refptr<Node> m_a, m_b, m_c;
|
||||
bool m_direct;
|
||||
};
|
||||
|
||||
class AmbientNode : public VectorNode
|
||||
@ -199,6 +188,7 @@ class JitterNode : public NumberNode
|
||||
{
|
||||
public:
|
||||
JitterNode(refptr<Node> e) : NumberNode(e) {}
|
||||
int getInteger() { return getNumber(); }
|
||||
};
|
||||
|
||||
class LightNode : public Node
|
||||
|
Loading…
x
Reference in New Issue
Block a user