#ifndef interfaceH
#define interfaceH


#include "treelib.h"


namespace TreeLib
{
    extern _explicitInit          init;
    extern _createTree            createTree;
    extern _createTreeFromSeed    createTreeFromSeed;
    extern _discardTree           discardTree;
    extern _rebuildTree           rebuildTree;
    extern _getAttributef         getAttributef;
    extern _getAttributefv        getAttributefv;
    extern _getAttributei         getAttributei;
	extern _getAttributeiv        getAttributeiv;
    extern _getAttributecv        getAttributecv;
    extern _setAttributef         setAttributef;
    extern _setAttributefv        setAttributefv;
    extern _setAttributei         setAttributei;
    extern _setAttributecv        setAttributecv;
    extern _pushAttributes        pushAttributes;
    extern _popAttributes         popAttributes;

    extern _renderCompositionLeaves		renderCompositionLeaves;
    extern _renderCompositionShadows	renderCompositionShadows;
    extern _renderCompositionBranches	renderCompositionBranches;
    extern _renderCompositionImposters	renderCompositionImposters;
    extern _flushComposition			flushComposition;
    extern _renderComposition			renderComposition;
    extern _putTree						putTree;
	
	extern _preloadGlobalTextures		preloadGlobalTextures;
	extern _preloadTexture				preloadTexture;
	extern _preloadNormalMap			preloadNormalMap;
	
	extern _saveAttributes				saveAttributes;
	extern _loadAttributes				loadAttributes;
	extern _freeAttributes				freeAttributes;
	

    bool        load(const char*filename);
    void        unload();
    const char* error();
}



#endif
