fixed parser/nodes.h node classes not specifying "const" when overriding methods

git-svn-id: svn://anubis/fart/branches/scene-file-scripting@319 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
Josh Holtrop 2010-09-29 19:47:38 +00:00
parent 2f825f29f9
commit 1afa2b6510

View File

@ -15,16 +15,30 @@ class Node
void addChildren(refptr<Node> other);
std::vector< refptr<Node> > & getChildren() { return m_children; }
virtual int getInteger() const { return 0; }
virtual double getNumber() const { return 0.0; }
virtual int getInteger() const
{
std::cerr << "Warning: Node::getInteger() called!" << std::endl;
return 0;
}
virtual double getNumber() const
{
std::cerr << "Warning: Node::getNumber() called!" << std::endl;
return 0.0;
}
virtual refptr<Vector> getVector() const
{
std::cerr << "Warning: Node::getVector() called!" << std::endl;
return refptr<Vector>(NULL);
}
virtual std::string getString() const
{
std::cerr << "Warning: Node::getString() called!" << std::endl;
return "";
}
virtual bool isShape() const { return false; }
virtual bool isMaterial() const { return false; }
virtual bool isTransformBlock() const { return false; }
virtual std::string getString() const { return ""; }
virtual bool isExpression() const { return false; }
protected:
@ -36,8 +50,8 @@ class IntegerNode : public Node
{
public:
IntegerNode(int number) { m_number = number; }
int getInteger() { return m_number; }
double getNumber() { return m_number; }
int getInteger() const { return m_number; }
double getNumber() const { return m_number; }
protected:
int m_number;
@ -56,7 +70,7 @@ class NumberNode : public Node
addChild(expr);
m_direct = false;
}
double getNumber()
double getNumber() const
{
return m_direct ? m_number : m_children[0]->getNumber();
}
@ -79,7 +93,7 @@ class VectorNode : public Node
{
addChild(node);
}
refptr<Vector> getVector()
refptr<Vector> getVector() const
{
if (m_children.size() == 1)
{
@ -92,7 +106,12 @@ class VectorNode : public Node
m_children[1]->getNumber(),
m_children[2]->getNumber());
}
return NULL;
else
{
std::cerr << "Warning: VectorNode::getVector() returning NULL!"
<< std::endl;
return NULL;
}
}
};
@ -158,7 +177,7 @@ class IdentifierNode : public Node
{
public:
IdentifierNode(const std::string & str) { m_string = str; }
std::string getString()
std::string getString() const
{
return m_string;
}
@ -253,7 +272,7 @@ class PlanePositionNode : public VectorNode
{
m_dist = dist;
}
double getNumber() { return m_dist->getNumber(); }
double getNumber() const { return m_dist->getNumber(); }
protected:
refptr<Node> m_dist;
@ -412,7 +431,7 @@ class ExpressionNode : public Node
{
public:
bool isExpression() const { return true; }
virtual double getInteger() { return getNumber(); }
virtual int getInteger() const { return getNumber(); }
};
class BinOpNode : public ExpressionNode