#pragma once


/********************************************************************
	created:	 2009/07/23
	created:	 23:7:2009   19:14
	file base:	 scene_graph.h
	author:		 Liangliang Nan
    contact:     liangliang.nan@gmail.com
    affiliation: Shenzhen Institute of Advanced Technology
	
	purpose:	 base of the rendering widget that can update by its sons
*********************************************************************/


#include "basic_common.h"
#include <string>


class BASIC_API SceneGraph 
{
public:
	SceneGraph() { 
	}

	virtual ~SceneGraph() {
	}

	virtual void forceUpdate() = 0;
	virtual SceneGraph* output(const std::string& msg) = 0;
	virtual SceneGraph* output(int v) = 0;
	virtual SceneGraph* output(double v) = 0;

	SceneGraph& operator<<(int v) ;
	SceneGraph& operator<<(size_t v) ;
	SceneGraph& operator<<(unsigned int v) ;
	SceneGraph& operator<<(float v) ;
	SceneGraph& operator<<(double v) ;
	SceneGraph& operator<<(const char* x) ;
	SceneGraph& operator<<(const std::string& msg) ;
} ;