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