#ifndef NODES_H #define NODES_H NODES_H #include "util/Vector.h" #include "main/Material.h" #include class Node { public: void addChild(refptr child) { m_children.push_back(child); } void addChildren(refptr other); virtual void process(refptr scene) {} virtual refptr getMaterial() { return refptr(NULL); } virtual double getNumber() { return 0.0; } virtual refptr getVector() { return refptr(NULL); } protected: std::vector< refptr > m_children; }; class CameraNode : public Node { }; class ItemsNode : public Node { }; class LightNode : public Node { }; class MaterialNode : public Node { }; class NumberNode : public Node { public: double getNumber() { return m_number; } }; class RadiusNode { public: RadiusNode(double radius) { m_radius = radius; } double getNumber() { return m_radius; } protected: double m_radius; }; class ShapeNode : public Node { }; class VectorNode : public Node { public: VectorNode(refptr vector) { m_vector = vector; } refptr getVector() { return m_vector; } protected: refptr m_vector; }; #endif