/* 
 * Thomas Pantzer: diffeq_demo.h, v0.4.7  8.6.99 16:32 
 * 
 * 
 * Copyright 1999 by Thomas Pantzer
 * 
 * Permission to use, copy, modify, and distribute this software for noncommercial 
 * use and without fee is hereby granted, provided that the above copyright notice 
 * appear in all copies and that both that copyright notice and this permission 
 * notice appear in supporting documentation, and that the name of the Author not be 
 * used in advertising or publicity pertaining to distribution of the software 
 * without specific, written prior permission. The Author makes no representations about
 * the suitability of this software for any purpose.  It is provided "as is" 
 * without expressed or implied warranty. 
 * 
 * 
 * pantec@isys2.informatik.uni-leipzig.de   (Thomas Pantzer) 
 * 
 */


#ifndef _DIFFEQ_DEMO_H
#define _DIFFEQ_DEMO_H


#include "t_runtime_obj.h"
#include "graphix.h"   // declaration of t_vertex_2i
		       // fix this
// #include "t_kurvemap.h"
#include "t_woeq.h"

class t_diffeq_demo : public t_runtime_object {
public:
	void Init(RobotContext *robot);
	virtual char calculate_module(char allow_learn, char any_new);
//	virtual void control_module(void);
	virtual char start_module(void);
	virtual char stop_module(void);
	virtual void Show(void);

	virtual void make_logstring(void);
// extra parameter handling
//	virtual void Reset(void);
	virtual void Load(char *to_parse);
	virtual void Save(int fd);

//xforms callbacks
	virtual void button_cb(FL_OBJECT *ob,long data);
	virtual void slider_cb(FL_OBJECT *ob,long data);
	virtual void choice_cb(FL_OBJECT *ob,long data);
	char AddLine(void);

private:
	void RobotPath_Shift(void);
	void RobotPath_Rotate(void);

	t_woeq *KMap;
	int u_shift;
	char cos3_error;
};


#ifdef WITH_DELETE_LINE
	extern void KMap_Delete_Line(t_vertex_2i &);
	extern void KMap_Add_Line(t_vertex_2i &);
#endif


#ifdef _DIFFEQ_DEMO_G
#define m_extern
#else 
#define m_extern extern
#endif

m_extern t_diffeq_demo DiffEq_Demo;
//m_extern t_kurvemap2 *KMap;
// m_extern char gamma_correct;
// m_extern t_world Display_World;

#undef m_extern

#endif










/**/
/**/
/**/
/**/
/**/
/**/
/**/
/**/
/*****  End Of File  ****************************/
